راه اندازی در .NET Standard / Core
فایل Startup.cs
در فایل Startup.cs یک پروژه .NET Core، این خطوط کد پیکربندی یک مسیر میانافزاری (middleware pipeline) را با استفاده از متد MapWhen تعریف میکنند. شرط ارائهشده بررسی میکند که آیا مسیر درخواست ورودی با DocImage.axd پایان مییابد یا خیر. در داخل این بلوک، متد UseDoconut با یک شیء DoconutOptions فراخوانی میشود.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);افزودن نامفضاهای Doconut
در پروژه خود، دستورات using زیر را اضافه کنید:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;ایجاد شیء Viewer
این خط یک نمونه جدید از کلاس Viewer ایجاد میکند که به شما امکان میدهد یک شیء viewer را در کد خود ایجاد کنید.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);راهاندازی شیء DocOptions
نمونهای از مقداردهی اولیه شیء DocOptions با پیکربندیهای خاص:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};راهاندازی یک شیء پیکربندی
یک شیء جدید از نوع PdfConfig را با پیکربندیهای خاص برای پردازش اسناد PDF مقداردهی اولیه کنید:
var config = new PdfConfig { DefaultRender = true, ExtractHyperlinks = true };باز کردن سند شما
این خط متد OpenDocument شیء viewer را فراخوانی میکند و مسیر فایل سند موجود بر روی سرور و اشیاء PdfConfig و DocOptions که قبلاً پیکربندی شدهاند را به عنوان پارامتر پاس میدهد.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);افزودن viewer به HTML شما
<div id="div_ctlDoc"></div>افزودن فایلهای CSS و JavaScript
فایلهای CSS و JavaScript زیر را در صفحه اضافه کنید. این اسکریپتها در فایل ZIP حاوی نمونههای کد گنجانده شدهاند.
<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 با تشخیص خودکار لایسنس، از خط زیر استفاده کنید:
var docViewer = new Viewer(_cache, _accessor);افزودن لایسنس پیشفرض دستی
میتوانید مسیر یک فایل لایسنس پیشفرض را بهصورت دستی هنگام مقداردهی اولیه viewer مشخص کنید.
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);افزودن لایسنس با Stream
این متد از overload Viewer.DoconutLicense(Stream licenseStream) استفاده میکند تا لایسنس را از طریق یک stream اضافه کند.
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}افزودن لایسنس با سند XML
این متد از overload Viewer.DoconutLicense(XMLDocument licence) استفاده میکند تا لایسنس را از یک سند XML اضافه کند.
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);لایسنسهای پلاگین پیشفرض متعدد به صورت دستی
اگر نیاز به تعیین چندین لایسنس دارید، میتوانید لیستی از مسیرهای فایل به مقداردهی اولیه viewer بدهید.
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 اضافه کند.
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}افزودن لایسنس پلاگین با سند XML
این متد از overload Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) استفاده میکند تا لایسنس پلاگین را از یک سند XML اضافه کند.
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. توضیح را به مدیر اضافه کنید و آن را در viewer سند بارگذاری کنید تا نمایش داده شود.
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. توضیح را اضافه و رسم کنید تا روی سند رندر شود.
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 که به فونتهایی که در پوشههای پیشفرض سیستم نصب نشدهاند، مفید است.
var config = new WordConfig
{
FontFolders = new string[] { "C:\\CustomFonts", "D:\\SharedFonts" }
};بهروزرسانی مهم برای Doconut 25.2.0
ضروری است که پکیج System.Text.Json را به نسخه 8.0.5 در تمام پروژههای خود بهروزرسانی کنید. این بهروزرسانی برای اطمینان از سازگاری با ویژگیهای جدید و رفع بهبودهای امنیتی مهم ضروری است.
کدگذاری ایمیل
خاصیت EmailEncoding در کلاس EmailConfig کدگذاری ترجیحی برای موضوع و بدنه ایمیل را مشخص میکند.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};کدگذاری موضوع و متن
خاصیت SubjectEncoding و BodyEncoding در کلاس EmailConfig به ترتیب کدگذاری مورد استفاده برای موضوع و متن ایمیل را تعریف میکنند.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};پشتیبانی از فرهنگ در Word Viewer
خاصیت DocumentCulture در کلاس WordConfig به شما امکان میدهد فرهنگ (locale) را بهطور صریح برای فایلهای DOC و DOCX تعریف کنید. این کار محتوای بومیسازیشده مانند تاریخها، واحدهای پول و اعداد را دقیقاً همانطور که در Microsoft Word رندر میشوند، نشان میدهد و برای زبانهایی که فرمتبندی خاصی دارند، بسیار مفید است.
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 حاوی تمام فایلهای لازم را از طریق لینک زیر دانلود کنید: