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

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

هر سندی با یک پیاده‌سازی 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 استفاده می‌کند.
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 واگذار می‌شود.

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

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 استفاده می‌کند.
PdfConfigPdfConfigنمونه جدیدتنظیمات مسیر PDF.
Encoding?EmailEncodingnullبازنویسی رمزگذاری پیام.
Encoding?SubjectEncodingnullبازنویسی رمزگذاری موضوع.
Encoding?BodyEncodingnullبازنویسی رمزگذاری بدنه.
boolSkipExternalImagesfalseبارگذاری تصاویر مرجع از راه دور را نادیده بگیرید. برای ایمیل‌های غیرقابل اعتماد توصیه می‌شود.
boolRemoveLastWhitePagefalseحذف صفحه سفید انتهایی.
boolUseAntiAliasingfalseفعال‌سازی ضد‌لبه‌دار (anti-aliasing).
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 به معنای نامحدود است؛ مقادیر غیر صفر زیر ۵۰ نادیده گرفته می‌شوند.
ImageConfigTransparentPngtrueحفظ شفافیت PNG؛ false از پس‌زمینه سفید استفاده می‌کند.
TiffConfigبدون ویژگی‌های اضافیDPI 200فقط از BaseConfig استفاده می‌کند؛ از TIFF چندصفحه‌ای پشتیبانی می‌کند.
PsdConfigMaxImagePixelSize3000همان اعتبارسنجی 0/حداقل ۵۰ مانند ImageConfig؛ DPI پیش‌فرض 100 است.

DicomConfig

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

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

TxtConfig

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

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

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

ProjectConfig

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

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

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