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

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

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

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 та 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 effectiveЯвний горизонтальний DPI; інакше ImageResolution, потім 100.
intVerticalResolution100 effectiveЯвний вертикальний 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Рідне зображення діаграми Ганта; 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 та XpsConfig

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

КонфігураціяФорматиDefaultRenderДодаткові властивості/поведінка
HtmlConfigHTML, HTMtrueРідний рендер; використайте false для текстового шляху PDF пошуку.
EpubConfigEPUBtrueРідний рендер; false використовує PDF.
MhtConfigMHT, MHTML`true` у класі; `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 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
};

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