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

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

يتم فتح كل مستند باستخدام تنفيذ 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

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueمفتاح توافق. المصنع الحالي يستخدم عارض PDF الأصلي.
boolAllowSearchfalseإنشاء/استخدام فهرس البحث النصي في PDF. يتطلب قدرة ترخيص البحث للطلبات.
boolAllowCopyfalseالسماح بعمليات اختيار النص/النسخ.
boolExtractHyperlinksfalseاستخراج مستطيلات الروابط لتراكب العميل.
intHyperlinksPageCount0الحد الأقصى للصفحات التي يتم فحصها للروابط؛ 0 يعني كل صفحة.
boolCompressImagesfalseضغط الصور المدمجة قبل العرض.
intCompressQuality100جودة JPEG المستخدمة عندما يكون الضغط مفعلاً.
boolResizeImagesfalseتغيير حجم الصور المدمجة قبل العرض.
intResizeResolution300عدد النقاط في البوصة المستهدف للصور التي تم تغيير حجمها.
boolCompressFastfalseتفضيل مسار الضغط الأسرع والأقل جودة.
boolFixInvalidImagesfalseمحاولة إصلاح الصور المدمجة غير الصالحة.
boolSplitSegmentsfalseإعادة ربط الكلمات المقسمة عبر مقاطع السطر لتحسين البحث/النسخ.

showHyperlinks في ViewerConfig يتحكم في تراكب العميل، بينما ExtractHyperlinks يتحكم في استخراج الخادم. فعّل كلاهما.

WordConfig

النوعالخاصيةالافتراضيالسلوك
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

النوعالخاصيةالافتراضيالسلوك
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.

PptConfig

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueعرض الشريحة الأصلي؛ false يستخدم التحويل إلى PDF.
boolFastLoadfalseتجنب عرض الشريحة الأولى أثناء الفتح؛ استخدم البيانات الوصفية وعرض عند الطلب.
PdfConfigPdfConfignew instanceالإعدادات لسلوك PDF/البحث.
stringFontInfo""معلومات استبدال الخط.
string[]?FontFoldersnullدليل الخطوط الإضافية.
boolAllowSearchfalseيُفوض إلى PdfConfig.AllowSearch.
boolAllowCopyfalseيُفوض إلى PdfConfig.AllowCopy.

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

CadConfig

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

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueعرض البريد الإلكتروني الأصلي؛ false يستخدم التحويل إلى PDF.
PdfConfigPdfConfignew instanceإعدادات مسار 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

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

TxtConfig

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

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

ProjectConfig

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueصورة Gantt الأصلية؛ false يستخدم مسار PDF نصي.
PdfConfigPdfConfignew instanceإعدادات مسار PDF.
boolExportPdfAtrueإخراج PDF/A أرشيفي.
MppPaperSizePaperSizeLedgerحجم ورق إخراج المشروع.
MppTimeScaleTimeScaleMonthsDays أو Months.
MppFormatPresentationFormatGanttChartGanttChart، TaskUsage، ResourceUsage، ResourceSheet، أو TaskSheet.

للبحث الدقيق بنسق النص، استخدم DefaultRender = false.

VisioConfig

النوعالخاصيةالافتراضيالسلوك
boolDefaultRendertrueعرض المخطط الأصلي؛ false يستخدم التحويل إلى PDF.
PdfConfigPdfConfignew instanceإعدادات مسار PDF.
boolExportPdfAtrueإخراج PDF/A أرشيفي.

HtmlConfig, EpubConfig, MhtConfig, and XpsConfig

جميع الأربعة يبدؤون بـ DPI 200 ويعرضون PdfConfig متداخلاً.

التكوينالصيغDefaultRenderالخصائص/السلوك الإضافية
HtmlConfigHTML, HTMtrueعرض أصلي؛ استخدم false لمسار بحث PDF نصي.
EpubConfigEPUBtrueعرض أصلي؛ false يستخدم PDF.
MhtConfigMHT, MHTMLtrue on the class; false in the automatic catalogtrue على الفئة؛ false في الكتالوج التلقائي
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 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
};

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