Konfiguracje Formatów

Pełne opcje renderowania dla każdego formatu

Każdy dokument otwiera się z implementacją BaseConfig. Przekaż ją do OpenDocumentAsync (lub OpenDocument) lub pozwól katalogowi formatów utworzyć domyślną. Wszystkie klasy poniżej znajdują się w przestrzeni nazw Doconut.

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

Dziedziczenie i zagnieżdżone ustawienia PDF

Każdy format dziedziczy pięć właściwości BaseConfig. Formaty, które mogą przekierowywać przez PDF, udostępniają zagnieżdżony PdfConfig. W WordConfig, ExcelConfig i PptConfig właściwości AllowSearch i AllowCopy są właściwościami wygodnymi, które odczytują i zapisują zagnieżdżony PdfConfig.

DefaultRender = true wybiera natywny renderer formatu. W formatach z przekierowaniem PDF, false najpierw konwertuje do pamięciowego PDF, a następnie używa przeglądarki PDF. Ta ścieżka jest często przydatna do wyszukiwania po współrzędnych tekstu, ale wymaga dodatkowej konwersji.

O ile nie podano inaczej, tabele przedstawiają domyślne wartości konstruktorów/właściwości. Automatyczny katalog formatów celowo nadpisuje dwie z nich: tworzy ExcelConfig z SplitWorksheets = true oraz MhtConfig z DefaultRender = false.

BaseConfig

TypWłaściwośćDomyślneZachowanie
intImageResolution00 używa domyślnego formatu. Poprawny zakres to 25‑300 DPI; nieprawidłowe przypisania są ignorowane.
stringDocumentCulture""Ustawienia regionalne dla dat i liczb. Niepuste wartości są przycinane; puste przypisania są ignorowane.
stringPassword""Hasło chronionego dokumentu. DocOptions.Password jest tutaj kopiowane automatycznie.
boolShowUItrueWłaściwość kompatybilności; bieżący renderer nie używa jej do sterowania paskiem narzędzi przeglądarki.
boolCachePagestrueBuforuje renderowane obrazy stron dla sesji dokumentu.

PdfConfig

Formaty: PDF. Domyślne DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertruePrzełącznik kompatybilności. Bieżąca fabryka używa natywnej przeglądarki PDF.
boolAllowSearchfalseTworzy/używa indeksu wyszukiwania tekstu w PDF. Wymaga licencji Search dla żądań.
boolAllowCopyfalseZezwala na zaznaczanie i kopiowanie tekstu.
boolExtractHyperlinksfalseWyodrębnia prostokąty linków dla nakładek po stronie klienta.
intHyperlinksPageCount0Maksymalna liczba stron skanowanych w poszukiwaniu linków; 0 oznacza wszystkie strony.
boolCompressImagesfalseKompresuje osadzone obrazy przed renderowaniem.
intCompressQuality100Jakość JPEG używana przy włączonej kompresji.
boolResizeImagesfalseZmienia rozmiar osadzonych obrazów przed renderowaniem.
intResizeResolution300Docelowe DPI dla zmienionych rozmiarowo obrazów.
boolCompressFastfalsePreferuje szybszą, niższej jakości ścieżkę kompresji.
boolFixInvalidImagesfalsePróbuje naprawić nieprawidłowe osadzone obrazy.
boolSplitSegmentsfalseŁączy ponownie słowa podzielone na segmenty linii, aby poprawić wyszukiwanie/kopiowanie.

showHyperlinks w ViewerConfig steruje nakładką po stronie klienta, natomiast ExtractHyperlinks steruje wyodrębnianiem po stronie serwera. Włącz oba.

WordConfig

