الإعداد في .NET 6 أو أعلى

ملف Startup.cs

ضمن ملف Startup.cs لمشروع .NET Core، تُعرّف هذه الأسطر الأستر من الشيفرة طريقة تكوين خط أنابيب Middleware باستخدام طريقة MapWhen. يتحقق الشرط المقدّم ما إذا كان مسار الطلب الوارد ينتهي بـ DocImage.axd. داخل هذا الجزء، تُستدعى الطريقة UseDoconut مع كائن DoconutOptions كمعامل.

Startup.cs
app.MapWhen(
    context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
    appBranch =>
    {
        appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
    }
);

إضافة مساحات أسماء Doconut

في مشروعك، أضف التعليمات using التالية:

Usings
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;

إنشاء كائن Viewer

تُنشيء هذه السطر نسخة جديدة من فئة Viewer، مما يسمح لك بإنشاء كائن عرض داخل الكود الخاص بك.

Instantiation
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);

إعداد كائن DocOptions

مثال على تهيئة كائن DocOptions باستخدام تكوينات محددة:

DocOptions
var documentOptions = new DocOptions
{
    Password = "",
    ImageResolution = 200,
    TimeOut = 30
};

إعداد كائن config

تهيئة كائن PdfConfig جديد باستخدام تكوينات محددة لمعالجة مستندات PDF:

PdfConfig
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };

فتح المستند الخاص بك

هذه السطر تستدعي طريقة OpenDocument للعرض، مع تمرير مسار ملف المستند الموجود على الخادم وكائنات PdfConfig و DocOptions التي تم تكوينها مسبقًا كمعاملات.

OpenDocument
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);

إضافة العرض في HTML الخاص بك

HTML
<div id="div_ctlDoc"></div>

إضافة ملفات CSS و JavaScript

أضف ملفات CSS و JavaScript التالية في الصفحة. هذه السكربتات مدرجة في ملف ZIP مع عينات الشيفرة.

HTML Headers
<!-- Main Viewer Related Scripts -->
<script src="scripts/splitter.js"></script>
<script src="scripts/docViewer.js"></script>
<script src="scripts/documentLinks.js"></script>

<!-- Viewer functions -->
<script src="scripts/docViewer.UI.js?v=1"></script>

إضافة تراخيص إلى مشروعك

اكتشاف الترخيص تلقائيًا

لتهيئة docViewer مع اكتشاف الترخيص تلقائيًا، استخدم السطر التالي:

C#
var docViewer = new Viewer(_cache, _accessor);

إضافة ترخيص افتراضي يدوي

يمكنك تحديد مسار ملف ترخيص افتراضي واحد يدويًا عند تهيئة العارض.

C#
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);

إضافة ترخيص عبر Stream

هذه الطريقة تستخدم ال overload Viewer.DoconutLicense(Stream licenseStream) لإضافة ترخيص باستخدام Stream.

C#
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
    Viewer.DoconutLicense(licenseStream);
}

إضافة ترخيص عبر مستند XML

هذه الطريقة تستخدم ال overload Viewer.DoconutLicense(XMLDocument licence) لإضافة ترخيص باستخدام مستند XML.

C#
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);

ترخيصات افتراضية متعددة للملحقات

إذا كنت بحاجة إلى تحديد عدة تراخيص، يمكنك توفير قائمة بمسارات الملفات للتهيئة.

C#
List<string> licenseFilePaths = new List<string>
{
    Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.lic"),
    Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.Annotation.lic"),
    Path.Combine(_hostingEnvironment.WebRootPath, "Doconut.Viewer.Search.lic")
};
var docViewer = new Viewer(_cache, _accessor, licenseFilePaths);

إضافة ترخيص ملحق عبر Stream

هذه الطريقة تستخدم ال overload Viewer.SetLicensePlugin(Stream pluginLicence) لإضافة ترخيص ملحق باستخدام Stream.

C#
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
    Viewer.SetLicensePlugin(pluginLicenseStream);
}

إضافة ترخيص ملحق عبر مستند XML

هذه الطريقة تستخدم ال overload Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) لإضافة ترخيص ملحق باستخدام مستند XML.

C#
var pluginXmlDoc = new XmlDocument();
pluginXmlDoc.Load("path/to/your/plugin-license.xml");
Viewer.SetLicensePlugin(pluginXmlDoc);

الحزم المطلوبة NuGet

لضمان توافق مشروعك بالكامل مع .NET Core Standard، يجب تضمين الحزم التالية، مرتبة أبجدياً.

  • MessagePack - Version 2.5.140
  • Microsoft.Bcl.AsyncInterfaces - Version 8.0.0
  • Microsoft.Extensions.Caching.Abstractions - Version 8.0.0
  • Microsoft.Extensions.Configuration - Version 8.0.0
  • Microsoft.Extensions.Configuration.Abstractions - Version 8.0.0
  • Microsoft.Extensions.Configuration.FileExtensions - Version 8.0.0
  • Microsoft.Extensions.Configuration.Json - Version 8.0.0
  • Microsoft.Extensions.FileProviders.Abstractions - Version 8.0.0
  • Microsoft.Extensions.FileProviders.Physical - Version 8.0.0
  • Microsoft.Extensions.FileSystemGlobbing - Version 8.0.0
  • Microsoft.Extensions.Primitives - Version 8.0.0
  • System.Buffers - Version 4.5.1
  • System.Formats.Asn1 - Version 8.0.0
  • System.Numerics.Vectors - Version 4.5.0
  • System.Security.Cryptography.Cng - Version 5.0.0
  • System.Security.Cryptography.Pkcs - Version 8.0.0
  • System.Text.Encoding.CodePages - Version 8.0.0
  • System.Text.Encodings.Web - Version 8.0.0
  • System.Text.Json - Version 8.0.3
  • System.Threading.Tasks.Extensions - Version 4.5.4

