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

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

Каждый документ открывается с реализацией BaseConfig. Передайте её в OpenDocumentAsync (или OpenDocument) или позвольте каталогу форматов создать значение по умолчанию. Все классы ниже находятся в пространстве имён 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.
PdfConfigPdfConfignew instanceНастройки, используемые в пути PDF/поиска.
DocPaperSizePaperSizeA4Размер выходного листа. Используйте Custom с шириной/высотой.
intPaperWidth595Пользовательская ширина в пунктах.
intPaperHeight841Пользовательская высота в пунктах.
boolRemovePaperMarginfalseУдалять поля страниц документа.
boolRenderPageColortrueСохранять настроенный в Word цвет страницы; false отрисовывает белые страницы.
boolExportPdfAfalseИспользовать архивный PDF/A в пути PDF.
Encoding?FileEncodingnullПереопределять кодировку исходного файла.
stringFontInfo""Информация о замене шрифтов.
string[]?FontFoldersnullДополнительные каталоги шрифтов — полезно на сервере, где отсутствуют шрифты, используемые в документах.
boolAllowSearchfalseПеренаправляется к PdfConfig.AllowSearch.
boolAllowCopyfalseПеренаправляется к PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents или AutoFitToWindow.

ExcelConfig

Форматы: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI по умолчанию: 200.

ТипСвойствоПо умолчаниюПоведение
boolDefaultRendertrueНативный рендер листа; false использует перенаправление в PDF.
PdfConfigPdfConfignew instanceНастройки пути 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Избегать рендеринга первого слайда при открытии; использовать метаданные и рендерить по запросу.
PdfConfigPdfConfignew instanceНастройки поведения PDF/поиска.
stringFontInfo""Информация о замене шрифтов.
string[]?FontFoldersnullДополнительные каталоги шрифтов.
boolAllowSearchfalseДелегирует PdfConfig.AllowSearch.
boolAllowCopyfalseДелегирует PdfConfig.AllowCopy.

Установите шрифты, используемые презентациями, на сервере, либо укажите FontFolders на папку, где они находятся. На Windows Server без Office доступно гораздо меньше шрифтов, чем на машине разработки, и отсутствующие шрифты заменяются без каких‑либо ошибок.

CadConfig

Форматы: DWG, DXF, DGN. DPI по умолчанию: 200.

ТипСвойствоПо умолчаниюПоведение
boolDefaultRendertrueНативный рендер CAD; false использует перенаправление в PDF.
PdfConfigPdfConfignew instanceНастройки пути 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. В этом пакете файлы DICOM полностью рендерятся, но технические метаданные недоступны — см. DICOM Plugin.

ТипСвойствоПо умолчаниюПоведение
intHorizontalResolution100 эффективныйЯвный горизонтальный DPI; иначе берётся ImageResolution, затем 100.
intVerticalResolution100 эффективныйЯвный вертикальный 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

Все четыре по умолчанию используют DPI 200 и предоставляют вложенный 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[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        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)
{
    switch (extUpper)
    {
        case ".DOC": case ".DOCX": case ".DOT": case ".DOTX": case ".ODT":
            return new WordConfig
            {
                AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
                PaperSize = DocPaperSize.Tabloid,
                PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
            };
        case ".PDF":
            return new PdfConfig { AllowSearch = true, AllowCopy = true };
        case ".XLS": case ".XLSX": case ".ODS": case ".CSV":
            return new ExcelConfig { AllowSearch = true, AllowCopy = true };
        case ".DCM": case ".IMA":
            return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };
        // DefaultRender = false → PDF redirect → pixel-accurate native text search
        case ".HTML": case ".HTM":
            return new HtmlConfig { DefaultRender = false };
        case ".EML": case ".EMLX": case ".MSG":
            return new EmailConfig { DefaultRender = false };
        default:
            return null; // fall back to the format's default config
    }
}

Была ли эта страница полезной?