การกำหนดค่ารูปแบบ

ตัวเลือกการแสดงผลแบบเต็มสำหรับแต่ละรูปแบบ

ทุกเอกสารจะเปิดด้วยการใช้งาน BaseConfig ส่งออบเจ็กต์หนึ่งไปยัง OpenDocumentAsync หรือให้แคตาล็อกรูปแบบสร้างค่าเริ่มต้นของมันเอง คลาสทั้งหมดด้านล่างอยู่ในเนมสเปซ Doconut

เนมสเปซเดียวนี้เป็นใหม่ ไลบรารี .NET Standard ก่อนหน้าได้กระจายประเภทเหล่านี้ไปยัง Doconut.Configs, Doconut.Configs.View, และ Doconut.Models ชื่อประเภทไม่ได้เปลี่ยน — ในไฟล์ส่วนใหญ่การแก้ไขทั้งหมดคือการลบสองบรรทัด using ดูที่ คู่มือการย้าย

csharp
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

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
intImageResolution00 ใช้ค่าเริ่มต้นของรูปแบบ ช่วงค่าที่อนุญาตอย่างชัดเจนคือ 25‑300 DPI; การกำหนดค่าที่ไม่ถูกต้องจะถูกละเลย
stringDocumentCulture""ภูมิภาคสำหรับวันที่และตัวเลข ค่าที่ไม่ว่างจะถูกตัดช่องว่าง; การกำหนดค่าว่างจะถูกละเลย
stringPassword""รหัสผ่านของเอกสารที่ป้องกัน DocOptions.Password จะถูกคัดลอกมาที่นี่โดยอัตโนมัติ
boolShowUItrueคุณสมบัติเพื่อความเข้ากันได้; เรนเดอร์เดิมไม่ได้ใช้มันเพื่อควบคุมแถบเครื่องมือของเบราว์เซอร์
boolCachePagestrueแคชภาพหน้าที่เรนเดอร์สำหรับเซสชันของเอกสาร

PdfConfig

รูปแบบ: PDF. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueสวิตช์เพื่อความเข้ากันได้. โรงงานปัจจุบันใช้ตัวดู PDF เนทีฟ
boolAllowSearchfalseสร้าง/ใช้ดัชนีการค้นหาข้อความใน PDF ต้องมีใบอนุญาตความสามารถ Search สำหรับคำขอ
boolAllowCopyfalseอนุญาตการเลือกและคัดลอกข้อความ
boolExtractHyperlinksfalseดึงสี่เหลี่ยมลิงก์สำหรับการวางซ้อนของไคลเอนต์
intHyperlinksPageCount0จำนวนหน้าที่สแกนเพื่อค้นหาลิงก์; 0 หมายถึงทุกหน้า
boolCompressImagesfalseบีบอัดภาพที่ฝังอยู่ก่อนการเรนเดอร์
intCompressQuality100คุณภาพ JPEG ที่ใช้เมื่อเปิดใช้งานการบีบอัด
boolResizeImagesfalseปรับขนาดภาพที่ฝังอยู่ก่อนการเรนเดอร์
intResizeResolution300DPI เป้าหมายสำหรับภาพที่ปรับขนาด
boolCompressFastfalseให้ความสำคัญกับเส้นทางการบีบอัดที่เร็วกว่าแต่คุณภาพต่ำกว่า
boolFixInvalidImagesfalseพยายามซ่อมแซมภาพฝังที่ไม่ถูกต้อง
boolSplitSegmentsfalseรวมคำที่ถูกแยกเป็นส่วนบรรทัดเพื่อปรับปรุงการค้นหา/คัดลอก

showHyperlinks ใน ViewerConfig ควบคุมการวางซ้อนของไคลเอนต์, ส่วน ExtractHyperlinks ควบคุมการดึงบนเซิร์ฟเวอร์ เปิดใช้งานทั้งสองพร้อมกัน

WordConfig