خيارات تكوين العرض

يمكنك تكوين سلوك العرض باستخدام الخيارات التالية:

  • CadConfig: يستخدم لملفات DWG وDXF وDGN.
  • EmailConfig: يستخدم لملفات EML وEMLX وMSG.
  • EpubConfig: يستخدم لملفات EPUB.
  • ExcelConfig: يستخدم لملفات Excel وCSV.
  • MhtConfig: يستخدم لملفات MHT.
  • PptConfig: يستخدم لملفات PowerPoint.
  • ProjectConfig: يستخدم لملفات MPP.
  • PsdConfig: يستخدم لملفات PSD.
  • TxtConfig: يستخدم لملفات TXT.
  • TiffConfig: يستخدم لملفات TIFF.

تكوين خيارات العرض

يتم تكوين خيارات العرض باستخدام الخاصية DefaultRender:

  • DefaultRender = true : يقدم هذا الخيار جودة عرض أعلى لكنه يستهلك مزيدًا من ذاكرة الخادم ووقت المعالجة.
  • DefaultRender = false : يقدم هذا الخيار عرضًا أسرع على حساب جودة أقل قليلاً.

كيفية إضافة توضيح صورة

في C#

1. افتح المستند واحصل على أبعاد الصفحة الأولى. 2. ابدأ بتهيئة AnnotationManager بأبعاد الصفحة. 3. أنشئ ImageAnnotation، مع تحديد مسار الصورة في imgUrl، وحدد الموضع والحجم داخل Rectangle. 4. أضف التوضيح إلى الـ manager وحمّله في عارض المستند للعرض.

C#
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);

var firstPage = docViewer.GetThumbnailDimensions(1, 0, 100, false);
var pageWidth = firstPage.Width;
var pageHeight = firstPage.Height;

using (var annMgr = docViewer.GetAnnotationManager(pageWidth, pageHeight))
{
    string imgUrl = "img/sample.png";
    var imgAnn = new ImageAnnotation(
        1,
        new Rectangle(600, 700, 750, 300),
        imgUrl
    );

    annMgr.Add(imgAnn);
    docViewer.LoadAnnotationXML(annMgr.GetAnnotationXml());
}

في JavaScript

1. تأكد من توفر YourController. 2. أنشئ ImageAnnotation جديدًا، مع تحديد مسار الصورة باستخدام SetNote. 3. أضف ورسم التوضيح لتظهر على المستند.

JavaScript
function ImageStamp() {
    if (null != objctlDoc.YourController()) {
        var objStampImage = new ImageAnnotation({ left: 200, top: 200, width: 260, height: 55 });
        objctlDoc.YourController().AddAnnotation(null, objStampImage, null);

        objStampImage.SetNote('/images/Approved_Stamp.png');
        objStampImage.Paint();
    }
}

خطوط مخصصة في مستندات Word

خاصية FontFolders في فئة WordConfig تحدد دلائل مخصصة يبحث فيها التطبيق عن الخطوط. هذا مفيد لمعالجة مستندات Word التي تعتمد على خطوط غير مثبتة في دلائل الخطوط الافتراضية للنظام.

Usage
var config = new WordConfig
{
    FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};

تحديث مهم لـ Doconut 25.2.0

من الضروري تحديث حزمة System.Text.Json إلى الإصدار 8.0.5 في جميع مشاريعك. هذا التحديث يضمن التوافق مع أحدث الميزات ويحسن الأمان.

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

خاصية EmailEncoding في فئة EmailConfig تحدد الترميز المفضّل لكل من موضوع البريد الإلكتروني ومحتواه.

Usage
var emailConfig = new EmailConfig {
    EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};

ترميز الموضوع والنص

خاصيتي SubjectEncoding وBodyEncoding في فئة EmailConfig تحددان الترميز المستخدم للموضوع ونص البريد الإلكتروني على التوالي.

Usage
var emailConfig = new EmailConfig {
    SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
    BodyEncoding = Encoding.UTF8     // Set encoding for the body
};

دعم ثقافة عارض Word

خاصية DocumentCulture في فئة WordConfig تسمح لك بتحديد الثقافة يدويًا لملفات DOC وDOCX. يضمن ذلك أن المحتوى المحلي—مثل التواريخ والعملات والأرقام—يظهر كما هو في Microsoft Word، وهو مفيد للغات ذات تنسيقات خاصة.

Usage
var config = new WordConfig { DocumentCulture = "he-IL" }; // Hebrew (Israel)
var config = new WordConfig { DocumentCulture = "ar-SA" }; // Arabic (Saudi Arabia)
var config = new WordConfig { DocumentCulture = "th-TH" }; // Thai (Thailand)
var config = new WordConfig { DocumentCulture = "ja-JP" }; // Japanese (Japan)

تنزيل ملفات CSS و JS المطلوبة

لضمان عمل Doconut بشكل صحيح، تحتاج إلى تضمين ملفات CSS و JS محددة في مشروعك. يمكنك تنزيل ملف ZIP يحتوي على جميع الملفات الضرورية باستخدام الرابط أدناه: