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

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

เอกสารแต่ละไฟล์จะเปิดด้วยการนำ 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 สำหรับคำขอ
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
PdfConfigPdfConfignew instanceการตั้งค่าที่ใช้โดยเส้นทาง 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

การกำหนดค่า Excel

รูปแบบ: 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>SheetNamesว่างจำกัดการแสดงผลเฉพาะเวิร์กชีตที่มีชื่อ.
CustomStyleCell?CustomStylesnullการแทนที่การจัดรูปแบบวันที่/ทศนิยม/จำนวนเต็มแบบเลือกได้.
boolAllowSearchfalseมอบหมายให้ PdfConfig.AllowSearch.
boolAllowCopyfalseมอบหมายให้ PdfConfig.AllowCopy.

CustomStyleCell เปิดเผย CustomStyleDateTime, CustomStyleNumberDecimal, และ CustomStyleNumberInteger, ทั้งหมดเป็นสตริงที่สามารถเป็นค่า null ได้.

new ExcelConfig() ตั้งค่า SplitWorksheets เป็น false; การเปิดไฟล์ Excel โดยไม่มีการกำหนดค่าที่ชัดเจนจะใช้แคตาล็อกรูปแบบ ซึ่งตั้งค่าเป็น true.

การกำหนดค่า PPT

รูปแบบ: 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.

การกำหนดค่า CAD

รูปแบบ: 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.

การกำหนดค่าอีเมล

รูปแบบ: 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, และ 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เหมือนการตรวจสอบ 0/minimum-50 กับ ImageConfig; DPI เริ่มต้นคือ 100.

การกำหนดค่า DicomConfig

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

ประเภทคุณสมบัติค่าเริ่มต้นพฤติกรรม
intHorizontalResolution100 effectiveDPI แนวนอนที่ระบุโดยตรง; หากไม่เช่นนั้นจะใช้ ImageResolution, แล้วจึง 100.
intVerticalResolution100 effectiveDPI แนวตั้งที่ระบุโดยตรง; หากไม่เช่นนั้นจะใช้ ImageResolution, แล้วจึง 100.
intAnimationFrameDelayMs100ความหน่วงของแอนิเมชันหลายเฟรม; การจับเวลา GIF ใช้หน่วย 10 มิลลิวินาที.
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 บนคลาส; 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 → การค้นหาข้อความแบบเนทีฟที่แม่นยำระดับพิกเซล
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // กลับไปใช้การกำหนดค่าเริ่มต้นของรูปแบบ’s default config
};

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