Konfigurasi Format

Opsi rendering lengkap per format

Setiap dokumen dibuka dengan implementasi BaseConfig. Berikan satu ke OpenDocumentAsync (atau OpenDocument) atau biarkan katalog format membuat nilai defaultnya. Semua kelas di bawah ini berada dalam 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 diarahkan melalui PDF mengekspos PdfConfig bersarang. Pada WordConfig, ExcelConfig, dan PptConfig, AllowSearch dan AllowCopy adalah properti kenyamanan yang membaca dan menulis PdfConfig bersarang.

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

Kecuali dinyatakan lain, tabel menampilkan 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; penetapan yang tidak valid diabaikan.
stringDocumentCulture""Locale untuk tanggal dan angka. Nilai yang tidak kosong dipangkas; penetapan kosong diabaikan.
stringPassword""Kata sandi dokumen yang dilindungi. DocOptions.Password disalin ke sini secara otomatis.
boolShowUItrueProperti kompatibilitas; renderer saat ini tidak menggunakannya untuk mengontrol bilah alat browser.
boolCachePagestrueMenyimpan gambar halaman yang dirender dalam cache untuk sesi dokumen.

PdfConfig

Format: PDF. DPI default: 200.

TipePropertiDefaultPerilaku
boolDefaultRendertrueSakelar kompatibilitas. Pabrik saat ini menggunakan penampil PDF asli.
boolAllowSearchfalseMembangun/menggunakan indeks pencarian teks PDF. Membutuhkan kemampuan lisensi Search untuk permintaan.
boolAllowCopyfalseMengizinkan operasi pemilihan/penyalinan teks.
boolExtractHyperlinksfalseMengekstrak persegi panjang tautan untuk overlay klien.
intHyperlinksPageCount0Maksimum halaman yang dipindai untuk tautan; 0 berarti semua halaman.
boolCompressImagesfalseMengompres gambar tersemat sebelum rendering.
intCompressQuality100Kualitas JPEG yang digunakan saat kompresi diaktifkan.
boolResizeImagesfalseMengubah ukuran gambar tersemat sebelum rendering.
intResizeResolution300DPI target untuk gambar yang diubah ukurannya.
boolCompressFastfalseMenyukai jalur kompresi yang lebih cepat dengan kualitas lebih rendah.
boolFixInvalidImagesfalseMencoba memperbaiki gambar tersemat yang tidak valid.
boolSplitSegmentsfalseMenggabungkan 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 asli; 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.
boolRemovePaperMarginfalseMenghapus margin halaman dokumen.
boolRenderPageColortrueMempertahankan warna halaman yang dikonfigurasi oleh Word; false merender halaman putih.
boolExportPdfAfalseGunakan PDF/A arsip pada jalur PDF.
Encoding?FileEncodingnullMenimpa enkoding sumber.
stringFontInfo""Informasi substitusi font.
string[]?FontFoldersnullDirektori font tambahan — berguna pada server yang tidak memiliki font yang digunakan dokumen.
boolAllowSearchfalseMendelegasikan ke PdfConfig.AllowSearch.
boolAllowCopyfalseMendelegasikan ke PdfConfig.AllowCopy.
TableAutoFitBehaviorAutoFitAllTablesNoneNone, AutoFitToContents, atau AutoFitToWindow.

ExcelConfig

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

TipePropertiBawaanPerilaku
boolDefaultRendertrueRender lembar asli; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan untuk jalur PDF/pencarian.
ExcelPaperSizePaperSizePaperA4Ukuran kertas output.
doublePaperMargins0.25Margin halaman dalam inci.
boolPaperLandscapetrueRender lembar dalam orientasi lanskap.
boolAutoFitContentsfalseMenyesuaikan otomatis tinggi baris dan lebar kolom.
boolRemoveEmptyContenttrueMemperketat output dengan mengecualikan konten kosong.
boolCalculateFormulatrueMenghitung ulang formula sebelum render.
boolShowRowColumnHeaderstrueMenyertakan header baris/kolom spreadsheet.
boolExportPdfAfalseGunakan PDF/A pada jalur PDF.
boolSplitWorksheetsfalseMenjaga lembar kerja sebagai grup halaman terpisah.
boolShowEmptyWorkSheetsfalseMenyertakan lembar kerja kosong.
boolExportLandscapefalseMemaksa ekspor dalam orientasi lanskap.
boolExportOnePagePerSheetfalseMenyesuaikan setiap lembar kerja ke satu halaman output.
boolMemoryOptimizationPreferencetrueMengurangi memori puncak, mungkin mengorbankan sedikit kecepatan.
boolAutoTrimWorksheetRenderRangetrueRender hanya rentang yang terlihat saat tidak ada area cetak eksplisit.
boolAutoTrimPreserveExistingPrintAreatrueMempertahankan area cetak yang didefinisikan workbook selama auto-trim.
string?PrintAreanullRentang eksplisit seperti "A1:Z100".
boolPrintGridlinesfalseMencetak garis kisi lembar kerja.
boolPrintHeadingsfalseMencetak heading baris/kolom.
List<string>SheetNamesemptyMembatasi render hanya pada lembar kerja yang bernama.
CustomStyleCell?CustomStylesnullPenimpaan format tanggal/desimal/integer opsional.
boolAllowSearchfalseMendelegasikan ke PdfConfig.AllowSearch.
boolAllowCopyfalseMendelegasikan ke PdfConfig.AllowCopy.

