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

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

يفتح كل مستند باستخدام تنفيذ 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 effectiveDPI أفقي صريح؛ وإلا يستخدم ImageResolution، ثم 100.
intVerticalResolution100 effectiveDPI عمودي صريح؛ وإلا يستخدم 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 on the class; false in the automatic catalogالفتح العادي بدون إعداد يستخدم إعادة توجيه 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 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
};

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