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:

  1. Penampil khusus pertama. Apa pun yang Anda daftarkan dengan DoconutOptions.RegisterViewer(extension, factory, defaultConfig?) mengalahkan semua penampil bawaan.
  2. 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.
  3. 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:
text
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 mengaktifkan AllowSearch dan AllowCopy untuk 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:

text
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.Watermark untuk 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 inginSesuaikan
Halaman lebih tajamImageResolution pada konfigurasi format
Pencarian teks yang akurat pada HTML, EPUB, email, MHT, atau MPPDefaultRender = false pada konfigurasi format
Memori lebih rendah pada dokumen besarCachePages = false, dan tutup sesi secara eksplisit
Stempel Anda sendiri pada setiap halamanDocOptions.Watermark

Apakah halaman ini membantu?