Renderovací pipeline
Od dokumentu k obrázkům stránek
Mezi OpenDocumentAsync a PNG, která dorazí do prohlížeče, jsou dva odlišné kroky: rozlišení prohlížeče (který engine načte dokument, rozhodnuto jednou při otevření) a zpracování stránky (co se děje s každým obrázkem stránky při každém požadavku). Znalost obou vysvětluje, proč se formát vykresluje tak, jak to dělá — a co DefaultRender ve skutečnosti přepíná.
Krok 1 — Rozlišení prohlížeče formátu
Továrna mapuje příponu souboru na prohlížeč pomocí katalogu formátů, se třemi úrovněmi přednosti:
- Vlastní prohlížeče první. Cokoliv, co jste zaregistrovali pomocí
DoconutOptions.RegisterViewer(extension, factory, defaultConfig?), přebije všechny vestavěné. - Vestavěné prohlížeče rodiny. Katalog mapuje každou zobrazitelnou příponu na rodinu prohlížečů — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — každou s vlastním adaptérem engine. Pokud licencovaný plugin přispěje prohlížečem pro stejnou příponu, prohlížeč pluginu nahradí vestavěný.
AddDoconut()ověřuje registrovaná oprávnění pluginů při spuštění; fallback továrny na vestavěný prohlížeč je obranné pravidlo za běhu. - Formáty pouze pro pluginy. Některé přípony nemají vůbec vestavěný prohlížeč — DICOM (
.dcm) existuje jen prostřednictvím DICOM pluginu. Otevření takového souboru bez požadované schopnosti vyvolá:
LicenseException: This document type requires the 'Dicom' plugin license.Rozšíření, pro které žádný prohlížeč nehlásí, vyvolá:
FormatNotSupportedException: Document format '<extension>' is not supported.Po rozlišení je konfigurace ustavena: váš explicitní konfigurační objekt, pokud jste jej předali, jinak výchozí konfigurace formátu z katalogu. DocOptions.Password je zkopírováno do konfigurace pro chráněné dokumenty.
Krok 1b — Režim přesměrování (DefaultRender = false)
Většina konfigurací na formát odhaluje příznak DefaultRender. Vybere mezi dvěma zásadně odlišnými cestami:
DefaultRender = true— dokument se vykresluje nativně, přímo na obrázky stránek.DefaultRender = false— dokument je nejprve převáděn do PDF v paměti, zdrojový engine je uvolněn a převzet PDF prohlížeč. Vygenerované PDF obsahuje skutečný text, takže full‑textové vyhledávání získá pixelově přesné nativní zvýraznění; pipeline vynutí zapnutíAllowSearchaAllowCopypro přesměrované PDF, protože konverze je pro uživatele neviditelná.
XPS a výchozí nastavení katalogu pro MHT používají cestu přesměrování. PDF projekce může poskytnout nativní vyhledávání pro formáty jako HTML a Microsoft Project. Pokud výsledné PDF obsahuje obrázky bez textové vrstvy, standardní prohlížeč nemůže tyto pixely prohledávat.
Použijte režim přesměrování, když potřebujete PDF projekci s textem — za cenu počáteční konverze při otevření dokumentu.
Krok 2 — Pipeline obrázků stránek
Vykreslené stránky jsou zpracovávány při každém požadavku přes pevnou sekvenci:
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response- Vodoznak — aplikován podle stavu licence (chybějící licence, vypršená dočasná nebo předplatná, neplatná doména, špatná verze) a z
DocOptions.Watermarkpro váš vlastní text. Správně licencovaná aplikace — nebo aktivní dočasná licence — bez vlastního vodoznaku tento krok přeskočí. - Rotace/otočení — stav na stránce, který uživatel nastaví ve widgetu (90°/180°/270°, horizontální/vertikální otáčení) je uložen v relaci a aplikován při každém dalším vykreslení této stránky.
- Měřítko — náhledy a úrovně přiblížení jsou vytvořeny škálováním vykreslené stránky na požadovanou cílovou velikost;
0znamená podávat v původní velikosti. - Vypálení anotací — uložené anotace jsou vykresleny na bitmapu, aby je exporty a obrázky stránek zobrazovaly.
- Kódování — výsledek je zakódován do PNG pomocí sdílených paměťových streamů a zapsán přímo do HTTP odpovědi.
Chyby uvnitř middleware jsou vráceny jako PNG obrázky chyb (červený text na bílém) místo HTTP chybových stránek, takže widget je může zobrazit v oblasti stránky.
Cacheování stránek
BaseConfig.CachePages (výchozí true) uchovává vykreslené obrázky stránek v paměti po celou dobu životnosti relace dokumentu, takže opětovná návštěva stránky nevyvolá nové vykreslení. BaseConfig.ImageResolution (25–300 DPI, 0 = výchozí formátu) je hlavní ovladač kvality/paměti; výchozí hodnota každého formátu je zdokumentována na jeho konfigurační stránce.
Kde co ladit
| Co chcete | Ladit |
|---|---|
| Ostré stránky | ImageResolution v konfiguraci formátu |
| Přesné vyhledávání textu v HTML/EPUB/email/MHT/MPP | DefaultRender = false v konfiguraci formátu |
| Nižší paměťová náročnost u velkých dokumentů | CachePages = false, explicitně uzavřete relace |
| Vlastní razítko na každé stránce | DocOptions.Watermark |
Byla tato stránka užitečná?