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 (belgeyi hangi motorun yüklediği, her açılışta bir kez belirlenir) ve sayfa işleme (her istekte her sayfa görüntüsüyle ne olduğudur). İkisini de bilmek, bir formatın neden böyle renderlandığını ve DefaultRender'nin gerçekte neyi değiştirdiğini açıklar.

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

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, tüm yerleşik görüntüleyicilerin üzerinde tercih edilir.
  2. Yerleşik aile görüntüleyicileri. Katalog, her görüntülenebilir uzantıyı bir görüntüleyici ailesine — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — eşler 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ı değiştirir. AddDoconut(), kayıtlı eklenti yetkilerini başlangıçta 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 birini açmak şu hatayı verir:
text
LicenseException: This document type requires the 'Dicom' plugin license.

Hiçbir görüntüleyicinin talep etmediği bir uzantı şu hatayı oluşturur:

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 formatın varsayılan yapılandırmasını kullanır. DocOptions.Password, korumalı belgeler için yapılandırmaya kopyalanır.

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

Çoğu format‑başına yapılandırma, bir DefaultRender bayrağı sunar. Bu bayrak iki temel olarak farklı yolu seçer:

  • DefaultRender = true — belge yerel olarak renderlanır, 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 aramanı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'yi etkinleştirir.

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

Belge açıldığında önceden bir dönüşüm maliyeti gerektiren, metin içeren bir PDF projeksiyonuna ihtiyacınız olduğunda yönlendirme modunu kullanın.

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

Renderlanan 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
  • Filigran — lisans durumundan (eksik lisans, süresi dolmuş geçici veya abonelik, geçersiz domain, yanlış sürüm) ve kendi özel metniniz için DocOptions.Watermark'den uygulanır. Uygun lisansa sahip bir uygulama — ya da aktif bir Geçici lisans — özel bir filigran yoksa bu adımı atlar.
  • Döndür/Çevir — kullanıcının widget'ta ayarladığı sayfa başına durum (90°/180°/270°, yatay/dikey çevirme) oturumda saklanır ve o sayfanın sonraki her render'ında uygulanır.
  • Ölçek — küçük resimler ve yakınlaştırma seviyeleri, renderlanan sayfa istenen hedef boyuta ölçeklenerek üretilir; 0, orijinal boyutta sunulması anlamına gelir.
  • Açıklama yakma — kaydedilmiş açıklamalar bitmap üzerine çizilir, böylece dışa aktarmalar ve sayfa görüntüleri bunları gösterir.
  • Kodlama — sonuç, havuzlanmış bellek akışları kullanılarak PNG'ye kodlanır ve doğrudan HTTP yanıtına yazılır.

Ara 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) renderlanan sayfa görüntülerini belge oturumu süresince bellekte tutar, böylece bir sayfayı yeniden ziyaret etmek yeniden renderlanmasını engeller. BaseConfig.ImageResolution (25–300 DPI, 0 = format varsayılanı) ana kalite/bellek ayarıdır; her formatın varsayılanı yapılandırma sayfasında belgelenmiştir.

Nerede neyi ayarlamalısınız

İstediğinizAyarlama
Daha keskin sayfalarImageResolution format yapılandırmasında
HTML/EPUB/e-posta/MHT/MPP üzerinde doğru metin aramaDefaultRender = 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?