Διαμορφώσεις Μορφής

Πλήρεις επιλογές απόδοσης ανά μορφή

Κάθε έγγραφο ανοίγει με μια υλοποίηση του BaseConfig. Περνάτε μία στο OpenDocumentAsync ή αφήστε τον κατάλογο μορφών να δημιουργήσει την προεπιλογή του. Όλες οι παρακάτω κλάσεις βρίσκονται στο χώρο ονομάτων Doconut.

Αυτός ο μοναδικός χώρος ονομάτων είναι νέος. Η προηγούμενη βιβλιοθήκη .NET Standard διέσπαρε αυτούς τους τύπους σε Doconut.Configs, Doconut.Configs.View και Doconut.Models. Τα ονόματα τύπων δεν άλλαξαν — στα περισσότερα αρχεία η πλήρης αλλαγή είναι η διαγραφή δύο γραμμών using. Δείτε τον οδηγό μετάβασης.

csharp
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
    AllowSearch = true,
    AllowCopy   = true,
    ImageResolution = 150
});

Κληρονομικότητα και ενσωματωμένες ρυθμίσεις PDF

Κάθε μορφή κληρονομεί τις πέντε ιδιότητες του BaseConfig. Οι μορφές που μπορούν να ανακατευθύνουν μέσω PDF εκθέτουν μια ενσωματωμένη PdfConfig. Στα WordConfig, ExcelConfig και PptConfig, τα AllowSearch και AllowCopy είναι ιδιότητες ευκολίας που διαβάζουν και γράφουν στην ενσωματωμένη PdfConfig.

DefaultRender = true επιλέγει τον εγγενή αποδοχέα μορφής. Σε μορφές με ανακατεύθυνση PDF, το false μετατρέπει πρώτα σε PDF στη μνήμη και έπειτα χρησιμοποιεί τον προβολέα PDF. Αυτή η διαδρομή είναι συχνά χρήσιμη για αναζήτηση κειμένου-συντεταγμένων, αλλά προσθέτει μια επιπλέον μετατροπή.

Εκτός αν αναφέρεται διαφορετικά, οι πίνακες εμφανίζουν τις προεπιλογές κατασκευής/ιδιότητας. Ο αυτόματος κατάλογος μορφών παρακάμπτει σκόπιμα δύο από αυτές: δημιουργεί ExcelConfig με SplitWorksheets = true και MhtConfig με DefaultRender = false.

BaseConfig

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
intImageResolution00 χρησιμοποιεί την προεπιλογή της μορφής. Έγκυρο ρητό εύρος είναι 25‑300 DPI· οι μη έγκυρες αναθέσεις αγνοούνται.
stringDocumentCulture""Τοπική ρύθμιση για ημερομηνίες και αριθμούς. Οι μη κενές τιμές περικόπτονται· οι κενές αναθέσεις αγνοούνται.
stringPassword""Κωδικός πρόσβασης προστατευμένου εγγράφου. Το DocOptions.Password αντιγράφεται εδώ αυτόματα.
boolShowUItrueΙδιότητα συμβατότητας· ο τρέχων αποδοχέας δεν τη χρησιμοποιεί για τον έλεγχο της γραμμής εργαλείων του προγράμματος περιήγησης.
boolCachePagestrueΑποθήκευση στην κρυφή μνήμη των εικόνων των σελίδων που αποδόθηκαν για τη συνεδρία του εγγράφου.

PdfConfig

