Visningslister og trykkproduksjon

HotPDF kompilerer lastede sidestrømmer til gjenbrukbare THPDFPageDisplayList-instanser med THPDFDisplayListInfo-metrikker og innholdsobjekt-bokserektangler

Dokumentgjengivelse hurtigbuffer kompilerte lister, mens kallere kan be om en uavhengig eid liste for gjentatt utførelse eller regionale objektforespørsler

Delt produksjonstolk

Ikke-progressiv bitmap, direkte-DC, Form- og displayliste-avspilling sender alle for-tokenisert innhold gjennom HPDFInterpretContentTokensDevice, som eier operatørtraversering og kanselleringsgrenser

THPDFPageRenderer implementerer IHPDFContentOperatorDevice, så den delte traverseringen kaller dets komplette grafikk-, tekst-, ressurs-, klippe-, mønster-, transparens-, marked-content- og bilde-tilstandsmaskin uten å redusere produksjonsgjengivelsen til det mindre semantiske callback-grensesnittet

Displaylister bufrer operatørtoken-indekser mens strømmene kompileres og avspiller bare de indeksene, og unngår gjentatte operandskann; THPDFPageDisplayList.OperatorCount og THPDFDisplayListInfo.OperatorCount eksponerer det bufrede kommandotallet

Semantiske enheter som bare implementerer IHPDFContentDevice beholder kapabilitetsfiltrerte callbacks, mens komplette operatørenheter mottar én validert operatør om gangen med étt kanselleringskontrollpunkt per operatør

Begrenset og samtidig gjengivelse

THPDFRenderTileEvent mottar én kaller-størrelse tile eller horisontal bånd om gangen, og holder topp raster-minne uavhengig av full sidestørrelse

RenderLoadedPagesParallel overlapper visningsliste-kompilering med avspilling, starter den første klare siden uten å vente på en full kompileringsbarriere, balanserer dynamisk begge trinnene på tvers av avgrensede arbeidere, og returnerer en THPDFBitmapArray i inngangsrekkefølge

Kompilering kjører utenfor visningsliste-hurtigbufferlåsen, mens dobbeltkontrollert opptak og beskyttede brukstell la uavhengige sider kompileres samtidig uten å duplisere publiserte innføringer eller kaste ut en liste under avspilling

THPDFParallelRenderPipelineInfo eksponerer cache-treff, kompileringer, fullføringer, topp-kompilerings- og gjengivelses-konkurranse, sider kompilert ved første resultat, latens for første resultat og total forløpt tid

RenderLoadedPagesParallelOrdered leverer tilbakeringinger i inngangsrekkefølge på den kallende tråden og frigir hvert lånte bitmap etter at tilbakeringen returnerer, mens en kaller-valgt utgangsdybde anvender produsent-backtrykk og reserverer én plass for den neste nødvendige siden, så en langsom tidlig side ikke kan deadlocke bak senere resultater

Ordnet strømming beholder høyst én visningsliste og én aktiv gjengivelse per arbeider pluss den avgrensede fullførte-bitmap-køen i stedet for å holde hele jobbens utdata-resident

Pluggbare gjengivelsesbackendene forbruker de samme kompilerte listene gjennom et ikke-eiende dokumentressurs-visningsobjekt, så synkrone og parallelle baner unngår å omparse sideinnhold mens backend-kapabiliteter avgjør om kall kan overlappe eller krever seriell utsendelse

Den prosessomfattende topp-minneplanleggeren begrenser nå begge parallelle API-ene: det største sideestimatet reduserer det første antallet arbeidere, hver hentede side reserverer sitt fullstendige estimerte arbeidssett, og ordnet utdata beholder den reservasjonen gjennom tilbakeringingslevering

Planlegger-kansellering vekker budsjett-vendere ved tilbakeringings-kansellering eller arbeiderfeil, mens telemetri eksponerer forespurte versus effektive arbeidere, topp-reservasjonsvekt, forsinkede sider og samlet ventetid

