HotPDF Poznámky k vydaniu
História verzií používateľsky viditeľných funkcií HotPDF, opráv, aktualizácií kompatibility a zmien dokumentácie
Note: Only the latest 500 change records are kept
Last release
- Latest version: 2.748.6; Release date: 2026-09-07
Version 2.748.6
Fixed
- Opravený cross-reference subsection, ktorý deklaruje viac entries, než má tabuľka: prebehol celý deklarovaný počet bez zostávajúcich dát na čítanie, takže odmietnutie poškodeného 40-bajtového súboru trvalo desiatky sekúnd
- Opravené strácanie všetkých už vyrobených výsledkov v job runneri pri chybe operácie a strácanie picture objektu v HTML importe, keď sa nepodarilo vytvoriť stream okolo neho
Version 2.748.5
Fixed
- Opravené otváranie PKCS#12 súborov s ne-ASCII heslom: heslo je UTF-8 byte string, ale rozširovalo sa po jednom bajte namiesto dekódovania, takže derivovaný kľúč bol zlý pre každý znak mimo ASCII. Súbory chránené modernou PBES2 schémou neboli ovplyvnené, preto sa tie dva správali odlišne
- Opravené access violationy namiesto vlastnej chyby pri signature batch validatorovi a revocation evidence cache, keď boli vytvorené s neplatnou option, pretože destructor bežal skôr, než boli vytvorené členy, ktoré uvoľňuje
- Opravený pád evidence download tasku v destruktore, keď boli jeho argumenty odmietnuté, keďže kontroly bežali skôr, než bol vytvorený samotný thread
- Opravené kódovanie algorithm identifieru v cloud-signature provideri, keď druhý arc presahuje 39; malformed identifier teraz hádže vlastnú chybu providera namiesto conversion erroru
- Certificate a signature kontajnery teraz odmietajú nested element, ktorý deklaruje dĺžku siahajúcu za element, ktorý ho obsahuje, takže to, čo sa validuje, a to, čo pokrýva signature, už nemôžu byť odlišné
- Private key hodnoty sa po RSA podpise vymazávajú z pamäte namiesto toho, aby zostali na heape pre ďalšiu alokáciu
Version 2.748.4
Fixed
- Opravené načítanie Type 1 fontov, ktoré čítalo všetky vlastnosti z prvého riadku font programu: token list sa dopĺňal bez vyprázdnenia, takže version, family a weight reťazce, stem hints aj charstring key length sa brali z neaktuálnych tokenov. Type 1 fonty teraz reportujú vlastné metadata
- Opravené uchovávanie charstring key length ako pointera do už uvoľneného reťazca a používanie bez range checku; teraz sa uchováva ako hodnota a clampuje na rozsah, ktorý formát dovoľuje
- Opravené padanie non-embedded fontov vždy na systémový default face: požadované face name sa kopírovalo do wide-character font záznamu bajt po bajte, takže sa žiadna nainštalovaná family nikdy nezhodla
- Opravené parsowanie embedded TrueType a OpenType fontov, ktoré čítalo za koniec skrátenej font programy pri dekódovaní glyph outlines, composite glyph argumentov a CFF tabuľky OpenType kontajnera; malformed character map už nežiada negatívny glyph array
- Opravený overflow deklarovaných object numberov v cross-reference tabuľkách a streamoch: entry, ktorá tvrdí číslo blízko limitu integeru, sa wrapla na negatívny index a zapisovala sa mimo tabuľky, a deklarovaný object count alebo
/Sizeoveľa väčší, než súbor môže obsahovať, nastavoval veľkosť arrayov loadera len podľa tejto deklarácie
Version 2.748.3
Fixed
- Opravené odmietanie platného vstupu v Data Matrix: veľkosť symbolu sa odhadovala polovičením počtu číslic, ale code word zdieľajú len susedné číslice, takže text ako
1a2a3avybral symbol príliš malý na vlastné dáta a encoding zlyhal - Opravené dekódovanie štvorbajtových UTF-8 znakov v XFDF, napríklad emoji, na nesprávny surrogate pair; nerozpoznaný bajt už nepohltí tri znaky, ktoré nasledujú
- Enhanced-metafile region records teraz ohraničujú počet rectangleov veľkosťou recordu namiesto dôvery počtu v region headeri, ktorý mohol čítať ďaleko za record
- PNG obrázky, ktorých deklarovaná šírka krát výška presahuje adresovateľný rozsah, sa odmietajú už v headeri namiesto alokácie pixel bufferu s negatívnou dĺžkou
- High-quality image resampling teraz reportuje out-of-range request namiesto overflowu veľkosti svojho intermediate bufferu
- WebP meta prefix obrázok, ktorý tvrdí viac entropy skupín, než má pixelov, sa odmieta namiesto alokácie stoviek megabajtov prefix tabuliek z pár stoviek bajtov vstupu
- Opravené leaky na failure pathoch Aztec encodingu, WebP bitmap dekódovania a object-stream decode worker poolu, kde pri chybe v neskoršom kroku ostal opustený čiastočne postavený objekt
Version 2.748.2
Fixed
- Opravené zhadzovanie posledných code word bitov v QR Code symboloch: module placement walk preskočil krajný ľavý stĺpec, takže koniec posledného error correction bloku sa nikdy nezapisal do symbolu
- Opravené plnenie celej zvyšnej časti data bloku nulovými bitmi QR terminátorom, čo nechalo žiadne miesto pre 0xEC / 0x11 pad code words, ktoré vyžaduje ISO/IEC 18004; symbol verzie 1 niesol namiesto toho šesť nulových code words
- Nový test číta vygenerovaný symbol späť z jeho modulov, takže data blok, pad code words, error correction blok, maska aj placement sa kontrolujú proti štandardu, nie proti výstupu samotného encoderu
Version 2.748.1
Fixed
- Opravené zasekávanie troch parserov na malformed vstupe namiesto nahlásenia: object parser na
>>v array alebo]v dictionary, CMap reader na osamelú zátvorku alebo zloženú zátvorku a XFDF reader na konštrukciu bez tag name (napríklad document type declaration) alebo osamelý bajt medzi atribútmi. Každý z nich prestal posúvať kurzor, takže jeden neočakávaný bajt spravil z parsovania nekonečnú smyčku - Opravené čítanie CDATA sekcií v XFDF ako markupu: ich obsah sa teraz berie ako text elementu a section marker sa meria korektne namiesto pohlcenia prvého znaku
- Opravený overflow size checku pri WebP chunk length blízko 2 GB, takže kópia payloadu čítala za koniec file bufferu; chunk lengthy sa teraz kontrolujú range checkom v 64-bit aritmetike
- Opravené uvoľnenie chunk bufferu pri PNG chunk length 0xFFFFFFFF, kým chunk stále reportoval deklarovanú dĺžku, čo nechalo neskoršie čítania ukazovať na uvoľnenú pamäť; pridlhé chunky sa odmietajú
- Opravený overflow výpočtu veľkosti row bufferu pri CCITT fax dekódovaní pre veľmi veľké deklarované page geometrie, ktorý mohol zapisovať za buffer; row store je teraz ohraničený a dekódovanie sa pri limite čisto zastaví
- Opravené čítanie jedného bajtu za koncom scan line pri CCITT encoderi pre šírky, ktoré sú násobkom 8
- Opravené čítanie enhanced-metafile comment records cez 32-bit skrátený pointer na 64-bit buildoch, ktoré pre každý EMF s GDI commentom čítalo nesúvisiacu adresu
- Opravené publikovanie neinicializovanej pamäte ako chvosta colour table pri 8-bit obrázkoch s menej než 256 palette entries; tabuľka teraz deklaruje skutočný počet entries
- Opravené vyčerpanie stacku hlboko nested indefinite-length BER štruktúrami pri parsovaní signature alebo certificate kontajnera; nesting nad 128 úrovní sa odmieta
Version 2.748.0
Fixed
- Opravená error correction všetkých 2D barcodeov, ktoré knižnica kreslí: QR Code, Data Matrix, PDF417 a Aztec stavali generator polynomial od constant termu nahor, ale delili ním, akoby prvý term bol vpredu, takže každý symbol niesol check words, ktoré žiadny conforming reader neprijme. Check words teraz sedia na worked examples z ISO/IEC 18004, ISO/IEC 16022 a ISO/IEC 15438
- Opravené strácanie payloadu v Aztec symboloch: encoder delí code word array in place a caller emituje ten istý array, takže message words boli prepísané delením a symbol neniesol ani dáta, ani platný mode message
- Opravený začiatok koreňov generator polynomialu Data Matrix o jednu mocninu nižšie, čo vyprodukovalo iný polynomiál, než predpisuje ISO/IEC 16022 Annex E
- Opravený Data Matrix finder pattern: plná L je teraz ľavý stĺpec a spodný riadok a striedavý clock track je horný riadok a pravý stĺpec, každý začína tmavo v rohu, ktorý zdieľa s L. Tieto dva boli vymenené, takže readery nedokázali určiť orientáciu symbolu
Version 2.747.4
Fixed
- Opravené písanie PDF čísel pri editácii načítaných dokumentov podľa systémového desatinného oddeľovača: spájanie strán, rectangle redaction, textové a image stamps, kompozitné vodoznakové tvary a ellipse appearances teraz vždy vypisujú bodku, takže dokumenty upravené na locale s desatinnou čiarkou (napríklad nemecký alebo francúzsky Windows) už neobsahujú content streams, ktoré prehliadače odmietajú
- Opravené načítanie Type 1 fontov závislé od systémového locale: FontMatrix, BlueValues, stem hints a charstring reálne čísla sa parsujú ako PostScript čísla s bodkou, takže PFB fonty si na systémoch s desatinnou čiarkou zachovajú metriku a outlines namiesto tichého rozpadu
- Opravené parsowanie font size a farby default appearance (
/DA), HTML width asizeatribútov, FormCalc výsledkov a job JSON čísel podľa process locale; teraz v oboch smeroch používajú invariantný formát - Opravené písanie bar rectangleov vstavanou barcode kresbou cez locale-závislý formát, čo produkovalo neplatný content stream na systéme s desatinnou čiarkou
- Free Pascal buildy teraz parsujú a formátujú content stream operandy, text-extraction metriky a JavaScript čísla s invariantným formátom, zosúladené s Delphi buildami, namiesto fallbacku na locale-závislú konverziu
- Number writer už neprepisuje desatinný oddeľovač globálnych format settings hostiteľskej aplikácie pri každom volaní, čo menilo spôsob, akým zostatok programu formátuje vlastné čísla, a bolo to nebezpečné, keď viac threadov naraz produkovalo dokumenty
Version 2.747.3
Fixed
- Opravené písanie PDF čísel pri editácii načítaných dokumentov podľa systémového desatinného oddeľovača: spájanie strán, rectangle redaction, textové a image stamps, kompozitné vodoznakové tvary a ellipse appearances teraz vždy vypisujú bodku, takže dokumenty upravené na locale s desatinnou čiarkou (napríklad nemecký alebo francúzsky Windows) už neobsahujú content streams, ktoré prehliadače odmietajú
- Opravené načítanie Type 1 fontov závislé od systémového locale: FontMatrix, BlueValues, stem hints a charstring reálne čísla sa parsujú ako PostScript čísla s bodkou, takže PFB fonty si na systémoch s desatinnou čiarkou zachovajú metriku a outlines namiesto tichého rozpadu
- Opravené parsowanie font size a farby default appearance (
/DA), HTMLfont sizeatribútov, FormCalc výsledkov a job JSON čísel podľa process locale; teraz v oboch smeroch používajú invariantný formát - Free Pascal buildy teraz parsujú a formátujú content stream operandy, text-extraction metriky a JavaScript čísla s invariantným formátom, zosúladené s Delphi buildami, namiesto fallbacku na locale-závislú konverziu
Version 2.747.2
Added
- Pridaná Free Pascal Win32 podpora: Lazarus package sa teraz builduje pre
i386-win32ajx86_64-win64cez dedikované build entry pointy, smoke suity akceptujú architecture argument a boli opravené problémy s 32-bitovým kompilátorom a linkovaním C symbolov; tvorba PDF, načítavanie, Flate kompresia, AES šifrovanie a práca s CBZ dokumentmi sú pokryté na oboch targetoch
Version 2.747.1
Fixed
- Opravený rotated-mask retry vstavaného barcode dekodéra, ktorý zanechával staré bajty v nedotknutých bunkách otočenej masky, čo vytváralo fantómový atrament a robilo štvrťotočené Code 39 symboly nečitateľnými; otočený buffer sa teraz explicitne vynuluje, takže otočené Code 39 fotografie a skeny sa dekódujú cez rotation retry
Version 2.747.0
Added
- Pridaný WebP image import:
AddImageFromFileteraz akceptuje súbory.webpcez vstavaný bezstratový (VP8L) dekodér implementujúci RFC 9649 — kanonické prefix kódy, spatial meta prefix kódy, LZ77 backward referencie s neighborhood distance map, color cache a všetky štyri inverse transformácie (predictor, color, subtract-green, color indexing s pixel bundling); lossy VP8 framy sa odmietajú so zrozumiteľnou hláškou
Version 2.746.0
Added
- Vstavaný barcode dekodér teraz číta QR symboly v ľubovoľnej z ôsmich orientácií, v akej môže prísť fotografovaná alebo skenovaná stránka: finder patterny identifikujú chýbajúci roh a vzorkovaná module matica sa pred dekódovaním otočí alebo zrkadlí do očakávaného layoutu, takže štvrťotočené a zrkadlené snímky sa načítajú bez pre-processing
Version 2.745.0
Added
- Pridané vyhodnotenie kvalifikovaných certifikátov eIDAS pre načítané signatúry: GetLoadedSignatureQCStatements reportuje QCStatements podľa ETSI EN 319 412-5 certifikátu podpisujúceho — hodnoty QcCompliance, QcSSCD a QcType, menu/čiastku/exponent QcLimitValue a lokácie PDS — plus PSD2 role platiteľa a príjemcu z TS 119 495 a spúšťa heuristic kvalifikovanej signatúry, keď sú asertované QcCompliance aj QcSSCD (rozhodnutie o QTSP dôvere ostáva na volajúcom)
Version 2.744.0
Added
- Pridaná N-up imposition pre načítané dokumenty: ComposeLoadedPagesNUp presádza každú stránku na grid-composed hárky zdrojového formátu papiera (2-up, 4-up, 6-up, až 16x16) pre tlačovo pripravený výstup, vstrebáva
/Rotatekaždej stránky do placement matice, zdieľa page resource s composed formou a voliteľne kreslí hairline rámy buniek s nastaviteľným gutterom
Version 2.743.0
Added
- FlattenLoadedAnnotations teraz zapečie anotácie bez appearance streamu namiesto ich tichého preskočenia: widgety si najprv dajú vygenerovať field appearance z hodnoty poľa (prípad
/NeedAppearancesbežný pri formulároch tlačených z prehliadača), takže zadaná hodnota sa prenesie aj do obsahu stránky - Markup anotácie bez
/APdostanú syntetizovaný appearance kreslený z ich vlastných vlastností — FreeText a Stamp text so štýlovaním/DAa zarovnávaním/Q, tvary Square a Circle s farbou/C//ICa šírkou/BS, ťahy Line a Ink a quad markup Highlight / Underline / StrikeOut / Squiggly rešpektujúci/QuadPointsa opacity/CA - Skryté anotácie (hidden flag
/F) zostávajú anotáciami, keď nemajú appearance, pretože zapečenie neviditeľnej poznámky by ju urobilo viditeľnou
Version 2.742.0
Fixed
- Opravené zlyhávajúce Free Pascal package buildy od 2.738.0: deklarácie členov LTV evidence a seed-value boli umiestnené vo vnútri Delphi-only podmieneného bloku, kým ich implementácie boli nepodmienené, takže Free Pascal package sa už nekompiloval; implementácie teraz nesú tú istú podmienku a package sa zasa builduje
Version 2.742.0
Added
- HTML import teraz resolvuje tabuľky na plnej occupancy mrie, takže bunky
rowspanacolspansi správne nárokujú svoje stĺpce a neskoršie riadky obsadené sloty preskočia namiesto posúvania doľava - Výšky riadkov tabuliek vychádzajú z lámania textu bunky v jej vlastnom fonte namiesto odhadu počtom znakov, takže zmiešaný úzky a široký obsah už neprodukuje pretekané alebo nadsadené bunky
- Šírky stĺpcov rešpektujú width hinty
<col>a per-cell width atribúty a hlavičkové riadky označené<thead>(alebo úvodné riadky samých<th>) sa opakujú na vrchu každej pokračujúcej stránky, keď tabuľka prechádza cez zlom stránky - Skupina rowspan zostáva celá aj cez zlomy stránok: riadky spojené spanujúcou bunkou sa presunú na ďalšiu stránku spolu, takže spanujúca bunka sa nikdy nepreřízne
Version 2.741.0
Fixed
- Opravené ukončovanie Free Pascal buildov namiesto nahlásenia chyby, keď dokument potreboval jeden z codecov, ktoré tieto buildy nelinkujú: otvorenie TIFF, dekódovanie obrázka JPEG 2000 alebo JBIG2, čítanie progressive alebo reduced-scale JPEG, aplikovanie ICC farebnej transformácie alebo požiadavka na Zopfli rekompresiu ukončili proces rovno
- Každá z týchto operácií teraz zlyhá spôsobom, aký už jej volajúci očakáva, takže dokument, ktorý niektorú používa, sa načíta s preskočenou touto vlastnosťou namiesto zrútenia aplikácie
Version 2.741.0
Added
- Pridaná extrakcia textu v poradí štruktúry: ExtractLoadedPageStructureText prechádza stromom štruktúry dokumentu v authoring poradí (ISO 32000-1 14.8.4) a spája marked-content runy stránky podľa MCID, takže tagované dokumenty ako vládne formuláre a accessible publikácie extrahujú svoje autoritatívne poradie čítania namiesto geometrickej domnienky; glyfy, ktoré strom nikdy nenárokuje, padnú do geometrickej prípony a počítajú sa do untagged reportu
Version 2.740.0
Fixed
- Opravené strácanie priehľadnosti farebných glyfov vo Free Pascal buildoch: vložené farebné bitmapy sa čítali cez cestu, ktorá zahodí alpha kanál, takže každý emoji alebo glyf farebného fontu sa kreslil ako nepriehľadný obdĺžnik. Bitmapy si teraz zachovávajú per-pixel alpha
Version 2.740.0
Fixed
- Zapnutá key agreement P-384 ECDH: finálne podmienené odčítanie CIOS Montgomery multiplikácie porovnávalo proti P limb plus borrow, čo sa na all-ones high limboch prvočísel P-384 / P-521 pretočilo na nulu a potichu zle požičiavalo; porovnanie teraz detekuje borrow bez pretečujúceho sčítania a P-384 shared secret sedí s referenčnými vektormi OpenSSL bajt po bajte
Version 2.739.0
Added
- Free Pascal buildy teraz šifrujú aj dešifrujú dokumenty: AES entry pointy obsluhuje vlastná FIPS-197 implementácia knižnice namiesto hlásenia chyby unsupported-operation, takže súbory chránené AES-128 a AES-256 sa tam dajú vytvoriť aj otvoriť
- AES-GCM šifrovanie a dešifrovanie, vrátane streaming contextu použitého pre veľké payloady, je dostupné vo Free Pascal buildoch
- Free Pascal smoke test teraz kontroluje cipher oproti FIPS-197 known answer, vyskúša PKCS#7 a GCM round trip a vytvorí a znovu načíta dokument chránený AES-256 s odmietnutím nesprávneho hesla
Version 2.739.0
Added
- Pridaná CSS2.1 typografia odsekov do HTML5 import engine: text-align (s legacy atribútom align a mapovaním center tagu), letter-spacing a word-spacing cez PDF operátory Tc / word-space, text-indent pre odsadenie prvého riadku a pravidlá text-decoration underline / line-through, takže existujúce web a email HTML importy si zachovajú centrované nadpisy, odsadenie a podčiarknutia
- Rozšírený vstavaný QR dekodér nad verziu 1: verzia symbolu sa teraz odvodzuje z finder geometrie cez deliteľnosť mrie (verzie 2-40 s čistou module mriekou sa dekódujú), cap dĺžky byte mode nasleduje kapacitu ISO/IEC 18004 Table 7 na verziu a function-module mapa pokrýva alignment patterny a version information bloky pre vyššie symboly
Version 2.738.0
Added
- Free Pascal buildy teraz natívne komprimujú aj dekomprimujú dokumenty: deflate codec dodáva vstavaný backend nad Pascal zlib implementáciou, ktorú Free Pascal dodáva, takže obsah FlateDecode už nereportuje chybu unsupported-operation
- Komprimované dokumenty sa dajú pod Free Pascal vytvoriť a znovu načítať s defaultným kompresným nastavením a cross-reference streamy, object streamy, embedded files aj komprimovaný obsah stránok sa tam všetky dekódujú
- Backend pokrýva wrappery zlib aj raw deflate, gzip wrapper a automatickú detekciu headerov, takže SVG importy a decompression fallback s viacerými veľkosťami okna sa správajú ako pod Delphi
- Free Pascal smoke test teraz verifikuje codec cez wrapper a checksum self test plus round trip komprimovaného dokumentu
Version 2.738.0
Added
- Pridané dopĺňanie chainu cez AIA caIssuers: HPDFFetchAIAIntermediates prejde endpointy access-method 1.3.6.1.5.5.7.48.2 sady certifikátov CMS cez transport volajúceho (bare DER aj PEM body sa dekódujú) a validačná voľba FetchMissingIntermediates nakrámi získané intermediáty do path building, takže signatúry cloud signerov s osamelým end-entity certifikátom zvalidujú namiesto zlyhania path building
- Pridané LTV enablement na jedno volanie: PopulatePAdESLTVEvidence prejde každú načítanú signatúru, online získa jej intermediáty plus OCSP/CRL evidence a materiál zapíše do dokumentového DSS, čím povýši čerstvý B-B signature dokument na B-LT bez ručne skladaných evidence polí
- Pridané vynucovanie seed values pri podpisovaní: CheckLoadedSignatureSeedValue číta /SV slovník signature poľa a kontroluje kandidátsky SubFilter, DigestMethod, Reason a DocMDP profil proti jeho obmedzeniam so sémantikou force bitov z ISO 32000-1 12.7.5.5, takže sa obmedzenia autora formulára rešpektujú skôr, než sa umiestni signatúra
Version 2.737.0
Added
- Pridaná prísna verifikácia ukladania cez property VerifySavedOutput: po zápise čerstvá reader inštancia s vypnutým cross-reference recovery znovu načíta súbor, takže poškodená serializácia vybuchne na mieste volania namiesto nazrania až u ďalšieho konzumenta
- Rozšírené ReproducibleOutput na šifrované dokumenty: streamy AES-CBC používajú statickú konvenciu IV 14*(1+i), key material a salty sa odvodzujú deterministicky a kanonické document ID normalizuje volatilné Info timestampy, čo dáva byte-identické šifrované uloženia pre regresné pipeline
Version 2.736.0
Added
- Pridané high-quality resampling a monochromatické dithering cez novú jednotku HPDFResample: separabilné jadrá Catmull-Rom bicubic a Lanczos3 nahrádzajú GDI stretch sémantiku pre downsample obrázkov cez property ImageDownsampleKernel a RenderOutputDither aplikuje error diffusion Floyd-Steinberg po page kompozícii, takže výstup print previewu zachová fotografický detail v čisto čiernej a bielej
Version 2.735.2
Fixed
- Opravené Flate dekompresné streamy predávajúce adresu buffer premennej namiesto samotného bufferu pri dopĺňaní zo zdrojového streamu, čo poškodzovalo pamäť pri každom čítaní a mohlo zrútiť proces; postihnuté je načítavanie komprimovaných dokumentov, inflate stream triedy aj compress a decompress stream helpery
Version 2.735.1
Fixed
- Opravené growable XFA polia bez data source, ktoré sa pri flatteningu zrútili na jeden riadok: ich výška sa teraz meria z textu, ktorý sám deklaruje šablóna, a to je to, čo také pole zobrazuje. Pole viazané na prázdne dáta sa stále meria ako prázdne
Version 2.735.0
Fixed
- Opravené 64-bitové byte swapovanie v pomocnej unit PNG, ktoré vracalo nesprávne hodnoty na Win64 a kvôli čomu unit úplne vypadla z buildu
Version 2.735.0
Added
- Pridaná detekcia chýbajúcich glyfov v čase kreslenia: property TrackUnresolvedGlyphs zaznamenáva každý code point, ktorý by sa cez aktívny Unicode face vykreslil ako tofu box .notdef, spúšťa event OnUnresolvedGlyph pre každý nález a neregistrované pure-GDI dokumenty necháva nedotknuté
- Pridaná podpora legacy kern tabuliek: RegisterUnicodeTTF zachytí kern tabuľku éry Apple/GDI a kerning emit spadne do jej binárneho párového hľadania formátu 0, keď font nemá GPOS kern lookupy, čím sa obnovuje klasické párové rozostupenie vo fontoch ako stockový Arial
- Pridaný per-run font fallback vnútri layoutu odsekov: WideTextOutBox teraz delí každý zalomený riadok na code pointoch, ktoré aktuálny font nedokáže namapovať, a kreslí každý run v jeho resolvnutom fallback fonte, takže zmiešané Latin, emoji a CJK odseky sa vykreslia bez tofu, keď sú zaregistrované fallback chainy
Version 2.734.0
Added
- Pridaná infraštruktúra pre RFC 3161 time-stamp request: HPDFRFC3161BuildRequest emituje DER TimeStampReq s čerstvým positive-INTEGER nonce, voliteľným policy OID a certReq a HPDFRFC3161ParseResponse dekóduje hlavičku PKIStatusInfo a vyextrahuje token, takže TSA transport callbacky sú tri riadky namiesto štúdia DER
- Pridaná deklarácia developer extension ISO/TS 32002 (THotPDF.EnsureISO32002Extensions) pokrývajúca EdDSA podpisové algoritmy a dodatočné ECDSA krivky v dokumentoch PDF 2.0, idempotentná a version-gated ako deklarácia 32001 SHA-3
Version 2.733.0
Added
- Pridaná prenositeľná key agreement cez Montgomery ladder X25519 a X448 plus ECDH na NIST krivkách P-256 / P-521 s CIOS Montgomery multiplikáciou, čo umožňuje vytvárať a unwrapovať public-key recipientov key-agreement (KARI) úplne in-process; RFC 7748 a referenčné vektory generované OpenSSL uzamkli správanie ladderu do regresnej sady
- Pridané HPDFUnwrapKeyAgreementRecipientEnvelope spolu s entry pointmi AddPubSecAgreementKeyMaterial a AddPubKeyAgreementRecipientWithSecret, takže dokumenty šifrované s recipientmi ECDH / X25519 / X448 sa dajú otvoriť s privátnym scalárom recipienta a šifrovať bez externého ECDH toolingu
Version 2.732.0
Changed
- Ukladania teraz routujú výstup serializéra cez 1 MiB buffered write stream, čím zlučujú per-token Write volania hlavičiek objektov, kľúčov slovníkov a xref riadkov do batchovaných pushov na cieľoch podložených súborom
- Payloady cross-reference streamov aplikujú PNG Up predikciu (/DecodeParms /Predictor 12) pred FlateDecode a zlučujú diery free-list cez /Index subsections, čím zmenšujú xref kontajnery na každom dokumente PDF 1.5+ aj na sparse object range
- Property CompressionLevel teraz vyberá aj Flate úsilie pre cross-reference stream a object-stream kontajnery, takže clMaximum produkuje menšie štrukturálne streamy počas ukladania
Fixed
- Šírky polí /W cross-reference streamu sa teraz prispôsobujú skutočnému rozsahu offsetov namiesto pevného layoutu [1 4 2], ktorého Cardinal cast potichu skracoval offsety nad 4 GiB do poškodeného výstupu
Version 2.731.0
Changed
- Prestavané vstavané OCR s template matchingom s extrakciou glyfov cez connected components, grayscale coverage skóre oproti cacheovaným multi-font šablónam, Otsu binarizáciou s local-window fallbackom, bimodálnym delením slov podľa medzier, baseline per slovo, odmietaním speckle šumu a rozšírenou 62-znakovou abecedou, ktorá rozpoznáva ASCII text so zmiešanými veľkosťami písmen cez height clustering na úrovni riadkov a preferenciu case kontextu
Version 2.730.0
Added
- Pridaná Win64 podpora pre Free Pascal 3.2.2 a Lazarus 4.6, vrátane runtime package, reproducibilného build skriptu, compatibility layer a non-GUI create-and-reload smoke testu; natívne statické codec integrácie zostávajú len pre Delphi a vo Free Pascal buildoch reportujú explicitnú chybu unsupported-operation
Version 2.729.0
Added
- Pridaný host-neutrálne dynamický XFA widget runtime s Unicode editovaním, focus a hit testingom, instance-aware bindingom, atomickou validáciou a kalkuláciou, ohraničeným reflow a read-only factory načítaných dokumentov, ktorá zachováva zdrojové XFA
Version 2.728.0
Fixed
- Opravené XFA intrinsic meranie a pokračovanie textu tak, aby sa zachovávali explicitne prázdne a vypočítané hodnoty, používal sa binding kontext každého poľa alebo opakovaného riadku, zachovávali akcie breakAfter, predchádzalo kolíziám synthetic mien a vynucoval cached globálny merací rozpočet
Version 2.727.0
Changed
- XFA layout teraz aplikuje intrinsic minimálne a maximálne rozmery, meria growable polia z ich viazaného textu a atomicky delí vhodný obsah textEdit naprieč content areas a stránkami s read-only continuation poliami a ohraničenými rozpočtami pre text, fragmenty a meranie
Version 2.726.0
Added
- Pridané kompletné NChannel process a spot atribúty, mixing hints, ohraničené spectral ink streamy CxF/X-4 pre PDF 2.0 a document-level konzistenčné kontroly definícií spot tint a externých colourant tabuliek output intentu
Version 2.725.0
Added
- Pridaný thread-safe deterministický SIMD scanline render backend, ktorý preflightuje podporované rectangle display listy, zapisuje finálnu bitmapovú plochu vo vektorových blokoch bez medzikopie bitmapy a vracia exaktné per-request dôvody odmietnutia cez existujúci software fallback a telemetry pipeline
Version 2.724.0
Changed
- Rozšírený ohraničený natívny FormCalc evaluátor o všeobecné SOM node-set agregáty, zmiešané scalar a node-set argumenty, vnorené numerické a string volania a deterministické selection, string, goniometrické, logaritmické a konverzné funkcie pod existujúcimi rozpočtami operácií, polí, hĺbky, času a výstupu
Version 2.723.0
Changed
SubsetLoadedFontsteraz bezpečne subsetuje vložené Type 1 PFB, split binary aj hex PFA programy, zachováva rekurzívne TrueType composite závislosti a zatvára outline závislosti COLR v0/v1, pričom zachováva colour, bitmap, variation a shaping tabuľky
Version 2.722.0
Added
- Pridané ohraničené password callbacky pre klasické ZIP-šifrované entry XPS, EPUB a CBZ, vrátane retry limitov per entry, kontrol zrušenia, memory-only handlingu credentialov a fail-closed odmietania nedostupného, neplatného alebo nepodporovaného šifrovania
Version 2.721.0
Changed
DownsampleLoadedImagesteraz mení rozmer podporovaných 8-bitových image sample Separation a DeviceN priamo v component space a zachováva pôvodný graf farebných priestorov, tint transform, colouranty, rozsahy/Decodea overprint sémantiku naprieč uložením a reloadom
Version 2.720.0
Added
- Pridané ohraničené vstavané recognition overloady pre high-contrast uppercase ASCII OCR, horizontálny Code 39 a čisté axis-aligned QR symboly verzie 1 v byte mode, čo umožňuje searchable text layer a barcode dekódovanie načítaných stránok bez engine dodávaného volajúcim, zatiaľ čo dvojznačný alebo nepodporovaný vstup končí fail-closed
Version 2.719.0
Added
- Pridané ohraničené JPEG 2000 refinement podľa resolution a quality layer cez
THPDFJpeg2000Decoder.LoadProgressiveFromByteArray, plus multi-layer kódovanie cezTJpeg2000Bitmap.QualityLayers, s identickými finálnymi pixelmi pre progression ordery LRCP, RLCP, RPCL, PCRL a CPRL
Version 2.718.0
Changed
- Vložené kompletné horizontálne a vertikálne CMapy UniJIS, UniGB, UniCNS a UniKS pre UCS2 a UTF16, vrátane supplementary skalárov a štandardných vertikálnych defaultov, takže CJK extrakcia textu a geometria už nezávisia na externých Unicode mapping súboroch ani odhadoch polovicu em
Version 2.717.0
Added
- Pridané explicitné dependency range zdieľaných objektov linearizovaného PDF a range-arrival redraw scheduler, takže stránky sa môžu vykresliť skôr, než prídu všetky voliteľné závislosti, a prekreslia sa presne vtedy, keď novo dostupné dáta zmenia výsledok
Version 2.716.0
Added
- Pridaná ohraničená oprava objektového grafu pre actionnable preflight nálezy xref, traileru, catalogu, page tree a name tree s validovaným transaction commit a kompletným rollbackom pri nebezpečnom alebo dvojznačnom vstupe
Version 2.715.0
Added
- Pridané encrypted payload wrappery PDF 2.0, kde viditeľný obsah dokumentu zostáva čitateľný pred autentizáciou, kým mená, popisy a bajty embedded files zostávajú chránené až do explicitného odomknutia heslom
Version 2.714.0
Changed
- SVG export načítaných stránok teraz emituje axiálne a radiálne gradienty, ohraničené PNG reprezentácie mesh shadingov Type 4 až Type 7 a dekódované inline obrázky bez inkrementovania zodpovedajúcich skip počítadiel
Version 2.713.0
Changed
- Farebné glyfy OpenType SVG teraz používajú ohraničenú Form XObject pipeline pre oblúky, vektorové gradienty, opacity, geometrické masky a lokálne opätovné použitie
#id, pričom naďalej odmietajú skripty, externé resource, obrázky a nepodporovaný aktívny obsah
Version 2.712.0
Changed
ReplaceLoadedPageTextteraz nahrádza zhody cez glyph source span naprieč string itemmi a poliamiTJ, pričom zachováva kerningové čísla, nezodpovedajúce prefixy a suffixy, nesúvisiace operandy a pôvodnú štruktúru content streamu
Version 2.711.0
Added
- Pridaná resolúcia
SyntheticBaseCFF FontSet so zdedenými hodnotami Top a Private DICT, CharStrings, charset, Encoding a Local Subrs, plus deterministickou sémantikou override a ohraničeným odmietaním neplatnej, cyklickej alebo príliš hlbokej dedičnosti
Version 2.710.0
Added
- Pridaný deterministický ohraničený výber Flate prediktora cez
HPDFSelectFlatePredictor, využívajúci distribuované row sample, odhadnutú bajtovú cenu, konfigurovateľné CPU weighting a explicitné rozpočty pre bajty, riadky a prácu
Version 2.709.0
Added
- Pridaný opt-in natívny JBIG2 výstup symbol dictionary a text region s Huffman cez
THPDFJBIG2Options.UseHuffmanEncoding, vrátane štandardných tabuliek DH, DW, BMSIZE, FS, DS a DT, raw kolektívnych bitmap, tabuliek symbol ID, deterministického natívneho routingu a pixel-exact decoder round tripov, pričom zostávajú zachované defaulty arithmetic a MMR
Version 2.708.0
Changed
- Cacheované reverzné cmap mappingy arabských a kombinovaných presentation form podľa generácie registrovaného fontu, čím sa nahradili opakované skeny U+FB00..U+FDFF a U+FE70..U+FEFF v
ApplyArabicGSUBRefinement,ApplyArabicGSUBContextualRefinementa generickej contextual GSUB ceste, pričom zostáva zachované codepoint precedence a shaped výstup
Version 2.707.0
Added
- Pridaný Aztec 2D barcode encoder (ISO/IEC 24778) cez
THPDFPage.DrawAzteca samostatnú jednotkuTHPDFAztec: high-level kódovanie dynamickým programovaním s mode latchmi, shiftmi a binary-shift runmi, bit stuffing, Reed-Solomon error correction nad GF(16) až GF(4096), automatický výber compact symbolu 15x15..27x27 alebo full 19x19..143x143 a forced-layer kontrola pre pevné veľkosti symbolov - Pridané zoskupovanie vertikálneho textu stránok:
THotPDF.ExtractLoadedPageTexta range/stream aggregation API teraz zoskupujú glyfy WMode 1 do stĺpcov podľa X originu glyfov, usporadúvajú stĺpce sprava doľava a prechádzajú každý stĺpec zhora nadol namiesto trhania vertikálneho CJK textu na per-glyph riadky
Fixed
- Opravený paralelný band export zlyhávajúci s nezhodou šírky PNG bandu na stránkach so zlomkovými pixelovými rozmermi (A4 pri 96 DPI): raster veľkosť sa teraz zaokrúhľuje s
Ceilkonzistentne s band writermi, takže dodané dlaždice vždy zodpovedajú šírke enkodéra
Version 2.706.0
Added
- Pridaný streaming PNG export načítaných stránok a banded multi-page TIFF export cez
THotPDF.SaveLoadedPageToPng,SaveLoadedPageToPngStream,SaveLoadedPagesToTiffBandedaSaveLoadedPagesToTiffStreamBanded, ktoré zapisujú komprimované obrazové dáta riadok po riadku cez band enkodéry, takže veľmi veľké stránky nevyžadujú kompletný framebuffer;THPDFBandImageExportInforeportuje telemetriu stránky, bandu, riadku, workera, pamäti, výstupu, timing a zrušenia
Version 2.705.0
Added
- Pridaná PDF/A finalizácia do loaded save ciest:
THotPDF.SaveLoadedDocumentaSaveLoadedDocumentToStreamteraz validujú OutputIntentGTS_PDFA1(zdedený zo zdrojového catalogu alebo čerstvo zaregistrovaný) a emitujú XMP identifikáciupdfaid:part/pdfaid:conformance, keď je nastavenéPDFACompliance, pričom existujúci pdfaid packet zostáva pri re-save zachovaný bajt po bajte - Pridané spracovanie vertikálneho písania (WMode 1) na strane načítania: cell metriky CIDFont
/W2a/DW2teraz riadia extrakciu textu a vykresľovanie stránok, prechádzajú stĺpce po y osi text space s positioning vektorom v1x/v1y namiesto horizontálnych advances/W
Version 2.704.0
Added
- Pridané paralelné vykresľovanie tile a band načítaných stránok cez
THotPDF.RenderLoadedPageTilesParallelaTHotPDF.RenderLoadedPageBandsParallel, s row-major callbackmi volajúceho vlákna, požičanými bitmapami, cooperative cancellation, pamäťou in-flight riadenou volajúcim, admission podľa peak pamäti a ohraničenou immutable cache glyfov Type 3 a halftone screen zdieľanou naprieč izolovanými render contextmi
Version 2.703.0
Added
- Pridané ohraničené CSC multisign digest dávky cez
THPDFCSCSignatureProvider.SignHashBatch, s jedným hash-pinned SAD a jednou requestousignatures/signHashpre usporiadanú dávku s rovnakým algoritmom, pričom sa vynucujú lokálne a credential limitymultisign, prísna response kardinalita, synchrónne alebo asynchrónne usporiadanie výsledkov, SHA-256 content-addressed idempotency keys a replay dokončenej dávky
Version 2.702.0
Added
- Rozšírené
THotPDF.RenewPAdESLTATimestampo certifikát, OCSP a CRL evidence dodanú volajúcim, ktorá sa zlučuje do existujúceho DSS pred novou RFC 3161 document timestamp, zachováva každú skoršiu revíziu bajt po bajte a exaktne deduplikuje validačné streamy naprieč postupnými obnovami
Version 2.701.0
Added
- Pridaný clause-addressable PAdES baseline a extended profile preflight cez
THotPDF.PreflightLoadedPAdES, reportujúci každú aplikovateľnú požiadavku so stabilným rule ID, profilom, normatívnou úrovňou, klauzulou štandardu, PDF path, číslom objektu, podpísanou alebo aktuálnou revíziou a pass statusom, pričom validuje CMS kardinality, ESS referencie certifikátu podpisujúceho, obmedzenia signature dictionary, pokrytie byte range, trusted time, DSS evidence a pokrytie document timestamp
Version 2.700.0
Added
- Pridané end-to-end načítanie privátnych kľúčov PFX / PKCS#12 pre ECDSA, Ed25519 a Ed448 a CMS podpisovanie dokumentov, vrátane named-curve CNG ECDSA, voliteľného OpenSSL 3 PureEdDSA, dekódovania kľúčov podľa RFC 8410, pravidiel digestov a parametrov RFC 8419, SHAKE256 s 512-bitovým výstupom pre Ed448, automatického výberu key algoritmu a prísneho párovania certifikátu s kľúčom
Version 2.699.0
Added
- Pridaný deterministický výber credentialov PFX / PKCS#12 s viacerými identitami cez
HPDFEnumeratePFXIdentities,HPDFParsePFXByLocalKeyIDaTHPDFCMSSignOptions.PFXLocalKeyID, vrátane prísnych single-valued bag atribútovlocalKeyIdafriendlyName, párovania public key, rekurzívnych safe-content bagov, ohraničenej ambiguity a cycle diagnostiky a automatického embeddingu zodpovedajúcich intermediate a root certifikátových chainov s exaktnou DER deduplikáciou
Version 2.698.0
Added
- Rozšírené in-process PBES2 dešifrovanie PFX / PKCS#12 o AES-128-CBC a AES-192-CBC plus PBKDF2 PRF s HMAC-SHA-384 a HMAC-SHA-512, vrátane cipher-špecifickej voliteľnej validácie
keyLengtha ohraničených kontrol salt, iterácií, IV a paddingu, pričom zostáva zachovaná kompatibilita s AES-256-CBC a HMAC-SHA-1 / SHA-256
Version 2.697.0
Added
- Pridaná špecifikácii vyhovujúca dedičnosť
FixedPage.NavigateUriCanvasu pre XPS a OpenXPS, takže potomkovia vizuálovPath,Glyphsa vnorené Canvas vizuály dostávajú scoped URI, pokiaľ ho neprepíšu, so zachovaním akcií external, mail, package-page a percent-dekódovanýchLinkTargetcez transformácie, vnorené clipy, izolované opacity groupy, potlačenie reusable vizuálov, obnovu po vnorených overrideoch a existujúce limity liniek, URI, zrušenia a unsafe schém
Version 2.696.0
Added
- Pridané ohraničené natívne transparency groupy Canvasu pre XPS a OpenXPS, takže hodnoty
Opacitya plné, gradientové alebo obrázkové maskyCanvas.OpacityMaskkompozitujú prekrývajúce sa child vizuály raz cez izolované DeviceRGB Form XObjects, so zloženou uniformnou alpha, zdieľanými variable-alpha soft maskami, vnorenými groupami, transformovanými clipmi, prenosom resource, zachovanými linkami a fail-closed malformed, nepodporovaným, singular alebo oversized obsahom
Version 2.695.0
Added
- Pridaná ohraničená natívna konverzia
Canvas.Clippre XPS a OpenXPS pre skrátenú geometriu, hodnotyPathGeometryv lokálnych alebo vzdialenýchStaticResource, priame property elementy, štruktúrované line, Bézier, quadratic a arc figúry, transformácie geometrie, prázdne clipy a vnorené orezávanieEvenOddaleboNonZerocez PDFW*aleboW, s orezanými navigation bounds, limitmi parsovania 100,000 hodnôt a fail-closed malformed alebo singular transformáciami
Version 2.694.0
Added
- Pridaná ohraničená natívna XPS a OpenXPS navigácia pre transformované vizuály
PathaGlyphs, zachovávajúca HTTP, HTTPS a mail linky ako PDF URI anotácie a resolvujúca package-relatívne stránky plus percent-dekódované fragmentyLinkTargetako dopredné alebo spätné PDF GoTo akcie až po existenciu všetkých stránok, s click boundmi berúcimi do úvahy metriku, limitmi 65,536 liniek a 8,192 znakov, potlačením zachytávania VisualBrush, zrušením a fail-closed diagnostikou unsafe schém
Version 2.693.0
Added
- Pridaná ohraničená natívna konverzia
VisualBrushpre XPS a OpenXPS pre inline alebo resource-backed vizuályCanvas,PathaGlyphs, hierarchické a vzdialené vyhľadávanie vResourceDictionary, absolútnyViewbox, absolútnu alebo relatívnuViewport, tile módNone,Tilea reflected, transformácie, opacity, opakovane použiteľné Form XObjects, zdieľané tiling patterny, token-aware prenos resource a fail-closed rozpočty pre cykly, malformed vstup, rekurziu, obsah, cache a umiestnenie
Version 2.692.0
Added
- Pridané natívne vkladanie package fontov XPS a OpenXPS pre programy TrueType a OpenType, fragmenty členov TTC, GUID-obfuskované resource, priame alebo z cmap odvodené glyph ID, one-to-many Unicode clustre, explicitné advances a offsety, RTL originy korektné na šírku, zdieľané font resource, povolenia embedding a no-subsetting, voliteľný glyph subsetting, ohraničené mapy
ToUnicodea amortizovane-lineárny výstup positioned runov bez náhrady cez GDI face
Version 2.691.0
Added
- Pridaný ohraničený layout
Indicespre OpenXPSGlyphss prísnymi počtami code units a glyfov na cluster, explicitnými advances v stotinách em, horizontálnymi a vertikálnymi offsetmi, spätným priebehom pri nepárnomBidiLevel, plnými výplňami z atribútov alebo property elementov, opacity, natívnym PDF batchingomTJ, fallbackom pozicionovaných Unicode clusterov, zachovanou extrakciou textu, fail-closed diagnostikou malformed vstupu a amortizovane-lineárnymi buffermi so stropom 65,536 mappingov
Version 2.690.0
Added
- Pridaná podpora OpenXPS
Path.OpacityMaskpre plné, variable-alpha multi-stop lineárne a eliptické radiálne gradienty a obyčajné, tiled alebo reflected PNG maskyImageBrushcez zloženú uniformnú alpha, ohraničené natívne transparency groupy DeviceGray, zdieľané shading patterny a image soft-mask streamy, fail-closed handling nepodporovaného obsahu a znovupoužiteľný builderRegisterLuminositySoftMaskStates väzbou alpha-image resource
Version 2.689.0
Added
- Pridané módy
Tile,FlipX,FlipYaFlipXYpre OpenXPSImageBrushcez natívne PDF tiling patterny s jedným, dvoma alebo štyrmi nezávisle orezanými umiestneniami, zdieľanými image a PNG soft-mask resource, zloženými maticami fixed page, path a brush a ohraničeným APIRegisterImageTilingPatternpre znovupoužiteľné patterny podložené obrázkom
Version 2.688.0
Added
- Pridaná podpora OpenXPS
ImageBrush.Transformpre finitné šesťparametrové maticy v atribútoch a property elementyMatrixTransform, zreťazené po natívnom orezaníPatha pred orezaním viewportu a umiestnením obrázka, takže brush môže rotovať, škálovať, zošikmiť alebo posunúť bez zmeny jeho obsahujúcej vektorovej geometrie; neštandardnýRelativeTransforma neresolvnuteľné matrix resource zostávajú explicitnou diagnostikou
Version 2.687.0
Added
- Pridané umiestňovanie image XObject riadené maticou cez
THPDFPage.ShowImageMatrixa rozšírený XPS fixed-page import oImageBrushvýplne package JPEG, PNG, TIFF a JPEG XR, mapovanieViewboxaViewportabsolútne alebo relatívne k bounds, natívne orezávanie path a single-viewport, opacity obrázka a path, PNG soft-mask alpha, DPI-aware dimenzovanie pri 96 DPI, zdieľané cacheovanie dekódovaných resource a fail-safe diagnostiku pre nepodporované tiling, transformácie, farebnú konverziu a image strokes
Version 2.686.0
Changed
- Pridaná znovupoužiteľná ohraničená registrácia multi-stop radiálneho gradientu a rozšírený natívno-vektorový XPS path import o eliptické hodnoty
RadialGradientBrushv property elementoch, spread Pad, uniformnú alpha stopov, opacity brusha, relatívne alebo absolútne mapovanie centra, originu a radiusa, natívne PDF shading Type 3 a obnovu koordinát, ktorá necháva geometriu path nezmenenú
Version 2.685.0
Changed
- Rozšírený usporiadaný natívno-vektorový XPS path import o quote-aware a ohraničené parsovanie property elementov, plné a multi-stop lineárne gradient brushy, natívne PDF shading patterny, alpha brusha a stopov, predvolené gradient koordináty relatívne k bounds alebo explicitne absolútne, interpoláciu stopov mimo rozsah a fail-safe diagnostiku pre nepodporované transformácie, spread módy, farebnú interpoláciu, variable alpha a degenerované osy
Version 2.684.0
Changed
- Pridaný usporiadaný natívno-vektorový XPS path import s ohraničenou skrátenou geometriou, pravidlami výplní, plnými RGB a ARGB výplňami a ťahmi, opacity path, šírkou ťahu, šesťparametrovými transformáciami a fail-safe diagnostikou pre nepodporované kresliace vlastnosti
Version 2.683.0
Changed
- Posilnená validácia PDF/X-6 na skutočne maľovanom obsahu s graphics state shading patternov v čase definície, sémantikou ExtGState pre nonstroking patterny, fail-closed kontrolami subtype soft mask a backdropu, exaktnými metrikami glyfov Type 3 a pravidlami zdedenej farby, prísnou klasifikáciou alpha pre combined paint, ohraničenou farebnou inferenciou JPX a kompozíciou anotácií berúcou do úvahy appearance
Version 2.682.0
Added
- Pridaná podpora producenta a verifikátora pre ECDSA signatúry
brainpoolP256r1,brainpoolP384r1abrainpoolP512r1, vrátane matice digestov SHA-2 a SHA3 špecifickej pre krivku, validácie podpisovania zlyhávajúcej pred providerom, prísnych certifikátových parametrov named curve, ECDSA algorithm identifierov bez parametrov, kanonických DER signature values, importu named curve vo Windows CNG a deterministickej diagnostiky pre explicitné, trailing, neznáme alebo nezhodné parametre
Version 2.681.0
Changed
- Zjednotené vykonávanie obsahu pre non-progressive bitmapy, direct-DC, Form aj display list cez
HPDFInterpretContentTokensDevicea voliteľné kompletné rozšírenieIHPDFContentOperatorDevice, s jedným cancellation checkpointom na operátor, cacheovaním operator indexu v compile time pre replay display listu bez skenovania operandov, verejnými metrikamiOperatorCount, zachovanou kompatibilitou semantic device, opravenou sémantikou operátorov",vaya korektným handlingom terminátoraEIbez falošných fallback diagnostík
Version 2.680.0
Added
- Pridané ohraničené transakčné overloady
RepairPDFA4s typovanými opciami, detailnými repair reportmi, zdieľanou provenienciou nálezov, bezpečnou normalizáciou PDF 2.0 headeru, trailer ID, metadát, Catalogu a prezentácie, namespace-aware opravou PDF/A identifikácie, konfigurovateľnou commit politikou čiastočnej alebo úplnej conformance, detekciou error regresie, byte-exact rollbackom grafu a XMP a prísnou hranicou, ktorá zachováva obsah stránok, fonty, farby, priehľadnosť, obrázky, graphics operátory a extrahovaný text
Version 2.679.0
Added
- Pridaná validácia PDF/X-6 na skutočne maľovanom obsahu s voliteľnými pravidlami ISO 15930-9:2020 alebo resolved-errata 2025, skutočnými kontrolami ICC headeru a kanálov, resource-aware prechodom cez content array, Form XObjects, tiling a shading patterny, obrázky, glyfy Type 3, soft masky a anotačné appearances, diagnostikou overprint módu a combined-paint priehľadnosti, stabilnou proveninciou pravidiel a ohraničenou prácou pre dekódované bajty, tokeny, objekty, issue, rekurziu a graphics state
Version 2.678.0
Added
- Prehĺbená ohraničená validácia PDF/A-4 s cacheovanými kontrolami ICC headeru a komponentov, konzistenciou document a page output intentu, analýzou skutočne maľovaných device farieb a priehľadnosti naprieč content array, vnorenými Form XObjects, obrázkami, image maskami, shadingmi a anotačnými appearances, zdedeným graphics state, embeddingom rendering fontov, vzťahmi CIDFont a CMap, prísnymi anotačnými flagmi a appearance stavmi, validáciou XMP packetu a namespace v UTF-8, logickými umiestneniami v page tree, stabilnou clause-aware diagnostikou a konfigurovateľnými stropmi pre dekódované bajty a content tokeny
Version 2.677.0
Added
- Dokončená ohraničená validácia PDF/UA-2 pre dokument, human-readable reťazce, optional content, anotácie, AcroForm, structure destinationy, outline, embedded files a vnorené page labely, vrátane fyzického vlastníctva ParentTree, skalárnych potomkov štruktúry, obmedzení appearance streamov, XMP vlastností založených na namespace URI, detekcie Unicode private-use a clause-aware diagnostiky; štruktúrovaný export do HTML, XHTML, XML a JSON teraz zdieľa tagged-first accessible reading model s jazykom, titulkom, navigáciou, page labelmi, bezpečnými linkami, anotáciami, nesenzitívnymi form controlmi, náhradami marked-content, artifactmi, alternatívami obrázkov, geometrickým fallbackom, nezávislými limitmi, zrušením a atomickou publikáciou
Version 2.676.0
Added
- Pridané ohraničené minimálne plánovanie byte range pre každú stránku v linearizovanom PDF cez
PlanProgressiveLinearizedPageRanges, s raw a Flate dekódovaním primary alebo overflow hintov, interoperabilnými byte-aligned combined a Annex F continuous split hint layoutmi, exaktnými závislosťami bootstrap, stránok, shared-group a tradičných alebo stream cross-referencií s prefixom LF alebo CRLF, legálnou akumuláciou short read, defaultným stropom pamäti plánovača 256 MiB s fail-closed rozpoznaním kódovania, spájaním s ohľadom na prekryvy, prísnymi štrukturálnymi cross-checkmi, typovanými limitmi a availability diagnostikou a zjednotenou first-page cestou[0, /E)
Version 2.675.0
Added
- Pridané nezávislé štandardom vyhovujúce crypt-filter politiky pre reťazce, normálne streamy a embedded files cez
ConfigureCryptFilterDefaultsaSetStreamCryptFilter, vrátane reserved filtrov pre password a public-key,/Identity, writer-korektného password-security/EFFa vedúcich pipeline/Crypt, fail-closed hraníc recipientov špecifických pre public-key streamy, case-sensitive načítania a inšpekcie externých named filterov,/CFM /None, reportovania dĺžky kľúča V2, Direct File fallbacku zmiešanej politiky, rozdelených politík object-stream kontajnera a member stringov a policy-zachovávajúcich šifrovaných prírastkových aktualizácií
Version 2.674.0
Added
- Pridané prírastkové aktualizácie šifrovania Standard a public-key zachovávajúce credentialy cez password-aware overload
BeginIncrementalUpdatea priradený key material recipientov, s bezpečne udržiavanými file keys alebo FEK, samostatnými crypt-filter politikami pre stringy, streamy, metadáta a Identity, generácie-aware odvodením legacy object keys, exaktnými zdedenými referenciami/Encrypt, byte-identickými zdrojovými revíziami, pôvodným prístupom user, owner alebo recipient a fail-closed odmietaním zmien šifrovania alebo nepodporovaných heterogénnych filtrov
Version 2.673.0
Security
- Pridaná ohraničená validácia grafu segmentov JBIG2 pred dekódovaním celej stránky, regiónu, natívnym aj externým a pred zdieľaním globálneho slovníka, s indexovanou kontrolou duplicitných a chýbajúcich referencií, iteratívnou detekciou cyklov a hĺbky závislostí, vynútením priradenia stránok k embedded streamom, odmietaním zakázaných segmentov, rozpočtami pre long reference a agregované hrany, ochranou alokácií symbol dictionary a presnou telemetriou zlyhaní
Version 2.672.0
Added
- Pridaná generácia PAdES E-EPES
signature-policy-identifiera prísna validácia s explicitnými policy OID, známymi alebo ETSI unknown hashmi, kvalifikátormi SPuri, SPUserNotice a SPDocSpecification, ohraničeným parsovaním Unicode a kolekcií, hashovaním policy dokumentu, pinovaním OID a hashe primárneho podpisujúceho pred kryptografickou prácou, špecializovanými stavmi pre nesúlad a kompletným JSON reportovaním
Version 2.671.0
Added
- Pridané deterministické kontajnery RFC 5652 s až 256 nezávislými primárnymi záznamami
SignerInfocezHPDFCMSBuildMultiSignedDataaHPDFCMSMergeSignedData, vrátane prevalidácie celej dávky pred side efektmi podpisujúcich, atribútov, algoritmov, certifikátov a providerov pre každého podpisujúceho, prísnej validácie kontajnerov s definite length, DER-zoradených a deduplikovaných množín, nezávislých výsledkov verifikácie, bajtovej kompatibility pre jedného podpisujúceho a dimensionovania aggregate placeholderov bez side efektov
Version 2.670.0
Added
- Pridané voliteľné identity podpisujúceho RFC 5652
SubjectKeyIdentifiercezTHPDFCMSSignOptions.SignerIdentifier, vrátane kompaktného IMPLICIT kódovania SID, automatického výberu verziíSignerInfoaSignedData, prísnej extrakcie X.509 rozšírení, podpory providerov a dimensionovania placeholderov a fail-closed zhody SID, certifikátu a verzie počas verifikácie
Version 2.669.0
Security
- Pridaná fail-fast diagnostika konzistencie digest algoritmov CMS naprieč
SignedData.digestAlgorithms,SignerInfo, parametrami podpisových mechanizmov a RFC 6211CMSAlgorithmProtection, s dedikovaným verifikačným stavom, kódom zlyhania validácie, propagáciou časovej pečiatky, detailnými dôvodmi problémov a JSON výstupom
Version 2.668.0
Added
- Pridaná generácia a verifikácia SHA3-256, SHA3-384 a SHA3-512 naprieč detached CMS, RSA PKCS#1 v1.5, RSA-PSS a ECDSA provider kontraktmi, RFC 3161 časovými pečiatkami obsahu a signatúry, obnovou PAdES-LTA, slovníkmi Seed Value a deklaráciami developer extension ISO 32001 PDF 2.0, s ohraničeným one-pass hashovaním byte range zdieľaným so zodpovedajúcimi PDF MAC politikami
Version 2.667.0
Added
- Pridané
THotPDF.ValidatePDFMACChains validáciou prírastkových revízií od najstaršej po najnovšiu, kumulatívnym indexovaním klasickým aj cez xref stream, presnými miestami zlyhania revízie a xref, detekciou historických náhrád MAC, vynútením stabilnéhoKDFSalt, odmietaním downgradeu sily digestu, autentizovanými kontrolami/Pa/Perms, preflight reportovaním a ohraničeným parsovaním revízií bez dočasných kópií PDF
Version 2.666.0
Added
- Pridané
THotPDF.SignPDFWithPFXAndAttachedPDFMACa validáciu pripojenú k signatúre s priamymAuthCodeaktívneho traileru, nepriamymSigObjRef, kompletným pokrytím podpísanej revízie, väzbou digestu na raw signature value, PDF MAC politikami SHA-2 alebo SHA-3, one-pass hashovaním rozsahu pri podpisovaní a MAC, preflight reportovaním a atomickou náhradou výstupu
Version 2.665.0
Fixed
- Opravené
THotPDF.RegisterNChannelColorSpacetak, aby emitovalo päťprvkovú formuDeviceNpodľa ISO 32000-2 s/Subtype /NChannela metadátami process komponentov, zvýšená minimálna verzia PDF na 1.6 a luminosity soft masky teraz resolvujú NChannel vykresľovanie cez jeho alternate space, pričom zostáva zachovaná čítacia kompatibilita s legacy tokenmi rodiny/NChannel
Version 2.664.0
Added
- Dokončené vykresľovanie PDF blend módov s celočíselnými hot-path implementáciami pre Hue, Saturation, Color a Luminosity a opravený full-opacity fast path, takže každý aktívny separable či non-separable blend mode sa korektne blenduje voči svojmu backdropu
Version 2.663.0
Security
- Autentizované kontajnery PKCS#12 pred sprístupnením šifrovaných safe contents overením voliteľného vonkajšieho
MacDatas ohraničenými iteráciami PKCS#12 KDF, HMAC s SHA-1 alebo SHA-256, porovnávaním digestu v constant time a fail-closed ošetrením nesprávneho hesla a porušenia integrity
Version 2.662.0
Added
- Pridané tri príkazy HotPDFCLI:
renderrasterizuje každú vybranú stránku do<prefix>-page<N>.pngcez bitmap pipeline načítaných stránok (rozsah--pages,--dpi10..2400, predvolene 150),tablesextrahuje typed tables do CSV alebo JSON cezExportLoadedTypedTables(--json,-osúbor alebo konzola) acomparevypíše JSON porovnávací report dvoch dokumentov cezHPDFDocCompareDocuments(--mode0..5 pokrývajúci page-count, page-text, object-count, rendered-image, full a structural)
Fixed
- Opravený Win64 ICC transform pipeline, ktorý produkoval čisto nulový výstup z 8-bitových batch transformácií (
TransformBytes): optimalizovaný 1D-LUT fast path vo Win64 objektoch lcms2 vracia nuly, kým generický resampling pipeline je správny, takže 8-bitová transformácia sa teraz builduje scmsFLAGS_NOOPTIMIZElen na Win64; 16-bitová single-colour cesta a všetky Win32 transformácie nechávajú optimalizovaný fast path (batch sRGB primaries teraz prejdú round trip na oboch platformách)
Version 2.661.0
Added
- Pridaná skutočná budgetovaná vysokokompresná Flate kompresia Zopfli za existujúcou štvorstrategickou zlib baseline, s prísnym no-growth výberom, limitmi pre vstup, iterácie, bloky, výstup a uplynulý čas, detailnou telemetriou streamov a paralelných obrázkov a deterministickými gates kontrol úspor na pevnom korpuse dát
Version 2.660.0
Added
- Pridané deterministické strojovo čitateľné XML preflight reporty a trusted pluginy s ABI verziovaním pre extrakciu vlastností a vlastné validačné pravidlá, so stabilným usporiadaním, integráciou policy bundle, propagáciou zrušenia, fail-closed kontrolami schopností a konečnými rozpočtami pre pluginy, nálezy, vlastnosti, reťazce, výstup a uplynulý čas
Version 2.659.0
Added
- Rozšírené ohraničené XFA FormCalc o podmienkovú logiku, opakované numerické agregáty a validované dynamic-instance callbacky a pridané default-off sandboxované formulárové skripty QuickJS s plným control flow, natívnymi typovanými poliami, izolovaným prístupom k dátam, konečnými rozpočtami na inštrukcie, čas, pamäť, stack, hodnoty a operácie inštancií a telemetriou vykonávania
Version 2.658.0
Added
- Pridané ohraničené editovateľné XFA packet DOMy pre kompletné XDP streamy a usporiadané polia packetov s path queries podľa local-name, mutáciou packetov a uzlov, presnou ochranou nedotknutých bajtov, selektívnym prepisovaním po packetoch, deterministickým výstupom namespace a atribútov, bezpečným delením CDATA, escapovaním entít a konečnými rozpočtami pre vstup, výstup, packety, uzly, hĺbku, atribúty, text a queries
Version 2.657.0
Added
- Pridané vzdialené podpisovanie CSC API v2 cez existujúcu CMS provider pipeline s transportom vo vlastníctve aplikácie, refreshom OAuth tokenov, ohraničeným discovery credential chain, explicitným handlingom autorizácie a SAD, synchrónnym alebo asynchrónnym digest podpisovaním, parametrami RSA-PSS, pollingom, RFC 3161 časovými pečiatkami, zrušením, stabilnými idempotency keys a konečnou cache dokončených operácií
Version 2.656.0
Added
- Pridané voliteľné document handlery pre XPS, EPUB a CBZ so skórovaním obsahu, vymeniteľnou thread-safe registráciou, jediným validovaným scanom archívu, usporiadaním fixed page, spine a prirodzeným zoradením obrázkov, immutable cache PDF konverzie, zdieľanými rozpočtami pre archív, resource, reflow, stránky, pixely, DPI, výstup a zrušenie a rollback-safe publikovaním PDF
Version 2.655.0
Added
- Pridaná ohraničená extrakcia typed tables a atomický export do CSV alebo JSON s kanonickými stĺpcami, spájaním fragmentov na tej istej stránke a po sebe idúcich stránok, spanmi zlúčených buniek, opakovanými hlavičkami, geometriou stránky, confidence, provenienciou a inferenciou integer, number, boolean, date, date-time, currency a percentage riadenou locale
Version 2.654.0
Added
- Pridaný atomický štruktúrovaný export načítaných stránok do HTML, XHTML, XML a JSON cez jeden model reading order s blokmi, styled spanmi, detekovanými tabuľkami, koordinátami, source order, voliteľnými ohraničenými PNG obrázkmi, Unicode-safe escapovaním, zrušením a konečnými resource rozpočtami
Version 2.653.0
Added
- Pridaný atomický prepis farieb načítaných stránok do DeviceGray, DeviceRGB alebo DeviceCMYK so zachovaním searchable vektorov, bezstratovou colour-managed raster konverziou pre obrázky a komplexné resource, výstupom bezpečným voči rotácii, explicitnými rozpočtami render fidelity a resource a politikami preserve, process-convert alebo reject pre spot platne
Version 2.652.0
Added
- Pridaná review-first detekcia čiernenia načítaných stránok s checksum-aware PII patternmi, pluggable detektormi entít a tvárí, nálezmi v page-space s confidence skóre, ohraničenou work telemetriou, povinnou identitou recenzenta, atomickým stagingom schválených anotácií a samostatnou explicitnou burn-in hranicou
Version 2.651.0
Added
- Pridané ohraničené dekódovanie barcode načítaných stránok a regiónov s pluggable engines, progressive low-resolution renderingom, fallback štvrťotočnými skenmi, validovaným textom aj raw payloadmi, hranicami a orientáciou v PDF-space, confidence filtrovaním, deduplikáciou prekryvov, zrušením a resource telemetriou
Version 2.650.0
Added
- Pridané ohraničené zrušiteľné searchable OCR textové vrstvy s pluggable recognition engines, validáciou confidence aj geometrie, rotácii prispôsobeným neviditeľným Unicode textom, zoskupovaním optional content, resource telemetriou a atomickou publikáciou viacerých stránok
Version 2.649.0
Added
- Pridané kompletné round trips cez object graph vo verzionovanom JSON so streaming snapshot a incremental exportmi, raw alebo dekódovanými embedded aj atomic sidecar payloadmi, ohraničeným schema-kompatibilným importom, validáciou štruktúry aj dĺžok streamov a transakčnou publikáciou
Version 2.648.0
Added
- Pridaná ohraničená oprava ručne editovaných QDF diagnostických dokumentov, ktorá zachováva bajty objektov aj streamov, opravuje priame, nepriame, chýbajúce či zastarané stream dĺžky, znovu buduje klasické cross-reference offsety a trailery, odmieta nebezpečnú štruktúru a overuje výstup bežným loaderom
Version 2.647.0
Added
- Pridaný thread-safe register vlastných stream filterov s ohraničenými push a pull kontraktmi, zdieľanými decode rozpočtami, kooperatívnym zrušením, explicitnými seek požiadavkami, izolovanými custom zlyhaniami a execution telemetriou
Version 2.646.0
Added
- Pridané ohraničené visitor a event API pre content operátory s read-only pohľadmi na operandy, deterministickými state callbackmi, akciami inspect, measure, replace, delete, stop a reject, kooperatívnym zrušením, validovaným výstupom a atomickými aktualizáciami načítaných stránok
Version 2.645.0
Added
- Pridaný pluggable kontrakt render backendu načítaných stránok s prístupom ku kompilovaným display listom, natívnou GDI implementáciou, thread-safe paralelným dispatchom, deterministickou fallback politikou, invalidáciou cache a execution telemetriou
Version 2.644.0
Added
- Pridaná ohraničená detekcia prekryvov layoutu, cesty elementov, opt-in source mapovanie, natívne vector overflow a overlap overlaye, live diagnostické callbacky a štatistiky práce
Version 2.643.0
Added
- Pridané natívne ohraničené vector grafy s line, bar, area, pie a scatter sériami, automatickými či manuálnymi osami, témami, legendami, popiskami, PDF/UA Figure alternatívami a render štatistikami
Version 2.642.0
Added
- Pridané ohraničené stránkovanie RichEdit a RTF na GUI vlákne s vector EMF výstupom, obrázkami, opt-in podporovanými OLE prezentáciami, zrušením, zachovaním stream pozícií a explicitnými rozpočtami pre vstup, znaky, stránky aj výstup
Version 2.641.0
Added
- Pridaný ohraničený import SVG 2 ako znovupoužiteľných PDF Form XObjects s natívnou geometriou a arcami, CSS cascade, vector gradientmi, podporou clip a mask, Base 14 textom, opacity resources, link anotáciami rešpektujúcimi umiestnenie a štatistikami importu
Version 2.640.0
Added
- Pridaný verzionovaný importný profil HTML5 paged-media s tolerantným DOM parsovaním, print CSS cascade, stránkovaným block a table layoutom, voliteľnými AcroForm prvkami, ohraničenými callback-driven resources a štatistikami na operáciu
Version 2.639.0
Changed
- Veľké local-file mapovania teraz prispôsobujú nakonfigurovaný mapped-byte cap medzi väčšími sequential oknami a až 16 menšími MRU random-access oknami, zachovávajú explicitnú fixed-geometry voľbu a reportujú aktívnu geometriu, prechody, počty access patternov a peak mapped bajty
Version 2.638.0
Added
- Pridaný ohraničený cross-page JBIG2 symbol training s externými a natívnymi backendmi, jedným zdieľaným globálnym slovníkom, presným reuse duplicitných stránok, priamym vkladaním PDF image batchov, backend a size telemetriou a nameranými 78.8-percentnými úsporami kompresie na 100-stránkovom regression korpuse
Version 2.637.0
Changed
- Paralelné renderovanie načítaných stránok teraz znižuje počet požadovaných workerov podľa memory rozpočtu procesu, rezervuje každú deklarovanú stránku, drží rezervácie ordered outputu až po doručenie callbackov, budí čakajúcich na rozpočet pri zrušení alebo zlyhaní a reportuje concurrency, rezervačnú, admission, delay aj wait telemetriu
Version 2.636.0
Changed
- Prefetch načítaných stránok teraz kompiluje a renderuje mimo cache lock, ruší sa kooperatívne cez tokenizáciu aj playback, ustupuje foreground renderovaniu stránok a vystavuje progress, failure, preemption aj cancellation-latency telemetriu
Version 2.635.0
Added
- Pridané ordered streaming paralelné renderovanie stránok s callbackmi na volajúcom vlákne, ohraničeným completed-bitmap queue, producer backpressure, kooperatívnym zrušením, požičanými bitmap lifetimes a queue, byte, wait, completion aj delivery telemetriou
Version 2.634.0
Added
- Pridaná dvojstupňová paralelná pipeline načítaných stránok, ktorá kompiluje display listy mimo render-cache lock, štartuje playback skôr, než je skompilovaná celá sada stránok, dynamicky vyvažuje ohraničených workerov, zachováva poradie vstupu, znižuje alokáciu content tokenov a vystavuje stage, cache, completion aj latency telemetriu
Version 2.633.0
Added
- Pridané immutable reference-counted handly dekódovaných bitmap s copy-free cache hitmi, priamym thread-safe kreslením cez renderer, izolovanými mutable kópiami na želanie, lifetimes nezávislými od evikcie a kumulatívnou handle a copy telemetriou
Version 2.632.0
Changed
- Vykonávanie QuickJS teraz funguje cez statické objekty aj ABI-neutral bridge DLL na Win32 a Win64, s Unicode-safe hodnotami, deterministickým reportovaním stavu, konfigurovateľnými limitmi pamäte, stacku, skriptov, času aj interruptov, bezpečným DLL discovery, obnovou po odmietnutých skriptoch a reprodukovateľnými cross-platform runtime buildmi
Version 2.631.0
Changed
- Validácia business rules pre Factur-X a ZUGFeRD teraz vykonáva kompletný prekontrolovaný XPath 2 Schematron surface s externými code databázami, sekvenčnými bindingmi, kvantifikátormi, FLWOR sumami, stabilnými fallback rule identifikátormi, bezpečným ohraničeným XML parsovaním, explicitnými nálezmi evaluation errors, nulovým počtom tichých preskočení a fail-closed kombinovanou validáciou
Version 2.630.0
Added
- Pridané vstavané instancing TrueType variable fonts s mapovanými osami, zdieľanými aj privátnymi
gvartuplemi, IUP interpoláciou, aktualizáciami simple aj composite outlineov, phantom-point metrikami, bakingomHVAR,VVARaMVAR, kompaktným znovubudovaním statických glyfov, checksum-korektným výstupom a callback-free registráciou Unicode fontov
Version 2.629.0
Added
- Pridaný side-effect-free odhad CMS placeholderov z explicitných, provider alebo RSA certificate signature veľkostí, presné tvarovanie statických kontajnerov, konzervatívne rezervy pre dynamic payload, pre-sign rebuildy, capability-gated provider retry, prísne single-invocation záruky pre externých signerov, ohraničený sizing a detailná diagnostika pokusov
Version 2.628.0
Added
- Pridaný subsetting písem embedded v načítaných PDF na základe reachability, vrátane page content, nested Form XObjects, appearance stateov anotácií, zdieľaných font programov, formátov TrueType a CFF, výberu podľa encoded size, stabilných CID a ToUnicode mapovaní, detailných výsledkov a predvoleného odmietnutia pri prítomných signatúrach
Version 2.627.0
Added
- Pridaná automatická generácia PDF/UA štruktúry pre deklarativné layout stromy, vrátane nadpisov, zoznamov, tabuliek, obrázkov, metadát jazyka a alternate textu, pagination artefaktov, continuation-safe marked-content referencií, zachovania reading order, semantickej validácie a štruktúrnych štatistík
Version 2.626.0
Added
- Pridaný deklarativný document DOM s dedičnými štýlmi, znovupoužiteľnými component factories, textom, spacermi, stackmi, kontajnermi, sekciami, opakovanými headermi a footermi, váženými tabuľkami s opakujúcimi sa header riadkami, ohraničenou continuation hĺbkou, pagination štatistikami, textovými a tabuľkovými fragmentmi bez kopírovania, lineárnym top-level prechodom, okamžitým page flushingom a zodpovedajúcimi Delphi a C++Builder surfacemi
Version 2.625.0
Added
- Pridaná opakovateľná štatistická performance gate pre Win32 a Win64, ktorá izoluje load, save, render a text extraction, zaznamenáva warmupy a 30 raw vzoriek s p50, p95, sample varianciou, RSS, process I/O, prostredím a deterministickou fixture identitou, potom vyhodnocuje stabilné JSON prahy a pri regresii vracia failing exit code
Version 2.624.0
Changed
- Prepracované parsovanie jednoduchých dictionary a array okolo immutable source spanov, priamej numeric konverzie, single-pass nested kontajnerov a indexovaného vkladania do dictionary, s verejnou materialisation telemetriou; 30,000-párový Win32 fixture znížil bajty alokované v piatich priebehoch o 64.7 percent a čas behu z 3,656 ms na 46 ms
Version 2.623.0
Added
- Pridané konfigurovateľné parser limity pre bajty jednotlivých tokenov, agregátne tokeny, položky array či dictionary a malformed tokeny, plus prísny untrusted-input preset, typované limit výnimky a telemetria na load; regression gates odmietnu 2 MiB token aj kontajner s miliónom tokenov pod 250 ms a pod 37 MiB procesným peakom
Version 2.622.0
Added
- Pridané explicitné API pre uvoľňovanie object graphu načítaných stránok a telemetriu, ktoré zahodia čisté page-owned korene a render cache, pričom zachovajú indirect zdieľané resource a reload metadáta; sekvenčné spracovanie 100,000 stránok zostáva na stabilných 69.3 MiB peaku a uvoľnené obyčajné či komprimované stránky sa znovu materializujú so svojou pôvodnou object identitou
Version 2.621.0
Changed
- Dekódované object-stream kontajnery teraz používajú konfigurovateľnú byte-capped LRU cache s okamžitou evikciou na kontajner, source-backed reloadom po evikcii, zero-retention módom a peak-byte, eviction aj reload telemetriou
Version 2.620.0
Changed
- Veľké obyčajné page stromy sa teraz otvárajú do kompaktných placeholderov, resolvujú náhodné stránky cez
/Count-riadený prechod a hash index indirect objektov, cachujú resolvované stránky, vystavujú materialization telemetriu a ovládanie a automaticky sa rozbalia pred štrukturálnymi mutáciami alebo save operáciami
Version 2.619.0
Changed
- Načítané AcroForm polia, kvalifikované názvy, widgety, anotácie a stránky teraz zdieľajú lazy obojsmerný relationship cache s reverse annotation lookupom, page lookupom na widget, activity telemetriou, explicitnou invalidáciou pre raw object-graph editácie a mutation-safe automatickou údržbou
Version 2.618.0
Changed
- Page-object lookup teraz používa lazily znovubudovaný mutation-aware reverse index pre object numbers a resolvované page pointery, čím nahrádza opakované page-table scany pri kopírovaní stránok, outlineoch, named destinations, actionoch, formulároch, accessibility aj reconciliation page stromu, a vystavuje validity aj activity telemetriu
Version 2.617.0
Changed
- Porovnávanie renderovaných dokumentov teraz podporuje caller-selected DPI, RGB alebo luminance color toleranciu, changed-pixel ratio aj SSIM-like similarity gates, deterministické súvislé changed regióny, voliteľné PNG difference overlaye a fail-closed page aj agregátne pixel rozpočty s explicitnou rendering diagnostikou
Version 2.616.0
Changed
- Porovnávanie dokumentov teraz prechádza indirect object grafmi deterministickými catalog-based cestami, hashuje hodnoty a streamy v explicitných resource limitoch, zarovnáva stránky pred klasifikáciou insertions, deletions, moves a changes, odlišuje presunuté objekty od pridaných a odobratých a reportuje nekompletné porovnania namiesto toho, aby považovalo budget-limitované výsledky za identické
Version 2.615.0
Changed
- Dekódovanie loaded images teraz používa 16 cache metadata shardov a presnú per-key singleflight koordináciu, vykonáva nezávislé nákladné decodes súčasne pri zachovaní jedného owner decode pre duplicitné požiadavky, vynucuje nakonfigurované byte aj entry rozpočty naprieč všetkými shardmi a vystavuje cached decode entry pointy plus concurrency telemetriu; štyri nezávislé 12,000-pixelové JPEG požiadavky škálujú 3.72-krát na štyroch Win64 workeroch, kým osem požiadaviek s rovnakým kľúčom dekóduje raz
Version 2.614.0
Changed
- Low-resolution grayscale a RGB JPEG rendering teraz volí ohraničenú inverse-DCT scale 1/2, 1/4 alebo 1/8, streamuje zmenšené scanlines cez fixed-point resampler priamo do presnej cieľovej bitmapy, zachováva decode rozpočty, zrušenie aj codec-worker izoláciu a vystavuje source, scaled, target, scanline aj memory telemetriu cez
GetLastJPEGReducedDecodeInfo; regression fixture z 12,000 × 12,000 na 300 × 300 beží 24.05-krát rýchlejšie než full decode bez alokácie svojho 432 MB source rastera
Version 2.613.0
Changed
- Polia
/Contentsnačítaných stránok teraz vystavujú lazy seekable concatenated stream, držia unfiltered segmenty v source-backed úložisku, dekódujú najviac jeden filtered segment naraz, používajú amortizovane lineárnu akumuláciu tokenov a bajtov, pri editovaní zachovávajú pôvodné streamy pridaním nového segmentu a udržujú sekvenciu 1 GiB s 10,000 segmentmi pod 64 MiB dodatočnej pracovnej pamäte
Version 2.612.0
Changed
- Incremental updates teraz držia zdrojový súbor write-locked a file-backed namiesto uchovávania kompletných zdrojových bajtov, navštevujú a emitujú len zmenené, nové a zmazané objekty v sparse xref subsections, streamujú pôvodný prefix do nového targetu a pri same-target saves pripájajú priamo s rollbackom; 4 GiB revízia s jedným objektom zostáva v rámci 128 MiB dodatočnej pracovnej pamäte
Version 2.611.0
Added
- Pridaná ohraničená document-scoped cache loaded-font dekodérov s LRU limitom 32 MiB a 128 záznamov, singleflight parse reuse naprieč stránkami, loaded text extraction, SVG exportom a text replacement, nezávislé deep-copy výsledky z
GetLoadedFontDecoder, konfigurovateľný memory rozpočet a telemetry API a automatická invalidácia graph, page, reload, JSON Patch a CMap konfigurácie; opakované použitie jedného zdieľaného indirect písma teraz parsuje jeho encoding, widths,ToUnicode,CIDToGIDMapa descendant mapovania len raz, kým je retained
Version 2.610.0
Changed
- Zrýchlený page import a object grafting nahradením lineárneho, presne rezizovaného foreign-object lookup poľa operation-scoped open-addressed mapou s power-of-two kapacitou, kľúčovanou zdrojovým dokumentom, object number a generáciou; zdieľané indirect objekty aj cyklické grafy si pri batch importoch zachovávajú existujúcu identity sémantiku, kým veľké object grafy teraz využívajú registráciu v amortizovanom konštantnom čase a lookup v očakávanom konštantnom čase
Version 2.609.0
Changed
- Zlepšená fidelity SVG exportu stránok: priame graphics-state operátory
w,J,j,Madteraz zachovávajú šírku čiary, pomenované cap a join štýly, miter limity, dash arrays aj dash phase;q/Qtieto atribúty obnoví naprieč nested contentom a Form XObjects; even-odd paint operátoryf*,B*ab*emitujúfill-rule="evenodd"; PDF hairlines s nulovou šírkou zostávajú viditeľné cez non-scaling SVG strokes
Version 2.608.0
Added
- Pridaná infraštruktúra static linkingu QuickJS:
Lib/HPDFQuickJSStatic.paslinkuje päť QuickJS OMF objektov (built s bcc32c z patchnutých zdrojov) cez direktívy{'$L'}— bez DLL závislosti — a deklaruje kompletný C runtime surface (47 symbolov: msvcrt C99 math, Borland 64-bit aritmetika, size-neutral atomic stuby, pthread stuby);thirdparty/QuickJS/build-static.batautomatizuje patch-and-compile pipeline. Známe obmedzenie:JS_NewRuntimeprejde, aleJS_NewContextnarazí na access violation, pretože odstránenie_Atomicmení poradie inicializácie structov; DLL build z v2.607.0 zostáva funkčnou evaluation cestou
Version 2.607.0
Added
- Pridaná generácia 2D barcode DataMatrix (
Lib/HPDFDataMatrix.pas): kódovanie v ASCII mode s digit-pair kompresiou, Reed-Solomon ECC nad GF(256) s DataMatrix primitívnym polynómom $12D, štvorcové veľkosti 10x10 až 144x144, striedavosmerné umiestňovanie codewordov a L-shaped finder pattern;THPDFPage.DrawDataMatrixrenderuje zakódovanú maticu ako mriežku vyplnených module štvorcov - Pridaná generácia stackovaného 2D barcode PDF417 (
Lib/HPDFPDF417.pas): kódovanie v text mode s base-30 párovaním znakov, Reed-Solomon ECC nad GF(929) s primitívnym prvkom 3, kódovanie symbol descriptora a row/column layout so start/stop patternmi;THPDFPage.DrawPDF417renderuje codeword maticu - Pridaný binding JavaScript engine QuickJS (
Lib/HPDFQuickJS.pasplus pre-builtquickjs.dllpre Win32/Win64 podthirdparty/QuickJS/bin/): dynamické DLL loading, runtime+context lifecycle a evaluation API surface (Eval/EvalInt/EvalFloat);Evalcode path má známy Win32 startup crash pri linkovaní do aplikácie a je zdokumentovaný na ďalšie prešetrenie - Pridaný architektonický extraction target
THPDFWriter(Lib/HPDFWriter.pas): register xref entry (free/used/compressed), serializér klasickej xref tabuľky a builder trailer dictionary, na ktorý save path THotPDF inkrementálne deleguje
Version 2.606.0
Added
- Pridané dva príkazy HotPDFCLI:
decryptnačíta zašifrované PDF so zadaným heslom, dešifruje ho cezDecryptLoadedDocumenta uloží nešifrovanú kópiu (-ovýstupná cesta, predvolené<input>-decrypted.pdf) aoptimizeznovu komprimuje každý stream s FlateDecode cezCompressLoadedDocument(-ovýstupná cesta, predvolené<input>-optimized.pdf, odmieta zašifrovaný vstup)
Version 2.605.0
Added
- Pridaná generácia 2D barcode QR Code: nový
Lib/HPDFQRCode.pasimplementuje kompletný QR encoder (numeric, alphanumeric a byte encoding módy; Reed-Solomon error correction nad GF(256); verzie 1-40 so všetkými štyrmi EC levelmi L/M/Q/H; všetkých osem mask patternov s penalty evaluáciou; korektné umiestňovanie modulov vrátane finder, timing, alignment, format info a version info patternov). MetódaTHPDFPage.DrawQRCoderenderuje zakódovanú maticu ako mriežku vyplnených module štvorcov na ľubovoľnej zapisovanej stránke (ModuleSizev bodoch, konfigurovateľná EC level aj farba)
Version 2.604.0
Added
- Pridaná kompletná decode tabuľka MacExpertEncoding: horná 128-bajtová polovica teraz mapuje expert glyfy (small capitals, old-style figures, superior/inferior číslice, zlomky, typografické symboly) na najbližší Unicode codepoint alebo Private Use Area surrogate, čím nahrádza pôvodný raw-byte identity fallback, ktorý produkoval rozhádzaný výstup pre dokumenty s expert-kódovanými Type 1 fontmi
Version 2.603.0
Fixed
- Opravené dlho pretrvávajúce flaky zlyhanie v
ConcurrentObjStmDecryptionMatchesSerial: globálnaFRevisionbola po downgraduaes256naaes128pri predvolenej verzii PDF 1.6 zastaraná, čo posielaloCreateKeysdo V5 vetvy, ktorá nikdy nevyplní legacy password hashe/Oa/U— serializovaný encryption dictionary potom niesol prázdne či zastarané password stringy a súbor nebolo možné otvoriť. Fix znovu odvodzujeFRevisionz downgradnutéhoFCryptKeyTypev setteri aj na oboch miestach version negotiácie a legacy dictionary vetva teraz vyhodí zrozumiteľnú diagnostiku, keď password stringy nemajú presne 32 bajtov
Added
- Pridaný príkaz
htmlHotPDFCLI: renderuje obmedzený HTML súbor (h1-h6, p, ul, ol, hr, inline markup) do PDF cezHPDFRenderHTMLDocument
Version 2.602.0
Added
- Pridaný block-level HTML import:
THPDFHTMLImporter(a convenience wrapperHPDFRenderHTMLDocument) renderuje obmedzenú HTML podmnožinu do zapisovaného dokumentu — nadpisyh1-h6s veľkosťami na level, odsekyp(holý body text sa stáva implicitnými odsekmi), zoznamyul/ols odsadenýmilipoložkami (bullet alebo číslovanie1.), pravidláhr, automatické page breaky pri spodnom okraji a browser-style recovery pre nezatvorené blokyp/li; regiónyhead/script/stylesa preskakujú a container tagy prechádzajú transparentne. Inline markup (b/i/u/font/a/sub/sup, entity, word wrap) sa deleguje na existujúci rendererTextOutHTML, takže bloky držia pokope v rámci stránky; tabuľky, obrázky, CSS a nested zoznamy sú mimo scope
Version 2.601.0
Added
- Pridané tri príkazy HotPDFCLI:
mergepripojí každú stránku dodatočných vstupov k prvému dokumentu a uloží zlúčený súbor (-ovýstupná cesta, aspoň dva vstupy, kolízia output/input chránená),splitzapíše každú vybranú stránku dokumentu do vlastného single-page súboru (<prefix>-page<N>.pdf,--pagesrozsah od 1, predvolený prefix z input path) aexport-svgzapíše SVG export každej vybranej stránky (<prefix>-page<N>.svg, predvolená stránka 1)
Version 2.600.0
Added
- Pridaný SVG export stránok:
BuildLoadedPageSVGvracia standalone SVG 1.1 dokument pre ľubovoľnú načítanú stránku aSaveLoadedPageAsSVGho zapíše na disk; exportujú sa paths (paint operátory fill/stroke/fill-and-stroke s farbami DeviceRGB), text runy (<text>elementy pozicionované po znaku, používajúce rovnaký font-decode fallback reťazec ako text extraction, s rešpektovaním Tf/Tc/Tw/Tz/Ts a text matrix vrátane rotácie a škálovania), image XObjects (dekódované a embedded ako base64 PNG data URI mapované cez CTM unit square) a Form XObjects (rekurzívna interpretácia s form matrix a vlastnými /Resources) a stránky s /Rotate 90/180/270 sa exportujú v otočenej canvas geometrii - Známe limity zdedené zo zdieľaného content-stream device dispatchera: žiadne W/W* clipping, žiadne
shshadingy, žiadne Type 3 fonty, inline images reportujú len metadáta a stroke parametre podporované cez ExtGState (LW/LC/LJ/ca/CA) sa rešpektujú, kým plain operátoryw/J/j/dsa nedispatchujú
Version 2.599.0
Added
- Pridaný command-line tool HotPDFCLI (
tools/HotPDFCLI): konzolový front end s tromi príkazmi —info(PDF verzia, počet stránok a veľkosť prvej stránky, šifrovacia metóda, linearization a xref štruktúra, počítadlá annotation/font/image/form/signature, Info metadáta),extract-text(rozsahy--pagesod 1, súborový výstup--out,--layoutmonospaced grid mode zodpovedajúci vizuálnemu reading order) averify(status na signature field, signer, reason, hash, signing time, pokrytie celého dokumentu a certificate state, nenulový exit pri zlyhaní ľubovoľnej signatúry);Build-HotPDFCLI.batprodukuje Win32 a Win64 binárky
Version 2.598.0
Added
- Pridané
SetRenditionMediaPlayParameters: pripája alebo aktualizuje dictionary/Pmedia play parameters mediálnej rendition s must-honour/MHalebo best-effort/BEtargetmi nesúcimi percento hlasitosti, viditeľnosť controllera, autoplay flag, fit mode (meet/slice/fill/scroll/hidden), počet opakovaní a trvanie ako intrinsic, infinity či explicitný timespan - Pridané
SetRenditionMediaScreenParameters: pripája alebo aktualizuje dictionary/SPmedia screen parameters mediálnej rendition (typ okna floating/full-screen/hidden/screen-annotation rectangle, farba pozadia DeviceRGB, opacity pozadia, index monitora) - Pridané
SetSoundAnnotationParameters: prepisuje sample formát/Soundstreamu Sound anotácie (rate, kanály, bity na sample, kódovanie Raw/Signed/muLaw/ALaw) nad rámec hardcoded defaultov 22050 Hz stereo 16-bit Signed a nastavuje ikonu/Nameako Speaker či Mic
Version 2.597.0
Added
- Pridané
SetMovieAnnotationParameters: prepisuje dictionary/Moviemovie anotácie (aspect pair, rotácia 0/90/180/270, trvanie v sekundách, viditeľnosť posteru), ktorýAddMovieAnnotationvytvoril so svojimi hardcoded defaultmi - Pridané
SetRichMediaPresentation: napĺňa dictionary aktivácie, deaktivácie a prezentácie/RichMediaSettingsRichMedia anotácie (názvy podmienok akoPOpage-open, flagy toolbar / navigation UI / context click / transparency); prázdny názov podmienky vynechá zodpovedajúci dictionary - Pridané
ResolveIndirectObjectnaTHotPDF: resolvuje indirect referencie, ktoré autoring strana ukladá do zapisovaných dictionary, takže volajúci môžu navigovať v čerstvo postavených object stromoch;AddRichMediaAnnotationteraz tiež registruje svoju anotáciu vLastAnnotation
Version 2.596.0
Added
- Pridané live discovery dôkazov o revokácii: parser certifikátov teraz číta URI extensie AIA OCSP responder a CRLDistributionPoints,
HPDFExtractCertificateRevocationURLsich vystavuje na certifikát aHPDFCollectCMSRevocationRequestsz nich robí evidence requesty (GET pkix-crl na distribution point, POST ocsp-request s minimálnym RFC 6960 SHA-256 CertID body postaveným z certifikátu a jeho issuera, self-signed certifikáty sa resolvujú ako vlastný issuer) - Pridané
HPDFValidateCMSCertificatePathOnline: zbiera tieto requesty, vykonáva ich cez caller-supplied transport nad existujúcou retry/worker mašinériou (knižnica nikdy neotvára sockety) a každú stiahnutú OCSP odpoveď a CRL podstrkáva offline validátoru; neúspešné fetchy degradujú na offline evidence sémantiku
Version 2.595.0
Added
- Pridané dekódovanie JBIG2 halftone regiónov (segment typy 22/23): pattern dictionary (typ 16) s MMR alebo arithmetic collective bitmapami, gray-scale bit-plane stacky v MMR (byte-aligned chained planes) aj arithmetic forme (jeden zdieľaný MQ dekodér), grid umiestnenie s 8.8 fixed-point vektormi a voliteľnou blank mapou HSKIP
- Pridané standalone JBIG2 generic-refinement regióny (typy 42/43, GRTEMPLATE 0/1 s TPGRON) refinujúce archivovanú bitmapu referencovaného segmentu alebo page buffer
- Pridané
AddPubSecKeyMaterial/ClearPubSecKeyMaterials: dodatočné privátne kľúče recipientov skúšané proti každému envelope/Recipients, keď primárnyPubSecKeyMaterialnesedí - Pridané test-stream buildery
HPDFJBIG2Codec_EncodeHalftoneRegionTestStreamaHPDFJBIG2Codec_EncodeStandaloneRefinementTestStreampokrývajúce nové segment typy end to end
Fixed
- Opravené načítavanie dokumentov šifrovaných public key: legacy object pass nechal po pubsec spliti
FileKey,StringKeyTypeaStreamKeyTypeneinicializované, takže každý objekt sa dešifroval s odpadkovým kľúčom (Win64 load zlyhal úplne; Win32 potichu produkoval nesprávny plaintext) - Opravený round-trip šifrovaných stringov: ciphertext sa teraz vždy serializuje ako hex string, pretože literal stringy normalizujú CR, LF a CRLF na jediné LF a escape processing mohol prevrátiť ľubovoľné cipher bajty
Version 2.594.0
Added
- Pridaná vstavaná identity aproximácia pre preddefinované CJK UCS2/UTF16 CMapy (
UniJIS-UCS2-H,UniGB-UTF16-Va ďalších 15):HPDFLoadStandardCMapFileodpovedá z vstavanej tabuľky, keď na disku nie sú CMap resources, takže Type0 text extraction už nedekóduje 2-bajtové kódy po jednom bajte - Pridané user-supplied JBIG2 Huffman tabuľky (segment typ 53, descriptor forma Annex B.2): natívny dekodér parsuje table segmenty a selector value 3 SDHUFFDH/SDHUFFDW/SDHUFFBMSIZE/SDHUFFAGGINST symbol dictionary a SBHUFFFS/DS/DT/RDW/RDH/RDX/RDY/RDSIZE text regiónov ich resolvuje z referred-to segmentov
- Pridané
SetStructureClassMapEntryregistrujúce zdieľaný attribute dictionary názvu triedy v StructTreeRoot/ClassMap, čím dopĺňa /C APISetStructureElementClass
Fixed
- Opravená key recovery pri public key s viacerými recipientmi: envelope
/Recipientssa ukladali do necounted listu, ktorý aliasoval jeden buffer naprieč záznamami, takže dokumenty s dvomi a viac recipientmi odvodzovali nesprávny file key pre každú šifru; envelopey sú teraz owned kópie a legacy SHA-1 path hashuje pristíne envelope bajty ako AES-256 path
Version 2.593.0
Added
- Pridané renderovanie Shading Type 1 (function-based): viditeľná časť domain obdĺžnika sa subdividuje quadtree riadenou colour chybou a každý leaf cell sa maľuje ako dva gradient trojuholníky s vertex farbami vzorkovanými z 2-input funkcie, čím nahrádza predchádzajúci fallback diagnostic "not sampled"
- Pridané zhovievavé vyhodnocovanie 2-input funkcií: funkcia, ktorá deklaruje len jeden input, degraduje na
f(x)(konštantná v druhej domain súradnici) namiesto zlyhania, takže sampled aj exponenciálne funkcie za Type 1 shadingom sa stále vykreslia
Version 2.592.0
Added
- Pridaná karanténa object streamov: poškodený kontajner
/Type /ObjStmsa zaznamená s dôvodom (THPDFObjStmQuarantineReason: not a stream, bad dictionary, bad header, bad stream size, decrypt failed, decompress failed,/Firstout of range, header unparsable alebo container exception), s diagnostickým riadkom a číslami member objektov, ktoré zostali neresolvované, pričom nezávislé kontajnery sa načítavajú ďalej - Pridaná member-level karanténa (
osqrMemberUnparsable): member body, ktorý sa nepodarí sparsovať z úspešne dekódovaného kontajnera, sa zaznamená raz bez ovplyvnenia súrodencov aGetLoadedQuarantinedObjStmCount/GetLoadedQuarantinedObjStmInfovystavujú každý záznam; karanténne záznamy prežívajú recovery retry jedného loadu, deduplikujú sa na kontajner a čistia sa pri ďalšom loade
Version 2.591.0
Added
- Pridané paging cross-reference mapy: keď hustá mapa prekročí prah
THotPDF.XRefMapPagingThresholdzáznamov (default 250000, 0 vypína), load-complete pass ju zbali doTHPDFXRefMapPager-- triedeného snapshotu packovaných 24-bajtových slotov obsluhovaného binárnym vyhľadávaním cez LRU-materializovanú 64-záznamovú stránku -- a uvoľní husté pole - Pridané
GetLoadedXRefMapPagedreportujúce paged stav s počtom záznamov, bajtmi snapshotu a počtami window hit či miss; free-set rebuild incremental save aj indirect/Lengthresolution lazily materializovaných stream memberov odpovedajú cez pager, takže paged dokumenty si držia plnú funkcionalitu
Version 2.590.0
Added
- Pridané explicitné object lifecycle stavy:
THPDFObjectLifecycleStatezískavaolsRaw(compressed membery sú indexované, ale nie materializované),olsParsed(materializované zo source bajtov, bez úprav) aolsFlushed(serializované do output dokumentu); loaded objekty teraz nesúolsParsednamiesto generického clean stavu - Pridané
MarkRaw,MarkParsedaMarkFlushednaTHPDFObject;GetLoadedObjectLifecycleStatevraciaolsRawpre compressed membery, ktorých body ešte nebol materializovaný - Pridané
RawCount,ParsedCountaFlushedCountdoTHPDFObjectLifecycleStatistics; každá full-save path (plain, packed, linearized) presúva emitované objekty doolsFlushed, kýmIsDirtynaďalej znamenáolsDirtyaleboolsMustWrite
Version 2.589.0
Added
- Pridaná zero-copy materializácia memberov object streamov: compressed membery sa teraz parsujú cez read-only slice view nad zdieľaným dekomprimovaným container bufferom namiesto duplikovaného substringu a druhej kópie streamu, pričom sa zachová presný byte layout vrátane trailing line feedu
- Pridaný
THPDFObjectStreamSliceStream, public read-only view stream vystavujúci (source, offset, length) slicey s virtuálnym trailing LF, plus dve nové poliaTHPDFObjectStreamCacheInfo,SliceViewCountaSliceViewBytes, reportujúce, koľko memberov sa materializovalo cez zero-copy viewy
Version 2.588.0
Added
- Pridané concurrent dešifrovanie kontajnerov object streamov cez novú jednotku
HPDFObjStmDecode:THotPDF.ObjStmDecryptWorkers(default 1) ohraničuje worker vlákna, ktoré preddekryptujú každý distinct AES-256 šifrovaný kontajner/Type /ObjStmpred serializovaným decode-and-index passom; key material na kontajner sa kopíruje a scrubuje na request, výsledky držia queue poradie a legacy RC4 / AES-128 kontajnery zostávajú na volajúcom vlákne
Version 2.587.0
Added
- Pridaný reload public key šifrovaných dokumentov: dokumenty šifrované s
/Adobe.PPKLite//Adobe.PubSecsa teraz načítajú, keď volajúci priradíPubSecKeyMaterial(zHPDFParsePFX); prescan rozbali RSA-OAEP envelope/Recipients, obnoví seed a znovu odvodí file key, takže dešifrovanie kontajnerov aj stringov beží nezmenene - Pridaný callback
PubSecRecipientQueryvyberajúci, ktorý recipient envelope dodaný kľúč rozbalí, sPubSecRecipientQueryContextpre stav volajúceho - Pridané
HPDFUnwrapRSAOAEPRecipientEnvelopeobnovujúce seed a permission bity z recipient envelope CMS EnvelopedData
Fixed
- Opravené defekty public key writera odhalené reload round-tripom: recipient envelopey poškodzoval round-trip binárnych stringov cez Unicode (teraz sa ukladajú hex-encoded), file-key digest hashoval envelope bajty s one-byte offsetom a stringy
/Recipientssa šifrovali ako obyčajné stringy — teraz sa vylúčia cez explicitný flagSkipEncryption
Version 2.586.0
Added
- Pridaná continuation pre XFA overflow target:
<overflow target="..."/>teraz smeruje pretečené flowed položky do obdĺžnika pomenovaného target subformu, stackuje continuation riadky, kým sa target nezaplní, s fallbackom na bežný reťazec content área a s warningom, keď target chýba, je menší než jedna položka alebo je plný
Version 2.585.0
Added
- Pridané renderovanie XFA barcode:
<draw><value><barcode type="...">teraz emituje device-independent bars namiesto degradácie na read-only text field, s mapovaním XFA symbology názvov (code3Of9,code128,ean13,upcA,codabara ďalších) na barcode engine - Pridaná XFA transform graphics:
rotate,<tran><scale>a<tran><translate>obalia každý druh grafiky (line, arc, rectangle, image, text, barcode) do transformácieq ... cm ... Qs rotáciou okolo stredu
Version 2.584.0
Added
- Rozšírený FormCalc o string funkcie:
Concat,Len,Left,Right,Substr,Replace,Lower,Upper,TrimaSpace, vrátane quoted string literálov a zmiešaných text/numeric výrazov - Pridaná FormCalc konverzia dátumov:
Date2Num/Num2Dateprevádzajú ISO dátumy tam a späť cez serial day count epochy 1900, plusDate() - Pridaná FormCalc finance knižnica:
Pmt,FV,PV,RateaNPers konvenciou cash-flow znamienok, komponovateľné s numeric funkciami akoRound
Version 2.583.0
Added
- Dokončená XFA SOM resolution s intermediate wildcard segmentmi holého
*, ktoré zostupujú do každej child vetvy, a so skutočnými class tokenmi:#subform/#dataGroupvyberajú container-class nody,#fieldvyberá field-like nody a ostatné#nametokeny matchujú custom data nody - Class tokeny sa teraz kombinujú s indexovaním (
#subform[2]počíta každý node triedy v document order) a zúčastňujú sa descendant..hľadania
Version 2.582.0
Added
- Pridané zladené appearance statey radio buttonov a checkboxov: zápis button value cez
SetFormFieldValuealeboSetLoadedFormFieldValueByNameteraz vyberá zodpovedajúci/ASstate v každom widgete a flattening sa zladí pred generovaním appearanceov, takže zastaranýOffstate už nikdy nevyhrá nad importovanou hodnotou - Pridaná regeneračná stabilita pre button appearancey:
EnsureLoadedFieldAppearanceStreamzachováva existujúci on-state názov state dictionary a odvodzuje on-state názvy radio kidov z ich vlastného/Texport value
Version 2.581.0
Added
- Pridané rotované field appearancey: widgety s
/MK /Rteraz nesú rotáciu ako/Matrixna generovanej appearance pri zachovaní nezrotovaného form space, takže rendering comb, multiline aj listbox ostáva nezmenený a flattening mapuje transformovaný box na/Rect - Pridaná podpora rich-text appearance: polia bez plain
/Vale s/RVbody renderujú znakový content s odstráneným inline XHTML markupom - Pridané whole-word wrapping pre multiline text polia: pridlhé riadky sa lámu na hraniciach slov pomocou per-character odhadu šírky, takže slová zostanú celé namiesto orezania
Version 2.580.0
Added
- Pridané CID-font field appearancey:
EnsureLoadedFieldAppearanceStreamresolvuje font z/DAcez AcroForm dictionary/DRa znovu pripojí document font object do appearance resources, takže Type0 fonty renderujú CJK hodnoty ako UTF-16BE hex text namiesto Helvetica substitúcie - Pridané appearance pokrytie pre každú triedu AcroForm polí: checkbox a radio widgety teraz dostávajú
Offplus on-state appearancey (vector check mark a vyplnený kruh, bez závislosti na ZapfDingbats), push buttony renderujú captiony a listboxy maľujú jeden/Optriadok každý so zvýraznenou vybraným riadkom - Pridaný per-character odhad šírky merajúci CJK a full-width range na celé em, čo zlepšuje quadding aj comb umiestnenie pre multi-byte hodnoty
Version 2.579.0
Added
- Pridané prísne form-script rozpočty cez property
THotPDF.FormScriptBudgets: wall-clock CPU cutoff, kumulatívny memory rozpočet a cap generovaného outputu teraz ohraničujú každý behEvaluateLoadedFieldJavaScriptaj každý recalculation pass - Pridaný record
THPDFScriptBudgetspokrývajúci dĺžku skriptu, statements, recursion depth, operácie, CPU čas, per-value aj kumulatívnu pamäť a output bajty; nula v ktoromkoľvek poli daný limit zruší - Pridaná evaluation telemetria:
THPDFJavaScriptEvaluationResultteraz reportujeElapsedMillisecondsaValueBytespopri počte operácií
Version 2.578.0
Added
- Pridaný dependency graph výpočtov formulárových polí cez
THotPDF.BuildLoadedFormCalculationGraph: každý Calculate skript registrovaný v/COsa staticky analyzuje a linkuje do topologického evaluation poradia - Pridané
THotPDF.RecalculateLoadedFormFieldsIncrementalprepočítavajúce len výpočty, ktoré tranzitívne čítajú zmenené pole, takže reťazce typu subtotal až total sa propagujú v jednom passe bez ohľadu na nesúvisiace výpočty - Pridané dirty-field tracking: zápisy cez
SetFormFieldValueaSetLoadedFormFieldValueByNameakumulujú dirty set, ktorý konzumuje parameterless incremental overload, explicit-changed-fields overload aj plný recalculation pass - Pridaná jednotka
HPDFFormCalcGraphvystavujúca affected-closure queries, kompletnú target sekvenciu, počty cyklov a neresolvované source názvy pre tooling preview - Pridané
HPDFExtractSafeJavaScriptFieldReferencesextrahujúce field názvy, ktoré safe-subset skript číta z argumentovAFSimple_Calculatea prístupovgetField, s preskočením string literálov
Changed
- Dependency cykly teraz držia
/COdocument order a zmenené pole nikdy neprepočíta vlastný skript, takže cyklické dokumenty sa správajú ako one-pass recalculation a user-written hodnoty vždy prežijú
Version 2.577.0
Added
- Pridaná batch validácia signatúr cez novú metódu
THotPDF.ValidateLoadedSignatureBatch: každá načítaná signatúra sa v jednom passe overí po bajtoch aj validáciou certifikátov so štruktúrovanými výsledkami na signatúru - Pridaná jednotka
HPDFSignatureBatchso zdieľaným certificate-path cache: signatúry opakujúce rovnaký signer chain znovu použijú predchádzajúci path verdikt namiesto jeho prepočtu - Pridané zdieľané timestamp caching naprieč batchom: identické RFC 3161 document timestamps aj embedded signature timestamp tokeny preskočia reverifikáciu cez
THPDFCMSVerifyOptions.SkipSignatureTimestampVerification - Pridané zdieľanie revocation evidence naprieč signatúrami: OCSP odpovede a CRL vidité počas jednej validácie sa ukladajú do
THPDFRevocationEvidenceCachea vkladajú do neskorších signatúr pod novým evidence sourcevesCache - Pridané
THPDFSignatureValidationBatchpre standalone batch bež sFailFast, worker paralelizmom, cancellation tokenmi a zdieľanou externou revocation cache - Pridané
HPDFSignatureBatchResultToJSONrenderujúce výsledok celého batchu so štatistikami cache ako machine-readable JSON
Version 2.576.0
Fixed
- Opravený crash Showcase dema s access violation pri štarte:
THPDFViewerspúšťaOnPageChangepočas konštrukcie aj rebindingu, takže prvá generácia galérie teraz beží zOnShow(po existencii window handleov) a každý event handler sa stráži proti controlom, ktoré sú stálenil - Opravené embedovanie kompletných TrueType fontov v Showcase galérii pre jej Unicode vzorky: font subsetting je teraz zapnutý, čo zmenšilo desaťstránkový dokument z cca 3.9 MB na cca 336 KB
Version 2.575.0
Added
- Pridaná tvorba a validácia PDF MAC podporujúca viacero algoritmov pre SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-384 a SHA3-512, vrátane streaming range hashovania a consistency kontrol CMS algorithm protection
- Pridané explicitné
THPDFPDFMACOptionsprofily compatibility, modern, high-assurance a custom s generovacími algoritmami, validation allowlistami, voliteľným vynútením AES-256-GCM, policy diagnostikou a source-compatible default overloadmi
Security
- PDF MAC validácia teraz odkryje encoded digest pred hashovaním veľkých byte rangeov a odmieta nepovolené algoritmy či encryption módy pred autentizáciou, kým HMAC-SHA-256, HKDF-SHA-256 a AES-256 key wrap zostávajú fixné formátom dokumentu
Version 2.574.0
Added
- Pridané
SaveIncrementalUpdateAuthenticateds módmi cryptographic-integrity a trusted-certificate: metóda zapíše kandidáta do rovnakého adresára, autentizuje každú signatúru nesúcu politiku, vynucuje DocMDP, FieldMDP, UR či UR3, Identity, unknown-transform rozhodnutia naprieč neskoršími revíziami a atomicky nahrádza target až po úspechu každej politiky
Security
- Revision analysis teraz rekonštruuje transform politiky z presného signed snapshotu a viaže ich na pôvodný signature object, byte range a CMS value namiesto dôvery neskorším redefiníciám v aktívnom object grafe, pričom odmietnutí kandidáti sa zmažú bez zmeny existujúceho targetu
Version 2.573.0
Added
- Pridané vlajkové demo
ShowcasepodDemo\Delphi: pri štarte generuje desaťstránkový feature-gallery PDF (gradient cover, typografia s inline rich textom, vector gradienty / patterny / transparentnosť, faktúraTHPDFTable, barcode symbology, runtime maľované obrázky, anotácie a linky, optional-content vrstvy a PAdES signature appearance) a renderuje ho vo vnútri embeddedTHPDFViewerso synchronizovaným topic zoznamom - Pridaná one-click akcia
Encrypt AES-256do Showcase dema, ktorá znovu vybuduje galériu s AESV3 (R6) šifrovaním, user heslom a print-only permissionami doHotPDF-Showcase-Encrypted.pdf - Pridaná bookmark navigácia pre každú Showcase gallery stránku cez
BeginDoc(True)aOutlineRoot.AddChild, takže generovaný dokument sa otvára s naplneným outline panelom
Version 2.572.0
Added
- Rozšírená inspekcia signature transform a klasifikácia incremental zmien naprieč všetkými štandardnými metódami:
GetLoadedSignaturePermissionsteraz reportujeDocMDP,UR,FieldMDP,Identity, unknown metódy, väzbu Catalog/URverzus/UR3, každý štandardný usage-right bit a ohraničený tranzitívnyIdentity /Dataobject scope; revision analysis rozlišuje form fills, signatúry a create/delete/modify operácie anotácií a embedded súborov a vystavuje nezávislé rozhodnutiaURCompliant,IdentityComplianta agregátneTransformCompliant
Fixed
- Aplikovaný štandardný default
DocMDP /P 2permission, keď voliteľná položka chýba, a odmietanie malformed, duplicitných, nesúlacích sa či neznámych transform štruktúr namiesto ich tichého ignorovania
Version 2.571.0
Added
- Pridaná podpora MacExpertEncoding: tabuľka glyph názvov prepísaná z PDF 1.7 Appendix D.3 teraz vstupuje do
HPDFBaseEncToUnicode, takže expert-set Type 1 fonty sa pri text extraction dekódujú na reálny Unicode namiesto raw byte identity; Adobe Glyph List získal trinásť accent variantovsmall(Acutesmall až Tildesmall) s ich spacing-accent code pointmi - Pridaných jedenásť separable blend módov (ISO 32000-1 11.3.5):
HPDFBlendComponentimplementuje Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, HardLight, SoftLight, Difference a Exclusion; renderer parsuje/BMz ExtGState do snapshotu graphics state a compositeuje maľované pixely voči backdropu pred alpha weightingom - Povolené nested GSUB contextual lookupy: SequenceLookupRecord teraz môže cieľovať na contextual (Type 5), chained-contextual (Type 6) a reverse-chained (Type 8) lookupy s dispatchom cez zdieľané per-format applieri pod existujúcim recursion-depth capom
Version 2.570.0
Added
- Pridané
THPDFRevocationEvidenceCache, thread-safe LRU cache pre timestamp / OCSP / CRL evidence kľúčovaná issuer, serial a responder identifikátormi (case-insensitive). Záznamy nesú validity okno, lookupy vyberajú interval s najneskorším začiatkom obsahujúci evaluation čas, hity obnovujú recency a entry-count aj byte rozpočty spúšťajú FIFO evikciu s kompletnými hit / miss / eviction / replacement počítadlami cezGetInfo - Pridané page-level
SaveState/RestoreStatenaTHPDFPageemitujúce graphics-state operátoryq/Q, takže volajúci môžu ohraničiť sekcie clip, ExtGState a text outline bez dotknutia sa content buildera
Fixed
- Opravené padanie free položiek traditional tabuľky z merged cross-reference mapy pri loade: classic-table záznamy typu 0 sa teraz zapisujú ako ich xref-stream náprotivky, takže druhý pass
SaveIncrementalUpdatevidí zachovaný free chain namiestoSourceFreeObjectCount=0a stratených generácií - Opravené vyhadzovanie "Cannot call Start on a running or suspended thread" v
THPDFSignatureEvidenceTaskpri konštrukcii: task teraz štartuje vAfterConstruction, po úplnom vybudovaní objektu, namiesto preteku s RTL thread-state kontrolou zvnútra konštruktora
Version 2.569.0
Added
THPDFCertificateValidationOptions.TrustPurposevyberá unrestricted, document-signing, code-signing, email-protection, timestamping, OCSP-signing alebo custom EKU politiku, kým path validácia si drží plné vynucovanie permitted a excluded name subtree, mapovanie a inhibíciu certificate policy a reportuje vybraný purpose OID vTHPDFCertificateValidationInfo
Version 2.568.0
Added
THPDFSignatureEvidenceTaskzískava timestamp, OCSP a CRL evidence cez ohraničené background workery so stabilným usporiadaním výsledkov, exponenciálnym retry a capnutými server delays, kooperatívnym zrušením, limitmi response size, izoláciou transport výnimiek, live snapshotmi a odlišnými outcomes pre permanent, exhausted, cancelled a oversized
Version 2.567.0
Added
THPDFWindowsKeyStorageSignatureProviderpodpisuje cez smart-card, TPM a vendor CNG key-storage providery bez exportu privátnych kľúčov, podporuje persisted-key lookup alebo požičané aj ownedNCRYPT_KEY_HANDLEhodnoty, voliteľné hardware vynútenie, silent access, RSA PKCS#1 v1.5, RSA-PSS, ohraničený output a classification provider statusu popri existujúcom PKCS#11 adapteri
Version 2.566.0
Added
HPDFNormalizeContentStreamGraphicsStateaHPDFCompareContentStreamsSemanticporovnávajú dekódované content streamy cez ohraničené canonical eventy, čím eliminujú rozdiely v zápise čísel a stringov, redundantné graphics a text-state settery, prázdneq/Qscopey a ekvivalentné konkatenované matice, pričom zachovávajú efektívny stav, operandy operátorov a SHA-256 identity inline images
Version 2.565.0
Changed
SaveIncrementalUpdateteraz znovu buduje kompletný aktívny free-object chain po deštruktívnych editáciách, zachováva predtým free generácie, inkrementuje novo uvoľnené generácie so saturáciou 65535, drží non-zero generácie pre prepisované objekty, emituje záznamy v deterministickom object-number poradí a vystavuje výsledok cezGetLastIncrementalXRefRebuildInfo
Version 2.564.0
Added
THPDFPage.TextOutOutlinetvaruje caller-selected Unicode text cez aktuálnu TrueType face, konvertuje GDI záznamy move, line, cubic Bézier a close-path do natívnych PDF path s font size, horizontal scaling, baseline pozíciou a rotáciou a potom ich vyplní pod existujúcim graphics state clipping, farby, blend módu, alphy a soft masku bez embeddingu text operátorov
Version 2.563.0
Added
FlattenLoadedPageComplexGraphicsdetekuje mesh shading a komplexné Pattern resources, vyhodnocuje rastúce raster rozlíšenia proti ohraničenej 16-regiónovej high-resolution referencii s luma-váženou perceptuálnou error metrikou, zachováva spot-colour stránky a emituje vybraný výsledok cez seam-free ohraničený CalRGB tile writer
Version 2.562.0
Changed
FlattenLoadedPageTransparencyteraz resolvuje source ICC, CIE, device, soft-mask, blend-space, rendering-intent a black-point-compensation farby cez zdieľaný renderer a potom emituje seam-free Flate-komprimované D65 CalRGB tiley pod caller-controlled total-raster aj per-tile pixel rozpočtami s peak-memory telemetriou
Version 2.561.0
Added
ScrubLoadedRedactionRemnantsodstraňuje anotácie Redact a file attachment, document information, XMP a private metadáta, associated a embedded súbory a každé indirect písmo, obrázok, payload či iný objekt zostávajúci nedosiahnuteľný po čiernení, potom zhustí object numbers a vynúti full rewrite, ktorý nevie zachovať bajty incremental revízií
Version 2.560.0
Changed
ApplyLoadedRedactionsteraz kladie even-odd clipping hranicu okolo kompletného contentu stránky, takže sa presne oclipujú intersectujúce texty, pathy, obrázky, patterny, inline images aj Form XObjects, pričom direct text operandy aj jednotlivéTJpoložky sa vybielia cez glyph štvoruholníky a prekrývajúce sa redaction obdĺžniky sa konzervatívne zlúčia
Version 2.559.0
Changed
- Page importy teraz znovu používajú ekvivalentné indirect images, Form XObjects, Patterny, embedded font programy, Font dictionary a ExtGState dictionary naprieč stránkami aj zdrojovými dokumentmi cez canonical dependency-aware SHA-256 fingerprinty, so štatistikami hit, miss a entry pre celý destination
Version 2.558.0
Added
AnalyzeLoadedPageSemanticTextaExtractLoadedPageSemanticTextbudujú stabilný reading order z glyph štvoruholníkov s opakujúcimi sa column bandmi, zarovnanými table riadkami a bunkami, list levelmi, nadpismi, captionmi obrázkov a tabuliek a full-width vertikálnymi zónami, s použitím ohraničeného O(n log n) zoskupovania namiesto stream poradia
Version 2.557.0
Added
- Loaded-page extraction teraz zachováva multi-scalar
/ToUnicodetargety a vracia character záznamy s transformovanými štvoruholníkmi, baselines, source clustermi a explicitným členstvom v ligatúrových komponentoch, pričom reportuje, či font widths a vertical metrics robia geometriu presnú
Version 2.556.0
Changed
- Loaded-page text extraction teraz rekonštruuje chýbajúce či nekompletné
/ToUnicodemapovania z embedded sfnt cmap formátov 0, 4, 6 a 12, glyph názvov/Encoding /Differencespodložených AGL, korektne dekódovaných binárnych streamov/CIDToGIDMapa Adobe CID collection tabuliek, s tými istými fallbackmi dostupnými pre reverse text replacement
Version 2.555.0
Changed
- Producer-side shaping reuse teraz používa hashed lookup, stabilné font-content identity, presnú 64-bit feature masku, vertical, script, language a direction kľúče, plus context-bound word-slice entry, ktoré dokážu zložiť opakované rovnako dlhé transformácie naprieč sa meniacimi text runami, pri zachovaní ohraničenej LRU pamäte a detailnej slice telemetrie
Version 2.554.0
Changed
- Zmiešaný right-to-left text teraz rozlíši párované zátvorky z uzavretých a predchádzajúcich strong skriptov, zrkadlí zátvorky a bežné directionálne operátory len v RTL runoch, zachováva surrogate páry doplnkovej roviny a klastry combining markov počas reverzie LTR subrunov a drží raw glyph-ID runy oddelené od handlingu Unicode interpunkcie
Version 2.553.0
Changed
- Vertikálny text teraz odvodí pôvody TrueType glyfov z top side bearings
vmtxa hranícglyf, dávavrt2prednosť predvertnaprieč kompletným GSUB runom zachovávajúcim dĺžku a používa mapované Unicode vertikálne presentation glyfy pre interpunkciu, pričom zachováva extrahovaný zdrojový text
Version 2.552.0
Added
- Registrované OpenType colour fonty teraz vyberajú najbližší ohraničený bitmap strike
sbixalebo CBDT/CBLC, bezpečne rozlíšia duplicitné glyph záznamysbix, rozpoznajú assety PNG, JPEG a TIFF, dekódujú PNG a JPEG natívne a umiestnia každú bitmapu podľa strike ppem a metrík baseline pôvodu
Version 2.551.0
Changed
- Registrované SVG colour glyfy OpenType teraz kreslia základné pathy, tvary, zdedené solid fills a strokes, affine transformácie a gzip-komprimované dokumenty priamo ako PDF vektory, s ohraničeným parsingom a fail-closed odmietnutím skriptov, entít, externých resourceov, aktívnych linkov, nepodporovanej opacity a nadmerného vstupu
Version 2.550.0
Changed
- Registrované OpenType fonty teraz parsujú ohraničené paint DAGy COLR v1 a kreslia vrstvené solid, linear, radial a sweep fills cez glyph clipe, affine paint transformácie, znovupoužiteľné colour glyfy, poradie source-over a PDF blend kompozity, pričom cyklické, nadmerné a out-of-range grafy zlyhajú uzavreto pred výstupom stránky
Version 2.549.0
Added
BeginLoadedPageProgressiveRegionRenderteraz vykresľuje ohraničené user-space okno cez resumable operátorové slicy, znovu používa cacheované display lists, konzervatívne vyradí nesúvisiace paint objekty so zachovaním postupu grafiky a textu, dimenzuje memory rezervácie na ROI a reportuje počty viditeľných a vyradených paint objektov
Version 2.548.0
Changed
- Overprint proofing teraz zachováva cieľové platne chýbajúce v paintoch DeviceGray, Separation a DeviceN, aplikuje presnú zero-component ochranu DeviceCMYK
/OPM 1, nahrádza explicitne pomenované process platne a kombinuje spot farby cez ich tint transformácie a alternate colour spaces
Version 2.547.0
Changed
- Vykresľovanie načítaných stránok teraz spracováva isolated a knockout transparency groups v ohraničených dlaždiciach 768 pixelov, zachováva absolútne device súradnice naprieč nested groupami a tile-local soft maskami, dekóduje a tokenizuje každý Form raz a vystavuje počet groupov, počet dlaždíc, peak tile úložisko a odhad úložiska bez dlaždíc cez
GetLastTransparencyGroupTileStats
Version 2.546.0
Fixed
- Luminosity soft masks teraz rozlíšia a validujú blending colour space svojej transparency group, odvodia colourimetrické CIE Y pre ICCBased a Lab obsah, konvertujú Separation a DeviceN paint cez kompletné alternate-space transformácie, aplikujú presné backdropy podľa počtu komponentov naprieč vektorovými, shading, mesh aj obrazovými cestami a znovu použijú kompilované masky iba pri zodpovedajúcich transformáciách a rendering intentoch
Version 2.545.0
Added
- Vykresľovanie načítaných stránok teraz vykonáva threshold halftones Type 6, Type 10 a Type 16 s kompaktnou periodickou geometriou, presným 8-bit alebo big-endian 16-bit porovnávaním, nezávislými RGB screenami Type 5 a transfer prepísaniami, ohraničenou 64 MiB cache kompilovaných screenov a atomickým continuous-tone fallbackom pre poškodené alebo predimenzované dáta
Version 2.544.0
Added
- Vykresľovanie načítaných stránok teraz vykonáva kompletné polia
/TRa/TR2s nezávislými identity kanálmi a vyhodnocuje cacheované sampled funkcie Type 0 naprieč jedným až štyrmi vstupnými a výstupnými dimenziami, všetkými štandardnými packed sample hĺbkami, explicitnými encode a decode mapovaniami, lineárnou interpoláciou, viacrozmernou kubickou interpoláciou a jednorozmernými prirodzenými kubickými splinmi pod budgetom function-cache 64 MiB
Version 2.543.0
Added
- Vykresľovanie načítaných stránok teraz cacheuje dekódované a tokenizované display lists CharProc Type 3 podľa fontu, glyphu, lineárnej matice a colour stavu cez 256-entry, 131,072-token LRU, zachováva transláciu a kompletnú execučnú sémantiku
d0/d1a vystavuje hit, miss, eviction, size a oversize-bypass telemetriu cezGetLastType3GlyphCacheStats
Version 2.542.0
Added
- Farebné aj nefarebné tiling patterns sa teraz vykresľujú s pattern maticami rodičovských default súradníc, všetkými tromi ISO tiling typmi, signed krokmi, izolovanými cell pathmi, konzistentnými základnými tintami fill a stroke, nested-resource transformáciami, ohraničenou rekurziou aj tile exekúciou, zatiaľ čo
RegisterTilingPatternaTHPDFTilingPatternBuildervystavujú validovaný výber matice a tiling typu
Version 2.541.0
Added
- Načítané obrázky JPEG a JPEG 2000 si teraz dokážu vybrať deterministickú kvalitu rekomprimácie z ohraničených encoding pokusov spojením vzorkovanej luma-váženej percepčnej chyby s relatívnou bajtovou cenou kódovania cez
OptimizeLoadedImagesByVisualCost, vrátane explicitných limitov chyby a úspor, kontrol zrušenia, stabilného tie-breakingu a detailnej selection telemetrie
Version 2.540.0
Added
- Region dekódovanie JPEG 2000 teraz dokáže súbežne rekonštruovať nezávislé sa krížujúce codestream tiles s codec stavom per worker, deterministickou row-major kompozíciou, kontrolami zrušenia, automatickými limitmi CPU a user workerov, peak-memory budget fallbackom a decode telemetriou vystavenou cez
JPEG2000ParallelTileDecoding,JPEG2000TileWorkerLimitaGetLastJPEG2000ParallelDecodeStats
Version 2.539.0
Added
- Dekódovanie JPEG 2000 teraz podporuje validovaný priamy prístup k codestream tiles, kombinovanú rekonštrukciu zdrojovej oblasti a resolution-of-interest mocnín dvojky, budgety dekódovaného outputu, requesty rozlíšenia cez crash-isolated codec workery a automatický výber načítaného page renderera podľa viditeľných cieľových pixelov cez
DecodeLoadedImageRegionAtResolution
Version 2.538.0
Added
- Progressive vykresľovanie načítaných stránok teraz dekóduje vhodné obrázky
DCTDecodepo jeden JPEG scan na ohraničenú continuáciu, publikuje počítadlá scanov a obrázkov plus zrušiteľné scan callbacky, aplikuje budgety outputu a počtu scanov a spadne na kompletnú obrazovú cestu pri nekompatibilnom paint stave, vypnutom dekódovaní, codec izolácii alebo poškodenom vstupe
Version 2.537.0
Added
- Načítané obrázky
CCITTFaxDecodeteraz dekódujú nekomprimované extension módy T.4 a T.6, rozlíšia EOFB od nepodporovaných extension, rešpektujúEndOfLine,EndOfBlockaDamagedRowsBeforeErrora zotavia poškodené riadky Group 3 s ohraničenou EOL resynchronizáciou a substitúciou riadkov podľa špecifikácie
Version 2.536.0
Added
- Requesty na oblasti obrázkov JBIG2 teraz zostavia ohraničený dependency closure a dekódujú iba regiony stránky pretínajúce požadovanú dlaždicu, skladajú orezané pixely s deklarovanými operátormi, preskočia nezávislé off-window regiony, zachovajú zreťazené global dictionary a vystavia decode štatistiky cez
THPDFJBIG2Decoder.LoadRegionFromByteArray
Version 2.535.0
Added
- Natívna Pascal JBIG2 cesta teraz akceptuje ohraničené long-form tabuľky referred segmentov s jednobytovými, dvojbajtovými a štvorbajtovými identifikátormi, rozlíši multi-level reťazce global dictionary, odmietne nevalidné závislosti a vystaví
HPDFJBIG2SplitSymbolDictionaryGlobalsna oddelenie streamov so zachovaním závislostí
Version 2.534.0
Added
- Natívny Pascal JBIG2 dekodér teraz zachováva a znovu používa generic a refinement aritmetické probability kontexty naprieč závislými symbol dictionary, vrátane zreťazených a fan-out referencií, s context sizingom podľa template, izoláciou cez deep copy a ochranami proti poškodenému zdroju
Version 2.533.0
Added
- Natívny Pascal JBIG2 dekodér teraz spracováva refinement a aggregate symboly cez aritmetiku aj štandardný Huffman v symbol dictionary, plus refinement inštancie v text regionoch, so zdieľanými refinement kontextmi, ohraničenými aritmetickými substreammi, adaptívnymi refinement templatemi a ochranami proti poškodeným referenciám
Version 2.532.0
Added
- Náročné načítanie dokumentov, vykresľovanie stránok, optimalizácia streamov a paralelná optimalizácia obrázkov teraz zdieľajú férový process-wide peak-memory scheduler s konfigurovateľným byte budgetom, FIFO a oversized prístupom, cancellation-aware čakaním, cestou bez alokácií pre nekontestovaný prípad, kumulatívnymi pressure štatistikami a reservation a wait telemetriou per operácia
Version 2.531.0
Changed
- Dočasné spill úložisko teraz používa nezávisle komprimované 256 KiB bloky, retenuje nekomprimovateľné bloky bez expanzie, dávkue zápisy cez ohraničenú asynchrónnu frontu, podporuje random overwrite a resize a reportuje logické, fyzické, blokové, dávkové a backpressure štatistiky
Version 2.530.0
Changed
- Raw komprimované rangey, dekódované obrázky, kompilované display lists a vykreslené rastrové stránky teraz kombinujú least-recently-used poradie s ohraničeným frequency sketchom, čím bránia one-pass skenom vytlačiť zabehnuté hot záznamy
AdaptiveAdmissiondokáže obnoviť čisto recency admission per layer, pričom frequency admissions, rejections a aging cykle sa vystavujú cez cache štatistiky
Version 2.529.0
Added
THPDFCacheAdmissionPolicyaSetCacheAdmissionPolicyposkytujú nezávislé limity entry count, total byte a per entry pre raw komprimované rangey, dekódované obrázky, kompilované display lists a vykreslené rastrové stránkyGetCacheAdmissionStatisticsreportuje occupancy, hits, misses, admissions, rejections a evictions pre každú vrstvu, pričom oversized display lists a rastrové stránky obchádzajú retenciu bez zlyhania aktuálnej operácie
Version 2.528.0
Changed
- Načítané dokumenty teraz internujú opakované PDF name, content-stream operátory a immutable stringy do 64 bajtov v document-scoped poole, čím znižujú duplicitné string úložisko naprieč parsovanými objektmi a content operáciami
GetDocumentStringInternStatisticsreportuje requesty podľa kategórií, hits, misses, bypasses, retenčné úložisko a znovu použité bajty, pričom hard caps 65,536 záznamov a 4 MiB držia adversarial dokumenty v medziach
Version 2.527.0
Changed
- Načítanie PDF teraz používa retained block arenu pre krátko žijúce parser tokeny a buffery, čím znižuje traffic alokátora a zároveň necháva perzistentné dokumentové objekty nezávisle vlastnené
- Dictionary kľúče sa parsujú priamo bez stavby dočasných name objektov a
GetLastParserArenaStatisticsreportuje retenčné úložisko, peak použitie, znovupoužitie alokácií, token traffic a elíziu dočasných objektov
Version 2.526.0
Changed
HPDFTransferStreamteraz zapisuje zdroje memory, mapped-file, lazy-file, adaptive-cache a range-cache cez storage-aware cesty bez alokácie intermediálneho full-stream bufferu- Nešifrovaná serializácia PDF streamov, dekódovaný output bez filtrov, raw export načítaných obrázkov, materializácia lazy streamov a spill dočasných streamov používajú direct transfer automaticky, s byte počítadlami mapped-file a range-cache dostupnými pre diagnostiku
Version 2.525.0
Changed
- Random-access parser prefetch teraz rastie adaptívne cez 1, 2, 4 a 8 blokov počas súvislých forward čítaní, ostáva capped konfigurovanou kapacitou cache a potláča sa ihneď po random alebo backward seekoch
AdaptiveReadAheadEnabled,MaxReadAheadBlocksaSequentialReadToleranceBytesvystavujú policy kontrolu, zatiaľ čo range-cache štatistiky reportujú klasifikáciu prístupov a aktuálne alebo peak read-ahead okná
Version 2.524.0
Added
THPDFCoalescingRandomAccessSourcespája susedné parser čítania do konfigurovateľných cached rangeov, vynucuje ohraničený least-recently-used byte budget a vystavuje source, cache a prefetch štatistikyLoadFromRandomAccessSourceteraz aplikuje range coalescing a asynchrónny prefetch ďalšieho rangeu automaticky, foreground seeky rušia nesúvisiacu prácu aReadAtCancellableumožňuje remote transportom kooperatívne zrušiť rozbehnuté requesty
Version 2.523.0
Changed
- Radiálne shadings Type 3 sa teraz vykresľujú cez adaptívnu Gouraud tesselláciu s ohraničenou chybou namiesto fixných jednofarebných diskov s 48 stranami
- Hranice kruhov pri High-DPI a transformáciách používajú toleranciu tetivy 0.35 device pixelu, nelineárne colour funkcie sa delia adaptívne a nerozšírené vnútra štartovacieho kruhu ostávajú nenamaľované
Version 2.522.0
Fixed
- Password načítanie V=4 teraz rozlíši nezávislé defaulty
StrFaStmFspolu s direct alebo array-form stream-levelCryptprepísaniami - Stream crypt parametre môžu vybrať
Identity,V2aleboAESV2a skonzumované filter položky sa odstránia skôr, než sa spustí zostávajúci stream decoder pipeline
Version 2.521.0
Added
- Načítané obrázky
DCTDecode,JPXDecodeaJBIG2Decodesa teraz dajú dekódovať v crash-isolated worker procesoch Win32 alebo Win64 cez ohraničenú zdieľanú pamäť - Ovládanie
CodecIsolationMode, worker path, timeout a memory limit podporuje kompatibilné automatické nasadenie alebo fail-closed handling pre nedôveryhodné dokumenty, so štruktúrovanou telemetriou status, process, exit-code a timing
Version 2.520.0
Added
THPDFDeterministicReplayLogzaznamenáva ohraničené usporiadané rozhodnutia pre cancellation checkpointy, dostupnosť random-access rangeov a boolean alebo integer callback výsledky, so stabilným JSON exportom a importom- Strict replay validuje identitu udalostí, argumenty a poradie, pričom reprodukuje progressive načítanie, annotation filtrovanie a tile-callback cancellation rozhodnutia nezávisle od aktuálneho externého stavu
Version 2.519.0
Added
BuildLoadedObjectDependencyGraphteraz vystavuje ohraničené indirect-object uzly a reference-slot hrany s presnými object identitami, cestami, resolution stavom, lifecycle stavom a dosiahnuteľnosťou Catalogu- Object uzly reportujú prenositeľné shallow-memory odhady a retained bajty podľa dominátorov, takže zdieľané resourcey sa pripíšu najbližšiemu objektu, ktorý ich výlučne drží
Version 2.518.0
Added
- Ohraničená cross-reference recovery teraz vystavuje štruktúrovaný event stream pokrývajúci akceptáciu a odmietnutie kandidátov, vybrané xref sekcie, znovu postavené offsety, zlyhania limitov a finálne výsledky
- Každá recovery udalosť nesie inclusive-exclusive byte range zdroja, identitu indirect objektu, keď sa naň vzťahuje, explicitnú úroveň confidence a ohraničenú anglickú diagnostiku, s konfigurovateľnou retenciou a účtovaním zahodených udalostí
Version 2.517.0
Added
- Zjednotená operation telemetria teraz reportuje CPU čas aktuálneho vlákna, peak počet dodatočných živých Delphi alokácií, vzorkovaný process working set, process I/O byte delty, cache missy a expanziu dekódovaných streamov popri existujúcich metrikách elapsed-time a component-memory
- Decode účtovanie teraz rozlišuje encoded vstup, agregovanú filter prácu a finálne output bajty, s expanziou publikovanou v promile, kde
1000znamená1x
Version 2.516.0
Added
- Regression prípady poškodených PDF sa teraz dajú priebežne revalidovať a re-minimalizovať pod konfigurovateľnými limitmi pokusov a bajtov, pričom najmenší signatúrovo ekvivalentný vstup sa uchováva cez process-safe zámky a atomickú náhradu
- Corpus PDF používajú stabilné case ID podľa failure signatúry a deterministické sidecare
hotpdf.corpus.case.v1obsahujúce content SHA-256 a počet bajtov
Version 2.515.0
Added
- Cross-engine regression probey teraz pokrývajú domény parse, render, text a save s ohraničenými vstavanými SHA-256 fingerprintmi HotPDF, kontrolami stability opakovaného behu, izolovanými výsledkami výnimiek, pomenovanými enginmi, limitmi vstupu a deterministickými verziovanými JSON reportmi
Version 2.514.0
Added
- Verziované flat C ABI teraz načítava PDF cez 64-bit random-access callbacky priamo do parser bufferov a ukladá cez retryable sekvenčné write callbacky, bez prechodu Delphi-managed typov cez hranicu
HotPDFABI.dlldodáva stabilnécdeclexporty, opaque validované handle, fixné status kódy, explicitné byte dĺžky, cancellation, progress, diagnostiku, build automatizáciu pre Win32 a Win64, import knižnice a layoutom kontrolovaný headerhotpdf_abi.h
Version 2.513.0
Added
- Validátory PDF/UA-2, PDF/A-4 a PDF/X-6 teraz dokážu vrátiť jeden zdieľaný machine-readable model nálezov s profilom, závažnosťou, stabilným rule ID, štandardnou klauzulou, object path, object number a page lokalizáciou od nuly
- Detailné repair nálezy PDF/UA-2 rozlišujú aplikované, nevyriešené, rolled-back a zlyhané akcie s počtami opráv, zatiaľ čo
ComplianceFindingsToJSONemituje deterministický verziovaný JSON pre CI a audit pipeliney
Version 2.512.0
Added
- Transakčná oprava PDF/UA-2 teraz obnoví chýbajúci alternate text z existujúceho semantic textu alebo tagged page obsahu, presadí validný jazyk dokumentu na dedenie, zatvorí medzery v heading leveloch a zarovná Artifact structure roly s marked-content tagmi pre producentské aj načítané dokumenty
- Repair možnosti vystavujú explicitné defaulty a ohraničené fallback politiky, zatiaľ čo repair report rozlišuje úspešné zmeny alternate textu, jazyka, headingov a artifactov od nevyriešenej sémantiky vyžadujúcej autorskú kontrolu
Version 2.511.0
Changed
- Rekomprimácia načítaných obrázkov a effective-DPI downsampling teraz konvertujú farby podporovaných ICCBased, CalGray a CalRGB vstupov na explicitný kalibrovaný RGB, zatiaľ čo nepodporované kalibrované, Separation a DeviceN obrázky ostávajú nezmenené a reportujú svoje rozhodnutie o zachovaní
- Transparency flattening teraz emituje kalibrovaný RGB, rekurzívne deteguje spot colouranty naprieč page a nested resourcami a zachováva stránky obsahujúce Separation alebo DeviceN paint ako vektorový obsah so štruktúrovanou status diagnostikou
- CalRGB vykresľovanie teraz rešpektuje poradie elementov PDF matice a aplikuje správnu inverznú transformáciu XYZ na sRGB pre vektorové aj rastrové farby
Version 2.510.0
Changed
- ICC colour transformácie sa teraz znovu používajú cez thread-safe 64 MiB ohraničený LRU cache kľúčovaný kompletným obsahom source, proof a output profilov, efektívnym rendering intentom a nastavením black-point kompenzácie, takže odpadá opakované parsovanie profilov a konštruovanie transformácií naprieč vektorovými, obrazovými, stránkovými aj paralelnými render cestami
Version 2.509.0
Changed
- ICC vykresľovanie načítaných stránok teraz aplikuje všetky štyri PDF rendering intenty a skutočnú black-point kompenzáciu naprieč source, proof, output a sRGB transformáciami pre vektorové farby aj obrazové vzorky, pričom platformová colour služba ostáva ako compatibility fallback
Version 2.508.0
Changed
- LZW encoder (
TPDFLZWCompressor) dostal overloadCompress(Input, Parms), ktorý aplikuje forward PNG/TIFF prediktor pred kompresiou, čím je symetrický k cesteDecompress(Input, Parms)dekodéra, takže LZW+Predictor streamy sa dajú tvoriť v oboch smeroch - Content-stream interpreter teraz trackuje graphics operátor
cma sníma aktívnu CTM na každý emitovaný glyph (THPDFGlyphRecord.CTMA..CTMF), takže volajúci dokážu vypočítať skutočný user-space pôvod cezCTM * Tm, keď pred textom stoja transformačné matice. Glyph X/Y ostávajú v text space (identity CTM je bežný prípad), takže existujúce správanie sa nemení ReplaceLoadedPageText/ReplaceLoadedDocumentTextteraz obslúzhia zhody presahujúce dva a viac po sebe idúcich simple-string operandov (napr.(Hel) Tj (lo) Tj): štartovací operand dostane kompletný replacement text (kódovaný cez svoj font, so zachovaním nezhodného prefixu) a každý ďalší operand v spani zhody sa vyprázdní. Predtým sa také cross-operand zhody ticho preskočili ako zdokumentované obmedzenie; správanie nahradzovania s jedným operandom ostáva nezmenené
Version 2.507.0
Added
- Pridané selektívne stream šifrovanie: nový príznak
THPDFStreamObject.SkipEncryption, ktorý rešpektuje encryption gateway writeru, nechá jednotlivý stream v plaintexte aj vtedy, keď je aktívne šifrovanie celého dokumentu (ISO 32000-1 7.6.4 selective crypt filter /Identity). Toto je základ pre mix šifrovaných a plaintextových streamov v jednom dokumente
Version 2.506.0
Added
- Pridané legacy RC2 PFX dešifrovanie:
DecryptPKCS12EncryptedBytesteraz dispatchujepbeWithSHA1And40BitRC2-CBC(OID 1.2.840.113549.1.12.1.6) apbeWithSHA1And128BitRC2-CBC(1.2.840.113549.1.12.1.5), klonovaním 3DES CryptoAPI cesty s parametromKP_EFFECTIVE_KEYLENnastaveným na 40 / 128, takže importovaný RC2 key material sa číta so správnou efektívnou silou namiesto plnej dĺžky - Pridané burn-in redaction:
ApplyLoadedRedactionsprejde každú anotáciu/Subtype /Redact, vyprázdní podliehajúce text-showing string operandy, ktorých glyfy padajú do/Rectanotácie (bajty sa stanú medzerami, takže text je z extrakcie naozaj preč, nielen prekrytý), prekreslí cez každú oblasť nepriehľadný obdĺžnik a vráti počet vyprázdnených operandov. Podporuje argument page range (''= všetky stránky). Navyše pridávaAddLoadedRedactAnnotationna vytvorenie anotácií/Redactna načítanej stránke. Vyprázdňovanie položiek TJ poľa a crop vektora/obrázku sú mimo rozsahu tohto kola (vyprázdňujú sa single-string operandy Tj /'/"; dotknuté TJ stringy sa preskočia s fill-rectangle fallbackom)
Version 2.505.0
Changed
- Textový interpreter teraz určuje horizontálny advance každého glyfu z reálnej tabuľky
/Widthsfontu (PDF 1.7 9.6.3) cez novú metóduIHPDFFontResolver.Advance, namiesto predchádzajúcej plochej aproximácie0.5 * fontSize.HPDFBuildFontDecoderčíta/FirstChar,/LastChara number pole/Widthspre simple (non-CID) fonty; keď šírka nie je dostupná, resolver vráti 0 a interpreter ponechá half-em fallback, takže správanie pre fonty bez šírok sa nemení. Toto zlepšuje presnosť X pozíciovania glyfov pre text extraction, detekciu stĺpcov a reading-order analýzu
Version 2.504.0
Added
- Pridané
SetLoadedAcroFormCalculationOrderna prestavbu poľa výpočtového poradia AcroForm/COv sekvencii mien polí dodanej volajúcim (polia, ktoré sa nerozlíšia, sa preskočia), takže výpočtový reťazec sa dá autorovať explicitne, nie iba pripájať - Pridané
RegisterNChannelColorSpace, colour-space helper typu DeviceN, ktorý emituje marker/NChannel(PDF/X-6 / PDF 2.0) pre farebné priestory, ktoré môžu mať medzi colorantmi process farby - Pridané
SetStructureElementClassna zápis poľa mien tried/Cstructure elementu (PDF 1.7 14.9.2.2) odkazujúceho na zdieľané atribútové triedy - Pridané
AddLoadedPagePieceInfona zápis page-piece dictionary (PDF 1.7 14.5) pod/PieceInfo/<Application>s dátovou pečiatkou/LastModifieda volajúcim dodanými key/value pármi
Version 2.503.0
Added
- Case-insensitive textové hľadanie teraz folduje Unicode namiesto len ASCII: zdieľaný glyph matcher (
HPDFMatchGlyphs) mení svoju redukciu A-Z na malé písmená zaTCharacter.ToLower(Unicode Simple_Lowercase_Mapping), takže akcentované latinské (À-ý), grécke (Α-Ω) a cyrilské (А-Я) verziály sa vo svojej malej forme nájdu vSearchLoadedPageText/SearchLoadedDocumentText. Buildy pred XE2 ponechávajú ASCII fallback - Pridaný inline-image callback do content-device abstrakcie:
IHPDFContentDevice.ProcessInlineImagesa spustí pre každý blokBI/ID/EI, keď device deklarujecdcNeedImages, a nesie normalizovaný súhrn width / height / colour-space / image-mask, ktorý flat tokenizer už zachytil na BI tokene. Devicey pre text extraction, path enumeration a audit teraz dokážu započítať inline obrázky namiesto ich tichého preskakovania; page renderer smeruje callback na no-op, pretože inline obrázky kreslí cez vlastnú produkčnú slučku
Fixed
- Opravené tiché zahodenie PDF/A OutputIntentu pridaného do načítaného dokumentu v
SaveLoadedDocument:AddPDFAOutputIntentnaplnil in-memory intent list, ale save cesta načítaného dokumentu ho nikdy nepripojila ku katalógu, takže output padol na veraPDF pre chýbajúce/OutputIntents. Nový krokEnsureLoadedPDFAOutputIntentsteraz zavesíFOutputIntentsna pole/OutputIntentsnačítaného katalógu a označí ho dirty pred save, čím vynúti re-serializáciu s prítomným intentom
Version 2.502.1
Fixed
- Opravené vykresľovanie flattened hodnôt AcroForm polí ako hrubého obrysového rámca namiesto normálneho vyplneného textu:
EnsureLoadedFieldAppearanceStreamteraz emituje explicitné0 Tr(fill) ihneď poBTv každom generovanom widget appearance streame, takže text-rendering mód je deterministický nezávisle na okolitom page-content stave. Predtým uniknuté1 Tr(stroke) na graphics state zdedil Form XObject konzumovaný cezDoa kreslil hodnotu poľa s 2-bodovým červeným obrysom, ktorý pôsobil boldovo a s pokazenou farbou - Odstránený legacy blok resetu default stavu na konci
THPDFPage.CloseCanvas, ktorý zapisoval1 0 0 RG/rg+1 Tr+2 wpriamo do page content streamu poGStateRestore(t. j. mimo ľubovoľného páru q/Q) bez path operátora, ktorý by ich skonzumoval. Tento prebytočný graphics state sa prelieval do všetkého, čo sa kreslilo neskôr na stránkach vytvorených authoringom, a bol zdrojom vyššie popísaného symptómu hrubého obrysu textu; zatvorenie canvasu teraz necháva content stream čistý, pretože q/Q okolo metafile replayu replay stav už izoluje
Version 2.502.0
Added
- Pridaný LZW encoder (
TPDFLZWCompressor) symetrický k existujúcemuTPDFLZWDecompressor, takže streamy sa dajú zapisovať cez LZW a sada PDF filtrov je teraz kompletná v oboch smeroch; encoder zrkadlí umiestnenie Clear / EOI dekodéra, rast kódov premennej šírky a konvenciu EarlyChange a prechádza round-trip cez dekodér vrátane 12-bit saturácie pri plnom slovníku - Pridaná plná podpora CSS / X11 named-color do parsera textových farieb v HTML, čím rozpoznaná paleta narástla z legacy 16 VGA farieb na kompletnú sadu CSS Color Module Level 4 (aliceblue až yellowgreen, vrátane aliasov gray/grey, aqua/cyan a fuchsia/magenta) cez binárne prehľadávanú tabuľku
- Pridané vytváranie Optional Content Membership Dictionary s
AddLoadedOptionalContentMembership, ktoré stavia objekt/Type /OCMD, ktorého/OCGslist a/Ppolitika (AnyOn / AllOn / AnyOff / AllOff) živia existujúci evaluátorEvaluateLoadedOCVisibility, takže komplexné výrazy viditeľnosti vrstiev sa teraz dajú aj autorovať, nielen konzumovať - Pridaný rich-text vstupný bod pre FreeText anotácie
AddLoadedFreeTextAnnotationRichText, ktorý pripája/RCrich-content XML fragment a voliteľný/DSdefault štýl k FreeText anotácii (PDF 1.5 12.5.6.16), ako doplnok k field-level ceste/RV - Pridaný writer katalógového
/RequirementsAddLoadedDocumentRequirement(ISO 32000-1 7.7.4), ktorý pripája requirement dictionary nesúce/Splus volajúcim dodané key/value páry do katalógového poľa/Requirements - Pridané rozpoznanie Type 16 halftone (threshold mask) v page rendereri: maska
/Widthriadi ekvivalentnú screening frekvenciu, takže stránka zachová halftone rytmus namiesto tichého zahodenia operátora, s diagnostikou označujúcou aproximáciu
Changed
- Rozšírený ASN.1 BER/DER dekodér o akceptáciu long formy s high tag number (tag >= 31), BER indefinite-length formy pre constructed uzly (ukončené markerom 00 00 End-of-Contents, s recursion-safe skenovaním) a long-form dĺžok až po X.690 8-bajtový strop, takže CMS balíčky tretích strán používajúce tieto formy sa parsujú namiesto vyhadzovania výnimky; nové record polia
IsIndefiniteaExtendedTagNumberzaznamenávajú, ktorú formu parsovaný uzol použil - Sprísnená renderer fallback diagnostika: Type 1 function-based shading teraz reportuje konkrétnu správu namiesto generickej "unsupported shading type" a nepodporované halftone typy uvádzajú v diagnostike skutočné číslo typu
Version 2.501.0
Added
- Pridané PDF 2.0 structure destinations a page-content linky generované z marked-content dát, pozostávajúce z constant-time reverse lookupu
FindStructureElementForMCID, ktorý cez dokumentový ParentTree rozlíši pár (page, MCID) späť na vlastniaci StructElem, lokálnehoAddStructureDestinationLink, ktorý emituje GoTo akciu nesúcu aj vyžadovaný page-coordinate/Dfallback aj PDF 2.0 pole/SDpomenúvajúce cieľový StructElem indirect referenciou, a remoteAddGoToRStructureDestinationLink, ktorého prvý element/SDje byte-string/IDcieľového elementu v externom súbore, takže PDF 2.0 viewery skočia na structure content, zatiaľ čo legacy viewery spadnú späť na pomenovanú stránku
Version 2.500.0
Added
- Pridaná ohraničená PDF/UA-2 validácia a transakčná oprava pre kompletné PDF 2.0 reťazce číslovania a pokračovania listov, pravidelné table gridy a row groupy, table-local header asociácie a cykly, presné Ruby a Warichu child sekvencie, výslovnostné hinty per element a usporiadané embedded PLS výslovnostné lexikóny, s novými authoring helpermi, stabilnou diagnostikou, semantic repair počítadlami a rollbackom pre nejednoznačné štruktúrne defekty
Version 2.499.0
Added
- Pridaná PDF/X-6, PDF/X-6p a PDF/X-6n generácia a ohraničená validácia pre PDF 2.0 dokumenty, vrátane embedded, externých, Catalog-level a page-level output intentov; externých profile checksumov, ICC verzií, colour-space signatúr a N-colourant tabuliek; inherited page-box validácie; exchange-action, annotation-appearance, font, form, graphics-state a resource obmedzení; stabilnej clause-aware diagnostiky; a fail-closed validačnej generácie
Version 2.498.0
Added
- Pridaná ohraničená PDF/UA-2 validácia bez mutácie dokumentu a transakčná oprava namespaceov a structure atribútov pre producentské aj načítané dokumenty, vrátane kanonickej registrácie namespaceov, čistenia duplicitných a nevalidných namespaceov, detekcie konfliktov role map, opravy štandardného structure namespaceu, explicitných custom attribute namespaceov, normalizácie revízií, štruktúrovaných reportov, nezávislých object a mutation limitov a automatického rollbacku, keď validácia stále zlyháva
Version 2.497.0
Added
- Pridaná PDF/A-4, PDF/A-4e a PDF/A-4f generácia a validácia načítaných dokumentov s pravidlami špecifickými pre profil pre anotácie, akcie, embedded súbory, metadáta, output intenty, fonty, formuláre a optional content; štruktúrovanou diagnostikou so stabilnými kódmi, klauzulami a object alebo page lokalizáciami; fail-closed validáciou
EndDoc; vynechaním trailerInfo; povinným name stromomEmbeddedFilespre PDF/A-4f; a kompletnými grafmi príloh
Version 2.496.0
Added
- Rozšírený ohraničený AcroForm JavaScript evaluátor o typované boolean, number, string, null, undefined a array hodnoty; short-circuit logické, porovnávacie, rovnostné, unárne a podmienečné výrazy; deterministické date funkcie; string a array metódy; zachovanú kompatibilitu numerických polí; a explicitné limity na skripty, statementy, hĺbku, operácie, argumenty, kolekcie, stringy a value pamäť
Version 2.495.0
Added
- Pridané natívne CFF2 variable-font instancing a glyph subsetting s fvar a avar 1.0/2.0 coordinate resolution, vyhodnotením VariationStore blend, rekurzívnym flatteningom subroutineov, zachovanými multi-FD dictionary a hint dátami, HVAR/VVAR/MVAR metric bakingom, ohraničeným fail-closed parsingom a automatickou integráciou do
RegisterUnicodeTTF
Version 2.494.0
Added
- Pridané nested copy-on-write transakcie object grafu s first-write indirect-root snapshotmi, in-place rollbackom, obnovou pripojených objektov a object numberov, ohraničeným temporary-file spillom pre veľké streamy, automatickým trackingom mutácií kontajnerov, explicitnou prípravou raw zápisu a live memory štatistikami
Version 2.493.0
Added
- Pridaný ohraničený token zachovávajúci content-stream AST s all-byte lexémami, prepojenými operation a container uzlami, neprekrývajúcimi sa edit overlaymi, byte-exact no-op round tripmi, streamovanou serializáciou a bezstratovou cielenou výmenou textu
Version 2.492.0
Added
- Pridané ohraničené windowed memory mapovanie pre načítanie veľkých lokálnych PDF so zdieľaným lazy-stream prístupom, konfigurovateľnou geometriciou threshold a LRU okna, automatickým fallbackom na stream, čítaním cez okná, sharingom s atomickou náhradou a mapping diagnostikou
Version 2.491.0
Security
- Heslá, odvodené file a object kľúče, cacheované AES schedule, PKCS#12 plaintext súkromných kľúčov, scratch pamäť authenticated dešifrovania a plaintext buffery direct-file streamovania sa teraz explicitne prepisujú na každej úspešnej aj výnimkovej ceste
Version 2.490.0
Changed
- Zmenené oneskorené dešifrovanie Standard security tak, že počas načítania zachytí ohraničený raw encryption objekt a trailer ID cez autoritatívny xref offset, čím zachová presné binárne key záznamy a eliminuje neskoršie čítania celého zdroja na validných dokumentoch
Version 2.489.0
Changed
- Zmenené password načítanie tak, že obnoví RC4 a AES file kľúče z ohraničených rangeov traileru, xref, document-ID a autoritatívneho encryption dictionary, čím sa vyhne requestom na celý zdroj pri validných random-access dokumentoch a zároveň zachová compatibility fallback
Version 2.488.0
Added
- Pridané vykresľovanie načítaných stránok pre Shading Types 4 až 7 s byte-aligned mesh dekódovaním, znovupoužitím continuation edges, function-aware Gouraud farbami, ohraničenou adaptívnou Coons a tensor-product tesselláciou, dávkovým vyplňovaním trojuholníkov, clippingom, pozadiami a budgetmi na poškodený vstup
Version 2.487.0
Changed
- Zmenené PFX, external-signer a signature-provider workflowy na kopírovanie s ohraničenými 256 KB buffermi, stream-hashovanie patchovaných byte rangeov a seek-patch pevne širokých polí
/ByteRangea/Contents, vrátane same-stream podpisovania bez uchovávania úplnej druhej kópie PDF
Version 2.486.0
Added
- Pridané natívne standard-Huffman JBIG2 dekódovanie pre
SDHUFFsymbol dictionaries aSBHUFFtext regions, vrátane všetkých 15 tabuliek z Annex B, raw alebo MMR collective bitmap, per-region symbol-ID tabuliek a ohraničených ochrán proti poškodenému vstupu
Version 2.485.0
Added
- Pridaný zápis šifrovaných object streamov RC4-128 a AES-128 a password reload s ohraničeným pre-parse key recovery, korektným odvodením kľúča podľa object number, lazy handlingom compressed členov a bez opätovného čítania celého súboru po úspešnom key recovery
Version 2.484.0
Added
- Pridané transakčné form-edit sessions a obmedzené event akcie, kompletná FDF výmena polí, anotácií a statusov, deterministické XFA specialised-widget fallbacky a pokročilé stránkovanie, streaming validácia embedded súborov, pokročilé Portfolio viewy, triedenie, priečinky, navigácia a editácia schém, päťdimenzionálne JSON operation budgety, callback-based integračné ABI a corpus minimalizácia zachovávajúca zlyhania s diferenciálnymi regression probeami
Version 2.483.0
Added
- Pridaný stabilný kompletný object-graph JSON export a validované patchovanie, non-materialising inšpekcia object streamov, ohraničená linearisation validácia, kanonické content-derived identifikátory dokumentov pre reprodukovateľný output, explicitné politiky pre nedosiahnuteľné objekty, ohraničené collated skladanie stránok z viacerých zdrojov, nezávisle cyklovaná kompozícia overlay a underlay, geometry-complete flattening rotácie stránok a podpora čítania, zápisu a invalidácie page náhľadov
Version 2.482.0
Added
- Pridaná content-aware externalizácia inline obrázkov, inherited a appearance-safe resource cleanup, spájanie content streamov, kanonická deduplikácia Form XObjectov a embedded fontov, policy-riadená JPEG a JPEG 2000 rekomprimácia, exact-match JBIG2 global sharing, colour-managed effective-DPI downsampling s koordináciou soft masks a adaptívne locality-aware object-stream packovanie
Version 2.481.0
Added
- Pridané znovupoužiteľné page display lists a spatial indexy, ohraničené tile a band vykresľovanie, deterministické paralelné vykresľovanie stránok, transparency flattening, ink a trapping diagnostika, process a spot separation platne, spustiteľné halftone a transfer funkcie a intent-aware source, proof a output ICC pipeline s black-point kompenzáciou
Version 2.480.0
Added
- Pridaný layout textu a dokumentov rešpektujúci štandardy s Unicode line breakingom a delením slov, optimálnou skladbou odsekov, vyváženými stĺpcami, stránkovaním poznámok pod čiarou a na konci dokumentu, dimenzovaním a stránkovaním tabuliek, vylúčením floatov, štruktúrovanými nested listami, keep groupami a ohraničenou cache shaped runov
Version 2.479.0
Added
- Pridané namespace-aware PDF/UA-2 autorovanie štruktúr a ohraničená one-pass validácia pre hierarchiu, atribúty, vlastníctvo anotácií, associated files, nadpisy, listy, tabuľky, vzorce a MathML
Version 2.478.0
Added
- Pridaná štandardami podložená offline trust validácia s delta a indirect CRL, striktnou OCSP politikou, X.509 name a certificate-policy constraintmi, algorithm politikou v čase vyhodnotenia, deterministickou multi-signer a nested countersignature verifikáciou a štruktúrovanými JSON validačnými reportmi
Version 2.477.0
Added
- Pridané AES-256 public-key šifrovanie s explicitnými RSA-OAEP hash politikami, ECDH a X25519 alebo X448 key agreement, CMS countersignaturami a prírastkovou PAdES-LTA timestamp obnovou, ktorá zachováva každú staršiu revíziu
Version 2.476.0
Added
- Pridané AESV4 direct-file šifrovanie a authenticated dešifrovanie s ohraničenou pamäťou plus ISO/TS 32004:2024 produkciu samostatného PDF MAC, verifikáciu, diagnostiku, atomický output a preflight validáciu
Version 2.475.0
Added
- Pridané ISO/TS 32003:2023 AESV4 password šifrovanie a authenticated načítanie s AES-256-GCM, unikátnymi 12-bajtovými IVmi, 16-bajtovými authentication tagmi, PDF 2.0 developer extensionami, pokrytím nested stringov, podporou object streamov a odmietaním manipulácie
Version 2.474.1
Fixed
- CMS podpisovanie už nezlyhá pri kompilácii, keď signer callback v anonymous metóde zachytí sign options record na Delphi Win32
- Podpisovanie cez systémové certifikáty už nezlyhá pri kompilácii, keď digest callback zachytí sign options record na Delphi Win32
- Demo E-Invoice teraz kompiluje po rozšírení enumerácie validačných nálezov o ďalšie PDF/A-3 attachment a XMP kontroly
Version 2.474.0
Added
- Procesor JSON jobovej konfigurácie podporujúci operácie merge, split, optimise, encrypt a validate so štruktúrovanými výsledkami pre každú operáciu
- C ABI s opaque handles pre vysokohodnotné operácie nad dokumentmi vrátane create, load, page count, save a spúšťania jobov, určené na embedding z iných jazykov
- Porovnávanie dokumentov v režimoch page-count, page-text, object-count a rendered-image, ktoré vracia štruktúrovaný JSON report rozdielov
Version 2.473.0
Added
- Znovupoužiteľné validačné politiky teraz pokrývajú WTPDF reuse, accessibility a validovaný príjem deklarácií, vystavujú claim metadata deklarácií a chyby citlivé na zdroj, spúšťajú usporiadané dávky cez ohraničené limity workerov a fronty a ponúkajú nezávislé režimy inspect, add-missing a synchronize na opravu XMP metadát
Version 2.472.0
Added
- CMS verifikácia teraz podporuje Ed25519 a Ed448 cez dynamicky vyberaný platformový provider plus ML-DSA-44, ML-DSA-65 a ML-DSA-87 za explicitným PDF 2.0 developer extension, pričom spoločný ohraničený provider kontrakt umožňuje callback, remote a PKCS#11 RSA podpisovanie s retry, cancellation, key identifiers a parametrami špecifickými pre algoritmus
Version 2.471.0
Added
- Vykresľovanie načítaných stránok teraz cieľuje na spoločnú abstrakciu zariadení pre vlastné bitmapy, externé device contexty ako tlačiarne a enhanced metafiles, pričom voliteľný CMYK overprint proofing interpretuje
/OP,/opa/OPM 1na náhľad kombinovaných process farieb popri existujúcom knockout vykresľovaní transparency group
Version 2.470.0
Added
- Variabilné OpenType fonty teraz vystavujú axis a named-instance metadata s validovaným per-axis výberom a integráciou static-instance providera, pričom COLR a CPAL vrstvy, SVG dokumenty glyphov a CBDT bitmap strikes sa dajú preskúmať a vykresliť cez natívne alebo volajúcim dodané rasterizačné cesty
Version 2.469.0
Added
- Subsetting TrueType a OpenType fontov teraz dokáže znovu použiť validované content-addressed výsledky z perzistentnej diskovej cache s atomickými zápismi, recovery pri poškodení, evikciou podľa prístupov v rámci byte budgetu, zachovaním kompaktného CID mapovania a sledovateľnými štatistikami hit, miss, write, rejection a eviction
Version 2.468.0
Added
- Znovupoužiteľné layout elementy teraz vystavujú meranie bez vedľajších efektov, vlastnené placed a overflow fragmenty pre paragraph, row, container a vlastné stránkovanie, plus deklaratívne vrstvy background, header, footer a foreground aplikované v stabilnom poradí skladania strany
Version 2.467.0
Added
- Linearizované random-access zdroje teraz reportujú ohraničenú dostupnosť first-page a main-xref, načítané streamy dokážu použiť deterministickú Flate rekomprimáciu s vysokým pomerom cez štyri stratégie a nezávislé image streamy sa dajú optimalizovať paralelne s volajúcim kontrolovanými workermi a commitmi v poradí zdroja
Version 2.466.0
Added
- Načítané dokumenty teraz vystavujú objektové stavy clean, dirty, released a must-write, bezpečné uvoľnenie object-stream cache po save, validáciu xref free-list a generation s ohraničenými detailmi zatienených definícií, deterministický dictionary output a diagnostické save vo QDF štýle zachovávajúce obsah
Version 2.465.0
Added
- Filtre ASCII85 a ASCIIHex teraz vystavujú ohraničené stream dekodéry so striktnými end markermi, diagnostikou odd nibble a zachovaným trailing vstupom; načítané dokumenty dokážu otvoriť zero-copy read-only slice zdroja a reportovať pipeline štatistiky per filter cez preflight a optimalizáciu streamov
Version 2.464.0
Added
- Načítané formuláre dokážu bezpečne vyhodnotiť ohraničené calculation a validation skripty bez aktívneho JavaScript enginu; RichMedia anotácie vystavujú named-asset metadata, extrakciu bajtov a cielenú sanitizáciu; XFA flattening podporuje indexed, wildcard, class a descendant SOM bindingy plus ohraničené numerické FormCalc funkcie; a XFDF round tripy anotácií pokrývajú každý podporovaný anotačný subtype cez jediné symetrické mapovanie
Version 2.463.0
Added
- RSA-PSS CMS podpisovanie teraz podporuje konfigurovateľný salt a internal, external alebo Windows CNG signerov; PDF/X output validuje produkčné podmienky, ICC komponenty a overprint kontroly; načítané tagged stránky vystavujú geometrickú reading-order diagnostiku; a PDF Portfóliá dokážu autorovať a inšpektovať collection schemas plus metadata pre každý súbor
Version 2.462.0
Added
- Načítané AcroFormy teraz vyhodnocujú
/COcalculation order, regenerujú multiline, quadded, auto-sized a comb appearances, riešia normal, rollover a down appearance stavy anotácií a flattenujú vybrané polia výhradne do stránok, ktoré ich vlastnia; flattening citlivý na podpis odmietne porušenia DocMDP alebo FieldMDP politiky
Version 2.461.0
Added
- Vykresľovanie načítaných stránok teraz aplikuje isolated a knockout transparency groups, alpha a luminosity soft masks s farbami pozadia a transfer funkciami, kompletné Type 3 CharProcs v ich aktuálnom resource scope, Form matice s plnou obnovou graphics state a dekódovanie visible region pre orezané obrázky vrátane natívnej JPEG 2000 region expanzie;
DecodeLoadedImageRegionvystavuje volajúcemu presné obdĺžnikové dekódovanie rastra
Version 2.460.0
Added
- Vykresľovanie načítaných stránok teraz cacheuje oddelené optional-content a ICC colour-intent stavy, ponúka ignore, bounded-report a strict fallback politiky pre preskočené operátory alebo objekty a publikuje zjednotenú telemetriu elapsed-time, peak-memory, decoded-byte, cache-hit, cache-miss, object-count, success a cancellation pre načítanie, vykresľovanie, progressive slicey a optimalizáciu streamov
Version 2.459.0
Added
BeginLoadedPageProgressiveRenderpridáva resumable vykresľovanie stránky s budgetmi na elapsed-time a content operátory, prístupom k čiastočnej bitmape, progress callbackmi a explicitnými stavmi paused, completed a cancelled; volajúcim vlastnené inštancieTHPDFCancellationTokenteraz kooperatívne rušia načítanie dokumentu, synchrónne aj progressive vykresľovanie, optimalizáciu streamov, preflight validáciu, PFX podpisovanie a podpisovanie z Windows certificate store
Version 2.458.0
Added
ImmediateFlushLayoutpresúva dokončené streamy stránok do úložiska zálohovaného súborom pre ohraničené generovanie reportov; rozvrhovanie odsekov teraz podporuje obmedzenia keep-with-next, orphan a widow, bidi smer first-strong s explicitnými prepísaniami, ohraničenú diagnostiku súradníc, zdedené rozmery stránok, sémantické pomocníky/Pa typované artefakty stránkovania pre hlavičky, päty, vodoznaky a čísla stránok
Version 2.457.0
Added
SetFontFallbackChainaTextOutWithFallbackpridávajú usporiadaný výber písma podľa skriptu s kontrolami pokrytia Unicode skalárov a perzistentnou diagnostikou nerozlíšených glyfov; vertikálny text teraz emituje kompletné behyIdentity-Vs metrikami/DW2a/W2odvodenými z OpenType tabuliekvhea,vmtxaVORG, ak sú dostupné
Version 2.456.0
Added
HPDFEncodePredictorpridáva prísne TIFF a pevné alebo adaptívne PNG kódovanie prediktora pre packed, 8-bitové a 16-bitové rastrové riadky;ExtractLoadedImageToStreamsa vyhnúť poliam bajtov v plnej veľkosti pre natívne alebo genericky dekódované obrazové payloady;OptimizeLoadedStreamsselektívne rekomprimuje podporované rodiny filtrov prostredníctvom vyrovnávacích pamätí prelievajúcich z pamäte na disk a nahrádza iba streamy, ktoré spĺňajú kladný prah úspory
Version 2.455.0
Added
DecodeLoadedStreamToStreamteraz skladá načítané PDF filtre do ohraničeného pipeline, ktorého konečná fáza zapisuje priamo do streamu volajúceho;DocumentDecodeBudgetBytespridáva predvolený strop 1 GiB naprieč nezávislými reťazcami, zatiaľ čo ochrany počtu filtrov, hĺbky vnorenia, cyklických referencií a rekurzívnych streamov vystavujú štruktúrovanú diagnostiku pipeline
Version 2.454.0
Added
- Veľké načítané streamy teraz zostávajú na rozsahoch zdrojového súboru až do mutácie a prelievajú príliš veľké zmeny do vlastných dočasných súborov prostredníctvom
LoadedStreamMemoryThreshold; komprimovaní členovia objektových streamov sa indexujú a materializujú podľa čísla objektu pri prvom použití;LoadFromRandomAccessSourcepridáva integráciu s HTTP rozsahmi a vlastným úložiskom, s diagnostikou streamu a vyrovnávacej pamäte objektov
Version 2.453.0
Changed
- Prírastkové ukladania teraz zachovávajú permanentné ID traileru naprieč každou revíziou, rotujú iba ID modifikácie, neemitujú žiadnu pridanú revíziu, keď je graf načítaných objektov nezmenený, a vystavujú rozhodnutia zlúčenia hybridných referencií prostredníctvom
GetLoadedXRefMergeInfos explicitnými počítadlami priority xref-streamu, prekryvu tabuliek a najnovšej revízie
Version 2.452.0
Added
- Pridaný natívny výstup PDF 2.0 plus authoring PDF/A-4, PDF/A-4e, PDF/A-4f a PDF/UA-2, s revízne uvedomelou si XMP identifikáciou, štruktúrnymi rolami PDF 2.0, registráciou namespace prostredníctvom
RegisterStructureNamespaceaAddStructureElementNS, prísnou štruktúrnou validáciou PDF/UA-2 a pridruženými súbormi neutrálnymi voči profilu prostredníctvomAddPDFAssociatedFile
Version 2.451.0
Added
DetectFacturXInvoiceteraz vystavuje dekódovaný MIME typ primárnej prílohy a viazaný URI namespace XMP, zatiaľ čoValidateFacturXInvoicekrížovo kontroluje presný FileSpec zdieľaný Catalog/AFa stromom mien EmbeddedFiles, menami/Fa/UF, MIME typom XML,DocumentTypeXMP a namespace špecifickým pre profil Factur-X alebo ZUGFeRD prostredníctvom štyroch vyhradených vlajiek problémov
Version 2.450.0
Added
- Nálezky Preflight JSON, HTML a v štýle veraPDF teraz nesú stabilné namespaced hodnoty
ruleIdplus strojovo čitateľné umiestnenia s logickým rozsahom, cestou, kľúčom PDF a presným číslom objektu, indexom stránky alebo ofsetom bajtov, ak sú dostupné; JSON reporty tiež emitujú zdokumentované mapovania ISOspeca zostávajú platné, keď polia obsahujú viacero nálezov
Version 2.449.0
Added
SanitiseLoadedDocumentteraz aplikuje na načítané PDF politiky len JavaScript, aktívny obsah alebo prísny nedôveryhodný dokument, hlási odstránené akcie a payloady, zlyháva uzavreté pre neznáme typy akcií, odstraňuje nedosiahnuteľné objekty prostredníctvom ohraničeného cyklicky bezpečného takmer lineárneho prechodu, kompaktifikuje čísla živých objektov a atomicky nahrádza zdroj pri ukladaní na miesto
Version 2.448.0
Added
- Renderer načítaných stránok teraz vykonáva farebné a nefarebné dlaždicové vzory plus axiálne a radiálne tieňovacie vzory pre výplne a ťahy, vrátane maticí vzorov, dedenia tinta, orezávania ciest, kešovanej tokenizácie obsahu, vnoreného obnovenia grafického stavu a ohraničených počtov rekurzie a dlaždíc pre nepriateľské zdroje
Version 2.447.0
Added
- Pridaný konfigurovateľný strop
DecodeBudgetBytes256 MiB na reťazec, ktorý agreguje výstup z vnorených fáz Flate, LZW, ASCIIHex, ASCII85, RunLength a obrazových prediktorov skôr, ako sa dostanú do pamäte, s diagnostikouGetLastDecodeBudgetInfoa nulou ako explicitným režimom bez obmedzenia
Version 2.446.0
Added
- Pridaný voliteľný
LinearizeOutputpre rýchle webové zobrazenie, emitujúci slovník parametrov linearizácie v prvých 1024 bajtoch, hint tabuľky prvej stránky a zdieľaných objektov, sekcie stránok usporiadané podľa závislostí a dve kompatibilné tabuľky krížových referencií, pričom zachováva priamy súbor a výstup streamu a spoľahlivú detekciu opätovného načítania
Version 2.445.0
Added
- Načítané PDF teraz používajú ohraničenú obnovu krížových referencií po poškodených deklaráciách
startxrefalebo nepoužiteľných dátach xref, najprv presunú platnú tabuľku alebo stream a potom prestavia validované ofsety priamych objektov s prioritou najnovšej definície, filtrovaním falošných pozitív vnorených objektov, konfigurovateľnými rozpočtami skenovania a objektov, ohraničenými pokusmi o ukotvenie xref, štruktúrovanou diagnostikou a ukladaním s úplným prepísaním
Version 2.444.0
Added
AnalyzeLoadedSignatureRevisionsteraz klasifikuje každú prírastkovú revíziu po vybranej signatúre ako validáciu dlhodobej platnosti, vypĺňanie formulára a podpisovanie, anotácie alebo iné zmeny, hlási zmenené a uvoľnené objekty a názvy polí a vyhodnocuje súlad DocMDP a FieldMDP nezávisle naprieč tradičnými, streamovými, hybridnými a komprimovanými objektovými históriami xref
Version 2.443.0
Added
VerifyLoadedSignatureWithTrustaHPDFValidateCMSCertificatePathteraz stavajú cesty certifikátov podpisujúceho k ukotveniam dôveryhodnosti dodaným volajúcim a overujú podpisy certifikátov, lehoty platnosti, Basic Constraints, obmedzenia dĺžky cesty a Key Usage- Offline validácia zrušenia teraz overuje podpisy OCSP a CRL, autoritu respondera, identitu certifikátu, čerstvosť stavu a časy zrušenia, pričom uprednostňuje VRI dôkazy na signatúru pred DSS na úrovni dokumentu, dôkazmi volajúceho a CRL CMS
THPDFSignatureInfo.CertificateValidationhlási dôveryhodnosť, dĺžku cesty, ukotvenie dôveryhodnosti, čas vyhodnotenia, stav a zdroj zrušenia, čas zrušenia a problémy validácie nezávisle od kryptografickéhosvValid
Version 2.442.0
Added
- Verifikácia načítaných signatúr teraz kryptograficky validuje RFC 3161 časové pečiatky dokumentu oproti
/ByteRangePDF a tokeny časových pečiatok signatúry oproti hodnote nadradeného CMS podpisu, zatiaľ čoTHPDFSignatureInfo.Timestampvystavuje druh časovej pečiatky, stav, politiku, odtlačok správy, sériové číslo, čas generovania, presnosť, poradie, nonce, identitu TSA a detaily certifikátu podpisujúceho token
Version 2.441.0
Added
- Verifikácia načítaných signatúr teraz podporuje CMS RSA-PSS signatúry so SHA-1, SHA-256, SHA-384 alebo SHA-512 a validuje explicitné parametre hash, hash MGF1, dĺžku salt a trailer-field
THPDFSignatureInfoteraz hlásiSignedRevisionLengthaUnsignedTrailingBytesasvInvalidByteRangeidentifikuje štrukturálne nebezpečné rozsahy PDF signatúr
Changed
- Verifikácia signatúr teraz obnovuje pozíciu streamu volajúceho, porovnáva bezpečnostne citlivé sekvencie bajtov bez predčasných ukončení a hlási kompletné parametre algoritmu RSA-PSS
Fixed
- CMS verifikácia teraz odmieta prekrývajúce sa, mimo rozsah, skrátené alebo viacznačné rozsahy bajtov a validuje kompletný identifikátor algoritmu RSA PKCS#1
DigestInfonamiesto prijíania ľubovoľného reťazca oktetov veľkosti digestu
Version 2.440.0
Fixed
- Registrácia Unicode písma teraz alokuje kompletnú vyrovnávaciu pamäť pre posuny glyfov pred čítaním metrík písma, čím zabraňuje porušeniam prístupu v procesoch OpenType shaping a subsetovania písma
GetWideTextWidthteraz interpretuje uložené Unicode posuny v jednotkách em a pri nedostupnosti metriky glyfu sa vráti k platformnému meraniu, čím obnovuje správne škálované šírky pre zalamovanie a rozvrhovanieBeginIncrementalUpdateteraz označí načítané objekty ako čisté pred sledovaním zmien volajúceho, takže nezmenené objekty sa neprepisujú a osirotené šifrovacie slovníky sa správne uvoľňujú v pridanej sekcii krížových referencií
Version 2.439.0
Added
HPDFDecodePredictoraHPDFTryDecodePredictorposkytujú ohraničené dekódovanie pre TIFF 1, 2, 4, 8 a 16-bitovú predikciu a všetkých päť PNG riadkových filtrov, s prísnou validáciou riadkov a použiteľnou diagnostikouTPDFLZWDecompressorpridáva priamy výstup do streamu, opakovane použiteľné dekódovacie metódy bez vyvolania výnimky, konfigurovateľné limity výstupu a požiadavky na ukončenie streamu a štatistiky šírky kódu, slovníka, resetu, expanzie a výstupu pre každé dekódovanie
Changed
- LZW dekódovanie teraz používa súvislú arénu fráz, podporuje oba režimy PDF
EarlyChangea obe poradie plnenia bitov, spracováva reset cez clear aKwKwKexpanziu prísne a zväčšuje reťazcový výstup geometricky - Extrakcia načítaných Flate a LZW obrázkov teraz rešpektuje geometriu prediktora
DecodeParmsaEarlyChange, používa veľkosť rastrov bezpečnú voči pretečeniu a zdieľa rovnakú implementáciu prediktora ako dekódovanie xref-streamov
Fixed
- Flate dekódovanie s parametrami prediktora teraz číta z dekompresného streamu namiesto kopírovania komprimovaných vstupných bajtov do fázy prediktora
- Chybne formátované LZW kódy, skrátené riadky, neplatné značky PNG riadkov, nemožná geometria prediktora a nadmerná expanzia teraz zlyhajú deterministicky namiesto vrátenia čiastočných alebo stále komprimovaných obrazových dát
Version 2.438.0
Fixed
THPDFViewersa teraz kompiluje v Delphi XE2 až XE8, kdeWM_DPCHANGEDchýba vWinapi.Messages; konštanta správy per-monitor DPI je teraz definovaná lokálne pre toolchainy staršie ako Delphi 10 Seattle, čím sa obnovujú zostavenia knižnice TRIAL DCU pre RAD Studio XE2..XE8, ktoré sa prerušili sE2003 Undeclared identifier
Version 2.437.0
Changed
GetWideTextWidthteraz meria Unicode text z vyrovnávacej pamäte šírky posunu na kódový bod, ktorá sa raz naplní z tabuľky hmtx písma, namiesto cykluCreateCompatibleDC+GetTextExtentPoint32Wpri každom volaní -- 10- až 100-násobné zrýchlenie pre meranie zalamovania slov, zarovnania a buniek tabuľky na dlhých Unicode dokumentoch, s priehľadným návratom k legacy GDI ceste, keď nie je zaregistrované žiadne Unicode písmo
Version 2.436.0
Fixed
- Vložené písmo
/FontDescriptor /CapHeightteraz používa reálnu metrikuotmsCapEmHeightfontu namiesto natvrdo zakódovanej konštanty, s návratom k ~70 % výšky pre fonty, ktoré hlásia nulu
Version 2.435.0
Fixed
- Vložené Unicode písma si teraz ponechávajú glyfy, ktoré produkuje OpenType shaping (arabské prezentačné formy, ligatúry, kontextové alternatívy) pri subsetovaní -- množina
FUnicodeExtraUsedGlyphszaznamenaná vMarkUnicodeGlyphUsed/EnableShapingFeatureForSubsetsa zapisovala, ale subsetter ju nikdy nepoužíval, takže tieto glyfy vo výstupe klesli na.notdef
Version 2.434.0
Added
THPDFWeightedCachepridáva nepovýšujúcu kontrolu, logické vyhľadávanie, explicitné odstránenie a prevod vlastníctva, okamžité orezanie podľa rozpočtu, štatistiky pomeru zásahov a životného cyklu a streamovanie obsahových kľúčov SHA-256
Changed
- Veľké usporiadané ToUnicode a CID CMaps teraz používajú logaritmické vyhľadávanie znakov a rozsahov, zachovávajú jedno- až štvorbajtové kódové priestory presne, izolujú zdieľané analyzované mapy podľa koreňa zdroja a zväčšujú úložisko parsera geometricky
- Perzistentná vyrovnávacia pamäť vyrenderovaných stránok teraz zapisuje dáta PNG a indexu atomicky, sleduje nedávnosť na úrovni stránky, aplikuje znížené limity okamžite a obnovuje neaktuálne indexy, opustené dočasné súbory, chýbajúce priečinky a neindexované priečinky dokumentov
Fixed
- Analyzovanie CMap teraz správne spracováva nepárne šestnástkové nibble a odmieta chybne formátované šestnástkové dáta, neplatné alebo pretečúce rozsahy, záporné ciele CID a neohraničené explicitné mapovania, pričom deterministicky nahrádza neplatné sekvencie náhradníkov UTF-16
- Náhrada vo váhovej vyrovnávacej pamäti už neuvoľní objekt, keď je tá istá inštancia vložená znova pod jej existujúcim kľúčom, a poškodené položky PNG diskovej vyrovnávacej pamäte sa odstránia po neúspešnom dekódovaní namiesto zlyhania pri každom neskoršom vyhľadávaní
Version 2.433.0
Added
- Verifikácia načítaného podpisu teraz podporuje ECDSA P-256, P-384 a P-521 CMS podpisy so SHA-1, SHA-256, SHA-384 alebo SHA-512, vrátane výberu signatára issuer-and-serial a SubjectKeyIdentifier, prísnej validácie DER podpisu a rozšírenej diagnostiky algoritmov a kriviek
- Správa farieb ICC teraz validuje ICC v2/v4 profily, odvodzuje a overuje počty komponentov, deduplikuje zaregistrované profily, konvertuje ICCBased vektorové farby a surové obrazové vzorky na sRGB s podporou renderovacieho zámeru a ponecháva farebný priestor PDF Alternate ako kontrolovaný návrat
Version 2.432.0
Added
THPDFTableCellteraz podporuje obrazové bunky (ImageIndex+ImageAspectškálujú zaregistrovaný obrázok na šírku stĺpca s H/V zarovnaním) a HTML bunky (IsHTMLvykreslí text bunky cezTextOutHTMLpre inline tučné/farba/odkaz/dolno-horný index markup), čím zodpovedá rôznorodosti obsahu buniek, ktorú sa očakáva, že export mriežky ponesie
Version 2.431.0
Added
- Nový engine rozvrhovania a vykresľovania
THPDFTable(jednotkaHPDFTable) rozkladá tabuľky z deklarovaných šíriek stĺpcov a riadkov, s textom, zarovnaním, farbou a preťaženiami písma na bunku, zlučovanímColSpan/RowSpan, automatickým zalamovaním slov s nameranými výškami riadkov, pozadiami hlavičiek a zebrou a automatickým pokračovaním zalomenia stránky, ktoré opakuje pás hlavičky na každej strane -- všetko riadi existujúce kresliace primitívyTHPDFPage, takže producenti už nekreslia bunky ručne pomocouRectangleaTextOut
Version 2.430.0
Changed
- Spracovanie prúdu obsahu a úpravy načítanej stránky sa teraz škálujú efektívnejšie pri veľkých textových a cestných záťažiach, zachovávajú Unicode doplnkovej roviny a sémantiku PDF ciest, invalidujú vyrovnávacie pamäte stránok po mutáciách a dokončujú zápisy do streamov, ktoré prijímajú čiastočné vyrovnávacie pamäte
Version 2.428.0
Added
THPDFPage.TextOutHTMLzískava preťaženie pre zalamovanie slov, ktoré prijímaMaxWidtha láme dlhé riadky na hraniciach slov, plus značky vložených hypertextových odkazov (<a href>) a dolného/horného indexu (<sub>/<sup>); hypertextové odkazy sa kreslia modro a podčiarknute a registrujú klikateľnú anotáciu URI
Version 2.427.0
Changed
- Po sebe idúce behy textu zdieľajúce rovnaké písmo a veľkosť už pri každom volaní znovu nevyžarujú operátor
Tf, čím zmenšujú prúdy obsahu v dokumentoch bohatých na písma (tabuľky, odseky), pričom ich stále vyžarujú po obnove grafického stavu (Q), kde to PDF vyžaduje - Aproximácia elipsy v
THPDFPageteraz používa štandardnú konštantu kubickej-Bézier-kappa0.5522847498, čo zodpovedá všetkým ostatným implementáciám elíps a kruhov v jednotke a odstraňuje malú odchýlku závislú od polomeru, ktorú produkovala predchádzajúca aproximácia11/20
Version 2.426.0
Added
- Prehliadač teraz predohrieva vyrovnávaciu pamäť vykreslených strán pre stránky susediace s tou práve zobrazenou, pomocou vlákna na pozadí s rovnakým DPI, takže ďalšie otočenie stránky zasiahne vyrovnávaciu pamäť namiesto synchronného znovuvykreslenia; nová vlastnosť
PrefetchRadiusriadi, koľko strán na každej strane sa predohrieva (0 to vypína)
Version 2.425.0
Added
- Vykresľovač načítaných strán teraz dekóduje a kreslí vložené obrázky (
BI/ID/EI) namiesto ich preskočenia, rozbaľuje skrátené páre kľúč/hodnota vloženého obrázku a surové bajty v čase tokenizácie a umiestňuje výsledok cez rovnaké mapovanie CTM jednotkového štvorca použité pre XObjekty obrázkov
Version 2.424.2
Changed
- Disková vyrovnávacia pamäť vykreslených strán teraz zbiera všetky súbory strán v jednom skenovaní adresára a vyhadzuje pretekajúci chvost v jednom prechode, čím nahrádza predchádzajúci cyklus znovuskenovania-pri-vyhodení, ktorý bežal v kvadratickom čase vzhľadom na počet strán na dokument
- Deduplikácia obrázkov teraz zapamätá SHA-256 každého uloženého prúdu obrázku a porovnáva hashe pred prechodom bajtov, takže pridanie rovnakého veľkého obrázku na mnoho strán už pri každom vložení znovu nečíta každý predtým uložený prúd
Version 2.424.1
Changed
- Vážená vyrovnávacia pamäť dekódovaných obrázkov a písiem podmnožiny teraz rieši vyhľadávania cez hašovací index a udržiava poradie naposledy použitých cez indexový obojsmerne zreťazený zoznam, čím mení každé
Get,Puta povýšenie aktuálnosti z posunu poľa O(n) na prácu O(1), takže vykresľovanie veľkých viacobrázkových dokumentov sa už nedegraduje, ako sa vyrovnávacia pamäť plní
Version 2.424.0
Changed
CompressLoadedDocumentteraz rešpektujeCompressionLevel, spracováva zdrojové prúdy v ohraničených častiach, zachováva pôvodné zaťaženie, keď kompresia ho nezmenší, bezpečne uvoľňuje nahradené prúdy a označuje transformované objekty prúdu ako špinavé, abySaveLoadedDocumenttrvalo uložil výsledok namiesto cesty kópie nezmeneného súboru.DecompressLoadedDocumentpoužíva rovnakú cestu prúdu bezpečnú pre vlastníctvo, odstraňuje identické/DecodeParmsa necháva prúdy prediktora TIFF alebo PNG komprimované, kým fázu prediktora nemožno bezpečne dekódovať
Version 2.423.0
Added
THPDFPage.AddCertificationSignatureFieldaConfigureCertificationSignatureteraz vytvárajú jediný certifikačný podpis DocMDP so všetkými troma úrovňami oprávnení a zodpovedajúcim prepojením Catalog/Perms /DocMDP, kýmAttachSignatureFieldLockvysielajú nepriame politiky SigFieldLock a zodpovedajúce referencie FieldMDP pre rozsahy polí All, Include alebo Exclude.THotPDF.GetLoadedSignaturePermissionsvykonáva ohraničenú štrukturálnu inšpekciu rovnakého grafu oprávnení, vrátane požadovanej priamosti, koreňového prepojenia, zhody politík a diagnostiky, bez miešania štruktúry politiky s kryptografickou platnosťou alebo súladom s neskoršími revíziami
Version 2.422.0
Added
- Watermark / header / footer placeholder tokens now resolve document metadata:
<%Author%>/<%Title%>/<%Subject%>/<%Keywords%>/<%Producer%>are substituted alongside the existing<%PageNo%>/<%TotPage%>/<%FileName%>/ date-time tokens when the newHPDFReplaceWatermarkPlaceholdersoverload is given aTHPDFPlaceholderDocInforecord. The legacy 4-parameter signature stays for callers that only need the page / file / date-time subset
Version 2.421.0
Added
THPDFActionBuilder.GoToEmbeddedNamedDestinationandGoToEmbeddedPagecreate PDF 1.6GoToEactions with standards-valid parent, EmbeddedFiles name-tree, attachment-annotation, and nested/Ttarget paths, while preserving named or explicit destinations, optional root file specifications,NewWindow, action chaining, and PDF/A/PDF/X restrictions- Loaded action inspection now recognises all 18 ISO 32000-1 action subtypes and returns ordered, non-executing
THPDFLoadedActionInfosnapshots from catalog/OpenActionand/AA, page/AA, annotation/Aand/AA, AcroForm field/AA, and outline/Asources. Dictionary and array/Nextforms preserve execution order, while malformed entries, shared nodes, cycles, excessive depth, and excessive node counts stop safely with diagnostics - Annotation action and JavaScript trigger enums now include page-open
/PO, page-close/PC, page-visible/PV, and page-invisible/PIevents with the required PDF 1.5 version negotiation
Version 2.420.0
Added
- Content-stream device stage 3 closes the abstraction loop:
IHPDFContentDevicegainsDrawXObject/DrawShading/ApplyExtGStatefor theDo/sh/gsoperators, and the shared interpreter now dispatches them.Dois gated oncdcNeedImagesso text/enum devices skip the heavy image decoding;shandgsdispatch unconditionally. The renderer'sExecuteViaDevicepath can now paint the full operator set (paths + colours + text + images + shading + ExtGState), observably equivalent to the legacyHandleOperatorpath. TheApplyExtGStatenested procedure was promoted to a class method (DoApplyExtGState) so the device path shares it without duplication; method-resolution clauses route the three new interface entries toDev*helpers without colliding with the pre-existing private helpers - Document-content observer pattern:
THotPDF.OnLoadedDocumentModifiedevent fires fromInvalidateRenderedPageCache(PageIndex = -1, whole document) andInvalidateRenderedPageCachePage(a specific page) so attached viewers refresh automatically.THPDFViewersubscribes inSetDocumentand unbinds on detach /opRemove, callingRefreshDocumentwhen the current page (or the whole document) is affected. Multi-view sync (several viewers on the sameTHotPDF) now works without each caller invokingRefreshDocumentby hand
Version 2.419.0
Added
- Content-stream device abstraction stage 1:
IHPDFContentDevicegains the text callback surface (BeginText/EndText/UpdateFont/UpdateCharSpace/UpdateWordSpace/UpdateHorizScale/UpdateLeading/UpdateRenderMode/UpdateRise/TextMove/TextSetMatrix/TextNewLine/ShowText/ShowTextArray) mirroring the PDF text state machine; the sharedHPDFInterpretContentStreamDevicedispatcher now forwards BT/ET/Tf/Tc/Tw/Tz/TL/Tr/Ts/Td/TD/Tm/T*/Tj/TJ/'/" to the device when it declarescdcNeedText THPDFTextExtractDeviceis a concrete device that maintains the text matrices and emits oneTHPDFGlyphRecordper char code (decoded via an injectedIHPDFFontResolver) — observably equivalent toHPDFInterpretTokensoutput but produced through the device interface so the same interpreter loop drives text extraction, path enumeration and renderingHPDFExtractGlyphsViaDeviceconvenience function wraps the text-extract device + shared interpreter in one call; the existingHPDFInterpretContentStream/HPDFInterpretTokensstay untouched for current callers- Content-stream device abstraction stage 2:
THPDFPageRenderernow implementsIHPDFContentDeviceso the shared dispatcher can drive it through the same abstract interface.ExecuteViaDeviceis the opt-in device-driven render entry; the productionExecutepath keeps its built-inExecuteStream/HandleOperatordispatch, so existing behaviour is unchanged. The renderer carries every piece of state the callbacks need (graphics-state stack, font cache, GDI handles, four paint bridges) and each device method is a thin delegation, so the device-driven route is observably equivalent to the legacy route
Version 2.418.0
Added
DecompressLoadedDocumentis the inverse ofCompressLoadedDocument: it walks every indirect stream carrying a/Filter /FlateDecode(name or single-element array form), inflates the payload back to raw bytes, strips the/Filterentry and fixes up/Length; streams with other filters (CCITT / DCT / JBIG2 / JPX / Crypt / RunLength) and multi-filter chains are left untouched, and corrupt Flate payloads are skipped rather than discardedEnumLoadedPageElementsnow returns the full path geometry perekPathelement, not just the bounding box: two new fieldsPathPoints: array of THPDFPathPointandPathIsCurve: array of Booleanare index-parallel and carry each segment’s user-space control points with a flag distinguishing cubic bezier segments from linear ones (m / l / re edges). Callers that only read the bbox are unaffected; CAD drawing extraction, table-line detection and vector-replay consumers can now rebuild the exact curves the page drew- New
HPDFContentDeviceunit introduces the content-stream device abstraction (stage 0): anIHPDFContentDeviceinterface with aTInterfacedObjectbase implementation (mirroring the provenIHPDFFontResolverpattern), a sharedHPDFInterpretContentStreamDevicedispatcher that today covers the path / colour / state operator subset, and a concreteTHPDFPathEnumDevicethat collects one record per painted path with full point geometry. This breaks the three-way duplication betweenHPDFContentStream,HPDFPageRenderer.HandleOperatorandHPDFCollectPathElements; stage 1 will add text/image callbacks and stage 2 will migrate the renderer onto the device
Changed
HPDFPageRendererheader comment updated: the “TrueType/CFF glyph-outline rendering out of scope” note was stale — embedded glyph outlines have been active since v2.342.0 (DrawTextRuncallsTHPDFEmbeddedTTF.DrawGlyph/THPDFEmbeddedCFF.DrawGlyphwith real quadratic/cubic bezier paths; GDITextOutWis only the fallback for unmapped characters). CID fonts via Identity-H + CIDToGIDMap are covered too
Version 2.417.0
Added
- Five named loaded-document annotation helpers close the discovery gap where the existing
ASubtype-parameterised helpers (AddLoadedHighlightAnnotation,AddLoadedSquareAnnotation,AddLoadedPolygonAnnotation) already produced these subtypes but callers had to know the secret:AddLoadedCircleAnnotation,AddLoadedUnderlineAnnotation,AddLoadedStrikeOutAnnotation,AddLoadedSquigglyAnnotationandAddLoadedPolylineAnnotation-- once landed, the XFDF interchange layer (which already recognises these subtype strings) picks them up for free AddLoadedFileAttachmentAnnotationembeds an arbitrary file payload (PDF, image, office doc) as a FileAttachment annotation with the full three-object graph the spec requires: annotation dict / Filespec dict / EmbeddedFile stream with/SubtypeMIME,/Params /Sizeand creation/modification dates; the newTHPDFFileAttachmentIconenum (faiPushPin/faiGraph/faiPaperclip/faiTag) selects the standard pin icon viewers renderTHPDFFieldValidationOptionsrecord +HPDFDefaultValidationOptionsexpose the full AdobeAF*parameter surface (Decimals / SeparatorStyle / NegativeStyle / CurrencySymbol / CurrencyBefore / RangeMin / RangeMax) that the Acrobat JS helpers accept; the existingApplyLoadedFieldValidation(FieldIndex, Kind, DateFormat, Mask)signature is retained as a backward-compatible overload that forwards into the new record overloadApplyFieldValidationandApplyFieldCalculationbring the same Format+Keystroke+Validate / Calculate template to producer-mode fields (looked up by name) so newly-created forms get the same AF* scripts as loaded ones, without writing JavaScript by handCopyLoadedAnnotationsFromDocumentdeep-copies annotations from another loaded document directly PDF→PDF (no XFDF intermediary): reusesCopyObjectto rebuild indirect references, streams and/APappearances, rewrites/Pto the destination page, optionally remaps/IRTreply chains via/NM, optionally clears/Tauthor, and accepts aTHPDFAnnotCopyFilterEventcallback for selective copy -- covers Widget/PrinterMark/TrapNet/Watermark/3D/Screen that the XFDF layer does not reach
Fixed
ApplyLoadedFieldValidationwrote the Format JavaScript under trigger key/X(annotation-exit), which Acrobat never fires for form fields -- the script was effectively dead. Corrected to/Fso the format actually runs on field commitApplyLoadedFieldValidationemittedAFSpecial_FormatExfor the ArbitraryMask kind, a function that does not exist in the AdobeAF*set; onlyAFSpecial_KeystrokeEx(mask)is real, so the Format pass is dropped and enforcement happens at keystroke time as the spec intendsApplyLoadedFieldValidationunconditionally appendedAFRange_Validate(true,true,0,9999999)for numeric kinds, imposing a hidden 0..9999999 range the caller never asked for; range validation now only fires when the caller explicitly setsRangeMinorRangeMaxin the options recordApplyLoadedFieldValidationwrapped the ArbitraryMask in a JavaScript regex literal and emitted a hand-rolled validate script, but the mask is a literal format pattern ("AAA-9999"), not a regex; the validate pass is now removed and the keystroke mask carries the enforcement aloneApplyLoadedFieldCalculationnow prepends a Format+Keystroke number-formatting pair before theAFSimple_Calculatescript so the aggregated result renders as a plain number, matching common PDF viewer behaviour (without it the Calculate value displays raw)
Version 2.416.0
Added
THPDFViewernow scrolls on hover-wheel without needing a click first: a thread-localWH_MOUSEhook (newHPDFMouseWheelHookunit, auto-installed from itsinitializationsection) routesWM_MOUSEWHEELto whicheverTHPDFViewerinstance sits under the cursor, matching the behaviour of every native Windows PDF readerTHPDFVieweris now Per-Monitor DPI v2 aware: newHPDFPerMonitorDPIunit resolvesuser32!SetProcessDpiAwarenessContext(Win10 1703+,DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) at runtime and falls back throughshcore!SetProcessDpiAwareness(Win8.1+) anduser32!SetProcessDPIAware(Vista+); the legacyHPDFEnablePerMonitorDPIis retained as an alias that forwards to the new layered helperTHPDFViewer.RenderAtPhysicalDPIpublished property (defaultTrue) makes the rendering DPI baseline track the monitor’s physical DPI viaHPDFGetWindowDPI, so 100% zoom on a 144 DPI panel renders at native resolution; a newWMDpiChangedhandler re-renders on cross-monitor moves; setFalseto preserve the historical 96-DPI logical baseline- Optional persistent disk tier for the rendered-page cache: setting
THotPDF.RenderCacheFolderto a writable folder path persists every page rendered byRenderLoadedPageToBitmapCachedas a PNG under<folder>\<SHA256-prefix-16>\<page>@<dpi>.png, so re-opening the same document later is instant;RenderCacheMaxDocuments(default 20) andRenderCacheMaxBytes(default 500 MB) bound the footprint with a true LRU eviction; the lookup order becomes in-memory → disk → rasterise, with disk hits back-filling the in-memory tier THotPDFconstructor now activates the highest available per-monitor DPI tier at first instantiation in runtime mode (skipped incsDesigning), so hosts that never callHPDFEnablePerMonitorDPIexplicitly still get crisp rendering on high-DPI displays
Version 2.415.0
Added
HPDFParsePDFDatenow honours the timezone suffix (+HH’mm,-HH’mm, orZ) and returns a UTCTDateTime;HPDFFormatPDFDateis the inverse formatter producingD:YYYYMMDDHHmmSS+00’00GetLoadedExtGStateInforeadsLW/LC/LJ/ca/CAoff a named ExtGState entry on a loaded page;GetLoadedShadingCount/GetLoadedShadingNameandGetLoadedPatternCount/GetLoadedPatternNameenumerate the/Shadingand/Patternresource sub-dictionariesReplaceLoadedPageswaps a page’s contents from a source document,SwitchLoadedPagesexchanges two pages,ReverseLoadedPagesflips page order in a range,ExtractLoadedPagesToPDFsaves a page range as a standalone PDF, andGetLoadedPageInheritedBoxresolves inherited page boxes through the page-tree parent chainGetLoadedFileSpecInforeads embedded-file metadata (name / description / MIME / size),GetLoadedEmbeddedFileMIMEreturns the/Subtype,GetLoadedEmbeddedFileChecksumreturns the/Checksumdigest, andTHPDFNameTreeType+GetLoadedNameTreeRootCountprovide a typed enumeration of all nine name-tree categoriesHPDFEnablePerMonitorDPIdynamically enables per-monitor DPI awareness;THPDFBackgroundRendererrenders pages on a background thread with a request queue and cancellation;GetLoadedPageContentStreamCountreports whether/Contentsis a single stream or an array;GetLoadedXMPValueextracts a namespace-qualified XMP property; andGetLoadedDocumentReportaggregates all diagnostic info into a JSON string
Version 2.414.0
Added
THPDFActionBuilder.URIWithIsMapcreates a URI action with/IsMap truefor server-side image-map tracking, where the previousURIbuilder only set the bare/URIstringAddLoadedCaretAnnotationExadds an optional paragraph symbol (/Sy P) to caret annotations, the visual marker editors use for insert-trackingGetLoadedAnnotationDAparses a FreeText annotation’s/DAstring into font name, font size and RGB colour components, so a caller can inspect or clone the appearance without re-parsing the raw operator string
Version 2.413.2
Fixed
- The C++Builder package now links without requiring crypt32.lib: HPDFWinCertSigner loads the CryptoAPI entry points (CertOpenStore, CertEnumCertificatesInStore, CryptAcquireCertificatePrivateKey, and the Crypt hash helpers) dynamically via LoadLibrary/GetProcAddress, matching the pattern already used by HPDFDoc.EnumerateSystemCertificates
Version 2.413.1
Fixed
- Type1 and CFF font handling now preserves parser ownership across repeated stream checks and multi-font FontSets, returns stable glyph names and bounding boxes, keeps fractional font sizes and DPI scaling, and avoids composite-glyph and private-dictionary memory errors
- The C++Builder AddDelPages, HugeFileBenchmark, and Security demos now compile for Win64, while page-operation and preflight examples release partially constructed objects safely
Version 2.413.0
Changed
- The Delphi E-Invoice demo now validates required invoice fields, amount and VAT ranges, currency syntax, and embedded XML profile compatibility before writing output
- The attach workflow now rejects identical source and output paths, reports the detected XML guideline, and combines container, PDF/A, XML profile, signature, visual consistency, Schematron, and external-report checks into one verdict
Fixed
- E-Invoice generation and manual validation no longer report a successful result when an enabled validation layer finds issues
- Loaded electronic-invoice summaries now read the invoice number, seller, and buyer from their correct XML aggregates, preventing false visible-text consistency findings
Version 2.412.0
Changed
- All Delphi demos now resolve no-argument relative assets and outputs from their executable directory while preserving the caller working directory for command-line paths
- Delphi command-line demos now provide stricter argument validation, failure exit codes, deterministic comparison inputs, and generated-document verification across page copying, text extraction, preflight, optimisation, inspection, and in-memory workflows
Fixed
- Delphi demos no longer risk page-list overflow above 100 selected pages, create an extra blank page in the add-page workflow, close unrelated PDF viewer windows, or report failed preflight checks as successful
- The E-Invoice attach workflow now rebuilds its current page correctly when a single-page source is converted, signed, and stripped of the temporary initial blank page
Version 2.411.0
Added
- E-Invoice demo: new "Attach to existing PDF" mode converts an existing PDF to PDF/A-3, embeds a Factur-X/ZUGFeRD invoice XML as a document-level attachment, and optionally signs the result with a PFX certificate
Version 2.410.0
Added
- Loaded AcroForm fields can now update flags, maximum length, text justification, per-widget rectangles, rotation, border colour, and visible or printable state, with widget enumeration for radio groups and other multi-widget fields
Fixed
- Loaded field tooltip, border-width, and background-colour edits now mark the correct field or widget dictionaries dirty, apply visual properties to every widget, and invalidate only the affected page render cache
Version 2.409.0
Added
ActivateLoadedLinksturns bare HTTP, HTTPS, FTP,www.,mailto:, and email text into positioned borderless URI annotations across a selected page range
Changed
- Loaded link creation now persists reliably in incremental updates, while automatic activation snapshots existing links once per page, skips matching URI and rectangle pairs, and invalidates each changed page cache only once
Version 2.408.0
Added
- Loaded annotations can now update their title, unique name, modification date, normalised rectangle, and standard solid, dashed, bevelled, inset, or underlined border style
Fixed
- Loaded annotation edits now mark the annotation object dirty for incremental saves, while visual edits invalidate only the affected page's cached renders and retain other warm pages
Version 2.407.0
Added
THPDFViewerModelstores, clips, enumerates, removes, and clears persistent page-region highlights without modifying the PDFTHPDFVieweradds a highlight interaction mode with captured marquee dragging, rotation-aware PDF coordinate recovery, configurable colour, and anOnMarqueeSelectcallback
Fixed
- Viewer coordinate transforms now retain the actual render DPI below 12 and above 2400, keeping selections aligned at the 5% and 6400% zoom limits
Version 2.406.0
Added
THPDFViewerModelcreates rotation-aware page thumbnails directly at a DPI selected for caller-supplied pixel bounds, avoiding full-size intermediate page bitmaps- Viewer-model page prefetch warms a centred neighbourhood asynchronously while limiting the scheduled pages to the rendered-page cache capacity
Version 2.405.0
Added
THPDFPageLayoutnow supports PDF 1.5plTwoPageLeftandplTwoPageRightcover-spread layouts with automatic version negotiation and strict-version fallback
Fixed
BeginDocnow preserves the caller-selected page layout instead of always replacing it withplOneColumn
Version 2.404.0
Added
THPDFViewerModelcreates rotation-aware snapshots of bounded PDF page regions without allocating a full-page bitmap
Version 2.403.0
Added
THPDFViewerModelconverts points bidirectionally between PDF page space and rotation-aware Viewer coordinates at a caller-selected DPI
Version 2.402.0
Changed
- Viewer zoom commands now use stable standard levels from 5% through 6400%, including reversible navigation around arbitrary custom values
Version 2.401.0
Added
THPDFVieweradds Ctrl+wheel zoom, vertical wheel scrolling, and Shift+wheel horizontal scrolling without rerendering for scroll-only input
Version 2.400.0
Added
THPDFVieweradds keyboard page navigation, scrolling, zoom shortcuts, and Actual Size, Fit Width, or Fit Page mode selection
Version 2.399.0
Added
THPDFViewerdraws or prints the rotation-aware current view with deterministic aspect-preserving fit and centred placement
Version 2.398.0
Added
THPDFViewerModelcreates caller-owned vector EMF snapshots of any loaded page or the current view, including non-destructive 90-degree view rotation
Version 2.397.0
Added
THPDFViewerModelsaves rotation-aware page snapshots as BMP, JPEG, or PNG to files and caller-owned streams with configurable JPEG quality
Version 2.396.0
Added
THPDFViewer.ResetViewrestores Actual Size, clears view rotation and search highlights while preserving the current page, with matching reset and rotation actions and batched single-render updates
Version 2.395.0
Added
THPDFViewerandTHPDFViewerModeladd clockwise, counter-clockwise, and resettable view rotation that also applies to caller-owned page snapshots without changing the PDF page
Version 2.394.0
Added
THPDFViewerModelcan create caller-owned page snapshots and save the current page as BMP without constructing a Viewer control
Version 2.393.0
Added
THPDFLoadedFormFieldnow exposes field flags, MaxLen, page index, widget bounds, and common Required, NoExport, Multiline, and Password statesGetLoadedFormFieldMaxLengthprovides direct indexed access to loaded text-field length limits
Version 2.392.0
Added
SetDocumentAttachmentMetadatarenames document-level embedded attachments and updates their descriptions before serialization
Version 2.391.0
Added
ExtractLoadedPagesTextToStreamstreams selected loaded-page text as UTF-8 with custom separators and optional BOM outputTHPDFViewerModeladds form-field hit testing and deterministic keyboard navigation across page widgetsTHPDFSignatureInfo.CertificateTimeValidityreports certificate-bound and signed-time validity classifications
Fixed
- Loaded form fields without widget
/Pback-references can now be mapped through page annotation arrays
Version 2.390.0
Added
THPDFWatermarkTemplate.MakeCurveandTHPDFPage.AddCurveWatermarkadd cubic Bezier curves to loaded composites and new-document authoring
Fixed
- Loaded document metadata setters now mark the Info dictionary dirty so incremental saves persist title and author changes
Version 2.389.0
Added
InsertLoadedBlankPageinserts a blank page with caller-defined dimensions at an exact loaded-document positionExtractLoadedPagesTextaggregates text from a one-based page range with a caller-defined separatorGetLoadedFormFieldNameValuePairsandSetLoadedFormFieldNameValuePairsprovide batchname=valueform exchange throughTStringsCMapResourcePathsupports explicit standard CMap deployment paths for services, plug-ins, and custom application layouts
Changed
- The VCL viewer now draws search-hit rectangles and refreshes when the active hit changes on the current page, while linked outline controls follow viewer document changes
- Page rendering now resolves inherited media boxes, rotation, and resources and correctly maps non-zero page origins at every right-angle rotation
Fixed
- Form-name conflicts are rejected before page insertion or append begins when merge renaming is disabled, leaving the destination page count unchanged
- Deleting loaded pages now detaches their AcroForm widget fields and removes empty field-tree branches instead of leaving references to deleted pages
- Cursor-style search helpers and viewer-model misses no longer clear managed text-match records with raw memory operations
- Automatic CMap discovery now passes the actual collection root to the text decoder
Version 2.388.0
Added
- New
DeletePagesremoves one-based page ranges from loaded PDFs, de-duplicates overlapping selections, reports progress, and rebuilds a valid page tree for saving - Page insertion and append merging now accept
THPDFMergeOptionsto copy recursive outlines, register imported AcroForm fields, and deterministically rename conflicting field names - New
AddLoadedRadioButtoncreates a true parent radio field with child widgets, shared export values, and complete on/off appearance states - New
SearchLoadedNextprovides stateless page-local next-match search, whileGetLoadedOutlineEntriesreturns complete recursive outline snapshots with parent and level data - New Windows certificate-store signing overloads select a current-user or local-machine certificate by SHA-1 thumbprint and sign through either CNG or legacy CSP private keys
- New
THPDFLoadedDocumentFacadeexposes typed outline, form, annotation, font, and image collections with mutation and extraction helpers - New
THPDFViewer,THPDFSearchPanel,THPDFOutlineViewer, viewer model, and viewer action classes add reusable VCL page display, navigation, zoom, search, and bookmark controls - New advanced printing, signature validation, page-thumbnail, loaded-image export, and typed loaded-document inspection demos cover the end-to-end workflows
Changed
- Loaded-document printing now builds deterministic collated or uncollated physical page sequences, supports custom paper width and length, and reports printer paper codes, names, and sizes
- System certificate enumeration now includes SHA-1 thumbprints, private-key availability, validity dates, and key-usage metadata
Fixed
- Loaded text-search result growth no longer copies managed string records with raw memory moves, preventing invalid-pointer failures on Win64
- Deleting loaded pages no longer frees shared page resources or leaves stale page-tree counts that reappear after save and reload
Version 2.387.0
Added
- New
PrefetchLoadedPagesrenders a page range into the rendered-page cache on a background worker thread, so a viewer turning pages gets instant warm-cache hits instead of waiting for each render CancelLoadedPagePrefetchstops the worker andIsLoadedPagePrefetchActivereports its state; loading another document or destroying the component cancels an active prefetch automatically- Cached rendering and the prefetch worker are serialised internally, so
RenderLoadedPageToBitmapCachedstays safe to call while a prefetch is running
Version 2.386.0
Added
- New
FlattenLoadedAnnotationsdraws each annotation's normal appearance permanently into the page content at its rectangle and removes the annotation, so markup and form visuals survive in viewers that hide or cannot edit annotations - The pass follows appearance-state dictionaries through
/AS, honours the appearance bounding box and matrix when fitting the rectangle, and can be limited to one annotation subtype or a page range
Version 2.385.0
Added
- New
RenderLoadedPageRegionToBitmaprasterises only a chosen user-space window of a page at the requested DPI, so very large pages can be rendered tile by tile in bounded memory at high resolutions instead of as one oversized bitmap - Tiles align exactly: the bitmap covers precisely the requested region, so adjacent tiles reassemble into the full page without seams
Version 2.384.0
Added
- New
GenerateLoadedPageThumbnailsrenders the selected pages of a loaded document and embeds them as JPEG page thumbnails, the previews shown in viewer page panels; the longest edge size and JPEG quality are configurable, and existing thumbnails are replaced in place GetLoadedPageThumbnailSizereads back an embedded thumbnail's pixel dimensions, andClearLoadedPageThumbnailsremoves thumbnails from the selected pages
Version 2.383.0
Added
EnumLoadedPageElementsnow reports vector path elements alongside text runs and images: each painted path yields an element with its user-space bounding box, the painting operator (stroke, fill, or both), the fill and stroke colours in force, and the segment count- The path walker follows
q/Qnesting andcmtransformations, so shapes drawn inside scaled or translated blocks report their true page coordinates
Version 2.382.0
Added
THPDFPrintOptionsgainsDuplex(simplex, long-edge, short-edge),PaperBin, andPrintQualityfields that are pushed into the printer device mode before the job starts; an explicitOrientationvalue is now applied as well- New
HPDFGetInstalledPrinterslists the system printers, andHPDFGetPrinterCapabilitiesreports a printer's duplex and colour support, maximum copy count, paper bins (with the codes accepted byPaperBin), and supported resolutions
Version 2.381.0
Added
- New
CopyLoadedOutlinesFromDocumentmerges the complete bookmark tree of another loaded document into the current one, preserving titles, nesting, sibling order, and destination view parameters while remapping every destination page by a caller-supplied offset — the companion to page-append merges so combined documents keep both bookmark sets
Fixed
GetLoadedBookmarkPageIndexnow finds bookmarks beyond the first top-level entry and inside nested levels; the previous lookup only matched later bookmarks by coincidence
Version 2.380.0
Added
- New
ImposeLoadedPagesNUplays any page range onto grid sheets (any columns-by-rows arrangement, configurable sheet size and gutter) in reading order, scaling each page into its cell with optional aspect-ratio preservation - New
ImposeLoadedPagesBookletproduces saddle-stitch booklet sheets: pages are padded to a multiple of four and paired in booklet order so double-sided printing and folding yields a correctly ordered booklet - Both imposition calls wrap the source pages as Form XObjects and append the finished sheets after the existing pages, returning the sheet count
Fixed
- Loaded-page rendering now follows an indirect reference on the resources
/XObjectsub-dictionary; pages whose resources arrived as separate objects skipped their images and forms silently
Version 2.379.0
Added
SaveLoadedPagesAsImagesgains two TIFF formats:ifTIFFwrites one single-page TIFF file per page, andifTIFFMultiaggregates the whole page range into one multi-page TIFF, unifying TIFF output with the existing BMP, JPEG, PNG, EMF, and WMF choices- Both TIFF paths honour the requested rendering DPI in the image resolution tags and use lossless Deflate compression
Version 2.378.0
Added
- Loaded-page rendering now draws text rendering modes 1 (stroke) and 2 (fill then stroke) with real glyph outlines for both embedded fonts and system-font fallbacks, using the current stroke colour and line width; the clipping variants 4 to 7 paint like their base modes
Fixed
- Twelve single-operand content operators (
Tc,Tw,Tz,TL,Ts,Tr,w,J,j,M,ri,i) read their operand from the wrong token position and always applied zero; character and word spacing, horizontal scaling, leading, text rise, render mode, line width, caps, joins, and miter limit now take effect when rendering loaded pages
Version 2.377.0
Added
- Loaded-page rendering now honours optional-content (layer) visibility: content inside
BDC /OCmarked sections and XObjects carrying an/OCentry is hidden when its layer is off, following the document's default configuration (/BaseState,/ON,/OFF) - Optional-content membership dictionaries evaluate their
/Ppolicy (AnyOn,AllOn,AnyOff,AllOff) over the member groups - New layer APIs on loaded documents:
GetLoadedOptionalContentGroupCount,GetLoadedOptionalContentGroupName,GetLoadedOptionalContentGroupVisible, andSetLoadedOptionalContentGroupVisibleto inspect and override layer states for rendering; overrides invalidate the rendered-page cache automatically
Version 2.376.1
Fixed
- Loaded-page bitmap rendering now paints image XObjects: the
Do,gs, andshresource lookups previously missed their slash-prefixed operand names and skipped the object silently - The
cmoperator and Form XObject/Matrixvalues now concatenate in the correct order, so translate-plus-scale placement sequences (the standard image positioning idiom) land content at its intended page position
Version 2.376.0
Added
- New
RegisterExponentialFunction,RegisterStitchingFunction, andRegisterPostScriptFunctionAPIs create standalone Type 2, Type 3, and Type 4 function objects for use wherever a function reference is accepted (shadings, halftone spot and transfer functions, tint transforms) RegisterPostScriptFunctionvalidates the calculator program at registration time by trial evaluation, so malformed programs are rejected immediately instead of degrading silently in viewers- New
RegisterSeparationFunccreates a Separation colour space with a caller-supplied tint-transform function object
Fixed
- Rendering Type 2 (exponential) tint transforms with one- or three-component outputs no longer paints black; previously only four-component (CMYK) outputs decoded correctly
- Rendering Type 3 (stitching) tint transforms now supports any number of sub-functions, applies the
/Encoderemapping, and accepts single-entry/Boundsarrays
Version 2.375.0
Added
- Page rendering now evaluates Type 4 (PostScript calculator) tint-transform functions, so Separation and DeviceN colours and gradient shadings driven by calculator programs render their real colours instead of a grey placeholder
- The calculator evaluator covers the complete ISO 32000-1 7.10.5 operator set: arithmetic, comparison, boolean and bitwise, stack manipulation, and
if/ifelseconditionals
Fixed
- Named colour-space selection (
cs/CSoperators) in loaded-page rendering now resolves resource names correctly; previously the lookup missed and the content fell back to the default colour space - Loaded-page rendering now follows indirect references to array-valued colour spaces such as
/Separationand/DeviceNdefinitions stored as standalone objects
Version 2.374.0
Fixed
- XFDF annotation import/export now preserves caret annotation default appearance data through the
<defaultappearance>child and the PDF annotationDAentry
Version 2.373.0
Fixed
- XFDF annotation import/export now preserves caret annotation fringe geometry through the
fringeattribute and the PDF annotationRDentry
Version 2.372.0
Fixed
- XFDF annotation import/export now preserves rubber stamp annotation rotation through the
rotationattribute and the PDF annotationRotateentry
Version 2.371.0
Fixed
- XFDF annotation import/export now preserves text annotation reply relationships through
inreplyto,replyType, and the PDF annotationIRTandRTentries
Version 2.370.0
Added
- XFA numeric, date-time, and password fields with disabled horizontal scrolling now flatten to AcroForm text widgets with the PDF do-not-scroll flag
Version 2.369.0
Added
- XFA text fields with disabled scroll policies now flatten to AcroForm text widgets with the PDF do-not-scroll flag
Version 2.368.0
Added
- XFA text fields with
multiLine="1"now flatten to AcroForm text widgets with the PDF multiline flag
Version 2.367.0
Added
- XFA subform access restrictions now inherit into child widgets so generated AcroForm fields stay read-only when an ancestor is
readOnly,protected, ornonInteractive
Version 2.366.0
Added
- XFA choice-list flattening now maps
commitOn="select"to the AcroForm commit-on-selection-change flag for generated choice fields
Version 2.365.0
Added
- XFA choice-list flattening now maps
open="always"lists to single-select AcroForm list boxes instead of drop-down combo boxes
Version 2.364.0
Added
- XFA choice-list flattening now maps
textEntry="1"combo lists to editable AcroForm combo boxes while preserving typed values outside the option list
Version 2.363.0
Added
- XFA choice-list flattening now prefers
<items save="1">values when a field carries separate display and saved-value option lists
Version 2.362.0
Fixed
- XFDF annotation import/export now preserves FreeText
justificationandtailattributes through the PDF annotationQandITentries - JBIG2 document defaults now match the documented scan-friendly settings for lossy level, isolated black-pixel cleanup and black-dot size
Version 2.361.0
Fixed
- XFDF annotation import/export now preserves standard line leader and caption attributes, including
leaderLength,leaderExtended,caption,leader-offset,caption-style, caption offset values and the import-sideleaderExtendspelling used by compatible XFDF files
Version 2.360.0
Added
- XFA flattening now suppresses output for fields and static draws concealed by
presence="hidden",presence="invisible", orpresence="inactive", including descendants of concealed containers
Version 2.359.0
Added
- XFA flattening now maps field-level
access="readOnly",access="protected", andaccess="nonInteractive"restrictions to the generated AcroForm read-only flag
Version 2.358.0
Added
- XFA flattening now preserves
<choiceList open="multiSelect">semantics by setting the PDF multi-select flag on the generated AcroForm list box
Version 2.357.0
Added
- XFA flattening now maps
<ui><passwordEdit>fields to AcroForm text fields with the PDF password flag, preserving bound values while allowing readers to treat the field as password-style input
Version 2.356.0
Added
- XFA flattening now honours explicit
<bind match="none">field bindings, so fields marked as unbound remain blank instead of taking same-name values from the XFA form or datasets packets
Version 2.355.0
Added
- XFA flattening now honours simple explicit
<bind match="dataRef" ref="...">field bindings such as$record.customer.legalName, soApplyXFAAsAcroFormandFlattenLoadedXFApreserve values stored under a different data node name before automatic same-name matching
Version 2.354.0
Fixed
- XFDF annotation import/export now preserves link annotation
BorderStyleAltchildren through the PDF annotationBorderarray, including corner radii, width and dash pattern values
Version 2.353.0
Fixed
- XFDF annotation import/export now preserves standard
interior-colorattributes for line, square, circle, polygon, polyline and redaction annotations through the PDF annotationICcolor array
Version 2.352.0
Fixed
- XFDF annotation import/export now preserves standard annotation border style and cloudy border effect attributes, including
width,dashes,styleandintensity
Version 2.351.0
Fixed
- XFDF annotation import/export now preserves annotation rich text through
<contents-richtext>and imports popup child geometry and open state into annotationPopupdictionaries
Version 2.350.0
Fixed
- XFDF annotation import/export now preserves additional standard annotation attributes: text open and review state values, line endpoint styles, link and redaction
coords, FreeText default style, default appearance and rotation, and square or circle fringe geometry
Version 2.349.0
Fixed
- XFDF annotation import/export now follows ISO 19444-1 structures for lines, polygons, polylines and ink annotations: line exports include full
start/endcoordinate pairs, polygon and polyline data uses<vertices>child elements, ink data uses<inklist><gesture>, semicolon-separated coordinate pairs import correctly, and unsupported annotation subtypes no longer inflate the exported count
Version 2.348.0
Added
LoadedPageCountproperty,DuplicateLoadedPage,AddLoadedBlankPage,SetLoadedPageRotationValueandGetLoadedPageBoxRectround out the loaded-document page-operation API — duplicate pages, insert blank separators, set rotation and read any of the five page boxes in one callGetLoadedEncryptionMethodreturns the cipher name (RC4-40/RC4-128/AES-128/AES-256),GetLoadedFileStructureInfoaggregates linearization / object-stream / xref-type in one call,LoadedSourceFileSizeis a property, andSetLoadedPDFVersionupdates the versionStampLoadedPageImageandStampLoadedPageImageFromFileembed a JPEG Image XObject (logo / signature image / QR code) onto a loaded page at a given rectangle,InsertLoadedTextdraws a single-line text run, andGetLoadedPageContentLengthreturns the decoded byte countTHPDFPrintOptionsgainsIgnoreHardMargin(offset printer hard margins so content is not clipped) andAutoRotate(landscape pages print landscape automatically)SaveLoadedPagesAsImagesgainsBMPPixelFormat/BMPMonochrome(mono / 8-bit export) andJPEGScale(1 / 2 / 4 / 8 sub-sampled JPEG decode for fast thumbnails)CompressLoadedDocumentzlib-compresses every uncompressed stream in the loaded object graph and writes/Filter /FlateDecode, shrinking output size
Fixed
StampLoadedPageTextandStampLoadedPageImagenow transparently decompress FlateDecode content streams before appending operators — previously stamping onto a compressed/Contentssilently corrupted the zlib payload and the appended text/image disappeared
Version 2.347.0
Added
AddLoadedOutlinecreates a new bookmark on a loaded PDF at any nesting level (ParentIndex = -1for top-level), with a/Dest [page /XYZ x y zoom]target — the single highest-requested loaded-document feature, closing the gap that HotPDF could read/modify/delete bookmarks but never create themSetLoadedOutlineDestinationandSetLoadedOutlineURIrewrite an existing bookmark’s target page or switch it to a URI actionResolveLoadedNamedDestinationturns a named destination string into a zero-based page index, andAddLoadedNamedDestinationregisters a new anchor on the loaded document’s/Names /DeststreeGetLoadedBookmarkPageIndexis a convenience lookup: pass a bookmark title, get back the page it points to
Version 2.346.0
Fixed
- Image scaling quality now honours
/Interpolate: HALFTONE stretch mode is used by default (smooth downscale) and COLORONCOLOR when the image explicitly sets/Interpolate false, so small raster images keep their hard edges where the author intended instead of always blurring
Version 2.345.0
Fixed
- TJ array kerning adjustments are no longer discarded: the numeric elements between string runs advance the text matrix by
-value × FontSize / 1000, so tightly-spaced titles and logo lettering from Word / Illustrator place glyphs at the intended offsets - Tw (word spacing) now also fires on the CID ideographic space (U+3000, code
$3000), so justified Japanese / Chinese text gets its word spacing instead of only ASCII code 32 - Font weight / italic detection now consults
/FontDescriptor /Flags(bit 18 ForceBold) and/ItalicAnglein addition to the/BaseFontname, so subset-prefixed fonts whose name carries no-Boldsuffix still render at the right weight
Version 2.344.0
Added
GetLoadedTrappedreads the/Trappedkey from the Info dict (True/False/Unknown), where it was previously write-only — PDF/X preflight workflows can now round-trip the trap stateGetLoadedDocumentMetadataXMLreturns the raw XMP metadata stream bytes so PDF/A documents whose Info dict is absent can still exposedc:title/dc:creator/xmp:CreateDateGetLoadedCollectionInforeads the/CollectionName of a PDF Portfolio (EmbeddedFiles name tree still carries the file list)GetLoadedOutlineChilddescends one level into the bookmark tree, returning the/Firstchild of a top-level outline entry, so nested chapter / sub-chapter bookmarks are no longer invisibleRotateLoadedPagesrotates every page in a range by a given angle (accumulating onto existing/Rotate), the batch counterpart to per-page rotationSetLoadedPageBoxForRangesets a page box (Media/Crop/Bleed/Trim/Art) for every page in a range in one callGetLoadedViewerPreferencesnow also readsHideWindowUIandCenterWindow, matching the six keys the writer emits (previously only four came back)
Version 2.343.0
Fixed
- The
W n/W* nclip idiom now applies the clip: thenoperator builds the pending path and callsSelectClipPathinstead of discarding both the path and the pending clip, so rect / container clips written asre ... W nno longer leak their contents past the boundary SetMiterLimitis now pushed to GDI before building the stroke pen, so sharp joins honour the PDF miter limit (default 4) instead of GDI’s default 10 — eliminating the long spikes on acute-angle joins- Type 3 glyphs declared with
d0(colour-permitting) now explicitly clear the colour-suppress flag, so a precedingd1glyph no longer bleeds its colour suppression into ad0glyph
Added
ri(rendering intent) andi(flatness) operators are now consumed and stored on the graphics state (RenderingIntent/Flatnessfields), where they were previously silently skipped
Version 2.342.0
Added
- Text rendering mode operator
Tris now consumed; mode 3 (invisible) skips painting the text run entirely, so the OCR / form-background hidden text layer no longer paints as overlapping garbage glyphs — the most commonTrcase in real-world PDFs. Modes 1 / 2 (stroke) currently fall back to fill pending per-glyph outline support - Marked-content operators
BMC/BDC/EMCand theDP/MPproperty variants now maintain a depth counter on the renderer, the prerequisite for a later round’s OCG / OCMD visibility evaluation;BX/EXcompatibility operators maintain their own counter so the renderer knows it is inside a compatibility block
Version 2.341.0
Fixed
- Bezier shorthand operators
vandyare now handled by the page renderer, where they were previously silently skipped — rounded rectangles, circles and the curves produced by Illustrator / PowerPoint / InDesign render correctly instead of being truncated or dropped DrawTextRunnow honoursTz(horizontal text scaling),Tw(word spacing, applied to the space glyph) andTs(text rise) so justified Word exports place glyphs at the right width, headings that are horizontally stretched/squeezed keep their length, and super/subscript text lifts off the baseline — previously those three text-state values were stored but never consumed
Version 2.340.0
Added
SearchLoadedPageTextWholeWordfilters the substring matches produced bySearchLoadedPageTextdown to those that sit on word boundaries (the glyph before the match start and after the match end must not be a word character), providing whole-word matching without padding the search string with a trailing spaceGetLoadedSearchHitRectcollapses a match’s glyph range into a single bounding rectangle (user-space Left/Top/Right/Bottom, padded by a fraction of the font size), so a viewer can draw one highlight box per hit instead of walking the glyph array
Version 2.339.0
Added
ExtractLoadedPageTextColumnsreconstructs multi-column text: glyphs are clustered into baselines by a Y tolerance, each row is sorted by X, and a row splits into separate columns (tab-separated) wherever the gap between consecutive glyphs exceeds a configurable multiple of the median glyph advance — the column-aware counterpart toExtractLoadedPageTextLayoutthat previously declared column detection out of scopeTHPDFPageElementnow carries aBaselineRole(brNormal/brSuperscript/brSubscript) populated byEnumLoadedPageElements: a run whose font size is markedly smaller than the page median and whose Y origin sits above or below the dominant baseline is flagged
Version 2.338.0
Fixed
- Image XObjects are now placed by transforming the unit square through the current CTM, instead of being stretched across the whole page bitmap — the previous
StretchDraw(Rect(0,0,W,H))misplaced every image on the page; images now land in the rectangle the content stream actually specifies
Added
/ImageMaskstencil images are detected on the render side and painted with the current fill colour (PDF 8.9.6.1), where the renderer previously drew them as a plain greyscale bitmap
Version 2.337.0
Added
- Render-side stroke style: the page renderer now honours the
J(LineCap: butt/round/square),j(LineJoin: miter/round/bevel),M(MiterLimit) andd(LineDash array + phase) operators by building a geometric pen viaExtCreatePeninstead of the previous fixedCreatePen(PS_SOLID, ...), so rounded joins, dashed borders and square end caps render correctly - Render-side
gs(ExtGState) operator: the named ExtGState dictionary in/Resources/ExtGStateis now consumed forLW/LC/LJ/ML/ca/CAand applied to the graphics state, where the renderer previously dropped the operator entirely - Graphics state extended with
LineCap/LineJoin/MiterLimit/LineDash/DashPhase/FillOpacity/StrokeOpacityfields, all with PDF-default initial values
Fixed
- Clip (
W/W*) now sets the GDI polygon fill mode (ALTERNATEvsWINDING) beforeSelectClipPath, so even-odd and nonzero-winding clip intersections are no longer identical
Version 2.336.0
Security
- The render-side
/Indexedcolour-space parser now clampsHiValto the spec-mandated[0..255]range, closing a buffer-overread vector where a malformed HiVal letnComps × indexHighoverflow a 32-bit byte count and read past the lookup table
Added
AttachLoadedAnnotationMeasurewrites a/Measuredictionary (PDF 1.7 §12.5.6.13) onto a Line or Polygon annotation, carrying the/NumberFormatarray (unit label, decimal/fraction/round style, precision), the/Scaleratio and the/CYXisotropy factor — so a viewer can compute the real-world distance or area the shape spans
Version 2.335.0
Added
- Render-side
sh(shading) operator: axial (Type 2) and radial (Type 3) shadings are now painted instead of silently dropped, so PDFs whose backgrounds rely on Word/Excel-style gradients render their colour blend. The shading is discretised into bands along its axis and each band is filled with the colour the shading’s function evaluates to at that point
Version 2.334.0
Added
- Render-side function-object evaluator
HPDFEvalTintTransformnow resolves Type 2 Exponential (C0 + xN·(C1-C0)with Domain/Range clamping), Type 0 Sampled (8/16/32-bit, Encode mapping, nearest-sample) and Type 3 Stitching (Bounds-selected sub-function recursion) — soSeparation/DeviceNtint transforms and shading functions evaluate to real alternate-space colours instead of the v2.333.0 grey fallback. Type 4 PostScript calculators degrade gracefully - The page renderer now wires the colour-space unit’s indirect-ref resolver and decoded-stream reader to its document access at construction time, so tint-transform stream objects can be decoded through the same path as image XObjects
Version 2.333.0
Added
- Render-side CIE-based colour spaces:
CalGray,CalRGB(gamma + 3×3 matrix) andLab(Lab→XYZ→sRGB with the 6/29 breakpoint cube) now resolve to real colours instead of degrading to black; the Bradford-adapted sRGB matrix is cached per white point so per-pixel work stays a single 3×3 multiply - Render-side
ICCBasedcolour space resolves through its/Alternate(or an N-based DeviceRGB/Gray/CMYK guess when Alternate is absent), so pages carrying an ICC profile display correctly without an lcms dependency - Render-side
SeparationandDeviceNspot-colour spaces: the alternate space, tint-transform function reference and component count are parsed; the tint transform is wired through a pluggable evaluator so spot-colour pages are distinguishable from “colour not set” (full tint evaluation lands with the function engine) - Generic colour operators
cs/CS/sc/SC/scn/SCNnow handled by the page renderer, the prerequisite for every non-Device colour space to take effect on a loaded page - Unified colour resolution through
HPDFResolveColorwith the extendedTHPDFColorSpaceFamilyandTHPDFCIEParamsrecords, replacing the per-space ad-hoc logic
Version 2.332.0
Added
RenderSignatureFieldAppearancepaints a preset signature-field appearance template — border, light fill and up to four labelled text lines (“Digitally signed by <Name>”, “Reason: ”, “Location: ”, “Date: ”) — selected via aTHPDFSignatureDisplayOptionsset as a convenience wrapper aroundAttachSignatureFieldAppearanceEnumerateSystemCertificateswalks a Windows certificate store (typicalMY/ROOT/CA) via dynamically loadedCrypt32.dlland returns subject / issuer display names plus the raw DER for each certificate, the building block for a “pick a certificate / USB Key” signer UI
Security
- Signature hash algorithm is SHA-256 by default with PAdES Seed Value
DigestMethodsalready accepting SHA-256 / SHA-384 / SHA-512, so no SHA-1 signing path exists
Version 2.331.0
Added
RenderLoadedPageToDCdraws one page straight into a caller-supplied device context (printer canvas, off-screen surface, customTCanvas), removing the bitmap round-trip for print and high-DPI workflowsRenderLoadedPageToClipboardplaces a page on the clipboard either as a 24-bit bitmap or as an enhanced metafile (vector text), so paste-into-Word / paste-into-image-editor just worksPrintLoadedDocumentwith aTHPDFPrintOptionsrecord drives the VCLTPrinterthrough a page range, DPI, copies, collation, FitPage scaling and per-page render — the document library now ships its own print path instead of leaving every caller to wire one up
Version 2.330.0
Added
GetLoadedPageLabelreads back the/PageLabels /Numsrange that covers a given page index, returning the style code, prefix and start number — the read counterpart toSetLoadedPageLabel, so labels a caller did not create itself can now be inspected and round-trippedStitchLoadedPageSideBySideExperforms the side-by-side 2-up stitch with a configurable horizontal gutter and source-page scale factor, where the legacyStitchLoadedPageSideBySidewas fixed to half width with no gap
Version 2.329.0
Added
AddLoadedRubberStampAnnotationwith aTHPDFRubberStampIconenum covering all 14 standard stamp names (Approved, AsIs, Confidential, Departmental, Draft, Experimental, Expired, Final, ForComment, ForPublicRelease, NotApproved, NotForPublicRelease, Sold, TopSecret) so viewers render the familiar bitmaps without a custom appearance streamSetLoadedAnnotationCloudyBorderturns a Square / Circle / Polygon annotation into a cloudy (cloud-burst) border by writing/BE /S /C /Iplus the/ICinterior colour arraySetLoadedLineAnnotationCapssets the/LEline-end (arrowhead) styles for Line / Polyline annotations from the newTHPDFLineEndStyleenum (None / OpenArrow / ClosedArrow / Butt / ROpenArrow / RClosedArrow / Slash / Diamond)
Version 2.328.0
Added
EnsureLoadedFieldAppearanceStreamgenerates a/AP /NForm XObject for an existing AcroForm field from its/DA+/V+/Rect, so viewers that ignore/NeedAppearancesstill render the field value without a round-trip through AcrobatApplyLoadedFieldValidationattaches a Format / Keystroke / Validate script trio to a field using the AcrobatAF*helpers, covering Number, Percentage, Date, Time, Currency, ZipCode, SSN, Phone and ArbitraryMask input kinds — the caller no longer has to hand-writeAFNumber_Format/AFDate_FormatEx/AFRange_ValidateJavaScriptApplyLoadedFieldCalculationattaches anAFSimple_Calculatescript so a field aggregates the values of a named source field set via Sum / Average / Product / Minimum / Maximum
Version 2.327.0
Added
- Visual search-and-replace
SearchAndRedactReplaceLoaded: for every hit of the needle it masks the match rectangle with a chosen colour (or skips the mask withHPDF_NO_MASK) and stamps the replacement text on top, complementing the byte-levelReplaceLoadedPageTextwhen the original font lacks a reverse char-code table or the replacement needs a different font - Region text extraction
GetLoadedPageTextInRegionconcatenates every glyph whose origin falls inside a user-space rectangle, with newlines between baselines — the building block for “copy text from this box” UI flows - Cursor-style
SearchLoadedFirstreturns the first match as a singleTHPDFTextMatch, so callers can walk hits without managing a whole match array
Version 2.326.0
Added
- Document-wide
MeasurementUnitproperty (muPoints/muPixels/muInches/muMM/muCentimeters/muTwips) so every high-level authoring coordinate is converted to PDF points throughToPDFUnit/FromPDFUnit - Placeholder substitution in watermark text:
<%PageNo%>,<%TotPage%>,<%FileName%>,<%ShortDate%>,<%LongDate%>,<%ShortTime%>,<%LongTime%>are resolved per page when stamping, so “Page X of Y” and dated stamps are one call AddTextWatermarkExpage method that combines placeholder substitution, unit-aware coordinates and a unifiedTHPDFWatermarkBaserecord (angle, opacity, position presets)- Shape-watermark page helpers
AddRectangleWatermark,AddEllipseWatermark,AddLineWatermarkandAddPolygonWatermark, each wrapping the path primitives in aq/Qgraphics-state pair with registered fill/stroke alpha - Unified
THPDFWatermarkTemplaterecord withMakeText/MakeRectangle/MakeEllipse/MakeLine/MakePolygonfactories plus aTHPDFWatermarkTemplateArraycomposite type - Loaded-document watermarking:
StampLoadedPageTextandStampLoadedPagesTextappend a transparent, rotated text run to existing pages, honouring theMeasurementUnitand the same placeholder set;StampLoadedPagesCompositeapplies a whole template array (text + shapes) to a page range - Z-order control on loaded-document stamps:
Underlay = Trueprepends the watermark stream before the existing/Contentsvia the array form, so the watermark renders behind the page content EnumLoadedPageElementsreturns text runs (glyphs aggregated by baseline + font) and image XObject placements asTHPDFPageElementrecords with bounding boxesSaveLoadedPagesAsImagesmulti-format export: BMP / JPEG / PNG raster plus EMF / WMF vector, one file per page, with configurable DPI, file-name prefix and JPEG qualityGetLoadedPageMetafilevector render of one page to aTMetafilevia the newTHPDFPageRenderer.ExecuteToDCpath, keeping text and vector paths scalable for print, clipboard and merge workflows
Version 2.325.3
Fixed
- Aggregating batch preflight reports no longer overflows the total-bytes count when a single input file is over 2 GB
Version 2.325.2
Fixed
- Saving a document over 2 GB with object streams enabled (
UseObjectStreams) no longer writes a corrupted cross-reference stream; the object offsets and cross-reference stream position, previously narrowed to a 32-bit integer, are now carried as 64-bit values through the whole write
Version 2.325.1
Fixed
- Four recovery-only scans used when a damaged PDF cannot be parsed normally — object-stream decompression, object-stream discovery, and two reference-repair passes — no longer read a file over 2 GB into a truncated buffer; each now skips that fallback on such a file instead of scanning corrupted data
Version 2.325.0
Added
- EMF/WMF import now renders
EMR_GRADIENTFILLrectangle gradients (GRADIENT_FILL_RECT_H/GRADIENT_FILL_RECT_V) as PDF Type 2 axial shading patterns, mapping eachTRIVERTEXcolour pair to anRegisterAxialGradientcall and filling the rectangle with the resulting pattern; previously this record was a documented no-op, now Word/Excel/PowerPoint gradient rectangles in EMFs render with the correct left-to-right or top-to-bottom colour blend
Version 2.324.0
Added
- EMF/WMF import now parses
EMR_GDICOMMENTcomments, distinguishing Adobe PDF passthrough markers (0x416F4650= "AoFP", MS-EMF §2.3.3) from other comment types. When the Adobe marker is present the comment payload is scanned for thepdfmarkkeyword and surfaced via debug logging so users can identify which EMF producers emit PostScript pdfmark fragments; other comment types remain no-ops. Both HotPDF and llPDFLib previously carried only an empty stub for this record
Version 2.323.0
Added
- EMF/WMF import now explicitly recognises
EMR_GRADIENTFILLas a documented no-op (PDF Type 2/3 shading patterns could express gradient fills but viewer rendering is inconsistent and GDI's per-pixel Gouraud interpolation does not map cleanly); previously this record was silently dropped without a case-table entry
Version 2.322.0
Changed
- PFX-based signing now routes inputs of 64 MB or larger through a streaming chunked signer (
HPDFCMSSignPDFStreamChunked) that scans for the/ByteRange+/Contentsplaceholders in 256 KB rolling reads, digests the two byte-range windows viaHPDFCMSSHA256StreamRanges, then copies the input stream to the output stream while patching the placeholder bytes in flight, so peak memory stays bounded by the 256 KB buffer instead of the entire file size; smaller inputs keep the fast in-memoryPos()+Move()path unchanged
Version 2.321.0
Added
- Optional-content group usage dictionaries:
SetOptionalContentGroupUsageattaches a/Usageentry to a registered OCG (PDF 1.7 §8.11.4.4 Table 100) so viewers auto-show/hide layers by context. CategoriesView/Print/Exportwrite<Category>State=ON/OFF;Zoomwrites a real-pairMin;Language/Creatorwrite string values - Outline subtree copy:
THPDFDocOutlineObject.CopySubtreedeep-clones the entire child subtree of a node under a new parent, propagating Title / Color / Bold / Italic / Opened while minting fresh object numbers and new destinations - Outline topology helpers
IsDescendant(cycle-safe predicate used byMoveTo) andMoveTo(re-parent a node, detaching from its old sibling chain and re-attaching as the last child of the new parent, with full/Prev//Next//First//Last//Countmaintenance on every affected ancestor)
Version 2.320.0
Added
- Nested optional-content /Order tree:
BeginOptionalContentOrderGroup/AddLayerToOptionalContentOrder/EndOptionalContentOrderGroupbuild a labelled, arbitrarily nested presentation tree (PDF 1.7 §8.11.4.3/Order) so the layers panel can show hierarchical groupings like "Background [Lines Fills Images]" instead of the historical flat list. When none of the new helpers are called the previous flat /Order mirroring/OCGsis preserved byte-for-byte
Version 2.319.1
Fixed
- Loading a PDF whose embedded JBIG2 image uses the standard Huffman coding option (rather than the more common MQ arithmetic coding) no longer fails outright: the loader now retries with the alternate decoding engine before giving up, so such images load successfully regardless of which decoding engine is preferred
Version 2.319.0
Changed
- EMF/WMF import now applies a centralised InPath gate at the
ExecuteRecordentry: while a path bracket is open (BeginPathseen,EndPath/AbortPathnot yet reached) only path-construction records (line/curve/polygon/move/close/end/abort plus the coordinate-system and DC-state records) reach their handlers; text and bitmap records that previously leaked into the open path are now dropped centrally, mirroring llPDFLib's entry-point guard and eliminating a class of malformed-PDF bugs from stray records inside a path bracket
Version 2.318.0
Added
- Optional-content radio-button groups: new
RegisterOptionalContentRadioGroupdeclares mutually exclusive layer sets whose members turn each other off (PDF 1.7 §8.11.4.3/RBGroups); typical use is single-choice layer panels like "Draft / Review / Final"
Version 2.317.0
Added
THPDFDocOutlineObject.InsertBefore/InsertAftersplice a new sibling into the existing outline doubly-linked list at an arbitrary position, complementing the existingAddChild(append) andAddChildFirst(prepend) helpers so outline trees can be built in any order without detaching and re-attaching nodes- EMF/WMF import now explicitly recognises the ICM/palette family (
EMR_SETBRUSHORGEX,EMR_SELECTPALETTE,EMR_SETCOLORADJUSTMENT,EMR_SETICMMODE,EMR_CREATECOLORSPACE,EMR_SETCOLORSPACE,EMR_DELETECOLORSPACE,EMR_GDICOMMENT) and the no-PDF-mapping family (EMR_FRAMERGN,EMR_INVERTRGN,EMR_PAINTRGN,EMR_FLATTENPATH,EMR_WIDENPATH,EMR_SETMETARGN,EMR_OFFSETCLIPRGN,EMR_PLGBLT,EMR_POLYTEXTOUTA,EMR_POLYTEXTOUTW), forwarding to the GDI reference DC where applicable without emitting to the PDF content stream; previously these records were silently dropped, now they are documented and kept consistent with the GDI side
Version 2.316.0
Added
- New
JBIG2Benchmarkdemo generates four PDFs from the same three-page synthetic scan, one perTHPDFJBIG2Optionsconfiguration (per-image lossless, per-imageLossyLevel=5, cross-page accumulated globals, rectangle symbol extraction), printing each output size so the trade-offs between the v2.310.0 scan-friendly defaults, the v2.314.0 cross-page accumulator, and the extraction modes can be compared directly
Version 2.315.0
Changed
- The cross-page accumulated JBIG2 dictionary now auto-batches: once the running glyph-width total crosses 131071 pixels the current dictionary is frozen, emitted as one
/JBIG2Globalsstream, and the accumulator is reset, so the next batch starts a fresh globals stream. Mirrors llPDFLib'sTotalWidth-based spilling and keeps individual globals streams at a size readers handle efficiently on very large scan runs
Version 2.314.0
Added
- Cross-page accumulated JBIG2 symbol dictionary: opt in with
THPDFJBIG2Options.AccumulateGlobalsAcrossPages := True(alongside the existingUseSymbolDictionary+UseGlobalSegments+ native fallback switches) and consecutive 1-biticJBIG2images share one growing in-memory symbol dictionary and one/JBIG2Globalsindirect stream, instead of each image emitting its own dictionary. NewTHPDFJBIG2SymbolDictionaryholds the persistent glyph set with the same lossy / lossless matching the per-image encoder uses; newsmoke_jbig2_accum_decodeverifies two pages of different glyph layouts share a single globals object reference and decode back to the source pixels bit-for-bit
Version 2.313.0
Added
- JBIG2 global-segment streams produced by the native symbol-dictionary encoder are now content-addressed at the document level via
THPDFJBIG2GlobalsPool, so images that yield byte-identical globals share one/JBIG2Globalsindirect stream instead of each emitting their own; newsmoke_jbig2_globals_multismoke covers three pages of identical glyphs collapsing onto a single shared globals stream
Version 2.312.0
Added
- EMF/WMF import now covers
EMR_SCALEVIEWPORTEXTEX,EMR_SCALEWINDOWEXTEX,EMR_EXCLUDECLIPRECT,EMR_CREATEDIBPATTERNBRUSHPT,EMR_SETMITERLIMIT,EMR_SETTEXTJUSTIFICATION, andEMR_SETROP2, closing the seven-record gap with llPDFLib so EMF streams emitted by older GDI toolchains no longer silently drop those records;SETMITERLIMITandSETROP2take effect immediately, while the others store state for a later render-side hookup without perturbing current coordinate or clip output
Version 2.311.0
Added
HPDFCMSSHA256StreamRangesnow digests the two PDF/ByteRangewindows straight from aTStreamin 256 KB chunks, so multi-GB signed PDFs can be hashed without first copying the whole file into anAnsiString; closes the gap with llPDFLib's stream-basedCalcHash, which the existing in-memoryHPDFCMSSHA256ByteRangescould not match for very large inputs
Version 2.310.0
Changed
THPDFJBIG2Optionsnow defaults to scan-friendly settings (LossyLevel = 5,RemoveIsolatedBlackPixels = True,BlackDotSize = 3) so 1-bit scanned images compress much smaller out of the box; setLossyLevel = 0orLossless = Trueto restore strict lossless matching
Performance
- xref table growth is now geometric (small documents +N, larger documents +25%) instead of reallocating the dynamic array on every indirect object, removing the O(n²) cost that dominated loading and building large PDFs with many objects
Version 2.309.4
Added
- Added
THPDFDocOutlineObject.AddChildFirstso generated outline nodes can prepend a child item before existing siblings while preserving the saved outline order
Version 2.309.3
Added
- Added
pmUseOCtoTHPDFPageModeso generated documents can request the optional-content layers panel with catalog/PageMode /UseOC
Version 2.309.2
Added
- Added title-string overloads for
THPDFPage.AddTextAnnotationso generated text annotations can write the PDF/Ttitle or author entry while preserving the existing icon, color, and open-state arguments
Version 2.309.1
Fixed
- Clearing
THotPDF.OutputStreamby assigningnilnow restores normalFileNameoutput instead of leaving the document in stream-output mode
Version 2.309.0
Fixed
- EMF/WMF import now honors
EMR_EXTSELECTCLIPRGNregion modes for copy, intersect, and exclude clipping while keepingEMR_SETWORLDTRANSFORM,EMR_MODIFYWORLDTRANSFORM, andEMR_SETPIXELVcovered by non-GUI regression tests
Version 2.308.0
Added
- FastReport add-on design-time registration now ships as
frxHotPDFDesign, placingTfrxHotPDFExporton the FastReport VCL palette while keeping the existing runtime unit andRegisterentry point available for compatibility
Version 2.307.0
Added
SignPDFWithPFXnow parses legacy PKCS#12 PBE-SHA1-3DES encrypted PFX files in addition to PBES2 AES-256-CBC profiles
Version 2.306.0
Changed
- Repeated calls that add the same encoded image now reuse the existing PDF image XObject while preserving distinct output for different JPEG quality settings and mask relationships
Version 2.305.0
Added
TfrxHotPDFExport.PageRangenow lets FastReport exports opt in to one-based page filtering such as1,3-5while reusing HotPDF's shared page-range parser
Version 2.304.0
Fixed
- XFA-to-AcroForm table flattening now lets all-growable single auto columns inherit the table content width, so fields without their own
wstill receive a measurable width and preserve row spacing
Version 2.303.0
Fixed
- XFA-to-AcroForm table flattening now lets growable text cells inherit fixed
columnWidthsvalues when they omit their ownw, so row heights are measured and following rows stay separated
Version 2.302.0
Fixed
- XFA-to-AcroForm flattening now measures growable text fields inside nested
layout="tb"and wrappedlayout="lr-tb"flows, and table rows now keep growable text-cell height when positioning following fields
Version 2.301.0
Fixed
- XFA-to-AcroForm flattening now keeps text fields in
layout="tb"andlayout="lr-tb"flow containers when they omit an explicithheight, measuring their wrapped content height instead of skipping them as unsupported growable layout
Version 2.300.0
Fixed
THotPDF.ExtractObjectFromStreamnow returns the parsed dictionary for materialized object-stream members and no longer fabricates raw-data diagnostic keys when callers inspect loaded PDF 1.5+ object streams
Version 2.299.0
Added
THotPDF.DecompressAllObjectStreamsis now public and forces loaded PDFs that used object streams to save with compact objects materialized as normal indirect objects instead of copying the source object-stream layout
Version 2.298.0
Fixed
- AcroForm field creation now rejects duplicate root field names for both new documents and loaded-document editing while preserving the valid shared-parent workflow for radio button groups
Version 2.297.0
Added
TDBGridHotPDFExportOptionsand theTDBGridHotPDFExportcomponent now exposePDFAComplianceandPDFXComplianceso DBGrid table exports can opt in to the same HotPDF standards-conformance gates used by direct document generation
Version 2.296.0
Added
TQRHotPDFExportFilterandTdxHotPDFExportOptionsnow exposePDFAComplianceandPDFXComplianceso QuickReport and DevExpress exports can opt in to the same HotPDF standards-conformance gates used by direct document generation
Version 2.295.0
Added
TfrxHotPDFExportandTppHotPDFDevicenow exposePDFAComplianceandPDFXComplianceso report exports can opt in to the same HotPDF standards-conformance gates used by direct document generation
Version 2.294.0
Added
- Form XObject and tiling pattern canvas builders now let callers compose reusable resources through typed drawing helpers before registering them for page reuse
THPDFExtGStateOptionsnow lets one ExtGState combine transparency, blend mode, line width, line cap, line join, and miter limit settings
Version 2.293.0
Added
- Native JBIG2 encoding now supports symbol-dictionary compression with optional shared global dictionaries, rectangle and image-only extraction modes, lossy pixel-difference guards, and PDF/A fallback to CCITT where JBIG2 is not permitted
- EMF/WMF rendering now handles
TransparentBltandMaskBltbitmap records through PDF image mask and transparency paths - FastReport and ReportBuilder native export modes now cover more object-level output, including styled memo/rich text, barcode, picture, vector shape, line, clipping, frame, dash, and URL annotation paths
- The HugeFileBenchmark demos now report working-set and peak-working-set metrics, support an opt-in memory limit, and keep generated work files separate from report output
- The Delphi
PDFOptimizedemo now documents producer-side compression choices for content streams, object streams, JPEG quality, CCITT, and JBIG2 output
Fixed
- Demo coverage checks now include English-baseline demo READMEs, map consolidated C++Builder samples to their actual files, and keep GUI demos disabled by default in routine test runs
Version 2.292.32
Added
- EMF/WMF hatch brushes now map to PDF tiling patterns so imported CAD drawings and reports can preserve hatch texture instead of flattening those fills to solid color
Fixed
- Loaded-document dictionary edits now mark objects dirty so
SaveLoadedDocumentrewrites changed PDFs instead of copying the original source after outline and object-tree edits - Loaded outline removal now relinks sibling bookmarks, and non-rotated underline and strikeout text decorations now emit filled rectangle operators
Version 2.292.31
Added
THPDFEmfOptions.ShowNullBrushnow lets EMF/WMF rendering expose null-brush fills for diagnostic and CAD-style import workflows while preserving unfilled null brushes by default
Version 2.292.30
Added
THPDFEmfOptions.CanvasOvernow lets page Canvas replay place existing PDF content above the parsed Canvas metafile while the default keeps the current Canvas-on-top order
Version 2.292.29
Added
THPDFEmfOptions.Redrawnow lets EMF/WMF callers keep the default temporary redraw path or opt out and parse the original metafile directly
Version 2.292.28
Added
THPDFEmfOptions.UseFramenow lets EMF/WMF rendering clip imported output to the EMF header frame for metafiles that rely on declared frame bounds
Version 2.292.27
Added
THPDFEmfOptions.ShowNullPennow lets EMF/WMF rendering expose null-pen outlines for diagnostic and CAD-style import workflows while preserving invisible null pens by default
Version 2.292.26
Added
THotPDF.SetFormFieldTooltipnow lets applications assign AcroForm/TUfield hints by field name for widgets created through the existingAdd...field methods
Version 2.292.25
Fixed
TfrxHotPDFExportnative-object mode now preservesTfrxPictureViewclipping and frame rendering when picture views are written directly as HotPDF image XObjects
Version 2.292.24
Added
TfrxHotPDFExportnative-object mode now maps supported horizontal one-dimensional FastReport barcode views directly to HotPDF barcode operators, while keeping human-readable text, checksum generation, supplemental text, rotation, colored bars, and unsupported symbologies on the existing fallback path
Version 2.292.23
Added
TppHotPDFDevicenative draw-command mode now maps supported one-dimensional ReportBuilder barcode draw commands directly to HotPDF barcode operators, while preserving the enhanced-metafile fallback for commands that need human-readable text, add-on codes, check-digit calculation, colored bars, rotation, or unsupported postal symbologies
Version 2.292.22
Fixed
- Automatic PDF viewer launch can now be suppressed in non-interactive runs with
HOTPDF_SUPPRESS_AUTO_LAUNCH=1, and the bundled test and smoke runners enable that guard by default so non-GUI regression runs do not open viewer windows
Version 2.292.21
Added
THPDFPage.ShowMetafileExnow has a per-callTHPDFEmfOptionsoverload, letting callers override EMF/WMF rendering settings for one metafile draw while preserving document-level defaults