پیکربندی‌های فرمت

گزینه‌های کامل رندر برای هر فرمت

هر سندی با یک پیاده‌سازی BaseConfig باز می‌شود. یک نمونه را به OpenDocumentAsync پاس دهید یا بگذارید فهرست فرمت پیش‌فرض خود را ایجاد کند. تمام کلاس‌های زیر در فضای نام 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 از پیش‌فرض فرمت استفاده می‌کند. بازه معتبر صریح ۲۵‑۳۰۰ DPI است؛ مقادیر نامعتبر نادیده گرفته می‌شوند.
stringDocumentCulture""محل تاریخ‌ها و اعداد. مقادیر غیر خالی برش می‌شوند؛ مقادیر خالی نادیده گرفته می‌شوند.
stringPassword""رمز عبور سند محافظت‌شده. DocOptions.Password به‌صورت خودکار اینجا کپی می‌شود.
boolShowUItrueویژگی سازگاری؛ رندر کننده فعلی از آن برای کنترل نوار ابزار مرورگر استفاده نمی‌کند.
boolCachePagestrueکش کردن تصاویر صفحات رندر شده برای جلسه سند.

PdfConfig

فرمت‌ها: PDF. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueسوئیچ سازگاری. کارخانه فعلی از نمایشگر بومی PDF استفاده می‌کند.
boolAllowSearchfalseساخت/استفاده از فهرست جستجوی متنی PDF. برای درخواست‌ها به قابلیت لایسنس Search نیاز دارد.
boolAllowCopyfalseاجازه عملیات انتخاب/کپی متن.
boolExtractHyperlinksfalseاستخراج مستطیل‌های لینک برای لایه‌های مشتری.
intHyperlinksPageCount0حداکثر صفحات اسکن‌شده برای لینک‌ها؛ 0 به معنای همه صفحات است.
boolCompressImagesfalseفشرده‌سازی تصاویر توکار قبل از رندر.
intCompressQuality100کیفیت JPEG هنگام فعال بودن فشرده‌سازی.
boolResizeImagesfalseتغییر اندازه تصاویر توکار قبل از رندر.
intResizeResolution300DPI هدف برای تصاویر تغییر اندازه‌یافته.
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 واگذار می‌شود.
TableAutoFitBehaviorAutoFitAllTablesNoneگزینه‌های None، 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 واگذار می‌شود.

در لینوکس و macOS، رندر ارائه با موتور فعلی نیاز به libgdiplus و System.Drawing.EnableUnixSupport=true دارد. قلم‌های استفاده‌شده در ارائه را نصب کنید یا FontFolders را فراهم کنید.

CadConfig

فرمت‌ها: DWG, DXF, DGN. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueرندر بومی CAD؛ false از بازگردانی PDF استفاده می‌کند.
PdfConfigPdfConfignew instanceتنظیمات مسیر PDF.
boolExportPdfAfalseخروجی بایگانی PDF/A.
boolShowColortrueرنگ به‌جای تک‌رنگ.
boolWhiteBackgroundtrueپس‌زمینه سفید به‌جای سیاه.
shortLineWidth25عرض خط CAD.
boolShowLayoutsfalseرندر تب‌های طرح‌بندی.
boolShowModeltrueرندر فضای مدل.
boolCheck3DSolidtrueپردازش اجسام سه‌بعدی.
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 است.

Configویژگیپیش‌فرضرفتار
ImageConfigMaxImagePixelSize3000حداکثر عرض/ارتفاع. 0 به معنای نامحدود است؛ مقادیر غیرصفر زیر ۵۰ نادیده گرفته می‌شوند.
ImageConfigTransparentPngtrueحفظ شفافیت PNG؛ false از پس‌زمینهٔ سفید استفاده می‌کند.
TiffConfigبدون ویژگی‌های اضافیDPI 200فقط از BaseConfig استفاده می‌کند؛ از TIFF چندصفحه‌ای پشتیبانی می‌کند.
PsdConfigMaxImagePixelSize3000همان اعتبار 0/حداقل‑۵۰ همانند ImageConfig؛ DPI پیش‌فرض 100 است.

DicomConfig

فرمت‌ها: DCM, IMA. DPI مؤثر پیش‌فرض: 100. نیاز به افزونه DICOM دارد.

نوعویژگیپیش‌فرضرفتار
intHorizontalResolution100 effectiveDPI افقی صریح؛ در غیر این صورت ImageResolution، سپس 100.
intVerticalResolution100 effectiveDPI عمودی صریح؛ در غیر این صورت ImageResolution، سپس 100.
intAnimationFrameDelayMs100تاخیر فریم‌های چند‑قابلی؛ زمان‌بندی GIF از واحدهای ۱۰ ms استفاده می‌کند.
ushortLoopCount00 به‌معنای حلقه بی‌نهایت؛ مقادیر مثبت پس از آن تعداد حلقه متوقف می‌شوند.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly، FramesOnly یا ترکیبی از نمای کلی به‌همراه فریم‌های ثابت.

TxtConfig

فرمت: TXT. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
DocPaperSizePaperSizeA4اندازه کاغذ خروجی.
Encoding?FileEncodingnullnull از UTF-8 استفاده می‌کند.
stringFontInformation""اطلاعات قلم برای رندر متن.

برای متنی ساده که به رفتارهای پیشرفتهٔ چیدمان صفحه نیاز دارد، از WordConfig استفاده کنید.

ProjectConfig

فرمت‌ها: MPP, MPPX, MPX. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueتصویر گانت بومی؛ 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 تو در تو را افشا می‌کنند.

Configفرمت‌هاDefaultRenderویژگی‌ها/رفتارهای اضافی
HtmlConfigHTML, HTMtrueرندر بومی؛ برای مسیر جستجوی PDF مبتنی بر متن از false استفاده کنید.
EpubConfigEPUBtrueرندر بومی؛ false از PDF استفاده می‌کند.
MhtConfigMHT, MHTMLtrue on the class; false in the automatic catalogبازگشت پیش‌فرض بدون پیکربندی، از بازگردانی PDF جستجوپذیر استفاده می‌کند. یک نمونهٔ پیش‌فرض به‌صورت صریح بومی رندر می‌شود.
XpsConfigXPSfalseبه‌صورت پیش‌فرض از مسیر PDF استفاده می‌کند؛ برای رندر تصویر بومی true تنظیم کنید.

مثال‌های پیکربندی بر حسب خانواده

csharp
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
    }
};

انتخاب بر اساس پسوند

csharp
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
};

آیا این صفحه مفید بود؟