تهيئة الصيغ

خيارات العرض الكاملة لكل صيغة

كل مستند يفتح باستخدام تنفيذ 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 يستخدم الافتراضي الخاص بالصِيغة. النطاق الصريح الصالح هو 25-300 DPI؛ يتم تجاهل التعيينات غير الصالحة.
stringDocumentCulture""الإعداد الإقليمي للتواريخ والأرقام. القيم غير الفارغة تُقَص؛ التعيينات الفارغة تُتَجاهَل.
stringPassword""كلمة مرور المستند المحمي. يتم نسخ DocOptions.Password هنا تلقائيًا.
boolShowUItrueخاصية التوافق؛ العارض الحالي لا يستخدمها للتحكم في شريط أدوات المتصفح.
boolCachePagestrueتخزين مؤقت لصور الصفحات المُعالجة لجلسة المستند.

PdfConfig

الصيغ: PDF. DPI الافتراضي: 200.

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueمفتاح التوافق. المصنع الحالي يستخدم عارض PDF الأصلي.
boolAllowSearchfalseإنشاء/استخدام فهرس البحث النصي في PDF. يتطلب قدرة ترخيص البحث للطلبات.
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دليل خطوط إضافي، مفيد خصوصًا في Linux/الحاويات.
boolAllowSearchfalseيفوض إلى PdfConfig.AllowSearch.
boolAllowCopyfalseيفوض إلى PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone، AutoFitToContents، أو AutoFitToWindow.

تكوين Excel

الصيغ: 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>SheetNamesفارغقصر العرض على أوراق العمل المسماة.
CustomStyleCell?CustomStylesnullتجاوزات اختيارية لتنسيق التاريخ/العشري/الصحيح.
boolAllowSearchfalseيفوض إلى PdfConfig.AllowSearch.
boolAllowCopyfalseيفوض إلى PdfConfig.AllowCopy.

CustomStyleCell يكشف عن CustomStyleDateTime، CustomStyleNumberDecimal، وCustomStyleNumberInteger، جميعها سلاسل يمكن أن تكون فارغة.

new ExcelConfig() يضبط SplitWorksheets إلى false؛ فتح ملف Excel بدون تكوين صريح يستخدم كتالوج الصيغ، الذي يضبطه إلى true.

تكوين PPT

الصيغ: 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.

على نظامي Linux و macOS، يتطلب عرض العروض التقديمية بالمحرك الحالي libgdiplus و System.Drawing.EnableUnixSupport=true. قم بتثبيت الخطوط المستخدمة في العرض التقديمي أو قدم FontFolders.

تكوين CAD

الصيغ: DWG, DXF, DGN. دقة DPI الافتراضية: 200.

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueعرض CAD أصلي؛ false يستخدم إعادة توجيه PDF.
PdfConfigPdfConfigمثيل جديدإعدادات مسار 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.

تكوين البريد الإلكتروني

الصيغ: 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 يعني غير محدود؛ القيم غير الصفرية الأقل من 50 يتم تجاهلها.
ImageConfigTransparentPngtrueالحفاظ على شفافية PNG؛ false يستخدم خلفية بيضاء.
TiffConfigلا خصائص إضافيةDPI 200يستخدم فقط BaseConfig؛ يدعم TIFF متعدد الصفحات.
PsdConfigMaxImagePixelSize3000نفس تحقق 0/الحد الأدنى 50 كما في ImageConfig؛ DPI الافتراضي هو 100.

تكوين Dicom

الصيغ: DCM، IMA. DPI الفعال الافتراضي: 100. يتطلب ملحق DICOM.

النوعالخاصيةالافتراضيالسلوك
intHorizontalResolution100 فعّالDPI أفقي صريح؛ وإلا ImageResolution، ثم 100.
intVerticalResolution100 فعّالDPI عمودي صريح؛ وإلا ImageResolution، ثم 100.
intAnimationFrameDelayMs100تأخير الرسوم المتحركة متعددة الإطارات؛ توقيت GIF يستخدم وحدات 10 مللي ثانية.
ushortLoopCount00 يتكرر إلى الأبد؛ القيم الموجبة تتوقف بعد ذلك العدد.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly، FramesOnly، أو نظرة عامة مركبة بالإضافة إلى إطارات ثابتة.

تكوين النص

الصيغة: TXT. DPI الافتراضي: 200.

النوعالخاصيةالافتراضيالسلوك
DocPaperSizePaperSizeA4حجم ورق الإخراج.
Encoding?FileEncodingnullnull يستخدم UTF-8.
stringFontInformation""معلومات الخط لعرض النص.

استخدم WordConfig عندما يحتاج النص العادي إلى سلوك تخطيط صفحة أغنى.

تكوين المشروع

الصيغ: MPP، MPPX، MPX. DPI الافتراضي: 200.

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueصورة Gantt أصلية؛ 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عرض أصلي؛ استخدم 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[] { "/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 إعادة توجيه → بحث نصي أصلي بدقة البكسل
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // العودة إلى الإعداد الافتراضي للتنسيق
};

هل كانت هذه الصفحة مفيدة؟