إعدادات الصيغ

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

يفتح كل مستند باستخدام تنفيذ 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 يستخدم الافتراضي للصيغة. النطاق الصريح الصالح هو 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.

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>SheetNamesفارغتقييد العرض إلى أوراق العمل المسماة.
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.

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

الصيغ: EML, EMLX, MSG. دقة DPI الافتراضية: 200.

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueعرض البريد الإلكتروني الأصلي؛ false يستخدم إعادة توجيه PDF.
PdfConfigPdfConfigمثيل جديدإعدادات مسار PDF.
Encoding?EmailEncodingnullتجاوز ترميز الرسالة.
Encoding?SubjectEncodingnullتجاوز ترميز الموضوع.
Encoding?BodyEncodingnullتجاوز ترميز النص.
boolSkipExternalImagesfalseلا تقم بتحميل الصور المشار إليها عن بُعد. يوصى بذلك للبريد غير الموثوق.
boolRemoveLastWhitePagefalseإزالة صفحة فارغة نهائية.
boolUseAntiAliasingfalseتمكين مضاد التعرج.
boolUseHighQualityRenderingfalseيفضل عرض أنظف وأبطأ.
TimeSpan?TimeZoneOffsetnullتجاوز المنطقة الزمنية المستخدمة للتواريخ.
boolForcePageSizefalseفرض أبعاد صفحة ثابتة.

تكوين الصورة، TiffConfig، و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.

تكوين 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 // العودة إلى الإعداد الافتراضي للتنسيق
};

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