ตั้งค่าใน .NET 6 หรือสูงกว่า

ไฟล์ Startup.cs

ภายในไฟล์ Startup.cs ของโครงการ .NET Core โค้ดเหล่านี้กำหนดกำหนดค่าท่อไปกลาง (middleware pipeline) โดยใช้เมธอด 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
<!-- 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>

เพิ่มไลเซนส์ในโครงการของคุณ

การตรวจจับไลเซนส์อัตโนมัติ

เพื่อเริ่มต้น docViewer ด้วยการตรวจจับไลเซนส์อัตโนมัติ ให้ใช้บรรทัดต่ไปนี้:

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

เพิ่มไลเซนส์เริ่มต้นแบบแมนวล

คุณสามารถระบุพาธไปยังไฟล์ไลเซนส์เริ่มต้นเดียวโดยแมนวลเมื่เร่ะกำหนดได้.

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

เพิ่มไลเซนส์โดยสตรีม

เมธอไปน้ไตง Viewer.DoconutLicense(Stream licenseStream) overload เพื่อเพิ่มไลเซนส์โดยใช้สตรีม.

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

เพิ่มไลเซนส์โดยเอกสาร XML

เมธอไป้ไตง Viewer.DoconutLicense(XMLDocument licence) overload เพื่อเพิ่มไลเซนส์โดยใช้เอกสาร 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);

เพิ่มไลเซนส์ปลั๊กอินโดยสตรีม

เมธอไป้ไตง Viewer.SetLicensePlugin(Stream pluginLicence) overload เพื่อเพิ่มไลเซนส์ปลั๊กอินโดยใช้สตรีม.

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

เพิ่มไลเซนส์ปลั๊กอินโดยเอกสาร XML

เมธอไป้ไตง Viewer.SetLicensePlugin(XMLDocument xmlPluginLicence) overload เพื่อเพิ่มไลเซนส์ปลั๊กอินโดยใช้เอกสาร 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 และโหลดลงใน document viewer เพื่อแสดงผล

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 ที่มีไฟล์ทั้งหมดที่จำเป็นได้จากลิงก์ด้านล่าง:

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)