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

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

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

Цей окремий простір імен новий. Попередня бібліотека .NET Standard розподіляла ці типи між Doconut.Configs, Doconut.Configs.View і Doconut.Models. Назви типів не змінювалися — у більшості файлів зміна полягає у видаленні двох рядків using. Дивіться посібник з міграції.

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>SheetNamesпорожнєОбмежити рендеринг іменованими листами.
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Рідне зображення 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 та XpsConfig

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

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