تكوينات التنسيق

خيارات العرض الكاملة لكل تنسيق

يفتح كل مستند باستخدام تنفيذ BaseConfig. مرّر أحدها إلى OpenDocumentAsync (أو OpenDocument) أو دع كتالوج التنسيق ينشئ الإعداد الافتراضي. جميع الفئات أدناه موجودة في مساحة الاسم 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دلائل خطوط إضافية — مفيدة على خادم يفتقر إلى الخطوط التي يستخدمها المستند.
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>SheetNamesemptyتقييد العرض إلى الأوراق المسماة.
CustomStyleCell?CustomStylesnullتجاوزات اختيارية لتنسيق التاريخ/العشري/الصحيح.
boolAllowSearchfalseيُفوض إلى PdfConfig.AllowSearch.
boolAllowCopyfalseيُفوض إلى PdfConfig.AllowCopy.

CustomStyleCell يعرّف CustomStyleDateTime و CustomStyleNumberDecimal و CustomStyleNumberInteger، جميعها سلاسل قابلة للـ null.

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.

قم بتثبيت الخطوط التي تستخدمها العروض التقديمية على الخادم، أو وجه FontFolders إلى مجلد يحتويها. خادم Windows بدون Office يحتوي على خطوط أقل بكثير من جهاز التطوير، وتُستبدل الخطوط المفقودة دون أي خطأ.

تكوين 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.

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. في هذه الحزمة يتم عرض ملفات DICOM بالكامل، لكن البيانات الوصفية التقنية غير متاحة — راجع ملحق 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 = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        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)
{
    switch (extUpper)
    {
        case ".DOC": case ".DOCX": case ".DOT": case ".DOTX": case ".ODT":
            return new WordConfig
            {
                AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
                PaperSize = DocPaperSize.Tabloid,
                PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
            };
        case ".PDF":
            return new PdfConfig { AllowSearch = true, AllowCopy = true };
        case ".XLS": case ".XLSX": case ".ODS": case ".CSV":
            return new ExcelConfig { AllowSearch = true, AllowCopy = true };
        case ".DCM": case ".IMA":
            return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };
        // DefaultRender = false → PDF redirect → pixel-accurate native text search
        case ".HTML": case ".HTM":
            return new HtmlConfig { DefaultRender = false };
        case ".EML": case ".EMLX": case ".MSG":
            return new EmailConfig { DefaultRender = false };
        default:
            return null; // fall back to the format's default config
    }
}

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