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üntüleyici çözümlemesi (her açılışta bir kez karar verilen, hangi motorun belgeyi yüklediği) ve sayfa işleme (her istekte her sayfa görüntüsüyle ne olduğunun). İkisini de bilmek, bir biçimin neden bu şekilde render edildiğini ve DefaultRender'in gerçekte neyi değiştirdiğini açıklar.

Aşama 1 — Format görüntüleyicisinin çözülmesi

Fabrika, dosya uzantısını biçim kataloğu aracılığıyla bir görüntüleyiciye eşler ve üç öncelik seviyesine sahiptir:

  1. Özel görüntüleyiciler önce. DoconutOptions.RegisterViewer(extension, factory, defaultConfig?) ile kaydettiğiniz her şey yerleşik olanların tümüne üstün gelir.
  2. Yerleşik aile görüntüleyicileri. Katalog, her görüntülenebilir uzantıyı bir görüntüleyici ailesine eşler — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — ve her birinin kendi motor adaptörü vardır. Lisanslı bir eklenti aynı uzantı için bir görüntüleyici sağlarsa, eklenti görüntüleyicisi yerleşik olanın yerini alır. AddDoconut() başlangıçta kayıtlı eklenti haklarını doğrular; fabrikanın yerleşik görüntüleyiciye geri dönmesi savunma amaçlı bir çalışma zamanı kuralıdır.
  3. Yalnızca eklenti formatları. Bazı uzantıların hiç yerleşik görüntüleyicisi yoktur — DICOM (.dcm) yalnızca DICOM eklentisi aracılığıyla bulunur. Gerekli yetenek olmadan açmaya çalışmak şu hatayı verir:
text
LicenseException: This document type requires the 'Dicom' plugin license.

Bir uzantının hiçbir görüntüleyicisi yoksa şu istisna yükseltilir:

text
FormatNotSupportedException: Document format '<extension>' is not supported.

Çözümlemeden sonra yapılandırma belirlenir: eğer bir yapılandırma nesnesi sağladıysanız onu, aksi takdirde katalogdan biçimin varsayılan yapılandırmasını. DocOptions.Password korumalı belgeler için yapılandırmaya kopyalanır.

Aşama 1b — Yönlendirme modu (DefaultRender = false)

Çoğu biçim‑özel yapılandırma bir DefaultRender bayrağı sunar. Bu bayrak iki temelde farklı yolu seçer:

  • DefaultRender = true — belge yerel olarak render edilir, doğrudan sayfa görüntülerine.
  • DefaultRender = false — belge önce bellekte bir PDF'ye dönüştürülür, kaynak motor serbest bırakılır ve bir PDF görüntüleyici devreye girer. Oluşturulan PDF gerçek metni gömerek tam metin aramasının piksel‑doğru yerel vurgular almasını sağlar; dönüşüm kullanıcıya görünmediği için boru hattı yönlendirilmiş PDF için AllowSearch ve AllowCopy seçeneklerini zorlar.

XPS ve katalogdaki MHT varsayılanı yönlendirme yolunu kullanır. PDF projeksiyonu, HTML ve Microsoft Project gibi biçimler için yerel arama sağlayabilir. Oluşan PDF bir metin katmanı olmadan yalnızca görüntüler içeriyorsa, standart görüntüleyici bu pikselleri arayamaz.

Belge açıldığında önceden bir dönüşüm maliyetiyle metin içeren bir PDF projeksiyonuna ihtiyaç duyduğunuzda yönlendirme modunu kullanın.

Aşama 2 — Sayfa‑görüntü boru hattı

Render edilen sayfalar, her istek başına sabit bir sıralama ile işlenir:

text
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 domain, yanlış sürüm) ve DocOptions.Watermark üzerinden kendi özel metninizden uygulanır. Uygun lisanslı bir uygulama — ya da aktif bir Geçici lisans — özel bir filigran yoksa bu adımı atlar.
  • Rotate/flip — kullanıcının 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 — küçük resimler ve yakınlaştırma seviyeleri, render edilen sayfa istenen hedef boyuta ölçeklenerek üretilir; 0 orijinal boyutta sunulması anlamına gelir.
  • Annotation burn — kaydedilmiş açıklamalar bitmap üzerine çizilir, böylece dışa aktarımlarda ve sayfa görüntülerinde görünür.
  • Encoding — sonuç, havuzlanmış bellek akışları kullanılarak PNG'ye kodlanır ve doğrudan HTTP yanıtına yazılır.

Orta katmandaki hatalar, HTTP hata sayfaları yerine PNG hata görüntüleri (beyaz üzerinde kırmızı metin) olarak döndürülür, 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 bellekte tutar, böylece bir sayfayı tekrar ziyaret etmek yeniden render edilmez. BaseConfig.ImageResolution (25–300 DPI, 0 = biçim varsayılanı) ana kalite/bellek ayarıdır; her biçimin varsayılanı kendi yapılandırma sayfasında belgelenmiştir.

DocOptions.ImageResolution eskidır ve render kalitesini kontrol etmez. Önceki kütüphaneden bir uygulamayı taşıyorsanız, bu değeri biçim yapılandırmasına taşıyın — derleyici her çağrı noktasını gösterecektir.

Tek bir düğümde renderleme vs. birden çok düğümde

Yukarıdaki her şey, belgeyi açan oturum için isteğe bağlı tek bir düğümde renderlemeyi açıklar. Bir düğüm tüm artefakt setini render edip yayımlarken, diğer düğümler bu sayfaları ortak depolamadan hizmet veren bir dağıtım, farklı bir okuma yolu kullanır — bkz. Dağıtık Dağıtımlar.

Nerde neyi ayarlamalı

İstediğinizAyar
Daha keskin sayfalarImageResolution format yapılandırmasında
HTML/EPUB/e-posta/MHT/MPP üzerinde doğru metin aramasıDefaultRender = false format yapılandırmasında
Büyük belgelerde daha az bellekCachePages = false, oturumları açıkça kapatın
Her sayfada kendi damganızDocOptions.Watermark

Bu sayfa yardımcı oldu mu?