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

Relaterte API-er