รูปแบบ: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์ Word เนทีฟ; false ใช้การเปลี่ยนเส้นทางเป็น PDF
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับเส้นทาง PDF/การค้นหา
DocPaperSizePaperSizeA4ขนาดกระดาษผลลัพธ์ ใช้ Custom พร้อมความกว้าง/ความสูง
intPaperWidth595ความกว้างกำหนดเองเป็นจุด
intPaperHeight841ความสูงกำหนดเองเป็นจุด
boolRemovePaperMarginfalseลบขอบกระดาษของเอกสาร
boolRenderPageColortrueรักษาสีหน้าที่กำหนดใน Word; false เรนเดอร์หน้าขาว
boolExportPdfAfalseใช้ PDF/A สำหรับเส้นทาง PDF
Encoding?FileEncodingnullเขียนทับการเข้ารหัสต้นฉบับ
stringFontInfo""ข้อมูลการทดแทนฟอนต์
string[]?FontFoldersnullโฟลเดอร์ฟอนต์เพิ่มเติม, มีประโยชน์ใน Linux/containers
boolAllowSearchfalseส่งต่อไปยัง PdfConfig.AllowSearch
boolAllowCopyfalseส่งต่อไปยัง PdfConfig.AllowCopy
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents, หรือ AutoFitToWindow

ExcelConfig

รูปแบบ: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์แผ่นงานเนทีฟ; false ใช้การเปลี่ยนเส้นทางเป็น PDF
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับเส้นทาง PDF/การค้นหา
ExcelPaperSizePaperSizePaperA4ขนาดกระดาษผลลัพธ์
doublePaperMargins0.25ขอบกระดาษเป็นนิ้ว
boolPaperLandscapetrueเรนเดอร์แผ่นงานในแนวนอน
boolAutoFitContentsfalseปรับอัตโนมัติความสูงของแถวและความกว้างของคอลัมน์
boolRemoveEmptyContenttrueลดขนาดผลลัพธ์โดยตัดเนื้อหาที่ว่างออก
boolCalculateFormulatrueคำนวณสูตรใหม่ก่อนการเรนเดอร์
boolShowRowColumnHeaderstrueรวมหัวข้อแถว/คอลัมน์ของสเปรดชีต
boolExportPdfAfalseใช้ PDF/A สำหรับเส้นทาง PDF
boolSplitWorksheetsfalseเก็บแผ่นงานเป็นกลุ่มหน้าแยก
boolShowEmptyWorkSheetsfalseรวมแผ่นงานว่าง
boolExportLandscapefalseบังคับส่งออกในแนวนอน
boolExportOnePagePerSheetfalseปรับแต่ละแผ่นงานให้พอดีกับหน้าเดียว
boolMemoryOptimizationPreferencetrueลดการใช้หน่วยความจำสูงสุด, อาจแลกกับความเร็ว
boolAutoTrimWorksheetRenderRangetrueเรนเดอร์เฉพาะช่วงที่ใช้ได้ที่มองเห็นเมื่อไม่มีพื้นที่พิมพ์ที่กำหนด
boolAutoTrimPreserveExistingPrintAreatrueรักษาพื้นที่พิมพ์ที่กำหนดในเวิร์กบุ๊กระหว่างการตัดอัตโนมัติ
string?PrintAreanullช่วงที่กำหนดเช่น "A1:Z100"
boolPrintGridlinesfalseพิมพ์เส้นกริดของแผ่นงาน
boolPrintHeadingsfalseพิมพ์หัวข้อแถว/คอลัมน์
List<string>SheetNamesemptyจำกัดการเรนเดอร์เฉพาะแผ่นงานที่ระบุชื่อ
CustomStyleCell?CustomStylesnullการเขียนทับรูปแบบวันที่/ทศนิยม/จำนวนเต็ม (nullable)
boolAllowSearchfalseส่งต่อไปยัง PdfConfig.AllowSearch
boolAllowCopyfalseส่งต่อไปยัง 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.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์สไลด์เนทีฟ; false ใช้การเปลี่ยนเส้นทางเป็น PDF
boolFastLoadfalseหลีกเลี่ยงการเรนเดอร์สไลด์แรกขณะเปิด; ใช้เมตาดาต้าและเรนเดอร์ตามความต้องการ
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับพฤติกรรม PDF/การค้นหา
stringFontInfo""ข้อมูลการทดแทนฟอนต์
string[]?FontFoldersnullโฟลเดอร์ฟอนต์เพิ่มเติม
boolAllowSearchfalseส่งต่อไปยัง PdfConfig.AllowSearch
boolAllowCopyfalseส่งต่อไปยัง PdfConfig.AllowCopy

