Liste prikaza i produkcija štampe
HotPDF kompajlira učitane tokove stranica u instance THPDFPageDisplayList koje se ponovo koriste sa metrikama THPDFDisplayListInfo i graničnim poljima objekata sadržaja
Renderovanje dokumenta kešira kompajlirane liste, dok pozivaoci mogu da zatraže nezavisno vlasničku listu za ponovljeno izvršavanje ili regionalne upite objekata
Zajednički produkcijski interpreter
Non-progresivna bitmapa, direktni DC, Form i replay display liste svi prosleđuju pre-tokenizovan sadržaj kroz HPDFInterpretContentTokensDevice koji poseduje obilazak operatora i granice otkazivanja
THPDFPageRenderer implements IHPDFContentOperatorDevice tako da zajednički obilazak poziva njegovu kompletnu mašinu stanja grafike, teksta, resursa, klipovanja, šara, transparentnosti, označenog sadržaja i slika bez smanjivanja produkcijskog renderovanja na manju semantičku callback površinu
Display liste keširaju indekse operator tokena dok se tokovi kompajliraju i ponovo reprodukuju samo te indekse, izbegavajući ponovljena skeniranja operanada; THPDFPageDisplayList.OperatorCount i THPDFDisplayListInfo.OperatorCount izlažu broj keširanih komandi
Semantički uređaji koji implementiraju samo IHPDFContentDevice zadržavaju capability-filtrirane callback-ove, dok kompletni operatorski uređaji primaju jedan validiran operator istovremeno sa jednom kontrolnom tačkom otkazivanja po operatoru
Ograničeno i konkurentno renderovanje
THPDFRenderTileEvent prima jednu pločicu veličine pozivaoca ili horizontalnu traku odjednom, držeći vršnu rastersku memoriju nezavisnom od pune veličine stranice
RenderLoadedPagesParallel preklapa kompajliranje liste prikaza sa reprodukcijom, pokreće prvu spremnu stranicu bez čekanja na pun kompajliranu barijeru, dinamički uravnotežava oba stupnja kroz ograničene radnike i vraća THPDFBitmapArray po redu ulaza
Kompajliranje se izvršava van zaključavanja keša liste prikaza, dok dvostruko provereno prihvatanje i zaštićena brojna upotreba omogućavaju nepovezanim stranicama da kompajliraju konkurentno bez dupliciranja objavljenih unosa ili izbacivanja liste tokom reprodukcije
THPDFParallelRenderPipelineInfo izlaže pogotke keša, kompajliranja, dovršavanja, vršnu konkurentnost kompajliranja i renderovanja, stranice kompajlirane pri prvom rezultatu, latenciju prvog rezultata i ukupno proteklo vreme
RenderLoadedPagesParallelOrdered isporučuje callback-ove po redu ulaza na niti pozivaoca i oslobađa svaki pozajmljeni bitmap nakon što se callback vrati, dok odabrana izlazna dubina pozivaoca primenjuje backpressure proizvođača i rezerviše jedan slot za sledeću potrebnu stranicu tako da spora rana stranica ne može da uđe u mrtvu tačku iza kasnijih rezultata
Uređeno strimovanje zadržava najviše jednu listu prikaza i aktivan render po radniku plus ograničeni red dovršenih bitmapa umesto držanja kompletnog izlaza zadatka rezidentnim
Uključivi render pozadinski sistemi troše iste kompajlirane liste kroz ne-vlasnički prikaz resursa dokumenta, tako da sinhroni i paralelni putovi izbegavaju ponovno parsiranje sadržaja stranice dok mogućnosti pozadinskog sistema određuju da li pozivi mogu da se preklapaju ili zahtevaju serijsko raspoređivanje
Procesni raspoređivač vršne memorije sada ograničava oba paralelna API-ja: najveća procena stranice smanjuje početni broj radnika, svaka preuzeta stranica rezerviše svoj kompletan procenjeni radni skup, a uređeni izlaz zadržava tu rezervaciju kroz isporuku callback-a
Otkazivanje raspoređivača budi one koji čekaju budžet pri otkazivanju callback-a ili neuspehu radnika, dok telemetrija izlaže tražene naspram efektivnih radnika, vršnu težinu rezervacije, odložene stranice i agregatno vreme čekanja
RenderLoadedPageTilesParallel i RenderLoadedPageBandsParallel isporučuju pozajmljene tile-ove po redu-vrste ili trake odozgo nadole kroz izolovane worker-e dok svaki worker poseduje najviše jedan tile, a ograničenje radne memorije od strane pozivaoca smanjuje konkurentnost pre prvog zauzeća
Paralelni render konteksti kopiraju nepromenljive Type 3 glyph token sekvence i halftone prag ekrane iz jednog ograničenog LRU keša, čuvajući renderer-lokalno vlasništvo nad promenljivim stanjem grafike i GDI resursima
SaveLoadedPageToPng,
SaveLoadedPageToPngStream,
SaveLoadedPagesToTiffBanded i SaveLoadedPagesToTiffStreamBanded troše isti band renderer kroz streaming PNG ili TIFF enkodere, tako da vrlo velike stranice ispisuju komprimovan izlaz red po red bez držanja kompletnog frejmbafera dok THPDFBandImageExportInfo prijavljuje renderovane trake, kodirane redove, worker-e, bajtove najveće rezervacije, izlazne bajtove, proteklo vreme i otkazivanje
Deljeno dekodovanje slika koordinira se odvojeno tako da vektorski rad na stranicama ostaje paraleln bez oštećivanja unosa keša dekodovanih slika
PrefetchLoadedPages zagreva raster unose sa namenskim tokenom otkazivanja dok se kompajliranje i renderovanje odvijaju van ključa keša, a renderovanje stranice u prvom planu preotima worker-a pre početka rada osetljivog na latenciju
THPDFLoadedPagePrefetchInfo prijavljuje zakazani, započeti, završeni, keširani, renderovani, neuspešni, otkazani i u prvom planu preoteti rad zajedno sa poslednjom i najvećom latencijom otkazivanja
Kontrole transparentnosti i štampe
Poravnjavanje transparentnosti prvo proverava broj transparentnosti display liste i plafon piksela definisan od pozivaoca, a zatim zamenjuje bojenje stranice bezgubnom Flate-komprimovanom kalibrisanom RGB slikom
Stranice sa Separation ili DeviceN bojama ostaju vektorski sadržaj, uz otkrivene boje i status čuvanja izložene pozivaocu
Renderer izvršava funkcije prenošenja i Type 1, 5, 6, 10 ili 16 halftone rečnike iz ExtGState uz čuvanje nezavisnih RGB ekrana i njihovih transfer zamena krozq i Q
THPDFInkCoverageInfo prijavljuje prosek CMYK pokrivenosti, najveću ukupnu pokrivenost površine i broj piksela iznad izabranog praga
Ispis na procesne i spot ploče podržava DeviceCMYK,
Separation i DeviceN colourants
Prebojavanje učitanih stranica koristi isti kompletan renderer da konvertuje složene stranice u Gray, RGB ili CMYK dok jednostavni sadržaj stranica u boji uređaja zadržava kao vektore i primenjuje eksplicitnu politiku spot ploča
THPDFTrappingInfo kombinuje deklaracije trapping-a dokumenta, metapodatke stranice i TrapNet strukturnu dijagnostiku
ICC tok rada
Renderovana transformacija može kombinovati PDF izvorni profil, prostor boja mešanja, proof profil, izlazni profil i sRGB raster odredište
Sve četiri ICC rendering namere i prava black-point kompenzacija primenjuju se dosledno na vektorske boje i uzorke slika kroz ceo pipeline
Kompletne transformacije dele se kroz vektorske, slikovne, stranične i paralelne putanje renderovanja kroz thread-safe 64 MiB LRU keš ključan po sadržaju izvora, proof i izlaznog profila, efektivnoj rendering nameri i black-point kompenzaciji
Poravnjavanje transparentnosti ponovo koristi isti transformacioni pipeline, a zatim ispisuje bezšavne D65 CalRGB pločice pod budžetima ukupnog rastera i po pločici pod kontrolom pozivaoca
Primarni API
- Uključivi render pozadinski sistemi
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