Pluggable Page Render Backends
HotPDF može usmjeriti bitmap renderiranje učitanih stranica kroz pozadinski sustav definiran aplikacijom, zadržavajući postojeći renderer kao zadanu opciju bez konfiguracije i kao neobaveznu rezervu
Ugrađeni izvorni backend
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);THPDFNativeGDIRenderBackend izlaže uspostavljeni izvorni Windows GDI renderer kroz isti javni ugovor pozadinskog sustava koji koriste vanjske implementacije
Njegove sposobnosti deklariraju prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement i prbcThreadSafe bez deklariranja prbcDeviceAcceleration
SIMD backend po retcima
var
Backend: IHPDFPageRenderBackend;
begin
Backend := THPDFSIMDScanlineRenderBackend.Create;
PDF.PageRenderBackend := Backend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;THPDFSIMDScanlineRenderBackend unaprijed provjerava potpuni kompajlirani popis prikaza, a zatim upisuje podržana DeviceRGB ili DeviceGray pravokutna ispunjavanja izravno u konačnu 32-bitnu bitmap površinu kroz 64-bajtne serije i 16-bajtne vektorske repove
Složene pravokutne putanje bojaju se po nonzero ili even-odd pravilu ispunjavanja kao jedna operacija bojanja, čuvajući rupe, smjer transformiranih podputanja i već naslikani sadržaj; rasterizacija provjerava otkazivanje u ograničenim serijama i odbacuje djelomične površine
Pozadinski sustav prihvaća spremanje i vraćanje grafičkog stanja, ortogonalno mjerilo, matrice translacije i pravokutne rotacije, promjene boje ispune, pravokutnike, operatore ispune i reset puta; tekst, proizvoljni putevi, potezi, slike, prozirnost, isječkanje, uzorci, sjenčanja, nepodržani prostori boja i neortogonalne transformacije odustaju prije alokacije bitmape
Njegove sposobnosti deklariraju prbcSIMD, prbcThreadSafe i prbcDeterministic bez deklariranja ubrzanja uređaja, prozirnosti ili upravljanja bojama
THPDFSIMDRenderBackendStatistics izvještava izravne površine, renderirane pravokutnike, vektorske blokove, skalarne piksele repa i točno odbijenog operatora kada je rezerva potrebna
Ugovor vlastitog backenda
Implementirajte IHPDFPageRenderBackend i dodijelite ga THotPDF.PageRenderBackend
THPDFPageRenderBackendRequest isporučuje zatraženi indeks stranice i DPI, kompajlirani THPDFPageDisplayList i razrješitelj THPDFRenderDocAccess za tokove, slike, fontove, neobavezni sadržaj, upravljanje bojama i otkazivanje
A backend can inspect each compiled operator through THPDFPageDisplayList.GetToken without reparsing page content
Vratite True s novoalociranim TBitmap da prenesete vlasništvo bitmape na HotPDF; vratite False bez bitmape da odbijete zahtjev
Istovremenost i rezerva
Backends declaring prbcThreadSafe can run concurrently through both parallel page-render pipelines
Backendovi bez te mogućnosti serijaliziraju se kroz namjenski call lock, dok kompilacija display liste ostaje istodobna
rbfpSoftwareFallback ponavlja nedostupan, odbijen ili pao zahtjev pozadinskog sustava postojećim rendererom, dok rbfpFail diže EHPDFRenderBackend
Pozadinski sustav može neobavezno implementirati IHPDFPageRenderBackendFailureInfo ili vratiti dijagnostički razlog po zahtjevu tako da istodobna odustajanja čuvaju razlog točnog pokušaja renderiranja
Mijenjanje pozadinskog sustava poništava unose predmemorije renderiranih stranica u memoriji i trajne tako da se slike različitih renderera nikad ne miješaju
Dijagnostika i vizualna kapija
THPDFRenderBackendStatistics izvještava pokušaje, uspjehe, neuspjehe, softverske rezerve, serializirane pozive, proteklo vrijeme, naziv pozadinskog sustava i posljednji razlog neuspjeha
Ugrađena paritetna pričuvka koristi preklapajuću prozirnost i deklarira maksimalni Delta E 0, RGB grešku alpha-kompozicije 0 i broj različitih piksela 0 naspram zadanog renderera na Win32 i Win64