การติดตั้ง
เพิ่ม Doconut ไปยังโครงการ .NET Standard 2.1 ของคุณ
ตัว viewer พื้นฐานของ Doconut สำหรับ .NET Standard จะมาพร้อมกับแพ็กเกจ NuGet เพียงหนึ่งชุดที่สามารถเชื่อมต่อกับแอปพลิเคชัน ASP.NET Core ใดก็ได้ ปลั๊กอินเสริมใช้แพ็กเกจแยกต่างหาก หน้านี้จะติดตั้งแพ็กเกจพื้นฐาน, ยืนยันว่าโฮสต์ของคุณสามารถใช้งานได้, และลงทะเบียน middleware — สิ่งที่จำเป็นอย่างน้อยที่สุดก่อนการเรนเดอร์ครั้งแรกของคุณ
ตรวจสอบเฟรมเวิร์กของโฮสต์ก่อน
ไลบรารีนี้ตั้งเป้าหมายที่ netstandard2.1 ซึ่งเป็นสัญญาที่แคบกว่าการสร้าง netstandard2.0 ก่อนหน้า และเป็นสิ่งแรกที่ต้องตรวจสอบ:
| โฮสต์ | รองรับ |
|---|---|
| .NET Core 3.0 หรือใหม่กว่า, รวมถึง .NET 5/6/7/8 | ใช่ |
| .NET Framework (ทุกเวอร์ชัน) | ไม่ — netstandard2.1 ไม่สามารถใช้กับ .NET Framework |
หากแอปพลิเคชันทำงานบน .NET Framework นี่ไม่ใช่แพ็กเกจที่ถูกต้อง ให้ใช้ Doconut.NETFramework แทน; ตั้งแต่เวอร์ชัน 26.9.0 จะต้องใช้ .NET Framework 4.7.2. ตัวแอปอ้างอิงที่มาพร้อมกับการปล่อยนี้ตั้งเป้าหมายที่ net8.0.
ติดตั้งแพ็กเกจ
dotnet add package Doconut.NETStandardคำสั่งที่ไม่มีเวอร์ชันจะติดตั้งรุ่นเสถียรล่าสุด เพื่อทำซ้ำการปล่อยเวอร์ชัน 26.8.0 อย่างแม่นยำ ให้ระบุเวอร์ชันเป็นตัวเลือกแยก:
dotnet add package Doconut.NETStandard --version 26.8.0Doconut.NETStandard คือ ID ของแพ็กเกจ ส่วนส่วนต่อท้าย .26.8.0 เป็นของชื่อไฟล์ที่ดาวน์โหลด Doconut.NETStandard.26.8.0.nupkg และไม่ได้เป็นส่วนหนึ่งของ ID
หมายเลขเวอร์ชันคือรุ่น
เรื่องนี้สำคัญกว่าชื่อแพ็กเกจ ทั้งสองรุ่นของไลบรารี .NET Standard จะเผยแพร่ภายใต้ ID แพ็กเกจเดียวกัน, และเวอร์ชันเท่านั้นที่บ่งบอกความแตกต่าง:
| เวอร์ชัน | เป้าหมาย | API |
|---|---|---|
| 26.7.0 และต่ำกว่า | netstandard2.0 | การบูรณาการก่อนหน้า |
| 26.8.0 และสูงกว่า | netstandard2.1 | การบูรณาการที่อธิบายไว้ที่นี่ |
ไม่มี shim ความเข้ากันได้และไม่มีแพ็กเกจข้างเคียง การเพิ่มเวอร์ชัน คือ การอัปเกรด, และคอมไพเลอร์จะรายงานความแตกต่างของ API ทันที
อย่าเลือกเอกสารจากชื่อแพ็กเกจเพียงอย่างเดียว:
new Viewer(_cache, _accessor, …),UnSafeMode, synchronousOpenDocument(...),viewer.InitCache(),UseDoconutWebFarm, และสคริปต์ viewer ที่คัดลอกด้วยตนเองระบุถึง การบูรณาการก่อนหน้า;AddDoconut(),UseDoconutResources(),Viewerที่ฉีดเข้า, และOpenDocumentAsync(...)ระบุถึงการบูรณาการปัจจุบันที่อธิบายไว้ที่นี่
คู่มือการตั้งค่าก่อนหน้า แปลแล้วยังคงพร้อมใช้งาน. ใช้ คู่มือการย้าย เพื่อเปลี่ยนรุ่น; การอัปเดตแพ็กเกจจะไม่แปลงการเริ่มต้น, อายุการใช้งานของ viewer, หรือทรัพยากรของเบราว์เซอร์โดยอัตโนมัติ
ลงทะเบียน Doconut
AddDoconut() เป็นจุดเริ่มต้นการลงทะเบียนเดียว — มี overload เพียงหนึ่งตัวและมันจะเชื่อมต่อบริการ Viewer, บริการลิขสิทธิ์, และโครงสร้างการเรนเดอร์เข้าไปในคอนเทนเนอร์ DI
สองการเรียก middleware จะทำให้การตั้งค่าสมบูรณ์และลำดับของมันสำคัญ: UseDoconutResources() ต้องทำงานก่อน UseDoconut() UseDoconut() เป็น middleware สุดท้าย ดังนั้นการเรียกก่อนหมายความว่าทุกคำขอไปยังทรัพยากร /doconut-res จะไม่ถึงตัวจัดการทรัพยากรและจะได้ 404 การเชื่อมต่อ session ก็จำเป็นเช่นกัน — ระบบความปลอดภัยเอกสารของ Doconut ตรวจสอบทุกคำขอหน้าโดยอิงกับสถานะ session ของ ASP.NET
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // สถานะ session ต้องการแคช (MVC/Razor Pages มีเพิ่มไว้แล้ว)
builder.Services.AddSession(); // ความปลอดภัยเอกสารของ Doconut ทำงานบนสถานะเซสชันของ ASP.NET
app.UseSession(); // เรียก UseSession() ก่อน UseDoconut()
app.UseDoconutResources(); // ต้องลงทะเบียนก่อน UseDoconut()
app.UseDoconut();เนมสเปซ
ประเภทการกำหนดค่าตอนนี้ไม่ได้กระจายอยู่ในสี่ namespace อีกต่อไป ในการปล่อยนี้เกือบทั้งหมดอยู่ใน namespace ราก Doconut:
using Doconut; // Viewer, DoconutOptions, DocOptions, การกำหนดค่ารูปแบบทั้งหมด
using Doconut.Middleware; // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds; // การกำหนดค่าคลาวด์และไฟล์แชร์
using Doconut.Configs.Conversion; // ConversionTargetชื่อประเภทเองไม่ได้เปลี่ยน — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig และอื่น ๆ ยังคงอยู่ หากคุณกำลังย้ายแอปพลิเคชันที่มีอยู่ ส่วนใหญ่ไฟล์ไม่ต้องแก้ใด ๆ นอกจากลบสองบรรทัด using ที่ไม่ใช้แล้ว; ดูที่ คู่มือการย้าย
ตัวเลือกทั้งหมด
DoconutOptions มีคุณสมบัติเพิ่มเติมที่สามารถตั้งค่าได้ ทุกอย่างเป็นตัวเลือก — ค่าตั้งต้นด้านล่างจะใช้เมื่อคุณไม่ได้กำหนดค่าใด ๆ
| คุณสมบัติ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
ShowDoconutInfo | false | เมื่อ true คำขอที่ไม่มี token จะคืนแบนเนอร์เวอร์ชันแทน 404 ใช้เป็นการตรวจสอบอย่างรวดเร็ว; ปิดในสภาพการผลิต |
UnsafeMode | false | เมื่อ true จะข้ามการตรวจสอบความปลอดภัยของ ASP.NET‑session ในคำขอหน้า ปิดในสภาพการผลิต. หมายเหตุการสะกด — ไลบรารีก่อนหน้าตั้งชื่อว่า UnSafeMode |
MiddlewarePath | "/doconut" | ค่าประสานสำหรับ endpoint หน้า‑รูปภาพ. จะถูกตรวจสอบแต่ไม่ได้สร้าง branch ด้วยตนเอง; ให้สอดคล้องกับการแมป UseDoconut() จริงและ BasePath ของไคลเอนต์ |
ResourcesPath | "/doconut-res" | ที่ที่ให้บริการทรัพยากร JS/CSS/รูปภาพที่ฝังอยู่ |
LicensePath | "" (สตริงว่าง) | เส้นทางไปยังไฟล์ลิขสิทธิ์. ค่าว่างหมายถึงให้ค้นหาแหล่งต่อไปและทำการค้นหาอัตโนมัติ |
LicenseContent | "" (สตริงว่าง) | เนื้อหาลิขสิทธิ์ดิบ — จาก environment variable, secret manager หรือฐานข้อมูล |
LicenseStream | null | ลิขสิทธิ์เป็นสตรีม, อ่านครั้งเดียวที่เริ่มต้น |
ResetLicense | false | ธงความเข้ากันได้สำรอง. ลิขสิทธิ์จะถูกอ่านระหว่าง AddDoconut(); รีสตาร์ทแอปหลังจากเปลี่ยนลิขสิทธิ์ |
ลำดับความสำคัญของลิขสิทธิ์เมื่อมีแหล่งมากกว่าหนึ่ง: LicenseStream แซง LicenseContent แซง LicensePath แซงการค้นหาอัตโนมัติ — ดูที่ การตั้งค่าลิขสิทธิ์
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.MiddlewarePath = "/doconut"; // ประสานกับการแมปของแอปและ BasePath ของไคลเอนต์
options.ResourcesPath = "/doconut-res"; // ที่ที่ JS/CSS/รูปภาพของ viewer ให้บริการ
options.UnsafeMode = false; // รักษาความปลอดภัยของ session ไว้
options.ShowDoconutInfo = false;
});ขั้นตอนต่อไป
- เริ่มต้นอย่างเร็ว — เปิดเอกสารแรกของคุณและเรนเดอร์ในเบราว์เซอร์
- การตั้งค่าลิขสิทธิ์ — ที่ที่ Doconut มองหาไฟล์ลิขสิทธิ์ของคุณ
หน้านี้เป็นประโยชน์หรือไม่?