Render İşlem Hattı

Belgeden sayfa görüntülerine

OpenDocumentAsync ile tarayıcıya ulaşan PNG arasında iki ayrı aşama bulunur: görüntüleyici çözümlemesi (belgeyi hangi motorun yüklediği, her açılışta bir kez belirlenir) ve sayfa işleme (her DocImage.axd isteğinde her sayfa görüntüsüyle ne yapılır). İkisini de bilmek, bir formatın neden bu şekilde render edildiğini ve DefaultRender'nin gerçekte neyi değiştirdiğini açıklar.

Aşama 1 — Format görüntüleyicisini çözümleme

Fabrika, dosya uzantısını format 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 üzerine geçer.
  2. Yerleşik aile görüntüleyicileri. Katalog, her görüntülenebilir uzantıyı bir görüntüleyici ailesine bağlar — 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, eklentinin görüntüleyicisi yerleşik olanı değiştirir.
  3. Yalnızca eklenti formatları. Bazı uzantıların hiç yerleşik görüntüleyicisi yoktur — DICOM (.dcm, .ima) yalnızca DICOM eklentisi aracılığıyla bulunur. Gerekli yetenek olmadan bir DICOM açmaya çalışmak şu hatayı üretir:
text
LicenseException: This document type requires the 'Dicom' plugin license.

Hiçbir görüntüleyicinin talep ettiği bir uzantı FormatNotSupportedException hatasını oluşturur.

Çözümleme tamamlandıktan sonra yapılandırma sabitlenir: eğer bir yapılandırma nesnesi sağladıysanız onu, aksi takdirde katalogdaki formatın varsayılan yapılandırmasını kullanır. Korunan belgeler için DocOptions.Password yapılandırmaya kopyalanır.

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

Çoğu format‑özel yapılandırma bir DefaultRender bayrağı ortaya çıkar. 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 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 metin içerdiği için tam‑metin arama doğru yerel vurgular elde eder; yönlendirilmiş PDF için işlem hattı AllowSearch ve AllowCopy'yi etkinleştirir, çünkü dönüşüm kullanıcıya görünmez.

XPS ve MHT varsayılan olarak yönlendirme yolunu kullanır. PDF projeksiyonu, HTML ve Microsoft Project gibi formatlara yerel arama sağlar. Oluşturulan PDF metin katmanı olmadan yalnızca görüntü içeriyorsa, bu pikseller aranamaz.

Belge açıldığında bir ön dönüşüm gerektiren, aranabilir ve metin içeren bir projeksiyona ihtiyacınız varsa yönlendirme modunu kullanın.

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

Her DocImage.axd isteği sabit bir sıralamayı yürütür:

text
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response
  • Filigran — lisans durumundan (lisans yok, süresi dolmuş geçici veya abonelik lisansı, geçersiz alan adı, lisansın sürüm aralığının dışındaki bir derleme) ve DocOptions.Watermark üzerinden kendi metninizden uygulanır. Özel filigranı olmayan lisanslı bir site bu adımı atlar.
  • Döndür/çevril — kullanıcı widget içinde ayarladığı sayfa başına durum (90°/180°/270°, yatay ve dikey çevirme) oturumda saklanır ve o sayfanın sonraki her render’ında uygulanır.
  • Ölçekle — küçük resimler ve yakınlaştırma seviyeleri, render edilen sayfanın istenen boyuta ölçeklenmesiyle üretilir.
  • Not ekleme yanması — kaydedilmiş notlar bitmap üzerine çizilir, böylece dışa aktarımlar ve sayfa görüntüleri notları gösterir.
  • Kodlama — sonuç PNG olarak kodlanır ve doğrudan yanıt akışına yazılır.

İşleyici içinde oluşan hatalar PNG hata görüntüleri (beyaz üzerine kırmızı metin) olarak, HTTP hata sayfaları yerine durum kodu 200 ile döndürülür; böylece widget bu hataları sayfa alanında gösterebilir.

Sayfa önbellekleme

BaseConfig.CachePages (varsayılan true) belge oturumunun ömrü boyunca render edilmiş sayfa görüntülerini bellekte tutar, böylece bir sayfayı yeniden ziyaret etmek yeniden render edilmez. BaseConfig.ImageResolution (25–300 DPI, 0 = formatın varsayılanı) ana kalite ve bellek ayarıdır; her formatın varsayılanı Format Configs içinde listelenir.

Tek bir düğümde, oturumlar ve önbelleğe alınan sayfalar işçi sürecinin belleğinde yaşar. Bir uygulama havuzu yeniden başlatması — zamanlanmış, bir Web.config düzenlemesi ya da boşta kalma süresi nedeniyle — tüm açık belge oturumlarını düşürür ve widget ardından Document session not found. Please re-open document. gösterir. Dağıtık modda (bkz. Sessions & Security), bir oturum paylaşılan depodan yeniden oluşturulur.

Neyi nerede ayarlamalısınız

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

Bu sayfa yardımcı oldu mu?