Конфігурації Форматів

Повний набір параметрів рендерингу для кожного формату

Кожен документ відкривається з реалізації BaseConfig. Передайте її до OpenDocumentAsync або дозвольте каталогу форматів створити значення за замовчуванням. Усі класи нижче розташовані в просторі імен Doconut.

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Користувацька ширина у пунктах.
intPaperHeight841Користувацька висота у пунктах.
boolRemovePaperMarginfalseВидалити поля сторінки документа.
boolRenderPageColortrueЗберігати налаштований колір сторінки Word; false відображає білі сторінки.
boolExportPdfAfalseВикористовувати архівний PDF/A у шляху PDF.
Encoding?FileEncodingnullПеревизначити кодування джерела.
stringFontInfo""Інформація про заміну шрифтів.
string[]?FontFoldersnullДодаткові каталоги шрифтів, особливо корисні в Linux/контейнерах.
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>SheetNamesemptyОбмежити рендеринг лише іменованими листами.
CustomStyleCell?CustomStylesnullНеобов'язкові перевизначення форматування дати/десяткових/цілих чисел.
boolAllowSearchfalseДелегується до PdfConfig.AllowSearch.
boolAllowCopyfalseДелегується до PdfConfig.AllowCopy.

CustomStyleCell надає доступ до CustomStyleDateTime, CustomStyleNumberDecimal та CustomStyleNumberInteger, усі рядки, які можуть бути null.

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Якість растру: Low, Medium або High.
RenderQualityQualityTextMediumЯкість тексту: Low, Medium або High.

EmailConfig

Формати: EML, EMLX, MSG. DPI за замовчуванням: 200.

ТипВластивістьЗа замовчуваннямПоведінка
boolDefaultRendertrueРендер нативної електронної пошти; false використовує перенаправлення PDF.
PdfConfigPdfConfigновий екземплярНалаштування шляху PDF.
Encoding?EmailEncodingnullПеревизначити кодування повідомлення.
Encoding?SubjectEncodingnullПеревизначити кодування теми.
Encoding?BodyEncodingnullПеревизначити кодування тіла.
boolSkipExternalImagesfalseНе завантажувати віддалено посилані зображення. Рекомендовано для недовіреної електронної пошти.
boolRemoveLastWhitePagefalseВидалити останню порожню сторінку.
boolUseAntiAliasingfalseУвімкнути згладжування.
boolUseHighQualityRenderingfalseНадавати перевагу чистішому, повільнішому рендерингу.
TimeSpan?TimeZoneOffsetnullПеревизначити часовий пояс, що використовується для дат.
boolForcePageSizefalseПримусово встановити фіксовані розміри сторінки.

ImageConfig, TiffConfig, and 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 використовує білий фон.
TiffConfigнемає додаткових властивостейDPI 200Використовує лише BaseConfig; підтримує багатосторінковий TIFF.
PsdConfigMaxImagePixelSize3000Те ж саме 0/мінімальна-50 валідація, що і у ImageConfig; DPI за замовчуванням — 100.

DicomConfig

Формати: DCM, IMA. Ефективний DPI за замовчуванням: 100. Потрібний плагін DICOM.

ТипВластивістьЗа замовчуваннямПоведінка
intHorizontalResolution100 ефективнийЯвний горизонтальний DPI; інакше ImageResolution, потім 100.
intVerticalResolution100 ефективнийЯвний вертикальний DPI; інакше ImageResolution, потім 100.
intAnimationFrameDelayMs100Затримка анімації багатокадрових зображень; таймінг GIF використовує одиниці 10 мс.
ushortLoopCount00 зациклюється назавжди; позитивні значення зупиняються після вказаної кількості.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly, або комбінований огляд плюс статичні кадри.

TxtConfig

Формат: TXT. DPI за замовчуванням: 200.

ТипВластивістьЗа замовчуваннямПоведінка
DocPaperSizePaperSizeA4Розмір вихідного паперу.
Encoding?FileEncodingnullnull використовує UTF-8.
stringFontInformation""Інформація про шрифт для рендерингу тексту.

Використовуйте WordConfig, коли простий текст потребує більш розширеної поведінки розмітки сторінки.

ProjectConfig

Формати: MPP, MPPX, MPX. DPI за замовчуванням: 200.

ТипВластивістьЗа замовчуваннямПоведінка
boolDefaultRendertrueНативне зображення Gantt; false використовує текстовий шлях PDF.
PdfConfigPdfConfigновий екземплярНалаштування шляху 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.
PdfConfigPdfConfigновий екземплярНалаштування шляху PDF.
boolExportPdfAtrueАрхівний вихід PDF/A.

HtmlConfig, EpubConfig, MhtConfig, and XpsConfig

Усі чотири за замовчуванням мають DPI 200 і відкривають вкладений PdfConfig.

КонфігФорматиDefaultRenderДодаткові властивості/поведінка
HtmlConfigHTML, HTMtrueНативний рендер; використайте false для текстового шляху пошуку PDF.
EpubConfigEPUBtrueНативний рендер; false використовує PDF.
MhtConfigMHT, MHTMLtrue у класі; false в автоматичному каталозіЗвичайне відкриття без конфігурації використовує перенаправлення PDF з можливістю пошуку. Явно створений екземпляр за замовчуванням рендерить нативно.
XpsConfigXPSfalseВикористовує шлях PDF за замовчуванням; встановіть true для нативного рендерингу зображень.

Приклади конфігурації за сімейством

csharp
BaseConfig[] configs =
[
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = ["/usr/share/fonts/truetype"],
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = ["/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 перенаправлення → піксельно-точний нативний пошук тексту
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // повернутись до типової конфігурації формату
};

Чи була ця сторінка корисною?