Konfigurasi Format

Opsi rendering lengkap per-format

Setiap dokumen dibuka dengan implementasi BaseConfig. Berikan satu ke OpenDocumentAsync atau biarkan katalog format membuat defaultnya. Semua kelas di bawah ini berada di namespace Doconut.

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

Pewarisan dan pengaturan PDF bersarang

Setiap format mewarisi lima properti BaseConfig. Format yang dapat mengalihkan melalui PDF mengekspos sebuah PdfConfig bersarang. Dalam WordConfig, ExcelConfig, dan PptConfig, AllowSearch dan AllowCopy adalah properti kemudahan yang membaca dan menulis PdfConfig bersarang.

DefaultRender = true memilih renderer format native. Pada format dengan pengalihan PDF, false mengonversi ke PDF dalam memori terlebih dahulu dan kemudian menggunakan penampil PDF. Jalur itu sering berguna untuk pencarian koordinat teks, tetapi menambah biaya konversi tambahan.

Kecuali dinyatakan lain, tabel menunjukkan nilai default konstruktor/properti. Katalog format otomatis secara sengaja menimpa dua di antaranya: ia membuat ExcelConfig dengan SplitWorksheets = true, dan MhtConfig dengan DefaultRender = false.

BaseConfig

TipePropertiDefaultPerilaku
intImageResolution00 menggunakan default format. Rentang eksplisit yang valid adalah 25-300 DPI; penugasan yang tidak valid diabaikan.
stringDocumentCulture""Locale untuk tanggal dan angka. Nilai yang tidak kosong dipangkas; penugasan kosong diabaikan.
stringPassword""Kata sandi dokumen terlindungi. DocOptions.Password disalin ke sini secara otomatis.
boolShowUItrueProperti kompatibilitas; renderer saat ini tidak menggunakannya untuk mengontrol bilah alat peramban.
boolCachePagestrueCache gambar halaman yang dirender untuk sesi dokumen.

PdfConfig

Format: PDF. DPI Default: 200.

TipePropertiDefaultPerilaku
boolDefaultRendertrueSakelar kompatibilitas. Pabrik saat ini menggunakan penampil PDF native.
boolAllowSearchfalseBangun/gunakan indeks pencarian teks PDF. Membutuhkan kemampuan lisensi Search untuk permintaan.
boolAllowCopyfalseIzinkan operasi pemilihan/penyalinan teks.
boolExtractHyperlinksfalseEkstrak persegi panjang tautan untuk overlay klien.
intHyperlinksPageCount0Maksimum halaman yang dipindai untuk tautan; 0 berarti setiap halaman.
boolCompressImagesfalseKompres gambar tersemat sebelum rendering.
intCompressQuality100Kualitas JPEG yang digunakan saat kompresi diaktifkan.
boolResizeImagesfalseUbah ukuran gambar tersemat sebelum rendering.
intResizeResolution300DPI target untuk gambar yang diubah ukurannya.
boolCompressFastfalseLebih suka jalur kompresi yang lebih cepat namun kualitas lebih rendah.
boolFixInvalidImagesfalseCoba perbaiki gambar tersemat yang tidak valid.
boolSplitSegmentsfalseGabungkan kembali kata yang terpisah di antara segmen baris untuk meningkatkan pencarian/penyalinan.

showHyperlinks di ViewerConfig mengontrol overlay klien, sementara ExtractHyperlinks mengontrol ekstraksi server. Aktifkan keduanya.

WordConfig

Format: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. DPI Default: 200.

TipePropertiDefaultPerilaku
boolDefaultRendertrueRender Word native; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan yang digunakan oleh jalur PDF/pencarian.
DocPaperSizePaperSizeA4Ukuran kertas output. Gunakan Custom dengan lebar/tinggi.
intPaperWidth595Lebar khusus dalam poin.
intPaperHeight841Tinggi khusus dalam poin.
boolRemovePaperMarginfalseHapus margin halaman dokumen.
boolRenderPageColortruePertahankan warna halaman yang dikonfigurasi di Word; false menampilkan halaman putih.
boolExportPdfAfalseGunakan PDF/A arsip pada jalur PDF.
Encoding?FileEncodingnullTimpa enkoding sumber.
stringFontInfo""Informasi substitusi font.
string[]?FontFoldersnullDirektori font tambahan, terutama berguna di Linux/kontainer.
boolAllowSearchfalseMendelegasikan ke PdfConfig.AllowSearch.
boolAllowCopyfalseMendelegasikan ke PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents, atau AutoFitToWindow.

KonfigurasiExcel

Format: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. DPI Bawaan: 200.

TipePropertiBawaanPerilaku
boolDefaultRendertrueRender lembar asli; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan untuk jalur PDF/pencarian.
ExcelPaperSizePaperSizePaperA4Ukuran kertas output.
doublePaperMargins0.25Margin halaman dalam inci.
boolPaperLandscapetrueRendering lembar lanskap.
boolAutoFitContentsfalseSesuaikan otomatis tinggi baris dan lebar kolom.
boolRemoveEmptyContenttruePerketat output dengan mengecualikan konten kosong.
boolCalculateFormulatrueHitung ulang rumus sebelum rendering.
boolShowRowColumnHeaderstrueSertakan header spreadsheet.
boolExportPdfAfalseGunakan PDF/A pada jalur PDF.
boolSplitWorksheetsfalseSimpan lembar kerja sebagai grup halaman terpisah.
boolShowEmptyWorkSheetsfalseSertakan lembar kerja kosong.
boolExportLandscapefalsePaksa ekspor lanskap.
boolExportOnePagePerSheetfalseSesuaikan setiap lembar kerja ke satu halaman output.
boolMemoryOptimizationPreferencetrueKurangi memori puncak, mungkin mengorbankan sedikit kecepatan.
boolAutoTrimWorksheetRenderRangetrueRender hanya rentang yang terlihat dan digunakan ketika tidak ada area cetak eksplisit.
boolAutoTrimPreserveExistingPrintAreatruePertahankan area cetak yang didefinisikan buku kerja selama pemangkasan otomatis.
string?PrintAreanullRentang eksplisit seperti "A1:Z100".
boolPrintGridlinesfalseCetak garis kisi lembar kerja.
boolPrintHeadingsfalseCetak judul baris/kolom.
List<string>SheetNamesemptyBatasi rendering ke lembar kerja yang bernama.
CustomStyleCell?CustomStylesnullPenimpaan format tanggal/desimal/integer opsional.
boolAllowSearchfalseMendelegasikan ke PdfConfig.AllowSearch.
boolAllowCopyfalseMendelegasikan ke PdfConfig.AllowCopy.

CustomStyleCell menyajikan CustomStyleDateTime, CustomStyleNumberDecimal, dan CustomStyleNumberInteger, semuanya string yang dapat bernilai null.

new ExcelConfig() mengatur SplitWorksheets menjadi false; membuka file Excel tanpa konfigurasi eksplisit menggunakan katalog format, yang mengaturnya menjadi true.

KonfigurasiPpt

Format: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. DPI Bawaan: 200.

TipePropertiBawaanPerilaku
boolDefaultRendertrueRender slide asli; false menggunakan pengalihan PDF.
boolFastLoadfalseHindari merender slide pertama saat membuka; gunakan metadata dan render sesuai permintaan.
PdfConfigPdfConfignew instancePengaturan untuk perilaku PDF/pencarian.
stringFontInfo""Informasi substitusi font.
string[]?FontFoldersnullDirektori font tambahan.
boolAllowSearchfalseMendelegasikan ke PdfConfig.AllowSearch.
boolAllowCopyfalseMendelegasikan ke PdfConfig.AllowCopy.

Di Linux dan macOS, rendering presentasi dengan mesin saat ini memerlukan libgdiplus dan System.Drawing.EnableUnixSupport=true. Instal font yang digunakan oleh presentasi atau sediakan FontFolders.

KonfigurasiCad

Format: DWG, DXF, DGN. DPI Bawaan: 200.

TipePropertiBawaanPerilaku
boolDefaultRendertrueRender CAD asli; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan jalur PDF.
boolExportPdfAfalseOutput PDF/A arsip.
boolShowColortrueBerwarna bukan monokrom.
boolWhiteBackgroundtrueLatar belakang putih bukan hitam.
shortLineWidth25Lebar goresan CAD.
boolShowLayoutsfalseRender tab tata letak.
boolShowModeltrueRender ruang model.
boolCheck3DSolidtrueProses padatan 3D.
boolExportAllLayoutsfalseEkspor semua tata letak, mengganti pilihan model/tata letak.
boolLimitMinimumSizefalseTerapkan MinimumSize.
intMinimumSize700Ukuran output minimum dalam piksel.
boolLimitMaximumSizefalseTerapkan MaximumSize.
intMaximumSize700Ukuran output maksimum dalam piksel.
boolShowAllLayoutsDgnfalseSertakan semua tata letak DGN.
boolAutomaticLayoutScalingtrueSkala tata letak secara otomatis.
floatPdfMargins0.5Margin PDF dalam inci.
RenderQualityQualityImageLowKualitas raster: Low, Medium, atau High.
RenderQualityQualityTextMediumKualitas teks: Low, Medium, atau High.

EmailConfig

Format: EML, EMLX, MSG. DPI default: 200.

TipePropertiDefaultPerilaku
boolDefaultRendertrueRender email native; false menggunakan pengalihan PDF.
PdfConfigPdfConfiginstansi baruPengaturan jalur PDF.
Encoding?EmailEncodingnullTimpa pengkodean pesan.
Encoding?SubjectEncodingnullTimpa pengkodean subjek.
Encoding?BodyEncodingnullTimpa pengkodean isi.
boolSkipExternalImagesfalseJangan memuat gambar yang direferensikan secara remote. Disarankan untuk email yang tidak dipercaya.
boolRemoveLastWhitePagefalseHapus halaman kosong di akhir.
boolUseAntiAliasingfalseAktifkan anti-aliasing.
boolUseHighQualityRenderingfalseLebih suka rendering yang lebih bersih namun lebih lambat.
TimeSpan?TimeZoneOffsetnullTimpa zona waktu yang digunakan untuk tanggal.
boolForcePageSizefalsePaksa dimensi halaman tetap.

ImageConfig, TiffConfig, and PsdConfig

ImageConfig mencakup JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF, dan SVG. DPI defaultnya adalah 100.

KonfigurasiPropertiDefaultPerilaku
ImageConfigMaxImagePixelSize3000Lebar/tinggi maksimum. 0 berarti tidak terbatas; nilai bukan nol di bawah 50 diabaikan.
ImageConfigTransparentPngtruePertahankan transparansi PNG; false menggunakan latar belakang putih.
TiffConfigtidak ada properti tambahanDPI 200Hanya menggunakan BaseConfig; mendukung TIFF multi‑halaman.
PsdConfigMaxImagePixelSize3000Validasi 0/minimum‑50 yang sama seperti ImageConfig; DPI default adalah 100.

DicomConfig

Format: DCM, IMA. DPI efektif default: 100. Memerlukan plugin DICOM.

TipePropertiDefaultPerilaku
intHorizontalResolution100 effectiveDPI horizontal eksplisit; jika tidak ImageResolution, kemudian 100.
intVerticalResolution100 effectiveDPI vertikal eksplisit; jika tidak ImageResolution, kemudian 100.
intAnimationFrameDelayMs100Penundaan animasi multi‑frame; timing GIF menggunakan satuan 10 ms.
ushortLoopCount00 berulang selamanya; nilai positif berhenti setelah jumlah tersebut.
DicomDisplayModeDisplayModeAnimationAndFramesAnimationOnly, FramesOnly, atau gabungan ikhtisar plus frame statis.

TxtConfig

Format: TXT. DPI default: 200.

TipePropertiDefaultPerilaku
DocPaperSizePaperSizeA4Ukuran kertas output.
Encoding?FileEncodingnullnull menggunakan UTF-8.
stringFontInformation""Informasi font untuk rendering teks.

Gunakan WordConfig ketika teks biasa memerlukan perilaku tata letak halaman yang lebih kaya.

ProjectConfig

Format: MPP, MPPX, MPX. DPI default: 200.

TipePropertiDefaultPerilaku
boolDefaultRendertrueGambar Gantt native; false menggunakan jalur PDF berbasis teks.
PdfConfigPdfConfiginstansi baruPengaturan jalur PDF.
boolExportPdfAtrueOutput PDF/A arsip.
MppPaperSizePaperSizeLedgerUkuran kertas output proyek.
MppTimeScaleTimeScaleMonthsDays atau Months.
MppFormatPresentationFormatGanttChartGanttChart, TaskUsage, ResourceUsage, ResourceSheet, atau TaskSheet.

Untuk pencarian koordinat teks yang tepat, gunakan DefaultRender = false.

VisioConfig

Format: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. DPI default: 200.

TipePropertiDefaultPerilaku
boolDefaultRendertrueRender diagram native; false menggunakan pengalihan PDF.
PdfConfigPdfConfiginstansi baruPengaturan jalur PDF.
boolExportPdfAtrueOutput PDF/A arsip.

HtmlConfig, EpubConfig, MhtConfig, and XpsConfig

Keempatnya default ke DPI 200 dan mengekspos PdfConfig bersarang.

KonfigurasiFormatDefaultRenderProperti tambahan/perilaku
HtmlConfigHTML, HTMtrueRender native; gunakan false untuk jalur pencarian PDF berbasis teks.
EpubConfigEPUBtrueRender native; false menggunakan PDF.
MhtConfigMHT, MHTMLtrue pada kelas; false dalam katalog otomatisPembukaan normal tanpa konfigurasi menggunakan pengalihan PDF yang dapat dicari. Instansi default yang dibangun secara eksplisit merender secara native.
XpsConfigXPSfalseMenggunakan jalur PDF secara default; atur true untuk rendering gambar native.

Contoh konfigurasi per keluarga

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

Pemilihan per ekstensi

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 → pencarian teks asli dengan akurasi piksel
    ".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
    ".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
    _ => null // kembali ke konfigurasi default format
};

Apakah halaman ini membantu?