การกำหนดค่าแบบฟอร์ม

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

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

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 license สำหรับการร้องขอ
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, ทั้งหมดเป็นสตริง nullable

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เปิดใช้งานการทำแอนติอาลีอัส
boolUseHighQualityRenderingfalseให้การเรนเดอร์ที่สะอาดแต่ช้ากว่า
TimeSpan?TimeZoneOffsetnullเขียนทับโซนเวลาที่ใช้สำหรับวันที่
boolForcePageSizefalseบังคับขนาดหน้าคงที่

ImageConfig, TiffConfig, and 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, and XpsConfig

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

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

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

csharp
BaseConfig[] configs =
[
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = ["/usr/share/fonts/truetype"],
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = ["/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
};

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