Formaty: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. Domyślne DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywne renderowanie Word; false używa przekierowania PDF.
PdfConfigPdfConfignew instanceUstawienia używane w ścieżce PDF/wyszukiwania.
DocPaperSizePaperSizeA4Rozmiar papieru wyjściowego. Użyj Custom z szerokością/wysokością.
intPaperWidth595Niestandardowa szerokość w punktach.
intPaperHeight841Niestandardowa wysokość w punktach.
boolRemovePaperMarginfalseUsuwa marginesy stron dokumentu.
boolRenderPageColortrueZachowuje skonfigurowany kolor strony w Word; false renderuje białe strony.
boolExportPdfAfalseUżywa archiwalnego PDF/A w ścieżce PDF.
Encoding?FileEncodingnullZastępuje kodowanie źródła.
stringFontInfo""Informacje o podstawianiu czcionek.
string[]?FontFoldersnullDodatkowe katalogi czcionek — przydatne na serwerze, który nie posiada czcionek używanych w dokumentach.
boolAllowSearchfalseDeleguje do PdfConfig.AllowSearch.
boolAllowCopyfalseDeleguje do PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents lub AutoFitToWindow.

ExcelConfig

Formaty: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. Domyślna rozdzielczość DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywne renderowanie arkusza; false używa przekierowania do PDF.
PdfConfigPdfConfignowa instancjaUstawienia ścieżki PDF/wyszukiwania.
ExcelPaperSizePaperSizePaperA4Rozmiar papieru wyjściowego.
doublePaperMargins0.25Marginesy strony w calach.
boolPaperLandscapetrueRenderowanie arkusza w orientacji poziomej.
boolAutoFitContentsfalseAutomatyczne dopasowanie wysokości wierszy i szerokości kolumn.
boolRemoveEmptyContenttrueZacieśnienie wyjścia poprzez wykluczenie pustej zawartości.
boolCalculateFormulatruePonowne obliczanie formuł przed renderowaniem.
boolShowRowColumnHeaderstrueDołączenie nagłówków wierszy i kolumn arkusza.
boolExportPdfAfalseUżycie PDF/A w ścieżce PDF.
boolSplitWorksheetsfalseUtrzymanie arkuszy jako osobnych grup stron.
boolShowEmptyWorkSheetsfalseDołączenie pustych arkuszy.
boolExportLandscapefalseWymuszenie eksportu w orientacji poziomej.
boolExportOnePagePerSheetfalseDopasowanie każdego arkusza do jednej strony wyjściowej.
boolMemoryOptimizationPreferencetrueZmniejszenie maksymalnego zużycia pamięci, potencjalnie kosztem nieco niższej prędkości.
boolAutoTrimWorksheetRenderRangetrueRenderowanie tylko widocznego używanego zakresu, gdy nie istnieje wyraźny obszar drukowania.
boolAutoTrimPreserveExistingPrintAreatrueZachowanie zdefiniowanych w skoroszycie obszarów drukowania podczas automatycznego przycinania.
string?PrintAreanullWyraźny zakres, np. "A1:Z100".
boolPrintGridlinesfalseDrukowanie linii siatki arkusza.
boolPrintHeadingsfalseDrukowanie nagłówków wierszy/kolumn.
List<string>SheetNamesemptyOgraniczenie renderowania do arkuszy o podanych nazwach.
CustomStyleCell?CustomStylesnullOpcjonalne nadpisania formatowania daty/liczby dziesiętnej/liczby całkowitej.
boolAllowSearchfalseDeleguje do PdfConfig.AllowSearch.
boolAllowCopyfalseDeleguje do PdfConfig.AllowCopy.

CustomStyleCell udostępnia CustomStyleDateTime, CustomStyleNumberDecimal i CustomStyleNumberInteger, wszystkie jako nullable stringi.

new ExcelConfig() ustawia SplitWorksheets na false; otwarcie pliku Excel bez wyraźnej konfiguracji używa katalogu formatów, który ustawia ją na true.

PptConfig

Formaty: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. Domyślna rozdzielczość DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywne renderowanie slajdu; false używa przekierowania do PDF.
boolFastLoadfalseUnikanie renderowania pierwszego slajdu podczas otwierania; użycie metadanych i renderowanie na żądanie.
PdfConfigPdfConfignowa instancjaUstawienia zachowania PDF/wyszukiwania.
stringFontInfo""Informacje o podstawianiu czcionek.
string[]?FontFoldersnullDodatkowe katalogi czcionek.
boolAllowSearchfalseDeleguje do PdfConfig.AllowSearch.
boolAllowCopyfalseDeleguje do PdfConfig.AllowCopy.

