Pluggbare sidegjengivelses-motorer
HotPDF kan rute lastet-side-bitmappegjengivelse gjennom en applikasjonsdefinert motor, samtidig som den beholder den eksisterende gjengiveren som null-konfigurasjons-standard og valgfri fallback
Innbygd innfødt motor
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
THPDFNativeGDIRenderBackend avdekker den etablerte Windows innfødte GDI-gjengiveren gjennom den samme offentlige motorkontrakten som brukes av eksterne implementasjoner
Kapasitetene erklærer prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement og prbcThreadSafe uten å hevde prbcDeviceAcceleration
SIMD skannelinje-backend
var Backend: IHPDFPageRenderBackend; begin Backend := THPDFSIMDScanlineRenderBackend.Create; PDF.PageRenderBackend := Backend; Bitmap := PDF.RenderLoadedPageToBitmap(0, 144); end; THPDFSIMDScanlineRenderBackend foretar en forhåndssjekk av den komplette kompilerte displaylisten, og skriver deretter støttede DeviceRGB- eller DeviceGray-rektikkelfyll direkte inn i den endelige 32-bit bitmap-overflaten gjennom 64-byte batcher og 16-byte vektorsvanser
Sammensatte rektangelbaner følger nonzero- eller even-odd-fyllregelen som én maleoperasjon, og bevarer hull, transformert delbaneretning og tidligere malt innhold; rasteriseringen sjekker avbryting i avgrensede batcher og forkaster delvise overflater
Backenden godtar grafikktilstand-lagre og gjenopprettinger, ortogonal skalering, translasjons- og rettvinklet rotasjonsmatriser, fyllfargeendringer, rektangler, fylloperatorer og tilbakestilling av bane; tekst, vilkårlige baner, strøk, bilder, transparens, klipping, mønstre, skyggelegginger, ustøttede fargerom og ikke-ortogonale transformasjoner avslås før bitmap-allokering
Evnene dens deklarerer prbcSIMD, prbcThreadSafe og prbcDeterministic uten å hevde enhetsakselerasjon, transparens eller fargehåndtering
THPDFSIMDRenderBackendStatistics rapporterer direkte overflater, gjengitte rektangler, vektorblokker, skalar-svanspiksler og nøyaktig den avviste operatoren når fallback kreves
Egendefinert motorkontrakt
Implementer IHPDFPageRenderBackend og tilordne den til THotPDF.PageRenderBackend
THPDFPageRenderBackendRequest leverer den forespurte sideindeksen og DPI-en, den kompilerte THPDFPageDisplayList, og en THPDFRenderDocAccess-løser for strømmer, bilder, skrifter, valgfritt innhold, fargeadministrasjon og avbrytelse
En motor kan inspisere hver kompilert operatør gjennom THPDFPageDisplayList.GetToken uten å omparsere sideinnhold
Returner True med en nylig tildelt TBitmap for å overføre bitmappeierskap til HotPDF; returner False med ingen bitmappe for å avslå forespørselen
Samtidighet og fallback
Motorer som erklærer prbcThreadSafe kan kjøre samtidig gjennom begge parallelle sidegjengivelses-pipeline
Motorer uten den kapasiteten serialiseres gjennom en dedikert kall-lås mens visningsliste-kompilering forblir samtidig
rbfpSoftwareFallback forsøker en utilgjengelig, avslått eller feilet motorforespørsel på nytt med den eksisterende gjengiveren, mens rbfpFail utløser EHPDFRenderBackend
En motor kan valgfritt implementere IHPDFPageRenderBackendFailureInfo eller returnere en per-forespørsel-diagnostisk årsak, slik at samtidige avslag beholder årsaken til nøyaktig det gjengivelsesforsøket
Å bytte backend ugyldiggjør bufferte oppføringer for gjengitte sider i minnet og på disk, slik at bilder fra ulike renderere aldri blandes
Diagnoser og visuell port
THPDFRenderBackendStatistics rapporterer forsøk, suksesser, feil, programvare-fallbacker, serialiserte kall, forløpt tid, motornavn og den siste feilårsaken
Den innbygde paritet-fixturen bruker overlappende transparens og erklærer maksimal Delta E 0, alfa-kompositerende RGB-feil 0 og avvikende-piksler-tall 0 i forhold til standardgjengiveren på Win32 og Win64