Formátové konfigurace

Kompletní možnosti vykreslování pro každý formát

Každý dokument se otevírá s implementací BaseConfig. Předáte ji metodě OpenDocumentAsync nebo necháte katalog formátů vytvořit výchozí. Všechny níže uvedené třídy se nacházejí v namespace Doconut.

Tento jediný namespace je nový. Předchozí knihovna .NET Standard rozdělovala tyto typy mezi Doconut.Configs, Doconut.Configs.View a Doconut.Models. Názvy typů se nezměnily — ve většině souborů úprava spočívá jen v odstranění dvou řádků using. Viz průvodce migrací.

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

Dědičnost a vnořené nastavení PDF

Každý formát dědí pět vlastností BaseConfig. Formáty, které mohou přesměrovat přes PDF, vystavují vnořený PdfConfig. V WordConfig, ExcelConfig a PptConfig jsou AllowSearch a AllowCopy pohodlné vlastnosti, které čtou a zapisují do vnořeného PdfConfig.

DefaultRender = true vybírá nativní vykreslovací engine formátu. U formátů s PDF přesměrováním false nejprve převede do PDF v paměti a poté použije PDF prohlížeč. Tato cesta je často užitečná pro vyhledávání podle textových souřadnic, ale vyžaduje další konverzi.

Pokud není uvedeno jinak, tabulky zobrazují výchozí hodnoty konstruktoru/vlastnosti. Automatický katalog formátů úmyslně přepisuje dvě z nich: vytváří ExcelConfig s SplitWorksheets = true a MhtConfig s DefaultRender = false.

BaseConfig

TypVlastnostVýchozíChování
intImageResolution00 používá výchozí hodnotu formátu. Platný explicitní rozsah je 25‑300 DPI; neplatná přiřazení jsou ignorována.
stringDocumentCulture""Nastavení národního prostředí pro data a čísla. Neprázdné hodnoty jsou oříznuty; prázdná přiřazení jsou ignorována.
stringPassword""Heslo chráněného dokumentu. DocOptions.Password je sem automaticky zkopírováno.
boolShowUItrueKompatibilní vlastnost; aktuální vykreslovač ji nepoužívá k ovládání panelu nástrojů prohlížeče.
boolCachePagestrueUkládat do mezipaměti vykreslené obrázky stránek během relace dokumentu.

PdfConfig

Formáty: PDF. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueKompatibilní přepínač. Aktuální továrna používá nativní PDF prohlížeč.
boolAllowSearchfalseVytvořit/použít index pro fulltextové vyhledávání v PDF. Vyžaduje licenci Search pro požadavky.
boolAllowCopyfalsePovolit operace výběru a kopírování textu.
boolExtractHyperlinksfalseExtrahovat obdélníky odkazů pro překrytí na klientovi.
intHyperlinksPageCount0Maximální počet stránek prohledávaných kvůli odkazům; 0 znamená všechny stránky.
boolCompressImagesfalseKomprimovat vložené obrázky před vykreslením.
intCompressQuality100Kvalita JPEG použité při zapnuté kompresi.
boolResizeImagesfalseZměnit velikost vložených obrázků před vykreslením.
intResizeResolution300Cílové DPI pro změněné obrázky.
boolCompressFastfalsePreferovat rychlejší, méně kvalitní cestu komprese.
boolFixInvalidImagesfalsePokusit se opravit neplatné vložené obrázky.
boolSplitSegmentsfalseZnovu spojit slova rozdělená mezi segmenty řádků pro zlepšení vyhledávání/kopírování.

showHyperlinks v ViewerConfig řídí překrytí na klientovi, zatímco ExtractHyperlinks řídí extrakci na serveru. Povolit obojí.

WordConfig

Formáty: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní vykreslení Word; false používá PDF přesměrování.
PdfConfigPdfConfignew instanceNastavení používaná cestou PDF/vyhledávání.
DocPaperSizePaperSizeA4Výstupní velikost papíru. Použijte Custom s šířkou/výškou.
intPaperWidth595Vlastní šířka v bodech.
intPaperHeight841Vlastní výška v bodech.
boolRemovePaperMarginfalseOdstranit okraje stránek dokumentu.
boolRenderPageColortrueZachovat nastavenou barvu stránky ve Wordu; false vykresluje bílé stránky.
boolExportPdfAfalsePoužít archivní PDF/A na cestě PDF.
Encoding?FileEncodingnullPřepsat kódování zdroje.
stringFontInfo""Informace o náhradě fontů.
string[]?FontFoldersnullDalší adresáře s fonty, zejména užitečné v Linuxu/kontejnerech.
boolAllowSearchfalseDeleguje na PdfConfig.AllowSearch.
boolAllowCopyfalseDeleguje na PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents nebo AutoFitToWindow.

