Cấu hình Định dạng

Tùy chọn render đầy đủ cho mỗi định dạng

Mỗi tài liệu đều mở bằng một triển khai BaseConfig. Hãy truyền một đối tượng vào OpenDocumentAsync (hoặc OpenDocument) hoặc để danh mục định dạng tạo mặc định cho nó. Tất cả các lớp dưới đây nằm trong không gian tên Doconut.

csharp
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
    AllowSearch = true,
    AllowCopy   = true,
    ImageResolution = 150
});

Kế thừa và cài đặt PDF lồng nhau

Mỗi định dạng kế thừa năm thuộc tính BaseConfig. Các định dạng có thể chuyển hướng qua PDF sẽ hiển thị một PdfConfig lồng nhau. Trong WordConfig, ExcelConfig và PptConfig, AllowSearch và AllowCopy là các thuộc tính tiện lợi để đọc và ghi PdfConfig lồng nhau.

DefaultRender = true chọn bộ render định dạng gốc. Đối với các định dạng có chuyển hướng PDF, false sẽ chuyển đổi sang PDF trong bộ nhớ trước và sau đó sử dụng trình xem PDF. Đường dẫn này thường hữu ích cho việc tìm kiếm theo tọa độ văn bản, nhưng tốn thêm một lần chuyển đổi.

Trừ khi có ghi chú khác, các bảng dưới đây hiển thị giá trị mặc định của constructor/thuộc tính. Danh mục định dạng tự động cố ý ghi đè hai trong số chúng: nó tạo ExcelConfig với SplitWorksheets = true, và MhtConfig với DefaultRender = false.

BaseConfig

KiểuThuộc tínhMặc địnhHành vi
intImageResolution00 sử dụng mặc định của định dạng. Phạm vi hợp lệ rõ ràng là 25-300 DPI; các giá trị không hợp lệ sẽ bị bỏ qua.
stringDocumentCulture""Vị trí địa phương cho ngày và số. Giá trị không rỗng sẽ được cắt bỏ khoảng trắng; các giá trị rỗng sẽ bị bỏ qua.
stringPassword""Mật khẩu tài liệu được bảo vệ. DocOptions.Password được sao chép vào đây tự động.
boolShowUItrueThuộc tính tương thích; bộ render hiện tại không sử dụng nó để điều khiển thanh công cụ của trình duyệt.
boolCachePagestrueLưu trữ bộ nhớ đệm các hình ảnh trang đã render cho phiên làm việc của tài liệu.

PdfConfig

Định dạng: PDF. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueCông tắc tương thích. Nhà máy hiện tại sử dụng trình xem PDF gốc.
boolAllowSearchfalseXây dựng/sử dụng chỉ mục tìm kiếm văn bản PDF. Yêu cầu khả năng cấp phép Search cho các yêu cầu.
boolAllowCopyfalseCho phép các thao tác chọn và sao chép văn bản.
boolExtractHyperlinksfalseTrích xuất các hình chữ nhật liên kết cho lớp phủ phía khách.
intHyperlinksPageCount0Số trang tối đa được quét để tìm liên kết; 0 có nghĩa là mọi trang.
boolCompressImagesfalseNén các hình ảnh nhúng trước khi render.
intCompressQuality100Chất lượng JPEG được sử dụng khi bật nén.
boolResizeImagesfalseThay đổi kích thước các hình ảnh nhúng trước khi render.
intResizeResolution300DPI mục tiêu cho các hình ảnh đã thay đổi kích thước.
boolCompressFastfalseƯu tiên đường dẫn nén nhanh hơn, chất lượng thấp hơn.
boolFixInvalidImagesfalseCố gắng sửa các hình ảnh nhúng không hợp lệ.
boolSplitSegmentsfalseNối lại các từ bị tách qua các đoạn dòng để cải thiện tìm kiếm/sao chép.

showHyperlinks trong ViewerConfig điều khiển lớp phủ phía khách, trong khi ExtractHyperlinks điều khiển việc trích xuất phía máy chủ. Bật cả hai.

WordConfig

