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 /Size oveľ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 1a2a3a vybral 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 a size atribú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), HTML font size atribú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-win32 aj x86_64-win64 cez 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: AddImageFromFile teraz akceptuje súbory .webp cez 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 /Rotate kaž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 /NeedAppearances bež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 /AP dostanú syntetizovaný appearance kreslený z ich vlastných vlastností — FreeText a Stamp text so štýlovaním /DA a zarovnávaním /Q, tvary Square a Circle s farbou /C / /IC a šírkou /BS, ťahy Line a Ink a quad markup Highlight / Underline / StrikeOut / Squiggly rešpektujúci /QuadPoints a 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 rowspan a colspan si 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

  • XPS, EPUB a CBZ kontajnery sa dajú importovať pod Free Pascal cez vstavanú read-only ZIP čítačku, ktorá zvláda ZIP64 veľkosti, stored aj deflated entry, CRC verifikáciu a tradične šifrované entry s rovnakým password callbackom ako Delphi cesta
  • XFA form flattening, výpočtový engine FormCalc, widget runtime, komponenty document viewera, handlery fontov Type 1, HTML import, verifikácia signatúr aj job runner sa všetky kompilujú vo Free Pascal buildoch; flattening XFA packetov načítaného dokumentu navyše potrebuje deflate codec, ktorý tieto buildy nelinkujú
  • 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

    • SubsetLoadedFonts teraz 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

    • DownsampleLoadedImages teraz 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 /Decode a 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 cez TJpeg2000Bitmap.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

    • ReplaceLoadedPageText teraz nahrádza zhody cez glyph source span naprieč string itemmi a poliami TJ, 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 SyntheticBase CFF 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, ApplyArabicGSUBContextualRefinement a 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.DrawAztec a samostatnú jednotku THPDFAztec: 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.ExtractLoadedPageText a 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 Ceil konzistentne 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, SaveLoadedPagesToTiffBanded a SaveLoadedPagesToTiffStreamBanded, 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; THPDFBandImageExportInfo reportuje 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.SaveLoadedDocument a SaveLoadedDocumentToStream teraz validujú OutputIntent GTS_PDFA1 (zdedený zo zdrojového catalogu alebo čerstvo zaregistrovaný) a emitujú XMP identifikáciu pdfaid: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 /W2 a /DW2 teraz 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.RenderLoadedPageTilesParallel a THotPDF.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 requestou signatures/signHash pre usporiadanú dávku s rovnakým algoritmom, pričom sa vynucujú lokálne a credential limity multisign, 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.RenewPAdESLTATimestamp o 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, HPDFParsePFXByLocalKeyID a THPDFCMSSignOptions.PFXLocalKeyID, vrátane prísnych single-valued bag atribútov localKeyId a friendlyName, 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 keyLength a 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.NavigateUri Canvasu pre XPS a OpenXPS, takže potomkovia vizuálov Path, Glyphs a vnorené Canvas vizuály dostávajú scoped URI, pokiaľ ho neprepíšu, so zachovaním akcií external, mail, package-page a percent-dekódovaných LinkTarget cez 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 Opacity a plné, gradientové alebo obrázkové masky Canvas.OpacityMask kompozitujú 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.Clip pre XPS a OpenXPS pre skrátenú geometriu, hodnoty PathGeometry v lokálnych alebo vzdialených StaticResource, priame property elementy, štruktúrované line, Bézier, quadratic a arc figúry, transformácie geometrie, prázdne clipy a vnorené orezávanie EvenOdd alebo NonZero cez PDF W* alebo W, 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 Path a Glyphs, 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é fragmenty LinkTarget ako 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 VisualBrush pre XPS a OpenXPS pre inline alebo resource-backed vizuály Canvas, Path a Glyphs, hierarchické a vzdialené vyhľadávanie v ResourceDictionary, absolútny Viewbox, absolútnu alebo relatívnu Viewport, tile mód None, Tile a 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 ToUnicode a amortizovane-lineárny výstup positioned runov bez náhrady cez GDI face

    Version 2.691.0

    Added

    • Pridaný ohraničený layout Indices pre OpenXPS Glyphs s 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árnom BidiLevel, plnými výplňami z atribútov alebo property elementov, opacity, natívnym PDF batchingom TJ, 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.OpacityMask pre plné, variable-alpha multi-stop lineárne a eliptické radiálne gradienty a obyčajné, tiled alebo reflected PNG masky ImageBrush cez 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ý builder RegisterLuminositySoftMaskState s väzbou alpha-image resource

    Version 2.689.0

    Added

    • Pridané módy Tile, FlipX, FlipY a FlipXY pre OpenXPS ImageBrush cez 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 API RegisterImageTilingPattern pre znovupoužiteľné patterny podložené obrázkom

    Version 2.688.0

    Added

    • Pridaná podpora OpenXPS ImageBrush.Transform pre finitné šesťparametrové maticy v atribútoch a property elementy MatrixTransform, zreťazené po natívnom orezaní Path a 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ý RelativeTransform a neresolvnuteľné matrix resource zostávajú explicitnou diagnostikou

    Version 2.687.0

    Added

    • Pridané umiestňovanie image XObject riadené maticou cez THPDFPage.ShowImageMatrix a rozšírený XPS fixed-page import o ImageBrush výplne package JPEG, PNG, TIFF a JPEG XR, mapovanie Viewbox a Viewport absolú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 RadialGradientBrush v 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, brainpoolP384r1 a brainpoolP512r1, 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 HPDFInterpretContentTokensDevice a voliteľné kompletné rozšírenie IHPDFContentOperatorDevice, s jedným cancellation checkpointom na operátor, cacheovaním operator indexu v compile time pre replay display listu bez skenovania operandov, verejnými metrikami OperatorCount, zachovanou kompatibilitou semantic device, opravenou sémantikou operátorov ", v a y a korektným handlingom terminátora EI bez falošných fallback diagnostík

    Version 2.680.0

    Added

    • Pridané ohraničené transakčné overloady RepairPDFA4 s 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 ConfigureCryptFilterDefaults a SetStreamCryptFilter, vrátane reserved filtrov pre password a public-key, /Identity, writer-korektného password-security /EFF a 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 BeginIncrementalUpdate a 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-identifier a 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 SignerInfo cez HPDFCMSBuildMultiSignedData a HPDFCMSMergeSignedData, 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 SubjectKeyIdentifier cez THPDFCMSSignOptions.SignerIdentifier, vrátane kompaktného IMPLICIT kódovania SID, automatického výberu verzií SignerInfo a SignedData, 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 6211 CMSAlgorithmProtection, 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.ValidatePDFMACChain s 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ého KDFSalt, odmietaním downgradeu sily digestu, autentizovanými kontrolami /P a /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.SignPDFWithPFXAndAttachedPDFMAC a validáciu pripojenú k signatúre s priamym AuthCode aktívneho traileru, nepriamym SigObjRef, 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.RegisterNChannelColorSpace tak, aby emitovalo päťprvkovú formu DeviceN podľa ISO 32000-2 s /Subtype /NChannel a 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 MacData s 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: render rasterizuje každú vybranú stránku do <prefix>-page<N>.png cez bitmap pipeline načítaných stránok (rozsah --pages, --dpi 10..2400, predvolene 150), tables extrahuje typed tables do CSV alebo JSON cez ExportLoadedTypedTables (--json, -o súbor alebo konzola) a compare vypíše JSON porovnávací report dvoch dokumentov cez HPDFDocCompareDocuments (--mode 0..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 s cmsFLAGS_NOOPTIMIZE len 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 gvar tuplemi, IUP interpoláciou, aktualizáciami simple aj composite outlineov, phantom-point metrikami, bakingom HVAR, VVAR a MVAR, 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 /Contents načí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, CIDToGIDMap a 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, M a d teraz zachovávajú šírku čiary, pomenované cap a join štýly, miter limity, dash arrays aj dash phase; q/Q tieto atribúty obnoví naprieč nested contentom a Form XObjects; even-odd paint operátory f*, B* a b* 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.pas linkuje 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.bat automatizuje patch-and-compile pipeline. Známe obmedzenie: JS_NewRuntime prejde, ale JS_NewContext narazí na access violation, pretože odstránenie _Atomic mení 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.DrawDataMatrix renderuje 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.DrawPDF417 renderuje codeword maticu
    • Pridaný binding JavaScript engine QuickJS (Lib/HPDFQuickJS.pas plus pre-built quickjs.dll pre Win32/Win64 pod thirdparty/QuickJS/bin/): dynamické DLL loading, runtime+context lifecycle a evaluation API surface (Eval/EvalInt/EvalFloat); Eval code 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: decrypt načíta zašifrované PDF so zadaným heslom, dešifruje ho cez DecryptLoadedDocument a uloží nešifrovanú kópiu (-o výstupná cesta, predvolené <input>-decrypted.pdf) a optimize znovu komprimuje každý stream s FlateDecode cez CompressLoadedDocument (-o vý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.pas implementuje 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óda THPDFPage.DrawQRCode renderuje zakódovanú maticu ako mriežku vyplnených module štvorcov na ľubovoľnej zapisovanej stránke (ModuleSize v 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álna FRevision bola po downgradu aes256 na aes128 pri predvolenej verzii PDF 1.6 zastaraná, čo posielalo CreateKeys do V5 vetvy, ktorá nikdy nevyplní legacy password hashe /O a /U — serializovaný encryption dictionary potom niesol prázdne či zastarané password stringy a súbor nebolo možné otvoriť. Fix znovu odvodzuje FRevision z downgradnutého FCryptKeyType v 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 html HotPDFCLI: renderuje obmedzený HTML súbor (h1-h6, p, ul, ol, hr, inline markup) do PDF cez HPDFRenderHTMLDocument

    Version 2.602.0

    Added

    • Pridaný block-level HTML import: THPDFHTMLImporter (a convenience wrapper HPDFRenderHTMLDocument) renderuje obmedzenú HTML podmnožinu do zapisovaného dokumentu — nadpisy h1-h6 s veľkosťami na level, odseky p (holý body text sa stáva implicitnými odsekmi), zoznamy ul/ol s odsadenými li položkami (bullet alebo číslovanie 1.), pravidlá hr, automatické page breaky pri spodnom okraji a browser-style recovery pre nezatvorené bloky p/li; regióny head/script/style sa preskakujú a container tagy prechádzajú transparentne. Inline markup (b/i/u/font/a/sub/sup, entity, word wrap) sa deleguje na existujúci renderer TextOutHTML, 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: merge pripojí každú stránku dodatočných vstupov k prvému dokumentu a uloží zlúčený súbor (-o výstupná cesta, aspoň dva vstupy, kolízia output/input chránená), split zapíše každú vybranú stránku dokumentu do vlastného single-page súboru (<prefix>-page<N>.pdf, --pages rozsah od 1, predvolený prefix z input path) a export-svg zapíš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: BuildLoadedPageSVG vracia standalone SVG 1.1 dokument pre ľubovoľnú načítanú stránku a SaveLoadedPageAsSVG ho 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 sh shadingy, ž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átory w/J/j/d sa 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 --pages od 1, súborový výstup --out, --layout monospaced grid mode zodpovedajúci vizuálnemu reading order) a verify (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.bat produkuje Win32 a Win64 binárky

    Version 2.598.0

    Added

    • Pridané SetRenditionMediaPlayParameters: pripája alebo aktualizuje dictionary /P media play parameters mediálnej rendition s must-honour /MH alebo best-effort /BE targetmi 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 /SP media 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 /Sound streamu 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 /Name ako Speaker či Mic

    Version 2.597.0

    Added

    • Pridané SetMovieAnnotationParameters: prepisuje dictionary /Movie movie anotácie (aspect pair, rotácia 0/90/180/270, trvanie v sekundách, viditeľnosť posteru), ktorý AddMovieAnnotation vytvoril so svojimi hardcoded defaultmi
    • Pridané SetRichMediaPresentation: napĺňa dictionary aktivácie, deaktivácie a prezentácie /RichMediaSettings RichMedia anotácie (názvy podmienok ako PO page-open, flagy toolbar / navigation UI / context click / transparency); prázdny názov podmienky vynechá zodpovedajúci dictionary
    • Pridané ResolveIndirectObject na THotPDF: resolvuje indirect referencie, ktoré autoring strana ukladá do zapisovaných dictionary, takže volajúci môžu navigovať v čerstvo postavených object stromoch; AddRichMediaAnnotation teraz tiež registruje svoju anotáciu v LastAnnotation

    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, HPDFExtractCertificateRevocationURLs ich vystavuje na certifikát a HPDFCollectCMSRevocationRequests z 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árny PubSecKeyMaterial nesedí
    • Pridané test-stream buildery HPDFJBIG2Codec_EncodeHalftoneRegionTestStream a HPDFJBIG2Codec_EncodeStandaloneRefinementTestStream pokrý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, StringKeyType a StreamKeyType neinicializované, 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-V a ďalších 15): HPDFLoadStandardCMapFile odpovedá 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é SetStructureClassMapEntry registrujúce zdieľaný attribute dictionary názvu triedy v StructTreeRoot /ClassMap, čím dopĺňa /C API SetStructureElementClass

    Fixed

    • Opravená key recovery pri public key s viacerými recipientmi: envelope /Recipients sa 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 /ObjStm sa zaznamená s dôvodom (THPDFObjStmQuarantineReason: not a stream, bad dictionary, bad header, bad stream size, decrypt failed, decompress failed, /First out 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 a GetLoadedQuarantinedObjStmCount / GetLoadedQuarantinedObjStmInfo vystavujú 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.XRefMapPagingThreshold záznamov (default 250000, 0 vypína), load-complete pass ju zbali do THPDFXRefMapPager -- 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é GetLoadedXRefMapPaged reportujúce paged stav s počtom záznamov, bajtmi snapshotu a počtami window hit či miss; free-set rebuild incremental save aj indirect /Length resolution 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: THPDFObjectLifecycleState získava olsRaw (compressed membery sú indexované, ale nie materializované), olsParsed (materializované zo source bajtov, bez úprav) a olsFlushed (serializované do output dokumentu); loaded objekty teraz nesú olsParsed namiesto generického clean stavu
    • Pridané MarkRaw, MarkParsed a MarkFlushed na THPDFObject; GetLoadedObjectLifecycleState vracia olsRaw pre compressed membery, ktorých body ešte nebol materializovaný
    • Pridané RawCount, ParsedCount a FlushedCount do THPDFObjectLifecycleStatistics; každá full-save path (plain, packed, linearized) presúva emitované objekty do olsFlushed, kým IsDirty naďalej znamená olsDirty alebo olsMustWrite

    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é polia THPDFObjectStreamCacheInfo, SliceViewCount a SliceViewBytes, 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 /ObjStm pred 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.PubSec sa teraz načítajú, keď volajúci priradí PubSecKeyMaterial (z HPDFParsePFX); prescan rozbali RSA-OAEP envelope /Recipients, obnoví seed a znovu odvodí file key, takže dešifrovanie kontajnerov aj stringov beží nezmenene
    • Pridaný callback PubSecRecipientQuery vyberajúci, ktorý recipient envelope dodaný kľúč rozbalí, s PubSecRecipientQueryContext pre stav volajúceho
    • Pridané HPDFUnwrapRSAOAEPRecipientEnvelope obnovujú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 /Recipients sa šifrovali ako obyčajné stringy — teraz sa vylúčia cez explicitný flag SkipEncryption

    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, codabar a ď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ácie q ... cm ... Q s rotáciou okolo stredu

    Version 2.584.0

    Added

    • Rozšírený FormCalc o string funkcie: Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim a Space, vrátane quoted string literálov a zmiešaných text/numeric výrazov
    • Pridaná FormCalc konverzia dátumov: Date2Num/Num2Date prevádzajú ISO dátumy tam a späť cez serial day count epochy 1900, plus Date()
    • Pridaná FormCalc finance knižnica: Pmt, FV, PV, Rate a NPer s konvenciou cash-flow znamienok, komponovateľné s numeric funkciami ako Round

    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/#dataGroup vyberajú container-class nody, #field vyberá field-like nody a ostatné #name tokeny 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 SetFormFieldValue alebo SetLoadedFormFieldValueByName teraz vyberá zodpovedajúci /AS state v každom widgete a flattening sa zladí pred generovaním appearanceov, takže zastaraný Off state už nikdy nevyhrá nad importovanou hodnotou
    • Pridaná regeneračná stabilita pre button appearancey: EnsureLoadedFieldAppearanceStream zachováva existujúci on-state názov state dictionary a odvodzuje on-state názvy radio kidov z ich vlastného /T export value

    Version 2.581.0

    Added

    • Pridané rotované field appearancey: widgety s /MK /R teraz nesú rotáciu ako /Matrix na 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 /V ale s /RV body 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: EnsureLoadedFieldAppearanceStream resolvuje font z /DA cez AcroForm dictionary /DR a 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ú Off plus on-state appearancey (vector check mark a vyplnený kruh, bez závislosti na ZapfDingbats), push buttony renderujú captiony a listboxy maľujú jeden /Opt riadok 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ý beh EvaluateLoadedFieldJavaScript aj každý recalculation pass
    • Pridaný record THPDFScriptBudgets pokrý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: THPDFJavaScriptEvaluationResult teraz reportuje ElapsedMilliseconds a ValueBytes popri 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 /CO sa staticky analyzuje a linkuje do topologického evaluation poradia
    • Pridané THotPDF.RecalculateLoadedFormFieldsIncremental prepočí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 SetFormFieldValue a SetLoadedFormFieldValueByName akumulujú dirty set, ktorý konzumuje parameterless incremental overload, explicit-changed-fields overload aj plný recalculation pass
    • Pridaná jednotka HPDFFormCalcGraph vystavujúca affected-closure queries, kompletnú target sekvenciu, počty cyklov a neresolvované source názvy pre tooling preview
    • Pridané HPDFExtractSafeJavaScriptFieldReferences extrahujúce field názvy, ktoré safe-subset skript číta z argumentov AFSimple_Calculate a prístupov getField, s preskočením string literálov

    Changed

    • Dependency cykly teraz držia /CO document 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 HPDFSignatureBatch so 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 THPDFRevocationEvidenceCache a vkladajú do neskorších signatúr pod novým evidence source vesCache
    • Pridané THPDFSignatureValidationBatch pre standalone batch bež s FailFast, worker paralelizmom, cancellation tokenmi a zdieľanou externou revocation cache
    • Pridané HPDFSignatureBatchResultToJSON renderujú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: THPDFViewer spúšťa OnPageChange počas konštrukcie aj rebindingu, takže prvá generácia galérie teraz beží z OnShow (po existencii window handleov) a každý event handler sa stráži proti controlom, ktoré sú stále nil
    • 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é THPDFPDFMACOptions profily 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é SaveIncrementalUpdateAuthenticated s 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 Showcase pod Demo\Delphi: pri štarte generuje desaťstránkový feature-gallery PDF (gradient cover, typografia s inline rich textom, vector gradienty / patterny / transparentnosť, faktúra THPDFTable, barcode symbology, runtime maľované obrázky, anotácie a linky, optional-content vrstvy a PAdES signature appearance) a renderuje ho vo vnútri embedded THPDFViewer so synchronizovaným topic zoznamom
    • Pridaná one-click akcia Encrypt AES-256 do Showcase dema, ktorá znovu vybuduje galériu s AESV3 (R6) šifrovaním, user heslom a print-only permissionami do HotPDF-Showcase-Encrypted.pdf
    • Pridaná bookmark navigácia pre každú Showcase gallery stránku cez BeginDoc(True) a OutlineRoot.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: GetLoadedSignaturePermissions teraz reportuje DocMDP, UR, FieldMDP, Identity, unknown metódy, väzbu Catalog /UR verzus /UR3, každý štandardný usage-right bit a ohraničený tranzitívny Identity /Data object 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é rozhodnutia URCompliant, IdentityCompliant a agregátne TransformCompliant

    Fixed

    • Aplikovaný štandardný default DocMDP /P 2 permission, 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 variantov small (Acutesmall až Tildesmall) s ich spacing-accent code pointmi
    • Pridaných jedenásť separable blend módov (ISO 32000-1 11.3.5): HPDFBlendComponent implementuje Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, HardLight, SoftLight, Difference a Exclusion; renderer parsuje /BM z 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 cez GetInfo
    • Pridané page-level SaveState / RestoreState na THPDFPage emitujúce graphics-state operátory q / 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 SaveIncrementalUpdate vidí zachovaný free chain namiesto SourceFreeObjectCount=0 a stratených generácií
    • Opravené vyhadzovanie "Cannot call Start on a running or suspended thread" v THPDFSignatureEvidenceTask pri konštrukcii: task teraz štartuje v AfterConstruction, po úplnom vybudovaní objektu, namiesto preteku s RTL thread-state kontrolou zvnútra konštruktora

    Version 2.569.0

    Added

    • THPDFCertificateValidationOptions.TrustPurpose vyberá 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 v THPDFCertificateValidationInfo

    Version 2.568.0

    Added

    • THPDFSignatureEvidenceTask zí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

    • THPDFWindowsKeyStorageSignatureProvider podpisuje 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 owned NCRYPT_KEY_HANDLE hodnoty, 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

    • HPDFNormalizeContentStreamGraphicsState a HPDFCompareContentStreamsSemantic porovná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ázdne q/Q scopey 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

    • SaveIncrementalUpdate teraz 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 cez GetLastIncrementalXRefRebuildInfo

    Version 2.564.0

    Added

    • THPDFPage.TextOutOutline tvaruje 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

    • FlattenLoadedPageComplexGraphics detekuje 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

    • FlattenLoadedPageTransparency teraz 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

    • ScrubLoadedRedactionRemnants odstraň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

    • ApplyLoadedRedactions teraz 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é TJ polož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

    • AnalyzeLoadedPageSemanticText a ExtractLoadedPageSemanticText budujú 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 /ToUnicode targety 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é /ToUnicode mapovania z embedded sfnt cmap formátov 0, 4, 6 a 12, glyph názvov /Encoding /Differences podložených AGL, korektne dekódovaných binárnych streamov /CIDToGIDMap a 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 vmtx a hraníc glyf, dáva vrt2 prednosť pred vert naprieč 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 sbix alebo CBDT/CBLC, bezpečne rozlíšia duplicitné glyph záznamy sbix, 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

    • BeginLoadedPageProgressiveRegionRender teraz 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 /TR a /TR2 s 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/d1 a vystavuje hit, miss, eviction, size a oversize-bypass telemetriu cez GetLastType3GlyphCacheStats

    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 RegisterTilingPattern a THPDFTilingPatternBuilder vystavujú 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, JPEG2000TileWorkerLimit a GetLastJPEG2000ParallelDecodeStats

    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 DCTDecode po 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 CCITTFaxDecode teraz dekódujú nekomprimované extension módy T.4 a T.6, rozlíšia EOFB od nepodporovaných extension, rešpektujú EndOfLine, EndOfBlock a DamagedRowsBeforeError a 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í HPDFJBIG2SplitSymbolDictionaryGlobals na 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
    • AdaptiveAdmission dokáž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

    • THPDFCacheAdmissionPolicy a SetCacheAdmissionPolicy poskytujú 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ánky
    • GetCacheAdmissionStatistics reportuje 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
    • GetDocumentStringInternStatistics reportuje 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 GetLastParserArenaStatistics reportuje 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

    • HPDFTransferStream teraz 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, MaxReadAheadBlocks a SequentialReadToleranceBytes vystavujú 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

    • THPDFCoalescingRandomAccessSource spája susedné parser čítania do konfigurovateľných cached rangeov, vynucuje ohraničený least-recently-used byte budget a vystavuje source, cache a prefetch štatistiky
    • LoadFromRandomAccessSource teraz aplikuje range coalescing a asynchrónny prefetch ďalšieho rangeu automaticky, foreground seeky rušia nesúvisiacu prácu a ReadAtCancellable umožň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 StrF a StmF spolu s direct alebo array-form stream-level Crypt prepísaniami
    • Stream crypt parametre môžu vybrať Identity, V2 alebo AESV2 a 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, JPXDecode a JBIG2Decode sa 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

    • THPDFDeterministicReplayLog zaznamená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

    • BuildLoadedObjectDependencyGraph teraz 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 1000 znamená 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.v1 obsahujú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.dll dodáva stabilné cdecl exporty, 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ý header hotpdf_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 ComplianceFindingsToJSON emituje 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 overload Compress(Input, Parms), ktorý aplikuje forward PNG/TIFF prediktor pred kompresiou, čím je symetrický k ceste Decompress(Input, Parms) dekodéra, takže LZW+Predictor streamy sa dajú tvoriť v oboch smeroch
    • Content-stream interpreter teraz trackuje graphics operátor cm a 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 cez CTM * 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 / ReplaceLoadedDocumentText teraz 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: DecryptPKCS12EncryptedBytes teraz dispatchuje pbeWithSHA1And40BitRC2-CBC (OID 1.2.840.113549.1.12.1.6) a pbeWithSHA1And128BitRC2-CBC (1.2.840.113549.1.12.1.5), klonovaním 3DES CryptoAPI cesty s parametrom KP_EFFECTIVE_KEYLEN nastavený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: ApplyLoadedRedactions prejde každú anotáciu /Subtype /Redact, vyprázdní podliehajúce text-showing string operandy, ktorých glyfy padajú do /Rect anotá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áva AddLoadedRedactAnnotation na vytvorenie anotácií /Redact na 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 /Widths fontu (PDF 1.7 9.6.3) cez novú metódu IHPDFFontResolver.Advance, namiesto predchádzajúcej plochej aproximácie 0.5 * fontSize. HPDFBuildFontDecoder číta /FirstChar, /LastChar a number pole /Widths pre 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é SetLoadedAcroFormCalculationOrder na prestavbu poľa výpočtového poradia AcroForm /CO v 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é SetStructureElementClass na zápis poľa mien tried /C structure elementu (PDF 1.7 14.9.2.2) odkazujúceho na zdieľané atribútové triedy
    • Pridané AddLoadedPagePieceInfo na zápis page-piece dictionary (PDF 1.7 14.5) pod /PieceInfo/<Application> s dátovou pečiatkou /LastModified a 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á za TCharacter.ToLower (Unicode Simple_Lowercase_Mapping), takže akcentované latinské (À-ý), grécke (Α-Ω) a cyrilské (А-Я) verziály sa vo svojej malej forme nájdu v SearchLoadedPageText / SearchLoadedDocumentText. Buildy pred XE2 ponechávajú ASCII fallback
    • Pridaný inline-image callback do content-device abstrakcie: IHPDFContentDevice.ProcessInlineImage sa spustí pre každý blok BI/ID/EI, keď device deklaruje cdcNeedImages, 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: AddPDFAOutputIntent naplnil 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ý krok EnsureLoadedPDFAOutputIntents teraz zavesí FOutputIntents na pole /OutputIntents načí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: EnsureLoadedFieldAppearanceStream teraz emituje explicitné 0 Tr (fill) ihneď po BT v 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ý cez Do a 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ý zapisoval 1 0 0 RG/rg + 1 Tr + 2 w priamo do page content streamu po GStateRestore (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úcemu TPDFLZWDecompressor, 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 /OCGs list a /P politika (AnyOn / AllOn / AnyOff / AllOff) živia existujúci evaluátor EvaluateLoadedOCVisibility, 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 /RC rich-content XML fragment a voliteľný /DS default š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 /Requirements AddLoadedDocumentRequirement (ISO 32000-1 7.7.4), ktorý pripája requirement dictionary nesúce /S plus 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 /Width riadi 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 IsIndefinite a ExtendedTagNumber zaznamená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álneho AddStructureDestinationLink, ktorý emituje GoTo akciu nesúcu aj vyžadovaný page-coordinate /D fallback aj PDF 2.0 pole /SD pomenúvajúce cieľový StructElem indirect referenciou, a remote AddGoToRStructureDestinationLink, ktorého prvý element /SD je byte-string /ID cieľ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 trailer Info; povinným name stromom EmbeddedFiles pre 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í /ByteRange a /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 SDHUFF symbol dictionaries a SBHUFF text 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, /op a /OPM 1 na 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ú /CO calculation 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; DecodeLoadedImageRegion vystavuje 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

    • BeginLoadedPageProgressiveRender pridá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štancie THPDFCancellationToken teraz 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

    • ImmediateFlushLayout presú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 /P a typované artefakty stránkovania pre hlavičky, päty, vodoznaky a čísla stránok

    Version 2.457.0

    Added

    • SetFontFallbackChain a TextOutWithFallback pridá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é behy Identity-V s metrikami /DW2 a /W2 odvodenými z OpenType tabuliek vhea, vmtx a VORG, ak sú dostupné

    Version 2.456.0

    Added

    • HPDFEncodePredictor pridáva prísne TIFF a pevné alebo adaptívne PNG kódovanie prediktora pre packed, 8-bitové a 16-bitové rastrové riadky; ExtractLoadedImageToStream sa vyhnúť poliam bajtov v plnej veľkosti pre natívne alebo genericky dekódované obrazové payloady; OptimizeLoadedStreams selektí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

    • DecodeLoadedStreamToStream teraz skladá načítané PDF filtre do ohraničeného pipeline, ktorého konečná fáza zapisuje priamo do streamu volajúceho; DocumentDecodeBudgetBytes pridá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í; LoadFromRandomAccessSource pridá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 GetLoadedXRefMergeInfo s 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 RegisterStructureNamespace a AddStructureElementNS, prísnou štruktúrnou validáciou PDF/UA-2 a pridruženými súbormi neutrálnymi voči profilu prostredníctvom AddPDFAssociatedFile

    Version 2.451.0

    Added

    • DetectFacturXInvoice teraz vystavuje dekódovaný MIME typ primárnej prílohy a viazaný URI namespace XMP, zatiaľ čo ValidateFacturXInvoice krížovo kontroluje presný FileSpec zdieľaný Catalog /AF a stromom mien EmbeddedFiles, menami /F a /UF, MIME typom XML, DocumentType XMP 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 ruleId plus 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 ISO spec a zostávajú platné, keď polia obsahujú viacero nálezov

    Version 2.449.0

    Added

    • SanitiseLoadedDocument teraz 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 DecodeBudgetBytes 256 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 diagnostikou GetLastDecodeBudgetInfo a nulou ako explicitným režimom bez obmedzenia

    Version 2.446.0

    Added

    • Pridaný voliteľný LinearizeOutput pre 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 startxref alebo 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

    • AnalyzeLoadedSignatureRevisions teraz 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

    • VerifyLoadedSignatureWithTrust a HPDFValidateCMSCertificatePath teraz 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.CertificateValidation hlá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ého svValid

    Version 2.442.0

    Added

    • Verifikácia načítaných signatúr teraz kryptograficky validuje RFC 3161 časové pečiatky dokumentu oproti /ByteRange PDF a tokeny časových pečiatok signatúry oproti hodnote nadradeného CMS podpisu, zatiaľ čo THPDFSignatureInfo.Timestamp vystavuje 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
    • THPDFSignatureInfo teraz hlási SignedRevisionLength a UnsignedTrailingBytes a svInvalidByteRange identifikuje š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 DigestInfo namiesto 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
    • GetWideTextWidth teraz 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 rozvrhovanie
    • BeginIncrementalUpdate teraz 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

    • HPDFDecodePredictor a HPDFTryDecodePredictor poskytujú 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 diagnostikou
    • TPDFLZWDecompressor pridá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 EarlyChange a obe poradie plnenia bitov, spracováva reset cez clear a KwKwK expanziu prísne a zväčšuje reťazcový výstup geometricky
    • Extrakcia načítaných Flate a LZW obrázkov teraz rešpektuje geometriu prediktora DecodeParms a EarlyChange, 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

    • THPDFViewer sa teraz kompiluje v Delphi XE2 až XE8, kde WM_DPCHANGED chýba v Winapi.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 s E2003 Undeclared identifier

    Version 2.437.0

    Changed

    • GetWideTextWidth teraz 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 cyklu CreateCompatibleDC + GetTextExtentPoint32W pri 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 /CapHeight teraz používa reálnu metriku otmsCapEmHeight fontu 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 FUnicodeExtraUsedGlyphs zaznamenaná v MarkUnicodeGlyphUsed / EnableShapingFeatureForSubset sa zapisovala, ale subsetter ju nikdy nepoužíval, takže tieto glyfy vo výstupe klesli na .notdef

    Version 2.434.0

    Added

    • THPDFWeightedCache pridá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

    • THPDFTableCell teraz podporuje obrazové bunky (ImageIndex + ImageAspect škálujú zaregistrovaný obrázok na šírku stĺpca s H/V zarovnaním) a HTML bunky (IsHTML vykreslí text bunky cez TextOutHTML pre 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 (jednotka HPDFTable) 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ím ColSpan / 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ívy THPDFPage, takže producenti už nekreslia bunky ručne pomocou Rectangle a TextOut

    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.TextOutHTML získava preťaženie pre zalamovanie slov, ktoré prijíma MaxWidth a 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 THPDFPage teraz používa štandardnú konštantu kubickej-Bézier-kappa 0.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ácia 11/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ť PrefetchRadius riadi, 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, Put a 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

    • CompressLoadedDocument teraz rešpektuje CompressionLevel, 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é, aby SaveLoadedDocument trvalo uložil výsledok namiesto cesty kópie nezmeneného súboru.DecompressLoadedDocument používa rovnakú cestu prúdu bezpečnú pre vlastníctvo, odstraňuje identické /DecodeParms a 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.AddCertificationSignatureField a ConfigureCertificationSignature teraz 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ým AttachSignatureFieldLock vysielajú nepriame politiky SigFieldLock a zodpovedajúce referencie FieldMDP pre rozsahy polí All, Include alebo Exclude.THotPDF.GetLoadedSignaturePermissions vykoná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 new HPDFReplaceWatermarkPlaceholders overload is given a THPDFPlaceholderDocInfo record. The legacy 4-parameter signature stays for callers that only need the page / file / date-time subset

    Version 2.421.0

    Added

    • THPDFActionBuilder.GoToEmbeddedNamedDestination and GoToEmbeddedPage create PDF 1.6 GoToE actions with standards-valid parent, EmbeddedFiles name-tree, attachment-annotation, and nested /T target 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 THPDFLoadedActionInfo snapshots from catalog /OpenAction and /AA, page /AA, annotation /A and /AA, AcroForm field /AA, and outline /A sources. Dictionary and array /Next forms 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 /PI events with the required PDF 1.5 version negotiation

    Version 2.420.0

    Added

    • Content-stream device stage 3 closes the abstraction loop: IHPDFContentDevice gains DrawXObject / DrawShading / ApplyExtGState for the Do / sh / gs operators, and the shared interpreter now dispatches them. Do is gated on cdcNeedImages so text/enum devices skip the heavy image decoding; sh and gs dispatch unconditionally. The renderer's ExecuteViaDevice path can now paint the full operator set (paths + colours + text + images + shading + ExtGState), observably equivalent to the legacy HandleOperator path. The ApplyExtGState nested 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 to Dev* helpers without colliding with the pre-existing private helpers
    • Document-content observer pattern: THotPDF.OnLoadedDocumentModified event fires from InvalidateRenderedPageCache (PageIndex = -1, whole document) and InvalidateRenderedPageCachePage (a specific page) so attached viewers refresh automatically. THPDFViewer subscribes in SetDocument and unbinds on detach / opRemove, calling RefreshDocument when the current page (or the whole document) is affected. Multi-view sync (several viewers on the same THotPDF) now works without each caller invoking RefreshDocument by hand

    Version 2.419.0

    Added

    • Content-stream device abstraction stage 1: IHPDFContentDevice gains 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 shared HPDFInterpretContentStreamDevice dispatcher now forwards BT/ET/Tf/Tc/Tw/Tz/TL/Tr/Ts/Td/TD/Tm/T*/Tj/TJ/'/" to the device when it declares cdcNeedText
    • THPDFTextExtractDevice is a concrete device that maintains the text matrices and emits one THPDFGlyphRecord per char code (decoded via an injected IHPDFFontResolver) — observably equivalent to HPDFInterpretTokens output but produced through the device interface so the same interpreter loop drives text extraction, path enumeration and rendering
    • HPDFExtractGlyphsViaDevice convenience function wraps the text-extract device + shared interpreter in one call; the existing HPDFInterpretContentStream / HPDFInterpretTokens stay untouched for current callers
    • Content-stream device abstraction stage 2: THPDFPageRenderer now implements IHPDFContentDevice so the shared dispatcher can drive it through the same abstract interface. ExecuteViaDevice is the opt-in device-driven render entry; the production Execute path keeps its built-in ExecuteStream / HandleOperator dispatch, 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

    • DecompressLoadedDocument is the inverse of CompressLoadedDocument: it walks every indirect stream carrying a /Filter /FlateDecode (name or single-element array form), inflates the payload back to raw bytes, strips the /Filter entry 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 discarded
    • EnumLoadedPageElements now returns the full path geometry per ekPath element, not just the bounding box: two new fields PathPoints: array of THPDFPathPoint and PathIsCurve: array of Boolean are 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 HPDFContentDevice unit introduces the content-stream device abstraction (stage 0): an IHPDFContentDevice interface with a TInterfacedObject base implementation (mirroring the proven IHPDFFontResolver pattern), a shared HPDFInterpretContentStreamDevice dispatcher that today covers the path / colour / state operator subset, and a concrete THPDFPathEnumDevice that collects one record per painted path with full point geometry. This breaks the three-way duplication between HPDFContentStream, HPDFPageRenderer.HandleOperator and HPDFCollectPathElements; stage 1 will add text/image callbacks and stage 2 will migrate the renderer onto the device

    Changed

    • HPDFPageRenderer header comment updated: the “TrueType/CFF glyph-outline rendering out of scope” note was stale — embedded glyph outlines have been active since v2.342.0 (DrawTextRun calls THPDFEmbeddedTTF.DrawGlyph / THPDFEmbeddedCFF.DrawGlyph with real quadratic/cubic bezier paths; GDI TextOutW is 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, AddLoadedSquigglyAnnotation and AddLoadedPolylineAnnotation -- once landed, the XFDF interchange layer (which already recognises these subtype strings) picks them up for free
    • AddLoadedFileAttachmentAnnotation embeds 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 /Subtype MIME, /Params /Size and creation/modification dates; the new THPDFFileAttachmentIcon enum (faiPushPin / faiGraph / faiPaperclip / faiTag) selects the standard pin icon viewers render
    • THPDFFieldValidationOptions record + HPDFDefaultValidationOptions expose the full Adobe AF* parameter surface (Decimals / SeparatorStyle / NegativeStyle / CurrencySymbol / CurrencyBefore / RangeMin / RangeMax) that the Acrobat JS helpers accept; the existing ApplyLoadedFieldValidation(FieldIndex, Kind, DateFormat, Mask) signature is retained as a backward-compatible overload that forwards into the new record overload
    • ApplyFieldValidation and ApplyFieldCalculation bring 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 hand
    • CopyLoadedAnnotationsFromDocument deep-copies annotations from another loaded document directly PDF→PDF (no XFDF intermediary): reuses CopyObject to rebuild indirect references, streams and /AP appearances, rewrites /P to the destination page, optionally remaps /IRT reply chains via /NM, optionally clears /T author, and accepts a THPDFAnnotCopyFilterEvent callback for selective copy -- covers Widget/PrinterMark/TrapNet/Watermark/3D/Screen that the XFDF layer does not reach

    Fixed

    • ApplyLoadedFieldValidation wrote the Format JavaScript under trigger key /X (annotation-exit), which Acrobat never fires for form fields -- the script was effectively dead. Corrected to /F so the format actually runs on field commit
    • ApplyLoadedFieldValidation emitted AFSpecial_FormatEx for the ArbitraryMask kind, a function that does not exist in the Adobe AF* set; only AFSpecial_KeystrokeEx(mask) is real, so the Format pass is dropped and enforcement happens at keystroke time as the spec intends
    • ApplyLoadedFieldValidation unconditionally appended AFRange_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 sets RangeMin or RangeMax in the options record
    • ApplyLoadedFieldValidation wrapped 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 alone
    • ApplyLoadedFieldCalculation now prepends a Format+Keystroke number-formatting pair before the AFSimple_Calculate script 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

    • THPDFViewer now scrolls on hover-wheel without needing a click first: a thread-local WH_MOUSE hook (new HPDFMouseWheelHook unit, auto-installed from its initialization section) routes WM_MOUSEWHEEL to whichever THPDFViewer instance sits under the cursor, matching the behaviour of every native Windows PDF reader
    • THPDFViewer is now Per-Monitor DPI v2 aware: new HPDFPerMonitorDPI unit resolves user32!SetProcessDpiAwarenessContext (Win10 1703+, DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) at runtime and falls back through shcore!SetProcessDpiAwareness (Win8.1+) and user32!SetProcessDPIAware (Vista+); the legacy HPDFEnablePerMonitorDPI is retained as an alias that forwards to the new layered helper
    • THPDFViewer.RenderAtPhysicalDPI published property (default True) makes the rendering DPI baseline track the monitor’s physical DPI via HPDFGetWindowDPI, so 100% zoom on a 144 DPI panel renders at native resolution; a new WMDpiChanged handler re-renders on cross-monitor moves; set False to preserve the historical 96-DPI logical baseline
    • Optional persistent disk tier for the rendered-page cache: setting THotPDF.RenderCacheFolder to a writable folder path persists every page rendered by RenderLoadedPageToBitmapCached as a PNG under <folder>\<SHA256-prefix-16>\<page>@<dpi>.png, so re-opening the same document later is instant; RenderCacheMaxDocuments (default 20) and RenderCacheMaxBytes (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
    • THotPDF constructor now activates the highest available per-monitor DPI tier at first instantiation in runtime mode (skipped in csDesigning), so hosts that never call HPDFEnablePerMonitorDPI explicitly still get crisp rendering on high-DPI displays

    Version 2.415.0

    Added

    • HPDFParsePDFDate now honours the timezone suffix (+HH’mm, -HH’mm, or Z) and returns a UTC TDateTime; HPDFFormatPDFDate is the inverse formatter producing D:YYYYMMDDHHmmSS+00’00
    • GetLoadedExtGStateInfo reads LW / LC / LJ / ca / CA off a named ExtGState entry on a loaded page; GetLoadedShadingCount / GetLoadedShadingName and GetLoadedPatternCount / GetLoadedPatternName enumerate the /Shading and /Pattern resource sub-dictionaries
    • ReplaceLoadedPage swaps a page’s contents from a source document, SwitchLoadedPages exchanges two pages, ReverseLoadedPages flips page order in a range, ExtractLoadedPagesToPDF saves a page range as a standalone PDF, and GetLoadedPageInheritedBox resolves inherited page boxes through the page-tree parent chain
    • GetLoadedFileSpecInfo reads embedded-file metadata (name / description / MIME / size), GetLoadedEmbeddedFileMIME returns the /Subtype, GetLoadedEmbeddedFileChecksum returns the /Checksum digest, and THPDFNameTreeType + GetLoadedNameTreeRootCount provide a typed enumeration of all nine name-tree categories
    • HPDFEnablePerMonitorDPI dynamically enables per-monitor DPI awareness; THPDFBackgroundRenderer renders pages on a background thread with a request queue and cancellation; GetLoadedPageContentStreamCount reports whether /Contents is a single stream or an array; GetLoadedXMPValue extracts a namespace-qualified XMP property; and GetLoadedDocumentReport aggregates all diagnostic info into a JSON string

    Version 2.414.0

    Added

    • THPDFActionBuilder.URIWithIsMap creates a URI action with /IsMap true for server-side image-map tracking, where the previous URI builder only set the bare /URI string
    • AddLoadedCaretAnnotationEx adds an optional paragraph symbol (/Sy P) to caret annotations, the visual marker editors use for insert-tracking
    • GetLoadedAnnotationDA parses a FreeText annotation’s /DA string 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

    • ActivateLoadedLinks turns 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

    • THPDFViewerModel stores, clips, enumerates, removes, and clears persistent page-region highlights without modifying the PDF
    • THPDFViewer adds a highlight interaction mode with captured marquee dragging, rotation-aware PDF coordinate recovery, configurable colour, and an OnMarqueeSelect callback

    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

    • THPDFViewerModel creates 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

    • THPDFPageLayout now supports PDF 1.5 plTwoPageLeft and plTwoPageRight cover-spread layouts with automatic version negotiation and strict-version fallback

    Fixed

    • BeginDoc now preserves the caller-selected page layout instead of always replacing it with plOneColumn

    Version 2.404.0

    Added

    • THPDFViewerModel creates rotation-aware snapshots of bounded PDF page regions without allocating a full-page bitmap

    Version 2.403.0

    Added

    • THPDFViewerModel converts 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

    • THPDFViewer adds Ctrl+wheel zoom, vertical wheel scrolling, and Shift+wheel horizontal scrolling without rerendering for scroll-only input

    Version 2.400.0

    Added

    • THPDFViewer adds keyboard page navigation, scrolling, zoom shortcuts, and Actual Size, Fit Width, or Fit Page mode selection

    Version 2.399.0

    Added

    • THPDFViewer draws or prints the rotation-aware current view with deterministic aspect-preserving fit and centred placement

    Version 2.398.0

    Added

    • THPDFViewerModel creates 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

    • THPDFViewerModel saves 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.ResetView restores 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

    • THPDFViewer and THPDFViewerModel add 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

    • THPDFViewerModel can create caller-owned page snapshots and save the current page as BMP without constructing a Viewer control

    Version 2.393.0

    Added

    • THPDFLoadedFormField now exposes field flags, MaxLen, page index, widget bounds, and common Required, NoExport, Multiline, and Password states
    • GetLoadedFormFieldMaxLength provides direct indexed access to loaded text-field length limits

    Version 2.392.0

    Added

    • SetDocumentAttachmentMetadata renames document-level embedded attachments and updates their descriptions before serialization

    Version 2.391.0

    Added

    • ExtractLoadedPagesTextToStream streams selected loaded-page text as UTF-8 with custom separators and optional BOM output
    • THPDFViewerModel adds form-field hit testing and deterministic keyboard navigation across page widgets
    • THPDFSignatureInfo.CertificateTimeValidity reports certificate-bound and signed-time validity classifications

    Fixed

    • Loaded form fields without widget /P back-references can now be mapped through page annotation arrays

    Version 2.390.0

    Added

    • THPDFWatermarkTemplate.MakeCurve and THPDFPage.AddCurveWatermark add 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

    • InsertLoadedBlankPage inserts a blank page with caller-defined dimensions at an exact loaded-document position
    • ExtractLoadedPagesText aggregates text from a one-based page range with a caller-defined separator
    • GetLoadedFormFieldNameValuePairs and SetLoadedFormFieldNameValuePairs provide batch name=value form exchange through TStrings
    • CMapResourcePath supports 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 DeletePages removes 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 THPDFMergeOptions to copy recursive outlines, register imported AcroForm fields, and deterministically rename conflicting field names
    • New AddLoadedRadioButton creates a true parent radio field with child widgets, shared export values, and complete on/off appearance states
    • New SearchLoadedNext provides stateless page-local next-match search, while GetLoadedOutlineEntries returns 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 THPDFLoadedDocumentFacade exposes 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 PrefetchLoadedPages renders 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
    • CancelLoadedPagePrefetch stops the worker and IsLoadedPagePrefetchActive reports its state; loading another document or destroying the component cancels an active prefetch automatically
    • Cached rendering and the prefetch worker are serialised internally, so RenderLoadedPageToBitmapCached stays safe to call while a prefetch is running

    Version 2.386.0

    Added

    • New FlattenLoadedAnnotations draws 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 RenderLoadedPageRegionToBitmap rasterises 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 GenerateLoadedPageThumbnails renders 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
    • GetLoadedPageThumbnailSize reads back an embedded thumbnail's pixel dimensions, and ClearLoadedPageThumbnails removes thumbnails from the selected pages

    Version 2.383.0

    Added

    • EnumLoadedPageElements now 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/Q nesting and cm transformations, so shapes drawn inside scaled or translated blocks report their true page coordinates

    Version 2.382.0

    Added

    • THPDFPrintOptions gains Duplex (simplex, long-edge, short-edge), PaperBin, and PrintQuality fields that are pushed into the printer device mode before the job starts; an explicit Orientation value is now applied as well
    • New HPDFGetInstalledPrinters lists the system printers, and HPDFGetPrinterCapabilities reports a printer's duplex and colour support, maximum copy count, paper bins (with the codes accepted by PaperBin), and supported resolutions

    Version 2.381.0

    Added

    • New CopyLoadedOutlinesFromDocument merges 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

    • GetLoadedBookmarkPageIndex now 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 ImposeLoadedPagesNUp lays 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 ImposeLoadedPagesBooklet produces 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 /XObject sub-dictionary; pages whose resources arrived as separate objects skipped their images and forms silently

    Version 2.379.0

    Added

    • SaveLoadedPagesAsImages gains two TIFF formats: ifTIFF writes one single-page TIFF file per page, and ifTIFFMulti aggregates 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 /OC marked sections and XObjects carrying an /OC entry is hidden when its layer is off, following the document's default configuration (/BaseState, /ON, /OFF)
    • Optional-content membership dictionaries evaluate their /P policy (AnyOn, AllOn, AnyOff, AllOff) over the member groups
    • New layer APIs on loaded documents: GetLoadedOptionalContentGroupCount, GetLoadedOptionalContentGroupName, GetLoadedOptionalContentGroupVisible, and SetLoadedOptionalContentGroupVisible to 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, and sh resource lookups previously missed their slash-prefixed operand names and skipped the object silently
    • The cm operator and Form XObject /Matrix values 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, and RegisterPostScriptFunction APIs 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)
    • RegisterPostScriptFunction validates the calculator program at registration time by trial evaluation, so malformed programs are rejected immediately instead of degrading silently in viewers
    • New RegisterSeparationFunc creates 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 /Encode remapping, and accepts single-entry /Bounds arrays

    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/ifelse conditionals

    Fixed

    • Named colour-space selection (cs/CS operators) 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 /Separation and /DeviceN definitions 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 annotation DA entry

    Version 2.373.0

    Fixed

    • XFDF annotation import/export now preserves caret annotation fringe geometry through the fringe attribute and the PDF annotation RD entry

    Version 2.372.0

    Fixed

    • XFDF annotation import/export now preserves rubber stamp annotation rotation through the rotation attribute and the PDF annotation Rotate entry

    Version 2.371.0

    Fixed

    • XFDF annotation import/export now preserves text annotation reply relationships through inreplyto, replyType, and the PDF annotation IRT and RT entries

    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, or nonInteractive

    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 justification and tail attributes through the PDF annotation Q and IT entries
    • 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-side leaderExtend spelling 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", or presence="inactive", including descendants of concealed containers

    Version 2.359.0

    Added

    • XFA flattening now maps field-level access="readOnly", access="protected", and access="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, so ApplyXFAAsAcroForm and FlattenLoadedXFA preserve 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 BorderStyleAlt children through the PDF annotation Border array, including corner radii, width and dash pattern values

    Version 2.353.0

    Fixed

    • XFDF annotation import/export now preserves standard interior-color attributes for line, square, circle, polygon, polyline and redaction annotations through the PDF annotation IC color array

    Version 2.352.0

    Fixed

    • XFDF annotation import/export now preserves standard annotation border style and cloudy border effect attributes, including width, dashes, style and intensity

    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 annotation Popup dictionaries

    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 / end coordinate 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

    • LoadedPageCount property, DuplicateLoadedPage, AddLoadedBlankPage, SetLoadedPageRotationValue and GetLoadedPageBoxRect round out the loaded-document page-operation API — duplicate pages, insert blank separators, set rotation and read any of the five page boxes in one call
    • GetLoadedEncryptionMethod returns the cipher name (RC4-40 / RC4-128 / AES-128 / AES-256), GetLoadedFileStructureInfo aggregates linearization / object-stream / xref-type in one call, LoadedSourceFileSize is a property, and SetLoadedPDFVersion updates the version
    • StampLoadedPageImage and StampLoadedPageImageFromFile embed a JPEG Image XObject (logo / signature image / QR code) onto a loaded page at a given rectangle, InsertLoadedText draws a single-line text run, and GetLoadedPageContentLength returns the decoded byte count
    • THPDFPrintOptions gains IgnoreHardMargin (offset printer hard margins so content is not clipped) and AutoRotate (landscape pages print landscape automatically)
    • SaveLoadedPagesAsImages gains BMPPixelFormat / BMPMonochrome (mono / 8-bit export) and JPEGScale (1 / 2 / 4 / 8 sub-sampled JPEG decode for fast thumbnails)
    • CompressLoadedDocument zlib-compresses every uncompressed stream in the loaded object graph and writes /Filter /FlateDecode, shrinking output size

    Fixed

    • StampLoadedPageText and StampLoadedPageImage now transparently decompress FlateDecode content streams before appending operators — previously stamping onto a compressed /Contents silently corrupted the zlib payload and the appended text/image disappeared

    Version 2.347.0

    Added

    • AddLoadedOutline creates a new bookmark on a loaded PDF at any nesting level (ParentIndex = -1 for 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 them
    • SetLoadedOutlineDestination and SetLoadedOutlineURI rewrite an existing bookmark’s target page or switch it to a URI action
    • ResolveLoadedNamedDestination turns a named destination string into a zero-based page index, and AddLoadedNamedDestination registers a new anchor on the loaded document’s /Names /Dests tree
    • GetLoadedBookmarkPageIndex is 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 /ItalicAngle in addition to the /BaseFont name, so subset-prefixed fonts whose name carries no -Bold suffix still render at the right weight

    Version 2.344.0

    Added

    • GetLoadedTrapped reads the /Trapped key from the Info dict (True/False/Unknown), where it was previously write-only — PDF/X preflight workflows can now round-trip the trap state
    • GetLoadedDocumentMetadataXML returns the raw XMP metadata stream bytes so PDF/A documents whose Info dict is absent can still expose dc:title / dc:creator / xmp:CreateDate
    • GetLoadedCollectionInfo reads the /Collection Name of a PDF Portfolio (EmbeddedFiles name tree still carries the file list)
    • GetLoadedOutlineChild descends one level into the bookmark tree, returning the /First child of a top-level outline entry, so nested chapter / sub-chapter bookmarks are no longer invisible
    • RotateLoadedPages rotates every page in a range by a given angle (accumulating onto existing /Rotate), the batch counterpart to per-page rotation
    • SetLoadedPageBoxForRange sets a page box (Media/Crop/Bleed/Trim/Art) for every page in a range in one call
    • GetLoadedViewerPreferences now also reads HideWindowUI and CenterWindow, matching the six keys the writer emits (previously only four came back)

    Version 2.343.0

    Fixed

    • The W n / W* n clip idiom now applies the clip: the n operator builds the pending path and calls SelectClipPath instead of discarding both the path and the pending clip, so rect / container clips written as re ... W n no longer leak their contents past the boundary
    • SetMiterLimit is 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 preceding d1 glyph no longer bleeds its colour suppression into a d0 glyph

    Added

    • ri (rendering intent) and i (flatness) operators are now consumed and stored on the graphics state (RenderingIntent / Flatness fields), where they were previously silently skipped

    Version 2.342.0

    Added

    • Text rendering mode operator Tr is 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 common Tr case in real-world PDFs. Modes 1 / 2 (stroke) currently fall back to fill pending per-glyph outline support
    • Marked-content operators BMC / BDC / EMC and the DP / MP property variants now maintain a depth counter on the renderer, the prerequisite for a later round’s OCG / OCMD visibility evaluation; BX / EX compatibility operators maintain their own counter so the renderer knows it is inside a compatibility block

    Version 2.341.0

    Fixed

    • Bezier shorthand operators v and y are 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
    • DrawTextRun now honours Tz (horizontal text scaling), Tw (word spacing, applied to the space glyph) and Ts (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

    • SearchLoadedPageTextWholeWord filters the substring matches produced by SearchLoadedPageText down 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 space
    • GetLoadedSearchHitRect collapses 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

    • ExtractLoadedPageTextColumns reconstructs 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 to ExtractLoadedPageTextLayout that previously declared column detection out of scope
    • THPDFPageElement now carries a BaselineRole (brNormal / brSuperscript / brSubscript) populated by EnumLoadedPageElements: 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

    • /ImageMask stencil 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) and d (LineDash array + phase) operators by building a geometric pen via ExtCreatePen instead of the previous fixed CreatePen(PS_SOLID, ...), so rounded joins, dashed borders and square end caps render correctly
    • Render-side gs (ExtGState) operator: the named ExtGState dictionary in /Resources/ExtGState is now consumed for LW / LC / LJ / ML / ca / CA and applied to the graphics state, where the renderer previously dropped the operator entirely
    • Graphics state extended with LineCap / LineJoin / MiterLimit / LineDash / DashPhase / FillOpacity / StrokeOpacity fields, all with PDF-default initial values

    Fixed

    • Clip (W / W*) now sets the GDI polygon fill mode (ALTERNATE vs WINDING) before SelectClipPath, so even-odd and nonzero-winding clip intersections are no longer identical

    Version 2.336.0

    Security

    • The render-side /Indexed colour-space parser now clamps HiVal to the spec-mandated [0..255] range, closing a buffer-overread vector where a malformed HiVal let nComps × indexHigh overflow a 32-bit byte count and read past the lookup table

    Added

    • AttachLoadedAnnotationMeasure writes a /Measure dictionary (PDF 1.7 §12.5.6.13) onto a Line or Polygon annotation, carrying the /NumberFormat array (unit label, decimal/fraction/round style, precision), the /Scale ratio and the /CYX isotropy 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 HPDFEvalTintTransform now 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) — so Separation / DeviceN tint 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) and Lab (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 ICCBased colour 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 Separation and DeviceN spot-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 / SCN now handled by the page renderer, the prerequisite for every non-Device colour space to take effect on a loaded page
    • Unified colour resolution through HPDFResolveColor with the extended THPDFColorSpaceFamily and THPDFCIEParams records, replacing the per-space ad-hoc logic

    Version 2.332.0

    Added

    • RenderSignatureFieldAppearance paints 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 a THPDFSignatureDisplayOptions set as a convenience wrapper around AttachSignatureFieldAppearance
    • EnumerateSystemCertificates walks a Windows certificate store (typical MY / ROOT / CA) via dynamically loaded Crypt32.dll and 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 DigestMethods already accepting SHA-256 / SHA-384 / SHA-512, so no SHA-1 signing path exists

    Version 2.331.0

    Added

    • RenderLoadedPageToDC draws one page straight into a caller-supplied device context (printer canvas, off-screen surface, custom TCanvas), removing the bitmap round-trip for print and high-DPI workflows
    • RenderLoadedPageToClipboard places 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 works
    • PrintLoadedDocument with a THPDFPrintOptions record drives the VCL TPrinter through 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

    • GetLoadedPageLabel reads back the /PageLabels /Nums range that covers a given page index, returning the style code, prefix and start number — the read counterpart to SetLoadedPageLabel, so labels a caller did not create itself can now be inspected and round-tripped
    • StitchLoadedPageSideBySideEx performs the side-by-side 2-up stitch with a configurable horizontal gutter and source-page scale factor, where the legacy StitchLoadedPageSideBySide was fixed to half width with no gap

    Version 2.329.0

    Added

    • AddLoadedRubberStampAnnotation with a THPDFRubberStampIcon enum 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 stream
    • SetLoadedAnnotationCloudyBorder turns a Square / Circle / Polygon annotation into a cloudy (cloud-burst) border by writing /BE /S /C /I plus the /IC interior colour array
    • SetLoadedLineAnnotationCaps sets the /LE line-end (arrowhead) styles for Line / Polyline annotations from the new THPDFLineEndStyle enum (None / OpenArrow / ClosedArrow / Butt / ROpenArrow / RClosedArrow / Slash / Diamond)

    Version 2.328.0

    Added

    • EnsureLoadedFieldAppearanceStream generates a /AP /N Form XObject for an existing AcroForm field from its /DA + /V + /Rect, so viewers that ignore /NeedAppearances still render the field value without a round-trip through Acrobat
    • ApplyLoadedFieldValidation attaches a Format / Keystroke / Validate script trio to a field using the Acrobat AF* helpers, covering Number, Percentage, Date, Time, Currency, ZipCode, SSN, Phone and ArbitraryMask input kinds — the caller no longer has to hand-write AFNumber_Format / AFDate_FormatEx / AFRange_Validate JavaScript
    • ApplyLoadedFieldCalculation attaches an AFSimple_Calculate script 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 with HPDF_NO_MASK) and stamps the replacement text on top, complementing the byte-level ReplaceLoadedPageText when the original font lacks a reverse char-code table or the replacement needs a different font
    • Region text extraction GetLoadedPageTextInRegion concatenates 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 SearchLoadedFirst returns the first match as a single THPDFTextMatch, so callers can walk hits without managing a whole match array

    Version 2.326.0

    Added

    • Document-wide MeasurementUnit property (muPoints / muPixels / muInches / muMM / muCentimeters / muTwips) so every high-level authoring coordinate is converted to PDF points through ToPDFUnit / 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
    • AddTextWatermarkEx page method that combines placeholder substitution, unit-aware coordinates and a unified THPDFWatermarkBase record (angle, opacity, position presets)
    • Shape-watermark page helpers AddRectangleWatermark, AddEllipseWatermark, AddLineWatermark and AddPolygonWatermark, each wrapping the path primitives in a q/Q graphics-state pair with registered fill/stroke alpha
    • Unified THPDFWatermarkTemplate record with MakeText / MakeRectangle / MakeEllipse / MakeLine / MakePolygon factories plus a THPDFWatermarkTemplateArray composite type
    • Loaded-document watermarking: StampLoadedPageText and StampLoadedPagesText append a transparent, rotated text run to existing pages, honouring the MeasurementUnit and the same placeholder set; StampLoadedPagesComposite applies a whole template array (text + shapes) to a page range
    • Z-order control on loaded-document stamps: Underlay = True prepends the watermark stream before the existing /Contents via the array form, so the watermark renders behind the page content
    • EnumLoadedPageElements returns text runs (glyphs aggregated by baseline + font) and image XObject placements as THPDFPageElement records with bounding boxes
    • SaveLoadedPagesAsImages multi-format export: BMP / JPEG / PNG raster plus EMF / WMF vector, one file per page, with configurable DPI, file-name prefix and JPEG quality
    • GetLoadedPageMetafile vector render of one page to a TMetafile via the new THPDFPageRenderer.ExecuteToDC path, 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_GRADIENTFILL rectangle gradients (GRADIENT_FILL_RECT_H / GRADIENT_FILL_RECT_V) as PDF Type 2 axial shading patterns, mapping each TRIVERTEX colour pair to an RegisterAxialGradient call 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_GDICOMMENT comments, 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 the pdfmark keyword 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_GRADIENTFILL as 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 + /Contents placeholders in 256 KB rolling reads, digests the two byte-range windows via HPDFCMSSHA256StreamRanges, 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-memory Pos() + Move() path unchanged

    Version 2.321.0

    Added

    • Optional-content group usage dictionaries: SetOptionalContentGroupUsage attaches a /Usage entry to a registered OCG (PDF 1.7 §8.11.4.4 Table 100) so viewers auto-show/hide layers by context. Categories View / Print / Export write <Category>State = ON/OFF; Zoom writes a real-pair Min; Language / Creator write string values
    • Outline subtree copy: THPDFDocOutlineObject.CopySubtree deep-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 by MoveTo) and MoveTo (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 / /Count maintenance on every affected ancestor)

    Version 2.320.0

    Added

    • Nested optional-content /Order tree: BeginOptionalContentOrderGroup / AddLayerToOptionalContentOrder / EndOptionalContentOrderGroup build 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 /OCGs is 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 ExecuteRecord entry: while a path bracket is open (BeginPath seen, EndPath/AbortPath not 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 RegisterOptionalContentRadioGroup declares 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 / InsertAfter splice a new sibling into the existing outline doubly-linked list at an arbitrary position, complementing the existing AddChild (append) and AddChildFirst (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 JBIG2Benchmark demo generates four PDFs from the same three-page synthetic scan, one per THPDFJBIG2Options configuration (per-image lossless, per-image LossyLevel=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 /JBIG2Globals stream, and the accumulator is reset, so the next batch starts a fresh globals stream. Mirrors llPDFLib's TotalWidth-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 existing UseSymbolDictionary + UseGlobalSegments + native fallback switches) and consecutive 1-bit icJBIG2 images share one growing in-memory symbol dictionary and one /JBIG2Globals indirect stream, instead of each image emitting its own dictionary. New THPDFJBIG2SymbolDictionary holds the persistent glyph set with the same lossy / lossless matching the per-image encoder uses; new smoke_jbig2_accum_decode verifies 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 /JBIG2Globals indirect stream instead of each emitting their own; new smoke_jbig2_globals_multi smoke 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, and EMR_SETROP2, closing the seven-record gap with llPDFLib so EMF streams emitted by older GDI toolchains no longer silently drop those records; SETMITERLIMIT and SETROP2 take 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

    • HPDFCMSSHA256StreamRanges now digests the two PDF /ByteRange windows straight from a TStream in 256 KB chunks, so multi-GB signed PDFs can be hashed without first copying the whole file into an AnsiString; closes the gap with llPDFLib's stream-based CalcHash, which the existing in-memory HPDFCMSSHA256ByteRanges could not match for very large inputs

    Version 2.310.0

    Changed

    • THPDFJBIG2Options now defaults to scan-friendly settings (LossyLevel = 5, RemoveIsolatedBlackPixels = True, BlackDotSize = 3) so 1-bit scanned images compress much smaller out of the box; set LossyLevel = 0 or Lossless = True to 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.AddChildFirst so generated outline nodes can prepend a child item before existing siblings while preserving the saved outline order

    Version 2.309.3

    Added

    • Added pmUseOC to THPDFPageMode so generated documents can request the optional-content layers panel with catalog /PageMode /UseOC

    Version 2.309.2

    Added

    • Added title-string overloads for THPDFPage.AddTextAnnotation so generated text annotations can write the PDF /T title or author entry while preserving the existing icon, color, and open-state arguments

    Version 2.309.1

    Fixed

    • Clearing THotPDF.OutputStream by assigning nil now restores normal FileName output instead of leaving the document in stream-output mode

    Version 2.309.0

    Fixed

    • EMF/WMF import now honors EMR_EXTSELECTCLIPRGN region modes for copy, intersect, and exclude clipping while keeping EMR_SETWORLDTRANSFORM, EMR_MODIFYWORLDTRANSFORM, and EMR_SETPIXELV covered by non-GUI regression tests

    Version 2.308.0

    Added

    • FastReport add-on design-time registration now ships as frxHotPDFDesign, placing TfrxHotPDFExport on the FastReport VCL palette while keeping the existing runtime unit and Register entry point available for compatibility

    Version 2.307.0

    Added

    • SignPDFWithPFX now 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.PageRange now lets FastReport exports opt in to one-based page filtering such as 1,3-5 while 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 w still 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 columnWidths values when they omit their own w, 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 wrapped layout="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" and layout="lr-tb" flow containers when they omit an explicit h height, measuring their wrapped content height instead of skipping them as unsupported growable layout

    Version 2.300.0

    Fixed

    • THotPDF.ExtractObjectFromStream now 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.DecompressAllObjectStreams is 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

    • TDBGridHotPDFExportOptions and the TDBGridHotPDFExport component now expose PDFACompliance and PDFXCompliance so DBGrid table exports can opt in to the same HotPDF standards-conformance gates used by direct document generation

    Version 2.296.0

    Added

    • TQRHotPDFExportFilter and TdxHotPDFExportOptions now expose PDFACompliance and PDFXCompliance so QuickReport and DevExpress exports can opt in to the same HotPDF standards-conformance gates used by direct document generation

    Version 2.295.0

    Added

    • TfrxHotPDFExport and TppHotPDFDevice now expose PDFACompliance and PDFXCompliance so 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
    • THPDFExtGStateOptions now 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 TransparentBlt and MaskBlt bitmap 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 PDFOptimize demo 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 SaveLoadedDocument rewrites 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.ShowNullBrush now 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.CanvasOver now 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.Redraw now 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.UseFrame now 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.ShowNullPen now 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.SetFormFieldTooltip now lets applications assign AcroForm /TU field hints by field name for widgets created through the existing Add... field methods

    Version 2.292.25

    Fixed

    • TfrxHotPDFExport native-object mode now preserves TfrxPictureView clipping and frame rendering when picture views are written directly as HotPDF image XObjects

    Version 2.292.24

    Added

    • TfrxHotPDFExport native-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

    • TppHotPDFDevice native 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.ShowMetafileEx now has a per-call THPDFEmfOptions overload, letting callers override EMF/WMF rendering settings for one metafile draw while preserving document-level defaults