Конфигурации Форматов
Полные параметры рендеринга для каждого формата
Каждый документ открывается с реализацией 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. |
ExcelConfig
Форматы: 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 | 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 | новый экземпляр | Настройки поведения 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 | новый экземпляр | Настройки пути 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 | Нативное изображение диаграммы Ганта; 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
};Была ли эта страница полезной?