Μορφές: PDF. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΔιακόπτης συμβατότητας. Η τρέχουσα εργοστασιακή μονάδα χρησιμοποιεί τον εγγενή προβολέα PDF.
boolAllowSearchfalseΔημιουργία/χρήση του ευρετηρίου αναζήτησης κειμένου PDF. Απαιτεί τη δυνατότητα άδειας Search για αιτήματα.
boolAllowCopyfalseΕπιτρέπει λειτουργίες επιλογής/αντιγραφής κειμένου.
boolExtractHyperlinksfalseΕξάγει τα ορθογώνια συνδέσμων για επικάλυψη πελάτη.
intHyperlinksPageCount0Μέγιστος αριθμός σελίδων που σαρώνται για συνδέσμους· 0 σημαίνει όλες τις σελίδες.
boolCompressImagesfalseΣυμπίεση ενσωματωμένων εικόνων πριν την απόδοση.
intCompressQuality100Ποιότητα JPEG που χρησιμοποιείται όταν η συμπίεση είναι ενεργή.
boolResizeImagesfalseΑλλαγή μεγέθους ενσωματωμένων εικόνων πριν την απόδοση.
intResizeResolution300Στόχος DPI για τις εικόνες που έχουν αλλάξει μέγεθος.
boolCompressFastfalseΠροτιμά τη γρηγορότερη, χαμηλότερης ποιότητας διαδρομή συμπίεσης.
boolFixInvalidImagesfalseΠροσπάθεια επισκευής μη έγκυρων ενσωματωμένων εικόνων.
boolSplitSegmentsfalseΕπανασύνδεση λέξεων που έχουν χωριστεί σε τμήματα γραμμής για βελτίωση της αναζήτησης/αντιγραφής.

showHyperlinks στο ViewerConfig ελέγχει την επικάλυψη πελάτη, ενώ το ExtractHyperlinks ελέγχει την εξαγωγή στον διακομιστή. Ενεργοποιήστε και τα δύο.

WordConfig

Μορφές: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική απόδοση Word· false χρησιμοποιεί την ανακατεύθυνση PDF.
PdfConfigPdfConfigνέα υλοποίησηΡυθμίσεις που χρησιμοποιούνται από τη διαδρομή PDF/αναζήτησης.
DocPaperSizePaperSizeA4Μέγεθος εξόδου χαρτιού. Χρησιμοποιήστε Custom με πλάτος/ύψος.
intPaperWidth595Προσαρμοσμένο πλάτος σε μονάδες point.
intPaperHeight841Προσαρμοσμένο ύψος σε μονάδες point.
boolRemovePaperMarginfalseΑφαίρεση περιθωρίων σελίδας του εγγράφου.
boolRenderPageColortrueΔιατήρηση του ρυθμισμένου χρώματος σελίδας του Word· false αποδίδει λευκές σελίδες.
boolExportPdfAfalseΧρήση αρχιβαρικού PDF/A στη διαδρομή PDF.
Encoding?FileEncodingnullΠαράκαμψη κωδικοποίησης πηγής.
stringFontInfo""Πληροφορίες αντικατάστασης γραμματοσειράς.
string[]?FontFoldersnullΕπιπλέον καταλόγοι γραμματοσειρών, ιδιαίτερα χρήσιμοι σε Linux/containers.
boolAllowSearchfalseΑναθέτει στο PdfConfig.AllowSearch.
boolAllowCopyfalseΑναθέτει στο PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents ή AutoFitToWindow.

ExcelConfig