Định dạng: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueRender Word gốc; false sử dụng chuyển hướng PDF.
PdfConfigPdfConfignew instanceCài đặt được sử dụng cho đường dẫn PDF/tìm kiếm.
DocPaperSizePaperSizeA4Kích thước giấy đầu ra. Sử dụng Custom với chiều rộng/chiều cao.
intPaperWidth595Chiều rộng tùy chỉnh tính bằng điểm.
intPaperHeight841Chiều cao tùy chỉnh tính bằng điểm.
boolRemovePaperMarginfalseXóa lề trang tài liệu.
boolRenderPageColortrueGiữ màu trang được cấu hình trong Word; false sẽ render các trang trắng.
boolExportPdfAfalseSử dụng PDF/A lưu trữ trên đường dẫn PDF.
Encoding?FileEncodingnullGhi đè mã hoá nguồn.
stringFontInfo""Thông tin thay thế phông chữ.
string[]?FontFoldersnullCác thư mục phông chữ bổ sung — hữu ích trên máy chủ thiếu các phông chữ mà tài liệu sử dụng.
boolAllowSearchfalseỦy quyền cho PdfConfig.AllowSearch.
boolAllowCopyfalseỦy quyền cho PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents, hoặc AutoFitToWindow.

ExcelConfig

Định dạng: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueKết xuất sheet gốc; false sử dụng chuyển hướng PDF.
PdfConfigPdfConfignew instanceCài đặt cho đường dẫn PDF/tìm kiếm.
ExcelPaperSizePaperSizePaperA4Kích thước giấy đầu ra.
doublePaperMargins0.25Lề trang tính bằng inch.
boolPaperLandscapetrueKết xuất sheet ngang.
boolAutoFitContentsfalseTự động điều chỉnh chiều cao hàng và chiều rộng cột.
boolRemoveEmptyContenttrueThu gọn đầu ra bằng cách loại bỏ nội dung trống.
boolCalculateFormulatrueTính lại công thức trước khi kết xuất.
boolShowRowColumnHeaderstrueBao gồm tiêu đề hàng và cột của bảng tính.
boolExportPdfAfalseSử dụng PDF/A cho đường dẫn PDF.
boolSplitWorksheetsfalseGiữ các worksheet dưới dạng nhóm trang riêng biệt.
boolShowEmptyWorkSheetsfalseBao gồm các worksheet trống.
boolExportLandscapefalseBuộc xuất ở chế độ ngang.
boolExportOnePagePerSheetfalseĐiều chỉnh mỗi worksheet vừa một trang đầu ra.
boolMemoryOptimizationPreferencetrueGiảm mức sử dụng bộ nhớ tối đa, có thể đổi lấy một chút tốc độ.
boolAutoTrimWorksheetRenderRangetrueChỉ kết xuất phạm vi đã sử dụng hiển thị khi không có khu vực in rõ ràng.
boolAutoTrimPreserveExistingPrintAreatrueBảo tồn các khu vực in được định nghĩa trong workbook khi tự động cắt.
string?PrintAreanullPhạm vi rõ ràng như "A1:Z100".
boolPrintGridlinesfalseIn lưới của worksheet.
boolPrintHeadingsfalseIn tiêu đề hàng/cột.
List<string>SheetNamesemptyGiới hạn việc kết xuất chỉ các worksheet có tên.
CustomStyleCell?CustomStylesnullGhi đè định dạng ngày/thập phân/số nguyên tùy chọn.
boolAllowSearchfalseChuyển giao cho PdfConfig.AllowSearch.
boolAllowCopyfalseChuyển giao cho PdfConfig.AllowCopy.

CustomStyleCell cung cấp CustomStyleDateTime, CustomStyleNumberDecimal, và CustomStyleNumberInteger, tất cả đều là chuỗi nullable.

new ExcelConfig() đặt SplitWorksheets thành false; mở một tệp Excel mà không có cấu hình rõ ràng sẽ sử dụng danh mục định dạng, cái mà đặt nó thành true.

PptConfig

Định dạng: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueKết xuất slide gốc; false sử dụng chuyển hướng PDF.
boolFastLoadfalseTránh kết xuất slide đầu tiên khi mở; sử dụng siêu dữ liệu và kết xuất khi cần.
PdfConfigPdfConfignew instanceCài đặt cho hành vi PDF/tìm kiếm.
stringFontInfo""Thông tin thay thế phông chữ.
string[]?FontFoldersnullThư mục phông chữ bổ sung.
boolAllowSearchfalseChuyển giao cho PdfConfig.AllowSearch.
boolAllowCopyfalseChuyển giao cho PdfConfig.AllowCopy.

