Конфігурації Форматів
Повний набір параметрів рендерингу для кожного формату
Кожен документ відкривається за допомогою реалізації BaseConfig. Передайте її до OpenDocumentAsync або дозвольте каталогу форматів створити значення за замовчуванням. Усі класи нижче знаходяться у просторі імен Doconut.
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
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
int | ImageResolution | 0 | 0 використовує значення за замовчуванням формату. Дійсний явний діапазон — 25-300 DPI; недійсні призначення ігноруються. |
string | DocumentCulture | "" | Локаль для дат і чисел. Непорожні значення обрізаються; порожні призначення ігноруються. |
string | Password | "" | Пароль захищеного документа. DocOptions.Password копіюється сюди автоматично. |
bool | ShowUI | true | Властивість сумісності; поточний рендерер не використовує її для керування панеллю інструментів браузера. |
bool | CachePages | true | Кешувати зображення відрендерених сторінок протягом сеансу документа. |
PdfConfig
Формати: PDF. DPI за замовчуванням: 200.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Перемикач сумісності. Поточна фабрика використовує рідний переглядач PDF. |
bool | AllowSearch | false | Створити/використовувати індекс текстового пошуку PDF. Потрібна можливість ліцензії Search для запитів. |
bool | AllowCopy | false | Дозволити операції виділення/копіювання тексту. |
bool | ExtractHyperlinks | false | Видобути прямокутники посилань для накладань клієнта. |
int | HyperlinksPageCount | 0 | Максимальна кількість сторінок, сканованих для посилань; 0 означає кожну сторінку. |
bool | CompressImages | false | Стискати вбудовані зображення перед рендерингом. |
int | CompressQuality | 100 | Якість JPEG, що використовується при увімкненому стисненні. |
bool | ResizeImages | false | Змінювати розмір вбудованих зображень перед рендерингом. |
int | ResizeResolution | 300 | Цільове DPI для змінених зображень. |
bool | CompressFast | false | Надавати перевагу швидшому, менш якісному шляху стиснення. |
bool | FixInvalidImages | false | Спробувати виправити недійсні вбудовані зображення. |
bool | SplitSegments | false | Об’єднувати слова, розділені між сегментами рядка, для покращення пошуку/копіювання. |
showHyperlinks у ViewerConfig керує накладкою клієнта, тоді як ExtractHyperlinks керує серверним видобутком. Увімкніть обидва.
WordConfig
Формати: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI за замовчуванням: 200.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг нативного Word; false використовує перенаправлення PDF. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування, що використовуються шляхом PDF/пошуку. |
DocPaperSize | PaperSize | A4 | Розмір вихідного листа. Використовуйте Custom з шириною/висотою. |
int | PaperWidth | 595 | Користувацька ширина у пунктах. |
int | PaperHeight | 841 | Користувацька висота у пунктах. |
bool | RemovePaperMargin | false | Видалити поля сторінок документа. |
bool | RenderPageColor | true | Зберігати налаштований колір сторінки Word; false рендерить білі сторінки. |
bool | ExportPdfA | false | Використовувати архівний PDF/A у шляху PDF. |
Encoding? | FileEncoding | null | Перевизначити кодування джерела. |
string | FontInfo | "" | Інформація про заміну шрифтів. |
string[]? | FontFolders | null | Додаткові каталоги шрифтів, особливо корисні в Linux/контейнерах. |
bool | AllowSearch | false | Делегує PdfConfig.AllowSearch. |
bool | AllowCopy | false | Делегує PdfConfig.AllowCopy. |
TableAutoFitBehavior | AutoFitAllTables | None | None, AutoFitToContents або AutoFitToWindow. |
КонфігураціяExcel
Формати: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. Типова роздільна здатність DPI: 200.
| Тип | Властивість | Типово | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг листа у рідному форматі; false використовує перенаправлення PDF. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування шляху PDF/пошуку. |
ExcelPaperSize | PaperSize | PaperA4 | Розмір вихідного паперу. |
double | PaperMargins | 0.25 | Поля сторінки в дюймах. |
bool | PaperLandscape | true | Рендеринг листа у альбомній орієнтації. |
bool | AutoFitContents | false | Автоматичне підгонка висоти рядків та ширини стовпців. |
bool | RemoveEmptyContent | true | Скорочення вихідних даних шляхом виключення порожнього вмісту. |
bool | CalculateFormula | true | Перерахунок формул перед рендерингом. |
bool | ShowRowColumnHeaders | true | Включити заголовки електронних таблиць. |
bool | ExportPdfA | false | Використовувати PDF/A у шляху PDF. |
bool | SplitWorksheets | false | Зберігати листи як окремі групи сторінок. |
bool | ShowEmptyWorkSheets | false | Включати порожні листи. |
bool | ExportLandscape | false | Примусово експортувати в альбомній орієнтації. |
bool | ExportOnePagePerSheet | false | Підігнати кожен лист до однієї вихідної сторінки. |
bool | MemoryOptimizationPreference | true | Зменшити пікову пам'ять, можливо за рахунок швидкості. |
bool | AutoTrimWorksheetRenderRange | true | Рендерити лише видимий використаний діапазон, коли немає явно вказаної області друку. |
bool | AutoTrimPreserveExistingPrintArea | true | Зберігати області друку, визначені робочою книгою, під час автоматичного обрізання. |
string? | PrintArea | null | Явний діапазон, наприклад "A1:Z100". |
bool | PrintGridlines | false | Друкувати лінії сітки листа. |
bool | PrintHeadings | false | Друкувати заголовки рядків/стовпців. |
List<string> | SheetNames | порожньо | Обмежити рендеринг іменованими листами. |
CustomStyleCell? | CustomStyles | null | Необов'язкові перевизначення форматування дати/десяткових/цілих чисел. |
bool | AllowSearch | false | Делегується до PdfConfig.AllowSearch. |
bool | AllowCopy | false | Делегується до 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.
| Тип | Властивість | Типово | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг слайдів у рідному форматі; false використовує перенаправлення PDF. |
bool | FastLoad | false | Уникати рендерингу першого слайду під час відкриття; використовувати метадані та рендерити за запитом. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування поведінки PDF/пошуку. |
string | FontInfo | "" | Інформація про заміну шрифтів. |
string[]? | FontFolders | null | Додаткові каталоги шрифтів. |
bool | AllowSearch | false | Делегується до PdfConfig.AllowSearch. |
bool | AllowCopy | false | Делегується до PdfConfig.AllowCopy. |
У Linux та macOS рендеринг презентацій поточним рушієм вимагає libgdiplus та System.Drawing.EnableUnixSupport=true. Встановіть шрифти, які використовуються у презентації, або надайте FontFolders.
КонфігураціяCad
Формати: DWG, DXF, DGN. Типова роздільна здатність DPI: 200.
| Тип | Властивість | Типово | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг CAD у рідному форматі; false використовує перенаправлення PDF. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування шляху PDF. |
bool | ExportPdfA | false | Вихідний архівний PDF/A. |
bool | ShowColor | true | Колір замість монохрому. |
bool | WhiteBackground | true | Білий фон замість чорного. |
short | LineWidth | 25 | Ширина штриху CAD. |
bool | ShowLayouts | false | Рендеринг вкладок макету. |
bool | ShowModel | true | Рендеринг простору моделі. |
bool | Check3DSolid | true | Обробка 3D‑тіл. |
bool | ExportAllLayouts | false | Експорт всіх макетів, з перевагою над вибором моделі/макету. |
bool | LimitMinimumSize | false | Застосувати MinimumSize. |
int | MinimumSize | 700 | Мінімальний розмір виходу в пікселях. |
bool | LimitMaximumSize | false | Застосувати MaximumSize. |
int | MaximumSize | 700 | Максимальний розмір виходу в пікселях. |
bool | ShowAllLayoutsDgn | false | Включити всі DGN‑макети. |
bool | AutomaticLayoutScaling | true | Автоматично масштабувати макети. |
float | PdfMargins | 0.5 | Поле PDF у дюймах. |
RenderQuality | QualityImage | Low | Якість растру: Low, Medium або High. |
RenderQuality | QualityText | Medium | Якість тексту: Low, Medium або High. |
EmailConfig
Формати: EML, EMLX, MSG. DPI за замовчуванням: 200.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендер нативної електронної пошти; false використовує PDF‑перенаправлення. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування шляху PDF. |
Encoding? | EmailEncoding | null | Перевизначити кодування повідомлення. |
Encoding? | SubjectEncoding | null | Перевизначити кодування теми. |
Encoding? | BodyEncoding | null | Перевизначити кодування тіла. |
bool | SkipExternalImages | false | Не завантажувати віддалено посилані зображення. Рекомендовано для недовіреної електронної пошти. |
bool | RemoveLastWhitePage | false | Видалити останню порожню сторінку. |
bool | UseAntiAliasing | false | Увімкнути згладжування. |
bool | UseHighQualityRendering | false | Надавати перевагу чистішому, повільнішому рендерингу. |
TimeSpan? | TimeZoneOffset | null | Перевизначити часовий пояс, що використовується для дат. |
bool | ForcePageSize | false | Примусово встановити фіксовані розміри сторінки. |
ImageConfig, TiffConfig, and PsdConfig
ImageConfig охоплює JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF та SVG. DPI за замовчуванням – 100.
| Конфігурація | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
ImageConfig | MaxImagePixelSize | 3000 | Максимальна ширина/висота. 0 означає без обмежень; ненульові значення нижче 50 ігноруються. |
ImageConfig | TransparentPng | true | Зберігати прозорість PNG; false використовує білий фон. |
TiffConfig | немає додаткових властивостей | DPI 200 | Використовує лише BaseConfig; підтримує багатосторінковий TIFF. |
PsdConfig | MaxImagePixelSize | 3000 | Те ж 0/мінімальна-50 валідація, що й у ImageConfig; DPI за замовчуванням – 100. |
DicomConfig
Формати: DCM, IMA. Ефективний DPI за замовчуванням: 100. Потрібен плагін DICOM.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
int | HorizontalResolution | 100 ефективний | Явний горизонтальний DPI; інакше ImageResolution, потім 100. |
int | VerticalResolution | 100 ефективний | Явний вертикальний DPI; інакше ImageResolution, потім 100. |
int | AnimationFrameDelayMs | 100 | Затримка анімації багатокадрових зображень; таймінг GIF використовує одиниці 10 мс. |
ushort | LoopCount | 0 | 0 зациклюється назавжди; позитивні значення зупиняються після вказаної кількості. |
DicomDisplayMode | DisplayMode | AnimationAndFrames | AnimationOnly, FramesOnly, або комбінований огляд плюс статичні кадри. |
TxtConfig
Формат: TXT. DPI за замовчуванням: 200.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
DocPaperSize | PaperSize | A4 | Розмір вихідного паперу. |
Encoding? | FileEncoding | null | null використовує UTF-8. |
string | FontInformation | "" | Інформація про шрифт для рендерингу тексту. |
Використовуйте WordConfig, коли простий текст потребує більш розширеної поведінки макету сторінки.
ProjectConfig
Формати: MPP, MPPX, MPX. DPI за замовчуванням: 200.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Нативне зображення Gantt; false використовує текстовий шлях PDF. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування шляху PDF. |
bool | ExportPdfA | true | Архівний вихід PDF/A. |
MppPaperSize | PaperSize | Ledger | Розмір вихідного паперу проекту. |
MppTimeScale | TimeScale | Months | Days або Months. |
MppFormat | PresentationFormat | GanttChart | GanttChart, TaskUsage, ResourceUsage, ResourceSheet, або TaskSheet. |
Для точного пошуку за текстовими координатами використовуйте DefaultRender = false.
VisioConfig
Формати: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI за замовчуванням: 200.
| Тип | Властивість | За замовчуванням | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Нативний рендер діаграми; false використовує PDF‑перенаправлення. |
PdfConfig | PdfConfig | новий екземпляр | Налаштування шляху PDF. |
bool | ExportPdfA | true | Архівний вихід PDF/A. |
HtmlConfig, EpubConfig, MhtConfig, and XpsConfig
Усі чотири за замовчуванням мають DPI 200 і відкривають вкладений PdfConfig.
| Конфігурація | Формати | DefaultRender | Додаткові властивості/поведінка |
|---|---|---|---|
HtmlConfig | HTML, HTM | true | Нативний рендер; використайте false для текстового шляху пошуку PDF. |
EpubConfig | EPUB | true | Нативний рендер; false використовує PDF. |
MhtConfig | MHT, MHTML | true у класі; false в автоматичному каталозі | Звичайне відкриття без конфігурації використовує пошукове PDF‑перенаправлення. Явно створений екземпляр за замовчуванням рендериться нативно. |
XpsConfig | XPS | false | За замовчуванням використовує шлях PDF; встановіть true для нативного рендерингу зображень. |
Приклади конфігурації за сімейством
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
}
};Вибір за розширенням
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 // повернутись до типової конфігурації формату
};Чи була ця сторінка корисною?