Μορφές: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική απόδοση φύλλου· false χρησιμοποιεί την ανακατεύθυνση PDF.
PdfConfigPdfConfigνέα παρουσίαΡυθμίσεις για τη διαδρομή PDF/αναζήτησης.
ExcelPaperSizePaperSizePaperA4Μέγεθος εξόδου χαρτιού.
doublePaperMargins0.25Περιθώρια σελίδας σε ίντσες.
boolPaperLandscapetrueΑπόδοση φύλλου σε οριζόντια διάταξη.
boolAutoFitContentsfalseΑυτόματη προσαρμογή ύψους γραμμών και πλάτους στηλών.
boolRemoveEmptyContenttrueΣυμπίεση εξόδου εξαιρώντας κενό περιεχόμενο.
boolCalculateFormulatrueΕπανυπολογισμός τύπων πριν την απόδοση.
boolShowRowColumnHeaderstrueΣυμπερίληψη κεφαλίδων φύλλου.
boolExportPdfAfalseΧρήση PDF/A στη διαδρομή PDF.
boolSplitWorksheetsfalseΔιατήρηση φύλλων ως ξεχωριστές ομάδες σελίδων.
boolShowEmptyWorkSheetsfalseΣυμπερίληψη κενών φύλλων.
boolExportLandscapefalseΕξαναγκασμός εξαγωγής σε οριζόντια διάταξη.
boolExportOnePagePerSheetfalseΠροσαρμογή κάθε φύλλου σε μία σελίδα εξόδου.
boolMemoryOptimizationPreferencetrueΜείωση μέγιστης μνήμης, ενδεχομένως με ανταλλαγή κάποιου χρόνου.
boolAutoTrimWorksheetRenderRangetrueΑπόδοση μόνο του ορατού χρησιμοποιημένου εύρους όταν δεν υπάρχει ρητή περιοχή εκτύπωσης.
boolAutoTrimPreserveExistingPrintAreatrueΔιατήρηση των περιοχών εκτύπωσης που ορίζονται στο βιβλίο εργασίας κατά την αυτόματη περικοπή.
string?PrintAreanullΡητό εύρος όπως "A1:Z100".
boolPrintGridlinesfalseΕκτύπωση γραμμών πλέγματος φύλλου.
boolPrintHeadingsfalseΕκτύπωση κεφαλίδων γραμμών/στηλών.
List<string>SheetNamesκενόΠεριορισμός απόδοσης σε ονομαστικά φύλλα.
CustomStyleCell?CustomStylesnullΠροαιρετικές παρακάμψεις μορφοποίησης ημερομηνίας/δεκαδικού/ακέραιου.
boolAllowSearchfalseΑναθέτει στο PdfConfig.AllowSearch.
boolAllowCopyfalseΑναθέτει στο PdfConfig.AllowCopy.

CustomStyleCell εκθέτει τα CustomStyleDateTime, CustomStyleNumberDecimal και CustomStyleNumberInteger, όλα nullable strings.

new ExcelConfig() ορίζει το SplitWorksheets σε false; το άνοιγμα αρχείου Excel χωρίς ρητή διαμόρφωση χρησιμοποιεί τον κατάλογο μορφών, ο οποίος το ορίζει σε true.

PptConfig

Μορφές: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική απόδοση διαφάνειας· false χρησιμοποιεί την ανακατεύθυνση PDF.
boolFastLoadfalseΑποφυγή απόδοσης της πρώτης διαφάνειας κατά το άνοιγμα· χρήση μεταδεδομένων και απόδοση κατά απαίτηση.
PdfConfigPdfConfigνέα παρουσίαΡυθμίσεις για τη συμπεριφορά PDF/αναζήτησης.
stringFontInfo""Πληροφορίες αντικατάστασης γραμματοσειράς.
string[]?FontFoldersnullΕπιπλέον καταλόγοι γραμματοσειρών.
boolAllowSearchfalseΑναθέτει στο PdfConfig.AllowSearch.
boolAllowCopyfalseΑναθέτει στο PdfConfig.AllowCopy.

Σε Linux και macOS, η απόδοση παρουσιάσεων με την τρέχουσα μηχανή απαιτεί libgdiplus και System.Drawing.EnableUnixSupport=true. Εγκαταστήστε τις γραμματοσειρές που χρησιμοποιεί η παρουσίαση ή παρέχετε FontFolders.

CadConfig

Μορφές: DWG, DXF, DGN. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική απόδοση CAD· false χρησιμοποιεί την ανακατεύθυνση PDF.
PdfConfigPdfConfigνέα παρουσίαΡυθμίσεις διαδρομής PDF.
boolExportPdfAfalseΈξοδος PDF/A για αρχειοθέτηση.
boolShowColortrueΧρώμα αντί για μονόχρωμη.
boolWhiteBackgroundtrueΛευκό αντί για μαύρο φόντο.
shortLineWidth25Πλάτος γραμμής CAD.
boolShowLayoutsfalseΑπόδοση καρτελών διάταξης.
boolShowModeltrueΑπόδοση χώρου μοντέλου.
boolCheck3DSolidtrueΕπεξεργασία 3D στερεών.
boolExportAllLayoutsfalseΕξαγωγή όλων των διατάξεων, παρακάμπτοντας την επιλογή μοντέλου/διάταξης.
boolLimitMinimumSizefalseΕφαρμογή MinimumSize.
intMinimumSize700Ελάχιστο μέγεθος εξόδου σε εικονοστοιχεία.
boolLimitMaximumSizefalseΕφαρμογή MaximumSize.
intMaximumSize700Μέγιστο μέγεθος εξόδου σε εικονοστοιχεία.
boolShowAllLayoutsDgnfalseΣυμπερίληψη όλων των διατάξεων DGN.
boolAutomaticLayoutScalingtrueΑυτόματη κλιμάκωση διατάξεων.
floatPdfMargins0.5Περιθώριο PDF σε ίντσες.
RenderQualityQualityImageLowΠοιότητα raster: Low, Medium ή High.
RenderQualityQualityTextMediumΠοιότητα κειμένου: Low, Medium ή High.