ExcelConfig

Formáty: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní vykreslení listu; false používá PDF přesměrování.
PdfConfigPdfConfignová instanceNastavení pro PDF/cestu vyhledávání.
ExcelPaperSizePaperSizePaperA4Velikost výstupního papíru.
doublePaperMargins0.25Okraje stránky v palcích.
boolPaperLandscapetrueVykreslování listu na šířku.
boolAutoFitContentsfalseAutomatické přizpůsobení výšek řádků a šířek sloupců.
boolRemoveEmptyContenttrueZmenšení výstupu vyloučením prázdného obsahu.
boolCalculateFormulatruePřepočítat vzorce před vykreslením.
boolShowRowColumnHeaderstrueZahrnout záhlaví tabulky (řádky a sloupce).
boolExportPdfAfalsePoužít PDF/A na PDF cestě.
boolSplitWorksheetsfalseUchovat listy jako samostatné skupiny stránek.
boolShowEmptyWorkSheetsfalseZahrnout prázdné listy.
boolExportLandscapefalseVynutit export na šířku.
boolExportOnePagePerSheetfalsePřizpůsobit každý list jedné výstupní stránce.
boolMemoryOptimizationPreferencetrueSnížit špičkovou spotřebu paměti, případně na úkor rychlosti.
boolAutoTrimWorksheetRenderRangetrueVykreslit pouze viditelný použitý rozsah, pokud neexistuje explicitní tisková oblast.
boolAutoTrimPreserveExistingPrintAreatrueZachovat definované tiskové oblasti sešitu během automatického ořezu.
string?PrintAreanullExplicitní rozsah, např. "A1:Z100".
boolPrintGridlinesfalseTisknout mřížku listu.
boolPrintHeadingsfalseTisknout záhlaví řádků/sloupců.
List<string>SheetNamesprázdnýOmezit vykreslování na pojmenované listy.
CustomStyleCell?CustomStylesnullVolitelné přepsání formátování data/desetinných/číslic.
boolAllowSearchfalsePředává se PdfConfig.AllowSearch.
boolAllowCopyfalsePředává se PdfConfig.AllowCopy.

CustomStyleCell poskytuje CustomStyleDateTime, CustomStyleNumberDecimal a CustomStyleNumberInteger, všechny jsou nullable řetězce.

new ExcelConfig() nastaví SplitWorksheets na false; otevření Excel souboru bez explicitní konfigurace použije katalog formátů, který jej nastaví na true.

PptConfig

Formáty: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní vykreslení snímku; false používá PDF přesměrování.
boolFastLoadfalseVyhnout se vykreslení prvního snímku při otevření; použít metadata a vykreslovat na požádání.
PdfConfigPdfConfignová instanceNastavení chování PDF/vyhledávání.
stringFontInfo""Informace o náhradě fontů.
string[]?FontFoldersnullDalší adresáře s fonty.
boolAllowSearchfalsePředává se PdfConfig.AllowSearch.
boolAllowCopyfalsePředává se PdfConfig.AllowCopy.

Na Linuxu a macOS vyžaduje vykreslování prezentací současným enginem libgdiplus a System.Drawing.EnableUnixSupport=true. Nainstalujte fonty použité v prezentaci nebo poskytněte FontFolders.

CadConfig

Formáty: DWG, DXF, DGN. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní CAD vykreslení; false používá PDF přesměrování.
PdfConfigPdfConfignová instanceNastavení PDF cesty.
boolExportPdfAfalseArchivní výstup PDF/A.
boolShowColortrueBarva místo černobílého.
boolWhiteBackgroundtrueBílý místo černého pozadí.
shortLineWidth25Šířka čáry CAD.
boolShowLayoutsfalseVykreslovat záložky rozvržení.
boolShowModeltrueVykreslovat modelový prostor.
boolCheck3DSolidtrueZpracovávat 3D tělesa.
boolExportAllLayoutsfalseExportovat všechna rozvržení, přepisuje výběr modelu/rozvržení.
boolLimitMinimumSizefalseAplikovat MinimumSize.
intMinimumSize700Minimální velikost výstupu v pixelech.
boolLimitMaximumSizefalseAplikovat MaximumSize.
intMaximumSize700Maximální velikost výstupu v pixelech.
boolShowAllLayoutsDgnfalseZahrnout všechna DGN rozvržení.
boolAutomaticLayoutScalingtrueAutomaticky škálovat rozvržení.
floatPdfMargins0.5Okraj PDF v palcích.
RenderQualityQualityImageLowKvalita rastru: Low, Medium nebo High.
RenderQualityQualityTextMediumKvalita textu: Low, Medium nebo High.

