Alur Rendering
Dari dokumen ke gambar halaman
Antara OpenDocumentAsync dan PNG yang sampai ke browser ada dua tahap yang berbeda: viewer resolution (mesin mana yang memuat dokumen, diputuskan sekali per pembukaan) dan page processing (apa yang terjadi pada setiap gambar halaman pada setiap permintaan ke DocImage.axd). Mengetahui keduanya menjelaskan mengapa sebuah format dirender seperti itu — dan apa yang sebenarnya diubah oleh DefaultRender.
Tahap 1 — Menyelesaikan penampil format
Pabrik memetakan ekstensi file ke penampil melalui katalog format, dengan tiga tingkat prioritas:
- Penampil khusus pertama. Apa pun yang Anda daftarkan dengan
DoconutOptions.RegisterViewer(extension, factory, defaultConfig?)mengalahkan semua penampil bawaan. - Penampil keluarga bawaan. Katalog memetakan setiap ekstensi yang dapat dilihat ke keluarga penampil — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — masing‑masing dengan adaptor mesin sendiri. Jika plugin berlisensi menyumbangkan penampil untuk ekstensi yang sama, penampil plugin menggantikan yang bawaan.
- Format hanya plugin. Beberapa ekstensi tidak memiliki penampil bawaan sama sekali — DICOM (
.dcm,.ima) hanya ada melalui plugin DICOM. Membuka satu tanpa kemampuan yang diperlukan akan melempar:
LicenseException: This document type requires the 'Dicom' plugin license.Ekstensi yang tidak diklaim oleh penampil apa pun akan memunculkan FormatNotSupportedException.
Setelah penyelesaian, konfigurasi ditetapkan: objek konfigurasi eksplisit Anda jika Anda memberikannya, jika tidak konfigurasi default format dari katalog. DocOptions.Password disalin ke dalam konfigurasi untuk dokumen yang dilindungi.
Tahap 1b — Mode pengalihan (DefaultRender = false)
Sebagian besar konfigurasi per‑format menampilkan flag DefaultRender. Flag ini memilih antara dua jalur yang secara fundamental berbeda:
DefaultRender = true— dokumen dirender secara native, langsung ke gambar halaman.DefaultRender = false— dokumen pertama kali diubah menjadi PDF dalam memori, mesin sumber dilepaskan, dan penampil PDF mengambil alih. PDF yang dihasilkan berisi teks asli, sehingga pencarian full‑text mendapatkan sorotan native yang tepat; alur mengaktifkanAllowSearchdanAllowCopyuntuk PDF yang dialihkan, karena konversi tidak terlihat oleh pengguna.
XPS, dan MHT secara default, menggunakan jalur pengalihan. Proyeksi PDF memberikan pencarian native untuk format seperti HTML dan Microsoft Project. Jika PDF yang dihasilkan berisi gambar tanpa lapisan teks, piksel tersebut tidak dapat dicari.
Gunakan mode pengalihan ketika Anda membutuhkan proyeksi yang dapat dicari dan berisi teks — dengan biaya konversi awal saat dokumen dibuka.
Tahap 2 — Alur gambar halaman
Setiap permintaan halaman ke DocImage.axd menjalankan urutan tetap:
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response- Watermark — diterapkan berdasarkan status lisensi (tanpa lisensi, lisensi sementara atau berlangganan yang kedaluwarsa, domain tidak valid, build di luar versi lisensi) dan dari
DocOptions.Watermarkuntuk teks Anda sendiri. Situs berlisensi tanpa watermark khusus melewati langkah ini. - Rotate/flip — keadaan per‑halaman yang pengguna atur di komponen (90°/180°/270°, flip horizontal dan vertikal) disimpan dalam sesi dan diterapkan pada setiap render selanjutnya dari halaman tersebut.
- Scale — thumbnail dan tingkat zoom dihasilkan dengan menskalakan halaman yang dirender ke ukuran yang diminta.
- Annotation burn — anotasi yang disimpan digambar ke bitmap, sehingga ekspor dan gambar halaman menampilkannya.
- Encoding — hasilnya dikodekan sebagai PNG dan ditulis langsung ke respons.
Kesalahan di dalam penangkap dikembalikan sebagai gambar PNG kesalahan (teks merah di atas putih) dengan status 200, bukan sebagai halaman error HTTP, sehingga komponen dapat menampilkannya di area halaman.
Caching halaman
BaseConfig.CachePages (default true) menyimpan gambar halaman yang dirender dalam memori selama masa sesi dokumen, sehingga mengunjungi kembali sebuah halaman tidak merendernya lagi. BaseConfig.ImageResolution (25–300 DPI, 0 = default format) adalah pengatur utama kualitas dan memori; default setiap format terdaftar di Konfigurasi Format.
Pada satu node, sesi dan halaman yang di‑cache berada dalam memori proses worker. Daur ulang pool aplikasi — terjadwal, atau dipicu oleh edit Web.config atau timeout idle — menghapus setiap sesi dokumen yang terbuka, dan komponen kemudian menampilkan Document session not found. Please re-open document. Dalam mode terdistribusi (lihat Sesi & Keamanan), sesi dibangun kembali dari penyimpanan bersama.
Di mana menyesuaikan apa
| Anda ingin | Sesuaikan |
|---|---|
| Halaman lebih tajam | ImageResolution pada konfigurasi format |
| Pencarian teks yang akurat pada HTML, EPUB, email, MHT, atau MPP | DefaultRender = false pada konfigurasi format |
| Memori lebih rendah pada dokumen besar | CachePages = false, dan tutup sesi secara eksplisit |
| Stempel Anda sendiri pada setiap halaman | DocOptions.Watermark |
Apakah halaman ini membantu?