RenderLoadedPageTilesParallel og RenderLoadedPageBandsParallel leverer lånte rad-major-fliser eller bunner fra topp til bunn på tvers av isolerte arbeidere, mens hver arbeider eier høyest én flise, og en kaller-levert arbeidsminnegrense reduserer konkurransen før første krav

Parallell renderingskontekster kopierer uforanderlige Type 3 glyf-tokensekvenser og rastermønster-terskelskjermer fra én avgrenset LRU-buffer, og bevarer renderer-lokalt eierskap til mutbar grafikktilstand og GDI-ressurser

SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded og SaveLoadedPagesToTiffStreamBanded konsumerer samme bunn-renderer gjennom strømmende PNG- eller TIFF-encodere, så svært store sider emitterer komprimert utdata rad for rad uten å holde en komplett framebuffer, mens THPDFBandImageExportInfo rapporterer renderete bunner, kodede rader, arbeidere, topp reserverte byte, utdatabyte, brukt tid og avbrudd

Deling av bildedekoding koordineres separat, så vektor-sidearbeid forblir parallelt uten å korrumpere dekodede bilde-cache-innføringer

PrefetchLoadedPages varmer opp raster-innføringer med et dedikert kanselleringstoken mens det kompileres og gjengis utenfor cache-låsen, og sidegjengivelse i forgrunnen overkjører arbeideren før den starter latensfølsomt arbeid

THPDFLoadedPagePrefetchInfo rapporterer planlagt, startet, fullført, lagret, gjengitt, mislykket, kansellert og forgrunns-overkjørt arbeid sammen med siste og topp kansellerings-latens

Gjennomsiktighet og utskriftskontroller

Utjevning av gjennomsiktighet sjekker først visningslistens gjennomsiktighets-telling og et kaller-definert piksel-tak, og erstatter deretter sidepensel med et tapsfritt Flate-komprimert kalibrert RGB-bilde

Sider med Separation- eller DeviceN-fargestoffer forblir som vektorinnhold, med de detekterte fargestoffene og bevaringsstatus eksponert for kaller

Rendereren utfører overføringsfunksjoner og Type 1-, 5-, 6-, 10- eller 16-halftoneordbøker fra ExtGState mens den bevarer uavhengige RGB-skremer og deres overføringsoverstyringer gjennom q og Q

THPDFInkCoverageInfo rapporterer gjennomsnittlig CMYK-dekning, maksimum total arealdekning og antallet piksler over den valgte terskelen

Prosess- og spotplater-utgang støtter DeviceCMYK, Separation og DeviceN-fargestoffer

Lastet-side fargeomskriving bruker den samme fullstendige rendereren til å konvertere komplekse sider til Gray, RGB eller CMYK mens enkle enhetsfarge-sideinnhold beholdes som vektorer og en eksplisitt spotplater-politikk anvendes

THPDFTrappingInfo kombinerer dokument-trapping-deklarasjoner, side-metadata og TrapNet-strukturell diagnostikk

ICC-arbeidsflyt

Gjengivelsestransformasjonen kan kombinere en PDF-kildeprofil, blandingsfargerom, bevisprofil, utgangsprofil og sRGB-raster-destinasjon

Alle fire ICC-gjengivelsesintensjoner og kompensasjon for ekte svartpunkt anvendes konsekvent på vektorfarger og bildeeksempler gjennom hele rørledningen

Fullstendige transformasjoner deles på tvers av vektor-, bilde-, side- og parallelle gjengivelsesbaner gjennom en trådsikker 64 MiB LRU-cache nøklet av kilde-, bevis- og utgangsprofilinnhold, effektiv gjengivelsesintensjon og svartpunkts-kompensasjon

Utjevning av gjennomsiktighet gjenbruker den samme transformasjonspipelinen, og sender deretter sømløse D65 CalRGB-tiles under kaller-kontrollerte total-raster- og per-tile pikselbudsjetter

Primære API-er