CustomStyleCell mengekspos 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.

PptConfig

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

TipePropertiBawaanPerilaku
boolDefaultRendertrueRender slide asli; false menggunakan pengalihan PDF.
boolFastLoadfalseMenghindari render 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.

Pasang font yang digunakan presentasi pada server, atau arahkan FontFolders ke folder yang menyimpannya. Windows Server tanpa Office memiliki jauh lebih sedikit font dibandingkan mesin pengembangan, dan font yang hilang akan digantikan tanpa error.

CadConfig

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

TipePropertiBawaanPerilaku
boolDefaultRendertrueRender CAD asli; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan jalur PDF.
boolExportPdfAfalseOutput PDF/A arsip.
boolShowColortrueWarna bukan monokrom.
boolWhiteBackgroundtrueLatar belakang putih bukan hitam.
shortLineWidth25Lebar goresan CAD.
boolShowLayoutsfalseRender tab layout.
boolShowModeltrueRender ruang model.
boolCheck3DSolidtrueProses solid 3D.
boolExportAllLayoutsfalseEkspor semua layout, menggantikan pemilihan model/layout.
boolLimitMinimumSizefalseTerapkan MinimumSize.
intMinimumSize700Ukuran output minimum dalam piksel.
boolLimitMaximumSizefalseTerapkan MaximumSize.
intMaximumSize700Ukuran output maksimum dalam piksel.
boolShowAllLayoutsDgnfalseSertakan semua layout DGN.
boolAutomaticLayoutScalingtrueSkala layout 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 asli; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan jalur PDF.
Encoding?EmailEncodingnullMenimpa enkoding pesan.
Encoding?SubjectEncodingnullMenimpa enkoding subjek.
Encoding?BodyEncodingnullMenimpa enkoding isi.
boolSkipExternalImagesfalseJangan memuat gambar yang direferensikan secara remote. Disarankan untuk email yang tidak dipercaya.
boolRemoveLastWhitePagefalseHapus halaman putih terakhir.
boolUseAntiAliasingfalseAktifkan anti-aliasing.
boolUseHighQualityRenderingfalseLebih memilih rendering yang lebih bersih namun lebih lambat.
TimeSpan?TimeZoneOffsetnullMenimpa zona waktu yang digunakan untuk tanggal.
boolForcePageSizefalsePaksa dimensi halaman tetap.

ImageConfig, TiffConfig, dan 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.

KonfigPropertiDefaultPerilaku
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 200Menggunakan hanya 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. Membutuhkan plugin DICOM. Pada paket ini file DICOM dirender sepenuhnya, tetapi metadata teknis tidak tersedia — lihat Plugin DICOM.

TipePropertiDefaultPerilaku
intHorizontalResolution100 effectiveDPI horizontal eksplisit; jika tidak, gunakan ImageResolution, kemudian 100.
intVerticalResolution100 effectiveDPI vertikal eksplisit; jika tidak, gunakan ImageResolution, kemudian 100.
intAnimationFrameDelayMs100Penundaan animasi multi‑frame; timing GIF menggunakan satuan 10 ms.
ushortLoopCount00 mengulang 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 membutuhkan perilaku tata letak halaman yang lebih kaya.

ProjectConfig

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

TipePropertiDefaultPerilaku
boolDefaultRendertrueGambar Gantt asli; false menggunakan jalur PDF berbasis teks.
PdfConfigPdfConfignew instancePengaturan 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 asli; false menggunakan pengalihan PDF.
PdfConfigPdfConfignew instancePengaturan jalur PDF.
boolExportPdfAtrueOutput PDF/A arsip.

HtmlConfig, EpubConfig, MhtConfig, dan XpsConfig

Keempatnya default ke DPI 200 dan menampilkan PdfConfig bersarang.

KonfigFormatDefaultRenderProperti/Perilaku tambahan
HtmlConfigHTML, HTMtrueRender asli; gunakan false untuk jalur pencarian PDF berbasis teks.
EpubConfigEPUBtrueRender asli; false menggunakan PDF.
MhtConfigMHT, MHTMLtrue pada kelas; false dalam katalog otomatisBuka normal tanpa konfigurasi menggunakan pengalihan PDF yang dapat dicari. Instance default yang dibangun secara eksplisit merender secara asli.
XpsConfigXPSfalseMenggunakan jalur PDF secara default; set true untuk rendering gambar asli.

Contoh konfigurasi berdasarkan keluarga

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

Pemilihan per ekstensi

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

Apakah halaman ini membantu?