EmailConfig

Μορφές: EML, EMLX, MSG. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική απόδοση email· false χρησιμοποιεί την ανακατεύθυνση PDF.
PdfConfigPdfConfignew instanceΡυθμίσεις διαδρομής PDF.
Encoding?EmailEncodingnullΠαράκαμψη κωδικοποίησης μηνύματος.
Encoding?SubjectEncodingnullΠαράκαμψη κωδικοποίησης θέματος.
Encoding?BodyEncodingnullΠαράκαμψη κωδικοποίησης σώματος.
boolSkipExternalImagesfalseΝα μην φορτώνονται εικόνες απομακρυσμένες. Συνιστάται για μη αξιόπιστο email.
boolRemoveLastWhitePagefalseΑφαίρεση τελευταίας κενής σελίδας.
boolUseAntiAliasingfalseΕνεργοποίηση anti-aliasing.
boolUseHighQualityRenderingfalseΠροτίμηση καθαρότερης, πιο αργής απόδοσης.
TimeSpan?TimeZoneOffsetnullΠαράκαμψη της ζώνης ώρας που χρησιμοποιείται για ημερομηνίες.
boolForcePageSizefalseΕξαναγκασμός σταθερών διαστάσεων σελίδας.

ImageConfig, TiffConfig, και PsdConfig

ImageConfig καλύπτει JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF και SVG. Το προεπιλεγμένο DPI είναι 100.

ΔιαμόρφωσηΙδιότηταΠροεπιλογήΣυμπεριφορά
ImageConfigMaxImagePixelSize3000Μέγιστο πλάτος/ύψος σε εικονοστοιχεία. 0 σημαίνει απεριόριστο· μη μηδενικές τιμές κάτω από 50 αγνοούνται.
ImageConfigTransparentPngtrueΔιατήρηση διαφάνειας PNG· false χρησιμοποιεί λευκό φόντο.
TiffConfigno additional propertiesDPI 200Χρησιμοποιεί μόνο BaseConfig; υποστηρίζει πολυσελίδες TIFF.
PsdConfigMaxImagePixelSize3000Ίδια επικύρωση 0/ελάχιστο-50 όπως το ImageConfig; το προεπιλεγμένο DPI είναι 100.

DicomConfig

Μορφές: DCM, IMA. Προεπιλεγμένο αποτελεσματικό DPI: 100. Απαιτεί το πρόσθετο DICOM.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
intHorizontalResolution100 effectiveΣαφές οριζόντιο DPI· εναλλιώς ImageResolution, μετά 100.
intVerticalResolution100 effectiveΣαφές κατακόρυφο DPI· εναλλιώς ImageResolution, μετά 100.
intAnimationFrameDelayMs100Καθυστέρηση πλαισίου πολλαπλών καρέ· ο χρόνος GIF χρησιμοποιεί μονάδες 10 ms.
ushortLoopCount00 επαναλαμβάνει για πάντα· θετικές τιμές σταματούν μετά τον αριθμό αυτό.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly, ή συνδυασμένη επισκόπηση με στατικά πλαίσια.

TxtConfig

Μορφή: TXT. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
DocPaperSizePaperSizeA4Μέγεθος εξόδου χαρτιού.
Encoding?FileEncodingnullnull χρησιμοποιεί UTF-8.
stringFontInformation""Πληροφορίες γραμματοσειράς για απόδοση κειμένου.

