Cài đặt trong .NET 6 hoặc cao hơn
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 phương pháp MapWhen. Điều kiện predicate đượ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ố.
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);Thêm không gian tên Doconut
Trong dự án của bạn, thêm các cầu lệnh using sau:
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á code của mình.
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);Cấu hình 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ể:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};Cấu hình một đối tượng config
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:
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, chuyển đường dẫn tế tệp tài liệu nằm trên máy chủ cùng với các đối tượng PdfConfig và DocOptions đã được cấu hình trước đó làm tham số.
var token = docViewer.OpenDocument(pathToFile, config, documentOptions);Thêm trình xem vào HTML của bạn
<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 chứa các mẫu mã.
<!-- 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>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:
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ế một tệp giấy phép mặc định duy nhất khi khởi tạo viewer.
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 overload Viewer.DoconutLicense(Stream licenseStream) để thêm giấy phép bằng một stream.
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úc này sử dụng overload Viewer.DoconutLicense(XMLDocument licence) để thêm giấy phép bằng một tài liệu XML.
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 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);Thêm giấy phép plugin bằng Stream
Phương phúc này sử dụng overload Viewer.SetLicensePlugin(Stream pluginLicence) để thêm giấy phép plugin bằng một stream.
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úc này sử dụng overload Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) để thêm giấy phép plugin bằng một tài liệu XML.
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 tưƣng thích hoàn toàn 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 - 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
Tùy chọn cấu hình render
Bạn có thể cấu hình hành vi render bằ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 render
Các tùy chọn render đượ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 render 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 render nhanh hơn nhưng với chất lượng hại giảm.
Cách Thêm Ghi 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 ghi chú vào manager và tải nó vào trình xem tài liệu để hiển thị.
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ẽ ghi chú để render nó lên tài liệu.
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ư ích cho việc xử lý tài liệu Word phụ thuộc vào các phổng chữ không được cài đặt trong thư mục phổng chữ mặc định của hệ thống.
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 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ưƣ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 email.
var emailConfig = new EmailConfig {
EmailEncoding = Encoding.UTF8 // Set preferred email encoding
};Mã hóa Tiêu đề & Nội dung
Các thuộc tính SubjectEncoding và BodyEncoding trong lập EmailConfig định nghĩa mã hóa được sờ dụng cho tiêu đề và nội dung của email, tưƣng ứng.
var emailConfig = new EmailConfig {
SubjectEncoding = Encoding.UTF8, // Set encoding for the subject
BodyEncoding = Encoding.UTF8 // Set encoding for the body
};Hỗ trợ việc xử lý dạng về Document cho Word Viewer
Thuộc tính DocumentCulture trong lập WordConfig cho phép bạn xác định rõ ràng ngôn ngữ cho các tệp DOC và DOCX. Điều này đảm bắảo nội dung địch vụa địch bộ và tiế gì, tiền tị, số tổng để hiển thị đúng với Microsoft Word. Điều này rất hợ tiềp dư cho các ngôn ngữ có định dạng đồng thưc đằc.
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)Tải xuống các tệp CSS và JS cần thiết
Để đảm báo Doconut hoạt động đúng, bạn cần bao gồm các tệp CSS và JS cụ thể trong dự án của mình. Bạn có thể tải xuống một tệp ZIP chứa tất cả các tệp cần thiết bằng liên kết bên dưới: