Kompatibilita streamov a offsetov PDF 1.7
Verzia 3.12.5 sprísňuje kompatibilitu so slovníkmi streamov PDF 1.7, s kryptografickými filtrami štandardného zabezpečenia, s analýzou syntaxe objektov, xref streamami a výstupom byte-offsetov. Všeobecné dekódovanie streamov považuje /DP za štandardný alias /DecodeParms, rieši nepriame položky poľa parametrov dekódovania, prijíma skratky štandardných filtrov /AHx a /LZW a pri bežnom kroku dekódovania filtrov považuje filter Identity /Crypt za operáciu bez účinku
Pri načítaní PDF PDFlibPas považuje položku Catalog /Version za účinnú verziu dokumentu, keď je novšia než verzia v hlavičke. Tým sa zhoduje s pravidlom PDF 1.7 na prepis verzie v katalógu
Štandardne šifrované dokumenty teraz pri načítaní, dešifrovaní, kopírovaní a ukladaní dôslednejšie zachovávajú rozhodnutia pre kryptografické filtre StrF, StmF, EFF, Identity, None a pomenované filtre typu StdCF. Metadátové streamy rešpektujú EncryptMetadata=false, streamy vložených súborov nesú /Type /EmbeddedFile, takže filter pre vložené súbory možno uplatniť oddelene od bežných streamov, a novo zapisované položky AES crypt-filter Length používajú bitové dĺžky
Verzia 3.56.38 zabezpečuje, že bežné šifrovanie cez API vytvorí alebo zachová trailer /ID pred vygenerovaním štandardných bezpečnostných údajov. Výstup AES-256 uložený zo zdrojových PDF bez /ID sa teraz pri opätovnom načítaní hlási ako šifrovaný cez EncryptionStatus a možno ho explicitne dešifrovať pomocou Decrypt
Analýza názvov PDF teraz používa ľavú aj pravú zloženú zátvorku ako oddeľovače. Názvy ako /Name} sa preto tokenizujú pri pravej zátvorke namiesto toho, aby sa oddeľovač absorboval do tokenu názvu
Analýza literálnych reťazcov teraz ignoruje spätné lomítko pri neznámych escape sekvenciách a obmedzuje spracovanie \ddd na osmičkové číslice. Sekvencia ako \128 sa preto dekóduje ako LF a potom znak 8 namiesto toho, aby sa 8 považovala za súčasť osmičkového escape
Položky komprimovaných objektov typu 2 v xref streame si ponechávajú číslo objektového streamu aj vtedy, keď je toto číslo väčšie než dĺžka PDF v bajtoch. Kontrola primeranosti veľkosti súboru zostáva obmedzená na bežné xref položky, kde druhé pole predstavuje bajtový offset
Pri plnom ukladaní používajú xref tabuľky, startxref, linearizované xref tabuľky, hodnoty Prev/XRefStm v xref streame a hodnoty ByteRange digitálnych podpisov pomocné funkcie pre formátovanie a spracovanie s 64-bitmi. Tým sa zabraňuje tomu, aby sa veľké bajtové pozície pred zápisom do syntaxe PDF zúžili cez 32-bitové celočíselné cesty
Keď sa xref stream prepíše na klasický trailerový slovník, z emitovaného traileru sa odstránia kľúče DecodeParms platné len pre stream. Externé streamy vložených súborov si tiež ponechajú FDecodeParms, keď sa FFilter povýši na Filter
Overenie pre 3.12.5 pokrylo sady Delphi Win32 a Win64 DUnitX, pričom na každej platforme prešlo 141 z 141 testov