Pregled projekta
HotPDF je biblioteka PDF komponenti na nivou izvornog koda za Delphi i C++Builder; napravljena je za desktop softver kojem je potreban deterministički PDF izlaz, direktno iscrtavanje stranica, jaka RAD Studio integracija i kompaktna distribucija
Ova komponenta pokriva svakodnevno generisanje PDF-a, napredno spajanje dokumenata, uređivanje PDF-a, rad sa dokumentima sa puno slika, obrasce, anotacije, šifrovanje, procese potpisivanja, optimizaciju fontova i rad sa tokovima podataka iz jedinstvenog nativnog API okruženja
Komplet alata za učitane dokumente dodaje brisanje opsega stranica, spajanje svestno nacrta i AcroForm-a, ograničenja za vidžete sa više polja, izvođenje šifrovanih dokumenta zasnovano nacretskim tokovima, izvoz zasnovan na prikazu, brisanje anotacija, upravljanje slojevima (OCG), pamtljive iseci pretrage teksta, izvoz teksta u CSV/JSON/XML/HTML, ponovnu upotrebu učitanih slika, prepisivanje boje stranice, dekodiranje barkoda, bezbednosno sanitizovanje i XML metapodatke zasnovane na tokovima, uz deklarativna ograničenja koja čuvaju izlaz predvidljivim
Nedavna izdanja biblioteke proširila su HotPDF iz klasičnog PDF pisača u širi nativni PDF komplet alata koji pokriva kontrolu funkcija specifičnu za verzije PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, nativni PDF 2.0 izlaz, usklađenost sa standardima PDF/A-1 / -2 / -3 / -4 + PDF/X-1a / -3 / -4 + PDF/UA-1 / -2, digitalne potpise PAdES baseline / extended / dugotrajna validacija, pipeline za PFX / PKCS#12 potpisivanje u procesu sa nativnim RSA i ECDSA plus opcionim OpenSSL 3 Ed25519 i Ed448, inkrementalna ažuriranja šifrovana standardnim ili javnim ključem koja čuvaju akreditive sa stabilnim trajnim ID-jevima, rotirajućim ID-jevima izmena, bajt-ekzaktnim izvornim prefiksima i bajt-ekzaktnim no-op čuvanjima, podskupove fontova CFF / OpenType / CID-keyed CFF, i PDF adaptere za izvoz za FastReport, QuickReport, ReportBuilder i DevExpress ExpressPrinting koji postojeće izveštaje usmeravaju kroz HotPDF kao jedinstveni PDF backend. Direct File API obrađuje višegigabajtne PDF-ove sa milionima objekata direktno iz datoteke u datoteku - broj stranica, kopije, prepisivanje informacija o dokumentu te AES-256 šifrovanje ili dešifrovanje - u sekundama, dok ograničeni loader za oporavak može da preseli validnu xref sekciju ili da ponovo izgradi ofsete direktnih objekata nakon oštećenih startxref i xref podataka bez verovanja u ugnježđeni tekst sličan objektima ili binarne podatke, i objavljuje oporavak po bajt-opsezima sa eksplicitnim nivoima poverenja
Opt-in pisac LinearizeOutput dodaje izlaz za brzi web prikaz sa sekcijom zavisnosti prve stranice, grupisanjem deljenih objekata, tabelama hintova za primarnu stranicu i deljene objekte i ranom tabelom unakrsnih referenci za kompatibilnost, uz zadržavanje direktnih datotečnih i tokovnih odredišta
Filteri učitanih tokova prolaze kroz višekratno upotrebljiv pipeline čiji završni steg piše direktno u tokove u vlasništvu pozivaoca, a međustegni se prelivaju kroz nezavisno kompresovane blokove i ograničen asinhroni red paketa, sa strogim završnim markerima ASCII85 i ASCIIHex, nezavisnim plafonima dekodovanih bajtova po lancu i na nivou dokumenta, ograničenjima broja filtera i dubine pipeline-a, detekcijom ciklusa indirektnih referenci, odbijanjem rekurzije istog toka i strukturisanom dijagnostikom za svaki uspeh ili neuspeh
Predictor kodiranje sada izlaže stroge višekratno upotrebljive TIFF i fiksne ili adaptivne PNG putanje za pakovane, 8-bitne i 16-bitne rastre; učitane slike mogu da kopiraju nativne ili generički dekodovane sadržaje direktno u tokove pozivaoca, dok selektivna optimizacija koristi prelivne bafere memorija-disk, determinističku četvorostrategijsku zlib osnovu praćenu budžetiranim Zopfli deljenjem blokova i ograničene paralelne poslove sa slikama koje prihvataju samo manje sadržaje u izvornom redosledu
Rekompresija učitanih JPEG i JPEG 2000 slika može da pokreće ograničene probne kvalitete i bira deterministički izlaz združnim ocenjivanjem uzorkovane perceptualne greške i relativnog bajtnog troška kodovanja, podložno eksplicitnim granicama vizuelne greške i minimalne uštede
Veliki lokalni dokumenti koriste ograničeno prozorsko mapiranje memorije sa deljenim LRU kešom za čitanja parsera i nepromenljive lenjive tokovne opsege, dok pragovi mapiranja i geometrija prozora ostaju podešavi i greške se automatski preusmeravaju na rezervni put; sirovi kompresovani opsezi, dekodovane slike, kompajlirani prikazni spisci i renderovane rasterske stranice imaju nezavisne limite broja unosa, ukupnih bajtova i prijema po unosu, kombinuju skorašnjost sa starenjem prijema po fiksnoj memoriji da bi odoleli zagađivanju skeniranjem i izlažu statistike zauzeća, saobraćaja i frekvencije; pošten procesni rasporedivač vršne memorije odlaže međusobno konkurentna učitavanja dokumenata, renderovanja, optimizaciju tokova i paralelnu optimizaciju slika pre nego što se njihovi glavni radni skupovi preklope, uz očuvano otkazivanje i prijavu pritiska na prijem; serijalizacija nešifrovanih tokova i prenosi koje usmerava pozivalac pišu bajtove memorije, mapirane datoteke, lenjive datoteke, adaptivnog keša i keša opsega bez međusobnog kopiranja celog toka; kratkotrajni tokeni i baferi parsera koriste zadržanu blok-arenu kroz učitavanja, jednostavni rečnici i nizovi skeniraju nepromenljive opsege sa direktnom numeričkom konverzijom i jedno-prolaznim ugnježđavanjem, podešavi budžeti bajtova, zbirnih tokena, unosa kontejnera i neispravnih tokena zaustavljaju neprijateljski ulaz sa tipiziranom telemetrijom, ključevi rečnika više ne zahtevaju privremene objekte-imena, a ponovljena imena, sadržajni operatori i nepromenljivi kratki stringovi dele ograničen bazen obuhvata dokumenta; izmenjeni učitani tokovi koriste LoadedStreamMemoryThreshold za izbor memorije ili sopstvenog kompresovanog privremenog toka čiji sirovi i kompresovani blokovi dele ograničen asinhroni red upisa; članovi object-stream indeksiraju se brojem objekta i parsiraju se tek kad se navedu, dok LoadFromRandomAccessSource povezuje HTTP range čitače i prilagođene skladišta, spaja susedna čitanja kroz ograničen keš, adaptivno povećava asinhrono čitanje-unapred tokom postojanog unaprednog parsiranja, suzbija spekulativni transport nakon slučajnih skokova, kooperativno otkazuje poslove u letu radi pretraživanja u prvom planu, oporavlja ključeve lozinki iz ograničenih opsega trailera, xref-a, dokument-ID-ja i rečnika šifrovanja bez zahtevanja kompletnog izvora, beleži egzaktne binarne unose security handler-a sa autoritativnog ofseta objekta tako da odloženo dešifrovanje ne traži ponovno čitanje izvora, izlaže prvu linearizovanu stranicu iz svog samostalnog prefiksa i planira ograničene minimalne opsege bootstrap-a, hintova, stranica, deljenih objekata i unakrsnih referenci za bilo koju kasniju stranicu prihvatajući legalna kraća čitanja i interoperabilne kao i hint rasporede iz Aneksa F pod strogim ograničenjima memorije i strukture
Mapirane lokalne datoteke sada se prilagođavaju unutar podešenog bajtnog plafona: postojana unapredna čitanja koriste veće poglede da smanje remapiranje, postojana dalja ili unazadna čitanja zadržavaju do 16 manjih MRU pogleda, promene režima traže ponovljene dokaze, a THPDFMappedFileStatistics izveštava o aktivnoj geometriji, vršnoj mapiranoj veličini, brojačima obrazaca pristupa i prelazima
HotPDFABI.dll izlaže verzionisan ravni C ABI sa strukturno proverenim Win32 i Win64 povratnim strukturama, validiranim neprozirnim ručkama, fiksnim kodovima statusa, 64-bitnim čitanjima slučajnog pristupa direktno u bafere parsera, ponovljivim tokovnim upisima, eksplicitnim dužinama u bajtovima, otkazivanjem, napretkom i dijagnostikom; build-HotPDF-ABI.cmd proizvodi DLL i import biblioteku za svaku platformu
JSON i C ABI operacije nad dokumentima dele otkrivanje mogućnosti, renderovanje, Unicode tekst i obrasce, OCR slojeve, redigovanje, PFX potpisivanje i ograničenu rastersku arhivsku konverziju u PDF/A-4 kroz verzionisanu šemu, budžete resursa, vraćanje povratnih poziva i atomski izlaz u datoteku; arhivski zahtevi eksplicitno prihvataju gubitak informacija i čuvaju svoj učitani izvor
FPC nativni backendi obezbeđuju TIFF, JPEG/JPX, ICC, JBIG2 i Zopfli kroz validirani Windows most kodeka, zajedno sa stvarnim paralelnim renderovanjem stranica, uređenih stranica, pločica, traka i JPEG 2000 pločica
Determinističke diferencijalne regresione sonde porede imenovane motore kroz domene parsiranja, renderovanja, teksta i čuvanja, ponavljaju svaki rezultat da otkriju nestabilnost, izoluju izuzetke, sprovode ograničenja ulaza i izlaza, obezbeđuju ugrađene SHA-256 HotPDF otiske i emituju uredenu hotpdf.differential.v1 JSON shemu
Nativna statistička regresiona travnica za performanse izoluje Win32 i Win64 radna opterećenja učitavanja, čuvanja, renderovanja i ekstrakcije, beleži zagrevanja plus 30 sirovih uzoraka sa p50, p95, varijansom uzorka, RSS, procesnim I/O, determinističkim identitetom fiksnog uzorka i metapodacima okruženja, i ne uspeva u odnosu na verzionisane JSON pragove
Kontinuirano skladište korpusa neispravnih PDF-ova ponovo validira i ponovo minimizira svaki slučaj neuspeha pod podešenim granicama, zadržava najmanji unos ekvivalentan potpisu kroz pokretanja, serijalizuje konkurentne pisce procesno-bezbednim bravom i atomski objavljuje PDF adresiran SHA-256 i metapodatke hotpdf.corpus.case.v1
Objedinjena telemetrija operacija razdvaja rezervaciju rasporeda i kašnjenje reda, vreme zida od CPU vremena tekuće niti, prenosivu memoriju zadržanu komponentom od uzorkovanog radnog skupa procesa i kodovani ulaz od konačnog dekodovanog izlaza, a takođe izveštava o vršnim dodatnim živim alokacijama, deltas procesnog I/O u bajtovima, aktivnosti keša, zbirnom radu filtera i širenju dekodovanja
Ograničeni deterministički logovi replike beleže kontrolne tačke otkazivanja, dostupnost opsega slučajnog pristupa i boolean ili celobrojne ishode povratnih poziva u uredenoj JSON shemi; stroga replika validira potpis svakog događaja i zamenjuje zabeležene odluke tako da se povremeno spoljašnje vreme i ponašanje povratnih poziva mogu reprodukovati bez menjanja operacija nad dokumentom
Učitavanje svesno revizija sada validira slobodne liste xref-a i prelaze generacija uz zadržavanje ograničenih detalja za duplikate i zasenčene definicije objekata; destruktivne inkrementalne izmene spajaju postojeće i novo oslobođene objekte u kompletan deterministički lanac slobodnih objekata, pomeraju generacije sa saturacijom, čuvaju generacije prljavih objekata i izlažu statistike ponovne izgradnje; eksplicitna stanja čisto, prljavo, oslobođeno i mora-se-upisati podržavaju oslobađanje keša object-stream posle čuvanja uz malu memoriju, dok deterministički redosled rečnika, strimovani JSON snimci verzionisanog grafa objekata i inkrementalna ažuriranja, uredivi QDF dijagnostički izlaz sa ograničenom popravkom dužine toka i xref-a, ograničene ivice zavisnosti i atribucija zadržane memorije zasnovana na dominatorima čine strukturni uvid reproduktivnim
Pretraživi OCR tekstualni slojevi povezuju prepoznavač kojeg bira aplikacija sa ograničenim renderovanjem stranice, validiraju pouzdanost, Unicode i piksel geometriju, obrću rotaciju stranice za poravnat nevidljivi tekst, opciono vezuju izlaz za jedan OCG i prihvataju svaku izabranu stranicu kroz jednu transakciju grafa; označene HotPDF OCR slojeve možemo bezbedno zameniti nakon čuvanja i ponovnog učitavanja, susedne latinične i ćiriličke reči dobijaju eksplicitne Unicode razmake, a SearchableOCR console primer generiše uzorke skenova i pretvara izabrane stranice ugrađenim OCR-om, RapidOCR-om ili Tesseract DLL/CLI engine-ima, uz podešive limite i statistiku konverzije
Ugrađeni OCR engine prepoznaje regular, bold, italic i bold italic ASCII tekst, uključujući izbledela slova i svetao tekst na pretežno tamnoj stranici; reči s nesigurnim zadržanim glifovima izostavljaju se u celini da se znakovi ne izgube neprimetno, prazne ili neprepoznate stranice uspešno se završavaju, a Windows FPC čuva 24-bitne i 32-bitne ulazne piksele
Opcioni nativni Tesseract DLL adapter obezbeđuje konfigurabilnu segmentaciju stranice i režime engine-a, višejezično Unicode prepoznavanje, pouzdanost, granice reči i osnovne linije kroz HPDFCreateTesseractDLLOCREngine u Delphi, C++Builder i Windows FPC/Lazarus buildovima
Lokalni Tesseract CLI adapter takođe prihvata THPDFTesseractOptions za single-line, single-word, sparse-text i vertical-block rasporede, sa eksplicitnim režimom engine-a, tajmautom i limitima ulaznih piksela; nativni DLL adapter koristi smer osnovne linije da dužina vertikalnih reči ne naduje veličinu pretraživog teksta
RapidOCR adapter za lokalne modele dodaje eksplicitne putanje ONNX modela, opcionu klasifikaciju ugla, lokalne rečnike i fontove, kontrole CPU niti, offline preflight, tačne razmake prepoznatih linija i ograničeno Unicode prepoznavanje kroz THPDFRapidOCROptions u Delphi, C++Builder i Windows FPC/Lazarus buildovima
Nativni RapidOCR DLL adapter drži CPU ONNX modele unutar procesa i prepoznaje snimke memorije kroz HPDFCreateRapidOCRDLLOCREngine, sa THPDFRapidOCRDLLOptions.ForLanguage preset postavkama za pojednostavljeni i tradicionalni kineski, engleski, japanski, korejski, ruski, uobičajene latinične jezike, arapski i hindi, proverenim lokalnim paketima modela, horizontalnim redosledom čitanja, opcionom klasifikacijom ugla, Unicode tekstom, ograničenim izlazom i kooperativnim otkazivanjem u Delphi, C++Builder i Windows FPC/Lazarus buildovima
Opcioni lokalni adapteri za Tesseract i RapidOCR obezbeđuju otkazivo kinesko OCR prepoznavanje sa eksplicitnim putanjama izvršnog programa i modela; ugrađeni podrazumevani motor ostaje nepromenjen, a spoljni motori, Python paketi, modeli i RapidOCR-ov lokalni preduslov Arial moraju se obezbediti posebno
SetLoadedFreeTextPlainText eksplicitno zamenjuje izgled podržane učitane FreeText anotacije levoporeknatim ASCII Helvetica tekstom radi prepisa ili inkrementalnog čuvanja, dok SetLoadedAnnotationContents menja samo sačuvani sadržaj
SetLoadedFreeTextText ponovo izgrađuje učitane Unicode i rich FreeText izglede sa ugrađenim fontovima, prelamanjem, poravnanjem, neprozirnošću, rotacijom i atomskim rukovanjem prekoračenjem; SetLoadedFreeTextRichText sada ažurira i vidljivi izgled i sačuvani sadržaj
Dekodiranje barkoda učitane stranice renderuje kompletnu stranicu ili region unutar media-box-a u progresivnim ograničenim isečcima, pozajmljuje svaki originalni ili četvrtinski okrenuti raster dekoderu kojeg bira aplikacija, validira Unicode, sirove bajtove, pouzdanost i granice, vraća rotacije rastera i stranice u PDF korisnički prostor i uklanja duplikate preklapajućih sadržaja
Detekcija redigovanja sa pregledom pre primene kombinuje ugrađene PII obrasce svesne kontrolnih zbirova sa detektorima entiteta i lica kojeg bira aplikacija, preslikava svaki prihvaćeni opseg ili rasterski pravougaonik u PDF prostor stranice, svaki nalaz pokreće kao na čekanju i atomski priprema samo nalaze koji nose i eksplicitno odobrenje i identitet pregledaoca, bez trajnog upisa u sadržaj
Prepisivanje boje učitane stranice pretvara izabrane boje u DeviceGray, DeviceRGB ili DeviceCMYK, zadržava običan tekst i putanje uređajskih boja kao pretražive vektore, renderuje slike, Forms, obrasce, senčenja, transparentnost, ICC i Type 3 boju kroz jedan bes gubitka procesni prikaz slike kad je potrebno, podrazumevano čuva stranice sa spot bojama i atomski prihvata kompletnu ograničenu seriju
Strukturisani izvoz učitane stranice upisuje izabrane stranice kao UTF-8 HTML, XHTML, XML ili JSON iz jednog pristupačnog modela čitanja, dajući prednost označenom redosledu i čuvajući jezik i naslov dokumenta, naslove, liste, tabele, slike, alternative, nacrte, oznake stranica, bezbedne veze, anotacije i neosetljive kontrole obrazaca pod atomskim otkazivanjem i bajtnim budžetima
Tipizirana ekstrakcija tabela pretvara otkrivenu geometriju tabele u javnu kanoničku mrežu, spaja kompatibilne fragmente i susedne stranice, označava ponovljene zaglavlje i spojene kolone, izvodi vrednosti celih brojeva, brojeva, boolean, datuma, datum-vremena, valuta i procenata pod kontrolom lokala sa pouzdanosti i atomski upisuje ograničeni CSV ili JSON bogat metapodacima
Opcioni rukovaoci dokumentima prepoznaju XPS, EPUB i CBZ iz ispitivanog sadržaja, čuvaju redosled fiksne stranice, kičme ili prirodnih slika, pretvaraju XPS skraćene putanje i čvrste, višestopen linearne ili eliptične radijalne gradijentske četkice iz propertij elemenata u nativne PDF vektore i obrasce senčenja, popunjavaju putanje iz keširanih JPEG, PNG, TIFF ili JPEG XR ImageBrush resursa paketa sa ograničenim mapiranjem viewbox i viewport, transformacijama lokalnim za četkicu, nativnim obrascima ponovljenih ili reflektovanih slika i PNG soft-mask alfom, primenjuju čvrste, gradijentske ili slikovne vrednosti Path.OpacityMask kroz savijenu alfu ili deljene DeviceGray grupe transparentnosti, kompozituju preklapajuće Canvas potomke jednom kroz izolovane DeviceRGB grupe za Opacity i Canvas.OpacityMask, kompajliraju inline ili resursima podržana XPS VisualBrush stabla u višekratno upotrebljive Form XObject-e i ograničene tiling obrasce, preslikavaju ograničenu transformisanu i strukturisanu Canvas.Clip geometriju u ugnježđene nativne PDF putanje isecanja, čuvaju ograničene XPS Glyphs klastere, egzaktne font programe paketa i ID-jeve glifova, eksplicitna pomeranja, ofsete, RTL porekla, neprozirnost, ponovnu upotrebu resursa, Unicode ekstrakciju, transformisane HTTP, HTTPS, mail, package-page i LinkTarget navigacije kroz isecene nativne PDF anotacije, nasleđuju Canvas-obuhvaćenu navigaciju kroz potomke vizuela sa ugnježđenim premošćenjima, emituju pozicionirane TJ nizove, sprovode deljene budžete arhive, resursa, preusmeravanja, stranice, veze, URI, geometrije, sadržaja grupe, piksela, izlaza i otkazivanja i ponovo koriste jedan nepromenljiv PDF keš za atomski izvoz i renderovanje
CUD daljinsko potpisivanje (CSC) povezuje postojeći pipeline CMS provajdera sa servisima CSC API v2 kroz HTTP transport u vlasništvu aplikacije, sa OAuth osvežavanjem, otkrivanjem lanca akreditiva, egzaktnim rukovanjem SAD vezanim za heš, ograničenim uredenim serijama višestrukog potpisivanja, sinhronim ili asinhronim potpisivanjem, ograničenim ispitivanjem, vremenskim pečatima RFC 3161, otkazivanjem, SHA-256 sadržajno adresiranim ključevima idempotencije i konačnim kešom završenih operacija
Ugnježđene copy-on-write transakcije grafa objekata prave snimak svakog dodirnutog indirektnog korena jednom po savepoint-u, čuvaju adrese korena tokom vraćanja, obnavljaju alokaciju brojeva objekata, uklanjaju dopisane korene, prelivaju istoriju velikih tokova preko podešenog praga i izlažu statistike snimaka u rezidentnoj memoriji i podržanih datotekom
Višekratno upotrebljivi elementi rasporeda podržavaju merenje bez popratnih efekata, proverene podeljene zaglavlje i sopstvene nastavke prelivanja za pasuse, redove, kontejnere i prilagođeni sadržaj; deklarativne povratne pozive stranice sastavljaju pozadine, zaglavlja, sadržaj dokumenta, podnožja i prednje planove u stabilnom redosledu, dok neoganičeni izveštaji zadržavaju pripremu stranica podržanu datotekom, ograničenja pasusa, ograničenu dijagnostiku, semantičke pomoćnike i kontrolu bidi smera
Renderovanje učitane stranice izvršava obojene i neobojene tiling obrasce plus aksijalna, radijalna, free-form i lattice Gouraud, Coons patch i tensor-product patch senčenja za popune i poteze, poštuje matrice obrazaca u podrazumevanom koordinatnom sistemu roditeljskog sadržaja, podržava sve tri tiling vrste i označene korake, izoluje putanju svake ćelije, primenjuje bazne tine neobojenih obrazaca na operacije popune i poteza i ograničava dubinu rekurzivnih obrazaca, izvršavanje pločica, dekodovanje mreža i adaptivnu teselaciju za neprijateljske resurse
Produkcioni bitmap, direktni-DC, Form i replay prikaznog spisa sada dele jednog tumača sadržajnih tokena sa otkazivanjem po operatoru; kompajlirani prikazni spisi keširaju indekse operatora za replay bez skeniranja operanada i izlažu broj komandi kroz THPDFPageDisplayList.OperatorCount i THPDFDisplayListInfo.OperatorCount, dok renderer zadržava svoju kompletnu mašinu stanja grafike i resursa
Izolovane i knockout grupe transparentnosti renderuju se kroz ograničene pločice od 768 piksela sa apsertnom kontinuitetom uređajskih koordinata, alfom i soft-mask skladištenjem lokalnim za pločicu, jedno-prolaznim dekodovanjem i tokenizacijom Form-a, determinističkom obnovom stanja ugnježdenih grupa i statistikama vršnog radnog skupa dostupnim kroz GetLastTransparencyGroupTileStats
Opt-in overprint provera ploča čuva procesne ploče koje boja ne imenuje, primenjuje /OPM 1 zaštitu nulte komponente za DeviceCMYK, tretira DeviceGray kao crnu procesnu ploču i kombinuje spot tine Separation i DeviceN kroz njihove alternativne transformacije boja
Ponovljeni Type 3 glifovi ponovo koriste ograničene CharProc prikazne spise ključane fontom, glifom, linearnom matricom i stanjem boje, izbegavajući ponovno dekodovanje i tokenizaciju tokova uz očuvano prevođenje, isecanje, ugnježđene resurse, pravila boje d0/d1 i limite rekurzije
Progresivne sesije učitane stranice dekoduju podobne progresivne DCTDecode slike jednim skenom po ograničenoj nastavku za ranije vidljive preglede, izlažu brojače skenova i slika kroz THPDFLoadedPageRenderSession i obezbeđuju otkaziva THPDFProgressiveJPEGScanEvent obaveštenja uz zadržavanje rezervnog puta celokupne slike za nepodržano stanje boje ili neuspehe dekodovanja
Progresivne sesije regiona alociraju samo zahtevani prozor u korisničkom prostoru, čuvaju stanje grafike i teksta kroz ograničene nastavke, koriste konzervativne granice prikaznog spisa da iseku nespovezane putanje, tekst, slike, Forms i senčenja i izlažu brojače vidljivih i isečenih boja za telemetriju
Dekodovanje JPEG 2000 validira pojedinačne codestream pločice, kombinuje rekonstrukciju izvornog regiona i rezolucije od interesa i konkurentno dekoduje nezavisne vidljive pločice sa privatnim stanjem kodeka, otkazivanjem, CPU i korisničkim granicama radnika, determinističkom kompozicijom i automatskim rezervnim putem budžeta vršne memorije
Keš pogoci učitanih slika sada vraćaju nepromenljive reference-brojačem brojane dekodovane bitmap ručke koje preživljavaju isterivanje i uništenje dokumenta, podržavaju direktno crtanje bezbedno za niti, čuvaju izolovane promenljive kopije na zahtev i uklanjaju ponovljena kopiranja piksela iz toplih putanja renderera
Paralelno renderovanje učitanih stranica sada preklapa kompajliranje prikaznog spisa sa reprodukcijom kroz dinamički balansirane radnike, kompajlira nespovezane stranice van brave keša, počinje izlaz pre nego što je kompletan ulazni skup kompajliran, čuva redosled ulaza i izveštava o konkurenciji stegova, upotrebi keša, završenicima i latenciji kroz THPDFParallelRenderPipelineInfo; RenderLoadedPagesParallelOrdered dodaje povratne pozive pozivaocue niti sa ograničenim redom završenih bitmapa, povratnim pritiskom urenog prozora, kooperativnim otkazivanjem povratnih poziva i pozajmljenim vekovima bitmapa za poslove čiji kompletan rasterski izlaz ne sme ostati rezidentan
Oba paralelna API-ja stranice sada koriste procesno-rašireni rasporedivač vršne memorije da smanje zahtevane radnike iz konzervativnih procena stranica, rezervišu svaku traženu stranicu, pošteno odlažu poslove pod pritiskom i izveštavaju o konkurenciji izvedenoj iz memorije, vršnoj rezervisanoj veličini, prijemima, odlaganjima i vremenu čekanja; uređeni povratni pozivi drže izlazne rezervacije aktivnim do otpuštanja bitmape tako da se zakazani rastri i aktivni radnici dele jedan budžet
RenderLoadedPageTilesParallel i RenderLoadedPageBandsParallel provlače jednu stranicu kroz izolovane radnike sa isporukom pločica po redovima ili traka odozgo nadole, pozajljenim vekovima bitmapa, kooperativnim otkazivanjem, memorijom u letu pod kontrolom pozivaoca i ograničenim nepromenljivim kešom za sekvence tokena Type 3 glifova i polutonske pragovske ekrane
SaveLoadedPageToPng, SaveLoadedPageToPngStream, SaveLoadedPagesToTiffBanded i SaveLoadedPagesToTiffStreamBanded hrane isti render traka u strimovane PNG ili TIFF enkodere, emitujući kompresovane redove bez kompletnog frejm-bafera i izveštavajući o traci, redu, radniku, memoriji, izlazu, vremenu i otkazivanju
Priključivi backendi za render učitane stranice primaju kompajlirane prikazne spise i pristup resursima dokumenta, najavljuju mogućnosti konkurencije i upravljanja bojama, učestvuju u sinhronom i paralelnom renderovanju, poništavaju zastarele rasterske keševe kad budu zamenjeni i izlažu deterministički neuspeh, rezervni put i statistike izvršavanja; ugrađeni nativni GDI backend čuva postojeći izlaz bez prisvajanja ubrzanja uređaja
Priprema učitanih stranica unapred sada kompajlira i renderuje van brave keša sa kooperativnim kontrolnim tačkama otkazivanja, odmah ustupa mesto renderovanju stranice u prvom planu i izveštava o napretku zahteva, upotrebi keša, neuspesima, broju preotimanja i latenciji otkazivanja kroz THPDFLoadedPagePrefetchInfo
Validacija grafa segmenata JBIG2 sada proverava i tokove slika i globalne tokove pre nativnog ili spoljnog dekodovanja, odbija neispravne zavisnosti i nevalidno ugrađeno organizovanje unutar eksplicitnih budžeta segmenata, ivica, dubine i simbola i sprečava nevalidne deljene rečnike da uđu u keš globala
Serialno JBIG2 kodovanje sada obučava simbole kroz kompletan skup stranica kroz spoljni statički backend, deli jedan globalni rečnik između svakog image XObject-a, sabija egzaktne duplikate stranica, vraća se na nativni akumulator kad je to dozvoljeno i objavljuje telemetriju backend-a, veličine, simbola i budžeta
ICC-bazirano vektorsko i slikovno renderovanje primenjuje kompletne izvorne, proof, izlazne i sRGB pipelines boja sa biranim rendering intent-om i kompenzacijom crne tačke, dok nitno-bezbedan ograničen LRU keš ponovo koristi transformacije kroz instance dokumenata i renderera
Rekompresija učitanih slika i downsampling prema efektivnom DPI čuvaju kalibrisane definicije izlaza, dok ravnanje transparentnosti emituje kalibrisan RGB i čuva stranice sa Separation ili DeviceN bojama kao vektorski sadržaj umesto da odbaci identitet spot boja
Izračunavanje i validacija učitanih AcroForm obrazaca mogu koristiti ograničeni tipizirani podskup izraza sa boolean vrednostima, brojevima, stringovima, null, undefined, nizovima, uslovnim i short-circuit operatorima, determinističkim UTC datumima i dozvoljenim pomoćnicima za stringove, nizove, konverziju i Math, dok nepodržano aktivno skriptovanje otkazuje zatvaranjem bez pokretanja JavaScript motora
Opcioni QuickJS runtime veziv izvršava šire JavaScript aplikacijske kontrole kroz statičke objekte ili ABI-neutralni most DLL na Win32 i Win64, sa podešenim limitima memorije, steka, skripte, vremena i prekida plus eksplicitnom semantikom statusa i oporavka
Skriptovanje XFA obrazaca proširuje ograničeni FormCalc uslovnom logikom, ponovljenim numeričkim nizovima i validiranim povratnim pozivima instanci, dok eksplicitno uključena QuickJS peskovnica dodaje kompletnu kontrolu toka i nativne tipizirane nizove bez izlaganja objekata datoteke, procesa, pregledača ili mreže; interaktivni dinamički XFA runtime dodaje fokus neutralan za domaćina, Unicode uređivanje, hit testiranje, validaciju i izračunavanje svesno instanci, atomsko vraćanje i ograničeno preusmeravanje bez ravnanja
SanitiseLoadedDocument primenjuje politike samo-JavaScript, aktivnog-sadržaja ili stroge nedoverljivog dokumenta na učitane PDF-ove, uklanja nedostižne objekte sadržaja, sabija žive brojeve objekata i bezbedno prepisuje na mestu kroz atomsku zamenu datoteke
Preflight JSON, HTML i nalazi u stilu veraPDF izlažu stabilne identifikatore pravila sa imenskim prostorima i strukturisane PDF lokacije sa logičkim obuhvatom, putanjom, ključem i egzaktnim koordinatama objekta, stranice ili bajta kad su dostupne, dok tekstualna i CSV kompatibilnost ostaju nepromenjeni
Višekratno upotrebljive politike validacije sada kombinuju strukturni preflight sa strogim ili WTPDF zahtevima prijema, izvlače kanoničke deklaracije i metapodatke tvrdnji, provlače uredene serije datoteka kroz ograničene limite radnika i reda, čuvaju greške svesne izvora i nude režime inspect, add-missing i synchronize za popravku XMP nezavisno od strukturne popravke PDF-a
Prijem Factur-X i ZUGFeRD sada unakrsno proverava MIME tip primarnog priloga fakture i imena FileSpec u odnosu na EmbeddedFiles i Catalog AF registracije, izlaže dekodovani MIME tip i URI imenskog prostora XMP i odbija nepodudarne tipove XMP dokumenata ili imenske prostore ekstenzija
Ugrađena validacija poslovnih pravila e-faktura izvršava sve Schematron provere specifične za profil sa pregledanom XPath 2 kompatibilnošću, spoljnim bazama kodova, stabilnim identifikatorima pravila, eksplicitnim greškama evaluacije, bezbednim XML parsiranjem i objedinjenim presudama koje otkazuju zatvaranjem
Rasterska arhivska konverzija učitanog dokumenta u PDF/A-4 ponovo izgrađuje vidljivi sadržaj stranica kao ograničene sRGB slike u novo validiranom PDF/A-4 dokumentu, normalizujući fontove, transparentnost i nacrtane boje kroz strog nativni renderer; file API priprema i atomski objavljuje rezultat, dok izveštaj identifikuje uklonjene anotacije, obrasce i priloge. Ovaj opt-in vizuelni arhivski put odbacuje originalni vektorski tekst, tekst koji se može pretraživati, potpise i interaktivni sadržaj
PDF 2.0 izlaz sada podržava identifikaciju i validaciju za PDF/A-4, PDF/A-4e, PDF/A-4f, PDF/UA-2, PDF/X-6, PDF/X-6p i PDF/X-6n, uključujući XMP svesan revizija razrešen po URI imenskog prostora, transakcionu PDF/A-4 popravku za bezbedno normalizovanje zaglavlja, trailera, metapodataka, Catalog-a i prezentacionih normalizacija sa bajt-ekzaktnim vraćanjem i očuvanim sadržajem stranica, birane skupove pravila PDF/X-6 prema ISO 15930-9:2020 i razrešenim errata, stvarne provere ICC zaglavlja i kanala, izlazne namere dokumenta i stranice, stvarno naslikanu boju i overprint kroz nizove sadržaja, ugnježđene forme, tiling i senčenja obrasce, slike, maske slika, senčenja, Type 3 glifove, soft maske i izglede anotacija, nasleđeno stanje grafike i transparentnosti, objedinjeno kompozitovanje popune-i-poteza, CIDFont i CMap odnose, ograničen rad dekodovanih bajtova i sadržajnih tokena, strukturne elemente svesne imenskih prostora, provere metapodataka dokumenta i stringova, opcionog sadržaja, fizičko vlasništvo anotacija, semantiku obrazaca, strukturna odredišta, nacrte, ugnježđene oznake stranica, autorstvo pridruženih datoteka, nasleđene produkcijske okvire stranica, dijagnostiku svesnu klauzula sa poreklom skupa pravila, automatsku validaciju generisanja koja otkazuje zatvaranjem i transakcionu PDF/UA-2 popravku za imenske prostore, atribute, liste, tabele, Ruby, Warichu, izgovor, alternativni tekst, nasleđivanje jezika, redosled naslova i Artifact tagove
Tagged PDF 2.0 tabele dobijaju ograničeno širenje mreže, provere preseka i grupa redova, asocijaciju zaglavlja lokalnu za tabelu i detekciju ciklusa, dok liste dobijaju kompletne provere numeracije i lanaca nastavka; egzaktni Ruby i Warichu redosledi se sprovode, a aplikacije mogu upisivati hintove izgovora po elementu ili uredene ugrađene PLS leksikone kroz SetStructurePronunciation i AddPronunciationLexicon
Ciklus v2.119.32-51 dodao je oblikovanje arapskog / persijskog / urdu pisma na strani generatora (obavezna ligatura LAM-ALEF, arapski prezentacioni oblici Forms-A 9 slova), potpuno funkcionalan OpenType GSUB mehanizam supstitucije koji pokriva svaki LookupType 1-8 sa Script / LangSys selekcijom i zatvaranjem TTF subsetera za zamenske glifove, podršku za XFA (XML Forms Architecture) kontejnere (AddXFAPacket / ClearXFAPackets / XFAPacketCount), AcroForm /AA /K + /F + /V + /C familiju okidača polja obrasca, multi-Unicode /DR registraciju fontova preko RegisterAcroFormFont, postavljače atributa pristupačnosti strukturnih elemenata (/Lang / /E / /T) sa Table 333 enumom standardnih tipova struktura i tipiziranim preopterećenjem AddStructureElement, kao i svojstva sekvence označenog sadržaja na BeginTaggedContent
Ciklus v2.119.52-68 zaokružio je Phase 8 automatsku liniju za oblikovanje i proširio pokrivenost pisama: Arabic Extended-A (uključujući U+0750-077F Arabic Supplement i U+08A0-08FF Arabic Extended-A) i Persian / Urdu Form-B prošireni su na punu U+0672-06D5 tabelu klasa spajanja uz 26 novih Forms-A mapiranja, sa post-pass spajanjem za LAM-ALEF, YEH-HAMZA + parove samoglasnika (8 ligatura u U+FBEA-FBFB), samostalnu ligaturu Allah (U+FDF2) i frazu Bismillah od 22 kodne tačke (U+FDFD); novo opt-in svojstvo ShapingFeatures + THPDFShapingFeature enum (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) omogućava generatoru da automatski emituje GSUB-vođene zamene rlig / liga / clig / rclt specifične za font, pri čemu se ista linija primenjuje na Latin Standard Ligatures (ff / fi / fl / ffi / ffl / ſt / st preko U+FB00-FB06) i Devanagari indijsko preraspoređivanje slogova (Repha + pre-base I-matra); nove metode mogućnosti oblikovanja za sirijski (GetSyriacJoiningClass / GetSyriacPosition), mongolski (GetMongolianJoiningClass / GetMongolianPosition) i Devanagari (GetDevanagariCategory / ApplyDevanagariReorder) omogućavaju pozivaocima da vode ne-arapska složena pisma kroz isti GSUB mehanizam; GetCodepointAdvance izlaže keširanu /W em-frakciju za proračune prelamanja, a AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID omogućavaju generatoru da emituje bilo koji GSUB zamenski GID (oblici Devanagari klastera, stilističke alternative, CJK sekvence varijacija) kroz kodne tačke u Private-Use-Area sa potpunom integracijom /CIDToGIDMap + /ToUnicode + /W; kumulativni ToUnicode CMap sada isporučuje 35 unosa za povratno mapiranje ligatura (8 LAM-ALEF + 18 iz familije YEH-HAMZA + 1 Allah + 1 Bismillah + 7 latiničnih) tako da kopiranje i lepljenje u čitaču daje izvorne kodne tačke; skeleti dokumentacije za ChangeLog sada se isporučuju na 11 jezika (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) sa interfejsom za biranje jezika; limit zadržavanja ChangeLog-a povećan je sa 250 na 500 verzijskih odeljaka
Ciklus v2.152-v2.190 izgradio je kompletan OpenType GPOS mehanizam za pozicioniranje i proširio pokrivenost složenih pisama; opt-in opcije oblikovanja sada primenjuju sopstveni kerning fonta (parni, kontekstualni i desno-nalevo), postavljanje kombinovanih oznaka (oznaka-na-bazu, oznaka-na-oznaku i oznaka-na-ligaturu po komponenti), sidra za kurzivno povezivanje i vertikalni kerning za vertikalni tekst, sve zapisano kao standardni PDF tekstualni operatori tako da svaki čitač prikazuje isti rezultat; oblikovanje na strani generatora sada pokriva arapski (uključujući Supplement, Extended-A i Extended-B blokove), sirijski, mongolski, N'Ko, Adlam, Hanifi Rohingya, tibetansko slaganje suglasnika, Devanagari i druga indijska pisma kroz lanac Indijskih funkcija fonta, javanski, redosled oznaka u tajlandskom i lao pismu, redosled samoglasnika u hebrejskom, kmerski, mijanmarski, Tai Viet i Meetei Mayek; familija opcionih OpenType tipografskih funkcija – standardne, diskrecione i istorijske ligature, mala velika slova, oldstyle / lining / proporcionalne / tabularne cifre, eksponenti, indeksi, redni brojevi, razlomci, naučni indeksi, brojioci, imenioci, stilističke i kontekstualne alternative, lokalizovane oblike, oblike osetljive na velika/mala slova, precrtana nula i vertikalne alternative – mogu se primeniti automatski tokom ispisa teksta; kopiranje, lepljenje i pretraga teksta vraćaju originalne karaktere u svim oblikovanim izlazima, uključujući ligature i ulančane zamene funkcija; izlaz fontova je takođe postao manji: ugrađeni programi fontova su uvek Flate-kompresovani, font korišćen na više stranica ugrađuje se jednom po dokumentu, oznake podskupa se generišu deterministički za ponovljiv izlaz, a opcioni kompaktni režim ispisuje običan ASCII tekst sa standardnim fontovima kao neugrađeni WinAnsi tekst