Конфігурації Форматів
Повні параметри рендерингу для кожного формату
Кожен документ відкривається з реалізацією BaseConfig. Передайте її в OpenDocumentAsync або дозвольте каталогу форматів створити типову. Усі класи нижче знаходяться в просторі імен Doconut.
Цей окремий простір імен новий. Попередня бібліотека .NET Standard розподіляла ці типи між Doconut.Configs, Doconut.Configs.View та Doconut.Models. Назви типів не змінилися — у більшості файлів зміна полягає лише у видаленні двох рядків using. Дивіться посібник з міграції.
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 | new instance | Налаштування, що використовуються шляхом 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. |
ExcelConfig
Формати: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. Типова роздільна здатність DPI: 200.
| Тип | Властивість | Типове значення | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг листа у рідному форматі; false використовує перенаправлення в PDF. |
PdfConfig | PdfConfig | new instance | Налаштування шляху 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 | empty | Обмежує рендеринг іменованими листами. |
CustomStyleCell? | CustomStyles | null | Необов'язкові перевизначення форматування дати/десяткових/цілих чисел. |
bool | AllowSearch | false | Передається PdfConfig.AllowSearch. |
bool | AllowCopy | false | Передається 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.
| Тип | Властивість | Типове значення | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг слайдів у рідному форматі; false використовує перенаправлення в PDF. |
bool | FastLoad | false | Уникає рендерингу першого слайду під час відкриття; використовує метадані та рендерить за запитом. |
PdfConfig | PdfConfig | new instance | Налаштування поведінки PDF/пошуку. |
string | FontInfo | "" | Інформація про заміну шрифтів. |
string[]? | FontFolders | null | Додаткові каталоги шрифтів. |
bool | AllowSearch | false | Передається PdfConfig.AllowSearch. |
bool | AllowCopy | false | Передається PdfConfig.AllowCopy. |
У Linux та macOS рендеринг презентацій поточним рушієм вимагає libgdiplus та System.Drawing.EnableUnixSupport=true. Встановіть шрифти, що використовуються у презентації, або вкажіть FontFolders.
CadConfig
Формати: DWG, DXF, DGN. Типова роздільна здатність DPI: 200.
| Тип | Властивість | Типове значення | Поведінка |
|---|---|---|---|
bool | DefaultRender | true | Рендеринг CAD у рідному форматі; false використовує перенаправлення в PDF. |
PdfConfig | PdfConfig | new instance | Налаштування шляху 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 та 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 effective | Явний горизонтальний DPI; інакше використовується ImageResolution, потім 100. |
int | VerticalResolution | 100 effective | Явний вертикальний 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 та 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 → 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
};Чи була ця сторінка корисною?