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:
- Ö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 — 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. - 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:
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:
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çinAllowSearchveAllowCopyseç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:
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;
0orijinal 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ğiniz | Ayar |
|---|---|
| Daha keskin sayfalar | ImageResolution 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 bellek | CachePages = false, oturumları açıkça kapatın |
| Her sayfada kendi damganız | DocOptions.Watermark |
Bu sayfa yardımcı oldu mu?