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ğudur). İkisini de bilmek, bir formatın neden bu şekilde render edildiğini ve DefaultRender'ın gerçekte 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 seviyesine sahiptir:

  1. Ö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.
  2. 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 — ve her birinin kendi motor adaptörü vardır. 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şlangıçta kayıtlı eklenti yetkilerini doğrular; fabrikanın yerleşik görünüme 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ünümü 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ünümü olmadığını belirten bir durum ş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 gönderdiyseniz 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 bazlı 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ünümü devralır. Oluşturulan PDF gerçek metni gömerek tam metin aramanın piksel‑doğru yerel vurgular almasını sağlar; boru hattı yönlendirilen PDF için AllowSearch ve AllowCopy seçeneklerini zorlar çünkü dönüşüm kullanıcıya görünmez.

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 bir metin katmanı olmadan görüntüler içeriyorsa, standart görünüm 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 için sabit bir dizi üzerinden işlenir:

text
raw page PNG → filigran → döndürme/çevirme → ölçekleme → açıklama yanması → PNG yanıtına
  • Filigran — 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 lisansa sahip bir uygulama — ya da aktif bir Geçici lisans — özel bir filigran yoksa bu adımı atlar.
  • Döndürme/Çevirme — kullanıcının widget'ta ayarladığı sayfa bazlı durum (90°/180°/270°, yatay/dikey çevirme) oturumda saklanır ve o sayfanın sonraki her render'ında uygulanır.
  • Ölçekleme — 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.
  • Açıklama yanması — 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.

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ı 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ı yapılandırma sayfasında belgelenmiştir.

Nerede neyi ayarlamalısınız

İ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?