การติดตั้ง
เพิ่ม Doconut ไปยังโครงการ .NET Standard 2.1 ของคุณ
ตัวดู 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 ได้ |
แพ็กเกจทำงานบน Windows เท่านั้น. สำหรับโฮสต์ Linux, ให้ใช้ Doconut.NET8 หรือ Doconut.NET6.
หากแอปพลิเคชันทำงานบน .NET Framework, นี่ไม่ใช่แพ็กเกจที่เหมาะสม. ใช้ Doconut.NETFramework แทน; ตั้งแต่เวอร์ชัน 26.9.0 จะต้องใช้ .NET Framework 4.7.2.
ติดตั้งแพ็กเกจ
dotnet add package Doconut.NETStandardคำสั่งที่ไม่มีเวอร์ชันจะติดตั้งรุ่นเสถียรล่าสุด. เพื่อระบุรุ่นที่เอกสารนี้อธิบาย, ให้ส่งเวอร์ชันเป็นตัวเลือกแยกต่างหาก:
dotnet add package Doconut.NETStandard --version 26.10.0Doconut.NETStandard คือ ID ของแพ็กเกจ. ส่วนต่อท้ายเวอร์ชันเป็นของชื่อไฟล์ Doconut.NETStandard.<version>.nupkg ที่ดาวน์โหลดและไม่ได้เป็นส่วนของ ID.
หมายเลขเวอร์ชันคือรุ่น
เรื่องนี้สำคัญกว่าชื่อแพ็กเกจ. ทั้งสองรุ่นของไลบรารี .NET Standard เผยแพร่ภายใต้ ID แพ็กเกจเดียวกัน, และเวอร์ชันเท่านั้นที่แยกแยะได้:
| เวอร์ชัน | เป้าหมาย | API |
|---|---|---|
| 26.7.0 and below | netstandard2.0 | การรวมก่อนหน้า |
| 26.8.0 and above | netstandard2.1 | การรวมที่อธิบายไว้ที่นี่ |
ไม่มี shim ความเข้ากันได้และไม่มีแพ็กเกจข้างเคียง. การอัปเดตเวอร์ชัน คือ การอัปเกรด, และคอมไพเลอร์จะรายงานความแตกต่างของ API ทันที.
อย่าเลือกเอกสารจากชื่อแพ็กเกจเพียงอย่างเดียว:
new Viewer(_cache, _accessor, …),UnSafeMode, synchronousOpenDocument(...),viewer.InitCache(),UseDoconutWebFarm, และสคริปต์ viewer ที่คัดลอกด้วยตนเองระบุ การรวมก่อนหน้า;AddDoconut(),UseDoconutResources(),Viewerที่ฉีดเข้า, และOpenDocumentAsync(...)ระบุการรวมปัจจุบันที่อธิบายไว้ที่นี่.
คู่มือการตั้งค่า ก่อนหน้า ที่แปลแล้วยังคงใช้ได้. ใช้ คู่มือการย้าย เพื่อเปลี่ยนรุ่น; การอัปเดตแพ็กเกจจะไม่แปลงการเริ่มต้น, อายุการใช้งานของ viewer, หรือทรัพยากรเบราว์เซอร์โดยอัตโนมัติ.
ลงทะเบียน Doconut
AddDoconut() คือจุดเข้าถึงการลงทะเบียนเดียว — มี overload เพียงหนึ่งเดียว, และมันเชื่อมต่อบริการ Viewer, บริการใบอนุญาต, และโครงสร้างพื้นฐานการเรนเดอร์เข้าสู่ DI container.
สองการเรียก middleware ทำให้การตั้งค่าเสร็จสมบูรณ์, และลำดับของพวกมันสำคัญ: UseDoconutResources() ต้องทำงานก่อน UseDoconut(). UseDoconut() เป็น middleware สุดท้าย, ดังนั้นการเรียกก่อนหมายความว่าทุกคำขอไปยังทรัพยากร /doconut-res จะไม่ถึงตัวจัดการทรัพยากรและจะได้ 404. UseDoconut() ตอบทุกคำขอที่ถึงมัน, ดังนั้นให้ติดตั้งบนสาขาแยกของมันด้วย app.Map. การเชื่อมต่อ session ก็จำเป็นเช่นกัน — ระบบความปลอดภัยเอกสารเริ่มต้นของ Doconut ตรวจสอบทุกคำขอหน้าเทียบกับสถานะ session ของ ASP.NET.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // session state ต้องการแคช (MVC/Razor Pages มีการเพิ่มไว้แล้ว)
builder.Services.AddSession(); // ความปลอดภัยของเอกสาร Doconut พึ่งพา session state ของ ASP.NET
app.UseSession(); // เรียก UseSession() ก่อน UseDoconut()
app.UseDoconutResources(); // ต้องลงทะเบียนก่อน UseDoconut()
app.Map("/doconut", branch => branch.UseDoconut());เนมสเปซ
ประเภทการกำหนดค่าไม่ได้กระจายอยู่ในสี่เนมสเปซอีกต่อไป. ในเวอร์ชันนี้เกือบทั้งหมดอยู่ในเนมสเปซราก Doconut:
using Doconut; // Viewer, DoconutOptions, DocOptions, การกำหนดค่ารูปแบบทั้งหมด
using Doconut.Middleware; // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds; // การกำหนดค่า cloud และ file-share
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 หน้า‑รูปภาพ. มีการตรวจสอบความถูกต้อง, แต่ไม่ได้สร้างสาขาโดยตัวเอง; ให้สอดคล้องกับการแมป UseDoconut() จริงและ client BasePath. |
ResourcesPath | "/doconut-res" | ที่ตั้งที่ให้บริการทรัพยากร JS/CSS/รูปภาพที่ฝังอยู่. |
LicensePath | "" (สตริงว่าง) | เส้นทางไปยังไฟล์ใบอนุญาต. ค่าว่างหมายถึงให้ผ่านไปยังแหล่งต่อไป, แล้วทำการค้นหาอัตโนมัติ. |
LicenseContent | "" (สตริงว่าง) | เนื้อหาใบอนุญาตดิบ — มาจากตัวแปรสภาพแวดล้อม, ตัวจัดการความลับ, หรือฐานข้อมูล. |
LicenseStream | null | ใบอนุญาตเป็นสตรีม, อ่านครั้งเดียวที่เริ่มต้น. |
ResetLicense | false | ธงความเข้ากันได้ที่สงวนไว้. ใบอนุญาตจะถูกอ่านในระหว่าง AddDoconut(); รีสตาร์ทแอปหลังจากเปลี่ยนใบอนุญาต. |
MaxConcurrentEditorSessions | 200 | จำนวนสูงสุดของเซสชัน editor ที่ใช้งานอยู่ (เอกสารที่เปิดด้วย DocOptions.EditMode). หากเกิน, เซสชัน editor ที่ไม่ได้ใช้เป็นเวลานานที่สุดจะถูกปิด. เซสชัน viewer ปกติจะไม่ถูกนับ. 0 หรือค่าลบหมายถึงไม่มีขีดจำกัด. |
EditorSnapshotEveryOps | 50 | เมื่อเปิดการคงสภาพ editor (AddDoconutEditorPersistence), ทำ snapshot เอกสารที่ใช้งานอยู่ทุก N การเปลี่ยนแปลงที่บันทึก. 0 หรือค่าลบจะไม่ทำ snapshot ระหว่างเซสชัน. ไม่มีผลเมื่อการคงสภาพถูกปิด. |
ลำดับความสำคัญของใบอนุญาตเมื่อกำหนดแหล่งมากกว่าหนึ่ง: LicenseStream มีความเหนือกว่า LicenseContent มีความเหนือกว่า LicensePath มีความเหนือกว่า การค้นหาอัตโนมัติ — ดูที่ การตั้งค่าใบอนุญาต.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.MiddlewarePath = "/doconut"; // ประสานงานกับการแมปแอปและ BasePath ของ client
options.ResourcesPath = "/doconut-res"; // ตำแหน่งที่ JS/CSS/รูปภาพของ viewer ถูกให้บริการจาก
options.UnsafeMode = false; // คงความปลอดภัยของ session ไว้
options.ShowDoconutInfo = false;
});ขั้นตอนต่อไป
- เริ่มต้นอย่างเร็ว — เปิดเอกสารแรกของคุณและเรนเดอร์ในเบราว์เซอร์.
- การตั้งค่าใบอนุญาต — ที่ที่ Doconut มองหาไฟล์ใบอนุญาตของคุณ.
หน้านี้เป็นประโยชน์หรือไม่?