Χρησιμοποιήστε WordConfig όταν το απλό κείμενο χρειάζεται πιο πλούσια συμπεριφορά διάταξης σελίδας.

ProjectConfig

Μορφές: MPP, MPPX, MPX. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική εικόνα Gantt· false χρησιμοποιεί διαδρομή PDF κειμένου.
PdfConfigPdfConfignew instanceΡυθμίσεις διαδρομής PDF.
boolExportPdfAtrueΈξοδος αρχιβιακού PDF/A.
MppPaperSizePaperSizeLedgerΜέγεθος χαρτιού εξόδου έργου.
MppTimeScaleTimeScaleMonthsDays ή Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet ή TaskSheet.

Για ακριβή αναζήτηση συντεταγμένων κειμένου, χρησιμοποιήστε DefaultRender = false.

VisioConfig

Μορφές: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. Προεπιλεγμένο DPI: 200.

ΤύποςΙδιότηταΠροεπιλογήΣυμπεριφορά
boolDefaultRendertrueΑυθεντική απόδοση διαγράμματος· false χρησιμοποιεί την ανακατεύθυνση PDF.
PdfConfigPdfConfignew instanceΡυθμίσεις διαδρομής PDF.
boolExportPdfAtrueΈξοδος αρχιβιακού PDF/A.

HtmlConfig, EpubConfig, MhtConfig, και XpsConfig

Τα τέσσερα προεπιλεγμένα σε 200 DPI και εκθέτουν ένα ένθετο PdfConfig.

ΔιαμόρφωσηΜορφέςDefaultRenderΠρόσθετες ιδιότητες/συμπεριφορά
HtmlConfigHTML, HTMtrueΑυθεντική απόδοση· χρησιμοποιήστε false για διαδρομή PDF κειμένου.
EpubConfigEPUBtrueΑυθεντική απόδοση· false χρησιμοποιεί PDF.
MhtConfigMHT, MHTMLtrue on the class; false in the automatic catalogΗ κανονική άνοιξη χωρίς ρύθμιση χρησιμοποιεί την ανακατεύθυνση PDF αναζητήσιμη. Μια ρητά κατασκευασμένη προεπιλεγμένη παρουσίαση αποδίδει εγγενώς.
XpsConfigXPSfalseΧρησιμοποιεί τη διαδρομή PDF εξ ορισμού· ορίστε true για εγγενή απόδοση εικόνας.

Παραδείγματα διαμόρφωσης ανά οικογένεια

csharp
BaseConfig[] configs =
{
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = new[] { "/usr/share/fonts/truetype" },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { "/usr/share/fonts/truetype" },
        AllowSearch = true
    },
    new CadConfig
    {
        ShowColor = true,
        WhiteBackground = true,
        ShowModel = true,
        ShowLayouts = false,
        QualityText = CadConfig.RenderQuality.High
    },
    new EmailConfig
    {
        SkipExternalImages = true,
        RemoveLastWhitePage = true,
        TimeZoneOffset = TimeSpan.Zero
    },
    new ImageConfig
    {
        MaxImagePixelSize = 3000,
        TransparentPng = true
    },
    new DicomConfig
    {
        DisplayMode = DicomDisplayMode.AnimationAndFrames,
        AnimationFrameDelayMs = 100,
        LoopCount = 0
    }
};

Επιλογή ανά επέκταση

csharp
static BaseConfig? ConfigForExtension(string extUpper) => extUpper switch
{
    ".DOC" or ".DOCX" or ".DOT" or ".DOTX" or ".ODT" => new WordConfig
    {
        AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
        PaperSize = DocPaperSize.Tabloid,
        PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
    },
    ".PDF" => new PdfConfig { AllowSearch = true, AllowCopy = true },
    ".XLS" or ".XLSX" or ".ODS" or ".CSV" => new ExcelConfig { AllowSearch = true, AllowCopy = true },
    ".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },
    // DefaultRender = false → PDF ανακατεύθυνση → αναζήτηση κειμένου εγγενής με ακρίβεια pixel
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // fall back to the format's default config
};

Ήταν αυτή η σελίδα χρήσιμη;