ตั้งค่าใน .NET Standard / Core
ไฟล์ Startup.cs
ในไฟล์ Startup.cs ของโปรเจกต์ .NET Core นี้ บรรทัดของโค้ดกำหนดคอนฟิกูเรชันของ pipeline middleware ด้วยเมธอด MapWhen เงื่อนไขที่กำหนดจะตรวจสอบว่าพาธของคำขอที่เข้ามา 끝ด้วย DocImage.axdหรือไม่ หากเป็นเช่นนั้น จะเรียกเมธอด UseDoconut พร้อมออบเจ็กต์ DoconutOptions ที่ให้เป็นอาร์กิวเมนต์
app.MapWhen(
context => context.Request.Path.ToString().EndsWith("DocImage.axd"),
appBranch =>
{
appBranch.UseDoconut(new DoconutOptions { UnSafeMode = false, ShowDoconutInfo = false });
}
);เพิ่ม Namespaces ของ Doconut
ในโปรเจกต์ของคุณ ให้เพิ่มคำสั่ง using ดังต่อไปนี้:
using Doconut;
using Doconut.Configs;
using Doconut.Formats;
using Doconut.Clouds;สร้างออบเจ็กต์ Viewer
บรรทัดนี้ทำการสร้างอินสแตนซ์ใหม่ของคลาส Viewer ทำให้คุณสามารถสร้างออบเจ็กต์ตัวดูเอกสารได้ในโค้ดของคุณ
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);ตั้งค่าออบเจ็กต์ DocOptions
ตัวอย่างการกำหนดค่าออบเจ็กต์ DocOptions ด้วยการตั้งค่าที่ระบุ:
var documentOptions = new DocOptions
{
Password = "",
ImageResolution = 200,
TimeOut = 30
};ตั้งค่าออบเจ็กต์ config
การตั้งค่าออบเจ็กต์ 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>เพิ่ม License ให้กับโปรเจกต์ของคุณ
การตรวจจับ License อัตโนมัติ
เพื่อเริ่มต้น docViewer ด้วยการตรวจจับ License อัตโนมัติ ให้ใช้บรรทัดต่อไปนี้:
var docViewer = new Viewer(_cache, _accessor);เพิ่ม License เริ่มต้นแบบแมนนวล
คุณสามารถระบุพาธไปยังไฟล์ License เริ่มต้นแบบแมนนวลเมื่อทำการเริ่มต้น viewer
var licenseFilePath = Path.Combine(_hostingEnvironment.WebRootPath, "path/to/your/license");
var docViewer = new Viewer(_cache, _accessor, licenseFilePath);เพิ่ม License ด้วย Stream
เมธอดนี้ใช้ overload Viewer.DoconutLicense(Stream licenseStream) เพื่อเพิ่ม License ด้วย Stream
using (var licenseStream = new FileStream("path/to/your/license", FileMode.Open))
{
Viewer.DoconutLicense(licenseStream);
}เพิ่ม License ด้วย XML Document
เมธอดนี้ใช้ overload Viewer.DoconutLicense(XMLDocument licence) เพื่อเพิ่ม License ด้วย XML Document
var xmlDoc = new XmlDocument();
xmlDoc.Load("path/to/your/license.xml");
Viewer.DoconutLicense(xmlDoc);License หลาย Plugin แบบแมนนวล
หากคุณต้องการระบุหลาย License คุณสามารถให้รายการพาธไฟล์ให้กับการเริ่มต้น 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);เพิ่ม License Plugin ด้วย Stream
เมธอดนี้ใช้ overload Viewer.SetLicensePlugin(Stream pluginLicence) เพื่อเพิ่ม License Plugin ด้วย Stream
using (var pluginLicenseStream = new FileStream("path/to/your/plugin-license.lic", FileMode.Open))
{
Viewer.SetLicensePlugin(pluginLicenseStream);
}เพิ่ม License Plugin ด้วย XML Document
เมธอดนี้ใช้ overload Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) เพื่อเพิ่ม License Plugin ด้วย XML Document
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
การกำหนดค่า Render Options
การกำหนดค่า render options ทำได้โดยใช้คุณสมบัติ DefaultRender:
- DefaultRender = true : ตัวเลือกนี้ให้คุณภาพการเรนเดอร์ที่สูงกว่าแต่ใช้หน่วยความจำและเวลาประมวลผลเซิร์ฟเวอร์มากขึ้น
- DefaultRender = false : ตัวเลือกนี้ให้การเรนเดอร์ที่เร็วกว่าแต่คุณภาพอาจลดลงเล็กน้อย
วิธีการเพิ่ม Image Annotation
ใน C#
1. เปิดเอกสารและรับขนาดของหน้าแรก 2. สร้าง AnnotationManager พร้อมขนาดของหน้า 3. สร้าง ImageAnnotation ตั้งค่าพาธภาพใน imgUrl และกำหนดตำแหน่งและขนาดใน Rectangle 4. เพิ่ม annotation เข้ากับ manager แล้วโหลดใน document 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. เพิ่มและวาด annotation เพื่อแสดงบนเอกสาร
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 ในทุกโปรเจกต์ของคุณ เพื่อให้เข้ากันได้กับฟีเจอร์ล่าสุดและปรับปรุงความปลอดภัย
การเข้ารหัส Email
คุณสมบัติ 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 ช่วยให้คุณระบุวัฒนธรรมสำหรับไฟล์ 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 ที่มีไฟล์ทั้งหมดได้จากลิงก์ด้านล่าง: