Display listat ja painotuotanto
HotPDF kääntää ladatut sivuvirrat uudelleenkäytettäviksi THPDFPageDisplayList -instansseiksi THPDFDisplayListInfo -metriikoiksi ja sisältöobjektien rajauslaatikoiksi
Asiakirjan renderöinti välimuistittaa käännetty luettelot, ja kutsujat voivat pyytää itsenäisesti omistetun luettelon toistuvaan suoritukseen tai alueellisiin objektikyselyihin
Jaettu tuotantotulkki
Ei-etenevä bittikartta, suora-DC, Form- ja näyttöluettelotoisto vievät kaikki esitokenisoidun sisällön HPDFInterpretContentTokensDevice, joka omistaa operaattoriläpikäynnin ja peruutusrajat
THPDFPageRenderer toteuttaa IHPDFContentOperatorDevice, joten jaettu läpikäynti kutsuu sen täyden grafiikka-, teksti-, resurssi-, rajaus-, kuvio-, läpinäkyvyys-, merkitty sisältö- ja kuvatilakoneen pienentämättä tuotantorenderöintiä pienempään semmaattiseen callback-pintaan
Näyttöluettelot välimuistittavat operaattoritokenien indeksit virtojen kääntämisen aikana ja toistavat vain kyseiset indeksit välttäen toistuvat operandiskannaukset; THPDFPageDisplayList.OperatorCount and THPDFDisplayListInfo.OperatorCount näyttävät välimuistitetun komentomäärän
Semmaattiset laitteet, jotka toteuttavat vain IHPDFContentDevice säilyttävät kyky suodatetut callbackit, kun taas täydet operaattorilaitteet vastaanottavat yhden validoidun operaattorin kerrallaan yhdellä peruutustarkistuspisteellä per operaattori
Rajattu ja rinnakkainen renderöinti
THPDFRenderTileEvent vastaanottaa yhden kutsujan kokoaman laatan tai vaakanauhan kerrallaan pitäen huippurasterimuistin riippumattomana koko sivun koosta
RenderLoadedPagesParallel limittää näyttöluettelon käännön toistoon, aloittaa ensimmäisen valmiin sivun odottamatta täyttä käännösammatia, tasapainottaa dynaamisesti molemmat vaiheet rajattujen työläisten kesken ja palauttaa THPDFBitmapArray syötejärjestyksessä
Kääntäminen ajaa näyttöluettelon välimuistilukon ulkopuolella, ja kaksoistarkistetut hyväksynnät ja suojatut käyttömäärät antavat asiaan liittymättömien sivujen kääntyä rinnakkain monistamatta julkaistuja alkioita tai karkottamatta luetteloa toiston aikana
THPDFParallelRenderPipelineInfo näyttää välimuistin osumat, käännöt, valmistumiset, huippukäännös- ja renderöintirinnakkaisuuden, ensimmäisen tuloksen kohdalla käännettyt sivut, ensimmäisen tuloksen viiveen ja kokonaisajankulun
RenderLoadedPagesParallelOrdered toimittaa callbackit syötejärjestyksessä kutsusäikeellä ja vapauttaa jokaisen lainatun bittikartan callbackin palattua, kun taas kutsujan valitsema tulostesyvyys soveltaa tuottajan takapainetta ja varaa yhden paikan seuraavalle vaaditulle sivulle, joten hidas aiempi sivu ei voi jumittua myöhempien tulosten taakse
Järjestetty striimaus säilyttää enintään yhden näyttöluettelon ja aktiivisen renderöinnin per työläinen plus rajatun valmistuneiden bittikarttojonon pitämättä koko työn tulostetta muistissa
Pluggable render backends kuluttavat samat käännetty luettelot ei-omistavan asiakirjaresurssinäkymän kautta, joten synkroniset ja rinnakkaiset polut välttävät sivusisällön uudelleenjäsennyksen, kun taas taustomahdollisuudet määräävät, voivatko kutsut limittyä vai vaativatko sarjallista lähetystä
Prosessinlaajuinen huippumuistiaikatauluttaja rajoittaa nyt molempia rinnakkaisia API:ja: suurin sivuarvio vähentää alkuista työläismäärää, jokainen vaadittu sivu varaa täyden arvioidun työjoukkonsa, ja järjestetty tuloste säilyttää varauksen callbackin toimitukseen asti
Aikatauluttajan peruutus herättää budjetti-odottajat callbackin peruutuksella tai työläisen vialla, kun taas telemetria näyttää pyydetyt versus tehokkaat työläiset, huippuvarauspainon, viivästyneet sivut ja kertautuneen odutusajan
RenderLoadedPageTilesParallel ja RenderLoadedPageBandsParallel toimittavat lainattuja rivi ensin -laattoja tai ylhäältä alas -nauhoja eristettyjen työläisten kautta, kun taas jokainen työläinen omistaa enintään yhden laatan ja kutsujan toimittama työmuistikatto vähentää rinnakkaisuutta ennen ensimmäistä vaatimusta
Rinnakkaiset renderöintikontekstit kopioivat muuttumattomat tyypin 3 glyyfien tokenisekvenssit ja rasterointikynnykset yhdestä rajatusta LRU-välimuistista säilyttäen renderöijäkohtaisen omistajuuden muuttuvalle grafiikkatilalle ja GDI-resursseille
SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded- ja SaveLoadedPagesToTiffStreamBanded kuluttavat saman nauharenderöijän virtaavien PNG- tai TIFF-kooderien kautta, joten erittäin suuret sivut tuottavat pakatun tulosteen rivi kerrallaan pitämättä täyttä kehyspuskuria, kun taas THPDFBandImageExportInfo ilmoittaa renderöidyt nauhat, koodatut rivit, työläiset, huippuvaratut tavut, tulostetavut, kuluneen ajan ja peruutuksen
Jaettu kuvadekoodaus koordinoidaan erikseen, joten vektorisivutyö pysyy rinnakkaisena rikkomatta dekoodattujen kuvien välimuistialkioita
PrefetchLoadedPages lämmittää rasterialkioita omistettulla peruutustunnuksella kääntäen ja renderöiden välimuistilukon ulkopuolella, ja etualan sivurenderöinti ottaa työläiseltä vuoron ennen viiveherkkään työn aloittamista
THPDFLoadedPagePrefetchInfo ilmoittaa aikataulutetun, aloitetun, valmistuneen, välimuistitetun, renderöidyn, epäonnistuneen, peruutetun ja etualan ennakkovaatiman työn sekä viimeisimmän ja huippuperuutusviiveen
Läpinäkyvyys- ja tulostusohjaimet
Läpinäkyvyyden litistys tarkistaa ensin näyttöluettelon läpinäkyvyysmäärän ja kutsujan määrittelemän pikselikaton ja korvaa sitten sivupiirron häviöttömällä Flate-pakatulla kalibroidulla RGB-kuvalla
Separation- tai DeviceN-väriaineita sisältävät sivut pysyvät vektorisisältönä, ja tunnistetut väriaineet ja säilytystila näytetään kutsujalle
Renderöijä suorittaa siirtofunktiot sekä tyypin 1, 5, 6, 10 tai 16 rasterointisanakirjat ExtGState:sta säilyttäen itsenäiset RGB-näytöt ja niiden siirto-ohitukset q and Q
THPDFInkCoverageInfo ilmoittaa keskimääräisen CMYK-kattavuuden, enimmäiskokonaisaluekattavuuden ja valitun kynnyksen ylittävien pikselien määrän
Prosessi- ja spotlevytuloste tukee DeviceCMYK, Separation and DeviceN -väriaineita
Loaded-page colour rewrite käyttää samaa täydellistä renderöijää monimutkaisten sivujen muuntamiseen Gray-, RGB- tai CMYK-väriseen samalla kun se säilyttää yksinkertaisen laiteväri-sivusisällönvektoreina ja soveltaa eksplisiittistä spot-plaattikäytäntöä
THPDFTrappingInfo yhdistää asiakirjan trappausilmoitukset, sivun metadatan ja TrapNet-rakennediagnostiikan
ICC-työnkulku
Hahmontamismuunnos voi yhdistää PDF-lähdeprofiilin, sekoitusväritilan, vedosprofiilin, tulostusprofiilin ja sRGB-rasterikohteen
Kaikki neljä ICC-hahmontusintenttia ja aito mustapiste-kompensaatio sovelletaan johdonmukaisesti vektoriväreihin ja kuvanäytteisiin putkiston läpi
Täydelliset muunnokset jaetaan vektori-, kuva-, sivu- ja rinnakkaishahmontamispolkujen yli säiettävän 64 MiB LRU-välimuistin kautta, joka avaimennetaan lähde-, vedos- ja tulostusprofiilisisältöjen, tehokkaan hahmotusintentin ja mustapiste-kompensaation mukaan
Läpinäkyvyyden litistäminen käyttää uudelleen samaa muunnosputkistoa ja tuottaa sitten saumattomat D65 CalRGB-laatat soittajan ohjaamien kokonaisraasteri- ja laatakkopikseli-budjettien alla
Primary APIs
- Pluggable render backends
IHPDFContentOperatorDeviceHPDFInterpretContentTokensDeviceTHotPDF.CompileLoadedPageDisplayListTHPDFPageDisplayList.GetTokenTHPDFPageDisplayList.GetObjectTHPDFPageDisplayList.QueryObjectIndexesTHPDFPageDisplayList.PageObjectTHPDFPageDisplayList.ResourcesTHPDFPageDisplayList.MediaBoxTHotPDF.RenderLoadedPageTilesandRenderLoadedPageBandsTHotPDF.RenderLoadedPageTilesParallelandRenderLoadedPageBandsParallelTHPDFParallelTileRenderInfoTHotPDF.SaveLoadedPageToPngTHotPDF.SaveLoadedPageToPngStreamTHotPDF.SaveLoadedPagesToTiffBandedTHotPDF.SaveLoadedPagesToTiffStreamBandedTHPDFBandImageExportInfoTHotPDF.RendererSharedCacheMaxBytesTHotPDF.RenderLoadedPagesParallelTHotPDF.RenderLoadedPagesParallelOrderedTHPDFParallelRenderPipelineInfoTHotPDF.PrefetchLoadedPagesTHotPDF.GetLoadedPagePrefetchInfoTHPDFLoadedPagePrefetchInfoTHotPDF.FlattenLoadedPageTransparencyTHotPDF.FlattenLoadedPageComplexGraphicsTHotPDF.RenderLoadedPageSeparationPlateTHotPDF.GetLoadedPageSpotColorantsTHotPDF.RewriteLoadedPageColorsTHotPDF.AnalyzeLoadedPageInkCoverageTHotPDF.InspectLoadedPageTrappingTHotPDF.ConfigureRenderICCWorkflow