บน Linux และ macOS การเรนเดอร์งานนำเสนอด้วยเอนจินปัจจุบันต้องใช้ libgdiplus และ System.Drawing.EnableUnixSupport=true ติดตั้งฟอนต์ที่งานนำเสนอใช้หรือระบุ FontFolders

CadConfig

รูปแบบ: DWG, DXF, DGN. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์ CAD เนทีฟ; false ใช้การเปลี่ยนเส้นทางเป็น PDF
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับเส้นทาง PDF
boolExportPdfAfalseผลลัพธ์ PDF/A เพื่อการเก็บถาวร
boolShowColortrueแสดงสีแทนขาว-ดำ
boolWhiteBackgroundtrueพื้นหลังสีขาวแทนสีดำ
shortLineWidth25ความกว้างเส้น CAD
boolShowLayoutsfalseเรนเดอร์แท็บเลย์เอาต์
boolShowModeltrueเรนเดอร์โมเดลสเปซ
boolCheck3DSolidtrueประมวลผลโซลิด 3D
boolExportAllLayoutsfalseส่งออกทุกเลย์เอาต์, เขียนทับการเลือกโมเดล/เลย์เอาต์
boolLimitMinimumSizefalseใช้ MinimumSize
intMinimumSize700ขนาดขั้นต่ำของผลลัพธ์เป็นพิกเซล
boolLimitMaximumSizefalseใช้ MaximumSize
intMaximumSize700ขนาดสูงสุดของผลลัพธ์เป็นพิกเซล
boolShowAllLayoutsDgnfalseรวมทุกเลย์เอาต์ DGN
boolAutomaticLayoutScalingtrueปรับสเกลเลย์เอาต์อัตโนมัติ
floatPdfMargins0.5ระยะขอบ PDF เป็นนิ้ว
RenderQualityQualityImageLowคุณภาพเรสเตอร์: Low, Medium, หรือ High
RenderQualityQualityTextMediumคุณภาพข้อความ: Low, Medium, หรือ High

EmailConfig

รูปแบบ: EML, EMLX, MSG. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์อีเมลเนทีฟ; false ใช้การเปลี่ยนเส้นทางเป็น PDF
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับเส้นทาง PDF
Encoding?EmailEncodingnullเขียนทับการเข้ารหัสข้อความ
Encoding?SubjectEncodingnullเขียนทับการเข้ารหัสหัวเรื่อง
Encoding?BodyEncodingnullเขียนทับการเข้ารหัสเนื้อหา
boolSkipExternalImagesfalseไม่โหลดภาพที่อ้างอิงจากระยะไกล แนะนำสำหรับอีเมลที่ไม่น่าเชื่อถือ
boolRemoveLastWhitePagefalseลบหน้าว่างสุดท้ายที่ต่อท้าย
boolUseAntiAliasingfalseเปิดใช้งานการทำ Anti‑Aliasing
boolUseHighQualityRenderingfalseให้ความสำคัญกับการเรนเดอร์ที่คมชัดแต่ช้ากว่า
TimeSpan?TimeZoneOffsetnullเขียนทับโซนเวลาที่ใช้สำหรับวันที่
boolForcePageSizefalseบังคับขนาดหน้าคงที่

ImageConfig, TiffConfig, และ PsdConfig

ImageConfig ครอบคลุม JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF, และ SVG. DPI เริ่มต้นคือ 100.

การกำหนดค่าคุณสมบัติค่าเริ่มต้นพฤติกรรม
ImageConfigMaxImagePixelSize3000ความกว้าง/สูงสูงสุด 0 หมายถึงไม่มีขีดจำกัด; ค่าที่ไม่เป็นศูนย์ต่ำกว่า 50 จะถูกละเลย
ImageConfigTransparentPngtrueรักษาความโปร่งใสของ PNG; false ใช้พื้นหลังสีขาว
TiffConfigไม่มีคุณสมบัติเพิ่มเติมDPI 200ใช้เฉพาะ BaseConfig; รองรับ TIFF หลายหน้า
PsdConfigMaxImagePixelSize3000การตรวจสอบเช่นเดียวกับ ImageConfig; DPI เริ่มต้นคือ 100

