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

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

هر سند با یک پیاده‌سازی 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 واگذار می‌شود.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents, or 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 را نمایش می‌دهد، که همه رشته‌های قابل‌null هستند.

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پردازش اجسام 3D.
boolExportAllLayoutsfalseصادرات تمام طرح‌بندی‌ها، نادیده‌گیری انتخاب مدل/طرح‌بندی.
boolLimitMinimumSizefalseاعمال MinimumSize.
intMinimumSize700حداقل اندازه خروجی به پیکسل.
boolLimitMaximumSizefalseاعمال MaximumSize.
intMaximumSize700حداکثر اندازه خروجی به پیکسل.
boolShowAllLayoutsDgnfalseشامل تمام طرح‌بندی‌های DGN.
boolAutomaticLayoutScalingtrueمقیاس‌گذاری خودکار طرح‌بندی‌ها.
floatPdfMargins0.5حاشیه PDF به اینچ.
RenderQualityQualityImageLowکیفیت رستر: Low، Medium یا High.
RenderQualityQualityTextMediumکیفیت متن: Low، Medium یا High.

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

قالب‌ها: EML, EMLX, MSG. DPI پیش‌فرض: 200.

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

پیکربندی تصویر، پیکربندی TIFF و پیکربندی 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 است.

پیکربندی DICOM

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

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

پیکربندی TXT

قالب: TXT. DPI پیش‌فرض: 200.

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

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

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

قالب‌ها: MPP, MPPX, MPX. DPI پیش‌فرض: 200.

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

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

پیکربندی Visio

قالب‌ها: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI پیش‌فرض: 200.

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

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

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

پیکربندیقالب‌هاDefaultRenderویژگی‌ها/رفتارهای اضافی
HtmlConfigHTML, HTMtrueرندر بومی؛ برای مسیر جستجوی PDF مبتنی بر متن از false استفاده کنید.
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 = ["/usr/share/fonts/truetype"],
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = ["/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 → جستجوی متن بومی دقیق به پیکسل
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // به تنظیمات پیش‌فرض فرمت بازگردید
};

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