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

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

Кожен документ відкривається за допомогою реалізації 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.

КонфігураціяExcel

Формати: 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, усі рядки, які можуть бути null.

new ExcelConfig() встановлює SplitWorksheets у false; відкриття Excel‑файлу без явної конфігурації використовує каталог форматів, який встановлює його у true.

КонфігураціяPpt

Формати: 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.

КонфігураціяCad

Формати: 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 = 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 redirect → піксельно-точний нативний пошук тексту
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // повернутись до типової конфігурації формату
};

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