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

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

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

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