การกำหนดค่ารูปแบบ
ตัวเลือกการเรนเดอร์สำหรับแต่ละรูปแบบอย่างครบถ้วน
ทุกเอกสารจะเปิดด้วยการใช้งาน BaseConfig ส่งออบเจ็กต์นี้ไปยัง OpenDocumentAsync หรือให้แคตาล็อกรูปแบบสร้างค่าเริ่มต้นของมันเอง คลาสทั้งหมดด้านล่างอยู่ในเนมสเปซ Doconut
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
AllowSearch = true,
AllowCopy = true,
ImageResolution = 150
});การสืบทอดและการตั้งค่า PDF แบบซ้อนกัน
ทุกรูปแบบสืบทอดคุณสมบัติ BaseConfig ทั้งห้า รูปแบบที่สามารถเปลี่ยนเส้นทางผ่าน PDF จะเปิดเผย PdfConfig แบบซ้อนกัน ใน WordConfig, ExcelConfig และ PptConfig คุณสมบัติ AllowSearch และ AllowCopy เป็นคุณสมบัติสะดวกที่อ่านและเขียนค่าใน PdfConfig ที่ซ้อนอยู่
DefaultRender = true จะเลือกเรนเดอร์เนทีฟของรูปแบบ สำหรับรูปแบบที่มีการเปลี่ยนเส้นทางเป็น PDF, false จะทำการแปลงเป็น PDF ในหน่วยความจำก่อน แล้วจึงใช้ตัวดู PDF เส้นทางนี้มักมีประโยชน์สำหรับการค้นหาตามพิกัดข้อความ แต่จะเพิ่มขั้นตอนการแปลงเพิ่มเติม
ยกเว้นกรณีที่ระบุไว้เป็นพิเศษ ตารางต่อไปจะแสดงค่าเริ่มต้นของคอนสตรัคเตอร์/คุณสมบัติ การแคตาล็อกรูปแบบอัตโนมัติจะทำการเขียนทับสองค่าโดยเจตนา: จะสร้าง ExcelConfig โดยตั้งค่า SplitWorksheets = true และ MhtConfig โดยตั้งค่า DefaultRender = false
BaseConfig
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
int | ImageResolution | 0 | 0 ใช้ค่าเริ่มต้นของรูปแบบ ช่วงค่าที่กำหนดได้อย่างชัดเจนคือ 25‑300 DPI; การกำหนดค่าที่ไม่ถูกต้องจะถูกละเลย |
string | DocumentCulture | "" | ภาษาท้องถิ่นสำหรับวันที่และตัวเลข ค่าที่ไม่ว่างเปล่าจะถูกตัดช่องว่าง; การกำหนดค่าเป็นค่าว่างจะถูกละเลย |
string | Password | "" | รหัสผ่านของเอกสารที่ป้องกัน DocOptions.Password จะถูกคัดลอกมาที่นี่โดยอัตโนมัติ |
bool | ShowUI | true | คุณสมบัติเพื่อความเข้ากันได้; ตัวเรนเดอร์ปัจจุบันไม่ได้ใช้เพื่อควบคุมแถบเครื่องมือของเบราว์เซอร์ |
bool | CachePages | true | แคชภาพหน้าที่เรนเดอร์ไว้สำหรับเซสชันของเอกสาร |
PdfConfig
รูปแบบ: PDF. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | สวิตช์เพื่อความเข้ากันได้ ตัวสร้างปัจจุบันใช้ตัวดู PDF เนทีฟ |
bool | AllowSearch | false | สร้าง/ใช้ดัชนีการค้นหาข้อความใน PDF ต้องมีสิทธิ์ Search license เพื่อทำคำขอ |
bool | AllowCopy | false | อนุญาตการเลือกและคัดลอกข้อความ |
bool | ExtractHyperlinks | false | ดึงสี่เหลี่ยมลิงก์สำหรับการวางซ้อนบนไคลเอนต์ |
int | HyperlinksPageCount | 0 | จำนวนหน้าที่สแกนเพื่อค้นหาลิงก์; 0 หมายถึงทุกหน้า |
bool | CompressImages | false | บีบอัดภาพที่ฝังอยู่ก่อนการเรนเดอร์ |
int | CompressQuality | 100 | คุณภาพ JPEG ที่ใช้เมื่อเปิดใช้งานการบีบอัด |
bool | ResizeImages | false | ปรับขนาดภาพที่ฝังอยู่ก่อนการเรนเดอร์ |
int | ResizeResolution | 300 | DPI เป้าหมายสำหรับภาพที่ปรับขนาด |
bool | CompressFast | false | ให้ความสำคัญกับเส้นทางบีบอัดที่เร็วกว่าแต่คุณภาพต่ำกว่า |
bool | FixInvalidImages | false | พยายามซ่อมแซมภาพที่ฝังอยู่ที่ไม่ถูกต้อง |
bool | SplitSegments | false | รวมคำที่ถูกแยกเป็นส่วนบรรทัดเพื่อปรับปรุงการค้นหา/คัดลอก |
showHyperlinks ใน ViewerConfig ควบคุมการวางซ้อนบนไคลเอนต์ ส่วน ExtractHyperlinks ควบคุมการดึงข้อมูลบนเซิร์ฟเวอร์ เปิดใช้งานทั้งสองพร้อมกัน |
WordConfig
รูปแบบ: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์ Word เนทีฟ; false จะใช้การเปลี่ยนเส้นทางเป็น PDF |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับเส้นทาง PDF/การค้นหา |
DocPaperSize | PaperSize | A4 | ขนาดกระดาษผลลัพธ์ ใช้ Custom พร้อมความกว้าง/ความสูง |
int | PaperWidth | 595 | ความกว้างกำหนดเองเป็นพอยต์ |
int | PaperHeight | 841 | ความสูงกำหนดเองเป็นพอยต์ |
bool | RemovePaperMargin | false | ลบขอบกระดาษของเอกสาร |
bool | RenderPageColor | true | รักษาสีหน้าที่กำหนดใน Word; false จะเรนเดอร์หน้าเป็นสีขาว |
bool | ExportPdfA | false | ใช้ PDF/A สำหรับเส้นทาง PDF |
Encoding? | FileEncoding | null | เขียนทับการเข้ารหัสของแหล่งข้อมูล |
string | FontInfo | "" | ข้อมูลการทดแทนฟอนต์ |
string[]? | FontFolders | null | ไดเรกทอรีฟอนต์เพิ่มเติม, มีประโยชน์มากใน Linux/containers |
bool | AllowSearch | false | ส่งต่อไปยัง PdfConfig.AllowSearch |
bool | AllowCopy | false | ส่งต่อไปยัง PdfConfig.AllowCopy |
TableAutoFitBehavior | AutoFitAllTables | None | None, AutoFitToContents, หรือ AutoFitToWindow |
ExcelConfig
รูปแบบ: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์แผ่นเนทีฟ; false จะใช้การเปลี่ยนเส้นทางเป็น PDF |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับเส้นทาง PDF/การค้นหา |
ExcelPaperSize | PaperSize | PaperA4 | ขนาดกระดาษผลลัพธ์ |
double | PaperMargins | 0.25 | ขอบกระดาษเป็นนิ้ว |
bool | PaperLandscape | true | เรนเดอร์แผ่นในแนวนอน |
bool | AutoFitContents | false | ปรับอัตโนมัติความสูงแถวและความกว้างคอลัมน์ |
bool | RemoveEmptyContent | true | ลดขนาดผลลัพธ์โดยตัดเนื้อหาที่ว่างเปล่าออก |
bool | CalculateFormula | true | คำนวณสูตรใหม่ก่อนเรนเดอร์ |
bool | ShowRowColumnHeaders | true | รวมหัวข้อแถวและคอลัมน์ของสเปรดชีต |
bool | ExportPdfA | false | ใช้ PDF/A สำหรับเส้นทาง PDF |
bool | SplitWorksheets | false | แยกแผ่นงานเป็นกลุ่มหน้าแยกกัน |
bool | ShowEmptyWorkSheets | false | รวมแผ่นงานที่ว่างเปล่า |
bool | ExportLandscape | false | บังคับส่งออกในแนวนอน |
bool | ExportOnePagePerSheet | false | ปรับให้แต่ละแผ่นงานพอดีกับหนึ่งหน้าผลลัพธ์ |
bool | MemoryOptimizationPreference | true | ลดการใช้หน่วยความจำสูงสุด, อาจทำให้ความเร็วลดลง |
bool | AutoTrimWorksheetRenderRange | true | เรนเดอร์เฉพาะช่วงที่ใช้จริงที่มองเห็นได้เมื่อไม่มีพื้นที่พิมพ์ที่กำหนด |
bool | AutoTrimPreserveExistingPrintArea | true | รักษาพื้นที่พิมพ์ที่กำหนดในเวิร์กบุ๊กระหว่างการตัดอัตโนมัติ |
string? | PrintArea | null | ช่วงที่กำหนดเช่น "A1:Z100" |
bool | PrintGridlines | false | พิมพ์เส้นกริดของแผ่นงาน |
bool | PrintHeadings | false | พิมพ์หัวข้อแถว/คอลัมน์ |
List<string> | SheetNames | empty | จำกัดการเรนเดอร์เฉพาะแผ่นงานที่มีชื่อ |
CustomStyleCell? | CustomStyles | null | การเขียนทับรูปแบบวันที่/ทศนิยม/จำนวนเต็ม (nullable) |
bool | AllowSearch | false | ส่งต่อไปยัง PdfConfig.AllowSearch |
bool | AllowCopy | false | ส่งต่อไปยัง PdfConfig.AllowCopy |
CustomStyleCell เปิดเผย CustomStyleDateTime, CustomStyleNumberDecimal, และ CustomStyleNumberInteger ทั้งหมดเป็นสตริงที่เป็น null ได้
new ExcelConfig() ตั้งค่า SplitWorksheets เป็น false; การเปิดไฟล์ Excel โดยไม่มีการกำหนดค่าโดยชัดเจนจะใช้แคตาล็อกรูปแบบซึ่งตั้งค่าเป็น true
PptConfig
รูปแบบ: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์สไลด์เนทีฟ; false จะใช้การเปลี่ยนเส้นทางเป็น PDF |
bool | FastLoad | false | หลีกเลี่ยงการเรนเดอร์สไลด์แรกขณะเปิด; ใช้เมตาดาต้าและเรนเดอร์เมื่อร้องขอ |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับพฤติกรรม PDF/การค้นหา |
string | FontInfo | "" | ข้อมูลการทดแทนฟอนต์ |
string[]? | FontFolders | null | ไดเรกทอรีฟอนต์เพิ่มเติม |
bool | AllowSearch | false | ส่งต่อไปยัง PdfConfig.AllowSearch |
bool | AllowCopy | false | ส่งต่อไปยัง PdfConfig.AllowCopy |
บน Linux และ macOS การเรนเดอร์งานนำเสนอด้วยเอนจินปัจจุบันต้องใช้ libgdiplus และ System.Drawing.EnableUnixSupport=true ติดตั้งฟอนต์ที่งานนำเสนอใช้หรือระบุ FontFolders
CadConfig
รูปแบบ: DWG, DXF, DGN. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์ CAD เนทีฟ; false จะใช้การเปลี่ยนเส้นทางเป็น PDF |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับเส้นทาง PDF |
bool | ExportPdfA | false | ส่งออก PDF/A เพื่อการเก็บรักษา |
bool | ShowColor | true | แสดงสีแทนขาว-ดำ |
bool | WhiteBackground | true | พื้นหลังสีขาวแทนสีดำ |
short | LineWidth | 25 | ความกว้างเส้น CAD |
bool | ShowLayouts | false | เรนเดอร์แท็บเลย์เอาต์ |
bool | ShowModel | true | เรนเดอร์พื้นที่โมเดล |
bool | Check3DSolid | true | ประมวลผลโซลิด 3D |
bool | ExportAllLayouts | false | ส่งออกทุกเลย์เอาต์, เขียนทับการเลือกโมเดล/เลย์เอาต์ |
bool | LimitMinimumSize | false | ใช้ MinimumSize |
int | MinimumSize | 700 | ขนาดขั้นต่ำของผลลัพธ์เป็นพิกเซล |
bool | LimitMaximumSize | false | ใช้ MaximumSize |
int | MaximumSize | 700 | ขนาดสูงสุดของผลลัพธ์เป็นพิกเซล |
bool | ShowAllLayoutsDgn | false | รวมทุกเลย์เอาต์ DGN |
bool | AutomaticLayoutScaling | true | ปรับสเกลเลย์เอาต์โดยอัตโนมัติ |
float | PdfMargins | 0.5 | ระยะขอบ PDF เป็นนิ้ว |
RenderQuality | QualityImage | Low | คุณภาพเรสเตอร์: Low, Medium, หรือ High |
RenderQuality | QualityText | Medium | คุณภาพข้อความ: Low, Medium, หรือ High |
EmailConfig
รูปแบบ: EML, EMLX, MSG. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์อีเมลเนทีฟ; false จะใช้การเปลี่ยนเส้นทางเป็น PDF |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับเส้นทาง PDF |
Encoding? | EmailEncoding | null | เขียนทับการเข้ารหัสของข้อความ |
Encoding? | SubjectEncoding | null | เขียนทับการเข้ารหัสของหัวเรื่อง |
Encoding? | BodyEncoding | null | เขียนทับการเข้ารหัสของเนื้อหา |
bool | SkipExternalImages | false | ไม่โหลดภาพที่อ้างอิงจากระยะไกล แนะนำสำหรับอีเมลที่ไม่น่าเชื่อถือ |
bool | RemoveLastWhitePage | false | ลบหน้าว่างสุดท้ายที่ต่อท้าย |
bool | UseAntiAliasing | false | เปิดใช้งานการทำแอนตี้อัลลิเอส |
bool | UseHighQualityRendering | false | ให้ความสำคัญกับการเรนเดอร์ที่สะอาดแต่ช้ากว่า |
TimeSpan? | TimeZoneOffset | null | เขียนทับโซนเวลาที่ใช้สำหรับวันที่ |
bool | ForcePageSize | false | บังคับขนาดหน้าคงที่ |
ImageConfig, TiffConfig, and PsdConfig
ImageConfig ครอบคลุม JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF, และ SVG DPI เริ่มต้นคือ 100
| การกำหนดค่า | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
ImageConfig | MaxImagePixelSize | 3000 | ความกว้าง/ความสูงสูงสุด 0 หมายถึงไม่จำกัด; ค่าที่ไม่เป็นศูนย์ต่ำกว่า 50 จะถูกละเลย |
ImageConfig | TransparentPng | true | รักษาความโปร่งใสของ PNG; false จะใช้พื้นหลังสีขาว |
TiffConfig | ไม่มีคุณสมบัติเพิ่มเติม | DPI 200 | ใช้เฉพาะ BaseConfig เท่านั้น; รองรับ TIFF หลายหน้า |
PsdConfig | MaxImagePixelSize | 3000 | การตรวจสอบ 0/ขั้นต่ำ 50 เหมือน ImageConfig; DPI เริ่มต้นคือ 100 |
DicomConfig
รูปแบบ: DCM, IMA. DPI มีประสิทธิภาพเริ่มต้น: 100. ต้องใช้ปลั๊กอิน DICOM
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
int | HorizontalResolution | 100 effective | DPI แนวนอนที่กำหนดโดยชัดเจน; ถ้าไม่มีจะใช้ ImageResolution แล้วจึงเป็น 100 |
int | VerticalResolution | 100 effective | DPI แนวตั้งที่กำหนดโดยชัดเจน; ถ้าไม่มีจะใช้ ImageResolution แล้วจึงเป็น 100 |
int | AnimationFrameDelayMs | 100 | ความหน่วงของเฟรมแอนิเมชันหลายเฟรม; การจับเวลา GIF ใช้หน่วย 10 ms |
ushort | LoopCount | 0 | 0 หมายถึงวนลูปตลอด; ค่าบวกจะหยุดหลังจากจำนวนครั้งที่กำหนด |
DicomDisplayMode | DisplayMode | AnimationAndFrames | AnimationOnly, FramesOnly, หรือการแสดงภาพรวมพร้อมเฟรมคงที่ |
TxtConfig
รูปแบบ: TXT. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
DocPaperSize | PaperSize | A4 | ขนาดกระดาษผลลัพธ์ |
Encoding? | FileEncoding | null | null ใช้ UTF-8 |
string | FontInformation | "" | ข้อมูลฟอนต์สำหรับการเรนเดอร์ข้อความ |
ใช้ WordConfig เมื่อข้อความธรรมดาต้องการพฤติกรรมการจัดหน้าแบบละเอียด
ProjectConfig
รูปแบบ: MPP, MPPX, MPX. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์ภาพ Gantt เนทีฟ; false ใช้เส้นทาง PDF แบบข้อความ |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับเส้นทาง PDF |
bool | ExportPdfA | true | ส่งออก PDF/A เพื่อการเก็บรักษา |
MppPaperSize | PaperSize | Ledger | ขนาดกระดาษผลลัพธ์ของโครงการ |
MppTimeScale | TimeScale | Months | Days หรือ Months |
MppFormat | PresentationFormat | GanttChart | GanttChart, TaskUsage, ResourceUsage, ResourceSheet, หรือ TaskSheet |
สำหรับการค้นหาตามพิกัดข้อความที่แม่นยำ ให้ใช้ DefaultRender = false
VisioConfig
รูปแบบ: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI เริ่มต้น: 200.
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | พฤติกรรม |
|---|---|---|---|
bool | DefaultRender | true | เรนเดอร์แผนภาพเนทีฟ; false จะใช้การเปลี่ยนเส้นทางเป็น PDF |
PdfConfig | PdfConfig | new instance | การตั้งค่าสำหรับเส้นทาง PDF |
bool | ExportPdfA | true | ส่งออก PDF/A เพื่อการเก็บรักษา |
HtmlConfig, EpubConfig, MhtConfig, and XpsConfig
ทั้งสี่ตั้งค่า DPI เริ่มต้นเป็น 200 และเปิดเผย PdfConfig แบบซ้อนกัน
| การกำหนดค่า | รูปแบบ | DefaultRender | คุณสมบัติ/พฤติกรรมเพิ่มเติม |
|---|---|---|---|
HtmlConfig | HTML, HTM | true | เรนเดอร์เนทีฟ; ใช้ false สำหรับเส้นทาง PDF ที่อิงข้อความในการค้นหา |
EpubConfig | EPUB | true | เรนเดอร์เนทีฟ; false จะใช้ PDF |
MhtConfig | MHT, MHTML | true บนคลาส; false ในแคตาล็อกอัตโนมัติ | การเปิดแบบไม่มีการกำหนดค่าโดยปกติจะใช้การเปลี่ยนเส้นทางเป็น PDF ที่สามารถค้นหาได้. อินสแตนซ์เริ่มต้นที่สร้างอย่างชัดเจนจะเรนเดอร์แบบเนทีฟ |
XpsConfig | XPS | false | ใช้เส้นทาง PDF เป็นค่าเริ่มต้น; ตั้งค่าเป็น true เพื่อเรนเดอร์ภาพเนทีฟ |
ตัวอย่างการกำหนดค่าตามกลุ่ม
BaseConfig[] configs =
{
new PdfConfig
{
AllowSearch = true,
ExtractHyperlinks = true,
HyperlinksPageCount = 0
},
new WordConfig
{
PaperSize = DocPaperSize.A4,
RemovePaperMargin = false,
FontFolders = new[] { "/usr/share/fonts/truetype" },
AllowSearch = true
},
new ExcelConfig
{
PaperLandscape = true,
AutoFitContents = true,
CalculateFormula = true,
SplitWorksheets = false,
PrintGridlines = false
},
new PptConfig
{
FastLoad = true,
FontFolders = new[] { "/usr/share/fonts/truetype" },
AllowSearch = true
},
new CadConfig
{
ShowColor = true,
WhiteBackground = true,
ShowModel = true,
ShowLayouts = false,
QualityText = CadConfig.RenderQuality.High
},
new EmailConfig
{
SkipExternalImages = true,
RemoveLastWhitePage = true,
TimeZoneOffset = TimeSpan.Zero
},
new ImageConfig
{
MaxImagePixelSize = 3000,
TransparentPng = true
},
new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames,
AnimationFrameDelayMs = 100,
LoopCount = 0
}
};การเลือกตามส่วนขยาย
static BaseConfig? ConfigForExtension(string extUpper) => extUpper switch
{
".DOC" or ".DOCX" or ".DOT" or ".DOTX" or ".ODT" => new WordConfig
{
AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
PaperSize = DocPaperSize.Tabloid,
PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
},
".PDF" => new PdfConfig { AllowSearch = true, AllowCopy = true },
".XLS" or ".XLSX" or ".ODS" or ".CSV" => new ExcelConfig { AllowSearch = true, AllowCopy = true },
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },
// DefaultRender = false → PDF redirect → pixel-accurate native text search
".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
_ => null // fall back to the format's default config
};หน้านี้เป็นประโยชน์หรือไม่?