DicomConfig

รูปแบบ: DCM, IMA. DPI มีประสิทธิภาพเริ่มต้น: 100. ต้องใช้ปลั๊กอิน DICOM.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
intHorizontalResolution100 effectiveDPI แนวนอนที่ระบุ; หากไม่มีใช้ ImageResolution, จากนั้น 100
intVerticalResolution100 effectiveDPI แนวตั้งที่ระบุ; หากไม่มีใช้ ImageResolution, จากนั้น 100
intAnimationFrameDelayMs100ความหน่วงของเฟรมหลายเฟรม; การจับเวลา GIF ใช้หน่วย 10 ms
ushortLoopCount00 หมายถึงวนลูปไม่จำกัด; ค่าบวกจะหยุดหลังจากจำนวนครั้งนั้น
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly, หรือภาพรวมพร้อมเฟรมคงที่

TxtConfig

รูปแบบ: TXT. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
DocPaperSizePaperSizeA4ขนาดกระดาษผลลัพธ์
Encoding?FileEncodingnullnull ใช้ UTF‑8
stringFontInformation""ข้อมูลฟอนต์สำหรับการเรนเดอร์ข้อความ

ใช้ WordConfig เมื่อข้อความธรรมดาต้องการพฤติกรรมการจัดหน้าแบบละเอียด

ProjectConfig

รูปแบบ: MPP, MPPX, MPX. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์ภาพ Gantt เนทีฟ; false ใช้เส้นทาง PDF แบบข้อความ
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับเส้นทาง PDF
boolExportPdfAtrueผลลัพธ์ PDF/A เพื่อการเก็บถาวร
MppPaperSizePaperSizeLedgerขนาดกระดาษผลลัพธ์ของโครงการ
MppTimeScaleTimeScaleMonthsDays หรือ Months
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet, หรือ TaskSheet

สำหรับการค้นหาตำแหน่งข้อความที่แม่นยำ ให้ใช้ DefaultRender = false

VisioConfig

รูปแบบ: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI เริ่มต้น: 200.

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
boolDefaultRendertrueเรนเดอร์แผนภาพเนทีฟ; false ใช้การเปลี่ยนเส้นทางเป็น PDF
PdfConfigPdfConfigอินสแตนซ์ใหม่การตั้งค่าสำหรับเส้นทาง PDF
boolExportPdfAtrueผลลัพธ์ PDF/A เพื่อการเก็บถาวร

HtmlConfig, EpubConfig, MhtConfig, และ XpsConfig

สี่ตัวเลือกนี้ทั้งหมดมี DPI เริ่มต้นที่ 200 และเปิดเผย PdfConfig แบบซ้อนกัน

การกำหนดค่ารูปแบบDefaultRenderคุณสมบัติ/พฤติกรรมเพิ่มเติม
HtmlConfigHTML, HTMtrueเรนเดอร์เนทีฟ; ใช้ false สำหรับเส้นทาง PDF แบบข้อความ
EpubConfigEPUBtrueเรนเดอร์เนทีฟ; false ใช้ PDF
MhtConfigMHT, MHTMLtrue on the class; false in the automatic catalogการเปิดโดยไม่มีการกำหนดค่าจะใช้การเปลี่ยนเส้นทางเป็น PDF ที่สามารถค้นหาได้ อินสแตนซ์เริ่มต้นที่สร้างโดยชัดเจนจะเรนเดอร์เนทีฟ
XpsConfigXPSfalseใช้เส้นทาง PDF เป็นค่าเริ่มต้น; ตั้งค่า true เพื่อเรนเดอร์ภาพเนทีฟ

ตัวอย่างการกำหนดค่าตามกลุ่ม

csharp
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
    }
};

การเลือกตามส่วนขยาย

csharp
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
};

หน้านี้เป็นประโยชน์หรือไม่?