Zainstaluj czcionki używane w prezentacjach na serwerze lub wskaż FontFolders na folder, który je zawiera. Windows Server bez Office ma znacznie mniej czcionek niż maszyna deweloperska, a brakujące czcionki są podstawiane bez żadnych błędów.

CadConfig

Formaty: DWG, DXF, DGN. Domyślna rozdzielczość DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywne renderowanie CAD; false używa przekierowania do PDF.
PdfConfigPdfConfignowa instancjaUstawienia ścieżki PDF.
boolExportPdfAfalseWyjście archiwalne PDF/A.
boolShowColortrueKolor zamiast czerni i bieli.
boolWhiteBackgroundtrueBiałe tło zamiast czarnego.
shortLineWidth25Szerokość kreski CAD.
boolShowLayoutsfalseRenderowanie zakładek układów.
boolShowModeltrueRenderowanie przestrzeni modelu.
boolCheck3DSolidtruePrzetwarzanie brył 3D.
boolExportAllLayoutsfalseEksport wszystkich układów, nadpisując wybór modelu/układu.
boolLimitMinimumSizefalseZastosowanie MinimumSize.
intMinimumSize700Minimalny rozmiar wyjścia w pikselach.
boolLimitMaximumSizefalseZastosowanie MaximumSize.
intMaximumSize700Maksymalny rozmiar wyjścia w pikselach.
boolShowAllLayoutsDgnfalseDołączenie wszystkich układów DGN.
boolAutomaticLayoutScalingtrueAutomatyczne skalowanie układów.
floatPdfMargins0.5Margines PDF w calach.
RenderQualityQualityImageLowJakość rastra: Low, Medium lub High.
RenderQualityQualityTextMediumJakość tekstu: Low, Medium lub High.

EmailConfig

Formaty: EML, EMLX, MSG. Domyślne DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywne renderowanie e‑mail; false używa przekierowania PDF.
PdfConfigPdfConfignowa instancjaUstawienia ścieżki PDF.
Encoding?EmailEncodingnullZastąp kodowanie wiadomości.
Encoding?SubjectEncodingnullZastąp kodowanie tematu.
Encoding?BodyEncodingnullZastąp kodowanie treści.
boolSkipExternalImagesfalseNie wczytuj zdalnie odwoływanych obrazów. Zalecane dla niepewnych e‑maili.
boolRemoveLastWhitePagefalseUsuń końcową pustą stronę.
boolUseAntiAliasingfalseWłącz antyaliasing.
boolUseHighQualityRenderingfalsePreferuj czystsze, wolniejsze renderowanie.
TimeSpan?TimeZoneOffsetnullZastąp strefę czasową używaną dla dat.
boolForcePageSizefalseWymuś stałe wymiary strony.

ImageConfig, TiffConfig, and PsdConfig

ImageConfig obsługuje JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF i SVG. Domyślne DPI to 100.

KonfiguracjaWłaściwośćDomyślneZachowanie
ImageConfigMaxImagePixelSize3000Maksymalna szerokość/wysokość. 0 oznacza nieograniczone; wartości niezerowe poniżej 50 są ignorowane.
ImageConfigTransparentPngtrueZachowaj przeźroczystość PNG; false używa białego tła.
TiffConfigbrak dodatkowych właściwościDPI 200Używa tylko BaseConfig; obsługuje wielostronicowy TIFF.
PsdConfigMaxImagePixelSize3000Ta sama walidacja 0/minimum‑50 co ImageConfig; domyślne DPI to 100.

DicomConfig

Formaty: DCM, IMA. Domyślne efektywne DPI: 100. Wymaga wtyczki DICOM. W tym pakiecie pliki DICOM renderują się w pełni, ale metadane techniczne nie są dostępne — zobacz Wtyczka DICOM.