EmailConfig

Formáty: EML, EMLX, MSG. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní vykreslení e‑mailu; false používá PDF přesměrování.
PdfConfigPdfConfignew instanceNastavení cesty PDF.
Encoding?EmailEncodingnullPřepsat kódování zprávy.
Encoding?SubjectEncodingnullPřepsat kódování předmětu.
Encoding?BodyEncodingnullPřepsat kódování těla.
boolSkipExternalImagesfalseNenačítat vzdáleně odkazované obrázky. Doporučeno pro nedůvěryhodné e‑maily.
boolRemoveLastWhitePagefalseOdstranit koncovou prázdnou stránku.
boolUseAntiAliasingfalsePovolit anti‑aliasing.
boolUseHighQualityRenderingfalseUpřednostnit čistší, pomalejší vykreslování.
TimeSpan?TimeZoneOffsetnullPřepsat časové pásmo používané pro data.
boolForcePageSizefalseVynutit pevné rozměry stránky.

ImageConfig, TiffConfig, and PsdConfig

ImageConfig zahrnuje JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF a SVG. Jeho výchozí DPI je 100.

KonfiguraceVlastnostVýchozíChování
ImageConfigMaxImagePixelSize3000Maximální šířka/výška. 0 znamená neomezené; nenulové hodnoty pod 50 jsou ignorovány.
ImageConfigTransparentPngtrueZachovat průhlednost PNG; false používá bílý pozadí.
TiffConfigno additional propertiesDPI 200Používá pouze BaseConfig; podporuje vícestránkové TIFF.
PsdConfigMaxImagePixelSize3000Stejná validace 0/minimum‑50 jako u ImageConfig; výchozí DPI je 100.

DicomConfig

Formáty: DCM, IMA. Výchozí efektivní DPI: 100. Vyžaduje plugin DICOM.

TypVlastnostVýchozíChování
intHorizontalResolution100 (efektivní)Explicitní horizontální DPI; jinak ImageResolution, pak 100.
intVerticalResolution100 (efektivní)Explicitní vertikální DPI; jinak ImageResolution, pak 100.
intAnimationFrameDelayMs100Zpoždění animace více snímků; časování GIF používá jednotky 10 ms.
ushortLoopCount00 smyčkování navždy; kladné hodnoty zastaví po daném počtu.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly nebo kombinovaný přehled plus statické snímky.

TxtConfig

Formát: TXT. Výchozí DPI: 200.

TypVlastnostVýchozíChování
DocPaperSizePaperSizeA4Výstupní velikost papíru.
Encoding?FileEncodingnullnull používá UTF-8.
stringFontInformation""Informace o fontu pro vykreslování textu.

Použijte WordConfig, pokud prostý text potřebuje bohatší chování rozvržení stránky.

ProjectConfig

Formáty: MPP, MPPX, MPX. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní Ganttův obrázek; false používá textovou PDF cestu.
PdfConfigPdfConfignew instanceNastavení cesty PDF.
boolExportPdfAtrueArchivní výstup PDF/A.
MppPaperSizePaperSizeLedgerVelikost papíru výstupu projektu.
MppTimeScaleTimeScaleMonthsDays nebo Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet nebo TaskSheet.

Pro přesné vyhledávání podle textových souřadnic použijte DefaultRender = false.

VisioConfig

Formáty: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. Výchozí DPI: 200.

TypVlastnostVýchozíChování
boolDefaultRendertrueNativní vykreslení diagramu; false používá PDF přesměrování.
PdfConfigPdfConfignew instanceNastavení cesty PDF.
boolExportPdfAtrueArchivní výstup PDF/A.

HtmlConfig, EpubConfig, MhtConfig, and XpsConfig

Všechny čtyři mají ve výchozím nastavení 200 DPI a obsahují vnořený PdfConfig.

KonfiguraceFormátyDefaultRenderDalší vlastnosti/chování
HtmlConfigHTML, HTMtrueNativní vykreslení; použijte false pro textovou PDF vyhledávací cestu.
EpubConfigEPUBtrueNativní vykreslení; false používá PDF.
MhtConfigMHT, MHTMLtrue na třídě; false v automatickém kataloguNormální otevření bez konfigurace používá vyhledávatelný PDF přesměrování. Výchozí instance vytvořená explicitně vykresluje nativně.
XpsConfigXPSfalseVe výchozím nastavení používá PDF cestu; nastavte true pro nativní vykreslování obrázku.

Příklady konfigurací podle rodiny

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
    }
};

Výběr podle přípony

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 redirect → pixel-accurate native text search
    ".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
};

Byla tato stránka užitečná?