Popisi prikaza i tiskarska produkcija
HotPDF kompajlira tokove učitanih stranica u višekratno upotrebljive instance THPDFPageDisplayList s metrikama THPDFDisplayListInfo i ograničavajućim okvirima objekata sadržaja
Renderiranje dokumenata predmemorira kompajlirane liste, dok pozivatelji mogu zahtijevati neovisno vlasničku listu za ponovljeno izvršavanje ili regionalne upite objekata
Dijeljena produkcijska interpretacija
Neprogresivni bitmap, izravni DC, Form i repriza popisa prikaza svi prosljeđuju pre-tokenizirani sadržaj kroz HPDFInterpretContentTokensDevice koji posjeduje prelazak operatora i granice otkazivanja
THPDFPageRenderer implementira IHPDFContentOperatorDevice, tako da zajednički prelazak poziva njegovo potpuno grafičko, tekstualno, resursno, isječno, uzoračko, prozirnosno, označeno-sadržajno i slikovno stanje bez smanjivanja produkcijskog renderiranja na manju semantičku callback površinu
Popisi prikaza predmemoriraju indekse tokena operatora dok se tokovi kompajliraju i repriziraju samo te indekse, izbjegavajući ponovljena skeniranja operanada; THPDFPageDisplayList.OperatorCount i THPDFDisplayListInfo.OperatorCount izlažu predmemorirani broj naredbi
Semantički uređaji koji implementiraju samo IHPDFContentDevice zadržavaju callbacke filtrirane sposobnostima, dok potpuni operatorski uređaji primaju jedan validirani operator istovremeno s jednom kontrolnom točkom otkazivanja po operatoru
Ograničeno i istovremeno iscrtavanje
THPDFRenderTileEvent prima jednu pločicu ili horizontalnu traku veličine pozivatelja istovremeno, držeći vršnu rastersku memoriju neovisnom o veličini cijele stranice
RenderLoadedPagesParallel preklapa kompajliranje popisa prikaza s reprodukcijom, započinje prvu spremnu stranicu bez čekanja potpune kompajlerske barijere, dinamički uravnotežava obje faze kroz ograničene radnike i vraća THPDFBitmapArray u redoslijedu ulaza
Kompajliranje izvršava se izvan brave predmemorije popisa prikaza, dok dvostruko-provjeren prijem i zaštićeni brojači uporabe dopuštaju da nepovezane stranice kompajliraju istovremeno bez dupliciranja objavljenih unosa ili izbacivanja liste tijekom reprodukcije
THPDFParallelRenderPipelineInfo izlaže pogotke predmemorije, kompajliranja, dovršenja, vršnu istodobnost kompajliranja i renderiranja, stranice kompajlirane pri prvom rezultatu, latenciju prvog rezultata i ukupno proteklo vrijeme
RenderLoadedPagesParallelOrdered dostavlja callbackove u redoslijedu ulaza na pozivateljevoj niti i otpušta svaku posuđenu bitmapu nakon što se callback vrati, dok pozivateljem odabrana izlazna dubina primjenjuje producentski povratni pritisak i rezervira jedan utor za sljedeću potrebnu stranicu tako da spora rana stranica ne može uzrokovati zastoj iza kasnijih rezultata
Uređeno tokovno emitiranje zadržava najviše jedan popis prikaza i aktivni render po radniku plus ograničeni red dovršenih bitmapa umjesto držanja potpunog izlaza posla rezidentnim
Priključivi pozadinski sustavi renderiranja konzumiraju iste kompajlirane liste kroz nevlalački prikaz resursa dokumenta, tako da sinkroni i paralelni putevi izbjegavaju ponovno parsiranje sadržaja stranica dok sposobnosti pozadinskog sustava određuju mogu li se pozivi preklapati ili zahtijevaju serijski dispečing
Dispečer vršne memorije za cijeli proces sada ograničava oba paralelna API-ja: najveća procjena stranice smanjuje početni broj radnika, svaka zatražena stranica rezervira svoj potpuni procijenjeni radni skup, a uređani izlaz zadržava tu rezervaciju kroz dostavu callbackova
Otkazivanje dispečera budi čekatelje proračuna na otkazivanje callbacka ili neuspjeh radnika, dok telemetrija izlaže zatražene naspram učinkovitih radnika, vršnu težinu rezervacije, odgođene stranice i zbirno vrijeme čekanja
RenderLoadedPageTilesParallel i RenderLoadedPageBandsParallel dostavljaju posuđene pločice po retcima ili trake od vrha do dna kroz izolirane radnike dok svaki radnik posjeduje najviše jednu pločicu i pozivateljem dostavljen strop radne memorije smanjuje istodobnost prije prvog zahtjeva
Paralelni render konteksti kopiraju nepromjenjive tokene sekvenci glifa Type 3 i polutonske pragovne ekrane iz jedne ograničene LRU predmemorije, čuvajući vlasništvo lokalno za renderer za promjenjivo grafičko stanje i GDI resurse
SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded i SaveLoadedPagesToTiffStreamBanded konzumiraju isti renderer traka kroz tokovne PNG ili TIFF enkodere, tako da vrlo velike stranice ispisuju komprimirani izlaz redak po redak bez držanja potpunog framebuffera dok THPDFBandImageExportInfo izvještava renderirane trake, kodirane retke, radnike, vršne rezervirane bajtove, izlazne bajtove, proteklo vrijeme i otkazivanje
Shared image decoding is coordinated separately so vector page work remains parallel without corrupting decoded-image cache entries
PrefetchLoadedPages zagrijava rasterske unose s posvećenim tokenom otkazivanja uz kompajliranje i renderiranje izvan brave predmemorije, a prednje renderiranje stranica preuzima radnika prije početka rada osjetljivog na latenciju
THPDFLoadedPagePrefetchInfo izvještava raspoređeni, započeti, dovršeni, predmemorirani, renderirani, pali, otkazani i prednjim putem preuzeti rad zajedno s posljednjom i vršnom latencijom otkazivanja
Prozirnost i kontrole ispisa
Poravnavanje prozirnosti prvo provjerava broj prozirnosti popisa prikaza i pozivateljem definiran strop piksela, a zatim zamjenjuje bojanje stranice bezgubnom Flate-kompresiranom kalibriranom RGB slikom
Stranice s bojilima Separation ili DeviceN ostaju kao vektorski sadržaj, s otkrivenim bojilima i statusom očuvanja izloženim pozivatelju
Renderer izvršava prijenosne funkcije i polutonske rječnike Type 1, 5, 6, 10 ili 16 iz ExtGState-a uz očuvanje neovisnih RGB ekrana i njihovih prijenosnih nadjačavanja kroz q i Q
THPDFInkCoverageInfo izvještava prosječnu CMYK pokrivenost, maksimalni ukupni pokrivač površine i broj piksela iznad odabranog praga
Izlaz procesnih i spot ploča podržava bojila DeviceCMYK, Separation i DeviceN
Preuređenje boja učitane stranice koristi isti potpuni renderer za konverziju složenih stranica u Gray, RGB ili CMYK uz zadržavanje jednostavnog sadržaja stranica uređajnih boja kao vektora i primjenu eksplicitne politike spot ploča
THPDFTrappingInfo spaja deklaracije zatvaranja dokumenta, metapodatke stranica i strukturnu dijagnostiku TrapNet-a
ICC tijek rada
Renderirajuća transformacija može kombinirati PDF izvorni profil, prostor bojanja miješanja, profil provjere, izlazni profil i sRGB rastersko odredište
Sve četiri ICC namjere renderiranja i prava kompenzacija crne točke primjenjuju se dosljedno na vektorske boje i slikovne uzorke kroz cjevovod
Potpune transformacije dijele se kroz vektorske, slikovne, stranične i paralelne puteve renderiranja kroz nitno-sigurnu 64 MiB LRU predmemoriju ključanu po sadržajima izvornog, provjernog i izlaznog profila, učinkovitoj namjeri renderiranja i kompenzaciji crne točke
Poravnavanje prozirnosti ponovno koristi isti transformacijski cjevovod, a zatim ispisuje pločice D65 CalRGB bez šavova pod pozivateljem kontroliranim proračunima ukupnog rastro i piksela po pločici
Primarni API-ji
- Prijključivi iscrtavajući backendi
IHPDFContentOperatorDeviceHPDFInterpretContentTokensDeviceTHotPDF.CompileLoadedPageDisplayListTHPDFPageDisplayList.GetTokenTHPDFPageDisplayList.GetObjectTHPDFPageDisplayList.QueryObjectIndexesTHPDFPageDisplayList.PageObjectTHPDFPageDisplayList.ResourcesTHPDFPageDisplayList.MediaBoxTHotPDF.RenderLoadedPageTilesiRenderLoadedPageBandsTHotPDF.RenderLoadedPageTilesParalleliRenderLoadedPageBandsParallelTHPDFParallelTileRenderInfoTHotPDF.SaveLoadedPageToPngTHotPDF.SaveLoadedPageToPngStreamTHotPDF.SaveLoadedPagesToTiffBandedTHotPDF.SaveLoadedPagesToTiffStreamBandedTHPDFBandImageExportInfoTHotPDF.RendererSharedCacheMaxBytesTHotPDF.RenderLoadedPagesParallelTHotPDF.RenderLoadedPagesParallelOrderedTHPDFParallelRenderPipelineInfoTHotPDF.PrefetchLoadedPagesTHotPDF.GetLoadedPagePrefetchInfoTHPDFLoadedPagePrefetchInfoTHotPDF.FlattenLoadedPageTransparencyTHotPDF.FlattenLoadedPageComplexGraphicsTHotPDF.RenderLoadedPageSeparationPlateTHotPDF.GetLoadedPageSpotColorantsTHotPDF.RewriteLoadedPageColorsTHotPDF.AnalyzeLoadedPageInkCoverageTHotPDF.InspectLoadedPageTrappingTHotPDF.ConfigureRenderICCWorkflow