Cài đặt trong .NET Standard / Core

Tệp Startup.cs

Trong tệp Startup.cs của một dự án .NET Core, các dòng mã này định nghĩa cấu hình pipeline middleware bằng cách sử dụng phương thức MapWhen. Tiền đề được cung cấp kiểm tra xem đường dẫn yêu cầu đến có kết thúc bằng DocImage.axd hay không. Bên trong khối này, phương thức UseDoconut được gọi với một đối tượng DoconutOptions làm đối số.

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

Thêm Doconut Namespaces

Trong dự án của bạn, thêm các câu lệnh using sau:

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

Khởi tạo đối tượng Viewer

Dòng này khởi tạo một thể hiện mới của lớp Viewer, cho phép bạn tạo một đối tượng viewer trong mã của mình.

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

Thiết lập một đối tượng DocOptions

Ví dụ khởi tạo một đối tượng DocOptions với các cấu hình cụ thể:

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

Thiết lập một đối tượng cấu hình

Khởi tạo một đối tượng PdfConfig mới với các cấu hình cụ thể để xử lý tài liệu PDF:

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

Mở tài liệu của bạn

Dòng này gọi phương thức OpenDocument của đối tượng viewer, truyền đường dẫn của tệp tài liệu nằm trên máy chủ và các đối tượng PdfConfig và DocOptions đã được cấu hình trước đó làm tham số.

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

Thêm trình xem vào HTML của bạn

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

Thêm các tệp CSS và JavaScript

Thêm các tệp CSS và JavaScript sau vào trang. Các script này được bao gồm trong tệp ZIP có các mẫu mã.

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>

Thêm Giấy phép vào Dự án của Bạn

Phát hiện Giấy phép Tự động

Để khởi tạo docViewer với phát hiện giấy phép tự động, sử dụng dòng sau:

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

Thêm Giấy phép Mặc định Thủ công

Bạn có thể chỉ định thủ công đường dẫn tới một tệp giấy phép mặc định duy nhất khi khởi tạo trình xem.

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

Thêm Giấy phép bằng Stream

Phương pháp này sử dụng hàm quá tải Viewer.DoconutLicense(Stream licenseStream) để thêm giấy phép bằng một stream.

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

Thêm Giấy phép bằng Tài liệu XML

Phương pháp này sử dụng hàm quá tải Viewer.DoconutLicense(XMLDocument licence) để thêm giấy phép bằng tài liệu XML.

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

Nhiều Giấy phép Plugin Mặc định Thủ công

Nếu bạn cần chỉ định nhiều giấy phép, bạn có thể cung cấp danh sách các đường dẫn tệp cho việc khởi tạo trình xem.

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

Thêm Giấy phép Plugin bằng Stream

Phương pháp này sử dụng hàm quá tải Viewer.SetLicensePlugin(Stream pluginLicence) để thêm giấy phép plugin bằng một stream.

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

Thêm Giấy phép Plugin bằng Tài liệu XML

Phương pháp này sử dụng hàm quá tải Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) để thêm giấy phép plugin bằng tài liệu XML.

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

Các gói NuGet cần thiết

Để đảm bảo dự án của bạn hoàn toàn tương thích với .NET Core Standard, các gói NuGet sau cần được bao gồm, được liệt kê theo thứ tự alphabet.

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

Tùy chọn cấu hình hiển thị

Bạn có thể cấu hình hành vi hiển thị bằng cách sử dụng các tùy chọn sau:

  • CadConfig: Được sử dụng cho các tệp DWG, DXF và DGN.
  • EmailConfig: Được sử dụng cho các tệp EML, EMLX và MSG.
  • EpubConfig: Được sử dụng cho các tệp EPUB.
  • ExcelConfig: Được sử dụng cho các tệp Excel và CSV.
  • MhtConfig: Được sử dụng cho các tệp MHT.
  • PptConfig: Được sử dụng cho các tệp PowerPoint.
  • ProjectConfig: Được sử dụng cho các tệp MPP.
  • PsdConfig: Được sử dụng cho các tệp PSD.
  • TxtConfig: Được sử dụng cho các tệp TXT.
  • TiffConfig: Được sử dụng cho các tệp TIFF.

Cấu hình Tùy chọn Kết xuất

Các tùy chọn kết xuất được cấu hình bằng thuộc tính DefaultRender:

  • DefaultRender = true : Tùy chọn này cung cấp chất lượng kết xuất cao hơn nhưng sử dụng nhiều bộ nhớ máy chủ và thời gian xử lý hơn.
  • DefaultRender = false : Tùy chọn này cho phép kết xuất nhanh hơn nhưng chất lượng sẽ giảm nhẹ.

Cách Thêm Chú Thích Hình Ảnh

Trong C#

1. Mở tài liệu và lấy kích thước của trang đầu tiên. 2. Khởi tạo AnnotationManager với kích thước trang. 3. Tạo một ImageAnnotation, đặt đường dẫn hình ảnh trong imgUrl, và chỉ định vị trí và kích thước trong Rectangle. 4. Thêm chú thích vào trình quản lý và tải nó trong document viewer để hiển thị.

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

Trong JavaScript

1. Đảm bảo YourController có sẵn. 2. Tạo một ImageAnnotation mới, đặt đường dẫn hình ảnh bằng SetNote. 3. Thêm và vẽ chú thích để hiển thị nó trên tài liệu.

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

Phông chữ tùy chỉnh trong tài liệu Word

Thuộc tính FontFolders trong lớp WordConfig chỉ định các thư mục tùy chỉnh mà ứng dụng sẽ tìm kiếm phông chữ. Điều này đặc biệt hữu ích khi xử lý các tài liệu Word dựa vào phông chữ không được cài đặt trong các thư mục phông chữ mặc định của hệ thống.

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

Cập nhật quan trọng cho Doconut 25.2.0

Cần thiết cập nhật gói System.Text.Json lên phiên bản 8.0.5 trong tất cả các dự án của bạn. Bản cập nhật này quan trọng để đảm bảo tính tương thích với các tính năng mới nhất và giải quyết các cải tiến bảo mật quan trọng.

Mã hóa Email

Thuộc tính EmailEncoding trong lớp EmailConfig chỉ định mã hóa ưu tiên cho cả tiêu đề và nội dung của email.

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

Mã hoá Chủ đề & Nội dung

Các thuộc tính SubjectEncoding và BodyEncoding trong lớp EmailConfig xác định mã hoá được sử dụng cho chủ đề và nội dung của email, tương ứng.

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

Hỗ trợ Văn hoá Trình xem Word

Thuộc tính DocumentCulture trong lớp WordConfig cho phép bạn xác định rõ ràng văn hoá cho các tệp DOC và DOCX. Điều này đảm bảo rằng nội dung địa phương hoá—như ngày tháng, tiền tệ và số—hiển thị chính xác như trong Microsoft Word. Điều này đặc biệt hữu ích cho các ngôn ngữ có yêu cầu định dạng cụ thể.

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)