راه‌اندازی در .NET Standard / Core

فایل Startup.cs

در فایل Startup.cs یک پروژه .NET Core، این خطوط کد یک پیکربندی خط لوله میانی‌افزار را با استفاده از متد 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 را ایجاد می‌کند که به شما امکان می‌دهد یک شیء 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 شیء viewer را فراخوانی می‌کند و مسیر فایل سندی که بر روی سرور قرار دارد و همچنین شیءهای PdfConfig و DocOptions که پیشتر پیکربندی شده‌اند را به‌عنوان پارامترها می‌پاسند.

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

افزودن viewer در HTML شما

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

افزودن فایل‌های CSS و JavaScript

فایل‌های CSS و JavaScript زیر را در صفحه اضافه کنید. این اسکریپت‌ها در فایل ZIP همراه با نمونه کدها گنجانده شده‌اند.

HTML Headers
<link rel="stylesheet" href="css/viewer.css" />

<!-- Main Viewer Related Scripts -->
<script src="scripts/jquery.min.js"></script>
<script src="scripts/docViewer.js"></script>
<script src="scripts/splitter.js"></script>
<script src="scripts/search.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);

افزودن لایسنس پیش‌فرض دستی

می‌توانید هنگام مقداردهی اولیه viewer مسیر یک فایل لایسنس پیش‌فرض واحد را به‌صورت دستی مشخص کنید.

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);

لایسنس‌های پیش‌فرض متعدد پلاگین به‌صورت دستی

اگر نیاز به تعیین چندین لایسنس دارید، می‌توانید یک فهرست از مسیرهای فایل‌ها را هنگام مقداردهی اولیه viewer ارائه دهید.

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، پکیج‌های NuGet زیر باید گنجانده شوند؛ به ترتیب الفبایی فهرست شده‌اند.

  • 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
};

دانلود فایل‌های CSS و JS مورد نیاز

برای اطمینان از عملکرد صحیح Doconut، باید فایل‌های CSS و JS خاصی را در پروژه خود گنجانده باشید. می‌توانید یک فایل ZIP شامل تمام فایل‌های ضروری را از طریق لینک زیر دانلود کنید: