Kompatibilnost streama i pomaka PDF-a 1.7
Verzija 3.12.5 pooštrava kompatibilnost s PDF 1.7 rječnicima streama, standardnim kriptografskim filtrima sigurnosti, raščlanjivanjem sintakse objekata, xref streamovima i izlazom s bajt-pomakom. Generičko dekodiranje streama tretira /DP kao standardni alias za /DecodeParms, razrješava neizravne stavke polja parametara dekodiranja, prihvaća standardne kratice filtara /AHx i /LZW te tretira filtr /Crypt Identity kao operaciju bez učinka u običnoj fazi dekodiranja filtra.
Pri učitavanju PDF-a PDFlibPas tretira unos Catalog /Version kao učinkovitu verziju dokumenta kada je noviji od verzije zaglavlja. To odgovara pravilu prepisivanja verzije kataloga u PDF-u 1.7.
Standardno šifrirani dokumenti sada dosljednije čuvaju odluke o kriptografskim filtrima StrF, StmF, EFF, Identity, None i imenovanih StdCF stilova tijekom tijekova učitavanja, dešifriranja, kopiranja i spremanja. Tokovi metapodataka poštuju EncryptMetadata=false, tokovi ugrađenih datoteka nose /Type /EmbeddedFile kako bi se kriptografski filtar za ugrađenu datoteku mogao primijeniti odvojeno od običnih tokova, a novo zapisani AES Length unosi kriptografskog filtra koriste bitne duljine.
Verzija 3.56.38 osigurava da normalno API šifriranje stvara ili čuva trailer /ID prije nego što se generiraju standardni sigurnosni podaci. Izlaz AES-256 spremljen iz izvornih PDF-ova kojima nedostaje /ID sada se ponovno učitava kao šifriran kroz EncryptionStatus i može se izričito dešifrirati funkcijom Decrypt.
Raščlanjivanje PDF naziva sada lijeve i desne vitičaste zagrade tretira kao razdjelnike. Nazivi poput /Name} zato se tokeniziraju na desnoj vitičastoj zagradi umjesto da upiju razdjelnik u token naziva.
Raščlanjivanje literalnih nizova sada zanemaruje obrnutu kosu crtu za nepoznate escape sekvence i ograničava raščlanjivanje \ddd na oktalne znamenke. Sekvenca poput \128 zato se dekodira kao LF iza kojeg slijedi znak 8 umjesto da se 8 tretira kao dio oktalnog escapea.
Zapisi komprimiranih objekata tipa 2 u xref streamu zadržavaju svoj broj object streama čak i kada je taj broj veći od duljine bajtova PDF-a. Provjera razumnosti veličine datoteke i dalje je ograničena na obične xref zapise, gdje je drugo polje bajt-pomak.
Xref tablice punog spremanja, startxref, linearizirane xref tablice, vrijednosti Prev/XRefStm u xref streamu i ByteRange vrijednosti digitalnih potpisa koriste pomoćne funkcije za 64-bitno formatiranje i raščlanjivanje. To sprječava da se velike pozicije bajtova suze kroz 32-bitne cijele putanje prije nego što budu zapisane u PDF sintaksu.
Kada se xref stream ponovno zapisuje kao klasični trailer rječnik, ključevi DecodeParms koji vrijede samo za stream uklanjaju se iz emitiranog trailera. Vanjski tokovi ugrađenih datoteka također zadržavaju FDecodeParms kada se FFilter promovira u Filter.
Provjera za 3.12.5 obuhvatila je Delphi Win32 i Win64 DUnitX skupove, pri čemu je na svakoj platformi prošlo 141 od 141 testa.