تكوينات الصيغ

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

كل مستند يُفتح باستخدام تنفيذ 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. يتطلب ترخيص 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دلائل خطوط إضافية، مفيدة خصوصًا في Linux/الحاويات.
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، جميعها سلاسل قابلة للفرغ.

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.

على أنظمة Linux و 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معالجة المجسمات ثلاثية الأبعاد.
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تمكين مضاد التعرج.
boolUseHighQualityRenderingfalseتفضيل عرض أنقى وأبطأ.
TimeSpan?TimeZoneOffsetnullتجاوز المنطقة الزمنية المستخدمة للتواريخ.
boolForcePageSizefalseفرض أبعاد صفحة ثابتة.

ImageConfig, TiffConfig, and PsdConfig

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.

DicomConfig

الصيغ: DCM, IMA. DPI الفعّال الافتراضي: 100. يتطلب مكوّن DICOM.

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

TxtConfig

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

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

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

ProjectConfig

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

النوعالخاصيةالقيمة الافتراضيةالسلوك
boolDefaultRendertrueصورة Gantt الأصلية؛ 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, and XpsConfig

جميع الأربعة تُعطي 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 = ["/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
};

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