پیکربندی‌های قالب

گزینه‌های رندر برای هر قالب

هر سند با یک پیاده‌سازی BaseConfig باز می‌شود. یکی را به OpenDocumentAsync پاس دهید یا بگذارید فهرست قالب پیش‌فرض خود را ایجاد کند. تمام کلاس‌های زیر در فضای نام Doconut قرار دارند.

آن فضای نام واحد جدید است. کتابخانه قبلی .NET Standard این انواع را در Doconut.Configs، Doconut.Configs.View و Doconut.Models پخش کرده بود. نام‌های نوع تغییر نکرده‌اند — در اکثر فایل‌ها ویرایش کامل حذف دو خط using است. راهنمای راهنمای مهاجرت را ببینید.

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 واگذار می‌شود.
TableAutoFitBehaviorAutoFitAllTablesNoneNone، AutoFitToContents یا AutoFitToWindow.

پیکربندی Excel

قالب‌ها: 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 تنظیم می‌نماید.

پیکربندی Ppt

قالب‌ها: 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 را فراهم کنید.

پیکربندی Cad

قالب‌ها: DWG, DXF, DGN. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueرندر بومی CAD؛ false از تغییر مسیر PDF استفاده می‌کند.
PdfConfigPdfConfignew instanceتنظیمات مسیر PDF.
boolExportPdfAfalseخروجی PDF/A بایگانی.
boolShowColortrueرنگ به‌جای تک‌رنگ.
boolWhiteBackgroundtrueپس‌زمینه سفید به‌جای سیاه.
shortLineWidth25عرض خط CAD.
boolShowLayoutsfalseرندر تب‌های طرح‌بندی.
boolShowModeltrueرندر فضای مدل.
boolCheck3DSolidtrueپردازش اجسام سه‌بعدی.
boolExportAllLayoutsfalseخروجی تمام طرح‌بندی‌ها، نادیده‌گیری انتخاب مدل/طرح‌بندی.
boolLimitMinimumSizefalseMinimumSize اعمال می‌شود.
intMinimumSize700حداقل اندازه خروجی بر حسب پیکسل.
boolLimitMaximumSizefalseMaximumSize اعمال می‌شود.
intMaximumSize700حداکثر اندازه خروجی بر حسب پیکسل.
boolShowAllLayoutsDgnfalseشامل تمام طرح‌بندی‌های DGN.
boolAutomaticLayoutScalingtrueمقیاس‌گذاری خودکار طرح‌بندی‌ها.
floatPdfMargins0.5حاشیه PDF بر حسب اینچ.
RenderQualityQualityImageLowکیفیت رستر: Low، Medium یا High.
RenderQualityQualityTextMediumکیفیت متن: Low، Medium یا High.

پیکربندی ایمیل

فرمت‌ها: EML، EMLX، MSG. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueرندر بومی ایمیل؛ false از مسیر PDF استفاده می‌کند.
PdfConfigPdfConfignew instanceتنظیمات مسیر PDF.
Encoding?EmailEncodingnullبازنویسی رمزگذاری پیام.
Encoding?SubjectEncodingnullبازنویسی رمزگذاری موضوع.
Encoding?BodyEncodingnullبازنویسی رمزگذاری بدنه.
boolSkipExternalImagesfalseبارگذاری تصاویر مرجع از راه دور انجام نمی‌شود. برای ایمیل‌های غیرقابل اعتماد توصیه می‌شود.
boolRemoveLastWhitePagefalseحذف صفحه سفید انتهایی.
boolUseAntiAliasingfalseفعال‌سازی anti-aliasing.
boolUseHighQualityRenderingfalseترجیح رندر تمیزتر اما کندتر.
TimeSpan?TimeZoneOffsetnullبازنویسی منطقه زمانی استفاده‌شده برای تاریخ‌ها.
boolForcePageSizefalseاجبار به ابعاد ثابت صفحه.

پیکربندی تصویر، پیکربندی تیف و پیکربندی PSD

ImageConfig شامل JPG، JPEG، JPE، PNG، BMP، GIF، ICO، EPS، TGA، WEBP، CDR، CMX، DNG، EMF، WMF، AVIF و SVG است. DPI پیش‌فرض آن 100 است.

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

پیکربندی دیکام

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

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

پیکربندی متن

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

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

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

پیکربندی پروژه

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

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueتصویر گانت بومی؛ false از مسیر PDF مبتنی بر متن استفاده می‌کند.
PdfConfigPdfConfignew instanceتنظیمات مسیر PDF.
boolExportPdfAtrueخروجی PDF/A بایگانی.
MppPaperSizePaperSizeLedgerاندازه کاغذ خروجی پروژه.
MppTimeScaleTimeScaleMonthsDays یا Months.
MppFormatPresentationFormatGanttChartGanttChart، TaskUsage، ResourceUsage، ResourceSheet یا TaskSheet.

برای جستجوی دقیق متن‑مختصات، از DefaultRender = false استفاده کنید.

پیکربندی ویژیو

فرمت‌ها: VSD، VSDX، VSS، VSSX، VST، VSTX، VDX، VSX، VSDM. DPI پیش‌فرض: 200.

نوعویژگیپیش‌فرضرفتار
boolDefaultRendertrueرندر بومی نمودار؛ false از مسیر PDF استفاده می‌کند.
PdfConfigPdfConfignew instanceتنظیمات مسیر PDF.
boolExportPdfAtrueخروجی PDF/A بایگانی.

پیکربندی HTML، پیکربندی EPUB، پیکربندی MHT و پیکربندی XPS

هر چهار به‌صورت پیش‌فرض 200 DPI دارند و یک PdfConfig تو در تو را نمایش می‌دهند.

پیکربندیفرمت‌هاDefaultRenderویژگی‌ها/رفتارهای اضافی
HtmlConfigHTML، HTMtrueرندر بومی؛ برای مسیر جستجوی PDF مبتنی بر متن از false استفاده کنید.
EpubConfigEPUBtrueرندر بومی؛ false از PDF استفاده می‌کند.
MhtConfigMHT، MHTMLtrue در کلاس؛ false در فهرست خودکاردر کلاس true؛ در فهرست خودکار 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[] { "/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
};

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