TypWłaściwośćDomyślneZachowanie
intHorizontalResolution100 efektywneJawne poziome DPI; w przeciwnym razie ImageResolution, potem 100.
intVerticalResolution100 efektywneJawne pionowe DPI; w przeciwnym razie ImageResolution, potem 100.
intAnimationFrameDelayMs100Opóźnienie klatki animacji wieloklatkowej; timing GIF używa jednostek 10 ms.
ushortLoopCount00 powoduje nieskończone pętle; wartości dodatnie zatrzymują po podanej liczbie.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly lub połączony podgląd z klatkami statycznymi.

TxtConfig

Format: TXT. Domyślne DPI: 200.

TypWłaściwośćDomyślneZachowanie
DocPaperSizePaperSizeA4Rozmiar papieru wyjściowego.
Encoding?FileEncodingnullnull używa UTF-8.
stringFontInformation""Informacje o czcionce dla renderowania tekstu.

Użyj WordConfig, gdy zwykły tekst wymaga bardziej rozbudowanego układu strony.

ProjectConfig

Formaty: MPP, MPPX, MPX. Domyślne DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywny obraz Gantt; false używa ścieżki PDF opartej na tekście.
PdfConfigPdfConfignowa instancjaUstawienia ścieżki PDF.
boolExportPdfAtrueWyjście archiwalne PDF/A.
MppPaperSizePaperSizeLedgerRozmiar papieru wyjściowego projektu.
MppTimeScaleTimeScaleMonthsDays lub Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet lub TaskSheet.

Aby uzyskać dokładne wyszukiwanie po współrzędnych tekstu, użyj DefaultRender = false.

VisioConfig

Formaty: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. Domyślne DPI: 200.

TypWłaściwośćDomyślneZachowanie
boolDefaultRendertrueNatywne renderowanie diagramu; false używa przekierowania PDF.
PdfConfigPdfConfignowa instancjaUstawienia ścieżki PDF.
boolExportPdfAtrueWyjście archiwalne PDF/A.

HtmlConfig, EpubConfig, MhtConfig i XpsConfig

Wszystkie cztery domyślnie mają 200 DPI i udostępniają zagnieżdżony PdfConfig.

KonfiguracjaFormatyDefaultRenderDodatkowe właściwości/zachowanie
HtmlConfigHTML, HTMtrueNatywne renderowanie; użyj false dla ścieżki PDF opartej na tekście.
EpubConfigEPUBtrueNatywne renderowanie; false używa PDF.
MhtConfigMHT, MHTMLtrue w klasie; false w automatycznym kataloguNormalne otwarcie bez konfiguracji używa przeszukiwalnego przekierowania PDF. Jawnie skonstruowana domyślna instancja renderuje natywnie.
XpsConfigXPSfalseDomyślnie używa ścieżki PDF; ustaw true dla natywnego renderowania obrazu.

Przykłady konfiguracji według rodziny

csharp
BaseConfig[] configs =
{
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        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
    }
};

Wybór według rozszerzenia

csharp
static BaseConfig ConfigForExtension(string extUpper)
{
    switch (extUpper)
    {
        case ".DOC": case ".DOCX": case ".DOT": case ".DOTX": case ".ODT":
            return new WordConfig
            {
                AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
                PaperSize = DocPaperSize.Tabloid,
                PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
            };
        case ".PDF":
            return new PdfConfig { AllowSearch = true, AllowCopy = true };
        case ".XLS": case ".XLSX": case ".ODS": case ".CSV":
            return new ExcelConfig { AllowSearch = true, AllowCopy = true };
        case ".DCM": case ".IMA":
            return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };
        // DefaultRender = false → przekierowanie PDF → precyzyjne wyszukiwanie tekstu natywnego w pikselach
        case ".HTML": case ".HTM":
            return new HtmlConfig { DefaultRender = false };
        case ".EML": case ".EMLX": case ".MSG":
            return new EmailConfig { DefaultRender = false };
        default:
            return null; // fall back to the format's default config
    }
}

Czy ta strona była pomocna?