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

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

Кожен документ відкривається за допомогою реалізації 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.
PdfConfigPdfConfigновий екземплярНалаштування, що використовуються шляхом 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.
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>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Уникає рендерингу першого слайду під час відкриття; використовує метадані та рендерить за запитом.
PdfConfigPdfConfigновий екземплярНалаштування поведінки PDF/пошуку.
stringFontInfo""Інформація про заміну шрифтів.
string[]?FontFoldersnullДодаткові каталоги шрифтів.
boolAllowSearchfalseПередається PdfConfig.AllowSearch.
boolAllowCopyfalseПередається PdfConfig.AllowCopy.

Встановіть шрифти, які використовуються у презентаціях, на сервері, або вкажіть FontFolders на папку, що їх містить. Windows Server без Office має набагато менше шрифтів, ніж машина розробника, і відсутні шрифти замінюються без помилок.

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.
PdfConfigPdfConfignew instanceНалаштування шляху 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.

ТипВластивістьЗа замовчуваннямПоведінка
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.
PdfConfigPdfConfignew instanceНалаштування шляху 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.
PdfConfigPdfConfignew instanceНалаштування шляху 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
    }
}

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