Renderleme Boru Hattı
Belgeden sayfa görüntülerine
OpenDocumentAsync ile tarayıcıya ulaşan PNG arasında iki ayrı aşama vardır: görünüm çözümlemesi (hangi motorun belgeyi yüklediği, her açılışta bir kez karar verilir) ve sayfa işleme (her istekte her sayfa görüntüsüyle ne olduğu). İkisini de bilmek, bir formatın neden böyle render edildiğini ve DefaultRender'ın gerçekten neyi değiştirdiğini açıklar.
Aşama 1 — Format Görünümünü Çözümleme
Fabrika, dosya uzantısını format kataloğu aracılığıyla bir görünüme eşler ve üç öncelik seviyesi vardır:
- Özel görünümler önce.
DoconutOptions.RegisterViewer(extension, factory, defaultConfig?)ile kaydettiğiniz her şey yerleşik olanların tümüne üstün gelir. - Yerleşik aile görünümleri. Katalog, her görüntülenebilir uzantıyı bir görünüm ailesine eşler — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — her biri kendi motor adaptörüne sahiptir. Lisanslı bir eklenti aynı uzantı için bir görünüm sağlarsa, eklenti görünümü yerleşik olanı değiştirir.
AddDoconut()başlatmada kayıtlı eklenti haklarını doğrular; fabrikanın yerleşik görünüme geri dönmesi savunma amaçlı bir çalışma zamanı kuralıdır. - Eklenti‑only formatlar. Bazı uzantıların hiç yerleşik görünümü yoktur — DICOM (
.dcm) yalnızca DICOM eklentisi aracılığıyla bulunur. Gerekli yetenek olmadan birini açmak şu hatayı atar:
LicenseException: This document type requires the 'Dicom' plugin license.Bir uzantının hiçbir görünümü olmadığında şu hata yükselir:
FormatNotSupportedException: Document format '<extension>' is not supported.Çözümlemeden sonra yapılandırma belirlenir: eğer bir tane gönderdiyseniz açıkça belirttiğiniz yapılandırma nesnesi, aksi takdirde katalogdaki formatın varsayılan yapılandırması. DocOptions.Password korumalı belgeler için yapılandırmaya kopyalanır.
Aşama 1b — Yönlendirme modu (DefaultRender = false)
Çoğu format‑özel yapılandırma bir DefaultRender bayrağı sunar. Bu bayrak iki temelde farklı yolu seçer:
DefaultRender = true— belge yerel olarak, doğrudan sayfa görüntülerine render edilir.DefaultRender = false— belge önce hafızada bir PDF'ye dönüştürülür, kaynak motor serbest bırakılır ve bir PDF görünümü devralır. Oluşturulan PDF gerçek metni gömülü tutar, bu sayede tam metin arama piksel‑doğru yerel vurgular alır; dönüşüm kullanıcıya görünmediği için boru hattı yönlendirilmiş PDF içinAllowSearchveAllowCopyseçeneklerini zorlar.
XPS ve katalogdaki MHT varsayılanı yönlendirme yolunu kullanır. Bir PDF projeksiyonu, HTML ve Microsoft Project gibi formatlar için yerel arama sağlayabilir. Ortaya çıkan PDF, metin katmanı olmadan yalnızca görüntüler içeriyorsa, standart görünüm bu pikselleri arayamaz.
Belge açıldığında önceden bir dönüşüm gerektiren metin‑taşıyan bir PDF projeksiyonuna ihtiyacınız olduğunda yönlendirme modunu kullanın.
Aşama 2 — Sayfa-görüntü boru hattı
Render edilen sayfalar, sabit bir dizi üzerinden istek başına işlenir:
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response- Watermark — lisans durumundan (eksik lisans, süresi dolmuş geçici veya abonelik, geçersiz alan adı, yanlış sürüm) ve
DocOptions.Watermarküzerinden kendi özel metninizden uygulanır. Uygun lisansa sahip bir uygulama — ya da aktif bir Geçici lisans — özel bir filigran yoksa bu adımı atlar. - Rotate/flip — kullanıcı widget içinde ayarladığı sayfa başına durum (90°/180°/270°, yatay/dikey çevirme) oturumda saklanır ve o sayfanın sonraki her render'ında uygulanır.
- Scale — istenen hedef boyuta göre render edilen sayfa ölçeklendirilerek küçük resimler ve yakınlaştırma seviyeleri üretilir;
0orijinal boyutta sunulacağı anlamına gelir. - Annotation burn — kaydedilmiş açıklamalar bitmap üzerine çizilir, böylece dışa aktarmalar ve sayfa görüntüleri bunları gösterir.
- Encoding — sonuç, havuzlanmış bellek akışları kullanılarak PNG'ye kodlanır ve doğrudan HTTP yanıtına yazılır.
Ara katmanda oluşan hatalar PNG error images (beyaz üzerinde kırmızı metin) olarak döndürülür, HTTP hata sayfaları yerine, böylece widget bunları sayfa alanında gösterebilir.
Sayfa önbellekleme
BaseConfig.CachePages (varsayılan true) render edilen sayfa görüntülerini belge oturumu süresince bellek içinde tutar, böylece bir sayfayı yeniden ziyaret etmek yeniden render edilmez. BaseConfig.ImageResolution (25–300 DPI, 0 = format varsayılanı) ana kalite/bellek ayarıdır; her formatın varsayılanı kendi yapılandırma sayfasında belgelenmiştir.
Nerede ne ayarlamalısınız
| İstediğiniz | Ayar |
|---|---|
| Daha keskin sayfalar | format yapılandırmasında ImageResolution |
| HTML/EPUB/e-posta/MHT/MPP'de doğru metin arama | format yapılandırmasında DefaultRender = false |
| Büyük belgelerde daha az bellek kullanımı | CachePages = false, oturumları açıkça kapatın |
| Her sayfada kendi damganız | DocOptions.Watermark |
Bu sayfa yardımcı oldu mu?