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