Cài đặt các phông chữ mà bản trình chiếu sử dụng trên máy chủ, hoặc chỉ định FontFolders tới một thư mục chứa chúng. Một Windows Server không có Office có ít phông chữ hơn nhiều so với máy phát triển, và các phông chữ thiếu sẽ được thay thế mà không có lỗi nào.

CadConfig

Định dạng: DWG, DXF, DGN. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueKết xuất CAD gốc; false sử dụng chuyển hướng PDF.
PdfConfigPdfConfignew instanceCài đặt đường dẫn PDF.
boolExportPdfAfalseĐầu ra PDF/A lưu trữ.
boolShowColortrueMàu thay vì đen trắng.
boolWhiteBackgroundtrueNền trắng thay vì nền đen.
shortLineWidth25Độ rộng nét CAD.
boolShowLayoutsfalseKết xuất các tab bố cục.
boolShowModeltrueKết xuất không gian mô hình.
boolCheck3DSolidtrueXử lý các khối 3D.
boolExportAllLayoutsfalseXuất tất cả các bố cục, ghi đè lựa chọn mô hình/bố cục.
boolLimitMinimumSizefalseÁp dụng MinimumSize.
intMinimumSize700Kích thước đầu ra tối thiểu tính bằng pixel.
boolLimitMaximumSizefalseÁp dụng MaximumSize.
intMaximumSize700Kích thước đầu ra tối đa tính bằng pixel.
boolShowAllLayoutsDgnfalseBao gồm tất cả các bố cục DGN.
boolAutomaticLayoutScalingtrueTự động thu phóng các bố cục.
floatPdfMargins0.5Lề PDF tính bằng inch.
RenderQualityQualityImageLowChất lượng raster: Low, Medium, hoặc High.
RenderQualityQualityTextMediumChất lượng văn bản: Low, Medium, hoặc High.

Cấu hình Email

Định dạng: EML, EMLX, MSG. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueKết xuất email gốc; false sử dụng chuyển hướng PDF.
PdfConfigPdfConfigđối tượng mớiCài đặt đường dẫn PDF.
Encoding?EmailEncodingnullGhi đè mã hoá tin nhắn.
Encoding?SubjectEncodingnullGhi đè mã hoá tiêu đề.
Encoding?BodyEncodingnullGhi đè mã hoá nội dung.
boolSkipExternalImagesfalseKhông tải các hình ảnh được tham chiếu từ xa. Được khuyến nghị cho email không tin cậy.
boolRemoveLastWhitePagefalseXóa trang trắng cuối cùng.
boolUseAntiAliasingfalseBật khử răng cưa.
boolUseHighQualityRenderingfalseƯu tiên kết xuất sạch hơn, chậm hơn.
TimeSpan?TimeZoneOffsetnullGhi đè múi giờ được sử dụng cho ngày tháng.
boolForcePageSizefalseBuộc kích thước trang cố định.

ImageConfig, TiffConfig và PsdConfig

ImageConfig bao gồm JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF và SVG. DPI mặc định của nó là 100.

KiểuThuộc tínhMặc địnhHành vi
ImageConfigMaxImagePixelSize3000Chiều rộng/chiều cao tối đa. 0 có nghĩa là không giới hạn; các giá trị khác 0 dưới 50 sẽ bị bỏ qua.
ImageConfigTransparentPngtrueGiữ trong suốt PNG; false sử dụng nền trắng.
TiffConfigkhông có thuộc tính bổ sungDPI 200Chỉ sử dụng BaseConfig; hỗ trợ TIFF đa trang.
PsdConfigMaxImagePixelSize3000Cùng kiểm tra 0/tối thiểu-50 như ImageConfig; DPI mặc định là 100.

Cấu hình Dicom

Định dạng: DCM, IMA. DPI hiệu quả mặc định: 100. Yêu cầu plugin DICOM. Trong gói này các tệp DICOM được kết xuất đầy đủ, nhưng siêu dữ liệu kỹ thuật không khả dụng — xem Plugin DICOM.

KiểuThuộc tínhMặc địnhHành vi
intHorizontalResolution100 effectiveDPI ngang rõ ràng; nếu không sẽ dùng ImageResolution, sau đó 100.
intVerticalResolution100 effectiveDPI dọc rõ ràng; nếu không sẽ dùng ImageResolution, sau đó 100.
intAnimationFrameDelayMs100Độ trễ khung hoạt hình đa khung; thời gian GIF sử dụng đơn vị 10 ms.
ushortLoopCount00 lặp vô hạn; các giá trị dương dừng sau số lần đếm đó.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly, hoặc tổng quan kết hợp với các khung tĩnh.

