Napomene izdanja za PDFium Delphi Component
Povijest verzija za korisnički vidljive značajke, ispravke, poboljšanja preglednika, generiranje dokumenata, PDF/A output, rendering i ažuriranja dokumentacije u PDFium Delphi Component
Posljednje izdanje
- Najnovija verzija: 3.117.0; Datum izdanja:
Version 3.117.0
Dodano (Added)
- Detekcija tablica čita okvire i sjenčanje nacrtane kao ispunjene pravokutnike: ispunjeni okvir čija debljina ne prelazi novi
MaxRulingThicknesspostaje crta mreže, a veći ispunjeni okvir daje svoje rubove, pa se tablice izvezene iz Worda, Google Dokumenata i preglednika sada pronalaze kao mreže s povučenim crtama i spojenim redovima naslova umjesto kao fragmenti praznog prostora.DetectFilledRulingsto ponašanje isključuje - Koordinate crta mreže prije sastavljanja mreže poravnaju se unutar
RulingSnapTolerance, čime se u jednu tablicu spajaju dijelovi okvira po ćelijama, dvostruki okviri i zasjenčene ćelije razdvojene uskim razmakom - Crtala unutar form XObjecta sudjeluju u detekciji putem objedinjenih matrica objekata, pod kontrolom
IncludeFormXObjects ExtractDocumentTablespovezuje fragmente nastavka koji završavaju tamo gdje završava sadržaj stranice i nastavljaju tamo gdje počinje sadržaj sljedeće stranice, a ne samo fragmente koji dodiruju rubove stranice, te zadržava jedan preliveni red kao dio svog lanca- TableExtractionLab izlaže
DetectFilledRulingsna svojoj ploči s opcijama u varijantama za Delphi, Lazarus i C++Builder
Promijenjeno (Changed)
- Detekcija praznog prostora zanemaruje riječi koje već pripadaju mreži s crtalama i zahtijeva da svaka granica stupca bude prolaz bez teksta kroz sve redove koje odvaja, tako da poravnati odlomci i popisi s natuknicama više se ne prijavljuju kao tablice
- Kandidat za nastavak čiji je prvi red jedna ćelija preko pune širine tretira se kao nova tablica s naslovom, a ne kao nastavak prethodne
MinRowsza mreže s crtalama prihvaća vrijednost 1; detekcija praznog prostora zadržava svoj prag od dva reda, a zadani budžetMaxRulingSegmentsraste na 16384 jer ispunjeni okviri pojedinačnih ćelija stižu u znatno većem broju od izvučenih linija mreže- Tekst ćelije sastavlja se redak po redak iz preklapajućih okvira riječi, tako da riječi čiji se okviri glifova razlikuju po visini zadržavaju svoj redoslijed s lijeva na desno
TPdf.AboutInfo, metapodaci Lazarus paketa i installer metapodaci verzije javljaju 3.117.0
Version 3.116.4
Dodano (Added)
- TableExtractionLab dobiva grupnu obradu mapa:
Batch folderpokrećeExtractDocumentTablesnad svakim PDF-om u odabranoj mapi, ispisuje broj tablica po dokumentu, označava dokumente bez tekstualnog sloja za OCR i sprječava da oštećene ili zaključane datoteke prekinu cijeli prolaz Export all CSVzapisuje svaku pronađenu tablicu kao<document>-<n>-page<p>-t<i>.csvu podmaputablespri grupnoj obradi, odnosno pokraj učitanog dokumenta kod pojedinačne datoteke- Odabir unaprijed namještenih postava za detekciju izlaže uglađene
TPdfTableExtractionOptions: Default, Compact columns (MinColumnGap4 uzAlignmentTolerance5 za guste izvoze iz uređivača teksta) i Compact + wide rows (MaxRowGapFactor6 za prored 1.5-2x) - Dokumenti koji pod postavom Default ne daju nijednu tablicu jednom se ponovno pokušavaju s Compact columns, i kod obrade pojedinačnog dokumenta i kod grupne, a redovi grupne obrade izvještavaju koji je postav dao rezultat
Ispravljeno (Fixed)
- Grupna obrada svaki dokument otvara u svojoj instanci
TPdfumjesto da ponovno učitava jednu dijeljenu komponentu, čime nestaju tihe greške učitavanja koje su se pojavljivale kao greške neaktivnih komponenata usred grupne obrade mape
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci Lazarus paketa i installer metapodaci verzije javljaju 3.116.4
Version 3.116.3
Promijenjeno (Changed)
- Primjer TableExtractionLab u sva tri alatna lanca sada svoj generirani primjerni dokument zapisuje u
TableExtractionSample.pdfpokraj izvršne datoteke demoa umjesto da ga zadržava samo u memoriji; kada mapa nije za pisanje, lab vraća se na staro ponašanje u memoriji i o tome izvještava u statusnoj liniji TPdf.AboutInfo, metapodaci Lazarus paketa i installer metapodaci javljaju 3.116.3
Version 3.116.2
Ispravljeno (Fixed)
- Biblioteka se prestala kompajlirati na starijim izdanjima Delphija. Pomoćna funkcija za 64-bitne otkucaje te kodeksi za trusted-list i produkcijski XML zvali su
GetTickCount64iCP_UTF8iz RTL jedinica koje ih donose samo noviji kompajleri, pisac reflow HTML-a ugrađivao je CSS string literal preko granice od 255 elemenata koju ti kompajleri nameću jednom literalu, a spajanje XFA dataseta radilo je dodjelu izmeđuTBytesi običnog dinamičkog polja, što kompajleri prije XE7 odbijaju. Stariji kompajleri sada vezujuGetTickCount64iz kernel32 i lokalno deklarirajuCP_UTF8kada ga RTL nema, stilski list isporučuje se kao spojeni kratki literali, a sadržaj paketa kopira se element po element
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci Lazarus paketa i installer metapodaci javljaju 3.116.2
Version 3.116.1
Dodano (Added)
Demo\Delphi\TableExtractionLab,Demo\CBuilder\TableExtractionLabiDemo\Lazarus\TableExtractionLabpretvaraju detekciju tablica u jedan radni tok. Lab izgrađuje primjerni dokument s mrežom s crtalama koja nosi spojene ćelije zaglavlja, s tablicom poravnatom praznim prostorom bez crtanja i s dugom tablicom koja se lomi preko granice stranice, a zatim pokrećeExtractTablesiliExtractDocumentTableste ispisuje redove, stupce, raspone, zastavice zaglavlja, način detekcije, pouzdanost i grupe nastavka- Lab izvozi odabranu tablicu putem
TPdfTable.ToCsviTPdfTable.ToJson, mijenjaDetectRuledTables,DetectWhitespaceTables,DetectContinuationsiMinConfidences ploče s opcijama te cijelo izvješće kopira u međuspremnik TPdf.AboutInfo, metapodaci Lazarus paketa i installer metapodaci verzije javljaju 3.116.1
Version 3.114.21
Ispravljeno (Fixed)
- PDF/A validacija prijavljivala je referencu na vanjsku datoteku za svaki dokument koji sadrži anotaciju. ISO 19005-1 §6.1.7 zabranjuje
/F,/FFilteri/FDecodeParmsu rječniku stream objekta, ali je provjera ta imena tražila u cijeloj datoteci, a/Fje ujedno i ključ anotacijskih zastavica koji §6.5.3 zahtijeva da svaka anotacija nosi. Provjera sada traži samo unutar rječnika stream objekata
Version 3.114.20
Ispravljeno (Fixed)
- RSASSA-PSS potpisi nosili su neispravno oblikovane parametre algoritma na sva tri signing backenda. RFC 4055 tagira sva četiri polja RSASSA-PSS-params; duljina salta zapisana je kao gol integer, koji parser čita kao početak nekog drugog polja, a trailer polje zapisivano je iako njegova vrijednost odgovara defaultu koji DER zahtijeva izostaviti. Verifikator ili nije uspio parsirati parametre ili je pao na defaultni salt od 20 bajtova dok je potpis koristio 32, pa su PSS potpisi bili odbijani. PKCS#1 v1.5 i ECDSA potpisi nisu bili pogođeni
Version 3.114.19
Ispravljeno (Fixed)
- Traženje timestampa uz digest drugačiji od SHA-256 sastavilo je zahtjev koji je deklarirao taj algoritam dok je nosio SHA-256 digest, a timestamp authority to ili odbija ili, još gore, daje timestamp točno takvom zahtjevu. Računa se samo SHA-256, pa se svaki drugi identifikator sada odbija odmah; prazan identifikator i dalje bira SHA-256 default. PDF Viewer primjer za Lazarus i C++Builder vezao je i handler za širenje bookmarka koji njegova form datoteka imenuje, ali ga kod ne definira, što puca kod učitavanja forme; handler je portiran iz Delphi primjera
Version 3.114.18
Ispravljeno (Fixed)
- XFA Lab i XFDF Lab primjeri za Delphi, kao i XFA Lab primjer za Lazarus, padali su odmah pri startu. Svaki gradi svoje kontrole u create handleru svoje forme, ali form resurs nije bio niti prisutan niti linkan, pa je stvaranje glavne forme izbacivalo grešku resource-not-found, a handler se nikad nije ni izvršio. Sva tri sada nose form datoteku i direktivu koja je ugrađuje
Version 3.114.17
Ispravljeno (Fixed)
- Dva nativna resursa loše su obrađena kad operacija padne na pola puta. Neuspjeli thumbnail render oslobodio je ciljni bitmap prije zatvaranja nativnog rendera, pa je, kad je render crtao izravno u piksele te bitmape, teardown čitao memoriju koja je već bila oslobođena. Neuspjela alokacija bitmape u
AddBitmapostavila je upravo stvoreni image objekt bez vlasnika i bez ikakve mogućnosti da mu se ponovno pristupi
Version 3.114.16
Ispravljeno (Fixed)
- Čitanje FDF teksta davalo je pogrešne znakove iznad
0x7E. PDFDocEncoding tablica u ISO 32000-1 Annex D.2 počinje na0x80sa bullet znakom, ali je mapiranje krenulo od0x7F, pa je cijeli blok do0x9Fpomaknut za jedno mjesto: dagger se čitao kao bullet, em dash kao trotočka i tako dalje sve do zcaron, koji je potpuno ispao s kraja. Nedostajao je i Euro na0xA0, koji se vraćao kao no-break space. Imena i vrijednosti polja u uvezenom FDF-u sada se ispravno dekodiraju
Version 3.114.15
Ispravljeno (Fixed)
- Validacija povjerenja nad dokumentom čiji se trailer ili katalog ne može pročitati upisivala je iza kraja polja. U tom slučaju compliance prolaz odustaje a da ne zabilježi nijedan potpis, dok kolektor koji se pokreće nakon njega radi izravno nad byte streamom i može i dalje pronaći rječnike potpisa, pa je u polje koje nije sadržavalo nijednu stavku upisana jedna stavka za svaki pronađeni rječnik. Broj se sada clampira na ono što je compliance prolaz proizveo
Version 3.114.14
Ispravljeno (Fixed)
- Izvršavanje PDF/A plana popravaka primijenilo je korake koje je planer blokirao. Korak je blokiran kad dokument nosi potpise, kad bi ih korak poništio i kad pozivatelj to nije dopustio; izvršitelj je provjeravao samo sigurnosnu razinu koraka, koja taj uvjet ne izražava, pa je potpisani dokument mogao ostati bez valjanih potpisa zbog automatskog popravka koji je plan već odbio. Blokirani koraci sada se preskaču i broje kao preskočeni
Version 3.114.13
Ispravljeno (Fixed)
- Dodavanje timestampa potpisa na CMS vrijednost čiji je set certifikata bio veći od 127 bajtova - a to je svaki stvarni certifikat - pokvarilo je rezultat. Helper koji locira početak ugniježđene strukture išao je unatrag preko okteta duljine i posljednji je zamijenio za prvi, pa je rez koji je izrezao počeo znatno prije strukture koju je trebao dobiti. Duljina headera sada se izvodi iz duljine sadržaja, što DER nedvosmisleno određuje. Self-checkovi to nisu uhvatili jer su njihovi fixture certifikati bili dovoljno mali za kratki oblik zapisa
Version 3.114.12
Ispravljeno (Fixed)
- Potpisani atributi emitirani su redoslijedom kojim su sastavljeni, umjesto da budu sortirani po svojim kodiranjima, što X.690 §11.6 zahtijeva od DER SET OF. Verifikator koji set atributa ponovno kodira prije računanja digesta - što rade i OpenSSL i BouncyCastle - dobio je drugačiji digest i proglasio ispravan PAdES potpis nevažećim. Potpisi koje ova biblioteka proizvodi sada se verificiraju u tim stackovima; validacija kroz Windows sloj nije bila pogođena jer ona digest računa nad bajtovima onakvima kakve primi
Version 3.114.11
Ispravljeno (Fixed)
- Negativan DER INTEGER širi od dva sadržajna bajta kodiran je s krivom vrijednošću. Writer emulira aritmetički pomak tako da poslije logičkog pomaka ponovno ubaci predznak, ali je maska koju je koristio postavljala sve bitove iznad najnižeg bajta umjesto samo bajta koji je pomak oslobodio, pa je magnituda koja je još stajala u preostalim bajtovima bila prebrisana. Vrijednost -100000 tako je, primjerice, kodirana kao -34464. Nonce vrijednosti u timestamp zahtjevima i svi ostali predznačni integeri te veličine sada se ispravno kodiraju
Version 3.114.10
Ispravljeno (Fixed)
- PDF/A validacija nikad nije prijavljivala dio pravila o transparentnosti iz ISO 19005-1 §6.4 koji se odnosi na konstantnu alfu. Helper gradi ključ pretraživanja tako da ispred doda solidus, a pozivatelj je proslijedio svoj, pa je tražio
//CAi nije pogodio ništa. Obje alfa provjere prihvatile su i samo točne tekstove1i1.0, pa je u potpunosti neprozirno/CA 1.00bilo označeno kao povreda; vrijednost jedan sada se prepoznaje bez obzira na zapis
Version 3.114.9
Ispravljeno (Fixed)
- URI akcija na razini stranice vraćala je pokvaren tekst. Putanja stiže iz nativnog sloja kao UTF-8 bajtovi i upisivana je izravno u wide string, koji bajtove spara u 16-bitne code unite, a ostatak buffera ostaje s onim što je u toj memoriji već stajalo.
GetPageActionURIsada dekodira bajtove na isti način na koji to već radi kodni put akcije na razini dokumenta
Version 3.114.8
Sigurnost (Security)
- Na targetima koji nisu Windows slučajni bajtovi iza svakog ključa za šifriranje, salta i inicijalizacijskog vektora dolazili su iz runtime PRNG-a, čiji je seed konstanta osim ako program pozove
Randomize. Svaki je proces zato proizvodio isti ključ za šifriranje datoteka, iste/UEi/OEsaltove, iste/Permsbajtove i iste AES-GCM nonce vrijednosti, zbog čega je šifrirani izlaz Free Pascal builda na Linuxu ili macOS-u trivijalno obnovljiv, a pod fiksnim ključem se ponavlja GCM nonce. Bajtovi sada dolaze iz/dev/urandom, a nedostupan kernel pool baca iznimku umjesto da se vraća na fallback, onako kako je to na Windowsima već radio nedostupanCryptGenRandom
Version 3.114.7
Ispravljeno (Fixed)
- Neispravno oblikovan object stream mogao je natjerati ulazne točke kompresije i popravka da čitaju iza kraja dekodiranog buffera. Offsetovi članova koje stream deklarira sada se, čim se parsira header, provjeravaju po rasponu i rastućem redoslijedu, deklarirani broj članova veći od onoga što header može nositi odbija se prije nego što se išta rezervira u memoriji, a bajt raspon svakog člana validira se prije odrezivanja njegovog pratećeg whitespacea, a ne poslije
Version 3.114.6
Ispravljeno (Fixed)
- Izdvajanje inline slika davalo je neupotrebljiv image XObject. Rječnik je zapisan s viškim solidusom ispred prvog ključa, čime je otvoreno prazno ime i svaki je ključ potisnut na vrijednost prethodnog ključa, a tablica inline kratica mapirala je Decode na
Gumjesto naD, pa je/Dniz otpao, a kratica vrijednosti DeviceGray protumačena je kao ključ. Slike izvučene iz content streama sada nose dobro oblikovan rječnik i zadržavaju svoj Decode niz
Version 3.114.5
Ispravljeno (Fixed)
- HarfBuzz shaper dodjeljivao je duljine klastera krivim glifovima u right-to-left runovima, a glifovima koji dijele isti klaster, poput dijakritika i dijelova ligatura, dodjeljivao je duljinu jedan.
ClusterLengthsvakog glifa sada se proteže od početka njegovog klastera do sljedećeg klastera u logičkom redoslijedu, u oba smjera, pa mapiranje znakova na glifove za arapski i hebrejski tekst podudara se s onim što javlja Uniscribe backend
Version 3.114.4
Ispravljeno (Fixed)
- libcurl transport za timestamp proslijeđivao je svoje numeričke opcije i čitao HTTP statusni kod kao 32-bitne vrijednosti, dok libcurl prima i vraća C
long, koji je na Linuxu i macOS-u 64-bitan. Upit statusa mogao je prebrisati četiri bajta pored svog cilja na stogu, a vrijednosti opcija ovisele su o tome što je slučajno stajalo u gornjoj polovici registra. Obje stvari sada koriste širinu platformskoglong, pa jeFPdfTsaFpcispravan na LP64 targetima
Version 3.114.3
Ispravljeno (Fixed)
- PKCS#11 backend kopirao je sirove bajtove oznake token objekta izravno u string, što na Delphiju znači UTF-8 bajtove na UTF-16 code unitima. Certifikat odabran preko
TPdfPkcs11Options.CertificateLabeltime se nikada nije mogao poklopiti, aEnumerateCertificatesjavljao je pokvareneLabelTextvrijednosti. Oznake se sada dekodiraju kao UTF-8 koji standard definira, a PIN koji se predajeC_Loginkodira se u UTF-8 umjesto da se sužava kroz code page domaćina, pa ne-ASCII PIN stiže do tokena netaknut
Version 3.114.2
Ispravljeno (Fixed)
- macOS Keychain potpisnik pitao je
SecKeyIsAlgorithmSupportedza krivu operaciju kad odlučuje prima li ključ RSASSA-PSS: upit je naveo operaciju dešifriranja umjesto potpisivanja, pa je odgovor uvijek bio ne i svaki RSA potpis tiho je padao na PKCS#1 v1.5. Ključ koji podržava PSS sada potpisuje s PSS, kako tražiTPadesSignerOptions.PaddingScheme, a argument operacije predaje se u širini koju framework deklarira
Version 3.114.1
Ispravljeno (Fixed)
- Ugniježđeni parovi zagrada u right-to-left tekstu razrješavali su se u krivom smjeru. UAX #9 pravilo BD16 obrađuje parove prema redoslijedu njihovih otvorenih zagrada, a par razriješen pravilom N0 postaje prethodeći jak kontekst za par koji se otvara nakon njega; parovi su umjesto toga obrađivani prema redoslijedu kojim su ih zatvarale zatvorene zagrade, pa je unutarnji par mogao slijediti slovo koje okružuje umjesto konteksta koji je uspostavio vanjski par. Tekst poput arapske ili hebrejske rečenice s zagradom unutar zagrada sada se slaga onako kako čitatelj očekuje
Version 3.114.0
Dodano (Added)
FPdfCryptoSslverificira PDF potpise i timestamp tokene kroz OpenSSL, čime je zatvorena posljednja platformska rupa u validaciji potpisa: Linux nije imao nikakav CMS backend za verifikaciju.ConfigureSslCmsVerifierga instalira, libcrypto se u runtimeu dohvaća po imenu pa se ništa ne linka protiv njega, i vezuju se i serija 1.1 i serija 3.x- Potpis i lanac certifikata vrednuju se u odvojenim prolazima, pa se ispravan potpis nad lancem koji ne doseže trust anchor javlja kao valjan potpis s nevažećim povjerenjem, a ne kao pokvaren potpis
ConfigureSslTrustAnchorsdodaje DER trust anchorove u sistemski store, aConfigureSslCrlsdostavlja CRL-ove koje provjera opoziva smije pregledati. Opoziv se računa kao provjeren samo kad je CRL stvarno prisutan, jer OpenSSL sam ne dohvaća ništa; ako nijedan nije dostavljen, rezultat javlja unsupported umjesto da propusti neprovjeren lanacSslAvailable,SslMissingSymbols,SslLibraryPath,SslLibraryVersioniSslAbiLayoutizvještavaju što se vezalo, a što nije, aConfigureSslLibraryPathusmjerava backend na konkretnu biblioteku kad ju platformski defaulti ne pronađu
Version 3.113.0
Dodano (Added)
TPdfKeychainCmsVerifierverificira PDF potpise i timestamp tokene na macOS-u krozCMSDecoderi SecTrust, pa validacija potpisa više nije Windows-only.ConfigureKeychainCmsVerifierga instalira, a ista jedinica sada pokriva obje polovice macOS podrške, onako kakoFPdfCryptoWinto radi za Windows- Provjera opoziva se poštuje: kad se zatraži, politika opoziva pridružuje se osnovnoj X.509, a isključivanje online dohvaćanja ograničava vrednovanje na keširane odgovore. Progress checkpointi okidaju za faze potpisa, lanca, online dohvaćanja i opoziva točno onako kako ih javlja Windows backend
KeychainVerificationAvailableizvještava o podršci za verifikaciju odvojeno od potpisivanja, jer te dvije stvari trebaju različite framework simbole i jedna može postojati bez druge
Version 3.112.0
Dodano (Added)
FPdfCryptoMacpotpisuje PAdES macOS Keychain identitetom, pandan Windows certificate storeu: certifikat i njegov privatni ključ dolaze iz Keychaina, a potpis stvaraSecKeyCreateSignature, pa ključ nikad ne napušta sistemski keystore.ConfigureKeychainSignerProviderga instalira, i nijedan modul ne treba se distribuirati uz aplikaciju, kao što bi trebalo za PKCS#11 token backend- Potpisnik slijedi certifikat: EC ključ potpisuje ECDSA, RSA ključ potpisuje RSASSA-PSS, a tamo gdje PSS nije dostupan - stariji macOS ili ključ koji ga neće prihvatiti - padding pada na PKCS#1 v1.5, a emitirani AlgorithmIdentifier to i kaže umjesto da tvrdi PSS
KeychainMissingSymbolsizlistava svaki framework simbol koji se nije uspio razriješiti, pa deployment koji javlja da backend nije dostupan može razlikovati odsutan framework od imena koje je ovo binding krivo naveo
Version 3.111.0
Dodano (Added)
ConfigurePadesCmsVerifierinstalira CMS backend za verifikaciju koji koristi PAdES validator, pa provjera potpisa i timestampa više nije vezana uz Windows.IPdfCmsVerifierdeklarira dvije operacije na koje backend odgovara - detached za PDF potpis, attached za timestamp token - aPadesCmsVerificationAvailablejavlja postoji li ijedan backend
Promijenjeno (Changed)
- Recordi rezultata i opcija verifikacije preseljeni su u
FPdfCryptokaoTPdfCmsVerify*. ImenaTWinCmsVerify*ostaju kao aliasi, pa postojeći kod i dalje radi i priključeni backend govori iste tipove kao i Windows backend - Ponašanje na Windowsima je nepromijenjeno: bez instaliranog verifikatora i dalje koristi CryptoAPI, a progress checkpointi, opcije opoziva i nativni error kodovi isti su. Tamo gdje se ne javlja nijedan backend, svaka presuda javlja unsupported umjesto da ostane neprovjerena
Version 3.110.0
Dodano (Added)
FPdfPkcs11potpisuje PAdES ključem koji ostaje unutar PKCS#11 tokena.ConfigurePkcs11SignerProviderga instalira kao signing backend, modul se u runtimeu učitava po putanji pa se ništa ne linka, a isti kod opslužuje Windows, Linux i macOS. Enumeracija tokena koju deklarira sučeljeIPdfPkcs11SignerProviderimplementirana je uz njega: slotovi, tokeni i certifikati koje svaki od njih drži- Potpisivanje izvan Windowsa za uobičajeni slučaj više ne treba provider kojeg dostavlja host: dovoljan je token modul plus
TPdfPkcs11Options. RSA PKCS#1 v1.5, RSASSA-PSS i ECDSA svi se proizvode kroz token FPdfSha1dodaje SHA-1 u jednu svrhu: pronalaženje certifikata po thumbprintu koji nosiTPadesSignerOptions. Windows je to rješavao unutar certificate storea; token vraća bajtove certifikata i usporedbu prepušta pozivatelju. Nije to digest za potpisivanje i PAdES stack i dalje posvuda potpisuje SHA-256
Promijenjeno (Changed)
- DER helperi za certifikate koji čitaju OID algoritma javnog ključa, izvlače issuer i serial te prepakuju sirovi ECDSA potpis preseljeni su iz Windows backenda u
FPdfCms, gdje im može prići svaki signing backend
Version 3.109.0
Promijenjeno (Changed)
- Nativni loader biblioteka više nije vezan uz Windows.
LibraryNamepo defaultu jepdfium.dll,libpdfium.soililibpdfium.dylibovisno o targetu, V8 build traži se pod odgovarajućim imenom, a učitavanje i vezivanje simbola na Free Pascalu idu preko portabilnog loadera. Ponašanje na Windowsima je nepromijenjeno, uključujući Win32 i Win64 deployment raspored i dijagnostiku nepodudarne arhitekture - Deployment direktoriji na ostalim targetima slijede
<cpu>-<os>zapis koji već koriste kompajlirane jedinice, paDLLs/x86_64-linux/libpdfium.sostoji uzLib/FPC/x86_64-linux. Fallback na sistemski direktorij ostaje Windows-only; drugdje to pokriva loaderov search path
Version 3.108.0
Dodano (Added)
TPdfHarfBuzzTextShaperoblikuje bidirekcionalni i complex-script tekst na Free Pascal targetima koji nemaju Uniscribe. Embedding razine razrješava putemFPdfBidi, runove segmentira po pismu, svaki run oblikuje libharfbuzzom i runove slaže u vizualnom redoslijedu. Instalira se prekoConfigureTextShaper; libharfbuzz se dohvaća u runtimeu, aHarfBuzzAvailablepošteno javlja kad ga nema- Shaper ne enumerira fontove. Uniscribe čita binarni sadržaj fonta iz device contexta, za što ne postoji portabilna zamjena, pa host predaje
TPdfFontDataResolverkoji mapira ime fonta na bajtove datoteke fonta i tu politiku drži tamo gdje joj je mjesto
Version 3.107.0
Dodano (Added)
FPdfBidiimplementira Unicodeov bidirekcionalni algoritam (UAX #9) u čistom Pascalu:PdfResolveBidiLevelsvraća jednu embedding razinu po UTF-16 code unitu,PdfBidiVisualOrderprimjenjuje L2 prerasporedu, aPdfBidiClassOfotkriva Bidi_Class kodne točke. Pokrivena su pravila P2-P3, X1-X10, W1-W7, N0-N2, I1-I2 i L1-L2, uključujući isolate initiatore i BD16 bracket parove- Jedinica je neovisna o kompajleru i platformi, i upravo to omogućuje da se bidirekcionalni tekst slaže tamo gdje Uniscribe nije dostupan. Shaping engine rješava glifove za run čiji je smjer već poznat, pa je ovo upravo onaj komad koji prvi mora odlučiti o smjeru
Version 3.106.0
Dodano (Added)
ConfigureTextShaperpostavlja text shaping backend kroz koji sada prolazi cijela knjižnica, uz njega dolaze iActiveTextShaper,ActiveTextShaperNameiClearTextShaper. IShapePdfTextiTPdf.AddShapedTextsada koriste instalirani shaper umjesto da izravno stvaraju Uniscribe primjerak, pa host može uključiti vlastiti engine, a test deterministički
Promijenjeno (Changed)
FPdfTextShapingse sada kompajlira i na ciljevima izvan Windowsa: Uniscribe backend je sada platformski default umjesto jedine implementacije i ograničen je na Windows build. Tamo gdje nema dostupnog backenda, shaping entry pointi to javljaju umjesto da kompajliranje propadne
Version 3.105.1
Sigurnost (Security)
- Odgovor timestamp servisa sada je na oba transporta ograničen na 4 MB. TSA koji je i dalje slao mogao je ranije primopredajni buffer povećavati bez ikakvog limita, pa bi poziv za potpisivanje prerastao u neograničen rast memorije
Version 3.105.0
Dodano (Added)
- RFC 3161 timestamping radi i na Free Pascal ciljevima izvan Windowsa: novi libcurl backend šalje TimeStampReq i čita TimeStampResp, pa
PadesTsaAvailablejavlja True, a PAdES B-T, B-LT i B-LTA mogu tamo dobivati tokene. libcurl se razrješava u vrijeme izvođenja i nije build-time ovisnost; kad ga nema, backend javlja da je nedostupan, točno kao i WinHttp varijanta. Windows i dalje koristi WinHttp i nije pogođen - Potpisivanje na tim ciljevima i dalje treba materijal ključa koji knjižnica ne posjeduje: dostavite ga kroz
ConfigurePadesSignerProvidersIPadesSignerProvidersučeljem (iliIPdfPkcs11SignerProviderza ključe potkrijepljene tokenom), jer jeFPdfCryptoWinsamo za Windows
Version 3.104.1
Dodano (Added)
- XFA inspection lab primjer je sada dostupan i za Lazarus, pa se XFA capability probe, ispis paketa, izvoz paketa i
OnXfaRuntimeMissingfallback mogu isprobati iz LCL builda
Version 3.104.0
Promijenjeno (Changed)
- Knjižnica se na Free Pascalu 3.2 kompajlira čisto, bez izbjegivih dijagnostika: interno mjerenje vremena čita milisekundni tick iz
GetTickCount64umjesto zastarjelog 32-bitnog poziva, zastarjeli SSE control-word pristupnici zamijenjeni su sGetMXCSRiSetMXCSR, offset baza sadržajnog otiska sada je izričito tipizirana pa više ne okida compile-time provjeru raspona, a adrese scanlinova uspoređuju se kao nepredznačeni pokazivači kad se bitmapa provjerava za top-down raspored
Version 3.103.1
Ispravljeno (Fixed)
- Metapodaci dokumenta koji završe u XMP-u na Free Pascalu sada čuvaju i znakove izvan ASCII-a: naslovi, autori, teme, ključne riječi i imena stvaratelja koji stignu do
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRiSaveAsPdfVTkonvertiraju se preko codepagea stringa umjesto da se kopiraju bajt po bajt, pa XMP paket ostaje valjan UTF-8, kako traži ISO 19005-1 6.7.2, čak i kad host program ne radi na UTF-8 codepageu - XFDF izvoz, povratne round-trip provjere produkcijskih metapodataka i parsiranje trusted-list XML-a koriste istu codepage-ispravnu konverziju, pa tekst koji putuje između
TBytesistringviše ne ovisi o codepageu hosta
Version 3.103.0
Dodano (Added)
TPdfEuropeanTrustedListparsira autentificirane europske trusted liste, ponovno učitava cache-ove s kontrolnim zbrojevima kroz isti autentifikator, prihvaća update izvore koje dostavi pozivatelj, izlaže aktualne trust anchor-e i vrednuje qualified signature servise na zatraženo vrijeme validacijeTPadesTrustValidationOptions.QualifiedTrustEvaluatorprimjenjuje offline qualified-trust politiku na svakog validiranog potpisnika, a da PAdES validatoru pritom ne doda mrežni pristup
Version 3.102.0
Dodano (Added)
BeginIncrementalSaveiCommitIncrementalSavesada dodaju autentificirane revizije AES-256 šifriranim dokumentima uz očuvanu originalnu/Encryptreferencu, sigurnosne parametre, točne generacije objekata i sve ranije bajtove
Promijenjeno (Changed)
- File commit overload sada trajno flusha i striktno ponovno otvara pomoćnu datoteku u istom direktoriju, provjerava njenu granicu revizije i atomski zamjenjuje cilj, uz rollback sesije nakon bilo kojeg neuspjeha
Version 3.101.0
Promijenjeno (Changed)
SaveAsRedactedsada čuva sigurne dijelove tekstova, pravokutnih path-ova i slika poravnatih s osima kad se oni s područjem presijecaju samo djelomično, a zatim uklanja imena resursa na koja više ne upućuje nijedna stranica, Form XObject, pattern, appearance ni ugniježđeni resource opsezi
Version 3.100.0
Promijenjeno (Changed)
OptimizeImagessada bira box, bilinearni, bikubični, Lanczos ili bilevel resampling na temelju skale, klase sadržaja, izmjerene razine detalja i kvalitete koju zada pozivatelj, uz alpha-svjesno filtriranje i strogi budžet radne memorije
Version 3.99.0
Dodano (Added)
GraftPdfAcroFormuvozi hijerarhijska AcroForm polja, widget-e, appearance-e, redoslijed izračuna, default resurse, akcije i vrijednosti kroz eksplicitna mapiranja stranica i politike sudaraTPdfCrossDocumentGraftMapponovno koristi uvezene indirektne objekte prema identitetu izvora, uz očuvane cikluse, dijeljene reference, točne generacije izvora i transakcijsku semantiku neuspjeha
Version 3.98.0
Dodano (Added)
TPdfOutlineEditorstvara, premješta, briše, stilizira, širi i preusmjerava outline stavke, remapira eksplicitne destinacije kroz rezultate page plana i dodaje inkrementalnu reviziju s neovisnom verifikacijom
Version 3.97.0
Dodano (Added)
TPdfTreeEditorčita, validira, ažurira, balansira, dijeli, spaja, serijalizira i inkrementalno sprema proizvoljne PDF NameTree i NumberTree strukture, uz očuvane ponovno upotrebljive indirektne reference i sirove vrijednosti unosa
Version 3.96.0
Dodano (Added)
TPdfParserResourceBudgetdaje jednu thread-safe politiku na razini procesa za rekurziju, tokene, objekte, dekodirane bajtove, omjer širenja, alokaciju i rokove u vlastitim PDF parserima, uz nepromjenjive snapshotove po operaciji i konfigurabilne defaulte
Version 3.95.0
Promijenjeno (Changed)
ValidatePdfXsada validira aktivne PDF/X rječnike, metapodatke, output intent-e, fontove, zabranjene značajke, transparentnost, prostore boja i page box-ove kroz ograničena sparse čitanja na nešifriranim dokumentima s valjanim xref-om
Version 3.94.0
Promijenjeno (Changed)
ValidatePdfRsada validira aktivne PDF/R rječnike, stranice, filtere slika, metapodatke i footer markere kroz ograničena sparse i windowed čitanja na nešifriranim dokumentima s valjanim xref-om
Version 3.93.0
Promijenjeno (Changed)
ValidatePdfEsada validira aktivne PDF/E rječnike, metapodatke, output intent-e, forme i zabranjene značajke kroz ograničena sparse čitanja na dokumentima s valjanim xref-om
Version 3.92.0
Promijenjeno (Changed)
ValidatePdfVTsada obavlja naprednu analizu opsega, vidljivosti, inkapsulacije i ugniježđene upotrebe Form objekata za recurring XObject-e kroz ograničena sparse čitanja na dokumentima s valjanim xref-om
Version 3.91.0
Dodano (Added)
TPdfSparseDictionaryReadermože razriješiti aktivnu generaciju objekta i dekodirati direktni stream unutar limita u bajtovima koji zada pozivatelj
Promijenjeno (Changed)
ValidatePdfVTsada koristi ograničena sparse čitanja za provjere PDF/VT metapodataka, DPart-a, OutputIntent-a, Info objekta, stranica i običnih rječnika na uobičajenom putu s valjanim xref-om
Version 3.90.0
Dodano (Added)
TPdfSparseDictionaryReaderdrži jedan sparse xref i object-stream indeks otvorenim radi ponovljenih ograničenih čitanja rječnika indirektnih objekata
Promijenjeno (Changed)
InjectPdfVTMarkerssada validira i čuva postojeću PDF/VT DPart hijerarhiju uz ograničena čitanja izvora, dok neispravne hijerarhije i dalje prolaze kroz fallback s ponovnom izgradnjom
Version 3.89.0
Dodano (Added)
ReadPdfSparsePageDictionariesvraća identitete page objekata i ograničene količine bajtova rječnika u redoslijedu page tree-a, kroz sparse indeks objekata
Promijenjeno (Changed)
InjectPdfVTMarkerssada sintetizira PDF/VT DPart hijerarhiju i dodaje marker objekte uz ograničena čitanja izvora kad spremljeni PDF već ne sadrži DPart hijerarhiju
Version 3.88.0
Dodano (Added)
ReadPdfSparseCatalogSubDictčita direktan ili indirektan sub-rječnik kataloga kroz sparse indeks objekata; koristi ga injekcija PDF/UA markera zaMarkInfoiViewerPreferences
Promijenjeno (Changed)
InjectPdfUaMarkerssada razrješuje kataloškeMarkInfoiViewerPreferenceskroz sparse lookup i dodaje PDF/UA reviziju uz ograničena čitanja izvora na uobičajenom xref putu
Version 3.87.0
Dodano (Added)
AppendPdfSparseUpdateupisuje jednu sparse reviziju u spremljeni PDF: izvorne bajtove netaknute, tijela objekata koje dostavi pozivatelj na zabilježenim offsetima te jedan inkrementalni xref/trailer blok ulančan preko/PrevNormalizePageViewRectnormalizira dva mapirana kuta u page prostoru u vidljivi pravokut stisnut na stranicu, ili javlja da se od stranice ne vidi ništa- Injekcija PDF/E markera sintetizira svjež Info objekt s
/ISO_PDFEVersionkad izvorni dokument nema Info rječnik
Promijenjeno (Changed)
- Injekcija PDF/E, PDF/X i PDF/R markera sada razrješuje katalog, Info i trailer kroz sparse lookup i dodaje revizije kroz
AppendPdfSparseUpdateuz ograničena čitanja izvora na uobičajenom xref putu - Form-fill callback
FFI_GetPageViewRectsada javlja dio stranice koji je stvarno vidljiv u pridruženomTPdfViewumjesto uvijek cijelog page box-a, a za headless dokumente vraća se na dimenzije stranice TPdf.AboutInfo, metapodaci Lazarus paketa i installer metapodaci sada dosljedno javljaju Version 3.87.0
Ispravljeno (Fixed)
- Kontrolne točke segmenata path-a, izložene još od bindinga
FPDFPath_GetBezierControlPoints, nikad nisu bile popunjene: nativni export odgovara samo za endpoint indeks svake kubike s tri unosa, pa se upit sada obavlja jednom po krivulji i sva tri unosa nose kontrolne točke te krivulje
Version 3.86.0
Dodano (Added)
ReadPdfSparseRevisionInfoizlaže ograničene podatke o najnovijoj reviziji, katalogu, šifriranju, document ID-u i tagged strukturi, namijenjene stream postprocesorimaComposePdfSparseUpdateIdčuva ili izvodi identifikatore dokumenta za inkrementalni update, a da pritom ne materijalizira kompletan izvorni PDF
Promijenjeno (Changed)
InjectPdfAMarkerssada razrješuje katalog i trailer kroz sparse lookup, kopira velike ulaze u ograničenim komadima i dodaje PDF/A reviziju bez alokacije bajt-polja veličine izvora na uobičajenom xref putu- Injekcija PDF/A markera čuva klasični ili xref-stream stil izlaza, generacije kataloga i Info objekta, trailer identifikatore, ponašanje pri odbijanju šifriranih dokumenata i pravila downgradea na Level A
Version 3.85.0
Dodano (Added)
SanitiseActiveContentPdfStreamprihvaća prune workspace u vlasništvu pozivatelja za vlastita ograničena ili diskom poduprta skladišta
Promijenjeno (Changed)
- Sanitizacija aktivnog sadržaja sada ažurira katalog i trailer kroz sparse lookup, ograničene parser prozore i kopiranje raspona fiksne veličine, umjesto da na uobičajenom xref putu učita kompletan PDF u jedno bajt-polje
TPdf.SaveAsSanitisedprimjenjujeSaveMemoryLimitiSaveTemporaryDirectoryna svoj prune workspace i javlja njegove spill dijagnostike
Ispravljeno (Fixed)
StripMetadata=Truesada uklanja trailer referencu/Infočak i kad katalog nema/Metadataunos
Version 3.84.0
Promijenjeno (Changed)
TPdf.PdfVersionsada ponovno koristi stanje PDFium parsera krozFPDF_GetFileVersionumjesto da ponovno parsira kompletan izvorni PDF- Upiti verzije čitaju najviše osmerobajtni PDF header kako deformirana deklaracija u katalogu ne bi snizila efektivnu verziju
Version 3.83.0
Promijenjeno (Changed)
PageLabelledPdfStreamsada razrješuje i ažurira katalog kroz ograničene stream prozore i sparse lazy indeks objekata- Izlaz s page labelima kopira velike izvorne PDF-ove u rasponima fiksne veličine umjesto da alocira kompletno bajt-polje dokumenta na uobičajenom xref putu
Version 3.82.0
Promijenjeno (Changed)
ApplyDefaultOpenActionsada čita klasične, xref-stream, hybrid i object-stream revizije kroz sparse lazy object indeks, uključujući dokumente s vrlo velikim brojevima objekata- Obrada zadane open akcije koristi prozore fiksne veličine i kopiranje ograničenih raspona umjesto učitavanja kompletnog PDF-a u jedan niz bajtova
Version 3.81.0
Dodano (Added)
PostProcessSavedPdfprihvaća tri seekable radna prostora u vlasništvu pozivatelja, za vlastite memorijske limite i obradu s pohranom na disku
Promijenjeno (Changed)
TPdf.SaveAsprimjenjujeSaveMemoryLimitiSaveTemporaryDirectoryna svaki radni prostor post-processinga spremljenog PDF-a i uključuje njihove spill podatke u dijagnostiku- Inkrementalni native popravak xref-streama koristi prozore fiksne veličine za rep i rječnik s ograničenim kopiranjem raspona, umjesto nizova bajtova cijele datoteke i ponovljenih realokacija cijele datoteke
Version 3.80.0
Dodano (Added)
ReadAttachmentMetadatau jednoj ograničenoj native enumeraciji uhvati nazive privitaka, opise, MIME podtipove, dekodirane veličine i čitljivostExtractAttachmentsToStreamszapisuje batch u streamove u vlasništvu pozivatelja, s limitima bajtova po datoteci i ukupno, konfigurabilnim write chunkovima, otkazivanjem i rezultatima po stavci
Promijenjeno (Changed)
- Batch ekstrakcija zadržava najviše jedan dekodirani privitak u memoriji PDFiumPasa, umjesto da materijalizira svaki payload u batchu
Version 3.79.0
Dodano (Added)
TPdfCacheGovernor,TPdf.CacheBudgetBytes, upiti o upotrebi po vrsti i telemetrija koordiniraju zadržanu cache memoriju kroz jedan thread-safe globalni LRU budžet bajtovaTPdfTileCachei cache sistemskih fontova na razini procesa mogu se priključiti governoru kojeg odabere pozivatelj, uz točno evidentiranje bitmapa i font-bajtova
Promijenjeno (Changed)
- Parsirane scene stranica, thumbnailovi, podaci strukture, text snapshotovi i page-object snapshotovi sada se natječu pod zadanim
TPdfbudžetom od 256 MiB, uz zadržavanje postojećih limitova broja unosa - Aktivne scene stranica ostaju pinned dok renderanje ne završi, a neprozirne native scene stranica koriste eksplicitno procijenjeni trošak jer PDFium ne izlaže konfigurabilni API za ukupne cache bajtove
Version 3.78.0
Dodano (Added)
TPdfLayoutPagedPlan,TPdfLayoutDocument.BuildPagedPlaniTPdf.GeneratePagedLayoutstrujaju layout naredbe u seekable storage kojeg odabere pozivatelj i materijaliziraju jednu stranicu u jednom trenutku
Promijenjeno (Changed)
- Veliki generirani layouti mogu spillati naredbe u privremenu pohranu, zadržavati konfigurabilni LRU cache stranica, obnavljati neuzastopne segmente zaglavlja i podnožja te otpuštati wrapped text nakon svake stavke toka
Version 3.77.0
Dodano (Added)
TPdfLayoutTable, redovi, ćelije i tablične opcije dodaju tablice koje prelaze preko stranica, s razriješenim grid trackovima, naslovima, ponavljanim header redovima, dijeljivim body redovima, linkovima i konfigurabilnim rubovima
Promijenjeno (Changed)
- Generirane tagged tablice očuvaju jednu kontinuiranu Table / TR / TH / TD strukturu kroz stranice, drže grupe koje se protežu preko redova atomičnima i automatski povezuju podatkovne ćelije s header ID-jevima
Version 3.76.0
Dodano (Added)
TPdfLayoutConstraintsiSetLastItemConstraintsdodaju u generirane layoute keep-together, keep-with-next, fizički page-break-before / after i konfigurabilnu kontrolu widow / orphan redaka
Promijenjeno (Changed)
BuildPlanponovno koristi svaki wrapped text rezultat za predviđanje paginacije i emitiranje naredbi, čime sprječava da keep-with-next ponavlja mjerenje teksta
Version 3.75.0
Dodano (Added)
TPdf.InspectPdfUaUnicodeCoverageizvještava o ograničenoj evidenciji na razini objekata za izravna Unicode mapiranja,ActualTextzamjene, greške mapiranja, nedostajuće Unicode vrijednosti i neriješene izvorne objekte
Promijenjeno (Changed)
TPdf.ValidatePdfUasada ponovno koristi jedno skeniranje znakova u opsegu objekta koje isključuje Artifact i generirane znakove te sprječava daActualTextjednog text objekta zakloni susjedni sadržaj
Version 3.74.0
Promijenjeno (Changed)
ValidatePdfUaPageContentTaggingiTPdf.ValidatePdfUasada prijavljujupvuaiArtifactInStructureTreekada neki MCID iz stabla strukture prisvoji Artifact page objekt, uključujući paginacijske artifacte temeljene na putanji- Skeniranje page sadržaja za PDF/UA sada short-circuita tek nakon što otkrije i netagirani stvarni sadržaj i neispravno sadržavanje Artifacta, čime očuva pokrivenost kroz stranice bez ponavljanja već obavljenih provjera
Version 3.73.0
Dodano (Added)
TPdf.InspectPdfUaLanguageCoverageizvještava o ograničenoj evidenciji page objekata i strukturnih stringova za segmente prirodnog jezika, uključujući efektivni jezik, izvor deklaracije, MCID, indeks strukture i izvatke tekstaResolvePdfUaEffectiveLanguagerazrješuje deklaracije jezika iz marked-contenta, najbližeg strukturnog pretka i kataloga, uz eksplicitnu evidenciju valjanosti
Promijenjeno (Changed)
TPdf.ValidatePdfUasada prijavljujepvuaiNaturalLanguageUncoveredkada non-artifact tekst ili accessibility stringovi nemaju valjanu efektivnu deklaraciju/Lang
Version 3.72.0
Dodano (Added)
TPdf.InspectPdfAMetadataizvještava o tipiziranoj evidenciji ekvivalencije po polju za svih osam ISO 19005-1 Info-to-XMP mapiranja, uključujući eksplicitne prazne vrijednosti i greške parsiranja datumaTPdf.NormalizePdfAMetadatapopravlja samo neusklađena mapirana XMP svojstva, uz očuvanje nepovezanih namespaceova i jezičnih alternativa koje nisu default
Promijenjeno (Changed)
TPdf.ValidatePdfAsada prijavljujepvaiInfoXmpValueMismatchkada se Info vrijednosti dekodirane PDFiumom razlikuju od ispravno tipiziranih XMP vrijednosti nakon Unicode usporedbe ili usporedbe datuma koja uzima u obzir vremensku zonu
Version 3.71.0
Dodano (Added)
InspectPdfVT2sStreamvraća evidenciju uvjeta ispisivanja za svaki PDF/VT MIME part, uključujući identitet OutputIntenta, podrijetlo embedded ili MIME profila, ICC hashove i činjenice iz headera te brojeve stranica i zapisa u DPartuFPdfIccProfilenudi ograničeni pregled ICC headera i tablice tagova, uz podršku za MD5, SHA-256, prostore boja, verziju, device class, profile-ID i višejezične opise profila
Promijenjeno (Changed)
- Validacija PDF/VT-2s sada razrješuje ranije ICC MIME privitke kroz
DestOutputProfileRefURL file specificacije i validiraCheckSum,ICCVersion,ProfileCS,ProfileName, device class i dozvoljene process prostore boja - Svi PDF/VT partovi sada zahtijevaju jedan autoritativni
GTS_PDFXOutputIntent, pakiranje embedded ili eksternog profila prikladno za PDF/X bazu te isti karakterizirani uvjet ispisivanja, dok PDF/X-only privitci ostaju izvan PDF/VT usporedbi - Validacija PDF/VT-2 u jednoj datoteci sada prepoznaje
DestOutputProfileRefkao eksterni odredišni profil, umjesto da ga prijavi kao nedostajući
Version 3.70.0
Promijenjeno (Changed)
- PDF/VT validacija sada provjerava
GTS_Scope,GTS_XID,GTS_EnviGTS_Encapsulatedizravno na svakom XObjectu, umjesto da dopusti obližnjim ili ugniježđenim rječnicima da zadovolje hint zahtjeve Recordopseg sada razrješujeRecordLeveliz indirektnogDPartRootrječnika, dok jeStreamopseg odbijen u PDF/VT-1 datotekama- Dekodirani content streamovi stranica i Form XObjecta sada validiraju vidljivost
Doresursa, broj pojavljivanjaSingleUsei vlasništvo nad recipient zapisima kroz efektivne naslijeđene resurse i DPart hijerarhiju - Encapsulated XObjecti sada validiraju boolean oblik, preporučeni opseg, Image
Intent, izolirane transparency grupe, blending prostore boja te izravne ili ugniježđene optional-content ovisnosti
Version 3.69.0
Promijenjeno (Changed)
- PAdES validacija sada odbija duplikate unosa
Contents,ByteRange,SubFilter,FilteriType, umjesto da prihvati vrijednost koju odabere parser - Otkrivanje potpisa sada koristi linearno skeniranje rječnika svjesno streamova, prepoznaje escaped PDF name tokene i ne može biti preusmjereno zatvorenim ugniježđenim rječnikom postavljenim prije stvarnog
ByteRangea - Validacija
ByteRangea potpisa sada zahtijeva da isključeni gap točno odgovara izravnom heksadecimalnomContentstokenu, uz i dalje dopuštene kasnije incremental revizije - Rječnici potpisa sada zahtijevaju jedan
Filters vrijednošću imena i nameću konzistentne kombinacije tipa i subfilteraSigiliDocTimeStamp
Version 3.68.0
Dodano (Added)
TPdf.BuildPadesEvidenceReportmeđusobno povezuje činjenice o PDFium potpisima, CMS politiku, status trusta i timestampa, hashove certifikacijskog puta, DSS/VRI pokrivenost i odluke kasnijih revizija za svaki potpisTPadesEvidenceReportizvozi ograničenu evidenciju za više potpisa kao JSON ili CSV te izvještava telemetriju izvora, potpisa, DSS-a, revizija i skraćivanja
Promijenjeno (Changed)
- Validacija trusta za PAdES sada bilježi SHA-256 identitete certifikata potpisnika i poredanog Windows certifikacijskog puta, uz zadržano offline validiranje po defaultu
- Generiranje evidencije ponovno koristi jedan zadržani snimak izvornih bajtova kroz analizu usklađenosti, trusta, DSS-a i revizija, umjesto da kopira izvorni PDF u novi stream za svaku fazu
Version 3.67.0
Dodano (Added)
TPadesSignatureFieldOptionsstvara konfigurabilne nazive signature polja, obavezne seed vrijednosti, liste razloga i pravnih potvrda, prihvatljive certifikate potpisnika i zaključavanja polja- Lokalno i udaljeno potpisivanje može kreirati approval ili certification potpise s ISO 32000-1
FieldMDPiDocMDPtransformacijama
Promijenjeno (Changed)
- Certifikacijski potpisi čuvaju postojeće dozvole iz kataloga uz registraciju novog potpisa kroz
/Perms /DocMDP
Version 3.66.0
Dodano (Added)
RenderPageBandedToStreamzapisuje PNG ili TIFF izlaz izravno u stream pozivatelja, s konfigurabilnom visinom banda, PNG kompresijom i limitima izlaznih bajtovaRenderPageBandedToEncoderdostavlja slijedne bandove stranice kodecima koje definira pozivatelj i vraća telemetriju bandova, redaka, memorije, završetka i izlaza
Ispravljeno (Fixed)
RenderPageBandedsada čuva geometriju renderanja cijele stranice i izrezuje svaki zatraženi band, umjesto da preskalira kompletnu stranicu u svaki band
Version 3.65.0
Dodano (Added)
TPdfParallelRenderReportsada izvještava veličinu izvora, vršnu uhvaćenu memoriju, storage backend i vrstu dijeljene pozadinske pohrane
Promijenjeno (Changed)
RenderPagesParalleldijeli uhvaćeni izvor kroz nepromjenjivu memoriju, read-only file mapping ili nasumični pristupFPDF_LoadCustomDocument, umjesto da alocira drugo bajt-polje cijelog dokumenta- Spillani parallel-render izvori ostaju pod
SaveMemoryLimiti više ne zahtijevaju ponovno učitavanje kompletnog PDF-a u adresabilnu memoriju procesa
Version 3.64.0
Dodano (Added)
ImportImposedsada ima overload koji vraćaTPdfImpositionExecutionReports brojačima native importa, jedinstvenih izvora, praznih slotova, XObject predložaka, form objekata, generiranja sadržaja i izlaznih stranica
Promijenjeno (Changed)
- Imposition s nul-geometrijom šalje svaku naručenu izvornu stranicu kroz jedan poziv
FPDF_ImportPagesByIndexprije umetanja praznih stranica i native N-up kompozicije - Imposition s prilagođenom geometrijom ponovno koristi jedan native XObject predložak po jedinstvenoj izvornoj stranici, čita cachirane metrike stranica bez mijenjanja izvorne stranice i unaprijed alocira točnu pohranu plana
Version 3.63.0
Dodano (Added)
BeginPageObjectEditTransaction,CommitPageObjectEditTransactioniRollbackPageObjectEditTransactiongrupiraju native page-object mutacije u atomični batch u opsegu stranice, s validiranim snapshot rollbackomPageObjectEditTransactionStatusizvještava vezanu stranicu, dirty stanje, broj uspješnih mutacija i broj generiranja sadržaja
Promijenjeno (Changed)
- Commitani object batchovi sada pozivaju
FPDFPage_GenerateContentjednom, umjesto jednom po svakom umetanju, uklanjanju, transformaciji, promjeni svojstva, marki, annotation-objektu ili promjeni izgleda - Spremanje, promjene stranice, brisanje stranice, ugniježđene edit transakcije i neuspjeli native insert ili annotation ažuriranja odbijaju se prije nego što odgođeni sadržaj može nestati
Version 3.62.0
Dodano (Added)
ReadPageObjectsSnapshothvata činjenice o page objektima u vlasništvu pozivatelja, s budžetima za objekte, putanje, clipove, marke, tekst, stringove i rokPageObjectsSnapshotnudi LRU ponovnu upotrebu svjesnu revizija, s konfigurabilnim kapacitetom te telemetrijom zauzeća, hitova i promašaja
Promijenjeno (Changed)
PageComplexitysada ponovno koristi nepromjenjivi page-object snapshot, umjesto da ponavlja native enumeraciju objekata te upite za transparentnost, putanje i slike
Version 3.61.0
Dodano (Added)
TPdfsada izlaže jedinstveni thumbnail LRU za embedded i renderirane previewe, s konfigurabilnim limitima unosa i bajtova te telemetrijom hitova, promašaja, istjerivanja, zauzeća i revizijaRenderPageThumbnailprihvaća rotaciju, render opcije, boju pozadine iTPdfColorScheme, uz očuvan ugovor o bitmapama u vlasništvu pozivatelja
Promijenjeno (Changed)
- Ponovljeno vađenje i renderiranje thumbnailova ponovno koristi native PDFium rezultate kroz ključeve revizije, stranice, izvora, veličine, rotacije, flagova, pozadine i sheme boja, uključujući cachiranu odsutnost opcionalnih embedded thumbnailova
TPdfThumbnailViewsinkronizira svoj bitmap cache vidljivih stranica s revizijama thumbnailova dokumenta, tako da izmjene ne mogu ostaviti zastarjele previewe
Version 3.60.0
Dodano (Added)
ReadTextPageSnapshothvata Unicode, UTF-16 mapiranja, geometriju i stil znakova te normalizirane metapodatke text objekata u jednom prolazu, s eksplicitnim budžetima za znakove, objekte, nazive fontova i rokTextPageSnapshotnudi duboke kopije u vlasništvu pozivatelja kroz konfigurabilni LRU svjestan revizija, s telemetrijom kapaciteta, brojača, hitova i promašaja
Promijenjeno (Changed)
GetStructuredTexti physical-layoutGetTextInReadingOrdersada ponovno koriste isti text snapshot i primjenjuju O(n log n) sortiranje geometrije
Ispravljeno (Fixed)
- Manji text i structure snapshot cacheovi sada istjeruju najstariju stranicu dok nove podatke pohranjuju pod zatraženim indeksom stranice, čime sprječavaju cross-page cache aliasing
Version 3.59.0
Dodano (Added)
LifecycleActionPolicybira onemogućeno, samo-eksplicitno ili kompatibilno automatsko izvršavanje lifecycle akcija PDF dokumenata i stranicaExecuteDocumentLifecycleActionizlaže dokumentne JavaScript, open, close, save i print akcije, dokExecutePageLifecycleActionizvršava page open i close akcije bez mijenjanjaPageNumbera
Promijenjeno (Changed)
- Headless učitavanja stranica sada primaju iste automatske page open i close akcije kao učitavanja pokrenuta iz viewerja, uz privremene stranice koje se ponovno koriste ili otpuštaju pod render lockom
Version 3.58.0
Dodano (Added)
ReadStructureElementsiVisitStructureElementsnude iterativni obilazak tagged strukture s eksplicitnim budžetima za dubinu, elemente, atribute i vrijeme, uz detaljan status završetkaStructureElementsForPageizlaže snapshotove stranica s indeksiranjem od jedan, bez mijenjanjaPageNumbera, potkrijepljen konfigurabilnim LRU cacheom svjestan revizija s telemetrijom hitova, promašaja i brojača
Promijenjeno (Changed)
- Potrošači za accessibility, reflow, validaciju i viewer sada ponovno koriste structure snapshotove u vlasništvu pozivatelja, dok ih relevantna izmjena dokumenta ili stranice ne poništi
Version 3.57.0
Dodano (Added)
- Kompletni native form-host callbackovi sada nude lazy page handleove sigurne po životni vijek, routiranje kursora interaction viewa, obavijesti o promjeni vrijednosti, pravokutnike odabranog teksta, URI evente i GoTo destination evente
FormHostCallbacksCompleteizvještava spremnost callbackova, dokFormSelectionRectsiClearFormSelectionRectsizlažu ograničenu geometriju selekcije u page prostoru
Ispravljeno (Fixed)
- XFA callbackovi trenutne stranice sada ispravno prevode između PDFiumovih indeksa stranica koji počinju od nule i komponentinog
PageNumbera koji počinje od jedan - AcroForm i XFA URI callbackovi sada čuvaju sirove URI bajtove i zahtijevaju eksplicitno odobrenje hosta prije bilo kojeg eksternog pokretanja
Version 3.56.0
Dodano (Added)
- Indeksirani
PageMetricssnapshotovi izlažu dimenzije stranice, rotaciju, labelu, transparentnost i pet standardnih page boxeva, bez mijenjanja aktivne stranice
Promijenjeno (Changed)
- Ponovljena čitanja metapodataka stranica ponovno koriste native snapshot cache koji se automatski poništava, čime smanjuju otvaranja stranica u thumbnail, preflight i document-analysis radnim opterećenjima
Version 3.55.0
Dodano (Added)
- Inspekcija putanja izlaže točne cubic Bézier kontrolne točke kada učitani PDFium build nudi
FPDFPath_GetBezierControlPoints, uz opcionalnu probu mogućnosti za starije DLL-ove FormFieldTypeAtPoint,TPdfView.FormFieldTypeAti indeksiranaFontFlagssvojstva izlažu native činjenice o formama i fontovima, bez sirovih handleovaTPdf.Signaturesvraća sve native signature sadržaje, ByteRangeove, subfiltere, razloge, vremena i dozvole u jednom snapshotu u vlasništvu pozivatelja
Promijenjeno (Changed)
- Provjere prisutnosti form polja sada koriste izravno native point hit testiranje, umjesto otvaranja i zatvaranja annotation handleova
Ispravljeno (Fixed)
- Validacija PDF/E-1 sada dopušta obična AcroForm polja, embedded datoteke i FileAttachment annotacije, uz precizno prijavljivanje top-level AcroForm
/XFAi/NeedAppearances true, uključujući indirektne i object-stream vrijednosti
Version 3.54.0
Dodano (Added)
FPdfProductiondodaje odabir slika s više kodeka temeljen na mjerenjima, backende za obradu boja i fontova, SVG putanje, stilizirane planove zamjene, transakcijska ažuriranja XFA paketa, vektore barkodova, Portfolio modele i sigurnu ekstrakciju RichMedia sadržajaFPdfStandardsExecutiondodaje mjerenje i GeoPDF konverziju, transakcijski PDF/A popravak, PDF/UA-2 planove, vanjske višebojne profile, povijesne DSS i VRI dokaze, DPart upite, dubinske PDF/E činjenice i PDF/R trake s fiksnom memorijomTPdf.ImportImposedslaže ograničene N-up i booklet planove putem izvornih N-up ili page-XObject putanja s točnom geometrijom guttera, bleed-a i creep-a, dokTPdf.CompareWithizvještava semantičke, geometrijske i tolerantne pikselne razlike- PAdES potpisivanje sada podržava priključive validatore putanja i HSM davatelje, PDF MAC priložen uz potpis,
cms-algorithm-protectioni izvanmrežne dokumente politike potpisivanja
Promijenjeno (Changed)
- Pogon rasporeda prihvaća ograničeni HTML i Markdown, teče kroz stupce i razrješava fiksne, automatske i frakcijske trake mreže
- Povratni XFDF ciklusi sada zadržavaju polja s više vrijednosti i obogaćenim tekstom, popup bilješke, akcije, odredišta, presvlake izgleda, prilagođene prostore imena i izričito stanje prisutnosti
Version 3.53.0
Dodano (Added)
ConfigurePdfLibrarypruža nepromjenjivu konfiguraciju izvornog renderera, fontova, V8, Brotli, putanja korisničkih fontova i sandboxa prije prvog učitavanja PDFium-a- Izvorni atributi strukture, relacije anotacija, datotečni privitci anotacija, tipizirane vrijednosti rječnika, pravila fokusa, upiti z-redoslijeda veza i obrazaca te dijagnostika zadanog TTF mapiranja dostupni su kroz ograničene API-je visoke razine
TPdfView.ReplaceFormTextAndKeepSelectiončuva aktivni odabir kroz ponovljena uređivanja, a događaji otpuštanja desne tipke miša sada dolaze do izvornog pogona obrazaca
Promijenjeno (Changed)
- Determinističko vrijeme dokumenta sada uz fiksnu epohu koristi i stabilnu UTC kalendarsku pretvorbu, čime se u svakoj vremenskoj zoni računala dobivaju isti metapodaci
- Zapisivanje privitaka sada provjerava izvorni rezultat i kodira ključeve rječnika kao UTF-8
Version 3.52.0
Dodano (Added)
TPdf.GetImageObjectRenderedBitmapvraća renderirani rezultat slikovnog objekta uz primijenjenu trenutnu matricu, prostor boja, maske i stanje renderiranjaTPdf.TextObjectGlyphWidth,TPdf.TextObjectFontSizeiTPdf.SetTextObjectFontSizeomogućuju izvorno mjerenje glifova i točno uređivanje veličine fonta tekstualnog objektaTPdf.TransformPageObjectClipPath,TPdf.DetachFormObjectChild,TPdf.SharePageObjectMarkiTPdf.IsAnnotationObjectSubtypeSupporteddonose precizno uređivanje objekata sadržaja i provjeru mogućnosti
Version 3.51.0
Ispravljeno (Fixed)
- Osam članova
TPdfkoje su ranije napomene izdanja najavljivale bilo je deklarirano u privatnom odjeljku i nisu se mogli pozvati izvan jedinicePDFium; sada su javni kako je dokumentirano:LinkAtPoint,GetTextRenderMode,GetTextObjectRenderedBitmap,IsAnnotationSubtypeSupported,ChooseRenderFlags,AttachmentHasKey,GetAttachmentStringValueiSetAttachmentStringValue
Promijenjeno (Changed)
- Engleska referentna dokumentacija sada pokriva svaki javni član
TPdfiTPdfView: 88 članova koji nisu imali referentnu stranicu sada su je dobili, a stranice klasa, navigacijski indeks i API referenca navode ih sve - Referentne stranice koje su prethodno upućivale na zajedničku stranicu sada povezuju na stranicu samog člana, tako da rezultat pretraživanja otvara opis API-ja koji je pretražen
- API referenca dokumentira enumeracije i zapise dohvatljive iz javnih potpisa, uključujući tipove izvještavanja o učitavanju i tokovima, tipove teksta, fonta i OCR-a, tipove graditelja rasporeda, tipove PAdES validacije, tipove grupe i validacije te tipove paralelnog renderiranja
Version 3.50.0
Dodano (Added)
- Svaki GUI demo sada se otvara sa sadržajem spremnim za korištenje umjesto s praznim obrascem: demoi preglednika i laboratorija učitavaju generirani uzorak dokumenta, demoi izvješća pri pokretanju stvaraju dovršeno izvješće, a demoi obrade unaprijed generiraju uzorke ulaza tako da glavna radnja radi jednim klikom
MultiPageViewer,SplitViewiFontPropertiespri pokretanju generiraju uzorke dokumenata u memoriji (šestostrani prikaz, dva usporedna dokumenta jedan pokraj drugog i stranica s više fontova za pregled klikom)- Demoi obrade poput
MergePDF,BatchExport,SplitPDF,ExtractText,PDFtoJpg,PrintPDFiPrintPreferencesunaprijed generiraju uzorke PDF-a pokraj izvršne datoteke i prethodno popune svoje ulazne kontrole, uz idempotentnu regeneraciju koja nikad ne prepisuje postojeće datoteke FormFilliExtractImagesautomatski učitavaju uzorke datoteka isporučene u svojim mapama demoa,ImageToPDFgenerira dvije uzorke bitmape,WatermarkStampunaprijed izrađuje svoje uzorke žigova, aXfdfLabse otvara na generiranom dokumentu koji nosi tekstualne i istaknute bilješke
Promijenjeno (Changed)
CreatePDFsada pri pokretanju generiraSample.pdfpokraj izvršne datoteke bez prikazivanja dijaloga, tako da dokument postoji u trenutku kad se demo otvoriTPdf.AboutInfoi metapodaci instalatera sada dosljedno izvještavaju o Version 3.50.0
Version 3.49.0
Dodano (Added)
FORM_GetTextDirectioniFORM_SetTextDirectioniz ažuriranih PDFium binarnih datoteka sada su vezani, čime dinamički sloj vezanja zadržava punu pokrivenost svih 472 PDFium izvozaTPdf.FocusedFormFieldTextDirectioniTPdf.SetFocusedFormFieldTextDirectionizlažu smjer teksta u memoriji fokusiranog widgeta kroz noviTPdfFormTextDirectionenum (ftdUnknown,ftdAuto,ftdLTR,ftdRTL), sTPdfViewparnjacima koji ponovno iscrtavaju scenu stranice nakon promjene smjera
Promijenjeno (Changed)
FPDF_LIBRARY_CONFIGsada preslikava raspored verzije 6 izvornog koda s eksperimentalnim poljemm_BrotliEnabledza binarne datoteke izgrađene sPDF_ENABLE_BROTLITPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.49.0
Version 3.48.0
Dodano (Added)
- Demo
PDFViewersada pri pokretanju u memoriji generira šestostrani prezentacijski dokument pomoću API-ja za stvaranje, pa se preglednik otvara s iscrtanim sadržajem i bez datoteke uzorka na disku - Ploča s minijaturama izgrađena na
TPdfThumbnailViewpruža preglede stranica s navigacijom klikom pokraj stabla zabilješki u sva tri porta demoa - Pretraga u pregledniku sada pomoću
HighlightSearchTextističe svako podudaranje na trenutnoj stranici umjesto jednog pravokutnika rezultata, uz prikaz broja podudaranja u statusnoj traci - Tipke
Nighti2-Upna alatnoj traci jednim klikom prebacuju noćni duotone način iscrtavanja i način prikaza dviju stranica jedne uz drugu
Promijenjeno (Changed)
- Odabir teksta u pregledniku sada koristi ugrađeni mehanizam odabira
TPdfViews odabirom riječi dvostrukim klikom, odabirom povlačenjem i tipkovničkim kraticama za međuspremnik, umjesto ručno napisanog koda za odabir - Stranice se iscrtavaju sa sjenom i glatkim klizanjem za moderno iskustvo čitanja
TPdf.AboutInfoi metapodaci instalatera sada dosljedno izvještavaju o Version 3.48.0
Version 3.47.0
Dodano (Added)
FPdfBenchmarkpokreće ograničene PDF korpuse s konfigurabilnim zagrijavanjem i mjerenim prolazima, ograničenjima stranica i piksela, kooperativnim otkazivanjem te statusom prolazi, pada ili preskočeno po slučajuTPdfBenchmarkReportbilježi veličine ulaznih i spremljenih bajtova, latenciju učitavanja i prve stranice, propusnost iscrtavanja, vrijeme spremanja i ponovnog otvaranja, uzorkovani vršni radni skup, semantičke i pikselne SHA-256 hash vrijednosti, stabilnost ponovljenih pokretanja, provjere očekivanih hash vrijednosti i ekvivalenciju neovisnog ponovnog otvaranja- Izvješća benchmarka izvoze CSV siguran za formule i strukturirani JSON za CI, kvalifikaciju izdanja i uzdužno praćenje performansi
GetSkiaRenderCapabilities,RenderPageSkiaiRenderPageSkiaByIndexizlažu neobavezno izvorno Skia iscrtavanje stranica i obrazaca s ponovnom uporabom predmemorije raščlanjenih stranica i bez tvrdog zahtjeva za DLL izvoz- Verzionirani ABI izlaza ispisa kontroliran mogućnostima izlaže točno popisivanje spot ploča, iscrtavanje ploča, detekciju overprinta i pregled overprinta kada ih osigurava učitani PDFium modul
Ispravljeno (Fixed)
- PDFium izgradnje bez
PDF_USE_SKIAsada se učitavaju normalno umjesto da ne uspijevaju jer eksperimentalni Skia izvozi nisu prisutni
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.47.0
Version 3.46.0
Dodano (Added)
ValidatePdfRsada provjerava sadržaj stranica samo s rasterskim prikazom, geometriju traka, modele boja, učinkovitu rezoluciju, parametre kompresije, obavezne metapodatke i šifrirane PDF 2.0 profile kroz konfigurabilne opcije validacijeBuildPdfARepairPlanpretvara validacijske dokaze u korake sanacije poredane po ovisnostima s klasama sigurnosti, zaštitama utjecaja na potpise i JSON izlazomBuildPdfXProductionPreflightprijavljuje okvire stranica, ugrađene fontove, output intente, kolorante, prozirnost, overprint, separacije, rezoluciju slika i spremnost za proizvodnju bez dekodiranja sadržaja slika- PDF/UA-2 validacija strukture sada provjerava vlasništvo pridruženih datoteka, redoslijed čitanja, opise, odnose i otkrivenost
Promijenjeno (Changed)
TAssociateFile.Description,TPdf.ImageInfoiTPdf.PageComplexityizlažu metapodatke potrebne radnim tokovima pridruženih datoteka i proizvodnog preflightaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.46.0
Version 3.45.0
Dodano (Added)
TPdfXmpPacketraščlanjuje, uređuje, klonira i serijalizira XMP svjestan imenskih prostora s nepoznatim imenskim prostorima, tipiziranim RDF spremnicima, URI i resursnim vrijednostima, kvalifikatorima, jezičnim alternativama, omotima paketa i očuvanom popunomTPdf.ReadXmpPacketiSaveAsWithXmpPacketizlažu čitanje metapodataka više razine i atomarni izlaz, pri čemu promjene potpisanih dokumenata zahtijevaju izričitu autorizaciju
Sigurnost (Security)
- Ograničeni XML čitač odbacuje DTD-ove i vanjske entitete te ograničava bajtove paketa, ugniježđivanje, čvorove, atribute i numeričke reference znakova
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.45.0
Version 3.44.0
Dodano (Added)
TPdfValidationRuleRegistryregistrira klauzule profila sa ozbiljnošću, ovisnostima, smjernicama popravka, dokazima i ugrađenim ili prilagođenim predikatimaTPdfValidationBudgetiTPdfValidationExecutionContextograničavaju pravila, neuspjehe, objekte, rekurziju, UTF-8 dokaze, rezerviranu memoriju, proteklo vrijeme, brzi neuspjeh i kooperativno otkazivanjeValidatePdfFilesParallelprovjerava datoteke kroz izolirane dokumente radnika uz očuvanje redoslijeda ulaza i objedinjavanje distribucija problema, vremena, neuspjeha, otkazivanja i pogrešaka učitavanja
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.44.0
Version 3.43.0
Dodano (Added)
TPdfStructureElementsada nosi činjenice o imenskom prostoru, mapiranju uloga imenskog prostora, referenci, pridruženoj datoteci, napomeni, widgetu, oznaci i izgledu za PDF/UA-2 semantičku validacijuValidatePdfUa2StructureElementsi njezini fokusirani validatori provjeravaju imenske prostore i sadržaj ISO/TS 32005, ograničene mreže tablica, napomene, obrasce, asocijacije Formula/MathML, pridružene datoteke, korijene dokumenta, FENote, popise, TOC reference, naslove i potpise bez učitavanjapdfium.dllClassifyPdfUaNamespaceidentificira imenske prostore strukture PDF 1.7, PDF 2.0, MathML, ARIA, DPUB, prilagođene i nedostajućePdfUa2StructureHasIssuepruža za C++Builder sigurnu provjeru jednog problema bez vraćanja Pascal skupa po vrijednosti
Promijenjeno (Changed)
ValidatePdfUaStructureElementsautomatski primjenjuje novi semantički skup pravila zapuc2uz očuvanje putanje pravila PDF/UA-1TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.43.0
Version 3.42.0
Dodano (Added)
TPdfUaSaveOptions.PdfUa2stvara PDF/UA-2 izlaz spdfuaid:part2,pdfuaid:rev2024 i učinkovitom verzijom kataloga PDF 2.0ValidatePdfUaotkrivapuc2i prijavljuje nedostajuće metapodatke revizije, datoteke koje nisu PDF 2.0, neimenovane konfiguracije neobaveznog sadržaja, zastarjele napomene i generičke H naslove
Promijenjeno (Changed)
- PDF/UA validacija sada bira pravila redoslijeda kartica, XFA i naslova specifična za profil za PDF/UA-1 i PDF/UA-2
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.42.0
Version 3.41.0
Dodano (Added)
SetPageObjectMarkParamdodaje ili zamjenjuje jedan parametar integer, real, string ili blob na postojećem unosu označenog sadržaja bez zamjene oznakeRemovePageObjectMarkParamuklanja jedno odabrano svojstvo uz očuvanje naziva oznake i svakog nepovezanog svojstva
Promijenjeno (Changed)
- Neintegralni brojevi označenog sadržaja sada prolaze povratno putovanje kao
pmpFloatumjesto da se skraćuju u cjelobrojne snimke - Neuspjela provjera parametra tijekom
AddPageObjectMarkuklanja djelomično stvorenu izvornu oznaku TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.41.0
Version 3.40.0
Dodano (Added)
ConfigureSystemFontProviderinstalira maper fonta aplikacije prije nego što se PDFium pokrene i osigurava provjerene TrueType ili OpenType bajtove za nedostajuće ili zamijenjene fontove dokumentaTPdfSystemFontPolicykontrolira zamjenu rezanja, izvorni povratni put, ograničenja bajtova po fontu i ograničeno predmemoriranje zahtjevaGetSystemFontProviderStatisticsprijavljuje aktivnost mapiranja, predmemorije, povratnog puta, odbijanja, podatkovnih tablica i živih ručki
Promijenjeno (Changed)
- Povratni pozivi davatelja izlažu PDFium zatraženo rezanje, debljinu, stil, charset i pitch, držeći neuspjehe povratnih poziva unutar izvorne granice
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.40.0
Version 3.39.0
Dodano (Added)
AddCidType2Textugrađuje TrueType podatke koje osigurava pozivatelj s izričitom geometrijom CID-u-GID po glifu i CID-u-Unicode mapiranjimaTPdfCidFontOptionsbira potpuno ugrađivanje, željeno podskupljanje s povratnim putem ili obavezno podskupljanje te konfigurira ograničene proračune fontova, glifova i UnicodeaTPdfCidFontReportprijavljuje odluke o podskupovima, veličine u bajtima, jedinstvene glifove, stanje ugrađivanja, očekivani tekst, izdvojeni tekst i integritet izdvajanja
Promijenjeno (Changed)
- TrueType podskupljanje čuva zatražene identifikatore glifova, odbacuje nesiguran izlaz i vraća svaki umetnuti objekt stranice ako provjera mapiranja ili izdvajanja ne uspije
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.39.0
Version 3.38.0
Dodano (Added)
BuildReflowDocumentstvara ograničeno ponovno upotrebljivo stablo semantičkih čvorova iz Tagged PDF strukture ili zaključivanja fizičkog rasporeda kroz odabrani raspon stranicaTPdfReflowDocument.ToHtmlemitira izbjegnute responzivne naslove, odlomke, popise, figure, potpise, odjeljke stranica i tablice sa semantikom zaglavlja i rasponaTPdfReflowOptionskontrolira detekciju tablica, odjeljke stranica, geometriju, CSS, prijelome redaka, raspon stranica, otkazivanje i proračune resursa
Promijenjeno (Changed)
- Sadržaj tablice zamjenjuje preklapajuće blokove odlomaka tijekom reflowa, a stanje aktivne stranice vraća se nakon uspjeha, neuspjeha ili otkazivanja
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.38.0
Version 3.37.0
Dodano (Added)
ApplyOcrSearchLayeriscrtava odabrane stranice kroz PDFium i šalje ograničene BGRA piksele od vrha prema dolje davateljuIPdfOcrProviderkoji osigurava pozivateljTPdfOcrWordnosi Unicode tekst, pouzdanost i četverokute prostora piksela koji se preslikavaju kroz izvornu geometriju stranice u nevidljivi pretraživi tekstTPdfOcrReportbilježi dovršenost po stranici, preskakanja postojećeg teksta, neuspjehe, otkazivanje, iscrtane piksele te prihvaćene ili odbijene riječi
Promijenjeno (Changed)
- OCR umetanje čuva izvorne tokove slika skeniranja, filtrira neispravne rezultate ili rezultate niskog povjerenja, predaje jednom po stranici i vraća aktivnu stranicu
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.37.0
Version 3.36.0
Dodano (Added)
ExtractTablesotkriva tablice s crtama i poravnate prazninama iz izvorne geometrije riječi i transformiranih crta putanjaTPdfTableprijavljuje retke, stupce, spojene raspone, granice stranice, ćelije zaglavlja, način detekcije, pouzdanost i izravan CSV ili JSON izlazExtractDocumentTablespretražuje svaku stranicu pod dijeljenim proračunima i označava podudarne tablice koje se nastavljaju preko granica stranica
Promijenjeno (Changed)
- Izdvajanje tablica provodi konfigurabilna ograničenja riječi, crta, ćelija i tablica te vraća aktivnu stranicu nakon pretraga razine dokumenta
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.36.0
Version 3.35.0
Dodano (Added)
GenerateTaggedLayoutstvara novi semantički dokument rasporeda s izvornim označenim sadržajem, stablom strukture Document, mapiranjima ParentTree i IDTree te metapodacima jezika dokumentaTPdfLayoutSemanticsmodelira naslove, odjeljke, popise, figure, potpise, tablice, povezanosti zaglavlja, raspone, alternativni tekst, stvarni tekst, jezike i ID-ove elemenataTPdfLayoutDocument.AddLinkemitira URI Link napomene i povezuje svaku napomenu s njezinim elementom strukture Link kroz OBJR i StructParent mapiranja
Promijenjeno (Changed)
- Tekst rasporeda zadano ima semantiku odlomka, dok zaglavlja, podnožja, linije, slike i ponovno upotrebljivi obrasci zadano bivaju artefakti osim ako nisu izričito označeni
- Validacija semantičkog plana odbacuje duplicirane ID-ove, nedostajuće roditelje, cikluse, nevaljano ugniježđenje popisa ili tablica, figure bez zamjenskog teksta i neriješene ID-ove zaglavlja tablica prije emisije dokumenta
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.35.0
Version 3.34.0
Dodano (Added)
TPdf.AddShapedTextzapisuje RTL, bidi, kontekstne i ligaturne nizove glifova kroz izvorno oblikovanje sustava i PDFium API-je za CID Type 2 fontoveShapePdfTextiTPdfUniscribeTextShaperizlažu pozicionirane ID-ove glifova, korake napredovanja, pomake, izvorne klastere, vizualne položaje nizova i razine bidi bez izmjene dokumenta
Promijenjeno (Changed)
- Generirane ToUnicode mape pokrivaju svaki oblikovani glif, dok
ActualTextpohranjuje izvorni logički Unicode niz za sukladne potrošače izdvajanja i pristupačnosti - Nizovi označenog sadržaja s UTF-16 oznakama redoslijeda bajtova sada se ispravno dekodiraju kroz
PageObjectMarks TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.34.0
Version 3.33.0
Dodano (Added)
TPdfLayoutCachedNodegradi sadržaj rasporeda podrazreda pri prvoj uporabi i podržava ponovljena skalirana smještaja krozAddCachedNodeTPdfLayoutPlanprijavljuje pogodke i promašaje predmemorije mjerenja, smještaje predmemoriranih čvorova i ponovno korištene izvorne XObjectove
Promijenjeno (Changed)
BuildPlanponovno koristi odgovarajuće planove po potpunim ograničenjima stranice, sadržaju, fontu, stilu, izvoru i identitetu mjeritelja bez ponavljanja mjerenja tekstaGenerateLayoutpretvara svaki jedinstveni predmemorirani čvor u jedan XObject vezan na odredište i stvara lagane Form objekte za svaki smještajTPdf.AboutInfo, metapodaci paketa i metapodaci instalatera sada dosljedno izvještavaju o Version 3.33.0
Version 3.32.0
Dodano (Added)
TPdfLayoutDocumentgradi prelomljeni tekst, razmake, linije, slike, ponovno upotrebljive XObjecte stranica, izričite prijelome stranica, zaglavlja i podnožja u izmjereni plan stranicaGenerateLayoutpaginira potpuni raspored prije atomarnog dodavanja izvornih stranica i objekata stranica, sa stabilnim referencama{page}i{pages}
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa i metapodaci instalatera sada dosljedno izvještavaju o Version 3.32.0
Version 3.31.0
Dodano (Added)
- Graditelji
TPdfPagePlanopisuju operacije brisanja, premještanja, umetanja, dijeljenja i spajanja stranica bez primjene ValidatePagePlanvraća točnu mapu starih-u-nove stranice i popisuje zahvaćene knjižne oznake, imenovana odredišta, oznake stranica, polja obrazaca, označene stranice, uvezene značajke i potpise
Sigurnost (Security)
- Planovi koji bi ostavili viseće navigacijske ciljeve ili promijenili potpisan sadržaj bez izričite autorizacije odbacuju se prije nego što se pokrene bilo koja izvorna operacija stranice
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.31.0
Version 3.30.0
Dodano (Added)
SaveRecoverySnapshotzapisuje paket oporavka s kontrolnim zbrojem i ograničenjem veličine koji sadrži otisak izvora i provjereni dnevnik uređivanja dokumentaRestoreRecoverySnapshotponavlja paket oporavka samo kada se njegov kontrolni zbroj, lanac dnevnika, otisak izvora i otisak oporavljenog podudarajuEnableRecoveryAutosaveatomarno osvježava izričitu datoteku oporavka nakon svake promijenjene predaje, vraćanja ili ponavljanja bez prepisivanja izvornog PDF-a
Promijenjeno (Changed)
InspectRecoverySnapshotprijavljuje izvor oporavka, otiske, broj unosa, položaj i ograničenu pohranu bez primjene paketaImportEditJournali obnova oporavka sada zahtijevaju izričituAllowSignedDocumentautorizaciju prije primjene uređivanja na potpisani PDF- Pohrana paketa oporavka koristi konfiguriranu ograničenu pohranu slučajnog pristupa i zamjenu upisivanjem-kroz u istom direktoriju za velike dnevnike i automatska ažuriranja spremanja otporna na rušenje
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.30.0
Version 3.29.0
Dodano (Added)
TPdf.BeginEditTransaction,CommitEditTransactioniRollbackEditTransactiongrupiraju proizvoljna izvorna uređivanja dokumenata u atomarne transakcijeTPdf.UndoEditiRedoEditprimjenjuju SHA-256 provjerene delte unatrag i unaprijed preko promjena stranica, objekata, napomena, privitaka i metapodatakaExportEditJournaliImportEditJournaltrajno pohranjuju ograničene prenosive delte s validacijom otiska izvora i lanca sažetaka za kasnije ponavljanje
Promijenjeno (Changed)
- Snimke transakcija koriste reproducibilni izvorni izlaz tako da nepromijenjene predaje ostaju prazne čak i kada obična PDFium spremanja sadrže nedeterminističke identifikatore ili vremenske oznake
- Neuspjele predaje i nevaljano ponavljanje dnevnika atomarno vraćaju prethodni učitljiv dokument, dok broj unosa, pohranjeni bajtovi i veličina snimke ostaju ispod granica koje konfigurira pozivatelj
- Potpisani PDF-ovi zahtijevaju izričitu
AllowSignedDocumentautorizaciju prije početka transakcije uređivanja dokumenta TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.29.0
Version 3.28.0
Dodano (Added)
TPdf.InspectOptionalContentpopisuje OCG slojeve, zadane i alternativne konfiguracije, stanja uporabe View/Print/Export, metapodatke zumiranja i jezika, zaključane slojeve, polja redoslijeda, radio grupe, OCMD pravila, izraze vidljivosti i učinkovito stanje iscrtavanjaTPdf.SaveAsOptionalContentConfiguredzapisuje strogo provjerenu kopiju sa stanjima slojeva koje bira pozivatelj za odabranu uporabu i konfiguraciju
Promijenjeno (Changed)
- Izlaz stanja slojeva sada ažurira i polja
/ONi/OFFkonfiguracije i rječnike stanja OCG Usage tako da PDFium primjenjuje zatraženu vidljivost kroz svoj izvorni kontekst iscrtavanja - Upisi konfiguracije odbacuju nepoznate grupe, promjene zaključanih slojeva, sukobe radio grupa, šifrirane pripremljene datoteke i potpisane datoteke bez izričite autorizacije te prema zadanim postavkama uklanjaju pravila automatskog stanja kako bi odabrani rezultat ostao deterministički
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.28.0
Version 3.27.0
Dodano (Added)
TPdf.RenderPageByIndexiscrtava bilo koju jedinično utemeljenu stranicu pri točnoj veličini piksela bez promjene aktivne stranice uređivanja ili pokretanja događaja promjene stranicePageSceneCacheCapacity,PageSceneCacheCountiClearPageSceneCacheizlažu ograničenu kontrolu i dijagnostiku predmemorije scena
Promijenjeno (Changed)
- Indeksirana iscrtavanja stranica, iscrtane minijature i izdvajanje ugrađenih minijatura sada ponovno koriste raščlanjeno PDFium stanje stranice kroz LRU predmemoriju od osam unosa prema zadanim postavkama
- Unosi scene poništavaju se pri aktivaciji stranice, uređivanju, promjenama stabla stranica, povratnim pozivima stanja obrasca, izričitom brisanju i rastavljanju dokumenta, s iscrtavanjima u tijeku sigurno zadržanim do oslobađanja
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.27.0
Version 3.26.0
Dodano (Added)
TPadesSignatureAlgorithmInfoprijavljuje sažetak, potpis, javni ključ i OID imenovane krivulje svakog CMS potpisnika zajedno s neovisno ocijenjenim stanjem pravila algoritmaInspectPadesSignatureAlgorithmiEvaluatePadesSignatureAlgorithmprepoznaju profile P-256, P-384, P-521, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1, Ed25519 i Ed448
Sigurnost (Security)
- PAdES validacija sada odbacuje neslaganja eliptičkih krivulja i sažetaka, ECDSA OID-ove potpisa koji se ne slažu s CMS sažetkom, neimenovane EC parametre, Ed25519 parametre i duljine izlaza Ed448 SHAKE256 različite od 512 bitova
- Izvorna CMS provjera ostaje izvor kriptografske valjanosti, dok se nedostupni algoritmi i neprepoznate krivulje prijavljuju kao
pcsUnsupportedumjesto da se tretiraju kao nevaljani potpisi TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.26.0
Version 3.25.0
Dodano (Added)
TPdf.ExportObjectGraphizvozi aktivne klasične, xref-stream i object-stream objekte kao ograničeni tipizirani JSON s izričitim rječnicima, poljima, nizovima, nazivima, skalarnim vrijednostima, neizravnim referencama, brojevima bajtova tokova i neobaveznim SHA-256 sažecima tokovaTPdf.SaveAsObjectGraphPatchedpostavlja ili uklanja provjerene vrijednosti rječnika najviše razine po shemi kroz tipizirane vrijednosti zakrpa null, Boolean, integer, real, name, text-string i neizravne reference
Sigurnost (Security)
- Izvoz grafa objekata provodi proračune objekata, rekurzije, nizova i izlaznih bajtova, dok zakrpavanje provjerava svaku operaciju prije isporabe, odbacuje viseće reference, duplicirane operacije, šifrirane ulaze, zaštićene promjene filtara ili duljina tokova te potpisane dokumente osim ako nisu izričito odobreni
- Zakrpe grafa objekata pripremaju se kao inkrementalna revizija, ponovno materijaliziraju za xref provjeru, strogo učitavaju kroz PDFium i kopiraju ili atomarno preimenuju tek nakon što sve provjere uspiju
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.25.0
Version 3.24.0
Dodano (Added)
TPdf.ValidatePadesTrustprovjerava svaki otkrivi odvojeni potpis naspram točnog izvornogByteRange, ocjenjuje vezivanje signing-certificate-v2 i trenutno sustavsko povjerenje Windowsa te prijavljuje neovisna stanja potpisa, lanca, opoziva i vremenske oznakeTPdf.ValidatePadesTrustAsyncsnima izvorni učitani izvor prije slanja, prijavljuje fazirani napredak za raščlanjivanje, kriptografiju, izgradnju lanaca, AIA, OCSP, CRL i RFC 3161 rad vremenske oznake te podržava kooperativno otkazivanjeTPadesTrustValidationOptionsbira izvanmrežno ili mrežno povjerenje, neobaveznu provjeru opoziva i vremenske oznake, ograničeno vrijeme čekanja dohvaćanja URL-a, token otkazivanja i povratni poziv napretka
Sigurnost (Security)
- Tokeni vremenske oznake potpisa i Document Time-stamp sada neovisno provjeravaju svoj SHA-256 otisak poruke, priloženi CMS potpis, TSA lanac i neobavezno stanje opoziva od običnog potpisa dokumenta
- Validacija povjerenja nikada ne izračunava hash kopije ponovno spremljene od PDFiuma, prema zadanim postavkama koristi izvanmrežno dohvaćanje certifikata samo iz predmemorije i prijavljuje nepodržana ili neodređena stanja umjesto da nedostupno izvorno povjerenje ili dokaz opoziva tretira kao valjano
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.24.0
Version 3.23.0
Dodano (Added)
TPdf.RenewPadesArchiveTimestampiRenewPadesArchiveTimestampToStreamdodaju novi RFC 3161 Document Time-stamp postojećem lancu PAdES potpisa bez promjene bilo kojih povijesnih bajtovaTPadesArchiveTimestampOptionskontrolira TSA pristup, nonce, rezervirani kapacitet tokena i neobavezno potpuno osvježavanje DSS-a, dokTPadesArchiveTimestampReportbilježi razine izvora i rezultata, duljine lanaca, duljine u bajtima i identitet vraćene vremenske oznake
Ispravljeno (Fixed)
- Novi i obnovljeni PAdES B-LTA izlaz deklarira ESIC ExtensionLevel 2, dok B-LT validacija više ne zahtijeva Level 2 osim ako Document Time-stamp nije prisutan
Sigurnost (Security)
- Obnova izračunava hash točnih izvornih učitanih bajtova plus bilo koje zatraženo DSS ažuriranje, odbacuje šifrirane ili nepotpune izvore, provjerava otkrivi B-LTA rezultat prije zapisivanja izlaza i priprema datotečni izlaz prije zamjene
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.23.0
Version 3.22.0
Dodano (Added)
TPdf.AnalyzeSignatureRevisionsrekonstruira izvorni lanac inkrementalnih revizija i vraća promjene objekata po potpisu klasificirane naspram DocMDP i FieldMDP dozvolaTPadesRevisionAnalysisReportrazlikuje dopuštene promjene obrazaca, napomena, potpisa i validacijskog materijala od nedopuštenih promjena stranica ili dokumenta, neriješenih slučajeva i sumnjivih definicija sjena
Sigurnost (Security)
- Analiza revizija otkriva nereferencirane definicije objekata, redefinicije objekata potpisa, aktivan sadržaj, neispravne lance revizija i neriješene komprimirane objekte uz provedbu ograničenih proračuna revizija, objekata i promjena
- Analiza uvijek koristi izvornu učitanu datoteku, međuspremnik memorije, prilagođeni tok ili dovršeni progresivni izvor umjesto bajtova prepisanih od PDFiuma
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.22.0
Version 3.21.0
Dodano (Added)
TPdf.PreparePadesRemoteSignaturestvara rezervirani prostor fiksne širine za odvojeni potpis i vraća trajni zahtjev koji sadrži SHA-256 sažetak dokumenta, točanByteRange, koordinate rezervacije i otisak pripremljenog PDF-aTPdf.CompletePadesRemoteSignaturedovršava HSM, cloud ili prekinute sesije potpisivanja nakon validacije trajno pohranjenog zahtjeva i vraćenog CMS-aTPdf.SavePadesRemoteSigningRequestiTPdf.LoadPadesRemoteSigningRequestpružaju stabilni verzionirani binarni format sesije za granice procesa i strojeva
Sigurnost (Security)
- Dovršenje odbacuje izmijenjene pripremljene PDF-ove, izmijenjene koordinate
ByteRange, ponovno korištene neprazne rezervirane prostore, prevelike CMS vrijednosti, nepodržane oblike SignedData, nedostajuće atribute signing-certificate-v2 i CMS sažetke poruka koji se ne podudaraju s pripremljenim dokumentom TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.21.0
Version 3.20.0
Dodano (Added)
TPadesDssOptions.Vriszapisuje jedan neizravni rječnik/Type /VRIpo potpisu, ključan velikim slovima SHA-1 potpuno dekodirane vrijednosti/Contentsuključujući popunuTPadesDssVribira materijal certifikata, OCSP-a i CRL-a kroz provjerene indekse, dok PAdES B-LT i B-LTA potpisivanje sada automatski stvara VRI novog potpisa
Promijenjeno (Changed)
- DSS certifikati, OCSP odgovori i CRL-ovi dedupliciraju se po hashu sadržaja sa stabilnim redoslijedom prvog pojavljivanja, provjerama sudara točnih bajtova i premapiranjem VRI referenci prije zapisivanja bilo kojih odredišnih bajtova
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.20.0
Version 3.19.0
Dodano (Added)
TPdf.GetStructuredTextpretvara trenutnu stranicu u ponovno upotrebljive zapise blokova, linija i stiliziranih raspona uz očuvanje izvornih indeksa znakova, Unicode skalara, geometrije, naziva fontova, veličina, debljina i kutova tekstaTPdfStructuredTextOptionsbira redoslijed toka sadržaja ili fizičkog rasporeda, neobavezno obogaćivanje fontova i semantike te maksimalni proračun znakova koji zatvara pri neuspjehu- Tagged PDF i heuristički fragmenti čitljivog sadržaja obogaćuju blokove vrstom strukture, razinom naslova, jezikom, izvorom i identitetom elementa strukture, dok nepodudareni alternativni tekst Figure ostaje zastupljen
Promijenjeno (Changed)
- Izdvajanje fizičkog rasporeda sada koristi uređenje znakova O(n log n), geometrijski rastuće međuspremnike linija i raspona, grupiranje linija i stupaca, međuspremljenu izgradnju Unicodea i predmemoriranje fontova susjednih ne-nul tekstovnih objekata za predvidljive performanse velikih stranica
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.19.0
Version 3.18.0
Sigurnost (Security)
TPdf.SaveAsRedactedprimjenjuje svaki pravokutnik/Redactna izoliranu snimku dokumenta, uklanja svaki presječni objekt stranice najviše razine i boja neprozirni zamjenski pravokutnik bez promjene učitanog dokumenta- Redigirani izlaz uklanja napomene redigiranja, po želji uklanja druge presječne napomene, briše izvorne ugrađene privitke i skida
/AFkataloga, aktivan sadržaj, obrasce, metapodatke i nedostižne objekte prethodnih revizija TPdfRedactionOptionskontrolira zamjensku boju, uklanjanje preklapajućih napomena i proračun pretrage objekata stranice koji zatvara pri neuspjehu, dokTPdfRedactionReportbilježi svako uklanjanje i metriku izlazaTPdfSanitiseOptions.StripAssociatedFilessada prema zadanim postavkama uklanja reference pridruženih datoteka na razini kataloga
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.18.0
Version 3.17.0
Dodano (Added)
TPdf.RenderPagesParallelistodobno iscrtava jedinično utemeljene zahtjeve stranica dok svaki radnik posjeduje neovisno učitan PDFium modul, dokument i stanje stranice izvedeno iz jedne uhvaćene snimke dokumentaTPdfParallelRenderOptionskontrolira DPI, broj radnika, rotaciju, izvorne oznake iscrtavanja, boju pozadine, ograničenja piksela po stranici i ukupna ograničenja zadržanog izlazaTPdfParallelRenderReportčuva redoslijed zahtjeva i vraća međuspremnike BGRA ili RGBA od vrha prema dolje u vlasništvu pozivatelja s uspjehom, otkazivanjem, neuspjehom, dimenzijama, vremenom i dijagnostičkim detaljima po stranici- Progresivno iscrtavanje radnika ispitjuje
IPdfCancellationTokenizmeđu izvornih komada dok nevaljani zahtjevi i neuspjesi proračuna ostaju izolirani na svoje odgovarajuće rezultate TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.17.0
Version 3.16.0
Dodano (Added)
TPdfEncryptionRevision.erR7dodaje ISO/TS 32003 AES-256-GCM izlaz s/V 6,/R 7,/CFM /AESV4i obaveznim PDF 2.0 proširenjem za razvojne programere- Svaki šifrirani niz i tok prima jedinstveni 96-bitni IV, šifrat nepromijenjene duljine i 128-bitnu oznaku autentifikacije, dok
EncryptMetadata = Falsečuva bajtove toka metapodataka DecryptAesGcmDocumentBytesprovjerava korisničke ili vlasničke lozinke, šifrirane dozvole, neobavezne samostalne PDF MAC podatke i svaku GCM oznaku prije vraćanja PDFium kompatibilnih bajtova otvorenog teksta- AESV4 izlaz može se kombinirati s
TPdfEncryptOptions.EnableIntegrityProtectiontako da autentifikacija GCM po objektu i zaštita ISO/TS 32004 PDF MAC cijelog dokumenta koegzistiraju - Šifriranje sada koristi valjane klasične unose unakrsnih referenci umjesto interpretiranja teksta u obliku objekata unutar podataka toka kao neizravnih objekata
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.16.0
Version 3.15.0
Dodano (Added)
TPdfEncryptOptions.EnableIntegrityProtectionzapisuje samostalne PDF MAC autentifikacijske kodove ISO/TS 32004 za AES-256 dokumente Standard Security Handler revizije 5 i 6TPdf.ValidatePdfMacprovjerava točne izvorne bajtove izvora, strogi/ByteRangekoji pokriva EOF, CMSAuthenticatedData, ključ datoteke izveden iz lozinke, autentificirane atribute, omotani MAC ključ i HMAC vrijednostFPdfHmacdodaje HMAC-SHA256 i HKDF-SHA256, dokFPdfAesdodaje RFC 3394 AES-256 Key Wrap i autentificirane primitive za odmatanjeTPdfMacValidationResultrazlikuje valjane, odsutne, nevaljane i nepodržane autentifikacijske kodove s dijagnostičkim tekstomTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.15.0
Version 3.14.0
Dodano (Added)
TPdf.ValidatePadessada provjerava odvojene CMS potpise naspram točnih izvornih segmenata/ByteRangena Windowsima, uključujući potpisane atribute i vrijednost potpisaTPadesValidationResultizlaže agregatni status integriteta i stanja ByteRange, CMS,signing-certificate-v2, sustavskog povjerenja, opoziva i vremenske oznake po potpisu bez miješanja nepodržanog ili neprovjerenog dokaza s nevaljanim potpisom- Vezivanje certifikata potpisnika provjerava se s SHA-256, lanci certifikata koriste procjenu sustavskog povjerenja Windowsa samo iz predmemorije, a izvorni kodovi pogrešaka ostaju dostupni za dijagnostiku
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.14.0
Version 3.13.1
Ispravljeno (Fixed)
TPdf.ValidatePadessada pregledava izvornu datoteku, međuspremnik memorije ili bajtove prilagođenog toka umjesto kopije ponovno spremljene od PDFiuma koja je mogla poništiti pomake ili odbaciti rječnike potpisa- PAdES provjere
/ByteRangesada prihvaćaju potpise koji pokrivaju raniju potpunu PDF reviziju praćenu valjanim inkrementalnim ažuriranjima, uz istodobnu validaciju raspona Document Time-stamp TPadesValidationResult.SourceStatusrazlikuje validaciju izvornog izvora od nedostupnog ili nepotpunog progresivnog ulaza, a predikati sukladnosti odbacuju rezultate bez izvornih bajtovaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.13.1
Version 3.13.0
Dodano (Added)
FPdfSha3pruža primitive SHA3-256, SHA3-384, SHA3-512 i SHAKE256 bez ovisnosti za ISO/TS 32001 i srodni kriptografski rad PDF 2.x- Inkrementalni konteksti upijaju proizvoljno razdijeljeni ulaz dok SHAKE256 podržava ponovljene squeeze pozive i izlaz koji prelazi granice stope spužve
- Pomoćne funkcije za jednokratna polja bajtova i heksadecimalne izdatke malim slovima nadopunjuju streaming API, s izričitom provjerom životnog ciklusa i veličine kroz Delphi, C++Builder i Lazarus
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.13.0
Version 3.12.0
Dodano (Added)
TPdf.ImportFDFuvozi FDF podatke obrasca iz datoteka ili tokova i primjenjuje raščlanjene vrijednosti kroz postojeću putanju polja widgetaFdfImportFromStreamiFdfImportFromFileraščlanjuju izravna ili neizravna hijerarhijska polja, PDF literale i heksadecimalne nizove, PDFDocEncoding, Unicode tekst, vrijednosti naziva i izričite prazne vrijednosti pod ograničenim proračunima resursa- FDF izvoz sada zapisuje nazive polja i vrijednosti izvan ASCII-ja kao standardima sukladne UTF-16BE tekstovne nizove i sigurno izbjegava nazive izvornih datoteka
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.12.0
Version 3.11.0
Dodano (Added)
TPdf.DetectPageSkewiscrtava trenutnu stranicu pri niskoj DPI vrijednosti i otkriva kut ukošenja projiciranjem tamnih piksela na kandidate kutova rotacije, vraćajući kut koji maksimizira varijancu zbroja redaka (poravnanje linija teksta) s točnošću od ~0.1 stupnjevaTPdfSkewReportizlaže otkriveni kut, pouzdanost i dimenzije uzorkaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.11.0
Version 3.10.0
Dodano (Added)
TPdf.GetTextInReadingOrderizdvaja tekst trenutne stranice u sirovom redoslijedu toka sadržaja ili fizičkom rasporedu (odozgo prema dolje, s lijeva na desno) krozFPDFText_GetCharBox+ izdvajanje znakova sortirano po položaju, tako da višestupčan i vizualno preraspoređen tekst čita prirodno- Enumeracija
TPdfReadingOrderbira izmeđuroContentOrderiroPhysicalLayout TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.10.0
Version 3.09.0
Dodano (Added)
TPdfImageOptimizeOptions.PreserveBilevelpreskače 1-bitne dvorazinske slike (ImageMask / skenove crteža) tijekomOptimizeImagestako da poduzorkovanje najbližeg susjeda ne uništi njihove oštre ruboveTPdfImageOptimizeOptions.MinDimensionpreskače slike manje od praga (tipično ikone ili dekorativni elementi kojima daljnja redukcija ne koristi)TPdfImageOptimizeOptions.Defaultpruža preporučenu polaznu točku (cilj 150 DPI, omjer 1.5, dvorazinske očuvane, minimalna dimenzija 8)TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.09.0
Version 3.08.0
Dodano (Added)
TPdfTileCachepruža ograničenu LRU predmemoriju iscrtanih pločica stranice ključanih po reviziji dokumenta, stranici, zumiranju, rotaciji, oznakama iscrtavanja i pravokutniku uređaja, tako da se nepromijenjene pločice ne iscrtavaju ponovno pri ponovnom iscrtavanju, a zastarjele pločice prethodnog spremanja automatski se izbacujuTTileKeyizlaže složeni ključ predmemorije sa statičnom tvornicomCreatei usporednikomEqualsTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.08.0
Version 3.07.0
Dodano (Added)
TPdf.GetAnnotationFontColoriTPdf.SetAnnotationFontColoromataju prethodno povezane ali nekorišteneFPDFAnnot_GetFontColoriFPDFAnnot_SetFontColor, izlažući čitanje i pisanje boje teksta widgeta za uređivanje polja obrasca bez izravnog diranja rječnika napomeneTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.07.0
Version 3.06.0
Dodano (Added)
TPdf.RenderPageBandediscrtava trenutnu stranicu u vodoravnim trakama putem povratnog poziva, tako da se plakati i tehničke stranice mogu izvoziti bez dodjeljivanja pune odredišne bitmape — svaka traka iscrtava se u svježe stvoreniTBitmapzadane visine trake i oslobađa se nakon povratka povratnog pozivaTPdfBandCallbackizlaže ugovor po traci (indeks trake, pomak gornjeg y, bitmapa) s Booleovim povratom koji pozivateljima omogućuje rano otkazivanje iscrtavanja u trakamaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.06.0
Version 3.05.0
Dodano (Added)
TPdf.RenderPageProgressiveWithColorSchemepokreće izvornu progresivnu petlju iscrtavanja sa shemom boja za slabovidne krozFPDF_RenderPageBitmapWithColorScheme_Start, dopuštajući pozivateljima nadjačavanje boja ispune/poteza putanje i ispune/poteza teksta za pristupačnost uz zadržavanje Continue petlje svjesne otkazivanjaTPdfColorSchemeizlaže četiri polja nadjačavanjaTColorsDefaultkoji se oslanja na PDFiumove ugrađene boje kada su sva poljaclDefaultTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.05.0
Version 3.04.0
Dodano (Added)
TPdf.ExportFDFserijalizira vrijednosti polja obrasca kao FDF (ISO 32000-1 §12.7.11) dokument uz postojeću XFDF putanju, ponovno koristeći isti podatkovni modelTXfdfFieldtako da pozivatelji skupljaju polja jednom i emitiraju bilo koji formatFdfExportToStreamiFdfExportToFileuFPdfXfdfizlažu serijski zapisivač FDF-a niske razine za pozivatelje koji izgrađuju zbirke polja neovisno o učitanomTPdfTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.04.0
Version 3.03.0
Dodano (Added)
TPdf.SaveAsSanitisedzapisuje čistu kopiju jedne revizije koja uklanja aktivan sadržaj iz kataloga (/OpenAction,/AAkataloga,/Names,/AcroForm,/Metadata), a zatim orezuje nedostižne objekte tako da tijela siročadnog JavaScripta, radnji i privitaka nestaju iz tijela datotekeTPdfSanitiseOptionsizlaže neovisne kontrole uklanjanja po vektoru plus neobavezan prolaz orezivanja dostižnosti;TPdfSanitiseReportbilježi broj uklonjenih unosa, broj orezanih objekata, brojeve bajtova i svaku pogreškuTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.03.0
Version 3.02.0
Dodano (Added)
TPdf.SaveAsPageLabelledzapisuje punu PDF kopiju čije se stablo brojeva/PageLabelskataloga zamjenjuje zadanim rasponima, primjenjujući decimalne, rimske gornje/donje i slovne gornje/donje stilove numeriranja s neobaveznim prefiksnim tekstovnim nizovima i početnim brojevima prema ISO 32000-1 §12.4.2TPdfPageLabelRange,TPdfPageLabelRanges,TPdfPageLabelStyleiTPdfPageLabelReportizlažu model raspona, enumeraciju stilova i brojeve bajtova/raspona po spremanju- Postojeći unosi
/PageLabelskataloga otkrivaju se i odbacuju osim ako se ne proslijediReplaceExisting=True, u kojem slučaju se stari unos uklanja prije ubacivanja novih raspona TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.02.0
Version 3.01.0
Dodano (Added)
TPdf.FlattenPageRotationugrađuje trenutni/Rotatesvake stranice u tok sadržaja, okvire stranice i pravokutnike napomena, a zatim resetira/Rotatena 0 — omatajućiFPDFPageObj_TransformF+FPDFAnnot_GetRect/SetRect+FPDFPage_SetMediaBox/SetCropBox+FPDFPage_SetRotationtako da vizualni raspored ostaje očuvan bez oslanjanja na savjet prikaza rotacijeTPdfFlattenRotationOptionsizlaže transformaciju napomena po stranici, zamjenu okvira stranice i kontrole automatskog ažuriranja;TPdfFlattenRotationReportbilježi obrađene, preskočene i neuspjele stranice plus ukupno transformirane objekte i napomeneTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.01.0
Version 3.00.0
Dodano (Added)
TPdf.StampPagesFromPdfstavlja izvornu stranicu kao žig u obliku pozicioniranog, skaliranog, po želji rotiranog Form XObject overlayja ili underlayja preko jedne ili više ciljnih stranica, omatajućiCreateXObjectFromPage+FPDFPageObj_SetMatrix+FPDFPageObj_SetBlendMode+FPDFPage_InsertObjectAtIndexs izričitim pravilima okvira stranice, sidra, margine, mjerila, rotacije, miješanja i z-redoslijedaTPdfOverlayOptionsiTPdfOverlayReportizlažu kontrole smještaja, transformacije, miješanja i z-redoslijeda plus brojeve zigosanih, neuspjelih i preskočenih po straniciTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 3.00.0
Version 2.99.0
Dodano (Added)
TPdf.RefreshAppearanceselektivno regenerira tok izgleda jednog widgeta krozFPDFAnnot_SetAP, izbjegavajući obnovuNeedAppearancescijele straniceTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.99.0
Version 2.98.0
Dodano (Added)
TPdfView.MouseDownsada usmjerava događaje desnog gumba u izvorni motor popunjavanja obrazaca krozFORM_OnRButtonDown, omogućujući kontekstne izbornike i interakcije widgeta desnim klikom- Stavke karte putanja 78 (mapiranje napomena poveznica), 82 (prezentacija widgeta) i 83 (model atributa strukture) potvrđene su kao već dovršene postojećom infrastrukturom
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.98.0
Version 2.97.0
Dodano (Added)
TPdf.SetDeterministicTimeiTPdf.RestoreActualTimeomogućuju testovima i reproducibilnim izgradnjama ubacivanje fiksiranog vremena stvaranja, izmjene i trenutnog vremena kroz podržane izvorne povratne poziveTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.97.0
Version 2.96.0
Dodano (Added)
TPdf.GetWidgetAdditionalActionJavaScriptčita JavaScript dodatne radnje widgeta za zadani okidač događaja krozFPDFAnnot_GetFormAdditionalActionJavaScriptbez izvršavanja ikakve skripteTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.96.0
Version 2.95.0
Dodano (Added)
TPdf.GetObjectTextizdvaja Unicode tekst tekstovnog objekta stranice krozFPDFTextObj_GetTextza precizno uređivanje sadržaja i dijagnostiku kodiranjaTPdf.GetObjectsByTypevraća indekse svih objekata stranice koji odgovaraju kategoriji (tekst, putanja, slika, obrazac, sjenčanje) za selektivni izlaz po kategorijiTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.95.0
Version 2.94.0
Dodano (Added)
TPdf.AttachmentHasKey,GetAttachmentStringValueiSetAttachmentStringValuečitaju, zapisuju i provjeravaju prilagođene vrijednosti proširenja file-spec-a na ugrađenim privicimaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.94.0
Version 2.93.0
Dodano (Added)
TPdf.InsertObjectAtIndexumeće objekt stranice na zatraženi položaj stoga putemFPDFPage_InsertObjectAtIndexumjesto da uvijek dodaje na krajTPdf.UpdateAnnotationObjectpredaje uređeni objekt izgleda napomene krozFPDFAnnot_UpdateObjecttako da promjene na objektima stranice u vlasništvu napomene pouzdano ostajuTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.93.0
Version 2.92.0
Dodano (Added)
TPdf.InsertClipPathstvara pravokutnu putanju isijecanja i umeće je u trenutnu stranicu kroz izvorne putanjeFPDF_CreateClipPathiFPDFPage_InsertClipPath, nadopunjujući postojeći inspektorPageObjectClipPathTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.92.0
Version 2.91.0
Dodano (Added)
TPdf.GetPageComplexitypretražuje trenutnu stranicu i prijavljuje brojeve objekata slika, putanja i teksta plus ukupne segmente putanja, ukupne piksele slika i prisutnost prozirnosti za planiranje iscrtavanjaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.91.0
Version 2.90.0
Dodano (Added)
TPdf.IsAnnotationSubtypeSupportedpita učitani PDFium DLL koje podtipove napomena podržava prije uređivanjaTPdf.ChooseRenderFlagsbira izvorne oznake iscrtavanja (halftone, ograničena predmemorija slika) iz konačnog mjerila i veličine odredišta za prilagodljivo poduzorkovanje slikaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.90.0
Version 2.89.0
Dodano (Added)
TPdf.GetTextRenderModeizlaže izvorni način iscrtavanja teksta (ispuna, poteza, isijecanja) tekstovnog objekta stranice za dijagnostiku autorstvaTPdf.GetTextObjectRenderedBitmapiscrtava jedan tekstovni objekt u izoliranu bitmapu kroz izvornu putanjuFPDFTextObj_GetRenderedBitmapTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.89.0
Version 2.88.0
Dodano (Added)
TPdf.GetThumbnailsada pada na iscrtavanje zamjene kada stranica nema ugrađenu minijaturu, provodeći preferenciju prvo ugrađena minijaturaTPdf.LinkAtPointvraća postoji li izvorna poveznica na koordinati prostora stranice koristećiFPDFLink_GetLinkAtPointumjesto pretraga samo po pravokutnicimaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.88.0
Version 2.87.0
Dodano (Added)
TPdf.AuditActiveContentvraća snimkuTPdfActiveContentAuditbroja JavaScript radnji, broja ugrađenih datoteka, broja potpisa, tipa XFA obrasca i dozvola dokumenta bez izvršavanja ikakve skripte ili radnjeTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.87.0
Version 2.86.0
Dodano (Added)
TPdf.GetFeatureInventorypretražuje svaku stranicu jednom i vraća objedinjeni zapis brojeva objekata teksta, putanja, slika, Form XObjectova i sjenčanja uz činjenice o privicima, potpisima, tipu obrasca, dozvolama i verziji PDF-aTPdfFeatureInventoryobjedinjuje činjenice cijelog dokumenta koje su prije zahtijevale odvojene pozive svojstava u jednu snimkuTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.86.0
Version 2.85.0
Dodano (Added)
TPdf.SaveAsReproducibleprepisuje dokument tako da dva spremanja istog stanja u memoriji proizvode bajtno identičan izlaz- Nedeterminističke vremenske oznake
/Info(/CreationDate,/ModDate) uklanjaju se, a izvorni/ID(izveden iz bajtova ovisnih o zidnom satu) izostavlja se, dok redoslijed objekata i generacija ostaju stabilni TPdfReproducibleReportprijavljuje brojeve zadržanih i orezanih objekata plus broj uklonjenih unosa vremenskih oznakaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.85.0
Version 2.84.0
Dodano (Added)
TPdf.SaveAsInlineImagesExternalisedprepisuje dokument izdvajajući svaku umetnutu slikuBI/ID/EIu ponovno upotrebljiv image XObject i zamjenjujući umetnuti blok operatorom/ImN Do- Kratice rječnika umetnutih slika (
/W,/H,/BPC,/CS,/F, vrijednosti prostora boja i vrijednosti filtara) proširuju se na svoje pune nazive image-XObjecta tako da je izdvojeni objekt sukladan standardu - Rječnik
/Resources /XObjectstranice ažurira se novim XObject referencama, a prepisani tok sadržaja komprimira se Flateom TPdfInlineImageExternaliseReportprijavljuje brojeve externaliziranih, preskočenih i neuspjelih plus broj stvorenih XObjectovaTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.84.0
Version 2.83.0
Dodano (Added)
TPdf.SaveAsFlateRecompressedprepisuje dokument i ponovno kodira prihvatljiveFlateDecodetokove pri maksimalnoj kompresiji, zamjenjujući tok samo kada izmjerena ušteda bajtova premašuje prag pozivateljaTPdfFlateRecompressOptionsbira minimalnu uštedu u bajtovima i minimalni omjer uštede tako da se već optimalni tokovi ne dirajuTPdfFlateRecompressReportprijavljuje brojeve ponovno komprimiranih, preskočenih i neuspjelih tokova zajedno s ukupnim bajtovima izvornih i ponovno komprimiranih tokova- Brojevi objekata i generacije ostaju stabilni; mijenjaju se samo ponovno komprimirani sadržaji tokova i njihove izravne vrijednosti
/Length, pa svaka preživjela unakrsna referenca ostaje valjana TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.83.0
Version 2.82.0
Dodano (Added)
TPdf.OptimizeImagesprolazi kroz svaki objekt slike stranice i poduzorkuje one čija učinkovita DPI vrijednost smještaja premašuje cilj koji bira pozivatelj, a zatim predaje svaku dotaknutu stranicu kroz izvorni generator sadržajaTPdfImageOptimizeOptionsbira ciljnu DPI vrijednost i minimalni omjer tako da se ponovno kodiraju samo slike koje su stvarno prekomjerno uzorkovaneTPdfImageOptimizeReportprijavljuje brojeve optimiziranih, preskočenih i neuspjelih slika zajedno sa strukturiranom porukom neuspjeha- Poduzorkovanje koristi prolaz najbližeg susjeda preko izvornog PDFium međuspremnika bitmape, čuvajući format izvora, stride i alfa kanal, a
FPDFImageObj_SetBitmapponovno kodira preživjelu sliku TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.82.0
Version 2.81.0
Dodano (Added)
TPdf.SaveAsDeduplicatedprepisuje dokument kao jednu čistu reviziju koja sažima kompatibilne fontove, slike i Form XObjectove na jednog dijeljenog predstavnika- Rekurzivni otisak sadržaja kombinira svaki rječnik resursa, njegov potpuno dostižni podgraf i njegov sirovi sadržaj toka, pa se duplici spajaju samo kada je njihov cijeli sadržaj identičan
- Svaka unakrsna referenca na duplicirani objekt od kojeg se odustalo prepisuje se na preživjelog predstavnika, dok obnovljena klasična tablica unakrsnih referenci drži brojeve objekata stabilnima
TPdfDedupReportprijavljuje brojeve zadržanih i orezanih objekata plus brojeve spojenih fontova, slika i Form XObjectova po kategorijiTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.81.0
Version 2.80.0
Dodano (Added)
TPdf.SaveAsReachableprepisuje dokument kao jednu čistu reviziju koja zadržava samo neizravne objekte dostižne iz kataloga i rječnika /Info prikoliceTPdfPruneReportprijavljuje brojeve zadržanih i orezanih neizravnih objekata zajedno s veličinama izvora i izlaza u bajtima te strukturirane razloge neuspjeha za šifrirani ili neispravan ulaz- Nedostižni objekti siročad ostavljeni inkrementalnim ažuriranjima, spajanjima stranica ili popravljenim spremanjima bivaju počišćeni, dok obnovljena klasična unakrsna referenca i prikolica čuvaju
/Root,/Infoi/IDbez renumeriranja TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.80.0
Version 2.79.0
Dodano (Added)
TPdf.CreateDocumentSearchstvara pretragu cijelog dokumenta prema naprijed ili natrag koja vraća jedno podudaranje odjednom bez izgradnje indeksa teksta cijelog dokumentaTPdfDocumentSearchResultprijavljuje jedinično utemeljenu stranicu, raspon znakova, podudareni tekst i pravokutnike prostora stranice za svaki rezultat- Sesije pretrage prihvaćaju
IPdfCancellationToken, zadržavaju samo trenutne PDFium ručke stranice i teksta i sigurno se završavaju kada se dokument zatvori TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.79.0
Version 2.78.0
Promijenjeno (Changed)
TPdfRangeRequestSchedulersada preotima preklapajuće transfere nižeg prioriteta tako da PDFium savjeti kritični za stranicu ne čekaju iza pozadinskih preuzimanja- Rijetki bajtovi dostupni izvana otkazuju suvišne aktivne transfere, dok supersjednuti ili duplicirani povratni pozivi transporta vraćaju False bez objavljivanja zastarjelog pokrića
- Promocija prioriteta čuva neovisne povijesti ponovljenih pokušaja, a preotimanje transporta više ne troši proračun ponovljenih pokušaja nedirnutih krajeva raspona
TPdfRangeRequestStatistics.SupersededRequestCountprijavljuje prijenosni rad istisnut savjetima višeg prioriteta ili vanjski osiguranim pokrićemTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.78.0
Version 2.77.0
Dodano (Added)
TPdf.SaveAsNormalizedContentzapisuje sintaksno normalizirani sadržaj stranica u tok ili atomarno zamijenjenu datoteku i prijavljuje brojeve normaliziranih, preskočenih i objedinjenih stranicaNormalizePdfContentSequencepruža ograničenu samostalnu normalizaciju tokena za dekodirane sekvence toka sadržaja
Promijenjeno (Changed)
- Polja
/Contentsstranice sada se mogu objediniti u jedan tok uz očuvanje znakovnih nizova, naziva, sadržaja umetnutih slika, nepoznatih operatora i grafičkog stanja kroz tokove - Neispravni tokeni, neuravnoteženi opsezi stanja, nepodržani filtri, šifrirani ulaz i prepisivanja potpisanih dokumenata imaju izričita pravila i strukturirano izvješćavanje statusa
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.77.0
Version 2.76.0
Dodano (Added)
TPdfStreamInspectorpopisuje proizvoljne fizičke PDF tokovne objekte i prijavljuje pomake objekata, sirove duljine, lance filtara, DecodeParms, markere vanjskih datoteka, stanje šifriranja i izvorne putanje slika ili privitakaCopyRawDatakopira potpune kodirane sadržaje ili provjerene prozore bajtova, dokDecodeDataprimjenjuje ASCIIHex, ASCII85, LZW, Flate, RunLength, TIFF 8-bit i PNG prediktore u deklariranom redoslijeduTPdfStreamInspectOptionsograničava resurse izvora, sirovih i dekodiranih podataka, rječnika, broja tokova i omjera širenja, sa strukturiranim izvješćima za ograničenja, neispravne podatke, nepodržane kodeke, šifriranje i neuspjehe pisanja
Promijenjeno (Changed)
- Rješavanje duljine toka sada izlaže točne raspone za izravne i neizravne vrijednosti
/Length, uključujući tokove nulte duljine i sadržaje koji sadrže doslovni nizendstream TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.76.0
Version 2.75.0
Dodano (Added)
TPdfLoadOptionsdodaje pravila kompatibilno, strogo i oporavak učitavanju iz datoteka, memorije, raspona bajtova i prilagođenih tokovaTPdfLoadReportprijavljuje izvornu rutu oporavka, valjanost xref-a, oštećene pomake, sukobe unosa, brojeve revizija, proračune audita i strukturirane probleme za klasične, hibridne i xref-stream dokumenteTPdf.SaveAsRepairedstvara punu kopiju jedne revizije i neovisno je strogo učitava prije isporuke provjerenog toka ili atomarne zamjene ciljne datoteke
Promijenjeno (Changed)
- Postojeća preopterećenja učitavanja zadržavaju kompatibilno ponašanje i sada objavljuju izvornu valjanost xref-a i status oporavka kroz
LastLoadReport - Strogo učitavanje odbacuje dokumente koji su zahtijevali izvornu obnovu xref-a ili pali na strukturnom auditu, dok izlaz popravka potpisanih dokumenata zahtijeva izričitu autorizaciju pozivatelja
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.75.0
Version 2.74.0
Dodano (Added)
TPdf.MergeFilesspaja popise izvora temeljene na datotekama s rasponima stranica i lozinkama po izvoru uz držanje najviše jednog izvornog dokumenta otvorenimTPdfBatchMergeOptionsdodaje rukovanje pogreškama zaustavi ili preskoči, uvoze ograničene na izvor ili komadane, pravila obrazaca i strukture, kontrolu umetanja, povratne pozive napretka, otkazivanje, kopiranje preferencija preglednika i kontrolu vraćanjaTPdfBatchMergeReportprijavljuje predane i vraćene stranice, ishode izvora, izvorne pozive uvoza, najveću seriju, vršni broj otvorenih izvora, detekcije pravila, probleme i završni status
Promijenjeno (Changed)
- Zadani put serije izvodi jedan izvorni uvoz stranica po izvoru tako da PDFium može ponovno koristiti klonirane objekte kroz taj izvor, a zatim zatvara izvor prije otvaranja sljedeće datoteke
- Komadani način pruža finije točke otkazivanja i manje izvorne serije, dok neuspjeli djelomični izvori i ishodi zaustavljanja ili otkazivanja mogu ukloniti sve stranice umetnute operacijom
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.74.0
Version 2.73.0
Dodano (Added)
TPdfRandomAccessStorepruža za dretve siguran sekvencijalni i pozicionirani U/I, drži mali sadržaj u ograničenoj memoriji i jednom se prelijeva u privatnu privremenu pohranu na stropu koji bira pozivateljTPdf.SaveMemoryLimitiSaveTemporaryDirectorykonfiguriraju pripremu spremanja, dokLastSaveSpillCountiLastSaveLargestMemoryBufferizlažu mjerljive dijagnostike po spremanju
Promijenjeno (Changed)
- Međuspremnici pripreme spremanja, pretvorbe standarda, validacije, šifriranja, DSS-a i PAdES-a sada dijele ograničenu radnu pohranu s ekskluzivnim spill datotekama brisanim pri zatvaranju i čišćenjem memorije
- Prilagođeni PDFium povratni pozivi blokova serijaliziraju obična premotavanja toka i koriste pozicionirana čitanja neovisna o kursoru kada ih podržava
TPdfRandomAccessStore - Pretraga XFA mogućnosti temeljena na datoteci sada čita preklapajuće blokove fiksne veličine umjesto kopiranja potpunog PDF-a u memoriju
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.73.0
Version 2.72.0
Dodano (Added)
TPdf.BeginIncrementalSave,CommitIncrementalSaveiEndIncrementalSavepružaju sesiju revizija koja dodaje samo promijenjene ili novostvorene neizravne objekteTPdfIncrementalCommitInfoprijavljuje broj promijenjenih objekata, dodane bajtove, ukupne bajtove izlaza i broj uspješnih revizija za svaku predaju
Promijenjeno (Changed)
- Svaka predaja s promjenama čuva potpuni prethodni izlaz kao točan bajtni prefiks, ne emitira reviziju kada se ništa nije promijenilo i nastavlja klasični ili xref-stream format izvora
- Izvorni inkrementalni xref-stream izlaz popravlja se sa svojim obaveznim tipom, vlastitim unosom, duljinom, indeksom i završetkom objekta prije daljnje obrade
- Šifrirani dokumenti odbacuju se prije početka sesije, dok potpisani dokumenti zahtijevaju izričitu dozvolu pozivatelja kako se pravilo potpisa ne bi slučajno zaobišlo
- Datotečno preopterećenje dovršava susjednu privremenu datoteku prije atomarne zamjene odredišta i vraća stanje sesije nakon svakog neuspjeha pisanja ili zamjene
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.72.0
Version 2.71.0
Dodano (Added)
TPdf.SaveAsObjectStreamzapisuje PDF 1.5+ datoteke s ograničenim komprimiranim grupama objekata i čistim xref tokom koji sadrži potpune unose tipa 2PackPdfObjectStreamsmože modernizirati klasičan, hibridan, xref-stream i postojeći ulaz objektnih tokova nakon rješavanja aktivne revizije
Promijenjeno (Changed)
- Lokalno raspoređivanje objekata po stranicama, prilagodljive širine polja xref, izravan pristup katalogu i konfigurabilni stropovi članova i dekodiranih bajtova uravnotežuju veličinu datoteke s performansama slučajnog pristupa
- Datotečno preopterećenje dovršava susjednu privremenu datoteku prije atomarne zamjene odredišta, dok se nevaljane inkrementalne opcije, opcije verzija i grupiranja odbacuju prije početka izlaza
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.71.0
Version 2.70.0
Dodano (Added)
TPdf.SaveAsLinearizedzapisuje pravi Fast Web View PDF u tok ili datoteku koristeći grupiranje objekata prve stranice, dvije sekcije unakrsnih referenci i Annex F tablice savjeta pomaka stranica i dijeljenih objekata- Aktivni članovi objektnih tokova materijaliziraju se automatski, čime ulazi xref-stream i objektnih tokova postaju izlaz prijateljski rasponima bez promjene vidljivog sadržaja stranice
Promijenjeno (Changed)
- Datotečno preopterećenje dovršava susjednu privremenu datoteku prije atomarne zamjene odredišta, dok tokovno preopterećenje zadržava uobičajene PDFium opcije spremanja i izričite provjere verzija
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.70.0
Version 2.69.0
Dodano (Added)
TPdfRangeRequestSchedulerpretvara PDFium savjete raspona bajtova u prioriziran, objedinjen, veličinom ograničen prijenosni rad bez prisiljavanja na susjedno preuzimanje- Potpuna i djelomična dovršenost, ograničena ponovljeni pokušaji, deduplikacija rijetke dostupnosti, statistika zahtjeva i otkazivanje sigurno po generaciji podržavaju HTTP Range i prilagođene transportne cjevovode
TPdfProgressiveDocument.RangeRequestsautomatski prima savjete dokumenta, obrasca i stranice, promovišući samo točne bajtove koji blokiraju interaktivnu stranicu
Promijenjeno (Changed)
CancelProgressiveLoadsada otkazuje aktivni rad raspona prije izvorne dostupnosti i rastavljanja toka, a zastarjela dovršenja prijenosa sigurno se zanemarujuTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.69.0
Version 2.68.0
Dodano (Added)
TPdfProgressiveDocumentodržava PDFiumovu sesiju dostupnosti živom dok udaljeni ili rastući tok slučajnog pristupa prima raspone bajtova koje PDFium tražiCheckDocumentAvailability,CheckFormAvailabilityiLoadAvailablePagevraćaju objedinjene savjeteTPdfDownloadRangetako da domaćin može dohvatiti samo podatke potrebne za otvaranje i prikaz linearizirane straniceAvailableByteCountpodržava monotona susjedna preuzimanja, dokOnDataAvailablepodržava rijetke predmemorije raspona izvan redoslijeda
Promijenjeno (Changed)
- Linearizirane datoteke koriste izvorne progresivne kontrole dokumenta, obrasca i stranice PDFiuma; nelinearizirane datoteke automatski se prebacuju na izvorni učitavatelj prilagođenog toka nakon što je potpuna datoteka prisutna
TPdfStreamAdaptermože izložiti logičnu konačnu veličinu koja se razlikuje od trenutno pohranjenih bajtova, uz očuvanje izričitog ograničenja od 4 GiB zaFPDF_FILEACCESSTPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.68.0
Version 2.67.0
Dodano (Added)
TPdfView.AllowFormEventsisključuje događaje miša, tipkovnice i fokusa koje preglednik prosljeđuje sloju popunjavanja obrazaca, za preglednik samo-za-čitanje ili onaj koji sam upravlja interakcijom obrasca- Polja obrasca i dalje se normalno iscrtavaju kada je isključen: učitavanje i zatvaranje stranice namjerno su ostavljeni bez kontrole, jer oni inicijaliziraju sloj obrasca umjesto da reagiraju na unos
- Prekidač se pridružuje postojećim prekidačima
AllowUserPageChangeiAllowUserTextSelectioni zadano je True, pa je postojeće ponašanje neizmijenjeno
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.67.0
Version 2.66.0
Dodano (Added)
- Imenovane radnje koje dokument izaziva (ISO 32000-1 §12.6.4.11) sada dospijevaju do domaćina kroz novi događaj
OnNamedAction; prije je svaka od njih bila odbacivana - Ako se njima ne rukuje, četiri standardna naziva navigacije —
NextPage,PrevPage,FirstPage,LastPage— pomiču stranicu, stežući se na prvu i zadnju umjesto da kruže TPdf.PerformNamedActionomogućuje aplikaciji da izravno pokrene isto ponašanje, vraćajući False za naziv koji nema značenje koje daje biblioteka
Ispravljeno (Fixed)
- Jedan test šifriranja mjerio je tijelo toka pretragom unatrag od
endstream, što bi povremeno zamijenilo bajt šifrata za završetak retka i prijavilo povremeni neuspjeh; biblioteka je bila ispravna cijelo vrijeme
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.66.0
Version 2.65.0
Dodano (Added)
BuildToUnicodeCMapstvara ToUnicode CMap (ISO 32000-1 §9.10.3) koji CID font treba kako bi se njegov tekst mogao kopirati, pretraživati i čitati pomoćnoj tehnologiji — bez njega tekst se ispravno iscrtava, ali se izdvaja kao ništa- Unosi se komadaju na ograničenje od 100 po bloku koje postavlja specifikacija, duplicirani glifovi zapisuju se jednom, a
.notdefse preskače - CMap slijedi konvenciju CID = GID, pa tok
CIDToGIDMapnije potreban uz njega
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.65.0
Version 2.64.0
Dodano (Added)
- Napomene rukopisa i pečata iscrtavaju se iz vlastitih objekata stranice umjesto iz toka sadržaja stranice, a ti su objekti sada dostupni:
AnnotationObjectCountiAnnotationObjectInfočitaju ih,AddPathToAnnotationpredaje napomeni putanju izgrađenu sCreatePath, aRemoveAnnotationObjectbriše jednu - Izgradnja izgleda pečata više ne zahtijeva vanjski alat: stvorite putanju kao i obično, a zatim je predajte napomeni umjesto stranici
- PDFium prihvaća objekte stranice samo na podtipovima rukopisa i pečata, pa se svaki drugi podtip odbija uz poruku koja imenuje ograničenje umjesto da nejasno ne uspije
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.64.0
Version 2.63.0
Dodano (Added)
TPdf.AddStandardFontTextiscrtava tekst jednim od 14 fontova koje je svaki PDF čitač obvezan pružiti, bez ugrađivanja ikakvog programa fonta — rezultirajuća datoteka mjerljivo je manja od istog teksta iscrtanog sAddText, koji ugrađuje sustavno rezanje fonta koje pronađe- Nova enumeracija
TPdfStandardFontimenuje svih 14 rezanja, pa pozivatelj ne može pogrešno utipkati naziv osnovnog fonta; PDFium podudara te nazive točno, a pogreška u unosu tiho bi rezultirala izostankom fonta - PDF/A i PDF/X oba zahtijevaju da je svaki font ugrađen, pa izlaz namijenjen tim profilima treba nastaviti koristiti
AddText
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.63.0
Version 2.62.0
Dodano (Added)
TPdf.TextObjectGlyphOutlinevraća obris jednog glifa fonta tekstovnog objekta kao segmente putanje, za pretvorbu teksta u vektorsku grafiku ili pregled glifa koji je zamjena fonta mogla izmijeniti- Rezultat ponovno koristi postojeći tip
TPdfPathSegments, pa se čita točno kao obris iscrtanog objekta putanje - Koordinate su u vlastitom prostoru dizajna fonta, normalizirane tako da je jedan em 1.0; zatražena veličina fonta ih ne skalira, pa pozivatelj koji želi jedinice uređaja sam množi s veličinom u točkama
- Prazan rezultat znači da font ne izlaže obris za taj glif, što nije pogreška; traženje glifa netekstovnog objekta izaziva iznimku
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.62.0
Version 2.61.0
Dodano (Added)
TPdf.InspectAvailabilityizvještava što PDFium može reći o PDF-u bez učitavanja kao dokumenta: je li datoteka linearizirana (“web optimizirana”), bi li potpuna analiza uspjela, nosi li podatke obrasca i koju bi stranicu preglednik prvi prikazao- Novi tipovi
TPdfAvailability,TPdfLinearizationiTPdfFormAvailabilitynose odgovore; tok se čita, ali ne zadržava, a njegov se položaj vraća pri povratku - Time se zatvara posljednja praznina u obitelji
FPDFAvail_*, koja je bila povezana i učitana, ali nije imala nijednog pozivatelja nigdje u biblioteci - Delphi, Lazarus i C++Builder svaki pokrivaju prijavljene činjenice, jamstvo položaja toka i odbacivanje nil toka
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.61.0
Version 2.60.0
Dodano (Added)
- Označeni sadržaj (ISO 32000-1 §14.6) sada je dostupan iz API-ja više razine:
PageObjectMarksčita svaku BDC oznaku i njezin popis svojstava sa objekta stranice,AddPageObjectMarkzapisuje jednu,RemovePageObjectMarkbriše jednu, aPageObjectMarkedContentIDprijavljuje MCID - Novi tipovi
TPdfContentMark,TPdfContentMarkParamiTPdfMarkParamKindnose naziv oznake i njezine tipizirane parametre (integer, float, string, blob), s vrstom vrijednosti riješenom iz PDFiuma umjesto pogađanom iz gettera koji uspije - Dodavanje oznake obnavlja tok sadržaja stranice, pa oznaka preživljava spremanje; to je moralo biti izričito jer
SaveAssam po sebi ne regenerira sadržaj - Delphi, Lazarus i C++Builder svaki nose šest slučajeva, uključujući onaj koji dekomprimira spremljeni tok sadržaja kako bi potvrdio da su BDC operator i njegov popis svojstava doista smješteni
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.60.0
Version 2.59.0
Dodano (Added)
TPdfAnnotationdobivaHasLinkUriiLinkUri, paCreateAnnotationsada može proizvesti radnu web poveznicu: napomena sprema se s/URIradnjom usmjerenom na zadanu adresu- Postavljanje URI-ja poveznice na bilo koji podtip osim
anLinkizaziva iznimku, jer samo napomena Link nosi rječnik radnji - Polje je za sada samo za pisanje; čitanje cilja poveznice natrag ide kroz obitelj
FPDFLink_*, kojoj treba ručka dokumenta - Delphi, Lazarus i C++Builder svi provjeravaju da spremljeni bajtovi nose
/URIradnju i ciljnu adresu
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.59.0
Version 2.58.12
Dodano (Added)
- PDF/X validacija prijavljuje
pvxiTrimBoxWithArtBoxkada stranica nosi/TrimBoxi/ArtBoxzajedno; oba navode završenu stranicu, pa RIP nema način znati koji je od njih mjerodavan (ISO 15930) - PDF/X validacija prijavljuje
pvxiPageBoxOutsideMediaBoxkada/TrimBoxili/BleedBoxizlazi izvan/MediaBox, uključujući okvir s negativnim ishodištem; okvir izvan medija ne može se reproducirati - Pravokutnici se normaliziraju prije usporedbe, pa se prihvaća bilo koji redoslijed kutova, a okvir koji točno dodiruje rub medija i dalje prolazi validaciju
- Izvješća preflighta razvrstavaju oba problema pod strukturu i imenuju konkretno sredstvo popravka
- Delphi, Lazarus i C++Builder svi pokrivaju dva odbijena slučaja i jedan sukladan slučaj
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.12
Version 2.58.11
Dodano (Added)
- PDF/UA validacija prijavljuje
pvuaiTociWithoutTockada dokument označava TOCI unose, ali nikada ne označava TOC spremnik kojem pripadaju, što pomoćnoj tehnologiji ostavlja najavljivanje stavki kazala bez kazala (ISO 14289-1 §7.7) - Izvješća preflighta razvrstavaju problem pod strukturu i preporučuju zamatanje unosa u TOC element
- C++Builder dobiva svoje prvo PDF/UA testno pokriće uz slučajeve Delphija i Lazarusa
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.11
Version 2.58.10
Dodano (Added)
- PDF/A validacija prijavljuje
pvaiSymbolicTrueTypeEncodingkada simbolički TrueType font nosi unos/Encoding; ISO 19005-1 §6.3.7 priznaje samo ugrađeni cmap fonta, pa bi ga/Encodingproturječio - Simbolička oznaka čita se iz
/FontDescriptor, bez obzira je li zapisana izravno u rječniku fonta ili neizravno referencirana; nesimbolički font zadržava svoj obavezni/WinAnsiEncodingili/MacRomanEncodingbez da bude označen - Izvješća preflighta razvrstavaju problem pod sadržaj i preporučuju uklanjanje unosa
- Delphi i Lazarus pokrivaju označeni slučaj plus oba prihvaćena; C++Builder pokriva označeni i nesimbolički slučaj
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.10
Version 2.58.9
Dodano (Added)
- PDF/A validacija prijavljuje ograničenja implementacije spremnika iz ISO 19005-1 Annex C:
pvaiNameOverLimitza nazive duže od 127 bajtova,pvaiArrayOverLimitiznad 8191 elementa,pvaiDictOverLimitiznad 4095 unosa ipvaiNestingOverLimitiznad 28 razina ugniježđivanja - Ograničenja su uključiva, pa spremnik koji leži točno na jednom od njih i dalje prolazi validaciju; testovi fiksiraju i odbijenu i prihvaćenu stranu svake granice
- Izvješća preflighta razvrstavaju ta četiri problema pod strukturu i imenuju konkretno ograničenje u svakoj preporuci
- Delphi i Lazarus pokrivaju sva četiri ograničenja plus granične slučajeve; C++Builder pokriva ograničenje polja i granicu
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.9
Version 2.58.8
Dodano (Added)
- PDF/R validacija prijavljuje
pvriPageImageMismatchkada broj slika ne odgovara broju stranica; ISO 23504-1 §6.5.1 čini svaku stranicu točno jednom slikom trake, pa stranica bez ijedne ili s više njih nije sukladna - Delphi, Lazarus i C++Builder testovi pokrivaju stranicu bez slike, stranicu s dvije i sukladan slučaj s jednom slikom
Promijenjeno (Changed)
- PDF/R testovi ubacivanja markera sada polaze od izvorne stranice koja već nosi sliku trake, jer ubacivanje markera dodaje metapodatke i ne može osigurati sadržaj stranice
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.8
Version 2.58.7
Dodano (Added)
- PDF/R validacija prijavljuje
pvriFontForbiddenkada stranica imenuje resurs fonta; stranica PDF/raster nosi skeniranu sliku i ništa drugo (ISO 23504-1 §6.5.2) - PDF/R validacija prijavljuje
pvriForbiddenImageFilterza kodiranja traka izvan bijelog popisa, pa se/LZWDecode,/RunLengthDecode,/ASCII85Decode,/ASCIIHexDecode,/JBIG2Decodei/Cryptodbacuju, dok/CCITTFaxDecode,/DCTDecode,/JPXDecodei/FlateDecodeprolaze (ISO 23504-1 §6.6) - Izvješća preflighta razvrstavaju oba problema pod sadržaj i preporučuju konkretan postupak
- Delphi, Lazarus i C++Builder testovi pokrivaju resurs fonta, odbijeni filtar i stranicu koja koristi samo kodiranja s bijelog popisa
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.7
Version 2.58.6
Dodano (Added)
- PDF/E validacija prijavljuje
pveiFontNotEmbeddedkada dokument pokazuje uporabu fonta, ali ne nosi ugrađeni program fonta, pa se zahtjev provjerava i na putu bez DLL-a i kroz PDFium - Tehnički crtež mora se iscrtavati jednako i desetljećima kasnije, pa ISO 24517-1 ne izuzima nijedan od standardnih 14 fontova; provjera se jednako primjenjuje na
/Type1,/TrueType,/Type0i/MMType1 - Izvješća preflighta razvrstavaju novi problem pod sadržaj i preporučuju ugrađivanje svakog programa fonta
- Delphi, Lazarus i C++Builder testovi pokrivaju deskriptor bez programa, ugrađeni
/FontFile2i dokument koji uopće ne koristi font
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.6
Version 2.58.5
Dodano (Added)
InjectPdfEMarkerssada zapisuje output intent koji zahtijeva ISO 24517-1 §6.2: ugrađeni sRGB ICC odredišni profil,/GTS_PDFE1output intent koji ga imenuje i polje/OutputIntentskataloga, sve kao dio istog inkrementalnog ažuriranja- Tok profila izvodi svoj
/Niz ICC zaglavlja umjesto da pretpostavlja tri kanala, pa bi se CMYK profil opisao ispravno - PDF/E validacija prijavljuje
pveiMissingOutputIntentipveiMissingIccProfile, pa kandidat bez navedenog uvjeta boje više nije prihvaćen - Delphi, Lazarus i C++Builder testovi pokrivaju prihvaćeni output intent, onaj bez odredišnog profila i katalog bez ikakvog output intenta
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.5
Version 2.58.4
Dodano (Added)
- PDF/X validacija sada prijavljuje
pvxiFontNotEmbeddediz pretrage bajtova, pa se neugrađeni font hvata na putu bez DLL-a umjesto samo kroz provjeru temeljenu na PDFiumu - Za razliku od PDF/A, standardnih 14 fontova nisu izuzeti u PDF/X, pa se svaka uporaba fonta bez ugrađenog programa fonta prijavljuje
- Provjera ostaje konzervativna: aktivira se samo kada datoteka pokazuje uporabu fonta, a uopće ne nosi
/FontFile,/FontFile2ili/FontFile3, jer brojanje deskriptora naspram programa stvara lažne pozitive na dijeljenim deskriptorima - Delphi, Lazarus i C++Builder testovi pokrivaju deskriptor bez programa, ugrađeni program i dokument koji ne koristi nijedan font
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.4
Version 2.58.3
Dodano (Added)
- PDF/X validacija sada prijavljuje
pvxiColorSpaceForbiddenkada kandidat za PDF/X-1a nosi/DeviceRGB,/CalRGBili/Lab, koje ISO 15930-1 §6.2 isključuje iz svoje CMYK razmjene - Provjera je ograničena samo na PDF/X-1a, pa PDF/X-3 i noviji i dalje dopuštaju RGB i neovisne o uređaju prostore boja koje sparuju s output intentom
- Testiraju se samo nedvosmisleni tokeni naziva prostora boja;
ICCBasedtok zahtijeva rješavanje svog/Ni ostaje u sloju modela objekata - Delphi, Lazarus i C++Builder testovi pokrivaju označeni RGB prostor, označeni Lab prostor, prihvaćeni par CMYK i sivih tonova te dopušteni slučaj na PDF/X-3
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.3
Version 2.58.2
Dodano (Added)
- PDF/X validacija sada prijavljuje
pvxiTransparencyForbiddenza grupu prozirnosti ili aktivnu meku masku, koje zabranjuju ISO 15930-1 §6.2 (PDF/X-1a) i ISO 15930-3 §6.3 (PDF/X-3) - Provjera je ograničena na otkrivenu sukladnost, pa PDF/X-4 i PDF/X-6 i dalje dopuštaju prozirnost, a datoteka kojoj razina nije mogla biti prepoznata nikada se ne označava pravilom koje se možda ne odnosi na nju
- Meka maska izričito isključena s
/SMask /Nonene tretira se kao prozirnost PdfHasActiveSMaskpremješten je izFPdfPdfau sučeljeFPdfPdfCommontako da svaki validator može dijeliti jedno pravilo meke maske- Delphi, Lazarus i C++Builder testovi pokrivaju označenu grupu na X-1a, označenu meku masku na X-3, onemogućenu meku masku i dopušteni slučaj na X-4
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.2
Version 2.58.1
Dodano (Added)
- PDF/X validacija sada provjerava oblik output intenta koji zahtijeva ISO 15930-7 §6.2.4:
pvxiOutputIntentSchemeprijavljuje podtip koji je prisutan, ali nije/GTS_PDFX, apvxiOutputIntentMissingIdentifierprijavljuje nedostajući/OutputConditionIdentifier - Podtip se podudara kao cijeli token naziva, pa dulji naziv poput
/GTS_PDFXVersionviše ne prolazi, dok#xxizbjegnuti zapis istog naziva i dalje prolazi - Output intent koji uopće ne nosi podtip ostavlja se po strani, jer njegovo odsustvo već prijavljuju problemi razine markera
- Izvješća preflighta razvrstavaju oba problema pod kategoriju output intenta i predlažu popravak
- Delphi, Lazarus i C++Builder testovi pokrivaju prihvaćeni podtip, PDF/A podtip, dulji token naziva, odsutan podtip i nedostajući identifikator uvjeta
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.58.1
Version 2.58.0
Promijenjeno (Changed)
- Svih 35 povratnih poziva koje PDFium pokreće iz vlastitih C++ okvira (popunjavanje obrazaca, XFA, JavaScript platforma, pauza progresivnog iscrtavanja te čitanje i pisanje toka) sada zadržavaju svaku Pascal iznimku i vraćaju dokumentiranu vrijednost neuspjeha umjesto da se odmotavaju preko jezične granice
- Rukovatelj događaja koji izaziva iznimku, neuspjela dodjela memorije ili neočekivana pogreška unutar povratnog poziva stoga više ne mogu srušiti proces ni ostaviti PDFium u neodređenom stanju
Ispravljeno (Fixed)
- Registracija vremenskog brojača obrasca uzrokovala je curenje njezinog unosa kada se temeljni brojač nije mogao stvoriti
Dodano (Added)
- Delphi, Lazarus i C++Builder testovi sada pokrivaju spremanje u odredišni tok koji odbija pisanje i provjeravaju da dokument ostaje upotrebljiv i sposoban za spremanje nakon toga
Version 2.57.8
Ispravljeno (Fixed)
- Starija izdanja Delphija (XE5 i ranija) prestala su kompajlirati probnu biblioteku s
E2003 Undeclared identifier: 'GetTickCount64'uFPdfPades.pas, jer jedinica Windows isporučena s tim kompajlerima ne izvozi taj simbol - Isti kompajleri nisu uspijevali ni na
GetUserDefaultLocaleNameuPDFium.pasni na dodjeliTBytesuarray of ByteuGetXfaFormPackets, pa se XFA povratni poziv locale i snimka paketa sada grade i na tim kompajlerima
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.8
Version 2.57.7
Promijenjeno (Changed)
- Svako prepisivanje pri spremanju sada skraćuje odredišni tok prije pisanja umjesto da ga samo premotava, pa međuspremnik dobavljen od pozivatelja koji je već sadržavao dulji dokument ne može zadržati zastarjeli kraj iza novog
%%EOF - Delphi, Lazarus i C++Builder testovi sada pokrivaju spremanje u prethodno popunjen tok
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.7
Version 2.57.6
Ispravljeno (Fixed)
- Pretraga objekata koja prethodi šifriranju prihvaćala je nizove znamenki bilo koje duljine, pa je dugački broj bilo gdje u datoteci mogao prijeći u negativan ili lažan broj objekta i dodati fantomski unos obnovljenoj tablici unakrsnih referenci
- Brojevi objekata iznad ograničenja ISO 32000-1 Annex C i generacije iznad 65535 sada se odbacuju kao zaglavlja objekata umjesto da se skraćuju
Dodano (Added)
- Delphi, Lazarus i C++Builder testovi sada provjeravaju točan broj aktivnih unosa obnovljene tablice
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.6
Version 2.57.5
Ispravljeno (Fixed)
- Šifriranje s
EncryptMetadata = Falsezapisivalo je/EncryptMetadata falseu rječnik Encrypt, ali i dalje šifriralo tok metapodataka dokumenta, pa je čitač koji slijedi tu deklaraciju pronalazio nečitljiv XMP - Tok
/Type /Metadatasada se kopira neizmijenjen kada je šifriranje metapodataka isključeno, dok se svaki drugi tok i dalje šifrira
Dodano (Added)
AnsiNameTokenMatchesKeysada je dio sučeljaFPdfPdfCommonza usporedbe naziva sa sviješću o razdjelnicima- Delphi, Lazarus i C++Builder testovi sada pokrivaju oba načina šifriranja metapodataka
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.5
Version 2.57.4
Ispravljeno (Fixed)
- Tablica unakrsnih referenci obnovljena tijekom šifriranja izostavila je obavezno zaglavlje slobodnog popisa objekta 0 koje zahtijeva ISO 32000-1 §7.5.4, pa je njezin prvi pododjeljak počinjao jedan objekt kasnije
- Svaki obnovljeni unos tvrdio je generaciju 0; objekti zapisani s višom generacijom sada je zadržavaju, pa se tablica slaže sa zaglavljima objekata na koja pokazuje
Dodano (Added)
- Delphi, Lazarus i C++Builder testovi sada pokrivaju unos zaglavlja slobodnog popisa i očuvanje generacije u obnovljenoj tablici
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.4
Version 2.57.3
Ispravljeno (Fixed)
- Šifrirani izlaz izostavljao je ključnu riječ
streamsvakog objekta toka, pa spremljena datoteka više nije bila valjana PDF sintaksa, a strogi čitači prijavljivali su sadržaj stranice ni kao tok ni kao polje tokova - Prepisivanje
/Lengthpodudaralo je/Lengthkao običan podniz, pa je rječnik toka koji nosi/Length1(bilo koji ugrađeni font) imao oštećen naziv ključa dok je stvarna duljina ostala zastarjela - Tok koji navodi svoju duljinu neizravno kao
/Length N 0 Rimao je broj objekta prepisan novom duljinom; unos je sada zamijenjen izravnom šifriranom duljinom - Rječnik toka bez ikakvog
/Lengthsada ga dobiva umjesto da čitača ostavi bez duljine
Dodano (Added)
AnsiFindDictKeyTokensada je dio sučeljaFPdfPdfCommonza pretrage ključeva rječnika najviše razine sa sviješću o razdjelnicima- Delphi, Lazarus i C++Builder testovi sada pokrivaju očuvanje
/Length1, zamjenu neizravne duljine i slaganje veličine tijela toka
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.3
Version 2.57.2
Ispravljeno (Fixed)
SaveAsEncryptediSaveAsEncryptedToStreamsRevision = erR6proizvodili su dokumente koji su odbacivali vlastitu ispravnu lozinku u otprilike jednoj od četiri datoteke, jer je brojač krugova algoritma 2.B iz ISO 32000-2 §7.6.4.3 započinjao jedan krug prenisko, a dodatni krug mijenjao je vrijednosti/U,/O,/UEi/OE- R6 šifrirani dokumenti sada se ponovno otvaraju s korisničkom ili vlasničkom lozinkom u svakom sukladnom čitaču i dalje odbacuju pogrešnu lozinku
Dodano (Added)
- Testne garniture Lazarus i C++Builder dobile su pokriće šifriranja koje je prije bilo samo u Delphiju: duljine R6 ključeva, polja rječnika Encrypt, ponovljeno putovanje šifriranja i otvaranja te odbacivanje pogrešne lozinke
Promijenjeno (Changed)
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.2
Version 2.57.1
Promijenjeno (Changed)
- Unošenje teksta u polje obrasca, pomicanje pokazivača umetanja i prebacivanje potvrdnih okvira sada ponovno iscrtavaju samo područje koje PDFium prijavljuje kao oštećeno umjesto cijelog preglednika
- Okviri oštećenja normaliziraju se za os Y stranice usmjerenu prema gore, proširuju za jedan piksel kako bi obrubi widgeta s glačanjem rubova ostali čisti i obrezuju se na vidljivo klijentsko područje
- Okvir oštećenja koji je u potpunosti kliznut izvan prikaza više ne zakazuje ponovno iscrtavanje, dok neaktivni prikaz ili nemapirana stranica i dalje padaju na potpuno ponovno iscrtavanje
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ograničeno poništavanje obrasca, obrnute okvire stranice, okvire izvan ekrana i sigurnost neaktivnog prikaza
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.1
Version 2.57.0
Dodano (Added)
TPdfThumbnailView.Orientationpodržava okomiti i vodoravni raspored minijatura uz zadržavanje postojećeg okomitog zadane vrijednostiFirstVisiblePageIndex,LastVisiblePageIndexiEnsureCurrentPageVisibleizlaže i upravljaju oknom minijatura pomoću jedinično utemeljenih indeksa stranica
Promijenjeno (Changed)
- Promjena
CurrentPageIndexsada pomiče odabranu minijaturu u prikaz u bilo kojem usmjerenju - Delphi, Lazarus i C++Builder testovi sada pokrivaju zadane vrijednosti usmjerenja, prebacivanje, vidljive raspone i vidljivost odabrane stranice
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.0
Version 2.56.2
Promijenjeno (Changed)
HighlightSearchText,AddSearchTextHighlightiClearHighlightsada poništavaju samo pravokutnike uređaja za rasponi pretraživanja koji su dodani ili uklonjeni umjesto ponovnog iscrtavanja cijelog preglednika- Zamjena isticanja istim podudaranjima ili dodavanje dupliciranih podudaranja više ne raspoređuje nepotrebno ponovno iscrtavanje
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ograničeno poništavanje, idempotentna ažuriranja, brisanje i sigurnost neaktivnog prikaza
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.56.2
Version 2.56.1
Promijenjeno (Changed)
TPdfThumbnailViewsada ponovno koristi iscrtane bitmape za stranice koje ostaju vidljive između ponovnih iscrtavanja i susjednih položaja klizanja- Predmemorija zadržava samo trenutni vidljivi raspon stranica i oslobađa unose točno kada stranice napuste taj raspon, dodijeljeni dokument se promijeni ili se promijene dimenzije minijatura
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ponovnu uporabu predmemorije, orezivanje okna, poništavanje veličine, zamjenu dokumenta i uništavanje komponente
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.56.1
Version 2.56.0
Dodano (Added)
TPdfView.CutSelectedFormTextToClipboardiTPdfView.PasteFormTextFromClipboardpružaju Unicode uređivanje međuspremnika za fokusirani uređivati widget obrasca
Promijenjeno (Changed)
- Fokusirani uređivači obrazaca sada rukuju standardnim tipkovničkim prečacama copy, cut, paste i select-all prije prosljeđivanja tekstovnog unosa u PDFium
- Cut i paste odbijaju polja samo-za-čitanje i sesije bez dozvole popunjavanja ili izmjene obrasca, dok cut uspješno kopira prije uklanjanja odabranog teksta
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ponašanje bez fokusa, povratni prečac i odbijanje samo-za-čitanje
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.56.0
Version 2.55.0
Dodano (Added)
TPdfView.AddSearchTextHighlightdodaje jedinstvena podudaranja za još jedan termin pretraživanja na prevlaku trenutne stranice, omogućujući da nekoliko upita ostane istaknuto zajedno
Promijenjeno (Changed)
HighlightSearchTextostaje ulazna točka za zamjenu i sada dijeli dodatni skener, dok se duplicirani rasponi znakova zanemaruju iClearHighlightuklanja cijeli akumulirani skup- Delphi, Lazarus i C++Builder testovi sada pokrivaju akumulaciju različitih upita i suzbijanje dupliciranih raspona
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.55.0
Version 2.54.0
Dodano (Added)
TPdfsada izlaže potpune snimke objekata stranice, grupna ažuriranja stilova, afine transformacije objekata, segmente putanje, putanje isijecanja i Form XObject potomke- Inspekcija znakova sada uključuje boje ispune i poteza, naziv i oznake fonta, labave granice glifa, učinkovite matrice, ručke tekstovnih objekata i pretvorbu znak-u-tekst-indeks
- Napomene sada round-trip geometriju ruba i normalne, rollover i down tokove izgleda
- Novi pristupnici sirovih i dekodiranih minijatura, transformacije sadržaja stranice i napomena te
RenderPageWithMatrixpružaju izravne napredne putanje iscrtavanja i uređivanja
Promijenjeno (Changed)
- Promjene stila objekata stranice sada se mogu predati kao jedna skupina tako da PDFium regenerira sadržaj stranice samo jednom
- Reprodukcija matrice koristi postojeću putanju bitmapa zero-copy kada je raspored odredišne bitmape kompatibilan
Version 2.53.1
Ispravljeno (Fixed)
- Ugrađeni kineski naslov izbornika Copy sada koristi kodne točke Unicode neovisne o kodiranju i prikazuje se ispravno u Lazarus izgradnjama
- Stariji Delphi alatni lanci mogu kompajlirati
FPdfAsynckada njihova jedinicaWinapi.Windowsizostavlja deklaracijuGetTickCount64
Version 2.53.0
Dodano (Added)
- Nova
Tests.ApiCoveragetestna garnitura koja pokriva javne TPdf API-je koji prije nisu imali nikakvo end-to-end testno pokriće:GetPageBox/SetPageBox(MediaBox/CropBox čitanje/pisanje, pogreške nedostajućeg-okvira i round-trip spremanja),FlattenPage/FlattenAllPages(povratna vrijednost i očuvanje broja stranica),GenerateFormAppearances(no-op na dokumentima bez obrazaca),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 s round-trip lozinke — provjerava da šifrirana datoteka odbija otvaranje bez lozinke i otvara se s njom), provjera granicaDeletePage(stranica 0 i izvan raspona izazivajuEPdfError), teHasContents/HasAuthorStražarne vrijednosti napomena uvedene u v2.38.0 (provjeravajući daDefault(TPdfAnnotation)ostavlja ih naFalse)
Version 2.52.0
Dodano (Added)
TPdfView.CopySelectedFormTextToClipboardkopira odabir teksta unutar fokusiranog AcroForm widgeta u Windows međuspremnik kaoCF_UNICODETEXT
Promijenjeno (Changed)
- Operacije kopiranja teksta stranice i fokusiranog obrasca sada dijele isti obrambeni Unicode zapisivač međuspremnika i ostavljaju međuspremnik nepromijenjenim kada je njihov odabir prazan
- Delphi, Lazarus i C++Builder testovi sada pokrivaju neaktivne ili nefokusirane pozive kopiranja obrasca i povratno putovanje odabira fokusiranog obrasca kroz Windows međuspremnik
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.52.0
Version 2.51.0
Dodano (Added)
TPdfView.SelectLineAtbira vizualnu liniju teksta koja sadrži jedinično utemeljenu stranicu i nulti indeks znakova bez zahtijevanja unosa miša
Promijenjeno (Changed)
- Programski odabir linije, odabir trostrukim klikom te
Shift+HomeiliShift+Endsada dijele jedan model granica linije temeljen na znakovnim okvirima - Delphi, Lazarus i C++Builder testovi sada pokrivaju stabilni odabir linije i nevaljane indekse stranica ili znakova
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.51.0
Version 2.50.0
Dodano (Added)
TPdf.LoadDocumentsada prihvaća nulto utemeljeni prozorIndexiCountuTBytesmeđuspremnik, omogućujući ugrađenim PDF-ovima da se učitaju bez dodjele privremenog odsječka polja bajtova
Promijenjeno (Changed)
- Učitavanje raspona bajtova odbija negativne ili izvan-raspona prozore prije mijenjanja stanja dokumenta i čuva postojeće opcije životnog vijeka pohranjenog i posuđenog međuspremnika
- Delphi, Lazarus i C++Builder testovi sada pokrivaju prozore ugrađenih PDF-ova i nevaljane argumente raspona bajtova
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.50.0
Version 2.49.1
Dodano (Added)
TPdfView.FitModesada podržavapfmFitHeightza prilagodbu trenutne stranice vidljivoj visini prikaza uz dopuštanje vodoravnog pomicanja po potrebi
Ispravljeno (Fixed)
- Načini prilagodbe sada konvergiraju nakon što promjena vidljivosti kliznice promijeni klijentsko područje, čime se rezultati fit-page, fit-width i fit-height održavaju dosljednima između VCL-a i LCL-a
- Delphi, Lazarus i C++Builder testovi preglednika sada pokrivaju odabir
pfmFitHeighti povratne puteve enumeracija TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.49.1
Version 2.49.0
Dodano (Added)
- Javna površina vezanja PDFiuma sada pokriva svih 470 izvezenih funkcija u pregledanim zaglavljima, uključujući pristup opisima privitaka putem
FPDFAttachment_SetDescriptioniFPDFAttachment_GetDescription TPdfsada izlaže opise privitaka, valjanost unakrsnih referenci, pomake kraja trailera, reviziju security-handlera, 64-bitno učitavanje u memoriju, raspone bajtova potpisa, raspone teksta web-veza i proširene snimke podataka slike, filtra, metapodataka i ICC profila- Pomoćnici obrazaca sada podržavaju izvorni fokus polja, upite i ažuriranja fokusirane opcije izbora, prosljeđivanje kotačića miša, zapisive poteze tintom i preslojavanja obrazaca nakon progresivnog iscrtavanja
Promijenjeno (Changed)
FormFieldCount, indeksi polja obrasca i redoslijed tabulatora sada opisuju samo bilješke widgeta umjesto da uključuju nepovezane bilješke stranice- Bezaglavi
TPdfstranice sada ulaze i izlaze iz životnog ciklusa stranice popunjavanja obrasca tako da izvorni fokus i API-ji fokusiranih polja rade bezTPdfView - Izvozi opisa privitaka su ograničeni mogućnostima tako da aplikacije koje koriste stariju izradu PDFiuma i dalje mogu učitati biblioteku i otkriti nedostupnu značajku
Ispravljeno (Fixed)
- Progresivno iscrtavanje stranice sada crta kontrole obrasca kada je popunjavanje obrasca omogućeno
- Delphi, Lazarus i C++Builder testovi sada pokrivaju novu dijagnostiku dokumenata, opise privitaka, putove tinte, ponašanje obrazaca, raspone bajtova potpisa, raspone web-veza i metapodatke slika
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.49.0
Version 2.48.0
Dodano (Added)
TPdfMatrixsada izlaže tvornice, kloniranje i dodjeljivanje, dijagnostiku konačnog stanja i invertibilnosti, usporedbu utemeljenu na toleranciji, pristup translaciji, izvještavanje determinante i afinu dekompoziciju- Sastavljanje prepend, zakretanje osjetljivo na stožer, skaliranje, iskošenje i okretanja, plus mapiranje pravokutnika stretch, contain i cover podržavaju tijekove rada u lokalnom prostoru i prilagođene rasporede bez ručne aritmetike koeficijenata
- Nemutirajući obrnuti pristup, obrnuto mapiranje točaka, transformacije vektora i četverokuta, dinamične serije točaka i pravokutnika, in-place varijante i jednoprolazne transformirane granice proširuju površinu geometrije koja se može ponovno upotrijebiti
Promijenjeno (Changed)
- Translacija, skaliranje i okretaji osi sada ažuriraju samo zahvaćene koeficijente umjesto usmjeravanja kroz opće afino množenje
- Transformacija pravokutnika normalizira svoj ulaz jednom, koristi specijaliziranu točnu putanju poravnatu s osima gdje je moguće i izračunava opće rotirane granice bez privremenih zapisa točaka
- Transformacije serija točaka i pravokutnika dodjeljuju jedan polazni niz ili ponovno koriste pohranu pozivatelja, dok se transformirane granice točaka akumuliraju u jednom prolazu bez posrednog niza
Ispravljeno (Fixed)
- Mapiranje pravokutnika odbacuje rezultate nulte veličine, nekonačne i s preljevom
Singleprije objavljivanja neupotrebljive matrice - Delphi, Lazarus i C++Builder testovi sada provjeravaju redoslijed sastavljanja, invarijante stožera, obrnute povratne puteve, prilagođene pravokutnike, dekompoziciju i ponašanje skupne geometrije
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.48.0
Version 2.47.0
Dodano (Added)
FPdfAsyncsada pruža strukturirane razloge i poruke otkazivanja, uklonjive registracije povratnih poziva, izvore utemeljene na vremenskom ograničenju, čekanje otkazivanja i atomske try-cancel operacije putem proširenih sučelja koja čuvaju izvorni APITPdfFuture<T>.RunExdodaje konfigurabilnu otpremu odgovora i prioritet radnika dok omotnice rezultata izlažu ID-ove operacija, valjanost vrijednosti, nazive klasa iznimaka, vremenske oznake završetka i pomoćnike za završetak koji se mogu ponovno upotrijebitiTPdfAsyncExecutordodaje ponovno upotrebljivi fiksni bazen radnika s četiri FIFO trake prioriteta, neobavezno protutlak ograničenog reda, otkazive ručke zadataka, čekanje osjetljivo na vremensko ograničenje, snimke zadataka, agregirane statistike i优雅no gašenje
Promijenjeno (Changed)
- Ponavljajući asinkroni zadaci mogu ponovno upotrijebiti dretve radnika i operacije reda O(1) umjesto stvaranja dretve za svaki zadatak, dok sinkronizirani završetak ostaje dostupan za UI domaćine
- Neuspjesi izvršitelja i futurea čuvaju dijagnostiku klase i poruke iznimaka, otkazivanje čuva svoj izvorni razlog, a iznimke povratnih poziva ostaju izolirane od životnog ciklusa radnika i gašenja
- Delphi, Lazarus i C++Builder testovi sada pokrivaju proširenu površinu otkazivanja, metapodatke futurea, kontrolu zadataka, protutlak, redoslijed prioriteta, statistike, neuspjehe i gašenje
Ispravljeno (Fixed)
- Istovremeni vlasnici otkazivanja sada primaju deterministički rezultat prvog zapisivača umjesto da se oslanjaju na zasebni slijed promatranja i otkazivanja
- Čekanje na mirovanje glavne dretve obrađuje sinkronizirane odgovore zadataka, sprječavajući da završeni radnik ostavi izvršitelja trajno nemirujućim tijekom koordiniranog gašenja
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.47.0
Version 2.46.0
Dodano (Added)
FPdfAsn1sada izlaže klase identifikatora, 64-bitno kodiranje i dekodiranje brojeva visokih oznaka, analizirane TLV zapise, prozore podređenog čitača s nultim kopiranjem, tipizirane dekodere primitiva i isječke sadržaja ili kodiranih vrijednosti- DER pisci sada podržavaju puni nepredznačeni 64-bitni INTEGER raspon, provjeravan proizvoljni INTEGER sadržaj, ENUMERATED, automatski odabir UTCTime ili GeneralizedTime, application i private oznake, viševrijednosni SEQUENCE i kanonski sortirani SET OF izlaz
ValidateDervraća pogreške provjere osjetljive na pomak primjenjujući konfigurabilna ograničenja ugniježđenja, broja čvorova, duljine sadržaja, broja pogrešaka, korijena i neobaveznog sortiranja SET-a
Promijenjeno (Changed)
- DER konkatenacija i viševrijednosna kompozicija koriste jednu alokaciju izlaza, međuspremnici pisca izlažu operacije reserve, count, capacity i prijenosa vlasništva, a sortiranje SET OF sada koristi
O(n log n)sortiranje spajanjem - BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime i GeneralizedTime vrijednosti primaju provjere kanonskog oblika tijekom kodiranja, tipiziranog dekodiranja ili provjere
- Lazarus paket za vrijeme izvođenja sada izvozi
FPdfAsn1, a Delphi, Lazarus i C++Builder testni skupovi vježbaju istu javnu DER površinu
Ispravljeno (Fixed)
- Kontekstno specifični brojevi oznaka veći od 30 više se ne skraćuju u niskih pet bitova identifikatora
- Deformirani identifikatori visokih oznaka, ne-minimalne određene duljine, nevaljani UTF-8, nenulto punjenje BIT STRING-a, nevaljana vremenska polja, zaostali korijeni i povrede ograničenja resursa odbacuju se deterministički
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.46.0
Version 2.45.0
Dodano (Added)
FPdfPreflightReportsada dodjeljuje ozbiljnost Info, Warning ili Error svakom problemu i izlaže API-je ozbiljnosti, statusa, kategorije, koda problema, pretraživanja, pretraživanja, spljošćavanja i filtriranja na razini standarda i izvješća- Preflight izvješća sada izvoze SARIF 2.1.0, JUnit XML, NDJSON i izvorni XML putem odgovarajućih metoda
To*iSave*ToFileza CI, automatizaciju i cjevovode strujanja - Stabilni SHA-256 otisci prstiju izvješća identificiraju ekvivalentne rezultate provjere neovisno o izvornim putanjama i vremenskim oznakama generiranja
Promijenjeno (Changed)
- JSON, CSV, text, Markdown i HTML izvješća sada uključuju ozbiljnost i proširene sažetke statusa; HTML dodaje pristupačne naslove tablica i sažetak statusa
- Konstrukcija zbirki problema i standarda koristi geometrijski rast kapaciteta, rezultati upita su predimenzionirani, JSON izbjegavanje piše u jedanograničeni izlazni međuspremnik, a sve datoteke izvješća koriste jednog izravnog UTF-8 pisca
- Sažeci kategorija problema koriste determinističko sortiranje, vremenske oznake uključuju milisekunde, JSON nosi
formatVersion: 2, a CSV ćelije neutraliziraju formule proračunskih tablica
Ispravljeno (Fixed)
- JSON izvoz sada čuva valjane dopunske Unicode parove i zamjenjuje izolirane UTF-16 surogatne kodne jedinice umjesto da emitira deformirane skalarne podatke
- HTML izvoz sada izbjegava apostrofe, a filtrirani prikazi izvješća posjeduju neovisne polja problema umjesto dijeljenja promjenjivog spremišta rezultata
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.45.0
Version 2.44.0
Dodano (Added)
- Zabilješke i odredišta sada izlažu stanje otvorenosti, brojeve potomaka, ciljeve akcija, načine prikaza odredišta te do četiri parametra prikaza
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissioniUserHasPermissionpružaju tipizirane snimke za pregled dokumenata i upite za dozvoleExtractThumbnail(PageNumber)renderira zadanu stranicu bez promjene aktivne stranice, a rezultati RFC 3161 vremenske oznake izlažu pravila, vrijeme generiranja i detalje nonce vrijednosti
Promijenjeno (Changed)
- Putanje za zabilješke, JavaScript, metapodatke, odredišta i minijature koriste potvrđene dvoprolazne međuspremnike, geometrijski rast zbirki i obilazak siguran od ciklusa
- Naknadna obrada spremanja razrješuje aktivni katalog, stablo stranica i akciju otvaranja kroz trenutnu xref reviziju, predmemorira dekodirane tokove objekata i pregledava PDF rječnike s leksičkim granicama
- Zajedničko PDF raščlanjivanje sada nameće točna zaglavlja objekata, generacije, ključeve rječnika, duljine tokova, geometriju prediktora, cjelobrojne raspone te granice komentara, doslovnih nizova i heksadecimalnih nizova
- Provjera RFC 3161 odgovora sada veže i nonce i SHA-256
messageImprint, zahtijeva strukturno ispravnog potpisnika i primjenjuje stroga DER pravila za duljinu, OID, INTEGER i GeneralizedTime
Ispravljeno (Fixed)
- Inkrementalni dokumenti više ne odabiru neaktivne duplicirane kataloge ni neispravne sufikse referenci pri dodavanju zadane akcije otvaranja
- Vremenski tokeni s dugim DER duljinama zadržavaju cijeli kodirani token, dok se neispravan redoslijed CMS neobaveznih polja i prazni skupovi potpisnika odbijaju
- Čisti Delphi buildovi sada zapisuju PAdES nonce sjemenska polja putem kopija bajtova sigurnih za poravnanje i prosljeđuju XFA bajtove odgovora s točnim izvornim tipom pokazivača
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.44.0
Version 2.43.0
Dodano (Added)
- XFDF zapisi polja i anotacija sada izlažu zastavice prisutnosti koje razlikuju izostavljenu XML vrijednost od eksplicitno prazne vrijednosti
Promijenjeno (Changed)
- XFDF uvoz prihvaća elemente i atribute s prefiksom imenskog prostora, miješani tekstualni i CDATA sadržaj, reference entiteta te vrijednosti značajne za razmake, uz odbijanje neispravnih Unicode skalarnih referenci
- XFDF uvoz i izvoz koriste indeksirano podudaranje polja i ograničene geometrijske međuspremnike, poboljšavajući propusnost i vršno ponašanje alociranja za duboko ugniježđene obrasce, velike zbirke anotacija, popise tintnih poteza, vrhove i oznake četverokuta
- PDF/A i PDF/UA provjera koriste ograničeni rast za velike zbirke stranica, tokova, naziva struktura i RoleMap; PDF/UA RoleMap razrješavanje sada slijedi izravna polja i neizravne objekte imena ili polja točne generacije
Ispravljeno (Fixed)
- XFDF povratni ciklusi sada čuvaju duboko ugniježđene putanje polja, eksplicitno prazne vrijednosti polja, eksplicitno prazne sadržaje anotacija te razliku između odsutnih i praznih sadržaja
- Neispravna učitavanja memorijskih međuspremnika i dodjele stranica izvan raspona odbijaju se bez ostavljanja djelomičnog stanja dokumenta ili stranice, a neuspjelo ponovno učitavanje izvorne stranice čuva prethodno aktivnu stranicu
- Veliki identifikatori označenog sadržaja i međuspremnici metapodataka potpisa ograničeni su i potvrđeni prije alociranja ili izvornog pristupa
Version 2.42.0
Dodano (Added)
TPdfMatrixsada pružaInvert,TryInvert,TransformPointiTransformRectza mapiranje koordinata, ispitivanje pogodaka, normalizirane granice i eksplicitno rukovanje singularnim matricamaTPdf.WrapTextdobio je preopterećenjeBreakLongWordskoje dijeli CJK i drugi tekst bez razmaka uz zadržavanje valjanih UTF-16 surogatnih parova zajednoTPdfAnnotation.AttachmentPointSetsizlaže svaki četverokut u višerednim anotacijama, dok postojeće poljeAttachmentPointsostaje alias za prvi skup
Promijenjeno (Changed)
- Ekstrakcija teksta, izgradnja čitljivog sadržaja, pretraga riječi i mapiranje pomaka izgovorenog teksta sada koriste ograničenu alokaciju i putanje binarne pretrage, smanjujući ponovljene alokacije i linearne preglede na velikim stranicama
- ASN.1 serijalizacija i generiranje šifriranih PDF-ova sada koriste geometrijske izlazne međuspremnike; redoslijed šifriranih objekata koristi
O(n log n)sortiranje, a xref redovi zapisuju se izravno u konačni međuspremnik WrapTextčuva granice redova CR, LF i CRLF te ponovno koristi jedan izvorni objekt mjerenja za cijelu operaciju- XFDF uvoz i izvoz čuvaju svaki četverokut oznake; uvoz također primjenjuje RGB/boje ispune i raščlanjuje decimalne koordinate neovisno o lokalnim postavkama procesa
Ispravljeno (Fixed)
- Naslijeđeni pozivatelji ponovno mogu ažurirati sadržaj i autora anotacije dodjeljivanjem nepraznih nizova bez postavljanja novijih sentinel varijabli
HasContentsiHasAuthor - Eksplicitno prazni nizovi anotacija sada koriste valjani izvorni međuspremnik s nul-terminacijom, pa brisanje ključeva
/Contents,/Ti drugih neobaveznih tekstualnih ključeva više ne prosljeđuje nil pokazivač PDFium-u
Version 2.41.0
Promijenjeno (Changed)
- Preflight izvještaj
SaveJsonToFile,SaveMarkdownToFileiSaveTextToFilesada pišu UTF-8 na Delphi (podudarajući se s postojećimSaveHtmlToFile), umjesto sistemske ANSI kodne stranice, jer su ne-ASCII znakovi u putanjama datoteka, preporukama i napomenama o opsegu bili iskrivljeni na Delphi kada su spremljeni ovim metodama SaveCsvToFilesada piše UTF-8 s BOM prefiksom, tako da Excel za Windows automatski otkriva kodiranje; bez BOM-a, Excel tretira UTF-8 CSV kao kodnu stranicu 1252 i kvari ne-ASCII znakove
Ispravljeno (Fixed)
- Demo
ExtractImagesje propuštao predmemoriraneTBitmapobjekte uFExtractedImageskada je obrazac zatvoren bez prethodnog eksplicitnog čišćenja; obrazac sada nadjačavaDestroykako bi pozvaoClearExtractedImages, oslobađajući svaki predmemorirani bitmap
Version 2.40.0
Promijenjeno (Changed)
TPdf.RenderPage(HDC, ...)sada maskira FPU/SSE iznimke oko pozivaFPDF_RenderPage, podudarajući se sTPdfView.RenderPage(HDC)(ispravljeno u v2.25.0) i svakom točkom unosa renderiranja koja vraća bitmap; preopterećenje izravno na DC na raziniTPdfprethodno je ostavljalo FPU iznimke nemaskiranima na pre-D12 prevoditeljima
Ispravljeno (Fixed)
ColorToARGBsada vraća potpuno prozirni piksel (alfa 0) zaclNoneiclDefaultumjesto da tretira sentinel vrijednost kao doslovnu RGB boju; prethodno ponašanje proizvodilo je tamnu, gotovo neprozirnu ispunu kada je pozivatelj proslijedioclNoneočekujući “bez boje”
Version 2.39.1
Ispravljeno (Fixed)
- Eksplicitna spremanja u PDF 1.3 sada uklanjaju unose
/SMask /None,/AIS falsei/TK truekoji samo ponavljaju početno grafičko stanje dok nastavljaju odbijati nestandardno stanje prozirnosti
Version 2.39.0
Promijenjeno (Changed)
CreatePDFiImageToPDFsada koriste potvrđena odredišta spremanja i javljaju uspjeh samo kadaSaveAszavrši uspješnoBatchExport,PDFtoJpgiSplitPDFsada dodjeljuju jedinstvene izlazne direktorije kako bi ponovljena pokretanja i istoimeni ulazi sačuvali ranije rezultateSplitViewsada omotava pretragu jednom bez ostavljanja skrivenog stanja stranice nakon otkazivanja ili bez podudaranja, te prekida nedovršene poslove ispisa umjesto slanja djelomičnog izlaza
Ispravljeno (Fixed)
MergePDFsada odbija neispravne tokene raspona stranica i izlazne putanje koje prepisuju izvor, broji stvarno uvezene stranice te odbija spremiti prazan rezultat- Delphi i C++Builder demo programi
Attachmentsada izvršavaju spremanja na istu putanju putem zamjene datoteka sigurne od povrata, tako da neuspjelo preimenovanje ne može ukloniti izvorni PDF
Version 2.38.0
Promijenjeno (Changed)
SetAnnotationDatasada štiti upise u/Contentsi/Authoriza sentinelaHasContents/HasAuthornaTPdfAnnotation, podudarajući se s postojećim uzorkomHasName/HasSubject/HasIcon; prethodno su ova dva polja pisana bezuvjetno, pa je dodjeljivanje zapisaDefault(TPdfAnnotation)radi ažuriranja samo boje ili zastavica tiho prepisivalo postojeći sadržaj i autora anotacije praznim nizovima;GetPageAnnotationsada postavlja sentinele tako da ciklus čitanja-mijenjanja-pisanja čuva izvorne vrijednosti
Ispravljeno (Fixed)
GenerateFormAppearancessada čita vrijednost potvrdnog okvira / radio gumba putemFPDFAnnot_GetFormFieldValue(koji ide do roditeljskog rječnika polja prema ISO 32000-1 §12.7.5) umjestoFPDFAnnot_GetStringValue(Annot, 'V', ...)(koji čita rječnik widgeta); widget obično ne sadrži/V, pa/ASnikada nije bio sinkroniziran s označenim stanjem, a izravnani potvrdni okvir / radio gumb renderirao se kao neoznačen
Version 2.37.0
Promijenjeno (Changed)
ParseTsaUrlsada nakon parsiranja ograničava port na raspon1..65535; inače bi se prevelika vrijednost porta skraćivanjem naDWORDomotala i mogla završiti na valjanom portu- XFDF
ParseFieldsada prima parametar dubine (zadano 0, ograničeno na 64) i na granici vraća prazno polje, tako da zlonamjerno ugniježđeni lanac<field>elemenata dubine 100 000 više ne može preplaviti stog
Ispravljeno (Fixed)
- TSA HTTP zahtjev sada provjerava da tijelo zahtjeva nije prazno prije nego što proslijedi
@ReqDer[0]uWinHttpSendRequest. Dereferenciranje dinamičkog niza duljine nula pristupilo bi nevezanom pokazivaču;BuildTimeStampRequvijek vraća neprazan SEQUENCE, ali pozivno mjesto sada i samo čuva taj ugovor
Napomene (Notes)
- Komentar u zaglavlju
FPdfTsaWino provjeri opoziva putem HTTPS-a je ispravljen: WinHttp prema zadanim postavkama potvrđuje lanac certifikata poslužitelja, ali ne obavlja provjeru opoziva CRL/OCSP osim ako se to eksplicitno ne omogući putemWinHttpSetOption. Prethodni tekst tvrdio je da provjera opoziva “dolazi besplatno”, što je bilo zavaravajuće
Version 2.36.0
Promijenjeno (Changed)
- TSA HTTP zahtjevi sada šalju eksplicitno zaglavlje
Content-Lengthuz zaglavljaContent-TypeiAccept; WinHttp ga sintetizira iz ukupne duljine, ali neki RFC 3161 posrednici zahtijevaju eksplicitno zaglavlje i odbijaju zahtjev s porukom411 Length Requiredbez njega - Izvoz u XFDF sada odbacuje kontrolne znakove C0 (osim TAB/LF/CR koji su već eskapirani) umjesto emitiranja nevaljanog kosa crta-heksadekadskog niza; prethodni
\-01Fbijeg nije valjani XML (kosa crta nema posebno značenje u XML-u), pa bi bilo koji sukladni čitač odbacio dokument kao neispravan InjectAssociatedFilessada piše/Subtypena rječnik toka EmbeddedFile kada pozivatelj dostaviTAssociateFile.MIMEType; polje je bilo deklarirano i dokumentirano, ali je injektor prethodno tvrdo kodirao/Type /EmbeddedFilei ignorirao ga (ISO 32000-2 §7.11.4 dopušta/Subtypena toku)
Ispravljeno (Fixed)
- Uvoz XFDF-a preskočio je prvi bajt sadržaja nakon UTF-8 BOM-a i prvi bajt kada BOM nije bio prisutan:
BytesToAnsi(Bytes, 4, ...)(BOM) iBytesToAnsi(Bytes, 1, ...)(bez BOM-a) koristili su pomake početka pomaknute za jedan jerBytesToAnsiprima indeks niza koji počinje od 0; pozivi sada koriste3i0 ExtractSignatureValueje imao dvije pogreške uvlačenja s visećim-ifgdje seR.Position:= CNizvršavao bezuvjetno za neobavezne granecertificates [0]isignedAttrs [0]; grane su sada omotane ubegin/endtako da se pozicija pomiče samo kada je opcionalni TLV stvarno pročitan (ista klasa pogreške ispravljena je uAddSignatureTimestampToCmsu v2.22.0)
Version 2.35.0
Promijenjeno (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailiTFPDFAvail_IsFormAvailsada primajuhints: PFX_DOWNLOADHINTSumjestovar hints: FX_DOWNLOADHINTS, tako da je dokumentirani način rada samo za upitnullptr(provjera trenutne dostupnosti bez traženja više podataka) dostupan iz Delphi; zaglavlje PDFium izričito dopušta dahintsbude null; prethodnovarvezanje činilo je to nemogućimTFPDF_SetSystemFontInfosada primapFontInfo: PFPDF_SYSFONTINFOumjestovar pFontInfo: FPDF_SYSFONTINFO, tako da pozivatelji mogu proslijeditinilkako bi rekli PDFium-u da prestane koristiti prethodno registrirano sučelje sistemskih fontova (dokumentirana staza isključivanja)TPdfThumbnailView.Paintsada računaVisibleRowsistom formulom kao iUpdateScrollBarRange(ClientHeight div RowHeight), tako da broj nacrtanih redaka odgovara veličini stranice trake za pomicanje; prethodna formula samo za crtanje ((ClientHeight - FMarginY) div RowHeight + 1) mogla se razlikovati za jedan redak na rubnim visinama, trošeći renderiranje na redak izvan stranice ili propuštajući zadnji vidljivi redak
Version 2.34.0
Dodano (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— API visoke razine koji sprema dokument i zatim ga šifrira pomoću PDF 2.0 AES-256-CBC (V=5/R=5/R=6). PrimaTPdfEncryptOptionss korisničkom/vlasničkom lozinkom, dozvolama i revizijom; posao delegira naEncryptDocumentBytes- StrF šifriranje literal stringova:
EncryptDocumentBytessada šifrira(...)literal stringove u objektima koji nisu streamovi (Info rječnik i slično) u heksadekadske AES-256-CBC stringove, u skladu s formatom šifriranja streamova (16-bajtni IV + PKCS7 ciphertext). Heksadekadski stringovi<...>ostaju netaknuti
Version 2.33.0
Dodano (Added)
- Injektor šifriranja cijelog dokumenta AES-256-CBC u
FPdfEncrypt.pas;EncryptDocumentBytesprima običan tekst PDF i lozinku, šifrira svaki neizravni objekt toka (16-bajtni IV + AES-256-CBC PKCS7 pod ključem datoteke), krpa/Length, dodaje objekt rječnika/Encrypti ponovno gradi potpunu klasičnu tablicu unakrsnih referenci + prikolicu s/Encrypti/ID; dovršava PDF 2.0 stog šifriranja (AES blok + GCM + SHA-512/384 + R6 izvedba ključa + rječnik + skeniranje dokumenta) - Pomoćnik
EncryptStreamPayload— PDF 2.0 AES-256 format toka (IV dodan ispred AES-CBC-PKCS7 šifriranog teksta), višekratno upotrebljiv od strane pozivatelja koji sami upravljaju rasporedom svojih objekata
Version 2.32.0
Dodano (Added)
- SHA-512 / SHA-384 sažetak (FIPS 180-4) u novoj jedinici
FPdfSha512.pas; čisti Pascal, prenesen iz HotPDF; potreban za PDF 2.0 R6 iteraciju hashiranja lozinke, koja se grana na 128-bitnoj mod-3 vrijednosti za odabir SHA-256/384/512 u svakom krugu; FIPS-180-4 B.1 provjeren poznatim odgovorima - Izvedba ključa za šifriranje PDF 2.0 i graditelj rječnika Encrypt u novoj jedinici
FPdfEncrypt.pas; implementira algoritam 2.B iz ISO 32000-2 §7.6.4.3 (R6 hash ples: AES-128-CBC + iterativni odabir SHA-256/384/512), izvodi 32-bajtni ključ za šifriranje datoteke plus unose/O,/U,/OE,/UE,/Permste gradi V=5/R=5/R=6 Encrypt rječnik s/CFM /AESV3; preneseno iz PDFlibPas, prilagođeno stilu TBytes
Version 2.31.0
Dodano (Added)
- Primitivi AES blok šifre (FIPS 197) u novoj jedinici
FPdfAes.pas. Pure-Pascal AES-128 i AES-256 blok šifre, plus CBC mode helperi i CSPRNG backend, portirano iz HotPDF-a. FIPS-197 Appendix C.2 / C.3 known-answer testovi potvrđuju ispravnost. Ovo je kriptografski temelj PDF 2.0 encryption stacka - AES-GCM autentificirano šifriranje (NIST SP 800-38D) u novoj jedinici
FPdfAesGcm.pas. Implementira GHASH (množenje u GF(2^128)), GCTR i GCM AEAD konstrukciju na vrhu AES blok primitiva. NIST GCM test slučajevi 1 i 3 (AES-128) točno se poklapaju s referentnim ciphertextom i tagom; test slučaj 13 (AES-256) prolazi round-trip. GCM je ISO/TS 32003 mode za PDF 2.0 - Validacija integriteta ParentTree i ClassMap za PDF/A Level A (ISO 19005-1 §6.8.3).
pvaiParentTreeMissingoznačava StructTreeRoot koji nema /ParentTree number tree;pvaiClassMapUnresolvedoznačava /C referencu na klasu bez /ClassMap
Version 2.30.0
Dodano (Added)
- Ubacivanje povezanih datoteka (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); nova jedinicaFPdfAssocFilesdodaje/AFpolja referenci specifikacija datoteka u katalog ili bilo koji rječnik stranice, pokrivajući svih osam vrijednosti/AFRelationshipiz ISO 32000-2 Tablice 45; ponovno koristi uzorak inkrementalnog ažuriranja dokazan uInjectPadesDssMarkers - Podrška za PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancedodajepxc6; injektor i validator je provode kroz identifikacijupdfxid:GTS_PDFXVersion; PDF/X-6 je nasljednik zasnovan na PDF 2.0 za PDF/X-4 za potpunu razmjenu - PDF/A zabranjuje radnju
/Thread(ISO 19005-1 §6.6.1 propust u popisu dopuštenih); popis zabranjenih radnji sada pokriva Thread uz Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition i Hide
Ispravljeno (Fixed)
- Staza validacije za PDF/A-4e sada poštuje iste provjere označene strukture, MarkInfo i prijeloma riječi kao i razina A; smanjenje verzije na strani spremanja u v2.29.0 pokrilo je
PdfAIsLevelE, ali tri vrata uValidatePdfAComplianceprovjeravala su isključivoPdfAIsLevelA, tako da je PDF/A-4e dokument bez označene strukture prolazio tiho - Odstupanje testa OCG
/BaseState: prolaz PostProcess u v2.28.0 ispravno je proširio prihvaćanje na/ONili/OFF(ISO 32000-1 Tablica 8.70), ali su Delphi i C++ testovi i dalje očekivali da se/OFFodbije; testovi sada koriste uistinu nevaljanu vrijednost (/Undefined), a novi pozitivni test zaključava prihvaćanje/OFF - Prekomjerno podudaranje geoprostornog
/Subtype /GEO:ContainsDictionarySubtype('GEO')podudarao se s bilo kojim rječnikom koji sadrži token, uključujući nepovezane poput zalutalog/ViewerPreferences << /Subtype /GEO >>; noviContainsMeasureDictionarySubtypedodatno zahtijeva/Type /Measureili sestrinski ključ ekskluzivan za Measure, tako da rječnici koji nisu Measure više ne pokreću zahtjev za ADBE ExtensionLevel 3
Version 2.29.0
Dodano (Added)
- Podrška za PDF/A-4 (ISO 19005-4:2020) kroz validator, XMP injektor i sloj modela objekata Pdfium;
TPdfAConformancedodajepac4base,pac4fipac4e; osnovna razina je PDF 2.0 (ISO 32000-2) og zamjenjuje naslijeđene A/B/U razine s base + F (obrazac) + E (pristupačnost);ValidatePdfAčitapdfaid:part=4XMP paket (osnovna razina izostavlja element sukladnosti),SaveAsPdfAga emitira, aSignPadesWithPdfAprihvaćapac4basekao spremnik dugoročne arhive - Povezivanje
FPDFBookmark_GetColor— zadnji nepovezani javni izvoz PDFium-a (469/469);TBookmarkdobiva poljaHasColoriColorpopunjena iz niza oznaka/C(ISO 32000-1 §12.3.3); povezivanje koristi tolerantno učitavanje tako da stariji DLL-ovi koji su prethodili izvozu nastavljaju raditi - Provjera verzije zaglavlja PDF/E-1 (ISO 24517-1 §5)
pveiBadPdfVersion— PDF/E-1 se temelji na PDF 1.6 i zaglavlje koje nije 1.6 sada je označeno - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— šifriranje je dopušteno samo na zaglavlju%PDF-2.0; tijelo 1.x koje sadrži/Encryptsada je označeno (prethodno je to bila izjava bez učinka) - PDF/R-1
pvriBadMediaBox—MediaBoxsvake stranice mora biti[0 0 w h];PdfRHasNonZeroMediaBoxOriginje ASCII skener neovisan o regionalnim postavkama koji preskače MediaBoxeve s neizravnim referencama - PDF/A razine A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — prisutan ali nepotpun RoleMap koji ostavlja prilagođene/Stipove struktura nemapiranima sada je označen, čime se zatvara praznina koju je ostavila postojeća provjerapvaiRoleMapMissingkoja provjerava samo prisutnost
Ispravljeno (Fixed)
PdfVersionToName(20)vraćao je"1.0"umjesto"2.0", oštećujući unos/Versionu katalogu i poruke validatora za svako spremanje u PDF 2.0; formatter sada eksplicitno dijeli major.minor za verzijske kodove>= 20- Koder negativnog-INTEGER-a u
FPdfAsn1.pasnije se mogao kompilirati pod Delphi 12 (E2015naInteger(-(V<0))), blokirajući cijeli testni projekt; popravljeno korištenjemInt64(-Ord(V<0))za masku proširenja predznaka - Popis zabranjenih anotacija za PDF/A sada uključuje
/RichMediau svim dijelovima (prethodno propušteno; ISO 32000-1 §12.5.6.35 ga zabranjuje u PDF/A)
Version 2.28.0
Dodano (Added)
TPdfVersionsada uključujepv20za PDF 2.0 (ISO 32000-2).DecodePdfVersion(20)vraćapv20umjestopvUnknown, aEncodePdfVersion(pv20)ispisuje 20, tako da se verzija PDF 2.0 dokumenta više ne gubi pri ponovnom čitanju i može se izričito zapisati
Promijenjeno (Changed)
DecodeDatesada parsira PDF datumske stringove s opcionalnim završnim poljima prema PDF Reference 3.8.3, umjesto da zahtijeva puni 23-znakovni oblikD:YYYYMMDDHHmmSSOHH'mm'. Konformni skraćeni datumi poputD:20260712,D:20260712153000iD:20260712153000Zsada se prihvaćaju; ranije ih je odbijala krutaLength=23provjera. Satni pomak vremenske zone sada se validira prema stvarnom rasponu UTC-12..UTC+14 umjesto> 23FPdfMeasure.MeasureTextsada kodira naziv fonta kao FPCAnsiString/ DelphiUTF8Encode, usklađeno s ostalim FPDF_BYTESTRING call siteovima u biblioteci, umjesto gologAnsiStringcasta koji je kroz aktivnu code page pokvario ne-ASCII nazive familija fontova
Ispravljeno (Fixed)
TDerWriter.Integerputanja za negativne vrijednosti padala je ili proizvodila neispravan DER: petljawhile V <> -1 do V := V shr 8ostavljala jeInnerpraznim zaValue = -1(range error na naknadnomInner[Length(Inner)-1]), a za ostale negativne vrijednosti proizvodila višak bajtova. Enkoder sada izvlači bajtove dvojnog komplementa pomacima koji proširuju znak i ispravno staje kad je ostatak čisto znakovno proširenje. CMS/PAdES INTEGER polja su pozitivna, pa ovo pogađa samo pozivatelje koji prosljeđuju negativne vrijednosti, ali putanja je sada ispravnaTPdf.GetCharacterOriginiTPdfView.GetCharacterOriginzanemarivali su povratnu vrijednostFPDFText_GetCharOrigini vraćali neinicijaliziranu točku uz neuspjeh. Rezultat je sada inicijaliziran nulama, a neuspjelo čitanje vraća origin (u skladu s kontraktomGetCharacterRectangle-a)
Version 2.27.0
Promijenjeno (Changed)
- Delphi, C++Builder i Lazarus
PDFVieweriMultiPageViewerdemo primjeri sada pretragu dokumenta omataju točno jednom, prihvaćajuEnteriF3za sljedeći rezultat, resetiraju kontekst pretrage kad se promijene opcije poklapanja, aEscostavljaju za otkazivanje aktivne pretrage ili posla ispisa - Ispisivanje u pregledniku sada slijedi trenutnu rotaciju preglednika i prema njoj bira portrait ili landscape izlaz, tako da se rotacija s alatne trake vidi na ispisanim stranicama
- Sva tri
ViewerInteractionLabdemo primjera sada podržavajuCtrl+A,Ctrl+C,Enter,F3iEscprečace bez presretanja nativnih naredbi za odabir i kopiranje u edit kontrolama
Ispravljeno (Fixed)
- Otkazivanje ispisa u C++Builder i Lazarus preglednicima sada prekida posao pisača umjesto da pošalje stranice renderirane prije otkazivanja, a Lazarus izričito izlazi iz svake ugniježđene copy, page i collation petlje
- Cancel gumb Delphi
MultiPageViewerdemo primjera sada je povezan sa svojim handlerom, a polja za pretragu C++Builder/LazarusMultiPageViewerdemo primjera zadržavaju nativno uređivanje strelicama te tipkama Home i End
Version 2.26.0
Promijenjeno (Changed)
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnaili njihoveTPdfViewinačice sada uzimaju render lock oko pozivaFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmap, usklađeno sRenderPage/RenderTile. To su PDFium pozivi na render strani koji su prije radili bez locka i mogli su ući u race condition s istovremenimUnloadPage/ReloadPagenad istim dokumentomTPdf.RenderPageThumbnailsada poštuje/Rotateunos stranice: za/Rotate 90ili270stranice prilagođavanje se ponovno računa iz rotiranih dimenzija tako da aspect ratio thumbnaila odgovara onome što prikazuje preglednik, umjesto da koristi izvorne (nerotirane) dimenzije koje vraćaFPDF_GetPageSizeByIndex
Ispravljeno (Fixed)
TPdfView.GetCharacterRectanglezanemarivao je povratnu vrijednostFPDFText_GetCharBoxi prosljeđivao neinicijaliziraniTPdfRectangleuPageToDevicekad je PDFium javljao neuspjeh. Pravokutnik je sada inicijaliziran nulama, a neuspjeliGetCharBoxvraćaRect(0,0,0,0)GetLinkAnnotationsduljina buffera za URI path i file path bila je off-by-one: drugi pozivFPDFAction_GetURIPath/GetFilePathprosljeđivao jesize(što uključuje završni NUL) kao duljinu buffera alociranog ssize-1. Poziv sada prosljeđujesize-1, pa ne može pisati izvan alociranog prostora na PDFium buildu koji ne radi vlastiti clamp
Version 2.25.0
Promijenjeno (Changed)
TPdf.AddText,SetText,AddPathiInsertFormObjectFromXObjectsada poništavaju keširani text page i link anotacije prije regeneracije sadržaja stranice, usklađeno sSetTextPositionsiRemoveObject. Ranije jeGetText/GetWebLinks/FindFirstpoziv nakon uređivanja stranice vraćao zastarjele podatke o tekstu i linkovima snimljene prije izmjene, a zadržaniFPDF_TEXTPAGEhandle koristio se nakon regeneracije sadržaja s nedefiniranim ponašanjemTPdfView.RenderPage(HDC, ...)sada uzima render lock i maskira FPU/SSE iznimke okoFPDF_RenderPagepoziva, usklađeno sa svim ostalim rendering entry pointovima. Prethodni direct-to-DC overload mogao je ući u race condition s istovremenimUnloadPage/ReloadPagenad istim dokumentom i na pre-D12 kompajlerima ostavljao je FPU iznimke nemaskirane- Delphi
PrintPDFdemo primjer sada pozivaPrinter.Abortpri otkazivanju, umjesto da pustifinallyblok doPrinter.EndDoc, što je slalo stranice renderirane prije otkazivanja. Lazarus demo primjer to već ranije ispravno rješava
Ispravljeno (Fixed)
TPdf.GetCharacter,TPdf.GetCharcodei njihoveTPdfViewinačice odsjecale su astral-plane code pointove (emoji, CJK Extension B) koje vraćaFPDFText_GetUnicodena donjih 16 bita prekoWideChar(), proizvodeći usamljeni surrogate koji je kvario daljnju obradu teksta. Znakovi iznad U+FFFF sada vraćaju U+FFFD (replacement character); za dohvat punog UTF-16 zapisa astralnih znakova koristiteGetTextGetWebLinksje pozivaoSetLength(Rectangles, FPDFLink_CountRects(...))bez zaštite od povratne vrijednosti-1, što je na neispravnoj stranici izazvaloEOutOfMemory. Negativan broj se sada clampira na nuluTPdf.Destroysada brišePasswordstring iz memorije (prekoUniqueString+FillChar) prije nego što se oslobodi reference-counted buffer, tako da lozinka ne ostaje čitljiva na heapu nakon uništenja komponente
Version 2.24.0
Dodano (Added)
TPdf.DeletePage,GetAttachment,GetAttachmentName,GetAttachmentType,SetAttachmentiDeleteAttachmentsada validiraju indeks stranice/priloga i podižuEPdfErrorza vrijednost izvan raspona, usklađeno s postojećim ponašanjem anotacijskih accessora. Ranije se indeks izvan raspona prosljeđivao izravno PDFiumu i proizvodio tihi no-op ili nedefinirano ponašanje
Ispravljeno (Fixed)
- Curenje page-object handlea uz neuspjeh u
TPdf.AddText,AddBitmapiAddJpegImage: kada biFPDFText_SetText,FPDFImageObj_SetBitmap,FPDFImageObj_SetMatrixiliFPDFImageObj_LoadJpegFileInlinepodigli iznimku nakon što je objekt stvoren, ali prije nego što ga jeFPDFPage_InsertObjectpredao stranici, došlo je do curenja nativnogFPDF_PAGEOBJECThandlea. Svaka putanja sada uništava objekt u iznimci prije ponovnog izbacivanja TPdf.UnloadPageodbacivao jeFPathhandle u tijeku (postavljen odCreatePath, a još nepotrošen odAddPath) tako što ga je postavljao nanilbez pozivaFPDFPageObj_Destroy. Handle se sada uništava, tako da putanja stvorena pa napuštena (ili prekinuta promjenom stranice) više ne curiTPdf.InsertFormObjectFromXObjectizostavljao jeUpdatePage(FPDFPage_GenerateContent) poziv koji izvodi svako srodno ubacivanje (AddText/AddPath/AddBitmap/AddJpegImage/SetText/RemoveObject), pa je Form XObject ubačen na ovaj način nestajao pri sljedećem reloadu ili spremanju.UpdatePagese sada poziva nakon ubacivanja
Version 2.23.0
Ispravljeno (Fixed)
- Validacija optional-content
/BaseStatesada prihvaća/OFFuz/ON(ISO 32000-1 Table 8.70 dopušta oba). Prethodna provjera odbacivala je ispravne/OCProperties /D /BaseState /OFFkonfiguracije s greškom “malformed optional content” iako je datoteka bila konformna - Validacija optional-content
/Intentsada prihvaća/Designi nizove imena poput[/View /Design], a ne samo literal/View. ISO 32000-1 Table 8.70 definira/Intentkao ime ili niz imena iz skupa/Viewi/Design; prethodna provjera s jednom vrijednošću pretjerano je odbacivala izlaz standardnih autorskih alata - Detekcija geoprostornog Measure rječnika za PDF 1.7
/Extensions /ADBEExtensionLevel 3 uvjet više ne zahtijeva/Type /Measure, koji ISO 32000-1 Table 254 označava kao opcionalan. GeoPDF generatori koji izostave/Type(PDFBox, QGIS, FME) ranije su zaobilazili taj uvjet i tiho proizvodili nekonformni PDF 1.7 izlaz; detektor se sada poklapa samo s/Subtype /GEO
Version 2.22.0
Promijenjeno (Changed)
- Izračuni fit-zooma u
TPdfView(GetPageZoom,GetPageWidthZoom,GetPageHeightZoom) sada koristeClientWidth/ClientHeightumjestoWidth/Heightprozora, tako dapfmFitPage/pfmFitWidth/pfmFitHeightuklope stranicu u vidljivi viewport, a ne u vanjski okvir koji uključuje scrollbare i rubove, čime nestaje suvišni scrollbar koji se pojavljivao kad je uklopljena stranica bila malo veća od klijentskog područja AddSignatureTimestampToCmssada podiže eksplicitnuExceptioniznimku koja identificira nečitljivo CMS SignerInfo polje (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm), umjesto da tiho izađe prekoExit-a i pusti djelomično parsiranje da teče dalje kao da je riječ o kompletnom potpisanom CMS-u; ispravljena je i nedostajućabegin/endograda oko opcionalne granesignedAttrs [0]zbog koje seR.Positionnije pomaknuo
Ispravljeno (Fixed)
- Curenje CNG handlea privatnog ključa u
ResolveWinSigner: kada jeCryptAcquireCertificatePrivateKeyuspio, ali je naknadno vađenje issuer/serial podataka iliTWinCmsSigner.Creatediglo iznimku,NCryptKeyHandlenikad nije oslobođen jer se njegovo vlasništvo na potpisnika prenosi tek uspješnim konstruktorom. Kod se nakon acquire poziva sada dodatno ograđuje tako da se handle pri bilo kojem kvaru prvo oslobodi putemNCryptFreeObject-a EcDsaP1363ToDersada odbacujerilispolovicu ako je potpuno nulta, umjesto da emitiraINTEGER 0; ECDSA potpisi sr = 0ilis = 0nevažeći su (RFC 4754 §6 / FIPS 186-4 §6 zahtijevaju1 ≤ r, s ≤ n-1), pa bi ih inače popustljivi verifikator prihvatio kao prave
Version 2.21.12
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.5 do PDF 1.7 sada odbija loše oblikovane strukture
/OCPropertieskataloga, uključujući nedostajuće potrebne unose/OCGsili/D, nevaljane zadane vrijednosti konfiguracije i unose stanja koji nisu polja
Version 2.21.11
Popravljeno (Fixed)
- Eksplicitno pohranjivanje verzije PDF sada odbija izravne ili neizravne unose stranice
/Annotsčiji rječnici anotacija izostavljaju potrebni unos/Subtypeili/Rect
Version 2.21.10
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.7 sada zahtijeva da geoprostorni rječnici
/Type /Measure /Subtype /GEOi anotacije Projection deklariraju/Extensions /ADBEs/BaseVersion /1.7i/ExtensionLevel 3ili novije
Version 2.21.9
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.7 sada zahtijeva da RichMedia anotacije i radnje
RichMediaExecutedeklariraju/Extensions /ADBEs/BaseVersion /1.7i/ExtensionLevel 3ili novije
Version 2.21.8
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.7 sada zahtijeva da PRC 3D tokovi deklariraju
/Extensions /ADBEs/BaseVersion /1.7i/ExtensionLevel 1ili novije, umjesto tretiranja PRC-a kao osnovne značajke PDF 1.7
Version 2.21.7
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.4 i starije sada odbija unose XObject slike
/SMaskInData, uključujući eksplicitnu vrijednost0, jer ugrađeni kanali meke maske JPEG 2000 zahtijevaju PDF 1.5 ili noviji
Version 2.21.6
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.4 i starije sada odbija 16-bitne XObjecte slika koje zahtijevaju PDF 1.5 ili noviji, dok ciljevi PDF 1.5 do PDF 1.7 čuvaju podatke o slici
/BitsPerComponent 16
Version 2.21.5
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.4 i starije sada odbija vrijednosti
/PageLayout /TwoPageLefti/TwoPageRightkataloga dokumenta koje zahtijevaju PDF 1.5 ili noviji, dok ciljevi PDF 1.5 do PDF 1.7 čuvaju traženi dvostraničani izgled
Version 2.21.4
Popravljeno (Fixed)
- Eksplicitna pohrana u PDF 1.3 sada odbija unose
/Langu katalogu dokumenta koji zahtijevaju PDF 1.4 ili noviji, dok ciljevi PDF 1.4 do PDF 1.7 čuvaju identifikator jezika
Version 2.21.3
Popravljeno (Fixed)
- Eksplicitna pohrana u PDF 1.3 sada odbija stabla naziva
/EmbeddedFilesdokumenta koja zahtijevaju PDF 1.4 ili noviji, bez odbijanja tokova ugrađenih datoteka koji su referencirani putem starijih specifikacija datoteka
Version 2.21.2
Ispravljeno (Fixed)
- Eksplicitno spremanje u PDF 1.3 sada odbija aktivne tokove metapodataka, koji zahtijevaju PDF 1.4 ili noviji, dok ih zadržava za ciljne verzije od PDF 1.4 do PDF 1.7
Version 2.21.1
Popravljeno (Fixed)
- Validacija hibridnih referenci sada primjenjuje dodatne unose
/XRefStmprije klasičnih xref mjesta iz iste revizije, pa komprimirane napomene i drugi objekti ograničeni verzijom više se ne preskaaju
Version 2.21.0
Promijenjeno (Changed)
- Svi primjeri preglednika za Delphi, C++Builder i Lazarus mogu otvoriti PDF proslijeđen kao prvi argument naredbenog retka, a primjeri
MultiPageViewerza C++Builder i Lazarus nude eksplicitne prečice za odabir svega i kopiranje
Ispravljeno (Fixed)
- Primjeri preglednika sada odbacuju nevaljane ciljeve stranica u knjižnim oznakama i poveznicama, čuvaju pogreške pri učitavanju, dosljedno provjeravaju unos ručnog zuma, ispisuju zatraženu stranicu s ispunjenim obrascem umjesto da ponavljaju vidljivu stranicu i prekidaju otkazane ispise u Delphiju umjesto da predaju djelomičan ispis
Version 2.20.0
Promijenjeno (Changed)
- Svi primjeri preglednika Delphi, C++Builder i Lazarus sada nude dosljedne prečice za otvaranje, traženje, spremanje, ispis, zum i navigaciju stranicama, dok svaka varijanta
ViewerInteractionLabpodržava i skokove stranica, provjereni ručni zum 10–600 %, trajne zapisnike interakcija i provjere povratnog puta koordinata klika
Version 2.19.1
Ispravljeno (Fixed)
- Provjera eksplicitne PDF verzije sada slijedi aktivni lanac revizija klasičnog, hibridnog ili xref-stream oblika, uključujući unose komprimiranih objekata, pa nadjačani, oslobođeni i nereferencirani objekti više ne uzrokuju lažne neuspjehe provjere verzije značajki
Version 2.19.0
Promijenjeno (Changed)
- Primjeri za C++Builder i Lazarus za rad s prilozima, izdvajanjem slika, izdvajanjem teksta, pretvorbom stranica i dijeljenjem dokumenata sada koriste namjenske izlazne mape ili sigurno dovršene datoteke, stabilne nazive s vodećim nulama, ažuriranja napretka koja održavaju odzivnost sučelja te sažetke po završetku s brojem pogrešaka po stavci
Ispravljeno (Fixed)
CJKTextLabza C++Builder sada mjeri tekst kroz izvezene PDFium funkcije za uređivanje, aMergePDFizbjegava dvosmisleno preopterećenje VCL poruke, čime su se vratili uredni buildovi u RAD Studio 37
Version 2.18.3
Popravljeno (Fixed)
- PAdES B-LTA vremenski žig dokumenta sada je registriran kao otkrivljivo polje potpisa — nevidljivi Widget dostupan putem
/Annotsprve stranice i AcroForm/Fields(ETSI EN 319 142-1 §5.4.3) — umjesto nedostupnog siročeta koje validatori koji nabrajaju polja potpisa nisu mogli pronaći; postojeće napomene i polja se čuvaju
Version 2.18.2
Popravljeno (Fixed)
- PAdES potpisivanje i klasično pisanje unakrsnih referenci sada daju jasnu grešku kada pomak bajta premašuje fiksnu širinu polja od 10 znamenki (~9,3 GB), umjesto da tiho ostavljaju rezervno mjesto
/ByteRangeneispisano (čime se dobiva nevaljani potpis) ili prekoračuju 20-bajtni xref redak (ISO 32000-1 §7.5.4); izlaz toka unakrsnih referenci koristi 8-bajtna binarna polja i nije zahvaćen
Version 2.18.1
Popravljeno (Fixed)
- PAdES potpisivanje sada razrješava neizravne reference
/Annots,/AcroFormi/Fieldsprve stranice cijelim zaglavljem objekta (ISO 32000-1 §7.5.3) i stvarnim brojem generacije reference; prethodno pretraživanje podniza moglo je podudariti broj objekta unutar dužeg (razrješavajući5 0 Ru15 0 obj), a tvrdo kodirani broj generacije propuštao je objektegen>0, oštećujući nizove polja potpisa ili odbijajući valjane dokumente - Kada katalog, prva stranica,
/Annots,/AcroFormili/Fieldsžive unutar toka objekta, potpisivanje sada pokušava na proširenoj kopiji prije neuspjeha, umjesto da odmah odbije dokument
Version 2.18.0
Dodano (Added)
ReadPdfVersionInfoizvještava o verziji zaglavlja, efektivnoj jezgrenoj verziji, nadjačavanju kataloga i razini Adobe razvojne ekstenzije iz PDF toka
Promijenjeno (Changed)
- Eksplicitna PDF 1.3–1.7 pohrana sada provjerava katalog, resurse stranice, XFA, redakciju i strukture razvojnih ekstenzija u kontekstu vlasničkog objekta; šifrirani eksplicitni verzijski izlaz i PDF 1.3 inkrementalna normalizacija se odbijaju radi očuvanja integriteta dokumenta
- Pohrane putanje datoteke sada pišu u privremenu datoteku i zamjenjuju odredište tek nakon što sve kompresije, normalizacije i provjere verzije uspiju
Popravljeno (Fixed)
- PDF 1.3 izlaz sada nosi obavezni puni resurs
/ProcSeti uklanja ključeve transparentnosti PDF 1.4 kada samo ponavljaju početne vrijednosti grafičkog stanja PDF 1.3 - Hibridne reference, xref-stream i object-stream datoteke više ne prepisuje klasični xref kompresor, čime se sprječava ispuštanje unosa komprimiranih objekata
- Nazivi koji nalikuju ključevima transparentnosti ili značajkama kataloga unutar nizova, komentara ili nepovezanih mapa resursa više ne uzrokuju lažne greške ciljane verzije
Version 2.17.0
Dodano (Added)
- PAdES potpisi sada su registrirani kao nevidljive Widget napomene u nizu
/Annotsprve stranice i u nizu AcroForm/Fields, čuvajući postojeće napomene i polja obrasca
Promijenjeno (Changed)
- Inkrementalna ažuriranja PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT i PAdES sada čuvaju prikaz unakrsnih referenci izvornoga dokumenta: dokumenti s xref-streamom dobivaju ažuriranje xref-streama prema ISO 32000-1 §7.5.8.1, dok klasični dokumenti i dalje dobivaju xref tablicu
- Pomaci unakrsnih referenci,
startxref,/Prev, vrijednosti PAdES ByteRange i SHA-256 obrada raspona sada koriste 64-bitne pozicije s chunked raspršivanjem, omogućujući datoteke veće od 2 GB u 64-bitnim izgradnjama - Generirani zapisivi XMP paketi sada rezerviraju 2048 bajtova dopune prije instrukcije zatvaranja paketa
Version 2.16.10
Popravljeno (Fixed)
- Proširenje toka objekta više ne oživljava zastarjele kopije objekata koje je inkrementalno ažuriranje migriralo iz toka objekta u običnu definiciju (ISO 32000-1 §7.5.7); provjere sukladnosti i ubacivanje oznaka prethodno su razrješavali zastarjeli katalog ili rječnik metapodataka na takvim datotekama
Version 2.16.9
Popravljeno (Fixed)
- U Free Pascalu, tekstualni nizovi čiji unos nije valjani UTF-8 proširuju se bajt po bajt kao Latin-1 i pišu kao UTF-16BE hex nizovi; prethodno su siroki visoki bajtovi procurili u literalni niz, što nije valjano kodiranje tekst-niza u PDF 1.7
- Dekodiranje toka sada prepoznaje sirove deflate podatke bez RFC 1950 zlib omotača (česta greška neispravnih pisača) i dekomprimira ih u sirovom načinu, tako da skeniranja sukladnosti više ne slijepe tiho na takvim tokovima
Version 2.16.8
Popravljeno (Fixed)
- Inkrementalna ažuriranja koja piše put pohrane nakon obrade sada osvježavaju drugi (promjenjivi) element prikolice
/IDprema zahtjevu ISO 32000-1 §14.4; prethodno su oba elementa kopirana doslovno, pa su alati za predmemoriranje i sinkronizaciju vidjeli nepromijenjen identifikator nakon svakog ažuriranja
Version 2.16.7
Popravljeno (Fixed)
- Brisanje tijela toka koje koriste skeniranja sukladnosti sada zahtijeva da je ključna riječ
streampraćena krajem retka (ISO 32000-1 §7.3.8.1); riječ unutar literalnog niza poput(downstream)prethodno je brisala svu sljedeću strukturu do sljedećegendstream, skrivajući stvarne povrede od provjera na razini bajtova - Skeniranja zabranjenih značajki PDF/X i PDF/E dodatno brišu literalne nizove i komentare (§7.2.2), tako da vrijednost poput
/Title (see /JavaScript docs)ili komentirani token više ne proizvodi lažan nalazJavaScript,AcroFormiliLZWDecode
Version 2.16.6
Popravljeno (Fixed)
- DPM unosi PDF/VT sada se provjeravaju pri pisanju prema dokumentaciji: nazivi ključeva koji krše pravilo NMTOKEN iz ISO 16612-2 §6.6 ili pravilo prefiksa registranta iz Annex E, te duplicirani nazivi, se odbijaju umjesto upisivanja u DPart rječnik — naziv koji sadrži razmak prethodno se dijelio u lažni par ključ/vrijednost i oštećivao rječnik
Version 2.16.5
Popravljeno (Fixed)
- Uklanjanje unosa rječnika čija je vrijednost hex niz (poput
/Check <...>) sada uklanja cijeli unos; ubacivači su prethodno ostavljali siročetni hex vrijednost, čime su proizveli sintaktički pokvaren rječnik - Uklanjanje unosa čija neizravna referenca koristi nove retke između tokena (ISO 32000-1 §7.3.10 dopušta bilo koji razmak) više ne ostavlja broj generacije i ključnu riječ
Riza sebe
Version 2.16.4
Popravljeno (Fixed)
- Skeniranje maksimalnog broja objekta više ne zahtijeva da zaglavlja objekata počinju redak (ISO 32000-1 §7.5.3 dopušta bilo koji razmak ili graničnik ispred njih), pa ubacivači više ne mogu dodijeliti broj objekta koji se sudara s inline zaglavljem
N G obji tiho oštetiti datoteku; brojevi objekata su ograničeni gornjom granicom Annex C - Tokovi čiji je
/Lengthneizravna referenca sada razrješavaju referencirani cjelobrojan objekt i koriste njegovu vrijednost kada se poklapa s zatvarajućimendstream; prethodno su takvi tokovi bili ograničeni pretraživanjem uzoraka, što je skraćivalo tijela koja legalno sadrže bajt sekvencuendstream— tipično za ugrađene PDF privitke
Version 2.16.3
Popravljeno (Fixed)
- Prolazi kompresije toka prosljeđuju dokumente s tokom unakrsnih referenci (PDF 1.5+ datoteke bez klasične ključne riječi
trailer) nepromijenjene; put obnove prethodno je pogrešno parsiraostartxrefkao lokaciju tablice i sintetizirao nagađani trailer, što je moglo proizvesti datoteku koja se ne može otvoriti - Kompresor preskače XMP tokove metapodataka kako bi PDF/A dokument zadržao obavezni nefiltriran tok metapodataka (ISO 19005-1 §6.7.2), i ostavlja netaknute vanjske tokove datoteka (
/Fs/FFilter) - Obnovljena tablica unakrsnih referenci skenira kopiju dokumenta bez tokova, pa binarni sadržaj toka više ne može lažirati zaglavlja objekata niti napuhati tablicu;
/Sizeobnovljenog trailera sada odražava stvarnu tablicu, a brojevi objekata su ograničeni gornjom granicom Annex C - Lociranje izvorne tablice unakrsnih referenci prihvaća CR-only završetke redaka (ISO 32000-1 §7.5.1) i više ne može podudariti slova
xrefunutarstartxref; skeniranje ključnih riječi toka dobilo je isti zaštitnik repaendstreamkoji se koristi drugdje i sada napreduje pored preskočenih tijela tokova
Version 2.16.2
Popravljeno (Fixed)
- Parsiranje cijelih brojeva u čitačima PDF-a na razini bajtova sada prihvaća eksplicitni znak
+dozvoljen prema ISO 32000-1 §7.3.3 i odbija nizove znamenki koji bi prekoračili, pa neprijateljski ili oštećeni dokumenti više ne mogu omotati parsiranu duljinu i pomake u obmanjujuće vrijednosti
Version 2.16.1
Popravljeno (Fixed)
- PDF/UA ubacivač piše vrijednost kataloga
/Langkao ispravni PDF tekstualni niz; prethodno je vrijednost prolazila kroz XML escaper, pa je jezični tag koji sadrži&ili zagrade proizveo oštećeni unos, a ne-ASCII unos je pisan kao sirovi UTF-8 - PDF/E unos
/ISO_PDFEVersionu Info koristi dijeljeni koder tekst-niza, čuvajući ne-ASCII vrijednosti legalnim u PDF 1.7 - XML escapiranje za XMP pakete ispušta kontrolne znakove koji su ilegalni u XML 1.0, pa metapodaci kopirani iz oštećenog izvornog dokumenta više ne mogu učiniti cijeli tok metapodataka neispravno oblikovanim
- Konverzija PDF-u-XMP datuma provjerava jesu li polja datuma numerička i dopunjava nedostajuće polje minuta, sprječavajući malformirane ISO 8601 datume u generiranom XMP; na platformama koje nisu Windows rezervna vremenska oznaka sada uključuje doba dana umjesto samog datuma
Version 2.16.0
Dodano (Added)
- Dekodiranje toka sada rekonstruira prediktore
/DecodeParms(PNG prediktori 10–15 i TIFF prediktor 2, ISO 32000-1 §7.4.4.4) nakon FlateDecode, poštujući/Colors,/BitsPerComponenti/Columns; tokovi objekata komprimirani prediktorom — uobičajen izbor pisača PDF 1.5+ — prethodno su davali razlikovane bajtove, pa su objekti koje nose bili tiho nevidljivi za skeniranja sukladnosti i ubacivanje oznaka
Popravljeno (Fixed)
- Detekcija FlateDecode sada parsira vrijednost
/Filterkao naziv ili niz umjesto podudaranja podniza, pa ulančani filtri i pojave riječi unutar nepovezanih vrijednosti više ne pokreću lažno raspuhivanje; nepodržani ulanci vraćaju se na sirove bajtove kao i ranije
Version 2.15.1
Popravljeno (Fixed)
- Skener rječnika sada preskače literalne nizove, hex nizove i komentare dok balansi
<</>>(ISO 32000-1 §7.2.2), pa rječnici koji sadrže vrijednosti poput(A >> B)ili hex niz koji graniči s zatvarajućim graničnikom više nisu skraćeni tijekom parsiranja trailera, kataloga i skeniranja sukladnosti - Ekstrakcija literalnog niza sada dekodira kompletan skup escapiranja iz §7.3.4.2 Tablica 3 —
\n \r \t \b \f, oktalni\ddd, nastavci redaka i EOL normalizacija bez escapiranja — umjesto kopiranja escapiranog slova doslovno, čime se obnavljaju ispravne usporedbe/Producer,/GTS_PDFXVersioni/ISO_PDFEVersionza pisače koji koriste oktalne escapirane znakove - Literalni nizovi koje pišu ubacivači oznaka sada escapiraju CR, LF i druge kontrolne znakove kako bi vrijednosti preživjele EOL normalizaciju čitačeve strane bajt po bajt
Version 2.15.0
Popravljeno (Fixed)
- Inkrementalna ažuriranja koja pišu ubacivači oznaka PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA i PDF/VT te putovi PAdES potpisivanja i DSS sada čuvaju trajni identifikator izvorne datoteke: prvi element trailera
/IDprenosi se doslovno prema zahtjevu ISO 32000-1 §14.4, a samo drugi (promjenjivi) element se osvježava; prethodno su oba elementa regenerirana, pa su vanjske reference i tijekovi rada dugoročne validacije vidjeli drugačiji identitet dokumenta nakon svake pohrane - PAdES potpisi, DSS ubacivanje i B-LTA vremenski žigovi dokumenta sada prenose referencu
/Infoizvornog trailera naprijed (ISO 32000-1 §7.5.6), pa svojstva dokumenta više ne nestaju iz ploča čitača nakon potpisivanja; trailer vremenskog žiga dokumenta također dobiva niz/ID - Rezervna vrijednost trailera
/Infoza dokumente s tokom unakrsnih referenci sada ispravno locira XRef stream rječnik i čuva broj generacije reference; prethodno se nikad nije podudarala na sukladnim PDF 1.5+ datotekama, tiho ispuštajući/Info
Version 2.14.4
Popravljeno (Fixed)
- Datum
/Mu rječniku potpisa koji pišuTPdf.SignPadesiSignPadesBytessada nosi obavezni prefiksD:i oznaku UTC pomakaZprema zahtjevu ISO 32000-1 §7.9.4; strogi validatori prethodno su odbijali vrijeme potpisivanja kao malformiran datumski niz
Version 2.14.3
Popravljeno (Fixed)
- Pretraživanja ključeva rječnika u dijeljenom PDF čitaču sada podudaraju cijele name tokene (ISO 32000-1 §7.3.5); prethodno je tok čiji je rječnik navodio
/Length1prije/Length(tipično za FontFile tokove) bio skraćen na pogrešan broj bajtova, tiho zasljepljujući PDF/A, PDF/UA i ostala skeniranja sukladnosti koja čitaju tokove fontova, CMap ili metapodataka - Pretraživanja trailera
/Encrypt,/Root,/Sizei/Infoviše ne podudaraju dulje ključeve koji dijele isti prefiks (poput/EncryptMetadata) - Proširenje toka objekta više ne vjeruje oštećenoj ili neprijateljskoj vrijednosti
/N: ne-cjelobrojna vrijednosti sada daju 0 umjesto neinicijaliziranog broja, a gornja granica izvedena iz/Firstsprječava prevelike alokacije pri skeniranju malformiranih dokumenata
Version 2.14.2
Popravljeno (Fixed)
- Ubacivači oznaka PDF/X, PDF/VT, PDF/UA, PDF/E i PDF/R sada kopiraju šifrirane izvorne dokumente nepromijenjene umjesto dodavanja sekcija ažuriranja u čistom tekstu; prethodno ponašanje je produciralo datoteke čiji je posljednji trailer izgubio unos
/Encrypt(ISO 32000-1 §7.5.6), pa su sukladni čitači pogrešno čitali šifrirano tijelo kao čisti tekst TPdf.SignPades,SignPadesBytesiInjectPadesDssMarkerssada podižuEPadesCryptokada je izvorni dokument šifriran, umjesto tiho emitiranja oštećene ili nepotvrdive datoteke; uklonite enkripciju prije potpisivanja ili ugradnje DSS materijala
Version 2.14.1
Popravljeno (Fixed)
TPdf.SignPadesiSignPadesBytessada popunjavaju sva četiri polja/ByteRangerječnika potpisa; prethodno su posljednja tri polja ostala na nultim rezervnim mjestima, pa su generirani potpisi deklarirali prazan raspon bajtova i neuspješno prošli provjeru u sukladnim validatorima- PAdES B-LTA rječnici vremenskih žigova dokumenta dobivaju isti popravak povratnog popunjavanja
/ByteRange ValidatePadesCompliancesada prihvaća standardni raspored potpisa gdje praznina raspona bajtova drži hex vrijednost/Contents, i provjerava da drugi segment raspona završava točno na kraju datoteke; prethodno su samo provjeru pokrivenosti prolazili rasponi bez praznina
Version 2.14.0
Dodano (Added)
TPdf.ExportXFDFserijalizira vrijednost svakog polja obrasca i napomene na svim stranicama u XFDF dokument (ISO 19444-1), emitujući<fields>za hijerarhijske vrijednosti obrasca i<annots>za sve podržane podtipove napomena (tekst, isticanje, podvlačenje, precrtavanje, valovito, linija, krug, kvadrat, karet, poligon, polilinja, pečat, tintas, slobodan tekst, privitak datoteke, zvuk, veza, redakcija)TPdf.ImportXFDFčita XFDF dokument natrag u učitani PDF, ponovo kreirajući napomene na odgovarajućim stranicama i primjenjujući vrijednosti polja na njihove widget napomene- Zapis
TPdfAnnotationdobio jeName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), krajnje točke linije, tjemena poligona/polilinije i polja liste gesta tintas kako bi XFDF kružni tokovi čuvali potpune metapodatke napomena - Novi uzorak
XfdfLabu skupovima demo programa Delphi, C++Builder i Lazarus demonstrira kružni tok izvoza/uvoza
Version 2.13.6
Popravljeno (Fixed)
ValidatePdfAsada tretira tokove kataloga/Metadatabez/Type /Metadataili/Subtype /XMLkao nedostajuće XMP metapodatke putempvaiMissingXmpMetadata- PDF/A preflight izvještaji sada klasificiraju
pvaiMissingXmpMetadatakao Metapodatke i preporučuju tok kataloga/Metadatas/Type /Metadata,/Subtype /XML, nefiltriranim XMP ipdfaidoznakama
Version 2.13.5
Popravljeno (Fixed)
ValidatePdfAsada izvještava o Widget napomenama bez rječnika izgleda i PDF/A-2 / PDF/A-3 napomenama koje zahtijevaju ali nemaju/APputempvaiAnnotationApDictViolation- PDF/A preflight izvještaji sada kategoriziraju
pvaiAnnotationApDictViolationkao sadržaj koji ubacivanje oznaka ne može popraviti
Version 2.13.4
Popravljeno (Fixed)
ValidatePdfAsada izvještava o PDF/A-2 i PDF/A-3 inline slikama čija je vrijednost/Iili/InterpolatetrueputempvaiImageDictionaryViolation, što odgovara postojećoj pokrivenosti rječnika Image XObject- PDF/A preflight izvještaji sada kategoriziraju
pvaiImageDictionaryViolationkao sadržaj koji ubacivanje oznaka ne može popraviti
Version 2.13.3
Popravljeno (Fixed)
ValidatePdfAsada izvještava o PDF/A-1 inline slikama koje koriste/LZWDecodeili skraćene/LZWfiltere unutar tokova sadržaja putempvaiInlineImageLzwForbidden, što odgovara postojećoj pokrivenosti inline slika PDF/A-2 i PDF/A-3- Skener filtera inline slika sada napreduje pored vodećih naziva resursa poput
/GS1, izbjegavajući zastoje pri skeniranju širih PDF/A-1 tokova sadržaja
Version 2.13.2
Dodano (Added)
TPdf.SetFocusedFormFieldTextupisuje tekst u međuspremnik za uređivanje trenutno fokusiranog polja obrasca putemFORM_ReplaceSelection, simetrično sFocusedFormFieldText. Za AcroForm text/combo polja vrijednost se predaje na/Vpri gubitku fokusa i traje; za XFA tekstualna polja upisivanje ostaje samo u memorijskom međuspremniku (PDFium ne izlaže javni API za usklađivanje XFA vrijednosti natrag u paket dataseta, pa se ne zadržava pri pohrani)- JavaScript host platforma sada se pričvršćuje kad god je V8 engine dostupan, neovisno o tome je li dokument XFA — pa može izvršavati i ugrađeni AcroForm JavaScript (skripte na razini dokumenta, izračuni polja,
app.alert). Prethodno jem_pJsPlatformbio spojen samo za XFA dokumente, ostavljajući AcroForm JS tiho onemogućenim
Promijenjeno (Changed)
- Pričvršćivanje JavaScript platforme sada je neovisno o XFA odluci u
InitializeFormFill— tablicam_pJsPlatformse gradi kad god jeV8FeaturesAvailableistinit, primjenjuje se nakon XFA version/callback spojeva umjesto ugniježđenja unutar njih
Version 2.13.1
Dodano (Added)
- Novi host događaji otkrivaju informacije koje su v2.13.0 form-fill povratni pozivi prethodno gutali:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Svaki događaj zadano koristi postojeće no-op ponašanje kada nije dodijeljen, pa postojeći hostovi nisu zahvaćeni - Svojstvo samo za čitanje
TPdf.XfaFormPacketsvraća jednokratni snimak svih XFA paketa (TXfaPacketList), ispunjavajući tipoveTXfaPacket/TXfaPacketListkoji su prethodno bili deklarirani ali nekorišteni - XFA-specifični PDFium kodovi grešaka
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTsada su vezani i prikazani putemLastPdfError, zamjenjujući generički “Unknown error” za XFA load/layout greške
Promijenjeno (Changed)
FFI_DoURIActionWithKeyboardModifiersada konzultiraOnXfaUriActionprije shell-izvršavanja URI-ja iz XFA polja, dajući hostu pravo veta (sigurnost: zlonamjerno XFA polje prethodno je moglo bezuvjetno pokrenuti proizvoljne URL-ove). Nedodijeljeni handleri čuvaju prethodni zadaniShellExecuteWDecodeFormFieldTypesada usmjerava XFA tipove polja krozIsXfaFormFieldumjesto eksplicitnog case-a s 8 grana, čime enumeracija ostaje poravnana sFPDF_FORMFIELD_XFA_*po ordinalnom pomaku
Popravljeno (Fixed)
ValidatePdfAsada izvještava o PDF/A-1 tvrdnjama koje koriste PDF 1.5 tokove unakrsnih referenci ili tokove objekata novim problemompvaiPdfA1Pdf15Structure, uz nastavak dopuštanja tokova objekata za PDF/A-2 i PDF/A-3
Version 2.13.0
Dodano (Added)
- Potpuna podrška za XFA (XML Forms Architecture) runtime:
TPdf.InitializeFormFillsada spaja svih 14 povratnih poziva verzije 2FPDF_FORMFILLINFO(FFI_DisplayCaret,FFI_GotoURL,FFI_PageEvent,FFI_PopupMenu,FFI_OpenFile,FFI_EmailTo,FFI_UploadTo,FFI_GetPlatform,FFI_GetLanguage,FFI_DownloadFromURL,FFI_PostRequestURL,FFI_PutRequestURL,FFI_OnFocusChange,FFI_DoURIActionWithKeyboardModifier) i pričvršćujeIPDF_JsPlatformkako bi XFA-enabledpdfium.dllmogao renderirati i skriptirati dinamičke XFA obrasce - Nova jedinica
Lib\FPdfXfa.paskoja deklarira XFA konstante (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) i tipoveTXfaPacket/TXfaSaveFormatkoji su prethodno bili referenciani samo u komentarima - Statički čitač XFA paketa na
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplusGetXfaTemplate/GetXfaDatasets/GetXfaConfigizvlače XFAtemplate,datasetsiconfigpakete kao sirovi XML bez potrebe za XFA-enabled runtimeom — korisno za reviziju sukladnosti i migraciju podataka - Probe sposobnosti: globalni
XfaFeaturesAvailable, i po dokumentuTPdf.XfaRuntimeAvailable(je liFPDF_LoadXFAstvarno uspio) iTPdf.XfaStaticReadable(razrješavaju li izvozi čitača paketa) TPdfFormFieldTypeproširen sfiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, uzDecodeFormFieldTypekoji mapira nove vrijednostiFPDF_FORMFIELD_XFA_*- JavaScript host događaji na
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrliOnXfaRuntimeMissingomogućuju hostu prilagodbu JS dijaloških okvira i XFA navigacije, ili reakciju kada XFA dokument ne može pokrenuti engine - Novi Delphi uzorak
XfaLabkoji demonstrira detekciju XFA, ekstrakciju paketa, probiranje sposobnosti i put rezerve za nedostupan runtime
Promijenjeno (Changed)
TPdf.LoadDocumentsada predhodno skenira unos za XFA markere (/XFAu AcroForm rječniku, ili katalog/NeedsRendering) i, kada ih pronađe, auto-odabirepdfium.v8.dllpostavljanjemEnableV8Engine := Trueprije prvog učitavanja singleton biblioteke; jednom kad se učita običnipdfium.dll, proces se ne može prebaciti, paOnXfaRuntimeMissingsignalizira taj slučajTPdf.GetPageCountsada odražava broj stranica koji XFA engine prijavljuje putemFFI_PageEventnakon dinamičke repaginacije, umjesto samo statičkog PDF stabla stranica- Kada se otvori XFA dokument ali runtime nije dostupan,
InitializeFormFillsada prikačujeversion=1ixfa_disabled=1umjesto zahtjevanja verzije 2 s nedodijeljenim povratnim pozivima, što je prethodno riskiralo loš dereference pokazivača povratnog poziva
Version 2.12.2
Popravljeno (Fixed)
ValidatePdfACompliancesada izvještava o korištenim prilagođenim XMP prostorima imena bezpdfaExtension:schemas, a i dalje prihvaća standardnepdfaidmetapodatke bez deklaracija ekstenzija- Validacija ugrađenih datoteka PDF/A-3 sada zahtijeva i unose
/Fi/UFna razini na rječnicima specifikacija datoteka i ignorira ugniježđene/EFključeve toka pri provjeri tih naziva
Version 2.12.1
Popravljeno (Fixed)
ValidatePdfACompliancesada dekodira escapirane PDF name tokene prije podudaranja JavaScript, LZWDecode, Type1 i srodnih zabranjenih naziva, pa su zamagljeniji ali semantički identični nazivi ispravno prijavljeni- Provjere inline slika PDF/A sada odbijaju vrijednosti
/Filteri/Fkoje koriste/LZWDecode, skraćeni/LZWili/Crypt, uključujući nizove i escapirane forme naziva - PDF/A validacija sada izvještava o tokovima metapodataka s zabranjenim filterima toka, OutputIntent ICC profilima čiji je broj komponenti
/Nnedostaje ili je nedosljedan, te PDF/A-3 specifikacijama ugrađenih datoteka s nedostajućim ili nevaljali/AFRelationship
Version 2.12.0
Dodano (Added)
- TSA HTTP zahtjevi sada postavljaju eksplicitna 30 s ograničenja za svaku fazu (razrješavanje/spajanje/slanje/primanje) putem
WinHttpSetTimeouts, pa spora ili nedostupna tijela za vremensko žigosanje više ne mogu beskonačno blokirati nit potpisivanja umjesto oslanjanja na implicitne zadane vrijednosti WinHttp-a - Derivacija nonce po zahtjevu za PAdES B-T / B-LTA zahtjeve vremenskog žiga kada pozivatelj izostavlja
TPadesSignOptions.Nonce: SHA-256 preklapanje monotonog brojača + zidni sat +GetTickCount64+ identifikator procesa zamjenjuje prethodni fiksni rezervni$100000000, pa dva zahtjeva izdana u istoj milisekundi više ne koriste isti anti-replay nonce PdfInflatesada ograničava dekomprimirani izlaz na 256 MiB radi sprječavanja iscrpljivanja memorije zlib-komprimiranim tokom na neprijateljskom ili oštećenom unosu (“zlib bomba”); ograničenje je velikodušno za bilo koji stvarni PDF tok
Promijenjeno (Changed)
- Miješanje slojeva
TPdfView(isticanje pretraživanja, odabir teksta, riječ čitanja, raspon odabira) više ne koristiGetPixel/SetPixelVpo pikselu; pravokutnik se sada miješa putem 32-bpp izvanekranskogTBitmapiScanLineu jednom prolazu, eliminiranjem tisuća GDI kernel prijelaza po crtanju i čineći velike odabire responzivnima FPdfAsn1.TDerReader.ReadIntegersada odbija INTEGER polja dulja od 8 bajtova (i 8-bajtne negativce čiji bi bit predznaka zahtijevaoshl >= 64), vraćajući 0 umjesto računanja pogrešne vrijednosti kroz ponašanje nedefiniranog pomaka na CMS/PAdES ASN.1 unosuParseTimeStampRespviše ne odjekuje nonce zahtjeva natrag kaoTPadesTimestamp.Nonce; dok ne bude spreman TSTInfo obilazač koji provjerava vraćeni nonce, polje ostaje 0 kako bi signaliziralo “nije provjereno” umjesto davanja pozivateljima lažne sigurnosti da je odgovor vremenskog žiga svježe
Popravljeno (Fixed)
PointsToPixelsvraćao je nepromijenjen unos za svaki DPI: djelitelj je bioPointsPerInch(konstanta 72) umjesto literala 72, svodjući formulu naResult := Points. Svaki vanjski pozivatelj koji vrši pretvorbu točaka u piksele uređaja putem ovog pomoćnika sada dobiva ispravnoPoints × PixelsPerInch / 72PdfMaxObjNumpodbrojavao je na dokumentima koji koriste tokove objekata (PDF 1.5+ ObjStm): objekti komprimirani unutar/ObjStmnemaju markerN 0 obj, pa ih je skeniranje sirovih bajtova propustilo, a ubacivači koji dodjeljujuMaxObj+1za nove objekte bi se sudarkali sa skrivenim ObjStm članovima i tiho oštećivali datoteku. Skeniranje sada prvo proširuje tokove objekata pa je svaki broj objekta vidljivInjectPdfAMarkersviše ne krivotvorit PDF/A claim na šifriranom dokumentu: PDF/A (ISO 19005-1 §7.1) zabranjuje enkripciju, a ubacivač je prethodno kopirao izvornik s oznakama čak i kada bi ga sljedeća validacija odbila. Kada jeHasEncryptpostavljeno, izvornik se sada prosljeđuje nepromijenjen. Normalni putTPdf.SaveAsPdfAveć uklanja enkripciju (saRemoveSecurity) prije ubacivanja, pa ovo zahvaća samo izravne pozivateljePdfReadStreamBytessada odbija/Lengthveći od cijele datoteke prije alokacije rezultantnog međuspremnika, zatvara rani alokacijski put na oštećenoj ili neprijateljskoj neizravnoj duljini
Version 2.11.0
Dodano (Added)
- PDFium zapis
FPDF_FILEHANDLERsada deklarira svojih šest povratnih poziva (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) kao prava polja umjesto komentara, što odgovara rasporedu C zaglavlja. XFA FFI povratni pozivi za prijenos datoteka (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL) koji vraćaju ili konzumirajuPFPDF_FILEHANDLERi dalje ostaju neimplementirani u Pascal form-fill sloju, ali tip je sada strukturno ispravan za budući XFA submit/upload put - Učitavanje i uklanjanje PDFium biblioteke (
LoadLibrary/UnloadLibrary) sada su serijalizirani kritičnim odjeljkom koji je globalan za proces, pa dvije radne nitiTPdfFuture<T>(ili radna nit koja se natječe s glavnom niti) ne mogu obje vidjetiPDFiumLibrary=0i dvostruko vezati, ili osloboditi DLL dok ga druga nit koristi - Odjeljak
initialization/finalizationsada pozivaUnloadLibrarypri uklanjanju jedinice, osiguravajući da seFPDF_DestroyLibraryizvrši (spajanje radnih niti, odlaganje V8 isolate, čišćenje fontova/predmemorije) umjesto oslanjanja na OS da povrati DLL
Promijenjeno (Changed)
TPdf.SetActivesada guta svaku iznimku pri učitavanju (prethodno samoEPdfError), pa pogreška toka ili kršenje pristupa tijekom postavljanja obrasca/stranice ostavljaActive=Falseumjesto djelomično učitane komponente s neodređenim stanjem- Dosljedne kodiranje znakova za argumente ključa metapodataka PDFium-a:
TPdf.GetMetaTextsada koristi isti FPCAnsiString/ DelphiUTF8Encodesplit kaoGetViewerPreferencei putovi učitavanja, umjesto bare pretvorbeAnsiString(Tag) - Deduplicirani pomoćnici
BytesToAnsi,AnsiToBytes,WriteBytesiWriteStr:FPdfCompressih sada uvozi izFPdfPdfCommon(njegovi pseudonimiWriteBytesToStream/WriteAnsiToStreamsu povučeni) i redundantno tro-argumentno preopterećenjeBytesToAnsiuFPdfPdfaje uklonjeno.FPdfAsn1zadržava svoju lokalnu kopiju prema dizajnu kako bi kriptografski sloj ostao slobodan od jedinice sloja sukladnosti
Popravljeno (Fixed)
- Curenje resursa u
TPdf.LoadDocument(datoteka, memorija,TBytes,TMemoryStream, prilagođeni tok) iTPdf.CreateDocument: ako biInitializeFormFilliliReloadPagepodiglo iznimku nakon uspjehaFPDF_LoadDocument/FPDF_CreateNewDocument, izvorniFPDF_DOCUMENThandle bio je procurio jer jeFActiveu tom trenutku bio još uvijek False. Svaki put sada umotava postavljanje poslije učitavanja utry/excepti zatvara dokument pri neuspjehu, ostavljajući komponentu čisto neaktivnom - Prijateljeviji dijagnostika učitavanja PDFium DLL-a:
CheckLoadLibrarydetektiraERROR_BAD_EXE_FORMAT(193) i izvještava o nepodudarnosti arhitekture 32/64-bit ukazujući na odgovarajuću izgradDLLs/Win32iliDLLs/Win64, umjesto prosljeđivanja samo generičke OS greške.CheckGetProcAddresssada navodi da je postavljenipdfium.dllstariji od vezivanja kada nedostaje potrebni izvoz, umjesto bare OS poruke “procedure not found”
Version 2.10.1
Ispravljeno (Fixed)
- Standardizacija SignerInfo sid u PAdES-u: identifikator potpisnika sada koristi formu RFC 5652 §5.3
issuerAndSerialNumber(issuer Name + serialNumber, oba izvučena doslovno iz DER certifikata potpisnika), zamjenjujući prethodni nestandardnisubjectKeyIdentifier+ SHA-256 rezervaciju punog certifikata koju su Adobe Acrobat i drugi sukladni validatori odbacivali. Novi TbsCertificate DER obilazitelj (ExtractIssuerAndSerial) čita SEQUENCE izdavatelja i INTEGER serijskog broja kao sirove TLV bajtove — serijski brojevi često premašuju rasponInt64, pa je sirovi TLV obavezan. FormasubjectKeyIdentifierostaje kao rezerva samo kada raščlamba DER certifikata ne uspije
Promijenjeno (Changed)
TCmsSignerId.SerialNumber: Int64zamijenjen je sSerialDer: TBytes(sirovi serialNumber TLV). CMS graditelj ugrađuje izrezani TLV doslovno uIssuerAndSerialNumber, izbjegavajućiInt64preljev na 20-bajtnim CA serijskim brojevima (gornja granica RFC 5280 §4.1.2.2)
Version 2.10.0
Dodano (Added)
- Dugoročna validacija PAdES B-LT: kada je
TPadesSignOptions.Level >= plB_LT,SignPadesBytesdodaje inkrementalno ažuriranje koje nosi rječnik/DSSs certifikatom potpisnika i punim posrednim lancem (samopotpisani korijen je isključen prema RFC 5652 §10.2.3), plus oznaku/Extensions /ESICrazine Level 1 (EN 319 142-1 §5.4.2) - Arhivska vremenska oznaka PAdES B-LTA: kada je
Level >= plB_LTAi postavljenTsaUrl, dodaje se rječnik potpisa Document Time-stamp (/SubFilter /ETSI.RFC3161) čiji/ByteRangepokriva cijelu datoteku; ESIC oznaka se promiče na razinu Level 2. Ovo dovršava četiri osnovne razine PAdES (B-B, B-T, B-LT, B-LTA) - Prikupljanje lanca certifikata:
ResolveWinSignersada pozivaCertGetCertificateChaini popunjavaTPadesResolvedSigner.ChainCertDerposrednim CA certifikatima, tako da B-LT/DSS /Certsnosi svaki certifikat potreban za validaciju potpisa bez vanjskih dohvaćanja.CertFreeCertificateContextje sada vezan, čime se zatvara curenje jednog konteksta po potpisu zabilježeno u v2.8.0 - Radni tijek integracije s PDF/A:
TPdf.SignPadesWithPdfAnajprije pretvara dokument u PDF/A (najviša razina koju knjižnica danas emitira), a zatim primjenjuje traženi PAdES potpis — obrazac spremnika za dugoročno arhiviranje koji preporučuje EN 319 142-1 Annex A.7
Version 2.9.0
Dodano (Added)
- Pouzdana vremenska oznaka PAdES B-T:
TPadesSignOptionsdobiva poljaLevel,TsaUrliNonce. Kada jeLevel >= plB_Ti postavljenTsaUrl,SignPadesBytesizdvaja vrijednost potpisa iz izgrađenog CMS-a, traži RFC 3161 vremensku oznaku nad njom i ugrađuje vraćeni TimeStampToken kao nepotpisani atribut SignerInfosignature-time-stamp— korak pouzdanog vremena B-T (EN 319 142-1 §6.3 zahtjev o) FPdfTsa: višeplatformski RFC 3161 klijent —BuildTimeStampReq(verzija 1, SHA-256 messageImprint nad vrijednošću potpisa, nonce, certReq=true),ParseTimeStampResp(prihvaća PKIStatus 0/1, odbacuje 2+, izdvaja TimeStampToken ContentInfo doslovno) iRequestTimestamp(jednokratni build+POST+parse).PadesTsaAvailableograničava značajku na platformama bez HTTP pozadineFPdfTsaWin: Windows WinHttp pozadina, dinamički vezana iz winhttp.dll (nula novih ovisnosti pri kompilaciji; HTTPS se pregovara iz Windows spremišta certifikata). Zrcali obrazac dinamičkog vezivanjaFPdfCryptoWinFPdfCms:ExtractSignatureValueobilazi izgrađeni CMS kako bi vratio sirove oktete potpisa (ulaz TSA heša), aAddSignatureTimestampToCmsponovno gradi ContentInfo s novimunsignedAttrs [1](0xA1) koji nosi atribut vremenske oznake. Validator faze 1 prepoznaje rezultat kao B-T potpis
Version 2.8.0
Dodano (Added)
- Stog za potpisivanje PAdES B-B: četiri nova čisto-Pascal/višeplatformska gradivna bloka (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) plus Windows CNG pozadina (FPdfCryptoWin) omogućujuTPdf.SignPades/SignPadesToStreamda proizvedu PAdES B-B potpis od kraja do kraja. Certifikat potpisnika se razrješuje po SHA-1 otisku iz spremišta Current User “MY”; RSA-PSS (preporučeno), RSA PKCS#1 v1.5 i ECDSA podržani su putemNCryptSignHash FPdfSha256: samostalni SHA-256 FIPS 180-4 (Init/Update/Final + jednokratni pomagači). FPC 3.2.2 ne isporučuje SHA-2 jedinicu, pa knjižnica posjeduje jednu kako bi držala svaku putanju CMS koda na jednomTSHA256Digesttipu bez RTL grananjaFPdfAsn1: DER enkoder (TDerWriter) i čitač (TDerReader) koji pokrivaju SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontekstno-specifične oznake s kodiranjem određene duljine i obradom IMPLICIT-oznaka koje CMS zahtijevaFPdfCms: CAdES SignedData graditelj (BuildSignedData) koji emitira potpisane atribute content-type, message-digest i signing-certificate-v2 koje PAdES baseline nameće, s opcionalnim signing-time i commitment-type-indication. Digest signedAttrs se izračunava nad SET-oznakom (0x31) formom i ponovno emitira s IMPLICIT [0] (0xA0) oznakom prema RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: apstrakcija kriptografske pozadine sPadesCryptoAvailable/ResolvePadesSigner, dok Windows implementacija veže crypt32.dll / ncrypt.dll dinamički (bez nove DLL ovisnosti pri kompilaciji). ECDSA potpisi se prekodiraju iz Windows IEEE P1363 r¦s forme u DERECDSA-Sig-Valuekoji CMS zahtijevaSignPadesBytes: ubacivanje potpisa na razini bajtova — rezervira hex utor/Contentsfiksne širine, izračunava pokrivajući/ByteRange, radi digest dokumenta, gradi i ugrađuje CMS i dodaje inkrementalno ažuriranje. Validator (v2.7.0) prepoznaje izlaz kao PAdES B-B potpis
Version 2.7.0
Dodano (Added)
- Strukturni validator PAdES (ETSI EN 319 142-1 V1.2.1): nova jedinica
FPdfPadesi metodaTPdf.ValidatePadesprovjeravaju rječnike vrijednosti potpisa dostupne iz/ByteRange, obilaze CMSSignedDataunutar/Contentsdovoljno duboko da potvrde CAdES odijeljenu formu i otkrivaju četiri osnovne razine (B-B, B-T, B-LT, B-LTA) kao i rječnike Document Time-stamp (/SubFilter /ETSI.RFC3161) - Skup PAdES problema na razini klauzule: 26
ppei*enuma pokriva prihvatljivost/SubFilter(adbe.pkcs7.sha1iadbe.x509.rsa_sha1označeni kao zabranjeni), pokrivenost datoteke/ByteRange, zabranu/Cert, formu CMSSignedData(jedan potpisnik, odijeljeni eContent, raspon verzija), obavezne potpisane atribute (content-type,message-digest,signing-certificate/v2), zabranjene digeste (MD5, SHA-1), međusobno isključivanje/Reasonnaspramcommitment-type-indication(zahtjev d), zahtjev za pouzdano vrijeme B-T, oznaku/DSS+/Certs+ ESIC Level 1 za B-LT te Document Time-stamp + ESIC Level 2 oznaku za B-LTA - DSS injektor:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreamdodaju inkrementalno ažuriranje koje nosi rječnik/DSS(sa/Certs,/OCSPs,/CRLsnizovima tokova) i oznaku/Extensions /ESIC(Level 1 ili 2) na kopiju dokumenta, čuvajući izvorne bajtove — korak ugrađivanja materijala za validaciju B-LT/B-LTA (klauzula 5.4.2) - Višeplatformska faza bez ovisnosti: validator i injektor su čisti Pascal i rade na svakoj podržanoj IDE (Delphi, Lazarus, FPC, C++Builder); za ovo izdanje nije potreban kriptografski pozadinski sloj i ne uvodi se nova DLL ovisnost
Version 2.6.0
Promijenjeno (Changed)
- Dedupliciranje između standarda: još sedam dupliciranih pomoćnih funkcija (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) uklonjeno je iz pojedinačnih standardnih jedinica i konsolidirano u
FPdfPdfCommon, čime se smanjuje oko ~300 redaka tereta održavanja copy-paste koda - Kvaliteta PreflightReporta: problemi content-klase za PDF/X i PDF/E koji su prije padali u generičku kategoriju “missing marker” sada nose točne kategorije Content/Metadata/Security i preporuke specifične za klauzulu (oko 15 enuma za oba standarda)
- Testna pokrivenost za PDF/E i PDF/R: još šest enuma s nultom pokrivenošću dobilo je pozitivne testove (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Ispravak Lazarus gradnje:
Tests.PdfVT(DUnitX jedinica samo za Delphi, dodana u v2.5.x) sada je isključena iz Lazarus projekta kako bi se uspostavila kompilacija
Version 2.5.3
Dodano (Added)
- Potpunost OutputIntent (PDF/X-4 §6.2.4):
pvviOutputIntentSchemeoznačava OutputIntent čiji/Snije/GTS_PDFX;pvviOutputIntentMissingIdentifieroznačava nedostajući/OutputConditionIdentifier - Izuzeće Reference XObject za PDF/VT-2 (§6.2.2):
pvviReferenceXObjectForbiddenviše se ne aktivira zaPDF/VT-2datoteku, koja smije legalno koristiti Reference XObjects na X-5g/5pg bazi - Validacija znakova MIME granice (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharoznačava granicu čiji znakovi padaju izvan skupa bchars ili čija duljina premašuje 70
Ispravljeno (Fixed)
InjectPdfVTMarkerssada zapisuje Info/CreationDatei/ModDateiz opcija spremanja, tako da proizvedena datoteka prolazi krozValidatePdfVTCompliancebez lažnogpvviInfoModDateMismatch(injektor je prije prepisivao XMP datume, ali ostavljao datume Info rječnika zastarjelima)
Version 2.5.2
Dodano (Added)
- Dosljednost Info
/ModDate(§6.3 NOTE 2, baza PDF/X-4):pvviInfoModDateMismatchoznačava/ModDateInfo rječnika koji, nakon normalizacije iz PDF-datuma u XMP-datum, nije jednakxmp:ModifyDate - Sukladnost inline dijelova PDF/VT-2s (Annex A.2): MIME validator sada pokreće
ValidatePdfVTCompliancena svakom inlineapplication/pdfdijelu i označava tijelo koje nije PDF/VT putemvtmviInlinePdfNotPdfVT
Version 2.5.1
Dodano (Added)
- Validacija segmentacije DParts (ISO 16612-2 §6.5 Table 4):
pvviDPartsBadChunkingoznačava/DPartsniz čiji neposljednji podnizovi nemaju točno 8192 unosa ili čiji posljednji podniz pada izvan 1..8192 - Dosljednost RecordLevel između tokova (Annex A.2): MIME validator PDF/VT-2s sada izdvaja
/RecordLevelsvakog inline PDF-a i označava neslaganje putemvtmviRecordLevelMismatch, dopunjujući postojeću NodeNameList provjeru - Naznake ponavljajućih grafičkih objekata (§6.7):
pvviGtsScopeInvalidValueoznačava/GTS_Scopeizvan {SingleUse, Record, File, Stream, Global, Unknown};pvviGtsScopeRecordWithoutRecordLeveloznačava/Recordbez/RecordLevel;pvviGtsXidNotUuidoznačava/GTS_XIDkoji nije RFC 4122 uuid: URI;pvviGtsEnvMissingoznačava nedostajući/GTS_Envkada je/GTS_ScopeStream ili Global (§6.7.4) - Otkrivanje unaprijednih referenci u MIME (Annex A.2):
vtmviForwardReferenceoznačava inline PDF koji citira ime datoteke (putem/EF /F) koje nije uveo raniji dio privitka u toku
Ispravljeno (Fixed)
ExtractNodeNameListFromPdfiExtractRecordLevelFromPdfuFPdfPdfvtMimeriješili su povremeni off-by-one gdje je 1-bazirani pomak koji vraćaAnsiFindKeytretiran kao apsolutni bajtovski pomak u proširenom PDF-u
Version 2.5.0
Dodano (Added)
- Metapodaci Document Part za PDF/VT (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionsdobio jeDpmEntriesiDpmTargettako da writer može prikvačiti/DPMrječnik na sintetizirani DPart čvor, s validacijom imena ključeva prema pravilu drugog-klasa-prefiksa iz Annex E i pravilima §6.6 NMTOKEN / jedinstvenost /GTS_Managed-oblika na strani validatora - Tokovna razmjena PDF/VT-2s (Annex A): nova jedinica
FPdfPdfvtMimepružaBuildPdfVT2sStreamiValidatePdfVT2sStreamzamultipart/mixedMIME omotnicu koja nosi inline PDF/VT dijelove plus privitke ICC profile, s pravilom redoslijeda zaglavljaX-PDFVT-Stream-version: 1i provjerom dosljednostiNodeNameListizmeđu tokova TPdf.ValidatePdfVTsada izvršava autoritativno prebrojavanje JavaScript akcija putemFPDFDoc_GetJavaScriptActionCount, dopunjujući skeniranje imena/JavaScriptna razini bajtova
Ispravljeno (Fixed)
- Ispravnost PDF/VT
Trappedna bazi PDF/X-4: enum vrijednostptvUnknownuklonjena je (PDF/X-4 zabranjuje/Unknown),ptvUnspecifiedse normalizira na/Falsepri zapisu (nedostajući/Trappedtakođer je zabranjen), a novi problempvviTrappedInvalidoznačava odsutnu iliUnknownvrijednost ValidatePdfVTCompliancesada proširuje tokove objekata (PdfExpandObjectStreams) prije skeniranja, tako da katalog, OutputIntent ili Metadata rječnik pohranjeni unutar komprimiranog ObjStm (PDF 1.5+, tipično za PDF/X-4 proizvođače) bivaju dostupni pretragama na razini bajtova
Promijenjeno (Changed)
- PDF/VT-1 sada nasljeđuje pune zabrane sadržaja PDF/X-4:
pvviAcroFormForbidden(/AcroFormili/XFA),pvviAdditionalActionsForbidden(katalog/AA),pvviMissingTrimBoxipvviReferenceXObjectForbidden(Reference XObject, samo X-5g/5pg) - Dedupliciranje između standarda:
BuildDictObj,IccComponentCount, ugrađeni sRGB ICC profil (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumiPdfExpandObjectStreamspromaknuti su iz utrojenih lokalnih kopija uFPdfPdfa/FPdfPdfx/FPdfPdfvtu jedan kanonski dom uFPdfPdfCommon; 3144-bajtni ICC literal sada postoji točno jednom u kodnoj bazi
Version 2.4.0
Ispravljeno (Fixed)
InjectPdfUaMarkersviše ne odbacuje referencu/Infona traileru na bazi cross-reference-stream: lokalniSourceTrailerInfoRef(kojem je nedostajao xref-stream fallback) zamijenjen je zajedničkimPdfSourceTrailerInfoRef(prenesenim iz kopije za PDF/A koja je imala fallback od v2.0.0)- Zajednički
PdfReadStreamBytessada rukuje neizravnim referencama/Length N G R(prenesenim iz lokalne kopije za PDF/A), pa validatori PDF/VT, PDF/R i PDF/E više pogrešno ne čitaju niti preskaču tokove XMP metapodataka koje su proizveli alati s neizravnim Length (Acrobat, Ghostscript)
Promijenjeno (Changed)
- Dedupliciranje između standarda: lokalne kopije
PdfReadTraileruFPdfPdfaiFPdfPdfx, lokalne kopijeSourceTrailerInfoRefuFPdfPdfaiFPdfPdfua, te lokalniPdfReadStreamBytesuFPdfPdfaizbrisani su — zajedničke verzije uFPdfPdfCommonsada se primjenjuju posvuda; time se uklanja oko 330 redaka dupliciranog koda i eliminira obveza održavanja sinkronizacije kopija - Pokrivanje nedostatka testova za PDF/X: sedam enum vrijednosti za content-class koje su prethodno imale nultu pokrivenost dobilo je pozitivne testove (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Promijenjeno (Changed)
- Pokrivanje nedostatka testova za PDF/A se nastavlja: još tri enuma s nultom pokrivenošću dobila su pozitivne testove;
pvaiForbiddenRenderingIntent(§6.2.9) označava nestandardni naziv za rendering-intent u content streamu;pvaiJpeg2000Violation(§6.2.2) označava JPXDecode sliku s/NumComponentsizvan raspona {1,3,4} u Part 2;pvaiInlineImageLzwForbidden(§6.1.10) označava ugrađenu sliku koja koristi LZW filtar u Part 2
Version 2.2.0
Promijenjeno (Changed)
- Regresijski testovi za cross-reference-stream: postojeći
Validate_XrefStreamTrailer_DetectsConformancesada također provjerava da je referenca kataloga/Metadatarazriješena i da se XMPpdfaid:partčita na bazi xref-stream (ne samo/Root+/ID); novi testInjectPdfA_XrefStreamBase_RoundTripsštiti putanju xref-stream injektora dodanu u v2.0.0, a dva međustandardna testa (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) potvrđuju da PDF/E i PDF/R validatori više ne odbacuju xref-stream PDF-ove kao nečitljive - Zatvaranje testnog duga za PDF/A:
Validate_MinimalPdf_FlagsRequiredMarkerspotvrđuje da minimalan PDF pokrećepvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataipvaiMissingXmpDates— zatvarajući jaz simetrije s PDF/E i PDF/X validatorima koji su već imali ekvivalentne testove; još dva enuma s nultom pokrivenošću dobila su pozitivne testove:pvaiUnembeddedFontipvaiSubsetMissingCidSet
Version 2.1.0
Ispravljeno (Fixed)
- PDF/E je nenamjerno izostavljen iz ispravka za cross-reference-stream u v2.0.0: i
InjectPdfEMarkersiValidatePdfECompliancei dalje su pozivaliPdfReadTrailerbezAcceptXrefStream, pa je PDF/E injektor tiho zakazao na PDF 1.5+ izlazu (pdfiumov zadaniSaveAsCopy); oba pozivna mjesta sada prosljeđujuTrue - Zajednički fallback za cross-reference-stream u
PdfReadTrailersada nosi zaštitu/Type /XRefkoju su lokalne kopije za PDF/A i PDF/X već imale, tako da neispravan pomakstartxrefkoji pokazuje na nepovezani rječnik čisto zakazuje umjesto da se pogrešno raščlani kao trailer - Razrješavač neizravnih referenci
/LanguValidatePdfUaCompliance(v2.0.0) bio je nedostižan:PdfFindObjDictpronalazi samo<<rječnike, ali niz znakova objekta/Langje(...)ili<...>bez rječnika; zamijenjeno izravnim skeniranjem tijela objekta koje locira token niza znakova
Promijenjeno (Changed)
- Sedam suvišnih pomoćnih kopija (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj) koje su bile identične zajedničkim verzijama u
FPdfPdfCommonuklonjeno je izFPdfPdfaiFPdfPdfua— zajedničke verzije sada se primjenjuju svugdje putemuses
Version 2.0.0
Ispravljeno (Fixed)
- Tihi neuspjeh među standardima: zajednički pomoćnik
PdfReadTrailer(koji koriste injektori i validadatori markera za PDF/UA, PDF/X, PDF/VT i PDF/R) sada prihvaća parametarAcceptXrefStreami vraća se na rječnik objekata toka unakrsnih referenci kada ključna riječtrailernije prisutna (PDF 1.5+); prethodno je pdfiumov izlazSaveAsCopy(koji koristi cross-reference-stream) uzrokovao tiho otkazivanje svakog injektora markera — izvorni bajtovi kopirani su nepromijenjeni, a poziv je i dalje vraćao uspjeh; validator za PDF/R-1.0 (čija je baza PDF 2.0 uvijek cross-reference-stream) bio je praktički bez učinka, a zrela implementacija validatora za PDF/A prenesena je u zajednički pomoćnik kako bi svi standardi imali koristi - Skeniranje rječnika trailera u
InjectPdfUaMarkersiInjectPdfAMarkerssada koristiPdfDictEndkoji je svjestan dubine umjesto jednostavne pretrage za>>, tako da se trailer koji sadrži ugniježđeni rječnik (npr./Encrypt << ... >>) više ne prekida prerano prije završnog unosa/Info
Promijenjeno (Changed)
TPdf.ValidatePdfUasada potiskuje grubipvuaiFontNotEmbeddedna razini bajtova kada se preciznipvuaiPdfiumFontNotEmbeddediz objektnog modela Pdfium već aktivirao, tako da izvještaj o provjeri više ne sadrži dva gotovo identična retka „embed your fonts” za isti nedostatakpvuaiLangInvalidFormat(§7.2) sada razriješava neizravnu referencu/Lang(N 0 R) na njezin objekt niza znakova i provjerava sadržaj, tako da neizravno referencirana jezična oznaka više nije slijepa pjega
Version 1.99.0
Ispravljeno (Fixed)
pvuaiLangInvalidFormat(§7.2) više ne propušta heksadecimalno kodirane/Langnizove: parovi UTF-16BE (s oznakomFE FFBOM) i čisti ASCII heksadecimalni nizovi sada se dekodiraju i prolaze kroz istu provjeru gramatike BCP 47 kao i literalni(...)nizovi, tako da se neispravan heksadecimalni/Langotkriva dok usklađeni (npr. UTF-16BEen-US) više nije u opasnosti od označavanja
Promijenjeno (Changed)
pvuaiFontMissingToUnicode(§7.21.7) sada izuzima/MacExpertEncodingzajedno s/WinAnsiEncodingi/MacRomanEncoding, što odgovara četirima uvjetima izuzeća koje klauzula navodi
Version 1.98.0
Dodano (Added)
pvuaiNeedAppearancesTrue(§7.18.4) označava AcroForm čija je zastavica/NeedAppearancespostavljena na true, zbog čega se izgledi kontrola ne zaključavaju pouzdano i tehnologija asistencije ih ne može povezati sa stablom strukture; preneseno iz PDF/A validatora i ograničeno prisutnošću/AcroFormkako bi se smanjila površina skeniranja
Promijenjeno (Changed)
- Regresija korpusa veraPDF: povezani su prolazni i neprolazni parovi Reference-XObject (§7.20) te prolazni i neprolazni parovi podskupova CharSet/CIDSet (§7.21.4.2) u
Live_Corpus_ValidatePdfUaMatchesConformance; uzorci prolaza za zabranjenu vrijednost ToUnicode (§7.21.7) i isječak medija (§7.18.6.2) također su povezani kao zaštita od lažno pozitivnih rezultata (njihovi neprolazni uzorci koriste rasporede rječnika koje skeniranje na razini bajtova ne hvata, pa je povezana samo prolazna strana) - Popis tvrdnji o putanji prolaza korpusa dobio je 15 novih zaštita bez lažno pozitivnih rezultata, tako da se svaka aktivna provjera
pvuai*na razini bajtova i provjera strukture sada provodi na usklađenim uzorcima (prethodno je samo ~30 od 60 aktivnih problema bilo zaštićeno); zaštita zapvuaiLangInvalidFormatnamjerno je izostavljena jer provjera na razini bajtova konzervativno označava heksadecimalno kodirane/Langnizove koje ne može dekodirati
Version 1.97.0
Ispravljeno (Fixed)
- Učvršćivanje
ValidatePdfUaStructureElements: prolaz kroz lanac roditeljaEnclosingTablesada sadrži brojač skokova (ograničen brojem elemenata), tako da neispravan ciklusParentIndexna sintetičkom polju strukturnih elemenata više ne može blokirati pozivatelja; dodjela polja ID-ova označenog sadržaja uValidatePdfUaPageContentTaggingsada je ograničena na najviše milijun unosa, sprječavajući dodjelu memorije od nekoliko GB u slučaju neispravnog ili zlonamjernogMarkedContentID
Promijenjeno (Changed)
- Komentar dokumentacije enuma
pvuaiOrderedListMissingListNumberingsada točno opisuje što provjera radi: označava elementLčija je vrijednostListNumberingizvan skupa Tablice 347 standarda ISO 32000-1 (odsutni atribut se ne označava); prethodni komentar implicirao je da također otkriva poredane popise kojima nedostaje taj atribut, što implementacija ne čini - Dva uzorka neprolaza korpusa za nepodudaranje WMode-a
7.21.3.3-t02sada su povezana uLive_Corpus_ValidatePdfUaMatchesConformance— od verzije v1.95.0, tok CMap je dekompresiran pomoću FlateDecode, pa se usporedba rječnika i sadržaja sada pokreće na čitljivoj strani; zastarjeli komentar “nije povezano” je uklonjen
Version 1.96.0
Dodano (Added)
- Konzistentnost među standardima:
TPdf.ValidatePdfUadobiva dvije provjere prenesene iz PDF/A validatora;pvuaiAnnotationFlagsViolation(§7.18.1) označava neizuzetu bilješku koja nosi zastavicu Hidden / Invisible / NoView, što prekida tijek čitanja tehnologije asistencije;pvuaiActionTargetMissing(§7.18.5) označava radnju GoToR / URI / SubmitForm kojoj nedostaje potreban ključ cilja (/F+/D, /URI, /F), ostavljajući poveznicu neupotrebljivom za AT
Ispravljeno (Fixed)
- Spajanje stabla strukture kroz više stranica: petlja akumulacije
AllElemsuTPdf.ValidatePdfUasada ponovno postavljaParentIndexsvakog elementa iz lokalnog polja stranice na spojeno polje; bez ovoga, podređeni elementi na stranici 2 zadržavali su lokalni indeks stranice koji je pokazivao na isječak stranice 1, tiho kvareći svaku provjeru ovisnu o ParentIndex (struktura tablice/popisa, broj podređenih H elemenata prema §7.4.4, EnclosingTable) - Raščlanjivanje RoleMap:
PdfReadRoleMapPairsviše ne prekida cijelo skeniranje parova ključ/vrijednost kada je vrijednost neizravna referenca (N 0 R) or polje ([...]) — što su oba valjana oblika RoleMap prema ISO 32000-1 14.8.5.1; sada preskače samo taj unos (Continue) umjesto prekida (Break), čime se uklanjaju lažno pozitivni rezultatipvuaiRoleMapUnresolvedna tipovima mapiranim nakon unosa neizravne reference ili polja
Promijenjeno (Changed)
FPdfPreflightReport: 18 aktivnih vrijednostiTPdfUaValidationIssuekoje su prethodno padale u općenitu kategoriju “nedostaje marker” i pripadajuću preporuku sada nose točne kategorije (Structure / Content / Metadata / Security) i preporuke specifične za pojedinu klauzulu; također je ispravljena tiskarska pogreškapuaNone / pua1→pucNone / puc1uPDFSpecComplianceMatrix.md
Version 1.95.0
Promijenjeno (Changed)
- Provjera potpunosti i ispravnosti
TPdf.ValidatePdfUa: provjerapvuaiCMapWModeMismatch(§7.21.3.3) i provjerapvuaiToUnicodeForbiddenValue(§7.21.7) sada dekomprimiraju CMap / ToUnicode tokove sažete pomoćuFlateDecodeprije skeniranja (prethodno su se provjeravali samo nesažeti tokovi, što je bio poznati izvor lažno negativnih rezultata); zajednički pomoćniciPdfInflate/PdfReadAndDecodeStreampreneseni su izFPdfPdfa/FPdfPdfxuFPdfPdfCommonkako bi sve jedinice usklađenosti dijelile istu kopiju
Dodano (Added)
pvuaiSubsetCharSetEmpty(§7.21.4.2) označava Type 1 podskupFontDescriptorkoji nosi ključ/CharSetčija je vrijednost niza prazna — postojećipvuaiSubsetMissingCharSethvatao je samo nedostajući ključ; prazan/CIDSetse ne označava jer font bez CID-ova može legitimno nositi praznu bitmapu
Version 1.94.0
Dodano (Added)
- Revizija drugog prolaza
TPdf.ValidatePdfUazatvorila je šest praznina prema ISO 14289-1 koje su uočene pregledom stavku po stavku i ponovnim skeniranjem izvornih API-ja za Pdfium koji su već omotani, ali neiskorišteni u PDF/UA stazi:pvuaiHeadingFormatInvalid(§7.4.3) označava korisnički definirane oznake zaglavlja koje počinju s H, ali sadrže separatore, razmake ili rimske brojeve umjesto čistih arapskih znamenki;pvuaiMissingDocumentOutline(§7.17, treba) označava višestranični dokument koji ne sadrži strukturu oznaka (jednostranični dokumenti su izuzeti);pvuaiStructElementLangInvalid(§7.2) označava vrijednost/Langstrukturnog elementa koja nije valjana oznaka BCP 47;pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) označava strukturni element Widget kojem nedostaje vlasnik atributa PrintField;pvuaiLinkNotInStructureTree(§7.18.5) označava dokument čije bilješke/Subtype /Linknisu izložene kao strukturni elementi Link;pvuaiPdfiumAnnotationMissingContentsipvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) dodaju precizno skeniranje bilješki na razini objektnog modela Pdfium koje izuzima skrivene, izvan-crop-box, Popup i Widget bilješke — čime se eliminiraju lažno pozitivni rezultati heuristike na razini bajtova, koja ne može pročitati zastavice/Fili/Rect
Version 1.93.0
Dodano (Added)
TPdf.ValidatePdfUasada postavlja prolaz objektnog modela Pdfium povrh inspektora na razini bajtova, zrcaleći arhitekturu PDF/A 7. kruga: prolazi kroz tekstualne objekte svake stranice putemFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) i skenira svaki znak putemFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) iFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — što je preciznije od heuristike na razini bajtova, koja se aktivira samo kada nema nijednog programa fonta ili se/ToUnicodeuopće ne pojavljuje; prolaz se skraćuje na tri razine: petlja stranice izlazi kada su sva tri problema sloja Pdfium već postavljena, petlja po objektu izlazi na prvom neugrađenom fontu, a skeniranje znakova preskače prolaz.notdefkada jeUnicodeMapErrorveć pogodio; PDF/UA je bio posljednji validator PDF standarda bez sloja objektnog modela Pdfium
Version 1.92.0
Dodano (Added)
- Stvoren je
Tests.PdfR— prva testna datoteka za PDF/R-1 validator (FPdfPdfr), koja pokriva validaciju zaglavlja, zabranu ObjStm, detekciju rasterskih markera i zaštitu od lažno pozitivnih rezultata za čistu datoteku; svih šest testnih paketa PDF standarda sada ima namjenske testne datoteke: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = ukupno 212 testova
Version 1.91.0
Dodano (Added)
ValidatePdfEiValidatePdfVTdobili su provjere na razini sadržaja koje su prethodno bile dostupne samo u validatorima PDF/A, PDF/UA i PDF/X:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(samo PDF/E),pveiEmbeddedFilesForbidden(samo PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden;TPdf.ValidatePdfEiTPdf.ValidatePdfVTtakođer dobivaju sloj objektnog modela Pdfium (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded) koji prolazi kroz tekstualne objekte stranice putemFPDFFont_GetIsEmbedded, prekidajući rad na prvom neugrađenom fontu
Version 1.90.0
Dodano (Added)
TPdf.ValidatePdfXsada postavlja prolaz objektnog modela Pdfium povrh inspektora na razini bajtova: prolazi kroz tekstualne objekte svake stranice putemFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedi prijavljuje neugrađeni font kaopvxiPdfiumFontNotEmbedded— što je preciznije od heuristike na razini bajtova koja se aktivira samo kada nema nijednog programa fonta; prolaz se prekida na prvom pronađenom neugrađenom fontu
Promijenjeno (Changed)
- Prolaz kroz stablo strukture u
TPdf.ValidatePdfUa: pozivValidatePdfUaPageContentTaggingpo stranici (koji gradi mapu potraživanja ID-a označenog sadržaja i unakrsno provjerava svaki tekstualni/slikovni objekt) sada se preskače na sljedećim stranicama nakon što jepvuaiUntaggedContentveć pronađen — strukturni elementi se i dalje prikupljaju za provjere kroz više stranica (jedinstveni ID bilješke, slijed zaglavlja), ali skupi prolaz označavanja sadržaja po stranici rano prestaje
Version 1.89.0
Promijenjeno (Changed)
- Performanse sloja objektnog modela Pdfium u
TPdf.ValidatePdfA: prolaz stranica/objekt sada se skraćuje na tri razine — petlja stranice izlazi kada su svi primjenjivi problemi sloja Pdfium već pronađeni, petlja po objektu izlazi kada su postavljena oba problema po objektu (ugrađivanje fonta + prozirnost), a skeniranje znakova tekstualne stranice preskače prolaz.notdefkada jeUnicodeMapErrorveć pogodio; provjere dostupnosti API-jaAssigned()i zastavice usklađenosti predmemoriraju se u lokalne logičke vrijednosti jednom prije petlje umjesto da se ponovno procjenjuju na svakoj stranici/objektu/znaku; na velikom neusklađenom dokumentu prolaz se sada može zaustaviti nakon prve stranice umjesto skeniranja svih stranica; na usklađenom dokumentu dodatni trošak po stranici je manji (nema ponovljenih pozivaAssigned)
Version 1.88.0
Dodano (Added)
ValidatePdfXdobio je osam novih vrijednostiTPdfXValidationIssuena razini sadržaja koje pokrivaju ograničenja razmjene ispisa što ih PDF/X nameće izvan markera formata datoteke:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(nema/TrimBoxna nijednoj stranici) ipvxiTrappedNotSet(/Trappedje odsutan ili je/Unknown); validator PDF/X prethodno je provjeravao samo markere XMP/OutputIntent; ovo je njegov prvi prolaz na razini sadržaja; zajednički pomoćniciPdfStructureBytes/PdfHasName/PdfCountNamedodani su uFPdfPdfCommonkako bi ih sve jedinice usklađenosti mogle koristiti
Version 1.87.0
Dodano (Added)
- Validacija PDF/UA sada pokriva pravila za složene fontove prema ISO 14289-1 §7.21.3:
pvuaiCidSystemInfoMismatchoznačava Type0 fontove čiji ugrađeni CMap i potomak CIDFont se ne slažu okoRegistry/Orderingili čijiSupplementCIDFonta premašuje onaj CMap-a,pvuaiCMapNotEmbeddedoznačava CMap-ove na koje se referira po imenu (kaoEncodingiliUseCMap) a koji nisu unaprijed definirani CMap-ovi iz ISO 32000-1 Tablice 118, tepvuaiCMapWModeMismatchoznačava ugrađene CMap-ove čiji rječničkiWModese razlikuje od WMode-a u sadržaju njihovog toka
Ispravljeno (Fixed)
- Provjera §7.21.3.2
pvuaiCidFontMissingCidToGidMappropuštala je CIDFontType2 rječnike čiji par ključ/vrijednostSubtypeje odvojen novim retkom, a sada također označava vrijednost nazivaCIDToGIDMapkoja nijeIdentity
Version 1.86.0
Dodano (Added)
- Validacija PDF/UA sada pokriva pravila TrueType kodiranja prema ISO 14289-1 §7.21.6:
pvuaiTrueTypeEncodingInvalidoznačava nesimboličke TrueType fontove čijeEncodingnedostaje ili nije niMacRomanEncodingniWinAnsiEncoding(izravno ili putemBaseEncoding), apvuaiSymbolicTrueTypeEncodingoznačava simboličke TrueType fontove koji nose nestandardni nazivEncoding
Version 1.85.1
Promijenjeno (Changed)
- Provjera redosljeda kartica prema ISO 14289-1 §7.18.3
pvuaiMissingTabsOrdersada se izvodi po stranici: svaka stranica koja sadrži zabilješke mora deklarirati/Tabs /Su vlastitom rječniku stranice, pa sukladna stranica sestra više ne maskira stranicu bez te deklaracije
Version 1.85.0
Dodano (Added)
- Validacija PDF/UA sada razlikuje dinamičke od statičkih XFA obrazaca prema ISO 14289-1 §7.15:
pvuaiXfaDynamicoznačava obrasce čija XFA konfiguracija postavljadynamicRendernarequired
Promijenjeno (Changed)
- Prijašnja zastavica kandidata za bilo koji XFA
pvuaiXfaPresentje povučena i više se ne podiže (statički XFA je sukladan s §7.15); vrijednost enumeracije ostaje zbog kompatibilnosti API-ja
Version 1.84.0
Dodano (Added)
- Validacija PDF/UA sada otkriva neoznačeni pravi sadržaj koji zahtijeva ISO 14289-1 §7.1:
pvuaiUntaggedContentoznačava prikazane tekstualne i slikovne objekte koji nisu ni preuzeti od strane stabla struktura stranice (putem njihovih ID-ova označenog sadržaja) ni označeni kao Artifact - Novi pomoćnici na razini stranice
GetPageContentMarkInfosiValidatePdfUaPageContentTaggings zapisomTPdfPageContentMarkInfoza izravnu upotrebu
Version 1.83.0
Dodano (Added)
- Validacija PDF/UA sada primjenjuje model naslova prema ISO 14289-1 §7.4.4:
pvuaiHeadingModelMixedoznačava dokumente koji miješaju generičku oznakuHs numeriranim naslovimaH1..Hn, apvuaiHeadingMultipleInNodeoznačava čvorove strukture koji nose više od jednog podređenog naslovaH
Version 1.82.0
Dodano (Added)
- Validacija PDF/UA sada razrješuje RoleMap koji zahtijeva ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardoznačava unose RoleMap-a koji redefiniraju standardni tip strukture, apvuaiRoleMapUnresolvedoznačava korištene nestandardne tipove strukture čiji lanac RoleMap-a nedostaje, visi ili je ciklički — neizravni lanci koji dosežu standardni tip se prihvaćaju, a nekorišteni unosi RoleMap-a se nikada ne ocjenjuju - Novi pomoćnici
PdfUaIsStandardStructType,PdfReadRoleMapPairs(s dekodiranjem PDF escape sekvenci naziva#hh) iValidatePdfUaRoleMapUsageza izravnu upotrebu
Version 1.81.0
Dodano (Added)
- Validacija PDF/UA sada pokriva označavanje popisa prema ISO 32000-1 koje zahtijeva ISO 14289-1 §7.6:
pvuaiListStructureInvalidoznačava LI stavke izvan L kontejnera i Lbl/LBody dijelove izvan LI stavke, uz prihvaćanje ugniježđenih popisa i legitimne upotrebe Lbl unutar elemenata Note i BibEntry
Version 1.80.0
Dodano (Added)
- Validacija PDF/UA sada pokriva označavanje tablica prema ISO 32000-1 koje zahtijeva ISO 14289-1 §7.5:
pvuaiTableStructureInvalidoznačava TH/TD ćelije izvan TR retka i retke ili grupe redaka izvan njihovog Table kontejnera,pvuaiTableHeaderMissingScopeoznačava ćelije zaglavlja čiji odnos nije odrediv ni putem atributa Scope ni putem asocijacije Headers/ID, tepvuaiTableHeadersUndefinedIdoznačava Headers reference u dokumentima koji ne definiraju ID-ove elemenata strukture TPdfStructureElementizlaže atribute tablicaScope,HasHeaders,HeadersIds,ColSpaniRowSpan, razriješene tijekom prolaska stabla struktura
Promijenjeno (Changed)
- Prolazak stabla struktura sada čita sve atribute rasporeda i tablica u jednom prolazu kroz rječnike atributa svakog elementa umjesto jednog skeniranja po atributu
Version 1.79.1
Dodano (Added)
- Primjer
AnnotationsLabpriključen je na Lazarus i C++Builder, pridružujući se postojećem Delphi primjeru konzole
Ispravljeno (Fixed)
TPdf.CreateAnnotationmogao bi izbaciti “Cannot set attachment points” za oznake teksta (markup) koje koriste kvadrate (Highlight, Underline, StrikeOut, Squiggly) jer nova zabilješka još nije imala mjesto u kvadratu za zamjenu; umjesto toga sada dodaje prvi kvadrat
Version 1.79.0
Dodano (Added)
- Novi primjer
AnnotationsLabDelphi konzole: stvara zabilješke Text, Highlight, Square i Circle, zapisuje ih u PDF, a zatim ponovno učitava datoteku i nabraja popis zabilješki na stranici
Version 1.78.0
Dodano (Added)
- Nove značajke
TPdf.MeasureTextiTPdf.MeasureTextWidth: mjere prikazanu širinu i visinu niza za dani font i veličinu (PDF korisničke jedinice, 1 jedinica = 1/72 inča) bez dodavanja sadržaja na stranicu, čineći raspored i logiku prelamanja riječi mogućim povrhAddText; omogućila ih je samostalnaFPdfMeasurejedinica kao pomoćnik klase - Novi
TPdf.WrapText: pohlepno prelamanje teksta izgrađeno naMeasureTextWidthkoje dijeli tekst po razmacima i pakira riječi u retke ne šire od zadane širine (PDF korisničke jedinice); predugačka jedna riječ dobiva svoj vlastiti redak (nema loma unutar riječi), vraćajući prelomljene retke kao niz
Version 1.77.0
Dodano (Added)
ValidatePdfAdobio je tri noveTPdfAValidationIssuevrijednosti koje pokrivaju klauzule prethodno ocijenjene s “NO” ili “reader behaviour” prijašnjom revizijom praznina (dodan je novi niz ordinarja, a postojeće vrijednosti nisu promijenjene):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — znak koji se rješava u Unicode 0 bez pogreške mapiranja, što je simptom vremena izvođenja za glyph referencu.notdef; detektirano slojem Pdfium objektnog modela),pvaiWordBreakMissing(Level A 6.8.3.2 — niz znakova u prikazu s više od 20 znakova bez razmaka, što je vjerojatno kršenje spojenih riječi; gruba heuristika koja izbjegava lažne CJK detekcije), ipvaiLinkActionMissingTarget(6.6.3 — akcija GoToR/URI/SubmitForm kojoj nedostaje ciljni ključ prikaza, tako da ga čitač ne može prikazati)
Version 1.76.0
Dodano (Added)
ValidatePdfAje dobio tri noveTPdfAValidationIssuevrijednosti (dodani na kraj, postojeće vrijednosti ostaju nepromijenjene):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 —/BaseFontili/FontNametoken koji sadrži bajtove ≥ 0x80 koji ne tvore valjani UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — inline slika u toku sadržaja stranice koristi LZW ili Crypt filter) ipvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — nesimbolički TrueType font čiji Encoding rječnik sadrži/Differences)
Version 1.75.0
Dodano (Added)
ValidatePdfAdobio je tri nove vrijednostiTPdfAValidationIssue(dodani redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — numerički token koji premašuje ograničenje 32-bitnog cijelog broja s predznakom 2,147,483,647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — vrijednost/BMizvan standardnog skupa blend-modea ISO 32000-1 §11.3.5; nadopunjuje PDF/A-1pvaiTransparentColorSpacekoji dopušta samo Normal/Compatible) ipvaiHexStringOddDigits(6.1.6 —<...>heksadecimalni niz s neparnim brojem heksadecimalnih znamenki)
Version 1.74.0
Dodano (Added)
ValidatePdfAdobio je tri nove vrijednostiTPdfAValidationIssue(dodani redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiPermissionsViolation(6.1.12 — rječnik/Permskoji nosi/DigestLocation,/DigestMethodili/DigestValueuz/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — tranzicijska akcija Trans, detektirana putem uzorka akcijskog rječnika/S /Transkako bi se izbjeglo lažno podudaranje s/Transparency) ipvaiPdfiumObjectTransparency(PDF/A-1 6.4 — objekt stranice nosi stvarnu transparentnost premaFPDFPageObj_HasTransparency, proširujući sloj modela objekata Pdfium uveden u v1.73.0 za hvatanje efekata blend-modea/soft-maske koje pretraživanje naziva na razini bajtova može propustiti)
Version 1.73.0
Dodano (Added)
TPdf.ValidatePdfAsada slojevito postavlja prolaz modela objekata Pdfium povrh inspektora na razini bajtova: prolazi kroz tekstualne objekte svake stranice putemFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedi prijavljuje neugrađeni renderirani font kaopvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4) te učitava svaku tekstualnu stranicu za skeniranjeFPDFText_HasUnicodeMapErrori prijavljuje prekinuto preslikavanje Unicodea kaopvaiPdfiumUnicodeMapError(6.3.8). Ovo su provjere koje inspektor na razini bajtova ne može izvršiti — on vidi samo tokene naziva, a ne razriješene ručke fonta ili stanje preslikavanja po znaku — te se spajaju u rezultat na razini bajtova. Samostalna funkcijaValidatePdfACompliancena razini bajtova ostaje nepromijenjena
Version 1.72.0
Dodano (Added)
ValidatePdfAdobio je pet novih vrijednostiTPdfAValidationIssue(dodani redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalog ne smije nositi/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — OutputIntent ne smije nositi/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — specifikacija datoteke s/EFmora također nositi/UF),pvaiXmpPacketBytesAttr(6.7.5 — zaglavlje XMP paketa ne smije nositi zastarjeli atributbytes=iliencoding=) ipvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — bit ToggleNoView za bilješku/F, vrijednost 512, je zabranjen)
Version 1.71.0
Promijenjeno (Changed)
ValidatePdfUasada izbacujepvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): prolaznik kroz stablo strukture (structure-tree walker) razrješava atribut rasporedaListNumberingna svakom elementuLputem Pdfium attribute API-ja i označava svaku vrijednost izvan skupa iz tablice 347 u ISO 32000-1 (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Odsutni atribut se ne označava, budući da popis može biti neuređen; ovo zatvara posljednju preostalu prazninu u ISO 14289-1 zabilježenu na kraju 5. kruga
Version 1.70.0
Dodano (Added)
ValidatePdfUaje dobio četiri nove vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — podskup CID-aFontDescriptormora deklarirati/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — ToUnicode CMap ne smije mapirati nijedan kod naU+FEFFiliU+FFFE; nekomprimirani tokovi se skeniraju za izlazne oblike<FEFF>/<FFFE>),pvuaiLangInvalidFormat(7.2 —/Langmora biti valjana RFC 1766 / BCP 47 oznaka; popustljiva gramatika prihvaćaen,en-US,zh-Hans,es-419i označava jasno nesukladne vrijednosti) ipvuaiOrderedListMissingListNumbering(7.6 — zadržano radi potpunosti API-ja; validator ga još ne izbacuje jer za pouzdano razlikovanje uređenih od neuređenih popisa potrebna je vrijednost atributaListNumbering, koju prolaznik kroz stablo strukture ne izlaže)
Version 1.69.0
Dodano (Added)
ValidatePdfUaje dobio dvije nove vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — strukturni element Widget mora biti ugniježđen unutar elementaForm; prolaznik kroz stablo strukture sada provjerava izravni tip roditelja svakog Widgeta) ipvuaiSubsetMissingCharSet(7.21.4.2 — podskup Type 1FontDescriptormora deklarirati/CharSet, identificiran prefiksom imena podskupa od šest slova+na/FontName)
Version 1.68.0
Dodano (Added)
ValidatePdfUaje dobio dvije nove vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — rječnik URI akcija ne smije nositi/IsMaps vrijednošćutrue, jer to onemogućuje pristupačni cilj poveznice) ipvuaiHeadingSequenceViolation(7.4.2 — numerirani naslovi moraju započeti sH1, a padajući niz ne smije preskočiti posrednu razinu, npr.H1→H3predstavlja kršenje pravila). Provjera naslova je prvo pravilo PDF/UA na razini stabla strukture u validatoru:ValidatePdfUaStructureElementssada prolazi kroz tipizirani popis elemenata i provjerava redoslijedH1…H6(iH7+prema 7.4.3) prema poretku u dokumentu
Version 1.67.0
Dodano (Added)
ValidatePdfUaje dobio pet novih vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — bilješka Link mora nositi alternativni opis putem/Contents),pvuaiAnnotationMissingContents(7.18.1 — svaka bilješka koja nije izuzeta bez/Contentsmora imati alternativni opis; Popup i Widget su izuzeti),pvuaiEmbeddedFileMissingName(7.11 — rječnik specifikacije datoteke mora sadržavati/Fi/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — podatkovni rječnik medijskog isječka mora sadržavati/CTi/Alt) ipvuaiCidFontMissingCidToGidMap(7.21.3.2 — ugrađeni Type 2 CIDFont mora sadržavati/CIDToGIDMap)
Version 1.66.0
Dodano (Added)
ValidatePdfUaje dobio pet novih vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiRoleMapMissing(ISO 14289-1 7.1 — označeni dokument s nestandardnim vrstama strukture mora nositi/RoleMap),pvuaiOptionalContentAsKey(7.10 — rječnik konfiguracije izbornog sadržaja ne smije nositi ključ automatskog stanja/AS),pvuaiXfaPresent(7.15 — prisutnost AcroForm/XFAse označava jer je dinamički XFA zabranjen),pvuaiTrapNetAnnotation(7.18.2 — bilješke/TrapNetsu zabranjene) ipvuaiReferenceXObject(7.20 — referentni XObject-i, vezani za oznaku/Ref, su zabranjeni)
Ispravljeno (Fixed)
ValidatePdfUaviše ne prijavljuje lažno pozitivne rezultate zapvuaiEncryptionPresentna svakoj šifriranoj datoteci: PDF/UA dopušta šifriranje sve dok ključ rječnika za šifriranje/Pima postavljenu bit poziciju 10 (vrijednost 1024), što omogućuje pristup pomoćnim tehnologijama (7.16). Precizno kršenje sada se prijavljuje putem novogpvuaiEncryptionPBitMissing;pvuaiEncryptionPresentje zadržan u enum-u radi kompatibilnosti API-ja, ali ga validator na razini bajtova više ne izbacuje
Version 1.65.0
Dodano (Added)
ValidatePdfAje dobio pet novih vrijednostiTPdfAValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — ugrađeni Type 2 CIDFont mora nositi/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — podskup Type 1FontDescriptormora nositi/CharSet),pvaiSubsetMissingCidSet(6.3.5 — podskup CID-aFontDescriptormora nositi/CIDSet),pvaiWidgetActionForbidden(6.6.1 — bilješka Widget ne smije nositi/Aili/AA) ipvaiOptionalContentAsKey(ISO 19005-2 6.9 — rječnik konfiguracije izbornog sadržaja ne smije nositi ključ automatskog stanja/AS, što je novost jer PDF/A-2 dopušta izborni sadržaj)
Version 1.64.0
Dodano (Added)
ValidatePdfAje dobio osam novih vrijednostiTPdfAValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 — nakon zaglavlja%PDF-x.ymora slijediti%komentar s najmanje četiri bajta veća od 127),pvaiExternalStreamRef(6.1.7 — rječnik toka ne smije nositi/F,/FFilterili/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntent/Smora biti/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDatemoraju se pojaviti i kaoxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — Level A zahtijeva/MarkInfos/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — rječnik/APbilješke smije sadržavati samo/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Dodatak E.2 — svaka povezana specifikacija datoteke mora nositi/AFRelationship) ipvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — slika JPEG2000 mora deklarirati 1, 3 ili 4 komponente)
Ispravljeno (Fixed)
ValidatePdfAviše ne prijavljuje lažno pozitivne rezultate zapvaiAnnotationFlagsViolationna dokumentima koji koriste jednoslovno ime resursa fonta kao što je/Font << /F 5 0 R >>; provjera oznake/Fsada je ograničena na kontekst bilješke (/Subtypevrste bilješke), što odgovara dokumentiranom ponašanju (6.5.3)ValidatePdfAsada prijavljuje zahtjev za pridruženom datotekom za PDF/A-3 po datoteci: dokument se označava samo kada ugrađeni/Type /Filespeckoji referencira ugrađeni tok putem/EFnema/AFRelationship, umjesto prijašnje provjere za cijeli dokument (bilo koji ili nijedan) (ISO 19005-3 Dodatak E.2)- Dodana je zastarjela akcija
/SetStateu skup zabranjenih akcija zajedno sa/SetOCGState, tako da se ime akcije PDF reference izravno hvata (6.6.1)
Version 1.63.0
Dodano (Added)
- Dodani su
TPdf.MeasureTextiTPdf.MeasureTextWidth: mjere širinu i visinu renderiranog teksta u zadanom fontu i veličini, bez dodavanja sadržaja na stranicu (u PDF korisničkim jedinicama, 1 jedinica = 1/72 inča), čime se na baziAddText-a omogućavaju izračuni layouta i automatsko prelamanje redaka; dolaze iz samostalnog unitaFPdfMeasurekao class helper
Promijenjeno (Changed)
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFiDemo\Lazarus\MergePDFunaprijeđeni u sva tri IDE-a: dodani su odabir raspona stranica po datoteci, opcionalna izlazna putanja, deduplikacija, dnevnik rada, gumb za otkazivanje i sažetak nakon završenog spajanja, a bookmarkovi i metapodaci pri uvozu prenose se s prvog izvoraCreatePDFdemo primjeri u sva tri IDE-a sada uključuju opciju “European Text” za upisivanje teksta s dijakriticima na češkom, francuskom, njemačkom, španjolskom, portugalskom, poljskom i turskom, radi provjere odabira fonta i rukovanja Unicode-om (raniji primjerEuropeanTextspojen je u njih)- Uklonjeni su primjeri
ExtractTextPagesiEuropeanText: mogućnostExtractTextPages-a za ispis teksta po stranicama sada pokrivaju opcije raspona stranica i razdvajanja stranica uExtractText-u, a višejezično renderiranje teksta izEuropeanText-a spojeno je uCreatePDF
Version 1.62.2
Ispravljeno (Fixed)
- Regenerirana su zaglavlja C++Buildera (
.hpp) za svaku RAD Studio verziju i platformu (Win32/Win64/Win64x); bila su odstupila od Pascal izvora, ostavljajući zastarjele potpise funkcija i nedostajuće jedinice koje su do C++Builder korisnika stizale kroz distribuciju izvornog koda
Version 1.62.1
Ispravljeno (Fixed)
- Vraćeno je prevođenje izvornog koda na RAD Studio 12 Athens i starijim verzijama: dodjela
TArray<Byte>u putanji provjere PDF/UA koristila je implicitnu pretvorbu niza dostupnu samo u Delphi 13, koja se nije mogla prevesti na starijim IDE-ovima
Version 1.62.0
Dodano (Added)
TPdf.RenderPageThumbnailprikazuje bilo koju stranicu po indeksu u bitmapu prilagođenu omjeru bez mijenjanja trenutne stranice dokumenta, učitane stranice ili okidanjaOnPageChange
Ispravljeno (Fixed)
TPdfThumbnailViewviše ne upravljaPageNumbernadređenog dokumenta tijekom crtanja; ranije je svako ponovno crtanje ponovno učitavalo stranice, okidaloOnPageChangei odbacivalo tekstualnu stranicu, što je moglo poremetiti povezaniTPdfViewi pokrenuti petlje ponovnog crtanja. Minijature se sada prikazuju prekoRenderPageThumbnailbez takvih nuspojava- Provjera usklađenosti PDF/X sada ispituje dokumente s cross-reference streamom (PDF 1.6, tipično za PDF/X-4) i objekte pohranjene u komprimiranim object streamovima, umjesto da takve datoteke u cijelosti prijavljuje kao neusklađene; oznaka
GTS_PDFXVersiončita se i iz element-form i iz RDF atributnog oblika XMP - Provjera PDF/R sada prijavljuje
pvriInfoXmpMismatchkada se Info rječnik i XMP ne slažu oko Producer ili Creator; problem je prije bio deklariran, ali nikada nije bio prijavljen - Tajmeri za ispunjavanje obrazaca prate se po zahtjevu, pa dokument koji istodobno pokreće više tajmera (na primjer JavaScript interval uz treptanje kursora polja) zadržava sve umjesto da izgubi sve osim najnovijeg
- Crtanje
TPdfViewi njegove javne metodeRenderPage/RenderTilesada drže zaključavanje za prikaz dokumenta, čime se serijalizira s renderiranjem isteTPdfu radnoj niti (PDFium nije thread-safe) - Tekst bez ASCII znakova zapisan u metapodatke PDF/X, PDF/R i PDF/VT (nazivi uvjeta OutputIntent, Creator, Producer) sada se kodira kao UTF-16BE niz prema ISO 32000-1 §7.9.2.2 umjesto sirovog UTF-8, koji bi usklađeni čitači pogrešno očitali
- Pomoćne funkcije za usklađenost ispravno čitaju ugrađene metadata streamove čiji je
/Lengthneizravna referenca, učitavaju izvorne bajtove uzReadBufferpa kratko čitanje pada čisto i odbacuju negativan pomakstartxrefumjesto da riskiraju čitanje izvan raspona
Version 1.61.0
Promijenjeno (Changed)
- Ispravci deklaracija FFI/ABI mogu zahtijevati ponovno prevođenje koda koji je implementirao pogođene povratne pozive: form-fill povratni poziv
FFI_OpenFilesada nosicdecl(Win32 konvencija stoga), a parametarvalueuFPDFAnnot_SetStringValueiFPDFAttachment_SetStringValuesada jeFPDF_WIDESTRING(UTF-16LE) kako bi odgovarao PDFium zaglavljima - Povratni pozivi progresivnog učitavanja
FX_FILEAVAIL.IsDataAvailiFX_DOWNLOADHINTS.AddSegmentsada uzimaju pomake tipasize_t, asize_tje širine pokazivača na Free Pascal / Lazarus Win64 (prije skraćen na 32 bita), čime se popravljaju pozivi API-ja za dostupnost podataka ioutsize_tna FPC Win64
Ispravljeno (Fixed)
- Sigurnost memorije: use-after-free form-fill tajmera pri uništavanju
TPdfs aktivnim AcroForm treptanjem kursora; dvostrukiFPDF_CloseDocumentna putanji pogreške uImportNPagesToOne; Pascal iznimke koje izlaze iz pozivaFPDF_FILEWRITE/FPDF_FILEACCESSpreko C granice tijekom spremanja i umetanja JPEG-a; i preljev cijelog broja u izvlačenju teksta pri čitanju od početnog indeksa do kraja stranice TPdfFuture<T>sada pouzdano isporučuje svoj povratni poziv rezultata; odgovor je prije gotovo uvijek bio odbačen i mogao je dotaknuti oslobođenu dretvu jer se radna dretva oslobađala prije nego što bi zakazani odgovor stigao- PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT i PDF/UA izlaz sada upisuje cross-reference stavke točno 20 bajtova, kako zahtijeva ISO 32000-1 §7.5.4
- Umetanje standardskih oznaka više ne uništava rječnik kada je uklonjeni ključ (na primjer
/Trapped) bio posljednji unos, što je prije progutalo zatvarajući>>i proizvelo neispravan objekt - Sada se ICC profilni streamovi OutputIntenta oglašavaju s potrebnim brojem komponenti
/Nza PDF/X i PDF/VT (već prisutno za PDF/A); šifrirani izvorni dokumenti dešifriraju se prije umetanja PDF/X, PDF/E, PDF/R, PDF/VT i PDF/UA oznaka, pa je izlaz valjan umjesto tiho oštećen - UTF-8 xpacket BOM u generiranom XMP-u sada se ispisuje kao točni bajtovi, čime se popravlja oštećenje na Delphi instalacijama čija ANSI kodna stranica nije Latin-1; incremental-update traileri sada zadržavaju referencu
/Infodokumenta SaveAss kompresijom više ne skraćuje streamove čiji je/Lengthneizravna referenca, a ponovno izgrađene cross-reference tablice sada koriste stavke od 20 bajtova, stvarne brojeve generacija i odbacuju zastarjeli pokazivač/Prev- Provjera usklađenosti čita marker-e verzije XMP atributnog oblika za PDF/E i PDF/X, pa se PDF/X-4 datoteke serijalizirane atributima prepoznaju, zahtijeva točan identifikator
PDF/E-1, ispravno čita metadata streamove s neizravnim/Lengthi više ne pogrešno podudara ključ/IDili/StructTreeRootstrukturalnog elementa pri provjeri PDF/UA trailera; neispravan pomakstartxrefviše ne izaziva grešku raspona TPdfThumbnailView: posljednja je stranica sada dostupna klizačem, trenutna stranica nadređenog dokumenta vraća se nakon crtanja minijatura, a standardno rukovanje mouse-leave ponovno se šalje- Bitmapi sivih tonova za stranice i slike više se ne crtaju pogrešnom paletom;
TPdfViewviše ne ostaje s visećom referencom kada se njegovTPdfprvo oslobodi - Preflight izvještaji: HTML se sprema kao UTF-8 kako bi odgovarao deklariranom charsetu, a JSON escaping nizova proizvodi ispravne
\usekvence za znakove bez ASCII-a na Free Pascal - Trial buildovi: dijalog podsjetnika na probnu verziju sada se prikazuje umjesto da bude potisnut prije nego što se može pojaviti
TPdfStreamAdaptersada odbacuje streamove veće od 4 GiB uz jasnu pogrešku umjesto da tiho skraćuje duljinu proslijeđenu PDFiumu
Version 1.60.1
Promijenjeno (Changed)
- AccessibilityReader demoi za Delphi, Lazarus i C++Builder sada pokreću čitanje naglas na
TPdfReadingSession: svaka se stranica slaže u jedan govorni blok sBuildSpokenTextFromWords, položaji riječi iz SAPI-ja hraneFeedSpokenPosition, a sesija napreduje kroz stranice i upravlja kursorom riječi u prikazu, zamjenjujući ručno orkestriranje koje je svaki demo ranije nosio - Praćenje karaoka na razini riječi u demoima sada radi i kada je NVDA govorni motor:
EstimatePacingodređuje tempo čitanja prema proteklom vremenu govora, dok je NVDA prije čitao naglas bez ikakvog praćenja riječi - Pauza i nastavak u demoima sada rade i s NVDA-om:
ResumeRestartsChunkponovno izgovara trenutnu stranicu od početka pri nastavku, dok SAPI zadržava svoje izvorno pauziranje i nastavak na istom mjestu
Version 1.60.0
Dodano (Added)
- Živo renderiranje za slabovidne na
TPdfView: nove opcije prikazareInvertireNightDuotonemijenjaju boje svake prikazane pločice stranice (potpuna inverzija boja ili noćna duotone paleta) prije nego što se iscrta pretraga, odabir, čitanje i preklop pokazivača riječi, prenoseći postojeće transformacije boja bitmapa u interaktivni preglednik za jedno-stranični i dvostrani prikaz; prebacivanje opcija odmah ponovno crta prikaz NightDuotoneInkiNightDuotonePaperkonfiguriraju noćnu paletu, zadano s jantarnim tekstom na crnoj stranici;reInvertima prednost kada su obje opcije postavljene
Version 1.59.0
Dodano (Added)
TPdfReadingSession: komponenta za orkestraciju čitanja naglas neovisna o govornom motoru. Zadržava pokazivač bloka, pokazivač riječi i stanje reprodukcije (Play/PlayFrom/Pause/Resume/Stop), napreduje kroz učitaneTPdfSpokenTextblokove dok domaćin putemTickprijavljuje da je motor neaktivan, prevodi pomake govornog teksta natrag u znakove na stranici i automatski upravlja pokazivačem riječi povezanogTPdfView; domaćin povezuje bilo koji govorni motor putemOnSpeaki događaja zahtjeva za odustajanjem / pauzom / nastavkom, tako da knjižnica ne veže nijedan govorni APIFeedSpokenPositiontroši položaje riječi motora (kao SAPIStatus.InputWordPosition);EstimatePacingsEstimatedWordsPerMinuteodređuje tempo za motore bez signala položaja;ResumeRestartsChunkponovno izgovara trenutni blok za motore bez izvornog pauziranjaOnChunkChange,OnWordChangeiOnFinishedokidaju se samo pri stvarnim promjenama, a oslobođeni prikačeni prikaz odvaja se automatski, pa host kod ostaje bez treperenja i siguran od rušenja
Version 1.58.0
Dodano (Added)
EstimateSpokenWordIndexprocjenjuje koju riječ govorni motor izgovara na temelju proteklog vremena i brzine u riječima po minuti, dajući duljim riječima razmjerno više vremena, pa motori koji ne prijavljuju položaj riječi (kao NVDA controller client) i dalje mogu upravljati pokazivačem čitanja na razini riječi; pozivatelj daje proteklo vrijeme, pa rutina ostaje bez sata i pogodna za unit testove
Version 1.57.0
Dodano (Added)
- Sastavljanje govornog teksta s preslikavanjem u dvije domene za praćenje čitanja naglas:
BuildSpokenTextFromWordsiSpokenTextAppendgrade niz koji se predaje tekst-u-govor motoru iz blokova riječi na stranici uz bilježenje tablice raspona, aSpokenToPageCharprevodi položaj govornog teksta prijavljen od motora (kao SAPIStatus.InputWordPosition) natrag u indeks znaka na stranici, tako da praćenje isticanja na razini riječi ostaje točno kada govorni tekst nije puni tekst stranice (preskočeni dijelovi, čitanje po jedinici, zamjene izgovora) TPdfSpokenTextiTPdfSpokenSpantipovi nose govorni niz plus rasponе izvorne stranice iz kojih je sastavljen; pomaci na umetnutim razdjelnicima rješavaju se na sljedeću preslikanu riječ, a pomaci iza preslikanih raspona prijavljuju da nema podudaranja
Version 1.56.9
Dodano (Added)
Demo\Delphi\PreflightReportdodaje pretpregled Action Plan koji sažima standarde koji nisu prošli, prioritete, sljedeće korake, šifre problema i preporuke u kontrolni popis za otklanjanje problemaDemo\Delphi\PreflightReportCliprihvaćaplan/actionplankao izlazni format pri pokretanju nad pojedinačnom datotekom i u grupnom načinu rada, te isti kontrolni popis za otklanjanje problema upisuje u tekstnu datoteku
Promijenjeno (Changed)
- Oba Delphi demo primjera PreflightReport sada uz ukupan broj standarda i problema prikazuju brojače statusa prolaz / akcija / revizija
Version 1.56.8
Promijenjeno (Changed)
ViewerInteractionLabsada uključuje kontrole za skakanje po stranicama, ručne kontrole zumiranja, bilježenje koordinataDeviceToPage/PageToDevicena temelju klika i jasniji zapis interakcije za provjeru odabira, pretrage, rotacije i navigacijeViewerInteractionLabreadme stranice sada dokumentiraju dodani tijek interakcije kroz lokalizirani skup demo readmeja
Version 1.56.7
Dodano (Added)
AccessibilityWorkbenchClimapira svaki pokrenuti nalaz na svoje WCAG 2.1 Success Criteria i ISO 14289-1 (PDF/UA-1) područje klauzule te prikazuje odjeljak o pokrivenosti standardima u izvještajimaAccessibilityWorkbenchCliračuna dokumentirani rezultat pristupačnosti 0-100 uz objavljenu rubriku kazni i raspon izvrstan / dobar / treba rad / slab, prikazan po datoteci i kao prosjek skupaAccessibilityWorkbenchCliprihvaćafailscore=Nda bi neuspješno završio pokretanje (izlazni kod 2) kada bilo koja datoteka ima rezultat ispod NAccessibilityWorkbenchClizapisuje SARIF 2.1.0 log kada naziv sažetka skupa završava s.sarif, s jednim pravilom po vrsti nalaza koje nosi svoje WCAG 2.1 i PDF/UA oznake za CI i code-scanning ingestijuAccessibilityWorkbenchClidodaje naredbuversionkoja ispisuje povezanu verziju PDFium Delphi Component-a
Version 1.56.6
Dodano (Added)
IntakeWorkbenchCliračuna SHA-256 forenzički hash svake ulazne datoteke (smanjujući ga naunavailablena kompajlerima bezSystem.Hash) i prijavljuje ga u svakom formatuIntakeWorkbenchCliprihvaćapasswords=file.txtza pokušajno otključavanje dokumenata zaštićenih lozinkom iz popisa kandidata, bilježeći indeks odgovarajućeg kandidata bez ikad zapisivanja teksta lozinkeIntakeWorkbenchCliprihvaćacopyto=dirza usmjeravanje svake pregledane datoteke u podmapu po razini rizika, pretvarajući auditor u sorter za ulazIntakeWorkbenchClizapisuje SARIF 2.1.0 log kada naziv sažetka skupa završava s.sarif, s jednim pravilom po zastavici rizika i jednim rezultatom po označenoj datoteci za CI i code-scanning ingestijuIntakeWorkbenchClidodaje naredbuversionkoja ispisuje povezanu verziju PDFium Delphi Component-a
Version 1.56.5
Dodano (Added)
IntakeWorkbenchClisada izvodi preporučene radnje nakon ulaza kao što su prihvati, zatraži lozinku, ručni pregled, karantena i deduplikacija te prikazuje broj radnji u sažecima skupaAccessibilityWorkbenchClisada izvodi preporučene radnje sanacije kao što su proslijedi, saniraj oznake, pokreni OCR, saniraj semantiku i ručni pregled, s odgovarajućim brojevima radnji u sažetku
Promijenjeno (Changed)
- Oba CLI demo alata razine alata prikazuju preporučenu radnju u konzolnom, tekstualnom, HTML, JSON i CSV izlazu, tako da operateri skupa mogu usmjeravati datoteke bez naknadne obrade polja rizika ili statusa
Version 1.56.4
Ispravljeno (Fixed)
- Čitanje komentara, oznaka ili link anotacija u petlji više ne curi tekstualne nizove prethodne stavke: rezultatski zapisi
TPdfAnnotation,TBookmarkiTLinkAnnotationsada se čiste inicijalizacijom svjesnom upravljanih tipova umjesto sirovog nultiranja memorije, pa dokumenti s vrlo velikim brojem anotacija koje nose tekst više ne napuhuju memoriju procesa tijekom životnog vijeka aplikacije - Uništavanje
TPdfkoji je registrirao rukovateljOnUnsupportedFeaturesada ga odvaja od procesno-globalnog PDFium callbacka, pa kasnije učitavanje dokumenta iz druge instanceTPdfbez vlastitog rukovatelja više ne može pozvati oslobođenu komponentu (use-after-free)
Version 1.56.3
Ispravljeno (Fixed)
AccessibilityWorkbenchCliviše ne računa prazne stranice kao stranice heurističkog redoslijeda čitanja, pa tagged dokumenti s praznim razdjelnim stranicama zadržavaju ispravan status pristupačnosti; stranice bez čitljivog sadržaja sada se izvještavaju odvojeno- Detekcija zaglavlja tablica u
AccessibilityWorkbenchCliviše ne pripisuje vanjskoj tabliciTHćelije koje pripadaju ugniježđenoj tablici, a nazivi polja obrasca i fontova uspoređuju se osjetljivo na velika i mala slova, tako da se različita polja ne spajaju - Inventari URL hostova u
IntakeWorkbenchClisada uklanjaju dijelove userinfo, upita i fragmenta, pa se pažljivo sastavljena poveznica poputtrusted.example@evil.examplepripisuje stvarnom hostu, amailto:ciljevi doprinose svoju domenu umjesto da ostaju nevidljivi IntakeWorkbenchCliu Markdown izvještajima eskapira backticke u putanjama, hostovima i nazivima priloga koje kontrolira napadač, tako da oblikovanje izvještaja ne može biti narušeno iz samog dokumenta
Promijenjeno (Changed)
AccessibilityWorkbenchCliizvještava o neuspjesima skeniranja fontova i skeniranja polja obrasca kao o odvojenim brojačima, označava neugrađene fontove koji također imaju ugrađene instance i duge popise fontova skraćuje uz eksplicitnu oznaku skraćivanja- Sažeci grupne obrade u
IntakeWorkbenchClidodaju stupac s brojem anotacija priloga, a popis anotacija po stranici ograničen je na 20000 anotacija po stranici, pri čemu se ta granica navodi u svakom formatu
Version 1.56.2
Dodano (Added)
AccessibilityWorkbenchClisada provjerava ugrađivanje fontova, tooltipove form polja, izvor redoslijeda čitanja, outlineove dokumenta, strukturu tablica i lista, sumnjivi alternativni tekst te bogatije detalje pregleda po stranici, tako da skupni accessibility izvještaji prepoznaju više meta za sanacijuIntakeWorkbenchClisada izvještava o ograničenjima skeniranja stranica, launch i remote-go-to akcijama, popisima URI hostova, brojevima anotacija, nepodržanim PDFium značajkama, dupliciranim identifikatorima dokumenta i proširenim oznakama rizika za automatizirani intake pregled
Promijenjeno (Changed)
IntakeWorkbenchCliprihvaćamaxpages=Nu single-file i batch načinu rada, kako bi ograničio skeniranje stranica po dokumentu, a da i dalje dovrši izvještavanje o metapodacima, prilozima, skriptama, XFA, potpisima i rizicima
Version 1.56.1
Ispravljeno (Fixed)
- Učitavanje starijeg
PDFium.dllkojem nedostaje noviji export sada uredno ne uspijeva: putanja neuspjeha resetira svaku vezanu API ulaznu točku, pa provjereAssigned()(na primjer naFPDF_GetLastErroriliFPDF_GetSecurityHandlerRevision) prijavljuju knjižnicu kao neučitanu umjesto da pozivaju već otpušteni modul i ruše se s access violation UnloadLibrarysada čisti sve PDFium API veze umjesto samo opcionalnih V8 pomagača, pa nijedan zastarjeli pokazivač funkcije ne preživi nakon otpuštanja DLL-a
Version 1.56.0
Dodano (Added)
- Pokazivač čitanja na razini riječi za karaoke na
TPdfView:TrackReadingWordAtpreslikava trenutno-riječni pomak znaka govornog motora (kao SAPIStatus.InputWordPosition) na blokove riječi stranice, ističe riječ koja ga sadrži kao zaseban preklop iznad bloka čitanja, pomiče je u vidokrug i vraća indeks riječi, tako da izgovorena riječ svijetli dok glas napreduje SetReadingWordiClearReadingWordizravno postavljaju ili brišu istaknutu riječ izTPdfWordBox; ponovno postavljanje iste riječi je no-op, pa praćenje po riječima nikad ne treperi prikazomReadingWordColoriReadingWordFollowupravljaju bojom pokazivača riječi i time pomiče li prikaz automatski izgovorenu riječ u vidokrug
Version 1.55.2
Ispravljeno (Fixed)
- ViewerInteractionLab sada daje alatnoj traci više vertikalnog prostora, pa se Open PDF, Create Sample, navigacija, pretraga i kontrole odabira više ne preklapaju pri skaliranim fontovima
Version 1.55.1
Ispravljeno (Fixed)
- ViewerInteractionLab sada postavlja Prev, Next i Rotate na drugi red alatne trake, izbjegavajući preklapanje pri pokretanju s Open PDF i Create Sample
Version 1.55.0
Dodano (Added)
- Most teksta prema odabiru za čitanje i odabir:
TPdfView.SelectWordBoxiSelectWordSpanodabiru jedan okvir riječi ili raspon okvira riječi na istoj stranici (izPageWordBoxes) prema njihovim rasponima znakova, tako da se riječ ili redak koji se upravo čita može i odabrati i kopirati WordBoxIndexAtCharIndexmapira indeks znaka natrag na okvir riječi koji ga sadrži, upravljajući isticanjem riječ po riječ kako TTS čitački pokazivač napreduje
Version 1.54.0
Dodano (Added)
- Glasovni pristupnici za ispunjavanje obrazaca koji čitaju fokusirano polje izravno iz logičkog pokazivača:
FocusedFormFieldValue,FocusedFormFieldNameiFocusedFormFieldDetailsnaTPdfiTPdfViewprijavljuju trenutnu vrijednost polja, čovjeku čitljiv naziv (/TUtooltip, s rezervom na/T) i puniTPdfFormFieldInfo(tip, zastavice, opcije) - sve što glasovno sučelje treba najaviti dok prolazi kroz obrazac
Ispravljeno (Fixed)
FocusedFormFieldValuečita polje putemFocusedFormFieldIndexumjesto PDFium interaktivnog fokusa, pa glasovno vođen ispunjivač obrasca dobiva pravu vrijednost čak i bez zaslonskog kursora (postojećiFocusedFormFieldTexti dalje odražava PDFium fokus i nepromijenjen je)
Version 1.53.0
Dodano (Added)
- Podrška za isticanje riječi na razini riječi:
TPdf.PageWordBoxesiTPdfView.PageWordBoxesdijele stranicu na zapiseTPdfWordBox, od kojih svaki nosi tekst riječi, njezin raspon znakova i pravokutnik u prostoru stranice, pa čitač pristupačnosti može istaknuti svaku izgovorenu riječ redom ("karaoke" čitanje) prosljeđujući pravokutnik uSetReadingHighlight BuildWordBoxesizlaže tokenizer korak zasebno, pretvarajući tekst stranice u word boxe s rasponima znakova
Version 1.52.0
Dodano (Added)
- Pomoćne funkcije za renderiranje za slabovidne
InvertPdfBitmap,GrayscalePdfBitmapiDuotonePdfBitmapprimjenjuju in-place transformacije boja na renderiranu 32-bitnu bitmapu, pa čitač pristupačnosti može prikazivati stranice invertirane / dark-mode, u sivim tonovima ili u prilagođenoj dvo-bojnoj shemi (na primjer tamna pozadina sa svijetlim tekstom) za slabovidne korisnike - Transformacije rade po pikselu i ponašaju se jednako na VCL i Lazarus/LCL, ostavljajući dimenzije bitmapa nepromijenjene
Version 1.51.0
Dodano (Added)
- Jedinični čitajući blokovi za asistivno slušno čitanje:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsiTPdfView.ReadingUnitslineariziraju čitljivi tok sadržaja u uređeneTPdfReadingUnitzapise veličine rečenice - svaki nosi tekst za izgovor uz svoj semantički tip, stranicu, pravokutnike isticanja i jezičnu oznaku, pa aplikacija za čitač zaslona može prolaziti kroz stranicu ili cijeli dokument po jedan izgovoreni blok - Semantička navigacija s
NextReadingUnitOfKind, koja glasovnom sučelju omogućuje skok na sljedeći ili prethodni naslov, sliku, stavku popisa ili ćeliju tablice bez ručnog skeniranja toka BuildReadingUnitsizravno pretvara bilo kojiTPdfContentFragmentsu čitajuće blokove: naslovi i opisi slike/alt ostaju cijeli dok se odlomci lome na granice rečenica, decimalne točke se čuvaju, a pokazivač čitanja je običan indeks u vlasništvu pozivatelja
Version 1.50.0
Dodano (Added)
ValidatePdfAsada može pregledavati PDF 1.5+ dokumente koji pohranjuju katalog, OutputIntent ili druge rječnike unutar komprimiranih object streamova (/Type /ObjStm). Object streamovi se raspakiravaju i objekti koje nose se razrješavaju, pa se takvi dokumenti provjeravaju prema vlastitim zaslugama umjesto da budu prijavljeni kao da im nedostaju PDF/A oznake
Version 1.49.5
Ispravljeno (Fixed)
ValidatePdfAviše ne prijavljuje nedostajući opispdfaExtension:schemaskao problem. PDF/A identifikacijska shema (pdfaid) je dobro poznata, pa ni veraPDF ni PDF/A-2/-3 ne zahtijevaju opis proširene sheme za nju, a označavanje njezina izostanka pogrešno je prijavljivalo svaku usklađenu PDF/A treće strane. Dokumenti koje sama knjižnica proizvodi i dalje uključuju opis
Version 1.49.4
Ispravljeno (Fixed)
ValidatePdfAsada otkriva razinu usklađenosti kada je PDF/A identifikator zapisan kao XML atribut (pdfaid:part="2") umjesto kao podređeni element, pa dokumenti u atributnom obliku više nisu prijavljeni s nepoznatom razinom. Time se također ispravlja niz u kojem neotkrivena razina navodi provjere specifične za dio da se vrate na stroga PDF/A-1 pravila i pogrešno označe ugrađene datoteke i transparentnost koju PDF/A-2 i PDF/A-3 dopuštaju
Version 1.49.3
Ispravljeno (Fixed)
ValidatePdfAsada ispituje PDF 1.5+ dokumente čiji su cross-reference podaci cross-reference stream (datoteke koje nemaju ključnu riječtrailer). Razina usklađenosti, trailer/IDi drugi markeri čitaju se iz rječnika cross-reference streama, pa se takvi dokumenti provjeravaju prema vlastitim svojstvima umjesto da budu prijavljeni kao potpuno neusklađeni
Version 1.49.2
Ispravljeno (Fixed)
ValidatePdfAviše ne prijavljuje lažan problem neugrađenih fontova na dokumentima koji ugrađuju sve svoje fontove. Prethodna heuristika uspoređivala je broj oznaka/FontDescriptors ugrađenim programima fontova, ali svaki ugrađeni font pridonosi s dvije oznake/FontDescriptor(referenca na rječnik fonta i objekt deskriptora), pa je svaka datoteka s ugrađenim fontom bila pogrešno označena. Provjera sada prijavljuje samo dokument koji navodi fontove, ali ne ugrađuje nijedan programski font, što odgovara ispravkuValidatePdfUaiz 1.44.3
Version 1.49.1
Ispravljeno (Fixed)
- PDF/A izlaz sada se provjerava kao usklađen PDF/A-1b i PDF/A-1a s veraPDF-om: ugrađeni sRGB OutputIntent ICC profilni stream (na koji pokazuje
/DestOutputProfile) sada navodi potreban broj komponenti/N(3 za ugrađeni RGB profil), kako nalaže ISO 19005-1 6.2.3.2. Dokumenti kojeSaveAsPdfAstvara prije nisu prolazili strogu PDF/A-1 provjeru jer odredišni profilni stream nije sadržavao/N; vrijednost se izvodi iz zaglavlja ICC profila, pa će i profil CMYK ili Gray koji zada korisnik dobiti ispravan broj
Version 1.49.0
Ispravljeno (Fixed)
ValidatePdfUaviše ne prijavljuje lažnu prijavu nedostajućeg XMP identifikatora na usklađenim označenim PDF-ovima - PDF/UA identifikator (pdfuaid:part),dc:title, XMP datumi i trailer/IDsada se čitaju iz izvornog dokumenta umjesto iz ponovno spremljene kopije, koja izostavlja XMP stream/Metadatai, za datoteke s cross-reference streamom, trailer/IDValidatePdfUaprovjera ugrađivanja fontova ispravljena je tako da dokument koji ugrađuje sve svoje fontove više nije prijavljen kao da ima neugrađene fontove; sada označava samo dokument koji navodi fontove, ali ne ugrađuje nijedan programski fontValidatePdfUasada prihvaća strukturalni elementFormulačiji je alternativni tekst zadan krozActualTextumjesto unosaAlt(ISO 14289-1 §7.7), u skladu s postojećim pravilom zaFigure
Version 1.48.0
Dodano (Added)
- Programatski odabir teksta na
TPdfView:SelectTextRange(po stranici i rasponu znakova) iSetSelection(po izričitim rasponima po stranicama) odabiru tekst iz koda - primjerice za čitanje i isticanje odlomka; oba ponovno crtaju prikaz i okidajuOnSelectionChangekada se odabir promijeni.SelectionRangesčita trenutačni odabir kao raspone znakova po stranicama, aSelectionRectanglesvraća njegove pravokutnike u koordinatama stranice za prilagođeno isticanje ili pomicanje na mjesto
Version 1.47.0
Dodano (Added)
- Navigacija po poljima obrasca za glasom vođeno popunjavanje, i na
TPdfi naTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusiFocusedFormFieldText. Oni pomiču logički kursor polja preko widget-polja stranice u tab orderu (na krajevima se omotava), tako da čitač zaslona može proći kroz obrazac, najaviti svako polje putemFormFieldInfo[Index].AlternateName(/TU tooltip) i popuniti ga putemFormField[Index] - Događaj
TPdfView.OnFormFieldFocusChange, okida se kada se kursor polja pomakne (nosi indeks novog polja, odnosno -1 kada je fokus očišćen)
Version 1.46.0
Dodano (Added)
- Tok čitljivog sadržaja za asistivno slušno čitanje:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentiTPdfView.ReadableContentvraćaju uređeni popis semantičkih stavkiTPdfContentFragment, od kojih svaka nosi izgovoreni tekst (stvarni glifovi iliActualText/Alt za slike), vrstu fragmenta (naslov s razinom, odlomak, slika, stavka popisa, ćelija tablice, poveznica, obični), jezik, stranicu s brojem od 1 te pravokutnike isticanja po bloku i po retku. Označeni PDF-ovi lineariziraju se u logičkom redoslijedu čitanja iz stabla strukture; neoznačene stranice vraćaju se na redoslijed prikaza, tako da se svaki dokument može čitati naglas - Sinkronizirano isticanje čitanja na
TPdfView:SetReadingHighlight,ClearReadingHighlighti objavljeniReadingHighlightColorističu blok koji se trenutačno čita, iznad preklopa pretrage i odabira - Novi javni tipovi
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindiTPdfReadingOrderSource, te novi pomoćnikClassifyStructType
Version 1.45.0
Dodano (Added)
ValidatePdfUasada također prolazi kroz živo stablo tagirane strukture i prijavljuje tri povrede sadržaja koje se s visokom pouzdanosću mogu potvrditi, a koje skeniranje na razini bajtova ne može otkriti: elementFigurekoji nema ni Alt unos ni ActualText (ISO 14289-1, 7.3), elementFormulabez Alt atributa (7.7) te elementNotekojem nedostaje jedinstveni ID (7.9). Te slučajeve izlažu tri nove vrijednostiTPdfUaValidationIssue-a:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltipvuaiNoteMissingId. Prolazak kroz stablo preskače se kod netagiranih dokumenata- Novi javni helper
ValidatePdfUaStructureElementsprimjenjuje ta pravila stabla strukture na ravnu listu elemenata (kakvu vraćaTPdf.StructureElements), tako da se provjere mogu pokrenuti ili unit-testirati bez učitavanja cijelog dokumenta
Version 1.44.5
Ispravljeno (Fixed)
- Provjera ugrađivanja fontova u
ValidatePdfA(pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) sada također otkriva neuugrađene jednostavne fontove koji nemaju/FontDescriptor, ponajprije 14 standardnih Type 1 fontova (Helvetica, Times, Courier i tako dalje) koje PDF/A zahtijeva ugrađene bez iznimke. Prije je takav font prolazio neprimijećen; provjera sada također broji rječnike jednostavnih fontova (/Type1,/TrueType,/MMType1) prema ugrađenim programima fontova, po uzoru na ispravak za PDF/UA u 1.44.3
Version 1.44.4
Ispravljeno (Fixed)
ValidatePdfVTsada odbacuje neispravna ISO 16612-2 §6.5 DPart stabla u kojima je/DPartsravni referentni niz umjesto traženog niza nizova ili u kojima list DPart ponavlja svoju stranicu/Startkao/Endiako raspon sadrži samo jednu stranicuValidatePdfVTsada provjerava nazive/NodeNameListkao vrijednosti XML NMTOKEN nakon proširenja PDF name#xxescapea, pa se neispravni nazivi razina hijerarhije prijavljuju krozpvviMissingDPartRootumjesto da se prihvate kao ispravna DPart struktura
Version 1.44.3
Ispravljeno (Fixed)
- Provjera ugrađivanja fontova u
ValidatePdfUa(pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) sada također otkriva neuugrađene jednostavne fontove koji nemaju/FontDescriptor, ponajprije 14 standardnih Type 1 fontova (Helvetica, Times, Courier i tako dalje) za koje PDF/UA ne daje iznimku za ugrađivanje. Prije je takav font prolazio neprimijećen i dokument koji ga je koristio mogao je biti prijavljen kao usklađen; provjera sada također broji rječnike jednostavnih fontova (/Type1,/TrueType,/MMType1) prema ugrađenim programima fontova
Version 1.44.2
Ispravljeno (Fixed)
ValidatePdfVTsada ostavlja prisutan, ali neprepoznatpdfvtid:GTS_PDFVTVersionmarker kaopvcUnknownumjesto da ga spušta napvcNone. Time se neispravni stringovi na razini datoteke poputPDF/VT-2szadržavaju razlikovnima od dokumenata koji nemaju nijedan PDF/VT marker; PDF/VT-2s se identificira MIME stream zaglavljem u ISO 16612-2 Dodatku A, a ne XMP markerom PDF datoteke- Provjera
/DPartRootsada strože provjerava semantiku ISO 16612-2 §6.5 stabla:/DPartRootNodei/NodeNameListmoraju opisivati stvarnu dubinu DPart-a, roditeljske veze DPart-a moraju tvoriti stablo,/Starti/DPartsmeđusobno se isključuju, a svaki stranicni/DPartmora pokazivati na pokriveni list DPart u istom redoslijedu dubinskog obilaska kao i stablo stranica
Version 1.44.1
Ispravljeno (Fixed)
SaveAsPdfVTsada zapisuje minimalnu hijerarhiju dijelova dokumenta ISO 16612-2 §6.5 kada izvorni PDF nema upotrebljiv/DPartRoot. Generirano stablo povezuje svaku stranicu preko/DPart, čuva postojeću valjanu hijerarhiju i ostavlja bogatije metapodatke o primatelju i DPM-u pozivnom tijeku radaValidatePdfVTsada provjerava upotrebljivu DPart strukturu, čita PDF/VT XMP vrijednosti i iz RDF atributa i iz teksta elemenata te provodi točno PDF/VT-to-PDF/X osnovno uparivanje: PDF/VT-1 zahtijeva PDF/X-4, dok PDF/VT-2 zahtijeva PDF/X-4p, PDF/X-5g ili PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2više ne zapisuje neispravne oznake PDF/VT-2 za jednu datoteku. Pisac za jednu datoteku normalizira izlaz na PDF/VT-1 jer PDF/VT-2 zahtijeva semantiku skupa datoteka
Version 1.44.0
Dodano (Added)
ValidatePdfUasada također prijavljuje sadržajne PDF/UA povrede koje se mogu provjeriti na razini bajtova, uz oznake razine datoteke: programski font koji nije ugrađen (ISO 14289-1, 7.21.4), font kojem nedostaje/ToUnicodeCMap kada nema izuzetka za jednostavno font kodiranje (7.21.7) i dokument koji sadrži anotacije, ali za stranice ne deklarira/Tabs /Sredoslijed kartica (7.18.3)- Tri nove
TPdfUaValidationIssuevrijednosti -pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeipvuaiMissingTabsOrder- izlažeValidatePdfUai preflight izvještaj. To su grube heuristike namijenjene kao smjernice za predprovjeru, a ne kao potpuna provjera ISO 14289-1
Version 1.43.1
Ispravljeno (Fixed)
SaveAsPdfUasada nameće obavezne unose kataloga ISO 14289-1, 7.1:/ViewerPreferences/DisplayDocTitle truei/MarkInfo/Marked true/Suspects falsečak i kada izvorni dokument već sadrži te rječnike s nedostajućim ili proturječnim vrijednostima. Prije su se markeri umetali samo kada su rječnici potpuno nedostajali, pa je izvor s, primjerice,/ViewerPreferencesbezDisplayDocTitleili/MarkInfos/Marked falsezavršavao kao neusklađena datoteka- Postojeći ključevi u već postojećem rječniku
/ViewerPreferencesili/MarkInfozadržavaju se, a rječnik zadan kao neizravna referenca razrješava se prije primjene obaveznih ključeva
Version 1.43.0
Dodano (Added)
ValidatePdfAsada primjenjuje pravila PDF/A-2 / PDF/A-3 za ugrađene i pridružene datoteke te za tekst razine U. Ugrađene datoteke i dalje se odbacuju za PDF/A-1; za PDF/A-3 ugrađena datoteka kojoj nedostaje obavezan ključ/AFRelationship(ISO 19005-3 Dodatak E) dobiva zastavicu, dok su PDF/A-2 privitci dopušteni (njihova se vlastita usklađenost ne provjerava rekurzivno). Nova vrijednostpvaiUnicodeMappingMissingprijavljuje PDF/A-2u ili PDF/A-3u dokument čiji fontovi nemaju/ToUnicodepreslikavanje (ISO 19005-2 6.2.11.7). Transparentnost i opcijski sadržaj i dalje se prijavljuju samo za PDF/A-1
Version 1.42.0
Dodano (Added)
- PDF/A-2 (ISO 19005-2) i PDF/A-3 (ISO 19005-3) sada su podržani na svim trima razinama usklađenosti - a, b i u - kroz
SaveAsPdfA,ValidatePdfAi svojstvoPdfAConformance. EnumeracijaTPdfAConformancedobivapac2a,pac2u,pac3aipac3u(PDF/A-1 nema razinu u). Spremanje zapisuje odgovarajućipdfaid:part(2 ili 3) ipdfaid:conformance(A, B ili U), zadržavajući podvrstuGTS_PDFA1OutputIntenta koju ISO 19005-2 čuva radi kompatibilnosti. Zahtjev za razinu A i dalje se spušta na odgovarajuću razinu B (za bilo koji dio) kada dokument nema označenu strukturu koju ta razina zahtijeva
Version 1.41.0
Dodano (Added)
ValidatePdfAsada otkriva povrede PDF/A-a na razini sadržaja koje injektiranje markera ne može popraviti, uz strukturne markere koje je već prijavljivao: JavaScript i ostale zabranjene akcije, dodatne akcije (additional actions,/AA), ugrađene datoteke,LZWDecode, transparentnost (soft maske i transparency grupe), opcionalni sadržaj (/OCProperties), zabranjene podtipove anotacija (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances truei/XFA, fontove čijim deskriptorima nedostaje ugrađeni font program, te Level A deklaraciju bez tagirane strukture koju zahtijeva ISO 19005-1 6.8. Provjere transparentnosti, opcionalnog sadržaja i ugrađenih datoteka odnose se samo na PDF/A-1 (te su značajke dopuštene u PDF/A-2 i PDF/A-3). Nove vrijednostiTPdfAValidationIssue-a pokrivaju svaki od tih slučajeva; postojeće vrijednosti ostaju nepromijenjene
Version 1.40.3
Ispravljeno (Fixed)
SaveAsPdfAsada uklanja svako izvorno šifriranje dokumenta prije nego što proizvede PDF/A izlaz. ISO 19005-1 6.1.3 zabranjuje ključ/Encryptu traileru, ali putanja spremanja prije je zadržavala sigurnosni rukovatelj izvora, pa je spremanje šifriranog dokumenta kao PDF/A proizvodilo šifriranu, neusklađenu datoteku. Spremanje u PDF/A sada prvo dešifrira dokument. Nešifrirani dokumenti nisu pogođeni
Version 1.40.2
Ispravljeno (Fixed)
SaveAsPdfAviše ne emitira lažnu tvrdnju usklađenosti za PDF/A razinu A. Kada se zatraži razina A (pac1a), ali izvorni dokument nema markere označene strukture koje zahtijeva ISO 19005-1 6.8 -/StructTreeRootu katalogu i rječnik/MarkInfos/Marked true- spremljena se datoteka sada identificira kao odgovarajuća razina B (pdfaid:conformance=B) umjesto da tvrdi razinu A. Čisto vizualni PDF/A-1b izlaz nije pogođen
Version 1.40.1
Ispravljeno (Fixed)
- Pooštrena je provjera usklađenosti PDF verzije tako da se radnja
SetOCGState(set-optional-content-group-state) prepoznaje kao značajka PDF 1.5. Spremanje u cilj PDF 1.2, 1.3 ili 1.4 koji sadrži radnjuSetOCGStatesada se odbacuje kako bi odgovaralo ISO 32000-1 (Table 198); prije je takva radnja mogla proći u izlaz niže verzije. I dalje se prihvaća zasebna, zastarjela radnjaSetStateiz PDF 1.2 i novijeg
Version 1.40.0
Dodano (Added)
- Povezan je upstream
FPDFPageObj_AddExistingMark()API, koji postojeću content mark oznaku pridružuje objektu stranice. Kada uzastopni objekti stranice dijele istu oznaku, spremljeni PDF ih spaja u jednu oznaku koja obuhvaća sve; neuzastopni objekti dobivaju zasebne kopije - Povezan je upstream
FPDFTextObj_SetFontSize()API za mijenjanje veličine točke postojećeg tekstualnog objekta, kao dopuna postojećem povezivanjuFPDFTextObj_GetFontSize()
Promijenjeno (Changed)
- Obnovljeni su isporučeni PDFium runtime DLL-ovi (Win32 i Win64, standardna i V8 izdanja) na upstream snimku od 2026-06-02
Version 1.39.53
Promijenjeno (Changed)
- Delphi demo programi
PDFViewer,SplitViewiMultiPageViewersada otvaraju dokumente u načinuZoom to Pageprema zadanim postavkama - Početno renderiranje sada uklapa cijelu stranicu u površinu preglednika prije nego što korisnik odabere ručnu razinu zumiranja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.53
Version 1.39.52
Promijenjeno (Changed)
Demo\Lazarus\CreatePDFje poboljšan tako da uvodni primjer sada stvara PDF od dvije stranice s vektorskim putanjama, tabličnim sadržajem, ugrađenom slikom, tekstualnom anotacijom, rotiranim tekstom i jasnijim prikazom koraka izrade dokumenta- Dodane su dotjerane
README.htmlstranice za svaku Delphi, C++Builder i Lazarus demo mapu, čime su preostali tekstualni demo README zamijenjeni vodičem koji se može pregledavati u pregledniku - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.52
Version 1.39.51
- Poboljšani su skupni sažeci
Demo\Delphi\PreflightReportClis ukupnim statusima standarda za rezultate Prolaz, Potrebna radnja i Pregled kroz odabrane standarde - Redci po datoteci sada u TXT / HTML / JSON / CSV sažecima uključuju brojke Potrebna radnja i Pregled, što CI artefakte čini lakšima za pregled bez otvaranja svakog generiranog izvještaja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.51
Version 1.39.50
- Poboljšan je
Demo\Delphi\PreflightReportClinačin rada sa skeniranjem direktorija tako dabatchdir=folderprikuplja pronađene PDF putanje, sortira ih i zatim generira izvještaje u stabilnom redoslijedu - Rekurzivno skeniranje direktorija sada proizvodi reproducibilan redoslijed izvještaja i redaka sažetka, dok izričito
batch=list.txtprocesiranje i dalje zadržava redoslijed liste - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.50
Version 1.39.49
- Poboljšani su skupni sažeci
Demo\Delphi\PreflightReportClitako da bilježe postavke pokretanja: vrstu izvora, putanju izvora, rekurzivno stanje, izlazni direktorij, format izvještaja, odabrane standarde i načinfailon= - JSON sažeci sada uključuju objekt
run, TXT i HTML sažeci prikazuju odjeljak s postavkama pokretanja, a CSV retci ponavljaju iste revizijske stupce za proračunske tablice i CI cjevovode - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.49
Version 1.39.48
- Poboljšano je imenovanje skupnih izlaza za
Demo\Delphi\PreflightReportClitako da duplicirani nazivi ulaznih datoteka koje dijele jedanoutdir=više ne prepisuju međusobne generirane izvještaje - Skupna pokretanja sada dodaju sufikse
-2,-3i kasnije kada je putanja generiranog izvještaja već dodijeljena u istom pokretanju, a sažeci bilježe konačnu putanju izvještaja otpornu na sudare - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.48
Version 1.39.47
- Poboljšani su skupni sažeci
Demo\Delphi\PreflightReportClitako da TXT i JSON izlazi sada uključuju ukupne zbrojeve za ukupno datoteka, obrađenih datoteka, neuspjelih datoteka, problema i podudaranjafailon= - CSV sažeci ostaju čista tablica redaka za postojeće potrošače, dok HTML sažeci i dalje prikazuju iste agregirane metrike u zaglavlju nadzorne ploče
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.47
Version 1.39.46
- Poboljšan je
Demo\Delphi\PreflightReportClissummary=batch.html/.htmtako da skupna pokretanja mogu emitirati preglednicu čitljivu u pregledniku uz TXT / CSV / JSON manifeste - HTML sažeci prikazuju ukupne, obrađene, neuspjele i problematične metrike te podudaranja
failon=, a zatim navode svaki ulaz s poveznicama na izvještaje, statusom, brojkama i tekstom pogreške - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.46
Version 1.39.45
- Poboljšan je
Demo\Delphi\PreflightReportClisbatchdir=folderirecursivetako da skripte mogu izravno skenirati mape PDF-ova bez prethodnog pisanja popisa datoteka - Način rada s direktorijem ponovno koristi ponašanje
outdir=,summary=,standards=ifailon=iz načina rada s listom, dok nerekurzivno skeniranje obuhvaća samo odabranu mapu, arecursiveuključuje podmape - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.45
Version 1.39.44
- Poboljšan je
Demo\Delphi\PreflightReportClissummary=batch.csv|json|txttako da skupna pokretanja mogu emitirati strojno čitljiv manifest uz pojedinačne izvještaje po datoteci - Skupni sažeci uključuju svaku ulaznu putanju, putanju izvještaja, status, broj standarda, broj prođenih, broj problema, stanje podudaranja
failon=i tekst pogreške za CI poslove i vanjske skripte - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.44
Version 1.39.43
- Poboljšan je
Demo\Delphi\PreflightReportClisbatch=list.txtioutdir=reportstako da skripte mogu generirati preflight izvještaje za popis PDF datoteka u jednom pokretanju - Način rada s listom preskače prazne retke i retke komentara
#, izvodi naziv svakog izvještaja.preflight.<ext>iz ulaznog PDF-a, nastavlja nakon pogrešaka po datoteci i sažima obrađene i neuspjele datoteke prije povratka - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.43
Version 1.39.42
- Poboljšan je
Demo\Delphi\PreflightReportClisfailon=none|issues|action|reviewtako da CI poslovi mogu pretvoriti generirane preflight rezultate u determinističke izlazne kodove - CLI sada vraća izlazni kod 2 kada odabrano pravilo
failon=odgovara nakon što su datoteka izvještaja i opcionalni priloženi PDF izvještaj generirani, dok runtime pogreške i dalje vraćaju izlazni kod 1 - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.42
Version 1.39.41
- Poboljšan je
Demo\Delphi\PreflightReportClisattach=output.pdftako da se generirani preflight izvještaj može ugraditi kao prilog na razini dokumenta u novu PDF kopiju - CLI zadržava generiranu TXT / HTML / Markdown / JSON / CSV izvještajnu datoteku na disku i odbija je priložiti natrag u izvornu ulaznu PDF putanju, čime se smanjuje rizik od slučajnog prepisivanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.41
Version 1.39.40
- Dodan je
Demo\Delphi\PreflightReportCli, Delphi konzolni pratilac za skriptabilno generiranjeFPdfPreflightReportbez otvaranja preglednika - CLI podržava stvaranje uzorka bez argumenata i argumente za ulaz / izlaz, opcionalnu lozinku, izlazne formate
text/html/md/json/csvte filtriranjestandards=za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.40
Version 1.39.39
- Poboljšan je
FPdfPreflightReportsTPdfPreflightReport.ToMarkdowniSaveMarkdownToFiletako da se preflight izvještaji mogu izvesti kao Markdown prikladan za sustave za praćenje zadataka - Ažurirani su Delphi, C++Builder i Lazarus uzorci
PreflightReports prebacivanjem pregleda Markdowna i radnjama Save MD uz postojeći TXT / HTML / JSON / CSV tijek rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.39
Version 1.39.38
- Poboljšani su Delphi, C++Builder i Lazarus uzorci
SecurityAudits izvozom JSON izvještaja o reviziji uz postojeći TXT tijek rada spremanja / kopiranja - JSON izvještaj sadrži polja
format,generatedAt,summary,findingCounti strukturirane retkefindingss poljima severity, area i detail - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.38
Version 1.39.37
- Poboljšan je
FPdfPreflightReportsTPdfPreflightReport.ToCsviSaveCsvToFiletako da se preflight izvještaji mogu izvesti kao CSV pogodan za proračunske tablice - Ažurirani su Delphi, C++Builder i Lazarus uzorci
PreflightReports prebacivanjem pregleda CSV-a i radnjama Save CSV uz postojeći TXT / HTML / JSON tijek rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.37
Version 1.39.36
- Poboljšan je
FPdfPreflightReportsTPdfPreflightReport.IssueCategoryCountste ponovno upotrebljivim tipovimaTPdfPreflightIssueCategoryCountiTPdfPreflightIssueCategoryCountsza agregiranje problema na razini markera po kategoriji - Ažurirani su
TPdfPreflightReport.ToText,ToHtmliToJsontako da generirani PreflightReport izlaz uključuje sažetke broja problema po kategoriji uz retke po standardu i detaljne preporuke za probleme - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.36
Version 1.39.35
- Proširen je uzorak
PrintDialogpreimenovan uPrintPreferenceskroz Delphi, C++Builder i Lazarus tako da naziv demo programa sada odgovara toku rada preferencija ispisa autora PDF-a, N-up ispisa, filtriranja neparnih / parnih stranica, sivih tonova, obrisa ćelija i mapiranja obostrano - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.35
Version 1.39.34
- Poboljšan je
Demo\Delphi\PrintPDFs učitavanjem PDF-a povlačenjem i ispuštanjem te je dokumentiran postojeći tijek radaDemo\CBuilder\PrintPDFuz Delphi i Lazarus PrintPDF uzorke - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.34
Version 1.39.33
- Dodan je
Demo\CBuilder\SplitView, čime je matrica uzorka SplitView dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.33
Version 1.39.32
- Dodan je
Demo\Lazarus\SplitView, čime side-by-side PDF usporedba stiže u Lazarus s rasporedima od dvije ili tri plohe, navigacijom aktivnog prikaza, sinkroniziranim naredbama, presetima zumiranja i rotacijom - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.32
Version 1.39.31
- Dodan je
Demo\Lazarus\PrintPDF, čime standardni tijek ispisa PDF-a stiže u Lazarus s navigacijom pregleda, rasponima stranica, kopijama, načinom collation, napretkom i otkazivanjem - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.31
Version 1.39.30
- Dodan je
Demo\Lazarus\FontProperties, čime je matrica uzorka FontProperties dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.30
Version 1.39.29
- Dodan je
Demo\CBuilder\FontProperties, čime inspekcija indeksiranih znakova i metapodataka fonta stiže u C++Builder uz Delphi uzorak - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.29
Version 1.39.28
- Dodan je
Demo\Delphi\ExtractTextPages, čime je matrica uzorka izdvajanja teksta po stranici dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.28
Version 1.39.27
- Dodan je
Demo\Lazarus\PrintDialog, čime je matrica uzorka PrintDialog dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.27
Version 1.39.26
- Dodan je
Demo\CBuilder\PrintDialog, čime radni tok N-up ispisa i preferencija ispisa PDF autora stiže u C++Builder uz Delphi uzorak - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.26
Version 1.39.25
- Dodan je
Demo\CBuilder\ViewerInteractionLab, čime je matrica uzorka ViewerInteractionLab dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su radni tok izgradnje knjižnice i izlazi Win64 C++Builder paketa tako da se metode interakcije pregleda
TPdfViewispravno povezuju u Win64 demoima - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.25
Version 1.39.24
- Dodan je
Demo\Lazarus\ViewerInteractionLab, čime fokusirani tijek rada interakcije s preglednikom stiže u Lazarus uz Delphi uzorak - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.24
Version 1.39.23
- Dodan je
Demo\Lazarus\SearchAndSelect, čime je matrica uzorka SearchAndSelect dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.23
Version 1.39.22
- Dodani su
Demo\CBuilder\ContentExtractionLabiDemo\Lazarus\ContentExtractionLab, čime radni tok višekategorijskog izdvajanja sadržaja stiže u sve podržane demo IDE-ove - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.22
Version 1.39.21
- Poboljšani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReports odabirom formata pregleda tako da korisnici mogu pregledati tekstualni ili JSON izlaz prije spremanja izvještaja - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.21
Version 1.39.20
- Dodan je JSON izvoz u
FPdfPreflightReportputemTPdfPreflightReport.ToJsoniSaveJsonToFile, stvarajući strojno čitljive sažetke, status / prioritet po standardu, sljedeće radnje i detalje problema - Ažurirani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReports radnjama Save JSON uz TXT / HTML izvoz - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.20
Version 1.39.19
- Poboljšan je
FPdfPreflightReportsTPdfPreflightStatus, kategorijama problema, prioritetom po standardu i smjernicama za sljedeću radnju u TXT / HTML izvještajima - Ažurirani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReporttako da prikazuju status, prioritet, broj problema i sljedeću radnju u sažetoj mreži - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.19
Version 1.39.18
- Dodan je
Demo\Lazarus\SecurityAudit, čime je matrica Delphi, C++Builder i Lazarus demo programa dovršena za radni tok audita PDF rizika samo za čitanje - Lazarus uzorak popisuje dozvole, privitke, JavaScript radnje, URI / Launch anotacije poveznica, web poveznice, potpise, XFA stanje, dostupnost V8 / XFA pomoćnika i povratne pozive nepodržanih značajki, a zatim popis nalaza sprema ili kopira kao TXT izvještaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.18
Version 1.39.17
- Dodan je
Demo\CBuilder\SecurityAudit, čime je radni tok audita PDF rizika samo za čitanje stigao u C++Builder uz postojeći Delphi uzorak - C++Builder uzorak popisuje dozvole, privitke, JavaScript radnje, URI / Launch anotacije poveznica, web poveznice, potpise, XFA stanje, dostupnost V8 / XFA pomoćnika i povratne pozive nepodržanih značajki, a zatim popis nalaza sprema ili kopira kao TXT izvještaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.17
Version 1.39.16
- Dodan je
Demo\CBuilder\SearchAndSelect, čime je samostalni radni tok preglednika SearchAndSelect stigao u C++Builder uz postojeći Delphi uzorak - C++Builder uzorak stvara ili otvara PDF-ove, prikazuje rezultate pretrage na svim stranicama s pregledom broja stranice / indeksa znaka, podržava navigaciju Previous / Next i dvoklik, te ističe podudaranja na trenutnoj stranici pomoću
HighlightSearchText - Također izlaže
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangei opcije raspršenogDisplayMode; metapodaci verzije sada prijavljuju 1.39.16
Version 1.39.15
- Dodan je
Demo\CBuilder\WatermarkStamp, čime je matrica demo programa za ponovno upotrebljiv Form XObject radni tok vodenih žigova i žigova dovršena kroz Delphi, Lazarus i C++Builder - C++Builder uzorak stvara ciljne i stamp PDF-ove, ponovno koristi stranicu žiga putem
CreateXObjectFromPage, primjenjujeTPdfMatrixtransformacije i sprema vodene žigove u sredini, žigove u kutovima i oznake broja stranice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.15
Version 1.39.14
- Dodan je
Demo\Lazarus\WatermarkStamp, čime je radni tok ponovno upotrebljivog Form XObject vodenog žiga i žiga stigao u Lazarus - Lazarus uzorak stvara ciljne i stamp PDF-ove, ponovno koristi stranicu žiga putem
CreateXObjectFromPage, primjenjujeTPdfMatrixtransformacije i sprema vodene žigove u sredini, žigove u kutovima i oznake broja stranice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.14
Version 1.39.13
- Dodan je
Demo\CBuilder\PreflightReport, čime je matrica demo programa za ponovno upotrebljivFPdfPreflightReportradni tok dovršena kroz Delphi, Lazarus i C++Builder - C++Builder uzorak koristi
FPdfPreflightReport.hppza generiranje sažetaka standarda, pregleda TXT izvještaja, TXT / HTML datoteka izvještaja i ponašanja Open Last Report - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.13
Version 1.39.12
- Dodan je
Demo\Lazarus\PreflightReport, čime je radni tok preflight izvještaja za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT stigao u Lazarus - Lazarus uzorak može otvoriti ili stvoriti PDF, odabrati ciljane standarde, pregledati retke sažetka i TXT izlaz izvještaja, spremiti TXT / HTML izvještaje i otvoriti posljednje spremljeni izvještaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.12
Version 1.39.11
- Poboljšan je
Demo\Delphi\SearchAndSelects popisom rezultata pretrage na svim stranicama koji bilježi broj stranice, indeks znaka i pregled teksta - Dodan je Previous / Next odabir podudaranja i skakanje na rezultat dvoklikom uz zadržavanje ponašanja
HighlightSearchTextna trenutnoj stranici - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.11
Version 1.39.10
- Poboljšan je
Demo\Delphi\SecurityAuditradnjama Save Report i Copy Report koje trenutačni sažetak i retke nalaza izvoze kao TXT izvještaj revizije - Demo sada čisti stanje izvoza izvještaja kada se audit ploča resetira, tako da kopirani ili spremljeni izvještaji ostaju usklađeni s vidljivim nalazima
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.10
Version 1.39.9
- Poboljšan je
Demo\Delphi\ContentExtractionLabradnjama spremanja izvornog PDF-a, kopiranja izvještaja u međuspremnik i odabira kategorija all / none - Demo sada poništava trenutni izvještaj kada se odabir kategorija promijeni, tako da TXT / JSON izvozi odražavaju vidljivi opseg izdvajanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.9
Version 1.39.8
- Dodan je
Demo\Delphi\ContentExtractionLab, jedinstveni uzorak radnog toka izdvajanja sadržaja za metapodatke dokumenta, tekst stranice, objekte stranice, slike, privitke, poveznice, anotacije, oznake i metrike fonta / znakova - Uzorak može otvoriti postojeći PDF ili stvoriti sintetički PDF s tekstom, slikom, privitkom i sadržajem anotacija, a zatim generirati retke sažetka i detaljne TXT / JSON izvještaje
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.8
Version 1.39.7
- Dodan je
Lib\FPdfPreflightReport.pas, ponovno upotrebljivi pomoćnik za izvještaje koji objedinjujeValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRiValidatePdfVTu jedan objektTPdfPreflightReport - Dodan je
Demo\Delphi\PreflightReport, uzorak radnog tijeka koji otvara ili stvara PDF, odabire ciljane standarde, pregledava retke sažetka i preporuke problema te sprema TXT ili HTML izvještaje - Generirani izvještaji izričito opisuju ugrađenu granicu provjere na razini markera tako da ih aplikacije mogu po potrebi upariti s namjenskim alatima za preflight na razini sadržaja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa, popisi projekata paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.7
Version 1.39.6
- Dodan je
Demo\Delphi\SearchAndSelect, usredotočeni uzorak radnog tijeka preglednika za isticanje pretrage, odabir teksta, pregled odabranog teksta, kopiranje, čišćenje i načine rasporeda prikaza u širinu - Uzorak prikazuje
HighlightSearchText, opcije pretrage uz podudaranje velikih i malih slova / cijele riječi,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardiClearSelectionbez dodavanja nove API knjižnice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.6
Version 1.39.5
Demo\Delphi\ViewerInteractionLabje proširen u uzorak UX preglednika u stilu SearchAndSelect sHighlightSearchText, opcijama podudaranja velikih i malih slova / cijele riječi, pregledom odabranog teksta i postojećim kontrolama odabira / međuspremnikaDemo\Delphi\PrintDialogje proširen za provjeru preferencija ispisa PDF autora:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingi vidljivog mapiranja obostranog ispisaSetPdfPrintPaperHandlingDevMode- Dodan je
Demo\Delphi\SecurityAudit, uzorak samo za čitanje koji navodi dozvole, privitke, dokumentni JavaScript, URI / Launch poveznice, web poveznice, potpise, XFA stanje i dostupnost V8 / XFA pomoćnika - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.5
Version 1.39.4
- Dodani su
Demo\CBuilder\ImageToPDFiDemo\Lazarus\ImageToPDF, čime je matrica uzorka ImageToPDF dovršena kroz Delphi, C++Builder i Lazarus - Novi uzorci prikazuju višestruki odabir slika, pregled odabrane slike, jednu PDF stranicu po slici, A4 portret / landscape veličine stranice, centrirano skaliranje slike, napredak po slici i otvaranje generiranog PDF-a nakon spremanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.4
Version 1.39.3
- Dodan je
Demo\CBuilder\BatchExport, čime radni tok izvoza više PDF datoteka u JPG stiže u C++Builder uz postojeće Delphi i Lazarus uzorke - Uzorak prikazuje
LoadCustomDocument,IPdfCancellationTokenSource, streaming ulaz prekoTFileStream, napredak po datoteci i po stranici, obradu otkazivanja, unos DPI / kvalitete / lozinke i otvaranje izlazne mape nakon dovršetka - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.3
Version 1.39.2
- Dodan je
Demo\Delphi\WatermarkStamp, uzorak radnog tijeka Form XObject koji se može pokrenuti i stvara ciljni PDF i ponovno upotrebljivi stamp PDF, a zatim primjenjuje vodene žigove u sredini, žigove u gornjem desnom kutu i oznake broja stranice na svakoj stranici - Uzorak prikazuje
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixiFPDFPageObj_SetMatrixbez dodavanja nove API knjižnice - Ažuriran je
Docs\en-us\Examples.htmlkako bi koristio trenutni obrazacTPdfMatrix.Handlepri prosljeđivanju matrica uFPDFPageObj_SetMatrix - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.2
Version 1.39.1
- Dodan je
Demo\Delphi\ViewerInteractionLab, fokusiraniTPdfViewuzorak za načine prikaza, načine uklapanja, boje stranice, rotaciju, korisnički odabir teksta, radnje međuspremnika i povratnu informaciju koordinataDeviceToPage - Dodani su
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLabkako bi Lazarus korisnici mogli pokretati radni tok provjere i izlaznih oznaka za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT - Standardne jedinice su navedene u
Lib\37.0\PDFiumPas.dprojiLib\FPC\PDFiumLaz.lpk, a DelphiSplitViewdemo build je popravljen uklanjanjem duplikata importaWinapi.ShellAPI - Popravljeni su blokatori Delphi demo skupne izgradnje u
BatchExport,PDFViewer,MultiPageVieweriSplitViewbez promjene njihova runtime ponašanja - Popravljena je kompatibilnost skupne izgradnje C++Builder demo programa u
PDFVieweriMultiPageViewerzamjenomnullptrsNULLza trenutni projektni način - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.1
Version 1.39.0
- Dodan je
Demo\Delphi\StandardsLab, pokretni uzorak standardnog radnog toka koji učitava ili stvara PDF, pokrećeValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRiValidatePdfVTte prikazuje otkrivenu usklađenost, status prolaz / neprolaz i broj problema u jednoj mreži - Gumbi za spremanje u StandardsLabu pozivaju
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRiSaveAsPdfVT, čineći izlaz PDF standardnih markera vidljivim bez pisanja prilagođenog harnessa - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.0
Version 1.38.0
- Preklopi za pretragu i odabir teksta u
TPdfViewsada koriste stvarno alpha miješanje umjesto logičkog maskiranja, čuvajući sadržaj stranice ispod isticanja - Dodan je
SetPdfPrintPaperHandlingDevModeza preslikavanjeTPrintPaperHandlingu WindowsDEVMODE.dmDuplexvrijednosti:DMDUP_SIMPLEX,DMDUP_HORIZONTALiDMDUP_VERTICAL TPdfView.SmoothScrollsada animira naredbe klizača za redak / stranicu segmentima vođenim tajmerom; praćenje klizača i dalje je trenutno- Ažurirani su
TPdf.AboutInfoi metapodaci verzije instalera kako bi prijavljivali 1.38.0
Version 1.37.0
TPdfsada posjeduje zaključavanje prikaza po instanci koje serijalizira putanjeRenderPage,RenderTile,RenderPageProgressive, ponovno učitavanje stranice i otpuštanje dokumenta. Renderiranje vođeno radnom niti kroz zajedničku komponentu sada je praktično, dok aplikacije i dalje koordiniraju mutaciju dokumenta i životni vijek- Popravljen je omotač bitmape bez kopiranja tako da odbacuje DIB rasporede
TBitmaps bottom-up rasporedom i vraća se na buffer u vlasništvu PDFiuma prije kopiranja izlaza, čime se uklanjaju pogreške korupcije stridea / access violation u VCL render testovima - Pooštreno je ponašanje odabira u
TPdfView:AllowUserTextSelectionograničava samo korisnički unos, API-jevi za odabir na razini koda i dalje crtaju prikaz, aSelectAllslijedi stvarni vidljivi raspon tako da naslovna stranica više ne odabire stranicu 2. Delphi, Lazarus i C++Builder testovi su prošireni u skladu s tim - Ažurirani su
TPdf.AboutInfoi metapodaci verzije instalera kako bi prijavljivali 1.37.0
Version 1.36.0
- Aktiviran je odabir teksta za krajnjeg korisnika u
TPdfView— svojstvoAllowUserTextSelection, rezervirano još u v1.17.0, sada pokreće potpuni pipeline odabira povlačenjem. Lijevi klik na znak teksta ulazi u način odabira (automatski hit-test); lijevi klik na prazno područje i dalje pomiče prikaz (pan) kao i dosad. Widget za popunjavanje obrazaca zadržava prednost, pa klik na polje obrasca i dalje fokusira to polje umjesto da pokrene odabir - Dvoklik označava riječ, trostruki klik cijeli redak,
Ctrl+Aoznačava trenutnu stranicu (obje stranice u spread načinima prikaza), aCtrl+Ckopira odabir u Windows međuspremnik kaoCF_UNICODETEXT Shift+Left/Shift+Rightproširuje odabir znak po znak (u spread načinu prelijeva se na susjednu stranicu);Shift+Home/Shift+Endproširuje odabir do vizualnog ruba retka, uz visinu okvira početnog znaka kao toleranciju grupiranja retka, tako da reci s miješanim veličinama fontova ostaju ispravno grupirani- Prelazak mišem preko teksta mijenja kursor u
crIBeam; odmak od teksta vraća zadani kursor. Dok traje povlačenje za odabir teksta, povlačenje u mrtvu zonu od 20 piksela uz bilo koji rub viewer kontrole automatski skrola stranicu (tik od 50 ms, 16 px po tiku, ograničeno na iste granice koje koristi putanja za pan), tako da odabir može prijeći granice trenutnog viewporta bez prethodnog otpuštanja miša - Odabir preko više stranica radi u spread načinima prikaza (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): povlačenje započeto na lijevoj, a završeno na desnoj stranici označava neprekidni raspon koji obuhvaća obje.SelectedTextspaja odsječke po stranici s CR/LF tako da vraćeni tekst čita kao normalan višeredni sadržaj - Novo published svojstvo
SelectionColor(zadanoclHighlight, sistemska Windows boja odabira) — neovisno oHighlightColor-u koji boji rezultate pretrage žuto. Isticanja pretrage i odabir u tijeku povlačenja mogu se istovremeno prikazati na zaslonu, bez sukoba boja - Novi published događaj
OnSelectionChangeokida se svaki put kada se materijalizirani rasponi odabira stvarno promijene — nikada kod identične ponovne primjene, tako da host aplikacije mogu događaj izravno vezati uz tekst statusne trake ili omogućenost gumba, bez debouncinga - Novi javni API na
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. To su ulazne točke na razini koda i uvijek rade, neovisno oAllowUserTextSelection— zastavica ograničava samo korisnički unos (miš, Ctrl+C, Ctrl+A, Shift+strelice), pa kiosk hostovi mogu onemogućiti korisnički vođen odabir, a i dalje izrađivati alatne gumbe "Select All / Copy" koji pokreću isti API - Zadani popup izbornik za desni klik s
Copy/复制automatski se dodaje kada host nije dodijelio vlastitiPopupMenu— standardni tok "označi tekst, desni klik, kopiraj" radi odmah, bez dodatne konfiguracije. Opis (caption) bira se između engleskog i kineskog premaSysLocale.PriLangID; hostovi kojima treba potpuna lokalizacija (ili bogatiji izbornik) jednostavno dodijele vlastitiPopupMenui zadani se potiskuje - Odabir se automatski briše kod
SetPdf,SetPageNumber,SetActive(False)i prijelazaDisplayMode-a, uzOnSelectionChangekoji se okida točno jednom kada je prethodni odabir bio neprazan. Podsustav popunjavanja obrazaca zadržava prednost — dok se uređuje polje obrasca, sve tipkovničke kratice za odabir ustupaju mjesto, tako da polje primaCtrl+C/Ctrl+A/Shift+arrowsza svoj vlastiti odabir - Proširene su Delphi i Lazarus regresijske suite na 202 slučaja svaka, a C++Builder suite na 159 slučaja; pokrivaju zadane vrijednosti, round-trip, ponašanje javnog API-ja, brisanje pri promjeni stanja, povlačenje mišem (pogodak teksta / pogodak praznog područja), klik naspram povlačenja, prebacivanje na IBeam kursor, dvoklik na riječ, trostruki klik na redak, tipkovničke kratice, dodavanje / odgađanje / opis zadanog popup izbornika te odabir preko stranica u spread načinu — uključujući provjeru CR/LF round-tripa kroz međuspremnik
Version 1.35.0
- Dodan je podrška za umetanje oznaka PDF/VT (ISO 16612-2:2010): TPdf.SaveAsPdfVT promovira trenutačni dokument u PDF/VT-1 ili PDF/VT-2 usklađenu datoteku (podskup PDF-a za varijabilno i transakcijsko ispisivanje). PDF/VT je izgrađen na vrhu PDF/X-4 - ISO 16612-2 §6.2.1 zahtijeva da svaka PDF/VT-1 datoteka također bude usklađena s PDF/X-4 - pa umetanje zapisuje cijeli skup PDF/X-4 markera (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)i/Trapped, katalog/OutputIntentskoji upućuje na OutputIntent rječnik s ugrađenim ICC profilom) uz svojstva specifična za PDF/VT - Umetanje specifično za PDF/VT obuhvaća XMP
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" ili "PDF/VT-2" prema §6.3 Table 2) ipdfvtid:GTS_PDFVTModDate(sinkroniziran sxmp:ModifyDateprema §6.3 NOTE 1), uz opis pdfaExtension:schemas koji deklarira i pdfxid i pdfvtid prostore imena (NPES URI-jevihttp://www.npes.org/pdfx/ns/id/ihttp://www.npes.org/pdfvt/ns/id/). Trailer nosi/IDniz - Dodan je TPdf.SaveAsPdfVTToStream za PDF/VT izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfVT(FileName)koja proizvodi PDF/VT-1 s uključenim sRGB IEC61966-2.1 OutputIntentom (3144 bytes, isti profil kao SaveAsPdfA / SaveAsPdfX) i/Trapped /False - Dodan je TPdf.ValidatePdfVT: provjerava otvoreni PDF na oznake usklađenosti PDF/VT (XMP
pdfvtid:GTS_PDFVTVersioni prisutnostGTS_PDFVTModDate, jednakost izmeđupdfvtid:GTS_PDFVTModDateixmp:ModifyDate, prisutnost temeljnog identifikatorapdfxid:GTS_PDFXVersion, prisutnost kataloga/DPartRootprema §6.5,/OutputIntentss/DestOutputProfile, trailer /ID, stanje enkripcije, prisutnostxmp:CreateDate/ModifyDate) i vraća TPdfVTValidationResult s otkrivenom razinom usklađenosti i skupom pronađenih problema - Dodan je svojstvo TPdf.PdfVTConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pvc1, pvc2, pvcNone ili pvcUnknown) bez potrebe da se izričito pozove ValidatePdfVT
- Novi tipovi izloženi u novoj jedinici FPdfPdfvt: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Document Part Hierarchy (
DPartRoot/DPartstablo prema §6.5) je aplikacijska struktura koja ovisi o radnom tijeku variable-data printinga za mapiranje primatelja / raspona stranica. SaveAsPdfVT NE sintetizira DPart stablo - ValidatePdfVT prikazuje nedostajući/DPartRootkaopvviMissingDPartRoottako da pozivatelji PDF/VT datoteke mogu usmjeriti kroz zaseban korak izgradnje DPart-a. Zahtjevi PDF/X-4 na razini sadržaja (ugrađivanje fontova, transparentnost, ICC upravljano bojenje, OPI / JavaScript / Reference XObject zabrane itd.) i dalje su odgovornost autora dokumenta i PDFiumova renderirajućeg cjevovoda - Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.34.0
- Dodana je podrška za injektiranje PDF/R-1 markera (ISO 23504-1:2020): TPdf.SaveAsPdfR pretvara trenutni dokument u datoteku sukladnu PDF/R-1 (raster-image transport podskup PDF-a koji se koristi za skenirane dokumente). Injektiranje pokriva zahtjeve na razini formata datoteke koje je moguće dodati naknadnom obradom — jedinstveni
%PDF-raster-1.0komentar za identifikaciju verzije, upisan između trailer dictionaryja i ključne riječi startxref (§5), catalog dictionary sveden na §6.3 white listu (preživljavaju samo Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata), Document Information Dictionary sveden na §6.4.3 white listu (samo Creator / Producer / CreationDate / ModDate), catalog /Metadata XMP stream s četiri unosa iz §6.4.4 Table 1 (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate) te /ID niz u traileru - Dodan je TPdf.SaveAsPdfRToStream za PDF/R izlaz u memoriju, te kratica sa zadanim opcijama
TPdf.SaveAsPdfR(FileName)za uobičajeni slučaj - Dodan je TPdf.ValidatePdfR: provjerava otvoreni PDF na PDF/R-1 markere sukladnosti (footer komentar
%PDF-raster-x.y, verzija u headeru, odsutnost /Type /ObjStm, sukladnost cataloga s white listom, sukladnost Info dictionaryja s white listom, prisutnost XMP metadata streama, trailer /ID) i vraća TPdfRValidationResult s otkrivenom razinom sukladnosti i skupom pronađenih problema - Dodano je svojstvo TPdf.PdfRConformance: vraća razinu sukladnosti trenutno otvorenog dokumenta (prc1, prcNone ili prcUnknown), bez potrebe za eksplicitnim pozivom ValidatePdfR
- Novi tipovi izvoze se u novom unitu FPdfPdfr: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions.
TPdfRSaveOptions.Defaultpostavlja StripInfoOptionalEntries i StripCatalogOptionalEntries na True, pa injektor po zadanom proizvodi catalog i Info dictionary koji zadovoljavaju §6.3 / §6.4.3; pozivatelji te zastavice mogu postaviti na False kako bi zadržali izvorne unose (izlaz tada ne zadovoljava te PDF/R klauzule, ali ostali markeri ostaju na mjestu) - Zahtjevi na razini sadržaja ostaju odgovornost izvornog PDF-a: struktura Contents po stranici (§6.5.1), oblik MediaBox-a
[0 0 w h](§6.5.3), ograničenja filtera (§6.2.2 — samo FlateDecode, bitonalni CCITTFaxDecode, DCTDecode 8-bitni gray/RGB), odsutnost object streamova (§6.2.4) i strip layout prema §6.6. Sve to naknadnom obradom nije moguće nametnuti — PDF/R je strukturno znatno stroži podskup od ostalih PDF/x standarda i zahtijeva da se izvorni bajtovi generiraju ispravno. ValidatePdfR izlaže probleme formata datoteke koje ovaj unit može otkriti; za potpune provjere na razini sadržaja kombinirajte ga s PDF/R validatorom od TWAIN Working Group - Ažuriran je TPdf.AboutInfo string tako da prijavljuje trenutnu verziju proizvoda
Version 1.33.0
- Dodan je podržani unos markera PDF/X (obitelj ISO 15930): TPdf.SaveAsPdfX promovira trenutačni dokument u PDF/X-1a:2001, PDF/X-3:2002 ili PDF/X-4 usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem. Umetanje pokriva zahtjeve na razini formata koje je moguće dodati naknadnom obradom - XMP metadata stream koji nosi
pdfxid:GTS_PDFXVersion(ipdfxid:GTS_PDFXConformanceza PDF/X-1a / PDF/X-3) uz odgovarajući opis pdfaExtension:schemas, ponovno zapisan Document Information Dictionary s unosima/GTS_PDFXVersion,/GTS_PDFXConformancei/Trapped, ažurirani katalog s/OutputIntents [N 0 R]koji upućuje na OutputIntent rječnik s/S /GTS_PDFXi ugrađenim ICC profilom te trailer/IDniz - Dodan je TPdf.SaveAsPdfXToStream za PDF/X izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfX(FileName)koja proizvodi PDF/X-4 s ugrađenim sRGB IEC61966-2.1 OutputIntentom (3144 bytes, identičan profilu koji koristi SaveAsPdfA) - Dodan je TPdf.ValidatePdfX: provjerava otvoreni PDF na markere usklađenosti PDF/X (XMP pdfxid identifikator i jednakost s vrijednošću u Info rječniku, pdfxid opis proširene sheme, niz /OutputIntents s /DestOutputProfile, prisutnost Title, trailer /ID, stanje enkripcije, prisutnost xmp:CreateDate / xmp:ModifyDate) i vraća TPdfXValidationResult s otkrivenom razinom i skupom pronađenih problema
- Dodan je svojstvo TPdf.PdfXConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pxc1a, pxc3, pxc4, pxcNone ili pxcUnknown) bez potrebe da se ValidatePdfX izričito pozove. XMP niz verzije se analizira kako bi se razlučile tri razine usklađenosti
- Novi tipovi izloženi u novoj jedinici FPdfPdfx: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions.
TPdfXSaveOptions.Defaultcilja PDF/X-4 sa sRGB OutputIntentom i/Trapped /False; pozivatelji mogu prebrisatiConformance, dati CMYKIccProfileDatablob za komercijalne tiskarske tijekove ili promijenitiOutputCondition/OutputConditionIdentifier/RegistryNamekako bi pokazivali na određeni ICC zapis karakterizacije registra (npr. FOGRA39, GRACoL2006_Coated1v2) - Zahtjevi na razini sadržaja (svi fontovi ugrađeni, bez JavaScript-a, bez vidljivih anotacija, zabrana OPI-ja, pravila transparentnosti za PDF/X-1a / PDF/X-3 itd.) i dalje su odgovornost autora dokumenta i PDFiumova renderirajućeg cjevovoda. Uparite ValidatePdfX s alatom za preflight kao što je callas pdfaPilot ili Ghent PDF Workgroup Output Suite za potpunu provjeru usklađenosti
- Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.32.0
- Dodan je podržani unos markera PDF/E-1 (ISO 24517-1:2008): TPdf.SaveAsPdfE promovira trenutačni dokument u PDF/E-1 usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem. Umetanje pokriva zahtjeve na razini formata koje je moguće dodati naknadnom obradom - XMP metadata stream koji nosi
pdfe:ISO_PDFEVersion = "PDF/E-1"uz odgovarajući opis pdfaExtension:schemas, ponovno zapisani Document Information Dictionary s obaveznim unosom/ISO_PDFEVersion (PDF/E-1)koji zahtijeva §5, blokove povezivanja Info-XMP naslijeđene iz ISO 19005-1 §6.7 preko §13.1 (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool) te trailer/IDniz koji zahtijeva §6.2 - Dodan je TPdf.SaveAsPdfEToStream za PDF/E izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfE(FileName)za uobičajeni slučaj - Dodan je TPdf.ValidatePdfE: provjerava otvoreni PDF na markere usklađenosti PDF/E-1 (XMP pdfe:ISO_PDFEVersion prisutnost i jednakost s vrijednošću u Info rječniku, pdfe opis proširene sheme, unos /ISO_PDFEVersion u Info rječniku, trailer /ID, prisutnost xmp:CreateDate / xmp:ModifyDate) i vraća strukturirani rezultat s otkrivenom razinom usklađenosti i skupom pronađenih problema
- Dodan je svojstvo TPdf.PdfEConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pec1, pecNone ili pecUnknown) bez potrebe da se ValidatePdfE izričito pozove
- Novi tipovi izloženi u novoj jedinici FPdfPdfe: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Ponovno pisanje Info rječnika prvi je takav slučaj u PDFium Delphi Component-ovu PDF/x post-obradnom putu - ponovno zapisuje postojeći Info objekt s istim brojem objekta (tako da xref subsection / trailer /Info referenca ostaje valjana) i sintetizira svježi Info rječnik kada izvorni trailer nema /Info unos. PDFium sam po sebi emitira Info rječnik u svakom SaveAs izlazu, pa je uobičajeni slučaj put ponovnog pisanja
- Zahtjevi na razini sadržaja (ugrađivanje fontova, ToUnicode CMapovi, zabranjeni XObjecti / ExtGState ključevi / XFA obrasci itd.) i dalje su odgovornost autora dokumenta - SaveAsPdfE prilaže markere na razini formata, ali ne mijenja sadržaj stranice niti uklanja zabranjene značajke
- Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.31.0
- Dodan je podržani unos markera PDF/UA-1 (ISO 14289-1:2014): TPdf.SaveAsPdfUa promovira trenutačni dokument u PDF/UA-1 usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem. Umetanje pokriva zahtjeve na razini formata koje je moguće nametnuti naknadnom obradom - XMP metadata stream koji nosi
pdfuaid:part = 1uz odgovarajući opis pdfaExtension:schemas, obaveznidc:title, katalog/MarkInfo << /Marked true /Suspects false >>i/ViewerPreferences << /DisplayDocTitle true >>(samo kada ih izvor nema), katalog/Lang(kada pozivatelj zada BCP 47 oznaku) i trailer/IDniz - Dodan je TPdf.SaveAsPdfUaToStream za PDF/UA izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfUa(FileName)za uobičajeni slučaj - Dodan je TPdf.ValidatePdfUa: provjerava otvoreni PDF na markere usklađenosti PDF/UA-1 (postojanje StructTreeRoot, /Lang, /MarkInfo /Marked true s /Suspects = false, /ViewerPreferences /DisplayDocTitle true, XMP pdfuaid:part identifikator, dc:title prisutnost, trailer /ID, stanje enkripcije) i vraća strukturirani rezultat s otkrivenom razinom usklađenosti i skupom pronađenih problema
- Dodan je svojstvo TPdf.PdfUaConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (puc1, pucNone ili pucUnknown) bez potrebe da se ValidatePdfUa izričito pozove
- Novi tipovi izloženi u novoj jedinici FPdfPdfua: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language polja ostavljena prazna u TPdfUaSaveOptions automatski se popunjavaju iz FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, pa postojeći pozivatelji mogu spremati jednom linijom
- Zahtjevi na razini sadržaja (potpunost StructTreeRoot označavanja, Figure Alt tekst, ToUnicode CMapovi, ugrađivanje fontova itd.) i dalje su odgovornost autora dokumenta - SaveAsPdfUa prilaže markere na razini formata, ali ne mijenja sadržaj stranice niti izmišlja oznake. ValidatePdfUa izlaže odsutnost StructTreeRoot kao
pvuaiMissingStructTreeRoottako da pozivatelji neoznačene dokumente mogu usmjeriti kroz zaseban cjevovod označavanja - Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.30.0
- PDF/A-1b izlaz sada zadovoljava ISO 19005-1 (with Cor.1:2007) zahtjeve za usklađenost Document Information Dictionary / XMP: svaki unos Info rječnika koji PDFium upisuje u osnovni PDF zrcali se u XMP paket, uključujući Title (dc:title), Author (dc:creator), Subject (dc:description prema Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) i ModDate (xmp:ModifyDate). Također se emitira xmp:MetadataDate
- Trailer PDF/A dokumenta sada uvijek sadrži /ID niz (ISO 19005-1 6.1.3 strogi zahtjev). Kada TPdf.SaveAsPdfA obrađuje dokument čiji izvor već ima identifikator datoteke, postojeći 16-bajtni trajni i promjenjivi ID-ovi ponovno se koriste; inače se deterministički 16-bajtni rezervni ID izvodi iz izvornih bajtova
- Umetnuti XMP sada ugrađuje opis pdfaid proširene sheme koji zahtijeva ISO 19005-1 6.7.8 (zamijenjen Cor.1) - pdfaid se tretira kao proširena shema u odnosu na XMP Specification 2004, pa sve usklađene datoteke moraju deklarirati imena svojih svojstava, vrste vrijednosti i kategorije u spremniku pdfaExtension:schemas
- TPdfASaveOptions dobio je pet novih opcionalnih polja: Producer, CreationDate, ModDate (PDF datumski nizovi u formi “D:YYYYMMDDHHmmSSOHH'mm'”), DocumentId i InstanceId (16-bajtni bajtni nizovi za trailer /ID niz). TPdf.SaveAsPdfA / SaveAsPdfAToStream automatski popunjavaju nedostajuća polja iz FPDF_GetMetaText i FPDF_GetFileIdentifier, pa postojeći pozivatelji i dalje rade bez promjena
- TPdf.ValidatePdfA / TPdf.PdfAConformance sada prijavljuju tri dodatna problema: pvaiMissingTrailerId (nema /ID u traileru), pvaiMissingXmpDates (xmp:CreateDate ili xmp:ModifyDate nedostaje) i pvaiMissingExtensionSchema (opis proširene sheme pdfaid nedostaje)
- Ne-ASCII znakovi u Title, Author, Subject, Keywords, Creator i Producer sada se kodiraju kao UTF-8 u XMP paketu (XMP Specification zahtijeva UTF-8), čuvajući višelingvalni round-trip metapodataka kroz SaveAsPdfA
- Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.29.0
- Obnovljeni su isporučeni PDFium DLL-ovi (Win32 i Win64, standardna i V8 izdanja) na upstream snimku od 2026-05-22, preuzimajući upstream popravke za putanje rušenja FPDFText_SetText / FPDFText_SetCharcodes i razna interna učvršćenja iz PDFium projekta
- Izložen je novi PDFiumov zastavica FPDF_SUBSET_NEW_FONTS za spremanje u FPdfPageOps.pas, omogućujući pozivateljima FPDF_SaveAsCopy da zatraže automatsko podskupiranje ugrađenih fontova za novo dodane tekstualne objekte. Postojeće konstante FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL i FPDF_REMOVE_SECURITY sada su definirane pomoću upstream oblika s pomakom bitova (naslijeđena numerička vrijednost 3 zadržana je kao FPDF_REMOVE_SECURITY_DEPRECATED radi binarne kompatibilnosti)
- Dodan je enum FPDF_FONT_BACKEND_TYPE (FREETYPE / FONTATIONS) i odgovarajuće polje m_FontLibraryType u FPDF_LIBRARY_CONFIG u FPdfView.pas, tako da aplikacije koje inicijaliziraju PDFium sa Skia rendererom sada mogu odabrati font backend pri pokretanju
- Ažuriran je potpis TFPDFPage_InsertObject kako bi odgovarao upstreamu: C funkcija sada vraća FPDF_BOOL (TRUE pri uspjehu, FALSE ako je page_object NULL ili prijenos vlasništva ne uspije) umjesto void. Postojeći PDFium Delphi Component pozivatelji i dalje se prevode nepromijenjeno jer Delphi / FPC dopuštaju ignoriranje povratne vrijednosti funkcije
- Ispravljen je string TPdf.AboutInfo tako da prijavljuje trenutačnu verziju proizvoda (bio je zastario na v1.27.0 od v1.28.0 dokumentacijsko-samo izdanja)
Version 1.28.0
- Znatno je proširena dokumentacija unutar stranice kroz cijelu referencu API-ja: svaki zapis svojstva, metode, događaja i globalne funkcije sada nosi opis od 3 odlomka, popis napomena, višeredni Delphi primjer i bogatiji blok See Also - pokrivajući više od 200 ranije tankih stranica uključujući sve TPdf brojače, dohvaćanja metapodataka, pristupe fontovima i znakovima, svojstva na razini stranice, indeksirane zapise, metode na razini dokumenta i cijelu površinu stanja / prikaza / događaja TPdfView
- Finije je dotjeran izgled pomoći kako bi odgovarao losLab vizualnoj osnovi korištenoj u HotXLS referenci: usklađene su veličine h1/h2, stilovi API navigacijske mreže konsolidirani su u zajednički StyleSheet, a per-page inline CSS nadjačavanja na Navigation.html uklonjena su
- Dokumentacija sada dolazi s pomoćnom skriptom (Docs\Build-Expand-Entries.ps1) koja regenerira obogaćivanje stranica unosa iz jedne podatkovne tablice radi ponovljivog održavanja
Version 1.27.0
- Dodana je podrška za stvaranje PDF/A-1b: TPdf.SaveAsPdfA sprema svaki otvoreni dokument kao PDF/A-1b usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem koje umeće XMP metadata stream, sRGB ICC OutputIntent i ažurirani katalog dokumenta - sve bez potrebe za dodatnim DLL API-jima. Radi na svakoj platformi koju podržava PDFium Delphi Component
- Dodan je TPdf.SaveAsPdfAToStream za PDF/A izlaz u memoriji
- Dodan je TPdf.ValidatePdfA: provjerava otvoreni PDF na usklađenost s PDF/A (XMP pdfaid markeri, OutputIntent s ugrađenim ICC profilom, enkripcija) i vraća strukturirani rezultat s otkrivenom razinom usklađenosti i skupom specifičnih pronađenih problema
- Dodan je svojstvo TPdf.PdfAConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pac1b, pac1a, pac2b, pac3b, pacNone ili pacUnknown) bez potrebe da se ValidatePdfA izričito pozove
- Novi tipovi izloženi: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (u novoj jedinici FPdfPdfa.pas)
- SaveAsPdfA podržava prilagođeni ICC profil putem TPdfASaveOptions.IccProfileData; kada je prazno, automatski se koristi ugrađeni sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes) profil
- Zamijenjena je monolitna HTML referenca preuređenim web help sustavom: 302 pojedinačne stranice unosa API-ja (jedna po svojstvu, metodi, događaju i globalnoj funkciji) koje pokrivaju TPdf i TPdfView, svaka s punim opisom, tablicom parametara, Delphi code primjerom i See Also poveznicama
- Dodan je Navigation.html: sveobuhvatni API navigacijski indeks na jednoj stranici organiziran u šest sekcija (TPdf properties/methods/events, TPdfView properties/methods/events, global functions) s 5-stupčanom flex mrežom za brzo pregledavanje
- Ponovno su izgrađeni TPdf.html i TPdfView.html kao sažete stranice pregleda komponenti koje zadržavaju odjeljke referenciranja tipova (Types, Constants, Global Variables) i povezuju prema pojedinačnim stranicama unosa za sve članove
- Dodan je pretraživanje punog teksta pogonjeno sa Search.js s inkrementalnim klijentskim podudaranjem kroz svih 312 indeksiranih stranica
- Ažurirane su sve navigacijske trake na webu tako da upućuju na Navigation.html
Version 1.26.0
- Dodan je Demo/Lazarus/BatchExport, LCL port v1.14.0 Delphi BatchExport demo programa. Isti skup značajki: višedatotečni PDF -> JPG izvoz s ukupnim napretkom po datoteci, trenutnim napretkom po stranici, unosima DPI / kvalitete / lozinke i skupnim radnim tokakom kojim se može cooperativno otkazati uz IPdfCancellationToken. Izlazna mapa otvara se u upravitelju datoteka platforme kada izdvajanje uspješno završi
Version 1.25.0
- Dodan je ponovni rad stranice Form XObject u TPdf, omogućujući radne tokove vodenih žigova, prekrivanja predloška i "stamp one page onto many": CreateXObjectFromPage izrađuje ponovno upotrebljivu ručku iz bilo koje stranice drugog dokumenta; InsertFormObjectFromXObject umeće JEDNU kopiju obložene stranice u trenutačnu stranicu. Vraća umetnuti FPDF_PAGEOBJECT tako da ga pozivatelj može pozicionirati / skalirati / rotirati s FPDFPageObj_SetMatrix i v1.9.0 TPdfMatrix pomoćnicima
- Novi Pascal class TPdfXObject obavija PDFiumovu FPDF_XOBJECT ručku i zatvara je automatski u destruktoru, uklanjajući ručno FPDF_CloseXObject ceremonijalno rukovanje
- Prošireni su regresijski testovi za Delphi i Lazarus na 147 slučajeva svaki, a C++Builder skup na 123 slučaja, pokrivajući stvaranje ručki i ugovore umetanja page-objecta
Version 1.24.0
- Dodan je TPdf.RenderPageProgressive - varijanta RenderPage koja se može otkazati, pokreće PDFiumovu progresivnu renderirajuću petlju i između iteracija ispituje v1.7.0 IPdfCancellationToken, tako da se dugotrajni renderi visoke DPI mogu prekinuti usred stranice umjesto da blokiraju pozivatelja do završetka
- Vraća vrijednost TPdfProgressiveStatus: prsDone, prsCancelled ili prsFailed. Proslijedite AToken = nil za renderiranje do kraja bez ikakvog pauziranja (bez mogućnosti prsCancelled)
- Koristi istu zero-copy putanju uvedenu u v1.21.0 - PDFium izravno upisuje u DIB buffer odredišnog TBitmap-a. Ista naslijeđena fallback putanja primjenjuje se kada DIB ne može biti obavijen
- Prošireni su regresijski testovi za Delphi i Lazarus na 145 slučajeva svaki, a C++Builder skup na 121 slučaj, pokrivajući nil-token (dovršava), unaprijed otkazani token (prsCancelled) i pixel-equivalence sa sinkronim RenderPage na živom tokenu
Version 1.23.0
- Dodan je šest novih TPdfView metoda koje aplikacijama izlažu PDFiumov odabir teksta i Undo/Redo za widgete obrazaca: GetSelectedFormText vraća trenutačno odabrani tekst unutar fokusiranog widgeta obrasca; SelectAllFormText odabire svaki znak; FormUndo / FormRedo / FormCanUndo / FormCanRedo upravljaju poviješću uređivanja fokusiranog widgeta. Temeljni PDFium API-ji već su bili vezani, ali nisu imali ulaznu točku na visokoj razini. Svih šest sigurno kratko spaja kada je prikaz neaktivan ili dokument nema fokusirani AcroForm widget
- Prošireni su regresijski testovi za Delphi i Lazarus na 142 slučaja svaki, a C++Builder skup na 119 slučajeva, pokrivajući ugovor bez forme i bez fokusa za svaku novu metodu
Version 1.22.0
- Dodani su omotači za sastavljanje stranica u TPdf: ImportPagesByIndex uzima polje indeksa s nultim početkom za kopiranje određenih stranica iz izvornog dokumenta; ImportNPagesToOne vraća posve novi TPdf čije su stranice N-up kompoziti ovog dokumenta; MovePages preuređuje stranice na mjestu. Temeljni PDFium API-ji već su bili vezani, ali nisu imali Pascal-friendly ulaznu točku
- ImportPagesByIndex prihvaća prazno polje za uvoz svake izvorne stranice (ekvivalent prosljeđivanju nil na C ABI razini)
- Prošireni su regresijski testovi za Delphi i Lazarus na 136 slučajeva svaki, a C++Builder skup na 115 slučajeva, pokrivajući uvoz podskupa, uvoz cijelog dokumenta, preuređivanje stranica i N-up kompozit
Version 1.21.0
- Poboljšana je izvedba renderiranja prebacivanjem TPdf.RenderPage / TPdf.RenderTile (i odgovarajućih pomoćnika TPdfView) na zero-copy izlaznu putanju. PDFium sada izravno upisuje u DIB buffer odredišnog TBitmap-a umjesto u interni buffer koji se zatim kopirao redak po redak, čime se pri svakom renderiranju štedi jedan prijenos memorije veličine širina x visina x 4 bajta. Poboljšanje je najvidljivije pri visokoj DPI (ploče minijatura, izvoz kvalitete ispisa, skupni izvoz)
- Naslijeđena putanja po skanu ostaje kao sigurnosni fallback za malo vjerojatan slučaj kada odredišni DIB ne može biti obavijen (ekstremne dimenzije, neobičan stride, OOM). Ponašanje je po bajtovima identično između dviju putanja, samo sporije u fallbacku
- Prošireni su regresijski testovi za Delphi i Lazarus na 132 slučaja svaki, a C++Builder skup na 112 slučajeva, pokrivajući nadogradnju pozivateljeve bitmape u pf32bit, round-trip dimenzija i sanity test velikog bitmap stridea
Version 1.20.0
- Dodano je isticanje rezultata pretrage u TPdfView: HighlightSearchText(Text, MatchCase, MatchWholeWord) skenira trenutnu stranicu prikaza i vraća broj pronađenih podudaranja, crtajući masku HighlightColor preko svakog podudaranja pri svakom ponovnom crtanju. ClearHighlight uklanja isticanja; prebacivanje prikaza na drugu stranicu automatski ih čisti jer su podudaranja vezana uz stranicu
- HighlightColor zadano je clYellow i objavljeno je tako da aplikacije mogu uskladiti boju isticanja sa svojom paletom UI-ja
- Prošireni su regresijski testovi za Delphi i Lazarus na 129 slučajeva svaki, a C++Builder skup na 109 slučajeva, pokrivajući zadanu boju, round-trip boje, "stvarne podudarnosti riječi iz fixturea" prema nizu sample.pdf i ugovor "nedostajuća riječ vraća nula podudaranja"
Version 1.19.0
- Dodan je svojstvo FitMode u TPdfView s četiri vrijednosti: pfmNone (ručno zumiranje), pfmActualSize (100%), pfmFitPage (cijela stranica stane u vidljivo područje) i pfmFitWidth (širina stranice odgovara širini vidljivog područja). Aktivni način uklapanja ponovno se primjenjuje automatski pri Resize i kada se promijeni trenutna stranica, pa dugi dokumenti s mješovitim veličinama stranica ostaju savršeno uokvireni
- Postavljanje Zoom izravno poništava aktivni način uklapanja (FitMode se vraća na pfmNone), u skladu sa standardnom konvencijom preglednika PDF-a gdje upis vrijednosti zumiranja izlazi iz Fit Page / Fit Width
- Zadano je pfmNone tako da postojeće aplikacije zadrže svoje ponašanje eksplicitnog zumiranja
- Prošireni su regresijski testovi za Delphi i Lazarus na 124 slučaja svaki, a C++Builder skup na 106 slučajeva, pokrivajući zadanu vrijednost, round-trip načina, fit-page koji proizvodi stvarni zoom na učitanom dokumentu i ručno zumiranje koje poništava način uklapanja
Version 1.18.0
- Dodan je svojstvo PageColor u TPdfView, odvajajući pozadinu prikazane PDF stranice od boje okolne kontrole. Zadano je clWhite, pa se PDF stranice sada prikazuju kao papirnato bijele bez obzira na temu host aplikacije. Preglednici u tamnom načinu sada mogu zadržati područje za pomicanje tamnim, dok sama PDF stranica ostaje bijela ili u bilo kojoj boji koju aplikacija odabere
- Promjena ponašanja: aplikacije koje su prije postavljale TPdfView.Color kako bi prebojale PDF stranicu sada trebaju postaviti PageColor. Zadano iskustvo se poboljšava za uobičajeni slučaj (bijele stranice na tematskim pozadinama kontrole) bez ikakve promjene koda
- Prošireni su regresijski testovi za Delphi i Lazarus na 120 slučajeva svaki, a C++Builder skup na 103 slučaja, pokrivajući zadanu vrijednost i round-trip boje
Version 1.17.0
- Dodan je prekidač za zaključavanje korisničkog unosa u TPdfView tako da aplikacije koje ugrađuju preglednik u kiosk, preview ploče ili read-only kontekste mogu onemogućiti navigacijske geste bez izvedenog razreda: AllowUserPageChange upravlja novim tipkama PgUp / PgDn / Ctrl+Home / Ctrl+End; ChangePageOnMouseScrolling upravlja novim wheel-up / wheel-down skokovima stranice; AllowUserTextSelection rezerviran je za buduću putanju odabira teksta mišem. Sva tri zadana su na True tako da postojeće aplikacije nadograde bez promjene ponašanja
- Pomicanje stranice kotačićem miša preskače Ctrl+wheel tako da aplikacije mogu zadržati Ctrl+wheel za zumiranje
- Prošireni su regresijski testovi za Delphi i Lazarus na 118 slučajeva svaki, a C++Builder skup na 101 slučaj, pokrivajući zadane vrijednosti i round-trip prekidača
Version 1.16.2
- Prošireno je regresijsko pokrivanje TPdfView za klikove na anotacijske poveznice kada se stranica preglednika razlikuje od pridružene TPdf stranice, koristeći stvarnu headless putanju klika mišem kroz Delphi, Lazarus i C++Builder
- Delphi i Lazarus skupovi sada pokreću 114 slučajeva svaki, a C++Builder sada pokreće 99 slučajeva
Version 1.16.1
- Ispravljeno je rukovanje klikom na poveznicu u TPdfView tako da automatske radnje anotacija i web poveznica koriste stranicu trenutačno prikazanu u pregledniku, čak i kada je pridruženi komponent TPdf parkiran na drugoj stranici
- Ojačan je TPdfThumbnailView protiv visećih referenci Pdf kada je povezani komponent TPdf uništen
- Dodano je regresijsko pokrivanje životnog vijeka reference minijatura; Delphi i Lazarus skupovi sada pokreću 113 slučajeva svaki, a C++Builder sada pokreće 98 slučajeva
- Sinkronizirani su README, test dokumentacija, sadržaj HTML Help pretrage / indeksa i generirani izlazi C++ paketa s integracijskim ažuriranjima v1.7.0 do v1.16.0
Version 1.16.0
- Dodan je novi Delphi PrintDialog demo (Demo/Delphi/PrintDialog) koji se fokusira na N-up ispis (1 / 2 / 4 / 9 stranica po listu) uz filtriranje neparnih / parnih stranica, prikaz u sivim tonovima i opcionalne obrube ćelija od 1 piksela. Namjerno je mali pratilac postojećem PrintPDF demo programu, koji već pokriva pregled, nedavne datoteke, zumiranje i skaliranje
Version 1.15.0
- Dodan je novi komponent TPdfThumbnailView (FPdfThumbnail unit) koji prikazuje minijaturu jedne stranice po retku u bočnoj ploči s pomicanjem, isticanjem pri prelasku i odabiru te navigacijom klikom za odlazak na stranicu. Osmišljen je da stoji uz TPdfView tako da krajnji korisnici mogu pregledavati dugi dokument po stranicama
- Komponenta je registrirana na losLab kartici palete uz TPdf i TPdfView; ključna svojstva: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor i događaj OnPageClick
- Prošireni su regresijski testovi za Delphi i Lazarus na 112 slučajeva svaki, a C++Builder skup na 97 slučajeva, pokrivajući zadane vrijednosti, round-trip veličine minijature, ograničavanje ekstremnih vrijednosti, round-trip boje i dodjelu rukovatelja događaja
Version 1.14.0
- Dodan je novi Delphi BatchExport demo (Demo/Delphi/BatchExport) koji pokazuje kako pretvoriti mnogo PDF datoteka u JPG u jednom prolazu koristeći TPdf.LoadCustomDocument za streaming učitavanje, IPdfCancellationToken za kooperativno otkazivanje i ukupne trake napretka po datoteci i po stranici. Demo koristi jednu TPdf instancu po datoteci (sam PDFium nije thread-safe) i otvara izlaznu mapu u Exploreru kada izdvajanje uspješno završi
Version 1.13.0
- Dodan je sloj UI preklopa za asinkrono renderiranje u TPdfView kroz tri nova svojstva: AsyncRendering, LoadingText i LoadingColor. Kada je AsyncRendering True, putanja crtanja jedne stranice prikazuje mali pokazatelj "Loading..." preko prikazane stranice tako da aplikacije koje koriste vlastitu radnu nit za duga renderiranja dijele dosljedan vizualni znak
- Zadane vrijednosti zadržavaju postojeće ponašanje: AsyncRendering je False, pa aplikacije koje ga ne uključe ne vide vizualnu promjenu
- Dokumentacija pojašnjava da sam PDFium nije thread safe - stvarno prebacivanje renderiranja na radnu nit zahtijeva da pozivatelj drži jedan TPdf po radnoj niti; nadolazeći batch-export demo prikazuje taj obrazac
- Prošireni su regresijski testovi za Delphi i Lazarus na 106 slučajeva svaki, a C++Builder skup na 93 slučaja, pokrivajući zadane vrijednosti i round-trip s tri svojstva
Version 1.12.0
- Dodan je rukovanje poveznicama pokrenuto klikom u TPdfView. Novo svojstvo LinkOptions upravlja automatskim ponašanjem za četiri vrste PDF link akcija: goto (skok na stranicu), URI (ShellExecute), launch (ShellExecute) i ugrađeni GotoR (rezervirano). Zadane vrijednosti omogućuju loAutoGoto i loAutoOpenURI; loAutoLaunch i loAutoEmbeddedGoto ostaju isključene tako da slučajni klik ne može pokrenuti proizvoljni program
- Dani su događaji OnAnnotationLinkClick i OnWebLinkClick koji se okidaju prije bilo koje automatske radnje i dopuštaju aplikacijama da pregledaju poveznicu, označe je kao Handled ili je preusmjere (na primjer, na sigurnosni upit)
- Detekcija klika na poveznicu radi samo kada je gesta klik, a ne povlačenje, koristeći svježi MouseDown anchor tako da geste panninga i dalje prolaze kroz postojeću putanju pomicanja nepromijenjene
- Prošireni su regresijski testovi za Delphi i Lazarus na 102 slučaja svaki, a C++Builder skup na 91 slučaj, pokrivajući zadane LinkOptions, round-trip skupa i dodjelu rukovatelja događaja
Version 1.11.0
- Dodan je vizualni poliranje za TPdfView: svojstva PageShadowSize, PageShadowColor i PageBorderColor crtaju opcionalnu sjenu ispod pravokutnika stranice i obrub od jednog piksela oko njega. Zadane vrijednosti čuvaju prethodni ravni izgled (PageShadowSize = 0; obrub se crta u zadanoj clBlack boji, ali se stapa sa zadanim bijelim pozadinskim slojem dok pozivatelji ne promijene boje)
- Dodan je svojstvo SmoothScroll kao opcionalna zastavica za buduću inkrementalnu animaciju pomicanja; svojstvo se danas round-tripira i povezano je tako da aplikacije mogu spremiti postavku, dok renderirajuća strana i dalje koristi postojeće trenutno ponašanje pomicanja
- Prošireni su regresijski testovi za Delphi i Lazarus na 98 slučajeva svaki, a C++Builder skup na 89 slučajeva, pokrivajući zadane vrijednosti, round-trip svojstava i negativni clamp veličine sjene
Version 1.10.0
- Dodan je izravni unos slike kroz nove preopterećene inačice TPdf.AddImage i TPdfView.AddImage koje uzimaju ili putanju datoteke ili TBitmap, uz postojeći AddPicture temeljen na TPicture. AddImage(FileName) prepoznaje bilo koji format registriran s VCL ili LCL grafičkim jedinicama (BMP, PNG preko jedinice PngImage, JPG itd.) i prolazi kroz isti cjevovod kao AddPicture, pa je ponašanje identično
- AddImage(TBitmap) preskače međukorak TPicture, što pojednostavljuje pozivatelje koji već drže TBitmap iz renderiranja ili skupnog generiranja
- Prošireni su regresijski testovi za Delphi i Lazarus na 92 slučaja svaki, a C++Builder skup na 84 slučaja, pokrivajući umetanje bitmapa, granice page-objecta, odbacivanje nil bitmapa i učitavanje BMP datoteka
Version 1.9.0
- Dodan je podržan rad s transformacijskim matricama više razine kroz novu klasu TPdfMatrix u jedinici FPdfMatrix. TPdfMatrix omata PDFiumov FS_MATRIX OO API-jem za Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew i Multiply, prikladnim za sastavljanje transformacija prije nego što se predaju u FPDFPageObj_SetMatrix i slične PDFium API-je
- TPdfMatrix.Multiply ispravno snima šest elemenata matrice prije izračuna novih vrijednosti redaka, popravljajući latentni problem u kojem alternativne Pascal implementacije prepisuju ranije elemente tijekom istog poziva i proizvode netočne rezultate za bilo koju kompoziciju osim čiste translacije
- Prošireni su regresijski testovi za Delphi i Lazarus na 88 slučajeva svaki, a C++Builder skup na 81 slučaj, pokrivajući identitet, reset, translaciju / skaliranje / flip, redoslijed post-multiplikativnog sastavljanja i slučaj regresije za Multiply
Version 1.8.0
- Dodan je učitavanje streama po potrebi kroz novu metodu TPdf.LoadCustomDocument(AStream, AOwnsStream) i pomoćnu klasu TPdfStreamAdapter, potpomognute PDFiumovim FPDF_LoadCustomDocument. PDFium sada čita blokove iz ponuđenog TStream-a samo kada je potrebno, pa vrlo veliki ili udaljeni PDF-ovi više ne zahtijevaju unaprijed kopiju u memoriji
- Dodan je opcionalni posjed nad streamom: prosljeđivanje AOwnsStream = True predaje životni vijek TStream-a TPdf-u, koji ga oslobađa kada se pokrene UnloadDocument
- Prošireni su regresijski testovi za Delphi i Lazarus na 79 slučajeva svaki, a C++Builder skup na 75 slučajeva, pokrivajući streaming učitavanje preko TFileStream, čišćenje posjedovanog streama i ugovor da vanjski posjedovani stream preživi Unload
Version 1.7.0
- Dodan je kooperativni async cancellation primitives u novoj jedinici FPdfAsync, izlažući IPdfCancellationToken / IPdfCancellationTokenSource i ponovno upotrebljivi singleton PdfNoCancellationToken tako da dugi renderi i izvozni tijekovi mogu podržati čistu semantiku otkazivanja iz UI-ja
- Dodan je lagani pomoćnik TPdfFuture<T> koji pokreće radnu nit u pozadini i vraća omotnicu TPdfFutureResult<T> na glavnu nit, razlikujući uspjeh, otkazivanje i neuspjeh
- Prošireni su regresijski testovi za Delphi i Lazarus na 76 slučajeva svaki, a C++Builder skup na 73 slučaja, sa zajedničkim pokrivanjem stanja otkazivanja, idempotentnog otkazivanja, raspršivanja poziva i registracije nakon otkazivanja
Version 1.6.10
- Dodan je visokorazinski pristup TPdf.PrintPageRanges PDF postavci za raspon stranica ispisa, vraćajući raspon stranica s brojanjem od 1 za aplikacijski kod
- Dodani su TPdf.SetFormFieldFlags / SetFormFieldFlagsAt i odgovarajući pomoćnici TPdfView tako da aplikacije mogu ažurirati zastavice polja AcroForma kroz javni API, uključujući pokrivenost zastavica za lozinku i višestruki odabir
- Ojačano je ABI pokrivanje veze prema PDFiumu za Windows-sized FPDF_DWORD, povratne pozive FPDF_FILEACCESS i polja V8 embedder slota
Version 1.6.9
- Dodan je niskorazinski Skia renderirajući binding za novo izvezene API-je FPDF_RenderPageSkia i FPDF_FFLDrawSkia u isporučenim standardnim i V8 PDFium DLL-ovima
- Proširene su provjere javnog pokrivanja bindinga tako da učitavanje standardnih i V8 DLL-ova sada provjerava Skia render ulazne točke uz postojeće V8/XFA capability probe
Version 1.6.8
- Dodan je TPdf.SetTextPositions i TPdfSingleArray za postavljanje položaja po znaku na postojećim tekstualnim objektima kroz novo izvezeni API FPDFText_SetPositions
- FPDFText_SetPositions je promaknut u obavezni binding za trenutačne isporučene PDFium DLL-ove, dok je potvrđeno da Skia render ulazne točke i dalje nisu dostupne jer ih DLL-ovi još uvijek ne izvoze
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 65 slučajeva svaki s pokrivanjem položaja teksta
Version 1.6.7
- Dodan je visokorazinski pristup dokumentnim JavaScript akcijama u stablu naziva kroz TPdf, vraćajući nazive akcija i skripte kroz JavaScriptAction i JavaScriptActions
- Dodan je TPdf.FileIdentifier za čitanje trajnih i promjenjivih trailer ID-ova kao binarnog TBytes bez završnog bajta PDFiuma
- Dodan je TPdf.PageBox, GetPageBox i SetPageBox za MediaBox, CropBox, BleedBox, TrimBox i ArtBox na trenutačnoj stranici
- Potvrđeno je da trenutačni isporučeni PDFium DLL-ovi ostavljaju samo Skia render ulazne točke nedostupne u runtimeu jer ti exporti nisu prisutni
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 64 slučaja svaki s pokrivanjem dokumentnog JavaScripta, trailer ID-a i page-boxa
Version 1.6.6
- Dodan je runtime support za isporučeni V8-enabled PDFium DLL. Postavljanje EnableV8Engine prije učitavanja sada odabire pdfium.v8.dll iz stabla DLLs\Win32 ili DLLs\Win64 i izlaže samo V8/XFA bindinge kada učitani DLL to podržava
- Dodani su V8FeaturesAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags i niskorazinski opcionalni bindingi za FPDF_BStr_*, FPDF_GetRecommendedV8Flags i FPDF_GetArrayBufferAllocatorSharedInstance
- FPDFText_SetPositions je postavljen kao opcionalan tako da PDFium Delphi Component i dalje učitava s PDFium DLL-ovima koji ne izvoze taj eksperimentalni setter položaja teksta
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 61 slučaj svaki s pokrivanjem mogućnosti standardnog DLL-a i V8 DLL-a