Cấu hình Txt

Định dạng: TXT. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
DocPaperSizePaperSizeA4Kích thước giấy xuất ra.
Encoding?FileEncodingnullnull sử dụng UTF-8.
stringFontInformation""Thông tin phông chữ cho việc kết xuất văn bản.

Sử dụng WordConfig khi văn bản thuần cần hành vi bố cục trang phong phú hơn.

Cấu hình Project

Định dạng: MPP, MPPX, MPX. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueHình ảnh Gantt gốc; false sử dụng đường dẫn PDF dựa trên văn bản.
PdfConfigPdfConfigđối tượng mớiCài đặt đường dẫn PDF.
boolExportPdfAtrueĐầu ra PDF/A lưu trữ.
MppPaperSizePaperSizeLedgerKích thước giấy xuất ra cho dự án.
MppTimeScaleTimeScaleMonthsDays hoặc Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet hoặc TaskSheet.

Để tìm kiếm tọa độ văn bản chính xác, sử dụng DefaultRender = false.

Cấu hình Visio

Định dạng: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI mặc định: 200.

KiểuThuộc tínhMặc địnhHành vi
boolDefaultRendertrueKết xuất sơ đồ gốc; false sử dụng chuyển hướng PDF.
PdfConfigPdfConfigđối tượng mớiCài đặt đường dẫn PDF.
boolExportPdfAtrueĐầu ra PDF/A lưu trữ.

HtmlConfig, EpubConfig, MhtConfig và XpsConfig

Cả bốn đều mặc định 200 DPI và cung cấp một PdfConfig lồng nhau.

Cấu hìnhĐịnh dạngDefaultRenderThuộc tính/hành vi bổ sung
HtmlConfigHTML, HTMtrueKết xuất gốc; sử dụng false cho đường dẫn PDF dựa trên văn bản để tìm kiếm.
EpubConfigEPUBtrueKết xuất gốc; false sử dụng PDF.
MhtConfigMHT, MHTMLtrue trên lớp; false trong danh mục tự độngMở bình thường không cấu hình sử dụng chuyển hướng PDF có thể tìm kiếm. Một thể hiện mặc định được tạo rõ ràng sẽ kết xuất gốc.
XpsConfigXPSfalseMặc định sử dụng đường dẫn PDF; đặt true để kết xuất hình ảnh gốc.

Ví dụ cấu hình theo họ

csharp
BaseConfig[] configs =
{
    new PdfConfig
    {
        AllowSearch = true,
        ExtractHyperlinks = true,
        HyperlinksPageCount = 0
    },
    new WordConfig
    {
        PaperSize = DocPaperSize.A4,
        RemovePaperMargin = false,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        AllowSearch = true
    },
    new ExcelConfig
    {
        PaperLandscape = true,
        AutoFitContents = true,
        CalculateFormula = true,
        SplitWorksheets = false,
        PrintGridlines = false
    },
    new PptConfig
    {
        FastLoad = true,
        FontFolders = new[] { HostingEnvironment.MapPath("~/App_Data/Fonts") },
        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
    }
};

Lựa chọn theo phần mở rộng

csharp
static BaseConfig ConfigForExtension(string extUpper)
{
    switch (extUpper)
    {
        case ".DOC": case ".DOCX": case ".DOT": case ".DOTX": case ".ODT":
            return new WordConfig
            {
                AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
                PaperSize = DocPaperSize.Tabloid,
                PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
            };
        case ".PDF":
            return new PdfConfig { AllowSearch = true, AllowCopy = true };
        case ".XLS": case ".XLSX": case ".ODS": case ".CSV":
            return new ExcelConfig { AllowSearch = true, AllowCopy = true };
        case ".DCM": case ".IMA":
            return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };
        // DefaultRender = false → PDF redirect → pixel-accurate native text search
        case ".HTML": case ".HTM":
            return new HtmlConfig { DefaultRender = false };
        case ".EML": case ".EMLX": case ".MSG":
            return new EmailConfig { DefaultRender = false };
        default:
            return null; // fall back to the format's default config
    }
}

Trang này có hữu ích không?