Poznámky k vydaniu PDFium Delphi Component
História verzií pre funkcie viditeľné pre používateľa PDFium Delphi Component, opravy, vylepšenia vieweru, generovanie dokumentov, výstup PDF/A, vykresľovanie a aktualizácie dokumentácie
Posledné vydanie
- Najnovšia verzia: 3.117.0; Dátum vydania:
Version 3.117.0
Pridané (Added)
- Detekcia tabuliek číta okraje a tieňovanie nakreslené ako vyplnené obdĺžniky: vyplnený box nie hrubší ako nový
MaxRulingThicknesssa stane linkou, väčší vyplnený box prispieva svojimi hranami, takže tabuľky exportované z Wordu, Google Docs a prehliadačov sa teraz nájdu ako tabuľky vyznačené linkami so zlučenými riadkami titulkov namiesto úlomkov bieleho priestoru.DetectFilledRulingstoto správanie vypína - Súradnice linkov sa pred skladaním mriežok prichytia v rámci
RulingSnapTolerance, čím sa kusy okrajov po bunkách, dvojité okraje a tienené bunky oddelené malou medzerou spoja do jednej tabuľky - Linky vnútri form XObjects sa na detekcii podieľajú prostredníctvom kombinovaných objektových matíc, riadi to
IncludeFormXObjects ExtractDocumentTablesspája do reťazca fragmenty pokračovaní, ktoré končia tam, kde končí obsah strany, a začínajú tam, kde začína obsah ďalšej strany, nielen fragmenty dotýkajúce sa okrajov strany, a jediný riadok pretekajúci cez hranicu ponecháva súčasťou reťazca- TableExtractionLab vystavuje
DetectFilledRulingsna paneli možností vo variantoch Delphi, Lazarus a C++Builder
Zmenené (Changed)
- Detekcia podľa bielych znakov ignoruje slová, ktoré už patria tabuľke vyznačenej linkami, a vyžaduje, aby každá hranica stĺpca bola beztextovým koridorom cez riadky, ktoré oddeľuje, takže zarovnané odseky a odrážkové zoznamy sa už nehlásia ako tabuľky
- Kandidát na pokračovanie, ktorého prvý riadok je jedna bunka cez celú šírku, sa považuje za novú tabuľku s titulkom, nie za pokračovanie predchádzajúcej
MinRowsprijíma 1 pre tabuľky vyznačené linkami; detekcia podľa bielych znakov si ponecháva minimálne dva riadky a predvolený rozpočetMaxRulingSegmentsrastie na 16384, lebo boxy okrajov po bunkách prichádzajú vo výrazne väčších počtoch než vykreslené linky mriežky- Text buniek sa skladá riadok po riadku z prekrývajúcich sa boxov slov, takže slová, ktorých boxy glyfov majú rôznu výšku, si zachovávajú poradie zľava doprava
TPdf.AboutInfo, metadáta balíka Lazarus a metadáty verzie inštalátora hlásia 3.117.0
Version 3.116.4
Pridané (Added)
- TableExtractionLab získava dávkové spracovanie priečinkov:
Batch folderspúšťaExtractDocumentTablesnad každým PDF vo vybranom priečinku, vypisuje počty tabuliek podľa dokumentov, dokumenty bez textovej vrstvy označuje pre OCR a zabezpečuje, aby poškodené alebo zamknuté súbory nepretrhli celý beh Export all CSVzapisuje každú zistenú tabuľku ako<document>-<n>-page<p>-t<i>.csvpri dávkových behoch do podpriečinkatables, pri jednom súbore vedľa načítaného dokumentu- Volič detekčných presetov vystavuje doladené
TPdfTableExtractionOptions: Default, Compact columns (MinColumnGap4 sAlignmentTolerance5 pre stlačené exporty z textových procesorov) a Compact + wide rows (MaxRowGapFactor6 pre riadkovanie 1.5-2x) - Dokumenty, ktoré pri presete Default nevydajú žiadnu tabuľku, sa pri extrakcii jedného dokumenta aj pri dávkovej extrakcii raz skúšajú znova s Compact columns a riadky dávkového behu hlásia, ktorý preset výsledok priniesol
Opravené (Fixed)
- Dávková extrakcia otvára každý dokument vo vlastnej inštancii
TPdfnamiesto opätovného načítania jednej zdieľanej komponenty, čím odstraňuje tiché zlyhania načítania, ktoré sa prejavovali ako chyby neaktívnej komponenty v polovici behu priečinka
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáty verzie inštalátora hlásia 3.116.4
Version 3.116.3
Zmenené (Changed)
- Ukážka TableExtractionLab vo všetkých troch toolchainoch teraz zapisuje vygenerovaný vzorový dokument do súboru
TableExtractionSample.pdfvedľa spustiteľného súboru dema namiesto toho, aby zostával len v pamäti; ak priečinok nie je zapisovateľný, laboratórium sa vráti k predchádzajúcemu správaniu len v pamäti a nahlási to v stavovom riadku TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora hlásia 3.116.3
Version 3.116.2
Opravené (Fixed)
- Knižnica sa na starších vydaniach Delphi prestala kompilovať. 64-bitový tick helper a XML kodeky pre trusted listy a produkciu volali
GetTickCount64aCP_UTF8z RTL jednotiek, ktoré ich obsahujú až novšie kompilátory, writer pre reflow HTML vložil CSS reťazcový literál presahujúci limit 255 prvkov, ktorý tieto kompilátory kladú na jeden literál, a zlučovanie XFA datasetov priraďovalo medziTBytesa obyčajným dynamickým poľom, čo kompilátory staršie než XE7 odmietajú. Staršie kompilátory teraz viažuGetTickCount64z kernel32 a keď ho RTL nemá, deklarujúCP_UTF8lokálne, style sheet sa dodáva ako zreťazené krátke literály a payload paketu sa kopíruje po prvkoch
Zmenené (Changed)
TPdf.AboutInfo, metadáta Lazarus balíka a inštalačné metadáty uvádzajú 3.116.2
Version 3.116.1
Pridané (Added)
Demo\Delphi\TableExtractionLab,Demo\CBuilder\TableExtractionLabaDemo\Lazarus\TableExtractionLabspájajú detekciu tabuliek do jediného workflow. Lab zostaví vzorový dokument s tabuľkou vyznačenou linkami so zlučovanými bunkami hlavičky, s tabuľkou zarovnanou bielymi znakmi bez linkovania a s dlhou tabuľkou, ktorá sa láme cez hranicu strany, potom spustíExtractTablesaleboExtractDocumentTablesa vypíše riadky, stĺpce, rozsahy (spans), príznaky hlavičiek, režim detekcie, confidence a skupiny pokračovaní- Lab exportuje vybranú tabuľku cez
TPdfTable.ToCsvaTPdfTable.ToJson, upravujeDetectRuledTables,DetectWhitespaceTables,DetectContinuationsaMinConfidencez panela možností a kopíruje celú správu do schránky TPdf.AboutInfo, metadáta Lazarus balíka a metadáty verzie inštalátora uvádzajú 3.116.1
Version 3.114.21
Opravené (Fixed)
- Validácia PDF/A hlásila externý odkaz na súbor pri každom dokumente, ktorý obsahoval anotáciu. ISO 19005-1 §6.1.7 zakazuje
/F,/FFiltera/FDecodeParmsv slovníku stream objektu, ale kontrola tieto názvy hľadala v celom súbore, pričom/Fje zároveň kľúč príznakov anotácie, ktorý §6.5.3 vyžaduje na každej anotácii. Kontrola sa teraz pozerá len do slovníkov stream objektov
Version 3.114.20
Opravené (Fixed)
- Podpisy RSASSA-PSS niesli na všetkých troch podpisových backendoch poškodené algoritmické parametre. RFC 4055 taguje všetky štyri polia RSASSA-PSS-params; dĺžka saltu sa zapisovala ako holý integer, ktorý parser číta ako začiatok iného poľa, a záverečné pole sa vypisovalo napriek tomu, že jeho hodnota sa rovná defaultu, ktorý DER vyžaduje vynechať. Verifikátor buď nedokázal parametre načítať, alebo spadol na predvolený 20-bajtový salt, kým podpis používal 32, takže podpisy PSS sa odmietali. Podpisy PKCS#1 v1.5 a ECDSA ostali nedotknuté
Version 3.114.19
Opravené (Fixed)
- Vyžiadanie si časovej pečiatky s iným digestom než SHA-256 zostavilo požiadavku, ktorá deklarovala daný algoritmus, ale niesla digest SHA-256; autorita časových pečiatok ju buď odmietne, alebo – horšie – opečiatkuje tak, ako prišla. Počíta sa výhradne SHA-256, takže akýkoľvek iný identifikátor sa teraz odmietne rovno; prázdny identifikátor stále vyberá predvolené SHA-256. Ukážka PDF Viewer pre Lazarus a C++Builder navyše viazala handler na rozbalenie záložiek, ktorý jej súbor formulára menuje, ale jej kód nedefinuje, čo zlyhá pri načítaní formulára; handler je portovaný z ukážky pre Delphi
Version 3.114.18
Opravené (Fixed)
- Ukážky XFA Lab a XFDF Lab pre Delphi a ukážka XFA Lab pre Lazarus zlyhali už pri štarte. Každá si stavia ovládacie prvky v create handleri svojho formulára, ale resource formulára nebol prítomný ani linkovaný, takže vytvorenie hlavného formulára vyhodilo chybu resource-not-found a handler sa nikdy nespustil. Všetky tri teraz nesú súbor formulára aj direktívu, ktorá ho vkladá
Version 3.114.17
Opravené (Fixed)
- Pri operácii, ktorá zlyhala na polceste, sa zle nakládalo s dvomi natívnymi zdrojmi. Neúspešný render miniatúry uvoľnil cieľovú bitmapu ešte pred zatvorením natívneho renderu, a keď render kreslil priamo do pixelov samej bitmapy, čistenie potom čítalo pamäť, ktorá už bola uvoľnená. Neúspešná alokácia bitmapy v
AddBitmapnechala práve vytvorený objekt obrázka bez vlastníka a bez akejkoľvek cesty, ako sa k nemu vrátiť
Version 3.114.16
Opravené (Fixed)
- Čítanie textu z FDF vydávalo nad
0x7Enesprávne znaky. Tabuľka PDFDocEncoding v prílohe D.2 ISO 32000-1 začína na0x80odrážkou (bullet), ale mapovanie ju začínalo na0x7F, takže celý blok po0x9Fbol posunutý o jedno miesto: dýka sa čítala ako odrážka, em dash ako trojbodka a tak ďalej až po zcaron, ktoré z konca vypadlo úplne. Chýbalo aj Euro na0xA0, ktoré sa vracalo ako pevná medzera. Názvy polí a hodnoty v importovanom FDF sa teraz dekódujú správne
Version 3.114.15
Opravené (Fixed)
- Overovanie dôvery pri dokumente, ktorého trailer alebo katalóg sa nedá načítať, zapisovalo za koniec poľa. Compliance pass v takom prípade skončí bez zaznamenania jediného podpisu, zatiaľ čo collector bežiaci hneď po ňom pracuje priamo nad byte streamom a podpisové slovníky ešte stále dokáže nájsť, takže na každý nájdený slovník pripadol jeden zápis do poľa, ktoré nedržalo žiadny. Počet sa teraz obmedzí na maximum, ktorý compliance pass reálne vyprodukoval
Version 3.114.14
Opravené (Fixed)
- Vykonávanie opravného plánu PDF/A aplikovalo aj kroky, ktoré plánovač zablokoval. Krok je zablokovaný, keď dokument nesie podpisy, keď by krok tieto podpisy zneplatnil a keď volajúci to nepovolil; executor testoval len bezpečnostnú úroveň kroku, ktorá túto podmienku nevyjadruje, takže podpísaný dokument mohol prísť o podpisy automatickou opravou, ktorú plán už odmietol. Zablokované kroky sa teraz preskočia a počítajú sa ako preskočené
Version 3.114.13
Opravené (Fixed)
- Pridanie podpisovej časovej pečiatky k hodnote CMS s množinou certifikátov väčšou než 127 bajtov – čo je každý reálny certifikát – poškodilo výsledok. Helper, ktorý hľadá začiatok vnorenej štruktúry, prešiel dozadu cez dĺžkové oktety a vymenil posledný za prvý, takže úsek, ktorý vystrihol, začínal dobre pred štruktúrou, o ktorú ho požiadali. Dĺžka hlavičky sa teraz odvádza z dĺžky obsahu, čo DER stanovuje jednoznačne. Sebakontroly to nezachytili, lebo ich testovacie certifikáty boli natoľko malé, že im stačila krátka forma
Version 3.114.12
Opravené (Fixed)
- Podpísané atribúty sa emitovali v poradí, v akom vznikli, namiesto zoradenia podľa ich kódovaní, čo X.690 §11.6 od DER SET OF vyžaduje. Verifikátor, ktorý množinu atribútov pred hašovaním znovu zakóduje – takto robí aj OpenSSL, aj BouncyCastle –, preto spočítal iný digest a vyhlásil korektný podpis PAdES za neplatný. Podpisy, ktoré táto knižnica produkuje, sa v týchto stackoch teraz verifikujú; validácia cez windowsovú vrstvu ostala nedotknutá, pretože hašuje bajty presne tak, ako prišli
Version 3.114.11
Opravené (Fixed)
- Záporný DER INTEGER širší než dva obsahové bajty sa kódoval so zlou hodnotou. Writer simuluje aritmetický posun opätovným vpustením znamienka po logickom posune, ale maska, ktorú používal, nastavila každý bit nad nízkym bajtom namiesto iba bajtu, ktorý posun uvoľnil, takže magnitúda, ktorú ešte držali zostávajúce bajty, sa prepísala. Hodnota -100000 sa napríklad zakódovala ako -34464. Nonce v požiadavkách na časovú pečiatku aj každý ďalší signed integer tejto veľkosti sa teraz kódujú správne
Version 3.114.10
Opravené (Fixed)
- Validácia PDF/A nikdy nehlásila konštantnú alpha časť pravidla o transparentnosti v ISO 19005-1 §6.4. Helper si zostavuje hľadaný kľúč pridaním lomky na začiatok a volajúci jednu poslal tiež, takže hľadal
//CAa nič nenašiel. Obidve alpha kontroly navyše prijímali len presné texty1a1.0, čím vyhlásili úplne nepriehľadné/CA 1.00za porušenie; hodnota jedna sa teraz rozpozná bez ohľadu na zápis
Version 3.114.9
Opravené (Fixed)
- URI akcia na úrovni strany vracala rozbitý text. Cesta sa z natívnej vrstvy vracia ako bajty UTF-8 a zapisovala sa rovno do wide stringu, čo z dvojíc bajtov urobí 16-bitové kódové jednotky a zvyšok buffera nechá naplnený tým, čo v pamäti náhodou ležalo.
GetPageActionURIteraz dekóduje bajty rovnakým spôsobom, akým to už robila cesta akcie na úrovni dokumentu
Version 3.114.8
Bezpečnosť (Security)
- Na cieľových platformách iných než Windows prichádzali náhodné bajty za každým šifrovacím kľúčom, saltom a inicializačným vektorom z runtime PRNG, ktorého seed je konštanta, pokiaľ program nezavolá
Randomize. Každý proces tak produkoval rovnaký šifrovací kľúč súboru, rovnaké salt hodnoty/UEa/OE, rovnaké bajty/Permsaj rovnaké nonce AES-GCM, čím sa šifrovaný výstup z Free Pascal buildu na Linuxe alebo macOS stáva triviálne obnoviteľným a GCM nonce sa opakuje pod pevným kľúčom. Bajty teraz pochádzajú z/dev/urandoma nedostupný kernel pool vyhodí výnimku namiesto fallbacku, rovnako ako sa už správal nedostupnýCryptGenRandomna Windowse
Version 3.114.7
Opravené (Fixed)
- Poškodený object stream dokázal priviesť vstupné body kompresie a opravy k čítaniu za koncom dekódovaného buffera. Ofsety členov, ktoré stream deklaruje, sa teraz kontrolujú na rozsah a rastúce poradie hneď po rozparsovaní hlavičky, deklarovaný počet členov väčší, než pojme hlavička, sa odmietne skôr, než sa rezervuje akákoľvek pamäť, a bajtový rozsah každého člena sa validuje pred orezaním jeho koncových bielych znakov, nie po ňom
Version 3.114.6
Opravené (Fixed)
- Externalizácia inline obrázkov vydala nepoužiteľný image XObject. Slovník sa zapisoval s prebytočnou lomkou pred svojím prvým kľúčom, čo otvorilo prázdny názov a posunulo každý kľúč na hodnotu predchádzajúceho kľúča, a tabuľka inline skratiek mapovala Decode na
GnamiestoD, takže pole/Dsa zahodilo a skratka hodnoty DeviceGray sa pokladala za kľúč. Obrázky vyzdvihnuté z content streamu teraz nesú korektný slovník a zachovávajú si svoje pole Decode
Version 3.114.5
Opravené (Fixed)
- HarfBuzz shaper priraďoval dĺžky clusterov nesprávnym glyfom v úsekoch sprava-doľava a glyfom zdieľajúcim jeden cluster, ako sú znamienka alebo komponenty ligatúr, dával dĺžku jedna.
ClusterLengthkaždého glyfu teraz siaha od začiatku jeho clusteru po ďalší cluster v logickom poradí, v ktoromkoľvek smere, takže mapovanie znakov na glyfy pre arabský a hebrejský text sedí s tým, čo hlási backend Uniscribe
Version 3.114.4
Opravené (Fixed)
- Prenos časových pečiatok cez libcurl predával svoje číselné optiony a čítal HTTP stavový kód ako 32-bitové hodnoty, zatiaľ čo libcurl berie a vracia C
long, čo je na Linuxe a macOS 64 bitov. Dotaz na stav mohol prepísať štyri bajty vedľa svojho cieľa na zásobníku a hodnoty optionov záviseli od toho, čo náhodou držala horná polovica registra. Obe miesta teraz pracujú so šírkoulongdanej platformy, takžeFPdfTsaFpcje na cieľoch LP64 v poriadku
Version 3.114.3
Opravené (Fixed)
- Backend PKCS#11 kopíroval surové bajty menovky objektu tokenu rovno do stringu, čo na Delphi usadí bajty UTF-8 na 16-bitové kódové jednotky UTF-16. Certifikát vybraný cez
TPdfPkcs11Options.CertificateLabelsa preto nikdy nemohol zhodovať aEnumerateCertificateshlásil rozbitéLabelText. Menovky sa teraz dekódujú ako UTF-8, ktoré štandard definuje, a PIN odovzdávaný doC_Loginsa kóduje ako UTF-8 namiesto zúženia cez kódovú stránku hostiteľa, takže aj ne-ASCII PIN dorazí na token neporušený
Version 3.114.2
Opravené (Fixed)
- Signer cez macOS Keychain sa pri rozhodovaní, či kľúč prijíma RSASSA-PSS, pýtal
SecKeyIsAlgorithmSupportedna nesprávnu operáciu: dotaz menoval operáciu dešifrovania namiesto podpisovania, takže odpoveď bola vždy nie a každý RSA podpis ticho prešiel na PKCS#1 v1.5. Kľúč, ktorý PSS podporuje, teraz podpisuje cez PSS, ako si želáTPadesSignerOptions.PaddingScheme, a argument operácie sa odovzdáva v šírke, ktorú deklaruje framework
Version 3.114.1
Opravené (Fixed)
- Vnorené páry zátvoriek v texte sprava-doľava sa riešili na nesprávny smer. Pravidlo BD16 z UAX #9 spracováva páry v poradí, v akom sa objavia ich otvárajúce zátvorky, a pár vyriešený cez N0 sa stáva predchádzajúcim silným kontextom pre pár, ktorý sa otvorí po ňom; páry sa namiesto toho spracovávali v poradí, v akom ich dovŕšili zatvárajúce zátvorky, takže vnútorný pár mohol nasledovať po písmene, ktoré obklopuje, namiesto kontextu, ktorý nastolil vonkajší pár. Text ako arabská či hebrejská veta s vloženou zátvorkovou poznámkou obsahujúcou vnorenú zátvorku sa teraz rozloží tak, ako čaká čitateľ
Version 3.114.0
Pridané (Added)
FPdfCryptoSslverifikuje PDF podpisy a tokeny časových pečiatok cez OpenSSL, čím zatvára poslednú platformovú medzeru vo validácii podpisov: Linux predtým nemal žiadny backend na verifikáciu CMS.ConfigureSslCmsVerifierho nainštaluje, libcrypto sa za behu dohľadá podľa mena, takže proti nemu nie je linkovaná žiadna závislosť, a viažu sa obe rady, 1.1 aj 3.x- Podpis aj certifikačný reťazec sa vyhodnocujú v oddelených passoch, takže korektný podpis pod reťazcom, ktorý nevedie k trust anchoru, sa hlási ako platný podpis s neplatnou dôverou, a nie ako rozbitý podpis
ConfigureSslTrustAnchorspridáva DER trust anchory do systémového úložiska aConfigureSslCrlsdodáva CRL zoznamy, ktoré si môže kontrola revokácie pozrieť. Revokácia sa ráta ako skontrolovaná len vtedy, keď je CRL reálne prítomný, pretože si OpenSSL sám žiadny nestiahne; keď nie je dodaný žiadny, výsledok povie unsupported namiesto toho, aby pustil neskontrolovaný reťazecSslAvailable,SslMissingSymbols,SslLibraryPath,SslLibraryVersionaSslAbiLayouthlásia, čo sa naviazalo a čo nie, aConfigureSslLibraryPathnasmeruje backend na konkrétnu knižnicu, keď ju platformové predvoľby nenájdu
Version 3.113.0
Pridané (Added)
TPdfKeychainCmsVerifierverifikuje PDF podpisy a tokeny časových pečiatok na macOS cezCMSDecodera SecTrust, takže validácia podpisov už nie je výhradne záležitosťou Windowsu.ConfigureKeychainCmsVerifierho nainštaluje a tá istá jednotka teraz pokrýva obe polovice podpory macOS, podobne akoFPdfCryptoWinpokrýva Windows- Kontrola revokácie sa dodržiava: keď je vyžiadaná, k základnej X.509 politike sa pridá politika revokácie a vypnutie online sťahovania obmedzí vyhodnotenie na cacheované odpovede. Kontrolné body priebehu sa spúšťajú pre fázy podpisu, reťazca, online sťahovania a revokácie presne tak, ako ich hlási backend na Windows
KeychainVerificationAvailablehlási podporu verifikácie oddelene od podpisovania, pretože obe potrebujú rôzne symboly frameworku a jedna môže byť prítomná bez druhej
Version 3.112.0
Pridané (Added)
FPdfCryptoMacpodpisuje PAdES identitou z macOS Keychainu, náprotivok úložiska certifikátov na Windows: certifikát aj jeho privátny kľúč pochádzajú z Keychainu a podpis vytváraSecKeyCreateSignature, takže kľúč nikdy neopustí systémové úložisko kľúčov.ConfigureKeychainSignerProviderho nainštaluje a popri aplikácii netreba nasadzovať žiadny modul, na rozdiel od backendu s PKCS#11 tokenom- Signer sa riadi certifikátom: kľúč EC podpisuje ECDSA, kľúč RSA podpisuje RSASSA-PSS a tam, kde PSS nie je dostupné – starší macOS, alebo kľúč, ktorý ho neprijíma –, padding prejde na PKCS#1 v1.5 a emitovaný AlgorithmIdentifier to aj deklaruje namiesto nároku na PSS
KeychainMissingSymbolsvypíše každý symbol frameworku, ktorého viazanie zlyhalo, takže nasadenie hlásiace backend ako nedostupný dokáže odlíšiť chýbajúci framework od mena, ktoré tento binding zle zapísal
Version 3.111.0
Pridané (Added)
ConfigurePadesCmsVerifiernainštaluje CMS verifikačný backend, ktorý používa validátor PAdES, takže verifikácia podpisov a časových pečiatok už nie je viazaná na Windows.IPdfCmsVerifierdeklaruje dve operácie, na ktoré backend odpovedá – oddelenú pre PDF podpis a pripojenú pre token časovej pečiatky – aPadesCmsVerificationAvailablehlási, či je prítomný nejaký backend
Zmenené (Changed)
- Verifikačné výsledky a recordy možností sa presunuli do
FPdfCryptoakoTPdfCmsVerify*. MenáTWinCmsVerify*ostávajú ako aliasy, takže existujúci kód funguje ďalej a pripojený backend používa rovnaké typy ako ten na Windows - Správanie na Windows sa nemení: bez nainštalovaného verifikátora stále používa CryptoAPI a kontrolné body priebehu, možnosti revokácie aj natívne chybové kódy zostávajú rovnaké. Tam, kde neodpovedá žiadny backend, každý verdikt hlási unsupported namiesto toho, aby ostal neskontrolovaný
Version 3.110.0
Pridané (Added)
FPdfPkcs11podpisuje PAdES kľúčom, ktorý ostáva vnútri PKCS#11 tokenu.ConfigurePkcs11SignerProviderho nainštaluje ako podpisový backend, modul sa načítava za behu podľa cesty, takže sa nič nelinkuje, a rovnaký kód obsluhuje Windows, Linux aj macOS. Enumerácia tokenov, ktorú deklaruje rozhranieIPdfPkcs11SignerProvider, je implementovaná spolu s ním: sloty, tokeny a certifikáty, ktoré ktorýkoľvek z nich drží- Podpisovanie mimo Windows už v bežnom prípade nepotrebuje provider od hostiteľa: stačí modul tokenu a
TPdfPkcs11Options. RSA PKCS#1 v1.5, RSASSA-PSS aj ECDSA sa všetky vytvárajú cez token FPdfSha1pridáva SHA-1 na jeden jediný účel – nájsť certifikát podľa otlačku, ktorý nesieTPadesSignerOptions. Windows to vyriešil vnútri úložiska certifikátov; token vráti bajty certifikátu a zhodu necháva na volajúcom. Nie je to podpisový digest a stack PAdES naďalej podpisuje všade SHA-256
Zmenené (Changed)
- DER helpery certifikátu, ktoré čítajú OID algoritmu verejného kľúča, vyťahujú vystaviteľa a sériové číslo a prebalia surový ECDSA podpis, sa presunuli z backendu pre Windows do
FPdfCms, kde sa k nim dostane každý podpisový backend
Version 3.109.0
Zmenené (Changed)
- Natívny loader knižnice už nie je len pre Windows.
LibraryNamemá pre daný target predvolenú hodnotupdfium.dll,libpdfium.soalebolibpdfium.dylib, build s V8 sa hľadá pod zodpovedajúcim názvom a načítanie aj viazanie symbolov prechádza na Free Pascale cez prenosný loader. Správanie na Windows ostáva nezmenené, vrátane rozloženia nasadenia Win32 a Win64 a diagnostiky nezhody architektúry - Adresáre nasadenia na ostatných targetoch dodržiavajú zápis
<cpu>-<os>, ktorý už používajú skompilované unity, takžeDLLs/x86_64-linux/libpdfium.soleží vedľaLib/FPC/x86_64-linux. Fallback na systémový adresár ostáva len pre Windows; inde ho pokryje hľadacia cesta loadera
Version 3.108.0
Pridané (Added)
TPdfHarfBuzzTextShapervysádza bidirekčný text a text v komplexných skriptoch na Free Pascal targetoch, ktoré nemajú Uniscribe. Úrovne embeddingu určuje cezFPdfBidi, segmentuje runy podľa skriptu, každý run vysádza pomocou libharfbuzz a radí ich do vizuálneho poradia. Inštaluje sa cezConfigureTextShaper; libharfbuzz sa dohľadá za behu aHarfBuzzAvailableúprimne povie, keď chýba- Shaper si fonty neenumeruje. Uniscribe číta binárne dáta fontu z device contextu, na čo prenosný ekvivalent neexistuje, takže hostiteľská aplikácia predá
TPdfFontDataResolver, ktorý mapuje názov fontu na bajty súboru fontu, a táto politika tak ostáva tam, kam patrí
Version 3.107.0
Pridané (Added)
FPdfBidiimplementuje Unicode Bidirectional Algorithm (UAX #9) v čistom Pascale:PdfResolveBidiLevelsvracia jednu embedding úroveň pre každý UTF-16 code unit,PdfBidiVisualOrderaplikuje preusporiadanie L2 aPdfBidiClassOfsprístupňuje Bidi_Class kódového bodu. Pokryté sú pravidlá P2-P3, X1-X10, W1-W7, N0-N2, I1-I2 a L1-L2, vrátane isolate initiatorov a zátvorkových párov BD16- Unit je neutrálny voči kompilátoru aj platforme, a práve vďaka tomu možno vysádzať bidirekčný text aj tam, kde Uniscribe nie je k dispozícii. Shaping engine rieši glyfy pre run, ktorého smer už je známy, takže práve tento kus musí smer rozhodnúť ako prvý
Version 3.106.0
Pridané (Added)
ConfigureTextShapernainštaluje text shaping backend, cez ktorý prechádza celá knižnica, a to spolu sActiveTextShaper,ActiveTextShaperNameaClearTextShaper.ShapePdfTextajTPdf.AddShapedTextteraz idú cez nainštalovaný shaper namiesto priameho vytvárania Uniscribe, takže hostiteľská aplikácia môže dodať vlastný engine a test zase deterministický
Zmenené (Changed)
FPdfTextShapingsa kompiluje aj na targetoch mimo Windows: Uniscribe backend je teraz platformová predvoľba, nie jediná implementácia, a je obmedzený na Windows build. Tam, kde nie je k dispozícii žiadny backend, shaping entry pointy to nahlásia namiesto zlyhania pri kompilácii
Version 3.105.1
Bezpečnosť (Security)
- Odpoveď timestampu je teraz na oboch transportoch obmedzená na 4 MB. TSA, ktorá neprestávala posielať, mohla predtým nechať prijímací buffer rásť bez limitu, takže sa z podpisového volania stával neobmedzený nárast pamäti
Version 3.105.0
Pridané (Added)
- RFC 3161 timestamping funguje aj na Free Pascal targetoch mimo Windows: nový libcurl backend odosiela TimeStampReq a číta TimeStampResp, takže
PadesTsaAvailablehlási True a PAdES B-T, B-LT a B-LTA si tam dokážu vyžiadať tokeny. libcurl sa dohľadáva za behu a nie je to závislosť v čase buildu; keď chýba, backend hlási nedostupnosť úplne rovnako ako variant s WinHttp. Windows naďalej používa WinHttp a nedotkne sa ho nič - Podpisovanie na týchto targetoch stále potrebuje kľúčový materiál, ktorý knižnica nevlastní: dodajte ho cez
ConfigurePadesSignerProvidersIPadesSignerProvider(prípadneIPdfPkcs11SignerProviderpre kľúče uložené v tokene), keďžeFPdfCryptoWinje len pre Windows
Version 3.104.1
Pridané (Added)
- Ukážka XFA inspection lab je teraz dostupná aj pre Lazarus, takže sondy schopností XFA, výpis paketov, ich export aj fallback
OnXfaRuntimeMissingmožno vyskúšať z LCL buildu
Version 3.104.0
Zmenené (Changed)
- Knižnica sa na Free Pascali 3.2 kompiluje čisto, bez zbytočných diagnostík: interné časovanie číta milisekundový tick z
GetTickCount64namiesto zavrhnutej 32-bitovej funkcie, zavrhnuté accessor-y SSE control word nahradiliGetMXCSRaSetMXCSR, základ offsetu fingerprintu obsahu je explicitne typovaný, takže už nespadne na compile-time range check, a adresy scanline sa pri kontrole bitmapy na top-down usporiadanie porovnávajú ako unsigned pointre
Version 3.103.1
Opravené (Fixed)
- Metadáta dokumentu prenášané do XMP si na Free Pascale ponechajú non-ASCII znaky: názvy, autori, predmety, kľúčové slová a mená tvorcu, ktoré sa dostávajú do
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRaSaveAsPdfVT, sa teraz konvertujú cez kódovú stránku stringu namiesto kopírovania bajt po bajte, takže paket metadát zostáva platným UTF-8, ako vyžaduje ISO 19005-1 6.7.2, aj keď hostiteľský program nebeží na UTF-8 kódovej stránke - Export XFDF, round-tripy produkčných metadát a parsovanie XML trusted listov idú cez rovnakú konverziu so správnou kódovou stránkou, takže text cestujúci medzi
TBytesastringuž nezávisí od kódovej stránky hostiteľa
Version 3.103.0
Pridané (Added)
TPdfEuropeanTrustedListparsuje autentizované európske trusted listy, znova načíta checksumované cache cez rovnaký autentizátor, prijme aktualizačné zdroje od volajúceho, sprístupní aktuálne trust anchors a vyhodnotí kvalifikované signature services v požadovanom čase validácieTPadesTrustValidationOptions.QualifiedTrustEvaluatoraplikuje offline politiku qualified trust na každého validovaného podpisovateľa, a to bez toho, aby PAdES validátor dostal prístup do siete
Version 3.102.0
Pridané (Added)
BeginIncrementalSaveaCommitIncrementalSaveteraz pripájajú autentizované revízie k dokumentom šifrovaným AES-256 a pritom zachovajú pôvodnú referenciu/Encrypt, bezpečnostné parametre, presné generácie objektov aj všetky predchádzajúce bajty
Zmenené (Changed)
- Overload commitu do súboru teraz vykoná durable flush, prísne znovuotvorí vedľajší súbor v tom istom adresári, overí hranicu revízie a atomicky vystrieda cieľ, pričom po každom zlyhaní vráti session späť
Version 3.101.0
Zmenené (Changed)
SaveAsRedactedteraz zachová bezpečné časti textu, obdĺžnikových ciest a osovo zarovnaných obrázkov, ktoré redigovanú oblasť pretínajú len čiastočne, a potom odstráni názvy resources, na ktoré už neodkazuje stránka, Form XObject, pattern, appearance ani vnorené resource scopy
Version 3.100.0
Zmenené (Changed)
OptimizeImagesteraz vyberá resampling box, bilinear, bicubic, Lanczos alebo bilevel podľa mierky zmeny, triedy obsahu, nameraného detailu a kvality požadovanej volajúcim, s filtrom rešpektujúcim alfa kanál a s prísnym rozpočtom pracovnej pamäti
Version 3.99.0
Pridané (Added)
GraftPdfAcroFormimportuje hierarchické polia AcroForm, widgety, appearance, calculation order, predvolené resources, akcie a hodnoty cez explicitné mapovania stránok a politiky kolíziíTPdfCrossDocumentGraftMapznova používa importované indirect objekty podľa identity zdroja a pritom zachováva cykly, zdieľané referencie, presné generácie zdroja aj transakčnú semantiku pri zlyhaní
Version 3.98.0
Pridané (Added)
TPdfOutlineEditorvytvára, presúva, maže, štyluje, rozbaľuje a presmerováva položky outline, premietne explicitné destinácie podľa výsledkov page planu a pripojí inkrementálnu revíziu, ktorá sa zvlášť nezávisle overí
Version 3.97.0
Pridané (Added)
TPdfTreeEditorčíta, validuje, aktualizuje, vyvažuje, rozdeľuje, spája, serializuje a inkrementálne ukladá ľubovoľné štruktúry PDF NameTree a NumberTree, pritom zachováva znovu použiteľné indirect referencie a surové hodnoty položiek
Version 3.96.0
Pridané (Added)
TPdfParserResourceBudgetponúka jednu thread-safe politiku na úrovni procesu pre rekurziu, tokeny, objekty, dekódované bajty, pomer expanzie, alokáciu aj deadliny naprieč vlastnými PDF parsermi, s nemennými snapshotmi pre každú operáciu a konfigurovateľnými predvolenými hodnotami
Version 3.95.0
Zmenené (Changed)
ValidatePdfXteraz validuje aktívne slovníky PDF/X, metadáta, output intenty, fonty, zakázané funkcie, transparentnosť, farebné priestory aj page boxy cez ohraničené sparse čítania na nešifrovaných dokumentoch s platným xrefom
Version 3.94.0
Zmenené (Changed)
ValidatePdfRteraz validuje aktívne slovníky PDF/R, stránky, filtre obrázkov, metadáta aj značky v pätičke cez ohraničené sparse čítania a čítania po oknách na nešifrovaných dokumentoch s platným xrefom
Version 3.93.0
Zmenené (Changed)
ValidatePdfEteraz validuje aktívne slovníky PDF/E, metadáta, output intenty, formuláre aj zakázané funkcie cez ohraničené sparse čítania na dokumentoch s platným xrefom
Version 3.92.0
Zmenené (Changed)
ValidatePdfVTteraz vykonáva pokročilú analýzu scope, viditeľnosti, zapuzdrenia a vnoreného použitia Formov pri recurring XObjectoch cez ohraničené sparse čítania na dokumentoch s platným xrefom
Version 3.91.0
Pridané (Added)
TPdfSparseDictionaryReaderdokáže určiť aktívnu generáciu objektu a dekódovať direct stream v rámci bajtového limitu zadaného volajúcim
Zmenené (Changed)
ValidatePdfVTteraz používa ohraničené sparse čítania pri kontrolách metadát PDF/VT, DPartu, OutputIntentu, Info, stránok aj bežných slovníkov na normálnej ceste s platným xrefom
Version 3.90.0
Pridané (Added)
TPdfSparseDictionaryReaderdrží jeden sparse index xrefu a object streamov otvorený pre opakované ohraničené čítania slovníkov indirect objektov
Zmenené (Changed)
InjectPdfVTMarkersteraz validuje a zachová existujúcu hierarchiu DPart v PDF/VT s ohraničeným čítaním zdroja, pričom poškodené hierarchie ďalej prechádzajú cez fallback s ich opätovným vybudovaním
Version 3.89.0
Pridané (Added)
ReadPdfSparsePageDictionariesvracia identity page objektov a ohraničené bajty slovníkov v poradí page tree cez sparse object index
Zmenené (Changed)
InjectPdfVTMarkersteraz syntetizuje hierarchiu DPart pre PDF/VT a pripája marker objekty s ohraničeným čítaním zdroja, keď uložený PDF ešte hierarchiu DPart neobsahuje
Version 3.88.0
Pridané (Added)
ReadPdfSparseCatalogSubDictprečíta direct alebo indirect pod-slovník katalógu cez sparse object index; využíva ho vkladanie markerov PDF/UA preMarkInfoaViewerPreferences
Zmenené (Changed)
InjectPdfUaMarkersteraz vyhľadáMarkInfoaViewerPreferencesv katalógu cez sparse lookup a pripojí revíziu PDF/UA s ohraničeným čítaním zdroja na normálnej ceste xrefu
Version 3.87.0
Pridané (Added)
AppendPdfSparseUpdatezapíše jednu sparse revíziu na uložený PDF: zdrojové bajty ostávajú tak, ako sú, telesá objektov dodané volajúcim idú na zaznamenané offsety a celé to uzavrie jeden inkrementálny blok xref/trailer zreťazený cez/PrevNormalizePageViewRectnormalizuje dva premapované rohy v page space na viditeľný obdĺžnik orezaný na hranice stránky, alebo nahlási, že zo stránky nie je viditeľné nič- Vkladanie markerov PDF/E vytvorí úplne nový Info objekt s
/ISO_PDFEVersion, keď zdrojový dokument nemá Info slovník
Zmenené (Changed)
- Vkladanie markerov PDF/E, PDF/X a PDF/R teraz vyhľadá katalóg, Info aj trailer cez sparse lookup a revízie pripája cez
AppendPdfSparseUpdates ohraničeným čítaním zdroja na normálnej ceste xrefu - Callback
FFI_GetPageViewRectpri vypĺňaní formulárov teraz hlási časť stránky, ktorá je v pripojenomTPdfViewskutočne viditeľná, namiesto trvale celého page boxu; pre headless dokumenty sa vráti k rozmerom stránky TPdf.AboutInfo, metadáta balíka Lazarus aj metadáta inštalátora teraz uvádzajú konzistentne Version 3.87.0
Opravené (Fixed)
- Kontrolné body segmentov ciest, vystavené od doby bindingu
FPDFPath_GetBezierControlPoints, nikdy neboli vyplnené: natívny export odpovedá len pre index koncového bodu každej kubickej krivky s tromi položkami, takže dotaz sa teraz robí raz na krivku a všetky tri položky nesú kontrolné body krivky
Version 3.86.0
Pridané (Added)
ReadPdfSparseRevisionInfosprístupňuje ohraničené informácie o najnovšej revízii, katalógu, šifrovaní, document ID a tagged štruktúre pre streamové postprocesoryComposePdfSparseUpdateIdzachová alebo odvodí identifikátory dokumentu pre inkrementálnu aktualizáciu, a to bez materializácie kompletného zdrojového PDF
Zmenené (Changed)
InjectPdfAMarkersteraz vyhľadá katalóg aj trailer cez sparse lookup, kopíruje veľké vstupy po ohraničených blokoch a pripojí revíziu PDF/A bez alokovania poľa bajtov veľkosti zdroja na normálnej ceste xrefu- Vkladanie markerov PDF/A zachováva klasický alebo xref-stream štýl výstupu, generácie katalógu a Info, identifikátory v traileri, správanie pri odmietnutí šifrovania aj pravidlá downgradeu na Level A
Version 3.85.0
Pridané (Added)
SanitiseActiveContentPdfStreamprijme prune workspace vo vlastníctve volajúceho pre vlastné ohraničené alebo disk-backed úložisko
Zmenené (Changed)
- Sanitácia aktívneho obsahu teraz aktualizuje katalóg aj trailer cez sparse lookup, ohraničené okná parsera a kopírovanie rozsahov v pevnej veľkosti, namiesto toho, aby na normálnej ceste xrefu čítala kompletné PDF do jedného poľa bajtov
TPdf.SaveAsSanitisedaplikujeSaveMemoryLimitaSaveTemporaryDirectoryna svoj prune workspace a nahlási jeho spill diagnostiku
Opravené (Fixed)
StripMetadata=Trueteraz odstráni referenciu/Infoz traileru aj vtedy, keď katalóg nemá položku/Metadata
Version 3.84.0
Zmenené (Changed)
TPdf.PdfVersionteraz znovu používa stav parsera PDFium cezFPDF_GetFileVersionnamiesto opätovného parsovania kompletného zdrojového PDF- Dotazy na verziu čítajú nanajvýš osembajtovú hlavičku PDF, aby znetvorená deklarácia v katalógu nemohla efektívnu verziu znížiť
Version 3.83.0
Zmenené (Changed)
PageLabelledPdfStreamteraz vyhodnocuje a aktualizuje katalóg cez ohraničené prúdové okná a riedky lenivý index objektov- Výstup štítkov stránok kopíruje veľké zdrojové PDF v rozsahoch s pevnou veľkosťou namiesto alokácie kompletného bajtového poľa dokumentu na normálnej ceste xref
Version 3.82.0
Zmenené (Changed)
ApplyDefaultOpenActionteraz číta klasické, xref-stream, hybridné aj object-stream revízie cez riedky lenivý index objektov, vrátane dokumentov s veľmi vysokými číslami objektov- Spracovanie predvolenej akcie otvorenia používa okná s pevnou veľkosťou a ohraničené kopírovanie rozsahov namiesto načítania kompletného PDF do jedného bajtového poľa
Version 3.81.0
Pridané (Added)
PostProcessSavedPdfprijíma tri vyhľadávateľné pracovné priestory vo vlastníctve volajúceho pre vlastné pamäťové stropy a spracovanie podložené diskom
Zmenené (Changed)
TPdf.SaveAsuplatňujeSaveMemoryLimitaSaveTemporaryDirectoryna každý pracovný priestor post-processingu uloženého PDF a ich preliatia zahrnie do diagnostiky- Natívna inkrementálna oprava xref streamov používa koncové a slovníkové okná s pevnou veľkosťou s ohraničeným kopírovaním rozsahov namiesto bajtových polí celého súboru a opakovaných realokácií celého súboru
Version 3.80.0
Pridané (Added)
ReadAttachmentMetadatazachytí názvy príloh, popisy, MIME subtypy, dekódované veľkosti a čitateľnosť v jednom ohraničenom natívnom prechodeExtractAttachmentsToStreamszapisuje dávku do prúdov vo vlastníctve volajúceho s bajtovými limitmi pre jednotlivé súbory aj súhrnnými, nastaviteľnou veľkosťou zápisových blokov, podporou zrušenia a výsledkami pre každú položku
Zmenené (Changed)
- Dávková extrakcia drží v pamäti PDFiumPas nanajvýš jednu dekódovanú prílohu namiesto materializovania každého payloadu v dávke
Version 3.79.0
Pridané (Added)
TPdfCacheGovernor,TPdf.CacheBudgetBytes, dotazy na využitie podľa druhu a telemetria koordinujú uchovávanú pamäť vyrovnávacích pamätí cez jeden vláknovo bezpečný globálny LRU bajtový rozpočetTPdfTileCachea vyrovnávacia pamäť systémových fontov pre celý proces sa môžu pripojiť k governorovi zvolenému volajúcim s presným účtovaním bajtov bitmap a fontov
Zmenené (Changed)
- Analyzované scény stránok, miniatúry, údaje štruktúry, snímky textu a snímky objektov stránok teraz súťažia o predvolený rozpočet 256 MiB
TPdf, pričom zachovávajú svoje existujúce limity počtu položiek - Aktívne scény stránok zostávajú pripnuté, kým sa vykresľovanie nedokončí, a nepriehľadné natívne scény stránok používajú explicitne odhadovanú záťaž, pretože PDFium neposkytuje žiadne konfigurovateľné API pre celkový bajtový objem vyrovnávacej pamäte
Version 3.78.0
Pridané (Added)
TPdfLayoutPagedPlan,TPdfLayoutDocument.BuildPagedPlanaTPdf.GeneratePagedLayoutstreamujú príkazy rozloženia do volajúcim zvoleného vyhľadávateľného úložiska a materializujú vždy len jednu stránku naraz
Zmenené (Changed)
- Veľké generované rozloženia môžu preliať príkazy do dočasného úložiska, držať nastaviteľnú stránkovú vyrovnávaciu pamäť LRU, obnovovať nesusedné segmenty hlavičiek a pätičiek a uvoľňovať zalomený text po každej položke toku
Version 3.77.0
Pridané (Added)
TPdfLayoutTable, riadky, bunky a voľby tabuliek pridávajú tabuľky tiahnuce sa cez viacero stránok s vyriešenými stopami mriežky, popismi, opakovanými hlavičkovými riadkami, deliteľnými riadkami tela, odkazmi a nastaviteľnými orámovaniami
Zmenené (Changed)
- Generované označené tabuľky zachovávajú jednu súvislú štruktúru Table / TR / TH / TD naprieč stránkami, ponechávajú skupiny s rozpätím riadkov nedeliteľné a automaticky spájajú dátové bunky s ID hlavičiek
Version 3.76.0
Pridané (Added)
TPdfLayoutConstraintsaSetLastItemConstraintspridávajú do generovaných rozložení držanie pohromade, viazanie na nasledujúci prvok, fyzické zalomenie stránky pred / za a nastaviteľné riadenie vdov a sirôt
Zmenené (Changed)
BuildPlanznovu používa každý výsledok zalamovania textu na predikciu stránkovania aj emitovanie príkazov, takže viazanie na nasledujúci prvok neopakuje meranie textu
Version 3.75.0
Pridané (Added)
TPdf.InspectPdfUaUnicodeCoveragehlási ohraničené dôkazy na úrovni objektov pre priame Unicode mapovania, náhradyActualText, chyby mapovania, chýbajúce Unicode hodnoty a nevyriešené zdrojové objekty
Zmenené (Changed)
TPdf.ValidatePdfUateraz znovu používa jediný sken znakov v rozsahu objektu, ktorý vylučuje znaky Artifact a generované znaky a bráni, abyActualTextjedného textového objektu zakryl susedný obsah
Version 3.74.0
Zmenené (Changed)
ValidatePdfUaPageContentTaggingaTPdf.ValidatePdfUateraz hlásiapvuaiArtifactInStructureTree, keď si objekt stránky typu Artifact nárokuje MCID zo stromu štruktúry, vrátane artefaktov stránkovania založených na cestách- Skenovanie obsahu stránok PDF/UA teraz končí predčasne až po zistení oboch prípadov — neoznačeného skutočného obsahu aj neplatného uzavretia do Artifact — a zachováva tak pokrytie naprieč stránkami bez opakovania už dokončených kontrol
Version 3.73.0
Pridané (Added)
TPdf.InspectPdfUaLanguageCoveragehlási ohraničené dôkazy z objektov stránok a štruktúrnych reťazcov pre úseky prirodzeného jazyka, vrátane efektívneho jazyka, zdroja deklarácie, MCID, indexu v štruktúre a výňatkov textuResolvePdfUaEffectiveLanguagevyhodnocuje deklarácie jazyka z označeného obsahu, najbližšieho predka v štruktúre a katalógu s explicitnými dôkazmi o platnosti
Zmenené (Changed)
TPdf.ValidatePdfUateraz hlásipvuaiNaturalLanguageUncovered, keď text, ktorý nie je artefaktom, alebo reťazce prístupnosti nemajú platnú efektívnu deklaráciu/Lang
Version 3.72.0
Pridané (Added)
TPdf.InspectPdfAMetadatahlási typované dôkazy ekvivalencie pre jednotlivé polia pre všetkých osem mapovaní ISO 19005-1 z Info do XMP, vrátane explicitných prázdnych hodnôt a zlyhaní parsovania dátumovTPdf.NormalizePdfAMetadatanapráva len nezhodné mapované vlastnosti XMP, pričom zachováva nesúvisiace menné priestory a jazykové alternatívy iné ako predvolené
Zmenené (Changed)
TPdf.ValidatePdfAteraz hlásipvaiInfoXmpValueMismatch, keď sa hodnoty Info dekódované PDFium líšia od správne typovaných hodnôt XMP po porovnaní dátumov zohľadňujúcom Unicode a časové pásmy
Version 3.71.0
Pridané (Added)
InspectPdfVT2sStreamvracia dôkazy o tlačových podmienkach pre každú MIME časť PDF/VT, vrátane identity OutputIntent, pôvodu profilu (vložený alebo prostredníctvom MIME), hashov ICC a údajov z hlavičky a počtov stránok a záznamov DPartFPdfIccProfileposkytuje ohraničenú inšpekciu hlavičky a tabuľky tagov ICC s podporou MD5, SHA-256, farebného priestoru, verzie, triedy zariadenia, ID profilu a viacjazyčného popisu profilu
Zmenené (Changed)
- Validácia PDF/VT-2s teraz vyhodnocuje skoršie ICC MIME prílohy cez URL súborové špecifikácie
DestOutputProfileRefa validujeCheckSum,ICCVersion,ProfileCS,ProfileName, triedu zariadenia a povolené procesné farebné priestory - Všetky časti PDF/VT teraz vyžadujú jeden autoritatívny OutputIntent
GTS_PDFX, vložené alebo externé balenie profilu zodpovedajúce základu PDF/X a rovnakú charakterizovanú tlačovú podmienku, pričom prílohy len pre PDF/X zostávajú mimo porovnaní PDF/VT - Validácia PDF/VT-2 v jednom súbore teraz rozpozná
DestOutputProfileRefako externý cieľový profil namiesto toho, aby ho hlásila ako chýbajúci
Version 3.70.0
Zmenené (Changed)
- Validácia PDF/VT teraz kontroluje
GTS_Scope,GTS_XID,GTS_EnvaGTS_Encapsulatedpriamo na každom XObjecte namiesto pripustenia, aby požiadavky na hinty splnili blízke alebo vnorené slovníky - Rozsah
Recordteraz vyhodnocujeRecordLevelz nepriameho slovníkaDPartRoot, zatiaľ čo rozsahStreamsa v súboroch PDF/VT-1 odmieta - Dekódované obsahové prúdy stránok a Form XObject teraz validujú viditeľnosť zdrojov
Do, počty výskytovSingleUsea príslušnosť k záznamom príjemcov cez efektívne zdedené zdroje a hierarchiu DPart - Encapsulated XObjects teraz validujú booleovský tvar, odporúčaný rozsah, Image
Intent, izolované skupiny priehľadnosti, farebné priestory zmiešavania a priame alebo vnorené závislosti voliteľného obsahu
Version 3.69.0
Zmenené (Changed)
- Validácia PAdES teraz odmieta duplicitné položky
Contents,ByteRange,SubFilter,FilteraTypenamiesto prijatia hodnoty vybranej parserom - Objavovanie podpisov teraz používa lineárny sken slovníkov vnímajúci prúdy objektov, rozpoznáva escaped tokeny PDF mien a nedá sa presmerovať uzavretým vnoreným slovníkom umiestneným pred skutočný
ByteRange - Validácia
ByteRangepodpisu teraz vyžaduje, aby vylúčená medzera presne zodpovedala priamemu hexadecimálnemu tokenuContents, a stále pripúšťa neskoršie inkrementálne revízie - Podpisové slovníky teraz vyžadujú jedinú položku
Filters hodnotou typu name a vynucujú konzistentné kombinácie typu a subfilteraSigaleboDocTimeStamp
Version 3.68.0
Pridané (Added)
TPdf.BuildPadesEvidenceReportspája fakty o podpisoch z PDFium, politiku CMS, stav dôvery a časových pečiatok, hash cesty certifikátov, pokrytie DSS/VRI a rozhodnutia z neskorších revízií pre každý podpisTPadesEvidenceReportexportuje ohraničené dôkazy o viacerých podpisoch ako JSON alebo CSV a hlási telemetriu zdroja, podpisov, DSS, revízií a skrátenia
Zmenené (Changed)
- Validácia dôvery PAdES teraz zaznamenáva SHA-256 identity pre certifikát podpisovateľa a usporiadanú cestu certifikátov Windows, pričom predvolene zostáva zachovaná offline validácia
- Generovanie dôkazov znovu používa jeden uchovaný záznam zdrojových bajtov naprieč analýzou compliance, dôvery, DSS a revízií namiesto kopírovania pôvodného PDF do nového prúdu pre každú fázu
Version 3.67.0
Pridané (Added)
TPadesSignatureFieldOptionsvytvára nastaviteľné názvy podpisových polí, požadované seed hodnoty, zoznamy dôvodov a právnych osvedčení, prijateľné certifikáty podpisovateľa a zámky polí- Miestne aj vzdialené podpisovanie môže vytvárať schvaľovacie alebo certifikujúce podpisy s transformáciami
FieldMDPaDocMDPpodľa ISO 32000-1
Zmenené (Changed)
- Certifikujúce podpisy zachovávajú existujúce oprávnenia katalógu a zároveň registrujú nový podpis cez
/Perms /DocMDP
Version 3.66.0
Pridané (Added)
RenderPageBandedToStreamzapisuje výstup PNG alebo TIFF priamo do prúdu volajúceho s nastaviteľnou výškou pásu, PNG kompresiou a limitmi výstupných bajtovRenderPageBandedToEncoderposiela postupné pásy stránok kodekom definovaným volajúcim a vracia telemetriu pásov, riadkov, pamäti, dokončenia a výstupu
Opravené (Fixed)
RenderPageBandedteraz zachováva geometriu vykreslenia celej stránky a orezáva každý požadovaný pás namiesto preškálovania kompletnej stránky do každého pásu
Version 3.65.0
Pridané (Added)
TPdfParallelRenderReportteraz hlási veľkosť zdroja, špičkovú zachytenú pamäť, backend úložiska a druh zdieľaného podkladu
Zmenené (Changed)
RenderPagesParallelzdieľa zachytený zdroj cez nemennú pamäť, mapovanie súboru iba na čítanie alebo náhodný prístupFPDF_LoadCustomDocumentnamiesto alokácie druhého bajtového poľa celého dokumentu- Zdroje paralelného vykresľovania, ktoré preliali na disk, zostávajú pod
SaveMemoryLimita už nevyžadujú opätovné načítanie kompletného PDF do adresovateľnej pamäti procesu
Version 3.64.0
Pridané (Added)
ImportImposedteraz má preťaženie vracajúceTPdfImpositionExecutionReports počtami natívnych importov, unikátnych zdrojov, prázdnych pozícií, šablón XObject, formulárových objektov, generovaní obsahu a výstupných stránok
Zmenené (Changed)
- Impozícia s nulovou geometriou posiela každú usporiadanú zdrojovú stránku cez jedno volanie
FPDF_ImportPagesByIndexpred vkladaním prázdnych strán a natívnou N-up kompozíciou - Impozícia s vlastnou geometriou znovu používa jednu natívnu šablónu XObject na unikátnu zdrojovú stránku, číta uložené metriky stránok bez zmeny zdrojovej stránky a predalokuje úložisko plánu na presnú veľkosť
Version 3.63.0
Pridané (Added)
BeginPageObjectEditTransaction,CommitPageObjectEditTransactionaRollbackPageObjectEditTransactionzoskupujú natívne mutácie objektov stránky do atomickej dávky v rozsahu stránky s validovaným rollbackom snímkyPageObjectEditTransactionStatushlási viazanú stránku, dirty stav, počet úspešných mutácií a počet generovaní obsahu
Zmenené (Changed)
- Potvrdené dávky objektov teraz volajú
FPDFPage_GenerateContentraz namiesto raz za každú mutáciu vloženia, odstránenia, transformácie, vlastnosti, značky, objektu anotácie alebo vzhľadu - Uloženie, zmeny stránky, vymazanie stránky, vnorené editačné transakcie a zlyhané natívne vloženia alebo aktualizácie anotácií sa zamietnu skôr, než môže dôjsť k strate odloženého obsahu
Version 3.62.0
Pridané (Added)
ReadPageObjectsSnapshotzachytáva fakty o objektoch stránky vo vlastníctve volajúceho s rozpočtami na objekty, cesty, orezy, značky, text, reťazce a časový limitPageObjectsSnapshotposkytuje opätovné použitie cez LRU s ohľadom na revízie s nastaviteľnou kapacitou a telemetriou obsadenosti a úspešných a neúspešných prístupov
Zmenené (Changed)
PageComplexityteraz znovu používa nemennú snímku objektov stránky namiesto opakovania natívneho vymenúvania objektov a dotazov na priehľadnosť, cesty a obrázky
Version 3.61.0
Pridané (Added)
TPdfteraz vystavuje jednotnú LRU miniatúr pre vložené aj vykreslené náhľady s nastaviteľnými stropmi počtu položiek a bajtov a s telemetriou úspešných a neúspešných prístupov, vyhadzovania, obsadenosti a revíziíRenderPageThumbnailprijíma rotáciu, voľby vykresľovania, farbu pozadia aTPdfColorScheme, pričom zachováva kontrakt bitmapy vo vlastníctve volajúceho
Zmenené (Changed)
- Opakovaná extrakcia a vykresľovanie miniatúr znovu používa natívne výsledky PDFium cez kľúče revízie, stránky, zdroja, veľkosti, rotácie, príznakov, pozadia a farebnej schémy, vrátane uloženej neprítomnosti voliteľných vložených miniatúr
TPdfThumbnailViewsynchronizuje svoju vyrovnávaciu pamäť bitmap viditeľných stránok s revíziami miniatúr dokumentu, takže úpravy nemôžu nechať zastarané náhľady
Version 3.60.0
Pridané (Added)
ReadTextPageSnapshotzachytí Unicode, mapovania UTF-16, geometriu a štýl znakov a normalizované metadáta textových objektov v jednom prechode s explicitnými rozpočtami na znaky, objekty, názvy fontov a časový limitTextPageSnapshotposkytuje hlboké kópie vo vlastníctve volajúceho cez nastaviteľnú LRU s ohľadom na revízie s telemetriou kapacity, počtu a úspešných a neúspešných prístupov
Zmenené (Changed)
GetStructuredTextaGetTextInReadingOrderfyzického rozloženia teraz znovu používajú rovnakú snímku textu a aplikujú geometrické triedenie O(n log n)
Opravené (Fixed)
- Malé vyrovnávacie pamäti snímok textu a štruktúry teraz vyhodia najstaršiu stránku a zároveň uložia nové dáta pod požadovaným indexom stránky, čím sa zabraňuje aliasingu vyrovnávacej pamäti medzi stránkami
Version 3.59.0
Pridané (Added)
LifecycleActionPolicyvyberá vypnuté, len explicitné alebo kompatibilné automatické vykonávanie akcií životného cyklu dokumentov a stránok PDFExecuteDocumentLifecycleActionvystavuje akcie dokumentu typu JavaScript, otvorenie, zatvorenie, uloženie a tlač, zatiaľ čoExecutePageLifecycleActionspúšťa akcie otvorenia a zatvorenia stránky bez zmenyPageNumber
Zmenené (Changed)
- Headless načítania stránok teraz dostávajú rovnaké automatické akcie otvorenia a zatvorenia stránky ako načítania riadené prehliadačom, pričom dočasné stránky sa pod renderovacím zámkom znovu používajú alebo uvoľňujú
Version 3.58.0
Pridané (Added)
ReadStructureElementsaVisitStructureElementsposkytujú iteratívne prechádzanie označenej štruktúry s explicitnými rozpočtami na hĺbku, prvky, atribúty a čas a s podrobným stavom dokončeniaStructureElementsForPagevystavuje snímky stránok adresované od jednotky bez zmenyPageNumber, podopreté nastaviteľnou vyrovnávacou pamäťou LRU s ohľadom na revízie a telemetriou úspešných a neúspešných prístupov a počtov
Zmenené (Changed)
- Spotrebitelia prístupnosti, reflow, validácie a prehliadača teraz znovu používajú snímky štruktúry vo vlastníctve volajúceho, kým ich relevantná úprava dokumentu alebo stránky nezneplatní
Version 3.57.0
Pridané (Added)
- Kompletné natívne callbacky hostiteľa formulárov teraz poskytujú handle stránok bezpečné z hľadiska životnosti a vytvárané lenivo, smerovanie kurzora v interakčnom zobrazení, notifikácie o zmenách hodnôt, obdĺžky vybraného textu, udalosti URI a udalosti cieľov GoTo
FormHostCallbacksCompletehlási pripravenosť callbackov, zatiaľ čoFormSelectionRectsaClearFormSelectionRectsvystavujú ohraničenú geometriu výberu v priestore stránky
Opravené (Fixed)
- Callbacky aktuálnej stránky XFA sa teraz správne prekladajú medzi nulovými indexmi stránok PDFium a
PageNumberkomponentu číslovaným od jednotky - URI callbacky AcroForm a XFA teraz zachovávajú surové bajty URI a pred akýmkoľvek externým spustením vyžadujú explicitné schválenie hostiteľom
Version 3.56.0
Pridané (Added)
- Indexované snímky
PageMetricsvystavujú rozmery stránky, rotáciu, štítok, priehľadnosť a päť štandardných boxov stránky bez zmeny aktívnej stránky
Zmenené (Changed)
- Opakované čítania metadát stránok znovu používajú automaticky zneplatňovanú vyrovnávaciu pamäť natívnych snímok, čím znižujú počet otváraní stránok v záťažiach miniatúr, preflightu a analýzy dokumentov
Version 3.55.0
Pridané (Added)
- Inšpekcia ciest vystavuje presné riadiace body kubických Bézierových kriviek, keď načítané zostavenie PDFium poskytuje
FPDFPath_GetBezierControlPoints, s voliteľnou sondou dostupnosti pre staršie DLL FormFieldTypeAtPoint,TPdfView.FormFieldTypeAta indexované vlastnostiFontFlagsvystavujú natívne fakty o formulároch a fontoch bez surových handleTPdf.Signaturesvracia všetky natívne obsahy podpisov, ByteRange, subfiltery, dôvody, časy a oprávnenia v jednej snímke vo vlastníctve volajúceho
Zmenené (Changed)
- Kontroly prítomnosti formulárových polí teraz používajú priame natívne hit testovanie v bode namiesto otvárania a zatvárania handle anotácií
Opravené (Fixed)
- Validácia PDF/E-1 teraz pripúšťa bežné polia AcroForm, vložené súbory a anotácie FileAttachment, pričom presne hlási vrchnoúrovňové
/XFAa/NeedAppearances truev AcroForm, vrátane hodnôt v nepriamych objektoch a object streamoch
Version 3.54.0
Pridané (Added)
FPdfProductionpridáva meraný výber medzi viacerými obrazovými kodekmi, backendy spracovania farieb a fontov, cesty SVG, plány štýlovanej náhrady, transakčné aktualizácie paketov XFA, vektory čiarových kódov, modely Portfolio a bezpečnú extrakciu RichMediaFPdfStandardsExecutionpridáva meranie a konverziu GeoPDF, transakčnú opravu PDF/A, plány PDF/UA-2, externé viacfarebné profily, historické dôkazy DSS a VRI, dotazy DPart, hlboké fakty PDF/E a PDF/R pásy s pevnou pamäťouTPdf.ImportImposedskladá ohraničené plány N-up a brožúr cez natívne cesty N-up alebo XObjectov strán s presnou geometriou odkvapo, spadu a creepu, pričomTPdf.CompareWithhlási sémantické, geometrické a pixelové rozdiely s toleranciou- Podpisovanie PAdES teraz podporuje vymeniteľné validátory cesty a poskytovateľov HSM, PDF MAC pripojený k podpisu,
cms-algorithm-protectiona offline dokumenty politiky podpisu
Zmenené (Changed)
- Engine rozloženia prijíma ohraničené HTML a Markdown, tečie naprieč stĺpcami a rieši pevné, automatické a zlomkové dráhy mriežky
- Cesty tam a späť vo XFDF si teraz zachovávajú viachodnotové polia a polia bohatého textu, popupy, akcie, ciele, prekryvy vzhľadu, vlastné menné priestory a explicitný stav prítomnosti
Version 3.53.0
Pridané (Added)
ConfigurePdfLibraryposkytuje nemennú konfiguráciu natívneho vykresľovača, fontov, V8, Brotli, cesty používateľských fontov a sandboxu pred prvým načítaním PDFium- Natívne atribúty štruktúry, vzťahy anotácií, prílohy súborov anotácií, typované hodnoty slovníkov, politiky zamerania, dotazy na z-order odkazov a formulárov a diagnostika predvoleného mapovania TTF sú dostupné cez ohraničené vysokoúrovňové API
TPdfView.ReplaceFormTextAndKeepSelectionzachováva aktívny výber naprieč opakovanými úpravami a udalosti uvoľnenia pravého tlačidla teraz dorazia do natívneho enginu formulárov
Zmenené (Changed)
- Deterministický čas dokumentu teraz používa stabilnú konverziu UTC kalendára rovnako ako pevnú epochu, čím vytvára rovnaké metadáta v každom časovom pásme hostiteľa
- Zápisy reťazcov príloh validujú natívny výsledok a kódujú kľúče slovníka ako UTF-8
Version 3.52.0
Pridané (Added)
TPdf.GetImageObjectRenderedBitmapvracia vykreslený výsledok obrazového objektu s jeho aktuálnou maticou, farebným priestorom, maskami a stavom vykresľovaniaTPdf.TextObjectGlyphWidth,TPdf.TextObjectFontSizeaTPdf.SetTextObjectFontSizeodhaľujú natívne meranie glýfov a presnú úpravu veľkosti písma textového objektuTPdf.TransformPageObjectClipPath,TPdf.DetachFormObjectChild,TPdf.SharePageObjectMarkaTPdf.IsAnnotationObjectSubtypeSupportedpridávajú presnú úpravu obsahových objektov a inšpekciu schopností
Version 3.51.0
Opravené (Fixed)
- Osem členov
TPdf, ktoré boli oznámené v skorších poznámkach k vydaniu, bolo deklarovaných v sekcii private, takže ich nebolo možné volať z iného miesta než z unituPDFium; teraz sú verejné, ako dokumentácia uvádza:LinkAtPoint,GetTextRenderMode,GetTextObjectRenderedBitmap,IsAnnotationSubtypeSupported,ChooseRenderFlags,AttachmentHasKey,GetAttachmentStringValueaSetAttachmentStringValue
Zmenené (Changed)
- Anglická referenčná dokumentácia teraz pokrýva každý verejný člen
TPdfaTPdfView: 88 členom, ktoré nemali vlastnú referenčnú stránku, bola takáto stránka pridaná a stránky tried, navigačný index a referenčný zoznam API ich teraz uvádzajú všetky - Referenčné stránky, ktoré predtým smerovali na zdieľanú stránku, teraz odkazujú na stránku samotného člena, takže výsledok vyhľadávania otvorí popis API, ktoré bolo vyhľadané
- Referenčná dokumentácia API teraz dokumentuje enumerácie a záznamy dosiahuteľné z verejných signatúr, vrátane typov hlásení načítania a streamovania, typov textu, písiem a OCR, typov zostavovača rozloženia, typov validácie PAdES, typov dávkového spracovania a validácie a typov paralelného vykresľovania
Version 3.50.0
Pridané (Added)
- Každé grafické demo sa teraz namiesto prázdneho formulára otvára s pripraveným obsahom: demá prehliadača a laboratória načítajú vygenerovaný ukážkový dokument, demá zostavujúce reporty pri spustení vyprodukujú dokončený report a spracovateľské demá vopred vygenerujú ukážkové vstupy, takže hlavná akcia sa spustí jedným kliknutím
MultiPageViewer,SplitViewaFontPropertiespri spustení generujú ukážkové dokumenty v pamäti (šesťstránkovú prezentáciu, dva porovnávacie dokumenty vedľa seba a stránku s viacerými písmami na kontrolu kliknutím)- Spracovateľské demá ako
MergePDF,BatchExport,SplitPDF,ExtractText,PDFtoJpg,PrintPDFaPrintPreferencesvopred vygenerujú ukážkové PDF vedľa spustiteľného súboru a predvyplnia svoje vstupné ovládacie prvky, pričom idempotentná regenerácia nikdy neprepíše existujúce súbory FormFillaExtractImagesautomaticky načítajú ukážkové súbory dodávané v ich priečinkoch dema,ImageToPDFvygeneruje dva ukážkové bitmapy,WatermarkStampvopred zostaví svoje ukážky pečiatok aXfdfLabsa otvára na vygenerovanom dokumente s textovými anotáciami a anotáciami zvýraznenia
Zmenené (Changed)
CreatePDFteraz pri spustení bez zobrazenia dialógu vygenerujeSample.pdfvedľa spustiteľného súboru, takže dokument existuje už v okamihu otvorenia demaTPdf.AboutInfoa metadáta inštalátora teraz jednotne hlásia Version 3.50.0
Version 3.49.0
Pridané (Added)
FORM_GetTextDirectionaFORM_SetTextDirectionz aktualizovaných binárnych súborov PDFium sú teraz viazané, čím vrstva dynamického viazania zachováva úplné pokrytie všetkých 472 exportov PDFiumTPdf.FocusedFormFieldTextDirectionaTPdf.SetFocusedFormFieldTextDirectionodhaľujú smer textu zameraného widgetu v pamäti prostredníctvom novej enumerácieTPdfFormTextDirection(ftdUnknown,ftdAuto,ftdLTR,ftdRTL), pričom náprotivky vTPdfViewpo zmene smeru prekreslia scénu stránky
Zmenené (Changed)
FPDF_LIBRARY_CONFIGteraz zrkadlí rozloženie upstream verzie 6 s experimentálnym poľomm_BrotliEnabledpre binárne súbory zostavené sPDF_ENABLE_BROTLITPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.49.0
Version 3.48.0
Pridané (Added)
- Demo
PDFViewerteraz pri spustení generuje v pamäti šesťstránkový ukážkový dokument pomocou API na vytváranie dokumentov, takže sa prehliadač otvára s vykresleným obsahom a bez vzorového súboru na disku - Panel miniatúr postavený na
TPdfThumbnailViewposkytuje náhľady stránok s navigáciou kliknutím vedľa stromu záložiek vo všetkých troch portoch dema - Vyhľadávanie v prehliadači teraz cez
HighlightSearchTextzvýrazňuje všetky zhody na aktuálnej strane namiesto jediného obdĺžnika výsledku a počet zhod sa zobrazuje v stavovom riadku - Tlačidlá
Nighta2-Upna paneli nástrojov jedným kliknutím prepínajú nočný duotónový režim vykresľovania a režim zobrazenia dvojstránkového rozloženia
Zmenené (Changed)
- Výber textu v prehliadači teraz používa vstavaný výberový mechanizmus
TPdfViews výberom slova dvojklikom, výberom ťahaním a klávesovými skratkami schránky namiesto ručne napísaného výberového kódu - Stránky sa vykresľujú s tieňom a plynulým posúvaním, čo poskytuje moderný zážitok z čítania
TPdf.AboutInfoa metadáta inštalátora teraz jednotne hlásia Version 3.48.0
Version 3.47.0
Pridané (Added)
FPdfBenchmarkspúšťa obmedzené PDF korpusy s konfigurovateľnými zahrievacíimi a meracími prechodmi, limitmi strán a pixelov, kooperatívnym rušením a stavom úspech, zlyhanie alebo preskočenie pre každý prípadTPdfBenchmarkReportzaznamenáva vstupné a uložené veľkosti v bajtoch, latenciu načítania a prvej stránky, priepustnosť vykresľovania, časovanie uloženia a opätovného otvorenia, vzorkovanú špičku pracovnej množiny, sémantické a pixelové SHA-256 haše, stabilitu opakovaných spustení, brány očakávaných hašov a nezávislú ekvivalenciu opätovného otvorenia- Reporty benchmarku exportujú bezpečné CSV pre vzorce a štruktúrované JSON pre CI, kvalifikáciu vydania a dlhodobé sledovanie výkonu
GetSkiaRenderCapabilities,RenderPageSkiaaRenderPageSkiaByIndexvystavujú voliteľné natívne vykresľovanie strán a formulárov cez Skia s opätovným použitím vyrovnávacej pamäte analyzovaných strán a bez tvrdej požiadavky na DLL export- Verzovaná ABI tlačového výstupu riadená schopnosťami vystavuje presné vymenovanie spotových platní, vykresľovanie platní, detekciu preťlače a náhľad preťlače vtedy, keď ich poskytuje načítaný modul PDFium
Opravené (Fixed)
- Zostavy PDFium bez
PDF_USE_SKIAsa teraz načítajú normálne namiesto zlyhania kvôli chýbajúcim experimentálnym Skia exportom
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.47.0
Version 3.46.0
Pridané (Added)
ValidatePdfRteraz kontroluje výhradne rastrový obsah strán, geometriu pruhov, farebné modely, efektívne rozlíšenie, kompresné parametre, povinné metadáta a šifrované profily PDF 2.0 prostredníctvom konfigurovateľných možností validácieBuildPdfARepairPlanpremieňa validáciou nazbierané dôkazy na kroky nápravy usporiadané podľa závislostí, s triedami bezpečnosti, ochranami vplyvu na podpisy a výstupom JSONBuildPdfXProductionPreflighthlási rámce strán, vložené písma, output intenty, farebné zložky, priehľadnosť, preťlač, separácie, rozlíšenie obrázkov a pripravenosť na produkciu bez dekódovania obsahu obrázkov- Štruktúrna validácia PDF/UA-2 teraz kontroluje vlastníctvo pridružených súborov, poradie čítania, popisy, vzťahy a rozpoznateľnosť
Zmenené (Changed)
TAssociateFile.Description,TPdf.ImageInfoaTPdf.PageComplexityvystavujú metadáta potrebné pre pracovné toky pridružených súborov a produkčného preflightuTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.46.0
Version 3.45.0
Pridané (Added)
TPdfXmpPacketanalyzuje, upravuje, klonuje a serializuje XMP s informáciami o menných priestoroch, vrátane neznámych menných priestorov, typovaných RDF kontajnerov, hodnôt URI a zdrojov, kvalifikátorov, jazykových alternatív, obalov paketov a zachovanej výplneTPdf.ReadXmpPacketaSaveAsWithXmpPacketvystavujú čítanie metadát na vysokej úrovni a atomický výstup, pričom zmeny podpísaných dokumentov vyžadujú explicitnú autorizáciu
Bezpečnosť (Security)
- Obmedzený XML čítač odmieta DTD a externé entity a limituje bajty paketu, vnorenie, uzly, atribúty a numerické znakové odkazy
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.45.0
Version 3.44.0
Pridané (Added)
TPdfValidationRuleRegistryregistruje klauzuly profilov so závažnosťou, závislosťami, pokynmi na opravu, dôkazmi a vstavanými alebo vlastnými predikátmiTPdfValidationBudgetaTPdfValidationExecutionContextobmedzujú pravidlá, zlyhania, objekty, rekurziu, dôkazy UTF-8, rezervovanú pamäť, uplynulý čas, rýchle zlyhanie a kooperatívne rušenieValidatePdfFilesParallelvaliduje súbory prostredníctvom izolovaných pracovných dokumentov pri zachovaní vstupného poradia a agregácii rozdelení problémov, časovania, zlyhaní, zrušení a chýb načítania
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.44.0
Version 3.43.0
Pridané (Added)
TPdfStructureElementteraz nesie fakty o mennom priestore, mapovaní rolí menného priestoru, referenciách, pridružených súboroch, anotáciách, widgetoch, menovkách a vzhľade pre sémantickú validáciu PDF/UA-2ValidatePdfUa2StructureElementsa jeho zamerané validátory kontrolujú menné priestory a uzavretosť ISO/TS 32005, obmedzené tabuľkové mriežky, anotácie, formuláre, pridruženia Formula/MathML, pridružené súbory, korene dokumentov, FENote, zoznamy, odkazy TOC, titulky a popisky bez načítaniapdfium.dllClassifyPdfUaNamespaceidentifikuje štruktúrne menné priestory PDF 1.7, PDF 2.0, MathML, ARIA, DPUB, vlastné a chýbajúcePdfUa2StructureHasIssueposkytuje bezpečný dotaz na jeden problém pre C++Builder bez vrátenia Pascal množiny podľa hodnoty
Zmenené (Changed)
ValidatePdfUaStructureElementsautomaticky aplikuje novú sémantickú množinu pravidiel prepuc2pri zachovaní cesty pravidiel PDF/UA-1TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.43.0
Version 3.42.0
Pridané (Added)
TPdfUaSaveOptions.PdfUa2vytvára výstup PDF/UA-2 spdfuaid:part2,pdfuaid:rev2024 a efektívnou verziou katalógu PDF 2.0ValidatePdfUadetekujepuc2a hlási chýbajúce metadáta revízie, súbory iné než PDF 2.0, nepomenované konfigurácie voliteľného obsahu, zastarané anotácie a všeobecné nadpisy H
Zmenené (Changed)
- Validácia PDF/UA teraz vyberá pravidlá poradia tabulátora, XFA a nadpisov špecifické pre profil PDF/UA-1 a PDF/UA-2
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.42.0
Version 3.41.0
Pridané (Added)
SetPageObjectMarkParampridáva alebo nahrádza jeden celočíselný, reálny, reťazcový alebo blob parameter na existujúcom zázname označeného obsahu bez nahradenia značkyRemovePageObjectMarkParamodstraňuje jednu vybranú vlastnosť pri zachovaní názvu značky a všetkých nesúvisiacich vlastností
Zmenené (Changed)
- Ne celé čísla označeného obsahu sa teraz pri spiatočnej ceste zachovávajú ako
pmpFloatnamiesto skrátenia na celočíselné snímky - Zlyhaná validácia parametra počas
AddPageObjectMarkodstraňuje čiastočne vytvorenú natívnu značku TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.41.0
Version 3.40.0
Pridané (Added)
ConfigureSystemFontProviderinštaluje mapovač písiem aplikácie pred štartom PDFium a dodáva validované bajty TrueType alebo OpenType pre chýbajúce alebo nahradené písma dokumentuTPdfSystemFontPolicyriadi substitúciu rezov písiem, natívny fallback, limity bajtov na písmo a obmedzené ukladanie požiadaviek do vyrovnávacej pamäteGetSystemFontProviderStatisticshlási aktivitu mapovania, vyrovnávacej pamäte, fallbacku, odmietnutí, dátových tabuliek a živých handlov
Zmenené (Changed)
- Spätné volania poskytovateľa vystavujú požadovaný rez, hrúbku, štýl, znakovú sadu a rozstup od PDFium, pričom zlyhania spätných volaní zostávajú vnútri natívnej hranice
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.40.0
Version 3.39.0
Pridané (Added)
AddCidType2Textvkladá TrueType dáta dodané volajúcim s explicitnou geometriou CID-to-GID pre každý glyf a mapovaniami CID-to-UnicodeTPdfCidFontOptionsvyberá plné vloženie, preferovaný subsetting s fallbackom alebo povinný subsetting a konfiguruje obmedzené rozpočty pre písma, glyfy a UnicodeTPdfCidFontReporthlási rozhodnutia o subsete, veľkosti v bajtoch, unikátne glyfy, stav vloženia, očakávaný text, extrahovaný text a integritu extrakcie
Zmenené (Changed)
- TrueType subsetting zachováva požadované identifikátory glyfov, odmieta nebezpečný výstup a vracia späť každý vložený objekt stránky, ak verifikácia mapovania alebo extrakcie zlyhá
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.39.0
Version 3.38.0
Pridané (Added)
BuildReflowDocumentvytvára obmedzený opakovane použiteľný strom sémantických uzlov zo štruktúry Tagged PDF alebo odvodenia fyzického rozloženia naprieč vybraným rozsahom stránTPdfReflowDocument.ToHtmlemituje escapované responzívne nadpisy, odseky, zoznamy, obrázky, popisky, sekcie strán a tabuľky so sémantikou hlavičiek a spanovTPdfReflowOptionsriadi detekciu tabuliek, sekcie strán, geometriu, CSS, zalomenia riadkov, rozsah strán, rušenie a rozpočty zdrojov
Zmenené (Changed)
- Obsah tabuliek počas reflow nahrádza prekrývajúce sa bloky odsekov a stav aktívnej stránky sa obnoví po úspechu, zlyhaní alebo zrušení
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.38.0
Version 3.37.0
Pridané (Added)
ApplyOcrSearchLayervykresľuje vybrané stránky prostredníctvom PDFium a posiela obmedzené pixely BGRA v poradí zhora nadol poskytovateľoviIPdfOcrProviderdodanému volajúcimTPdfOcrWordnesie Unicode text, mieru istoty a štvoruholníky v pixelovom priestore, ktoré sa prostredníctvom natívnej geometrie stránky premietnu do neviditeľného prehľadávateľného textuTPdfOcrReportzaznamenáva dokončenie jednotlivých strán, preskočenia kvôli existujúcemu textu, zlyhania, zrušenie, vykreslené pixely a prijaté alebo odmietnuté slová
Zmenené (Changed)
- Vkladanie OCR zachováva pôvodné obrazové prúdy skenov, filtruje chybné alebo málo isté výsledky, potvrdzuje raz na stránku a obnovuje aktívnu stránku
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.37.0
Version 3.36.0
Pridané (Added)
ExtractTablesdetekuje čiarované a medzerami zarovnané tabuľky z natívnej geometrie slov a transformovaných čiar ciestTPdfTablehlási riadky, stĺpce, zlúčené rozpätia, hranice strán, bunky hlavičky, režim detekcie, mieru istoty a priamy výstup CSV alebo JSONExtractDocumentTablesskenuje každú stránku v rámci zdieľaných rozpočtov a označuje zodpovedajúce tabuľky, ktoré pokračujú cez hranice strán
Zmenené (Changed)
- Extrakcia tabuliek vynucuje konfigurovateľné limity slov, čiar, buniek a tabuliek a obnovuje aktívnu stránku po skenoch na úrovni dokumentu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.36.0
Version 3.35.0
Pridané (Added)
GenerateTaggedLayoutvytvára nový dokument sémantického rozloženia s natívnym označeným obsahom, stromom štruktúry Document, mapovaniami ParentTree a IDTree a metadátami jazyka dokumentuTPdfLayoutSemanticsmodeluje nadpisy, sekcie, zoznamy, obrázky, popisky, tabuľky, pridruženia hlavičiek, spany, alternatívny text, actual text, jazyky a identifikátory prvkovTPdfLayoutDocument.AddLinkemituje anotácie URI Link a priraďuje každú anotáciu k jej štruktúrnemu prvku Link prostredníctvom mapovaní OBJR a StructParent
Zmenené (Changed)
- Text rozloženia predvolene nadobúda sémantiku odsekov, zatiaľ čo hlavičky, päty, linky, obrázky a opakovane použiteľné formuláre sú predvolene artefakty, pokiaľ nie sú explicitne označené
- Validácia sémantického plánu odmieta duplicitné identifikátory, chýbajúcich rodičov, cykly, neplatné uzavretie zoznamov alebo tabuliek, obrázky bez náhradného textu a nevyriešené identifikátory hlavičiek tabuliek pred emisiou dokumentu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.35.0
Version 3.34.0
Pridané (Added)
TPdf.AddShapedTextzapisuje behy glyfov RTL, bidi, kontextové a ligatúrne prostredníctvom natívneho systémového tvarovania a API písiem CID Type 2 v PDFiumShapePdfTextaTPdfUniscribeTextShapervystavujú poziciované identifikátory glyfov, posuvy, ofsety, zdrojové klastre, vizuálne pozície behov a úrovne bidi bez úpravy dokumentu
Zmenené (Changed)
- Vygenerované mapy ToUnicode pokrývajú každý tvarovaný glyf, pričom
ActualTextuchováva pôvodný logický Unicode reťazec pre vyhovujúcu extrakciu a prístupnostných konzumentov - Reťazce označeného obsahu so znakmi poradia bajtov UTF-16 sa teraz správne dekódujú prostredníctvom
PageObjectMarks TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.34.0
Version 3.33.0
Pridané (Added)
TPdfLayoutCachedNodevytvára podtriedený obsah rozloženia pri prvom použití a podporuje opakované škálované umiestnenia prostredníctvomAddCachedNodeTPdfLayoutPlanhlási zásahy a nezásahy vyrovnávacej pamäte meraní, umiestnenia cachovaných uzlov a znovupoužité natívne XObjects
Zmenené (Changed)
BuildPlanopätovne používa zodpovedajúce plány podľa úplných obmedzení strán, obsahu, písma, štýlu, zdroja a identity meracieho nástroja bez opakovania merania textuGenerateLayoutkonvertuje každý unikátny cachovaný uzol na jeden na cieľ viazaný XObject a vytvára ľahké Form objekty pre každé umiestnenieTPdf.AboutInfo, metadáta balíka a metadáta inštalátora teraz jednotne hlásia Version 3.33.0
Version 3.32.0
Pridané (Added)
TPdfLayoutDocumentstavia zalomený text, oddeľovače, linky, obrázky, opakovane použiteľné XObjects strán, explicitné zalomenia strán, hlavičky a päty do meraného plánu stránGenerateLayoutstránkuje úplné rozloženie pred atomárnym pridaním natívnych strán a objektov strán, so stabilnými odkazmi{page}a{pages}
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka a metadáta inštalátora teraz jednotne hlásia Version 3.32.0
Version 3.31.0
Pridané (Added)
- Buildre typu
TPdfPagePlanpopisujú operácie odstránenia, presunutia, vloženia, rozdelenia a zlúčenia strán bez ich aplikovania ValidatePagePlanvracia presnú mapu strán staré-na-nové a inventarizuje ovplyvnené záložky, pomenované ciele, menovky strán, polia formulárov, označené stránky, importované funkcie a podpisy
Bezpečnosť (Security)
- Plány, ktoré by zanechali visiace navigačné ciele alebo zmenili podpísaný obsah bez explicitnej autorizácie, sa odmietajú pred spustením akejkoľvek natívnej operácie so stránkami
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.31.0
Version 3.30.0
Pridané (Added)
SaveRecoverySnapshotzapisuje obmedzený balík obnovy s kontrolným súčtom, obsahujúci odtlačok zdroja a overený žurnál úprav dokumentuRestoreRecoverySnapshotprehráva balík obnovy iba vtedy, keď sa jeho kontrolný súčet, reťazec žurnálu, odtlačok zdroja a obnovený odtlačok všetky zhodujúEnableRecoveryAutosaveatomárne obnovuje explicitný súbor obnovy po každom zmenenom commite, undo alebo redo bez prepisovania zdrojového PDF
Zmenené (Changed)
InspectRecoverySnapshothlási zdroj obnovy, odtlačky, počet záznamov, pozíciu a obmedzené úložisko bez aplikovania balíkaImportEditJournala obnova z balíka teraz vyžadujú explicitnú autorizáciuAllowSignedDocumentpred aplikovaním úprav na podpísané PDF- Úložisko balíkov obnovy používa nakonfigurované obmedzené úložisko s náhodným prístupom a nahradzovanie priamym zápisom v rovnakom adresári pre veľké žurnály a aktualizácie automatického ukladania odolné voči pádu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.30.0
Version 3.29.0
Pridané (Added)
BeginEditTransaction,CommitEditTransactionaRollbackEditTransactionzoskupujú ľubovoľné natívne úpravy dokumentu do atomárnych transakciíUndoEditaRedoEditaplikujú SHA-256 overené inverzné a dopredné delty naprieč zmenami strán, objektov, anotácií, príloh a metadátExportEditJournalaImportEditJournaluchovávajú obmedzené prenosné delty s validáciou odtlačku zdroja a reťazca digestov na neskoršie prehranie
Zmenené (Changed)
- Snímky transakcií používajú reprodukovateľný natívny výstup, takže nezmenené commity zostávajú prázdne aj vtedy, keď bežné uloženia PDFium obsahujú nedeterministické identifikátory alebo časové pečiatky
- Zlyhané commity a neplatné prehranie žurnálu atomárne obnovia predchádzajúci načítateľný dokument, pričom počet záznamov, uložené bajty a veľkosť snímky zostávajú pod limitmi nakonfigurovanými volajúcim
- Podpísané PDF vyžadujú explicitnú autorizáciu
AllowSignedDocumentpred začatím transakcie úprav dokumentu TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.29.0
Version 3.28.0
Pridané (Added)
TPdf.InspectOptionalContentvymenúva vrstvy OCG, predvolené a alternatívne konfigurácie, stavy použitia View/Print/Export, metadáta priblíženia a jazyka, zamknuté vrstvy, polia poradia, rádiové skupiny, politiky OCMD, výrazy viditeľnosti a efektívny stav vykresľovaniaTPdf.SaveAsOptionalContentConfiguredzapisuje prísne overenú kópiu so stavmi vrstiev vybranými volajúcim pre zvolené použitie a konfiguráciu
Zmenené (Changed)
- Výstup stavov vrstiev teraz aktualizuje polia
/ONa/OFFkonfigurácie aj slovníky stavov Usage OCG, takže PDFium aplikuje požadovanú viditeľnosť prostredníctvom svojho natívneho vykresľovacieho kontextu - Zápisy konfigurácie odmietajú neznáme skupiny, zmeny zamknutých vrstiev, konflikty rádiových skupín, šifrované pripravené súbory a podpísané súbory bez explicitnej autorizácie a predvolene odstraňujú pravidlá automatického stavu, aby bol vybraný výsledok deterministický
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.28.0
Version 3.27.0
Pridané (Added)
TPdf.RenderPageByIndexvykresľuje ľubovoľnú stránku založenú na jednotke na presnú pixelovú veľkosť bez zmeny aktívnej upravovanej stránky alebo spustenia udalostí zmeny stránkyPageSceneCacheCapacity,PageSceneCacheCountaClearPageSceneCachevystavujú obmedzené ovládanie a diagnostiku vyrovnávacej pamäte scén
Zmenené (Changed)
- Indexované vykresľovanie strán, vykresľovanie miniatúr a extrakcia vložených miniatúr teraz predvolene opakovane používajú analyzovaný stav stránky PDFium prostredníctvom osempoložkovej vyrovnávacej pamäti LRU
- Položky scén sa invalidujú pri aktivácii stránky, úpravách, zmenách stromu strán, spätných volaniach stavu formulára, explicitnom čistení a rozobratí dokumentu, pričom prebiehajúce vykresľovania sa bezpečne uchovajú až do uvoľnenia
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.27.0
Version 3.26.0
Pridané (Added)
TPadesSignatureAlgorithmInfohlási digest, podpis, verejný kľúč a OID pomenovanej krivky každého podpisovača CMS spolu s jeho nezávisle vyhodnoteným stavom politiky algoritmovInspectPadesSignatureAlgorithmaEvaluatePadesSignatureAlgorithmrozpoznávajú profily P-256, P-384, P-521, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1, Ed25519 a Ed448
Bezpečnosť (Security)
- Validácia PAdES teraz odmieta nezhody eliptických kriviek a digestov, OID ECDSA podpisov, ktoré nesúhlasia s digestom CMS, nepomenované parametre EC, parametre Ed25519 a dĺžky výstupu Ed448 SHAKE256 iné než 512 bitov
- Natívna verifikácia CMS zostáva zdrojom kryptografickej platnosti, pričom nedostupné algoritmy a nerozpoznané krivky sa hlásia ako
pcsUnsupportednamiesto toho, aby sa považovali za neplatné podpisy TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.26.0
Version 3.25.0
Pridané (Added)
TPdf.ExportObjectGraphexportuje aktívne klasické objekty, objekty xref-stream a object-stream ako obmedzené typované JSON s explicitnými slovníkmi, poliami, reťazcami, menami, skalárnymi hodnotami, nepriamymi odkazmi, počtami bajtov prúdov a voliteľnými SHA-256 digestmi prúdovTPdf.SaveAsObjectGraphPatchednastavuje alebo odstraňuje kontrolované hodnoty slovníka najvyššej úrovne prostredníctvom typovaných záplatových hodnôt null, Boolean, integer, real, name, text-string a nepriamy odkaz
Bezpečnosť (Security)
- Export grafu objektov vynucuje rozpočty objektov, rekurzie, reťazcov a výstupných bajtov, zatiaľ čo záplatovanie validuje každú operáciu pred doručením a odmieta visiace odkazy, duplicitné operácie, šifrované vstupy, chránené zmeny filtra alebo dĺžky prúdu a podpísané dokumenty bez explicitnej autorizácie
- Záplaty grafu objektov sa pripravia ako inkrementálna revízia, znovu sa materializujú na verifikáciu xref, prísne načítajú prostredníctvom PDFium a skopírujú alebo atomicky premenujú až po úspechu všetkých kontrol
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.25.0
Version 3.24.0
Pridané (Added)
TPdf.ValidatePadesTrustverifikuje každý zistiteľný oddelený podpis proti presnému pôvodnémuByteRange, vyhodnocuje väzbu signing-certificate-v2 a aktuálnu systémovú dôveru Windows a hlási nezávislé stavy podpisu, reťazca, revokácie a časovej pečiatkyTPdf.ValidatePadesTrustAsyncvytvorí snímku pôvodného načítaného zdroja pred odoslaním, hlási fázovaný priebeh analýzy, kryptografie, budovania reťazca, AIA, OCSP, CRL a práce s časovými pečiatkami RFC 3161 a podporuje kooperatívne rušenieTPadesTrustValidationOptionsvyberá offline alebo online dôveru, voliteľnú verifikáciu revokácie a časovej pečiatky, obmedzený časový limit načítania URL, token rušenia a spätné volanie priebehu
Bezpečnosť (Security)
- Tokeny časovej pečiatky podpisu a Document Time-stamp teraz validujú svoj odtlačok správy SHA-256, pripojený CMS podpis, reťazec TSA a voliteľný stav revokácie nezávisle od bežného podpisu dokumentu
- Validácia dôvery nikdy nehašuje kópiu znovu uloženú cez PDFium, predvolene používa iba offline načítanie certifikátov z vyrovnávacej pamäte a hlási nepodporované alebo neurčité stavy namiesto toho, aby považovala nedostupnú natívnu dôveru alebo dôkazy revokácie za platné
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.24.0
Version 3.23.0
Pridané (Added)
TPdf.RenewPadesArchiveTimestampaRenewPadesArchiveTimestampToStreampripájajú novú Document Time-stamp RFC 3161 k existujúcemu reťazcu podpisov PAdES bez zmeny akýchkoľvek historických bajtovTPadesArchiveTimestampOptionsriadi prístup k TSA, nonce, rezervovanú kapacitu tokenu a voliteľnú úplnú obnovu DSS, pričomTPadesArchiveTimestampReportzaznamenáva úrovne zdroja a výsledku, dĺžky reťazcov, dĺžky v bajtoch a identitu vrátenej časovej pečiatky
Opravené (Fixed)
- Nový a obnovený výstup PAdES B-LTA deklaruje ESIC ExtensionLevel 2, zatiaľ čo validácia B-LT už nevyžaduje Level 2, pokiaľ nie je prítomná Document Time-stamp
Bezpečnosť (Security)
- Obnova hašuje presné pôvodné načítané bajty plus prípadnú požadovanú aktualizáciu DSS, odmieta šifrované alebo neúplné zdroje, validuje zistiteľný výsledok B-LTA pred zapísaním výstupu a pripravuje súborový výstup pred nahradením
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.23.0
Version 3.22.0
Pridané (Added)
TPdf.AnalyzeSignatureRevisionsrekonštruuje pôvodný reťazec inkrementálnych revízií a vracia zmeny objektov pre každý podpis klasifikované proti povoleniam DocMDP a FieldMDPTPadesRevisionAnalysisReportodlišuje povolené aktualizácie formulárov, anotácií, podpisov a validačného materiálu od nepovolených zmien strán alebo dokumentu, nevyriešených prípadov a podozrivých tieňových definícií
Bezpečnosť (Security)
- Analýza revízií detekuje nereferencované definície objektov, predefinovania podpisových objektov, aktívny obsah, chybné reťazce revízií a nevyriešené komprimované objekty, pričom vynucuje obmedzené rozpočty revízií, objektov a zmien
- Analýza vždy používa pôvodný načítaný súbor, pamäťový buffer, vlastný prúd alebo dokončený progresívny zdroj namiesto bajtov prepísaných PDFium
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.22.0
Version 3.21.0
Pridané (Added)
TPdf.PreparePadesRemoteSignaturevytvára zástupné miesto oddeleného podpisu s pevnou šírkou a vracia trvalú požiadavku obsahujúcu SHA-256 digest dokumentu, presnýByteRange, súradnice rezervácie a odtlačok pripraveného PDFTPdf.CompletePadesRemoteSignaturedokončuje sedenia podpisovania HSM, cloudové alebo prerušené po validácii uloženej požiadavky a vráteného CMSTPdf.SavePadesRemoteSigningRequestaTPdf.LoadPadesRemoteSigningRequestposkytujú stabilný verzovaný binárny formát sedenia pre hranice procesov a strojov
Bezpečnosť (Security)
- Dokončenie odmieta zmenené pripravené PDF, zmenené súradnice
ByteRange, opakovane použité neprázdne zástupné miesta, preveľké hodnoty CMS, nepodporované tvary SignedData, chýbajúce atribúty signing-certificate-v2 a digesty správ CMS, ktoré nezodpovedajú pripravenému dokumentu TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.21.0
Version 3.20.0
Pridané (Added)
TPadesDssOptions.Vriszapisuje jeden nepriamy slovník/Type /VRIna podpis, kľúčovaný hodnotou SHA-1 kompletne dekódovanej hodnoty/Contentsvrátane paddingu prevedenou na veľké písmenáTPadesDssVrivyberá materiál certifikátov, OCSP a CRL cez validované indexy, pričom podpisovanie PAdES B-LT a B-LTA teraz vytvára VRI nového podpisu automaticky
Zmenené (Changed)
- Certifikáty DSS, odpovede OCSP a CRL sa deduplikujú podľa hashu obsahu so stabilným poradím podľa prvého výskytu, kontrolami kolízií na presné bajty a premapovaním odkazov VRI skôr, než sa zapíše akýkoľvek cieľový bajt
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.20.0
Version 3.19.0
Pridané (Added)
TPdf.GetStructuredTextkonvertuje aktuálnu stránku na opakovane použiteľné záznamy blokov, riadkov a štýlovaných spanov pri zachovaní zdrojových indexov znakov, Unicode skalárov, geometrie, názvov písiem, veľkostí, hrúbok a uhlov textuTPdfStructuredTextOptionsvyberá poradie content-stream alebo fyzického rozloženia, voliteľné obohatenie písiem a sémantiky a maximálny rozpočet znakov so správaním fail-closed- Fragmenty Tagged PDF a heuristicky zistiteľného čitateľného obsahu obohacujú bloky o druh štruktúry, úroveň nadpisu, jazyk, zdroj a identitu štruktúrneho prvku, pričom nepárovaný alternatívny text Figure zostáva zastúpený
Zmenené (Changed)
- Extrakcia fyzického rozloženia teraz používa usporiadanie znakov O(n log n), geometricky rastúce buffery riadkov a spanov, zhlukovanie riadkov a stĺpcov, bufferovanú konštrukciu Unicode a ukladanie písiem susedných nenulových textových objektov do vyrovnávacej pamäte pre predvídateľný výkon veľkých strán
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.19.0
Version 3.18.0
Bezpečnosť (Security)
TPdf.SaveAsRedactedaplikuje každý obdĺžnik/Redactna izolovanú snímku dokumentu, odstraňuje každý pretínajúci sa objekt stránky najvyššej úrovne a nakreslí nepriehľadný náhradný obdĺžnik bez zmeny načítaného dokumentu- Redigovaný výstup odstraňuje anotácie redakcie, voliteľne odstraňuje ďalšie pretínajúce sa anotácie, maže natívne vložené prílohy a zbavuje katalóg
/AF, aktívneho obsahu, formulárov, metadát a nedosiahnuteľných objektov predchádzajúcich revízií TPdfRedactionOptionsriadi náhradnú farbu, odstraňovanie prekrývajúcich sa anotácií a rozpočet skenovania objektov strán so správaním fail-closed, pričomTPdfRedactionReportzaznamenáva každé odstránenie a metriky výstupuTPdfSanitiseOptions.StripAssociatedFilesteraz predvolene odstraňuje odkazy na pridružené súbory na úrovni katalógu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.18.0
Version 3.17.0
Pridané (Added)
TPdf.RenderPagesParallelvykresľuje požiadavky na stránky založené na jednotke súbežne, pričom každý pracovník vlastní nezávisle načítaný modul PDFium, dokument a stav stránky pochádzajúce z jednej zachytenej snímky dokumentuTPdfParallelRenderOptionsriadi DPI, počet pracovníkov, rotáciu, natívne príznaky vykresľovania, farbu pozadia, limity pixelov na stránku a súhrnné limity udržiavaného výstupuTPdfParallelRenderReportzachováva poradie požiadaviek a vracia buffery BGRA alebo RGBA v poradí zhora nadol vo vlastníctve volajúceho s úspechom, zrušením, zlyhaním, rozmermi, časovaním a diagnostickými detailmi pre každú stránku- Progresívne vykresľovanie pracovníkov pravidelne kontroluje
IPdfCancellationTokenmedzi natívnymi časťami, pričom neplatné požiadavky a zlyhania rozpočtov zostávajú izolované na príslušné výsledky TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.17.0
Version 3.16.0
Pridané (Added)
TPdfEncryptionRevision.erR7pridáva výstup ISO/TS 32003 AES-256-GCM s/V 6,/R 7,/CFM /AESV4a požadovaným developer extension pre PDF 2.0- Každý šifrovaný reťazec a každý prúd dostáva unikátnu IV dĺžky 96 bitov, šifertext rovnakej dĺžky a autentizačný tag dĺžky 128 bitov, pričom
EncryptMetadata = Falsezachováva bajty prúdu metadát DecryptAesGcmDocumentBytesvaliduje používateľské alebo vlastnícke heslá, šifrované povolenia, voliteľné samostatné dáta PDF MAC a každý GCM tag skôr, než vráti bajty plaintextu kompatibilné s PDFium- Výstup AESV4 možno skombinovať s
TPdfEncryptOptions.EnableIntegrityProtection, takže GCM autentizácia jednotlivých objektov a ochrana celého dokumentu ISO/TS 32004 PDF MAC koexistujú - Šifrovanie teraz používa platné klasické položky krížových odkazov namiesto interpretovania textu v tvare objektov vnútri dát prúdov ako nepriamych objektov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.16.0
Version 3.15.0
Pridané (Added)
TPdfEncryptOptions.EnableIntegrityProtectionzapisuje samostatné autentizačné kódy PDF MAC podľa ISO/TS 32004 pre dokumenty AES-256 Standard Security Handler revízie 5 a 6TPdf.ValidatePdfMacverifikuje presné pôvodné bajty zdroja,/ByteRangeprísne pokrývajúci EOF, CMSAuthenticatedData, kľúč súboru odvodený z hesla, autentizované atribúty, zabalený kľúč MAC a hodnotu HMACFPdfHmacpridáva HMAC-SHA256 a HKDF-SHA256, zatiaľ čoFPdfAespridáva primitívy RFC 3394 AES-256 Key Wrap a autentizovaného unwrapuTPdfMacValidationResultrozlišuje platné, chýbajúce, neplatné a nepodporované autentizačné kódy s diagnostickým textomTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.15.0
Version 3.14.0
Pridané (Added)
TPdf.ValidatePadesteraz verifikuje oddelené CMS podpisy proti presným pôvodným segmentom/ByteRangevo Windows, vrátane podpísaných atribútov a hodnoty podpisuTPadesValidationResultvystavuje súhrnný stav integrity a stavy ByteRange, CMS,signing-certificate-v2, systémovej dôvery, revokácie a časovej pečiatky pre každý podpis bez zámieňania nepodporovaných alebo neskontrolovaných dôkazov s neplatným podpisom- Väzba certifikátu podpisovateľa sa kontroluje pomocou SHA-256, reťazce certifikátov používajú vyhodnocovanie systémovej dôvery Windows iba z vyrovnávacej pamäte a natívne chybové kódy zostávajú dostupné pre diagnostiku
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.14.0
Version 3.13.1
Opravené (Fixed)
TPdf.ValidatePadesteraz skúma pôvodný súbor, bufferovanú pamäť alebo bajty vlastného prúdu namiesto kópie znovu uloženej cez PDFium, ktorá mohla zneplatniť ofsety alebo zahodiť slovníky podpisov- Kontroly PAdES
/ByteRangeteraz akceptujú podpisy, ktoré pokrývajú skoršiu úplnú revíziu PDF nasledovanú platnými inkrementálnymi aktualizáciami, a zároveň validujú rozsahy Document Time-stamp TPadesValidationResult.SourceStatusodlišuje validáciu pôvodného zdroja od nedostupného alebo neúplného progresívneho vstupu a predikáty compliance odmietajú výsledky bez pôvodných bajtovTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.13.1
Version 3.13.0
Pridané (Added)
FPdfSha3poskytuje primitívy SHA3-256, SHA3-384, SHA3-512 a SHAKE256 bez závislostí pre ISO/TS 32001 a súvisiacu kryptografickú prácu PDF 2.x- Inkrementálne kontexty pohlcujú ľubovoľne rozdelený vstup, pričom SHAKE256 podporuje opakované volania squeeze a výstup presahujúci hranice sponge rate
- Pomocníci pre jednorazové polia bajtov a malé hexadecimálne dopĺňajú streamovacie API s explicitnou validáciou životného cyklu a veľkosti naprieč Delphi, C++Builder a Lazarus
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.13.0
Version 3.12.0
Pridané (Added)
TPdf.ImportFDFimportuje dáta formulárov FDF zo súborov alebo prúdov a aplikuje analyzované hodnoty cez existujúcu cestu polí widgetovFdfImportFromStreamaFdfImportFromFileanalyzujú priame alebo nepriame hierarchické polia, literálne a hexadecimálne reťazce PDF, PDFDocEncoding, Unicode text, hodnoty mien a explicitné prázdne hodnoty v rámci obmedzených rozpočtov zdrojov- Export FDF teraz zapisuje názvy polí a hodnoty s inými znakmi než ASCII ako textové reťazce UTF-16BE v súlade so štandardmi a bezpečne escapuje názvy zdrojových súborov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.12.0
Version 3.11.0
Pridané (Added)
TPdf.DetectPageSkewvykresľuje aktuálnu stránku pri nízkom DPI a detekuje uhol skosenia projekciou tmavých pixelov na kandidátske uhly rotácie, pričom vracia uhol maximalizujúci varianciu súčtov riadkov (zarovnanie textových riadkov) s presnosťou ~0.1 stupňaTPdfSkewReportvystavuje detekovaný uhol, mieru istoty a rozmery vzorkyTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.11.0
Version 3.10.0
Pridané (Added)
TPdf.GetTextInReadingOrderextrahuje text aktuálnej stránky v pôvodnom poradí content-stream alebo v poradí fyzického rozloženia (zhora nadol, zľava doprava) prostredníctvomFPDFText_GetCharBox+ extrakcie znakov zoradených podľa pozície, takže viacstĺpcový a vizuálne preusporiadaný text sa číta prirodzene- Enum
TPdfReadingOrdervyberá medziroContentOrderaroPhysicalLayout TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.10.0
Version 3.09.0
Pridané (Added)
TPdfImageOptimizeOptions.PreserveBilevelpreskakuje 1-bitové dvojúrovňové obrázky (ImageMask / skeny lineárnej grafiky) počasOptimizeImages, takže prevzorkovanie nadol metódou najbližšieho suseda nezničí ich ostré hranyTPdfImageOptimizeOptions.MinDimensionpreskakuje obrázky menšie než prah (zvyčajne ikony alebo dekoratívne prvky, ktorým ďalšia redukcia neprospieva)TPdfImageOptimizeOptions.Defaultposkytuje odporúčaný východzí bod (cieľ 150 DPI, pomer 1.5, zachované dvojúrovňové obrázky, minimálny rozmer 8)TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.09.0
Version 3.08.0
Pridané (Added)
TPdfTileCacheposkytuje obmedzenú vyrovnávaciu pamäť LRU vykreslených dlaždíc strán kľúčovanú podľa revízie dokumentu, stránky, priblíženia, rotácie, príznakov vykresľovania a obdĺžnika zariadenia, takže nezmenené dlaždice sa pri prekresľovaní nevykresľujú znovu a zastarané dlaždice z predchádzajúceho uloženia sa automaticky vyhadzujúTTileKeyvystavuje zložený kľúč vyrovnávacej pamäti so statickou továrnouCreatea komparátoromEqualsTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.08.0
Version 3.07.0
Pridané (Added)
TPdf.GetAnnotationFontColoraTPdf.SetAnnotationFontColorobaľujú predtým naviazané, ale nepoužitéFPDFAnnot_GetFontColoraFPDFAnnot_SetFontColora vystavujú čítanie a zápis farby textu widgetu pre úpravu polí formulára bez priameho zasahovania do slovníka anotácieTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.07.0
Version 3.06.0
Pridané (Added)
TPdf.RenderPageBandedvykresľuje aktuálnu stránku vo vodorovných pásoch prostredníctvom spätného volania, takže plagáty a inžinierske stránky možno exportovať bez alokácie plnej cieľovej bitmapy — každý pás sa vykreslí do novo vytvorenejTBitmappožadovanej výšky pásu a uvoľní sa po návrate spätného volaniaTPdfBandCallbackvystavuje kontrakt na pás (index pásu, ofset top-y, bitmapa) s boolovskou návratovou hodnotou, ktorá umožňuje volajúcim predčasne zrušiť pásové vykresľovanieTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.06.0
Version 3.05.0
Pridané (Added)
TPdf.RenderPageProgressiveWithColorSchemeriadi natívnu slučku progresívneho vykresľovania s farebnou schémou pre zrakovo postihnutých prostredníctvomFPDF_RenderPageBitmapWithColorScheme_Start, čo volajúcim umožňuje prepísať farby výplne a ťahu ciest a výplne a ťahu textu pre prístupnosť pri zachovaní slučky Continue vnímajúcej rušenieTPdfColorSchemevystavuje štyri prepisovacie poliaTColorsDefault, ktorý deleguje na vstavané farby PDFium, keď sú všetky poliaclDefaultTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.05.0
Version 3.04.0
Pridané (Added)
TPdf.ExportFDFserializuje hodnoty polí formulára ako dokument FDF (ISO 32000-1 §12.7.11) popri existujúcej ceste XFDF a opätovne používa rovnaký dátový modelTXfdfField, takže volajúci pozbierajú polia raz a emitujú ktorýkoľvek formátFdfExportToStreamaFdfExportToFilevFPdfXfdfvystavujú nízkoúrovňový serializér FDF pre volajúcich, ktorí zostavujú kolekcie polí nezávisle od načítanéhoTPdfTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.04.0
Version 3.03.0
Pridané (Added)
TPdf.SaveAsSanitisedzapisuje čistú kópiu s jedinou revíziou, ktorá zbavuje katalóg aktívneho obsahu (/OpenAction, katalógové/AA,/Names,/AcroForm,/Metadata) a potom prerezuáva nedosiahnuteľné objekty, takže osirotené telá JavaScriptu, akcií a príloh zmiznú z tela súboruTPdfSanitiseOptionsvystavuje nezávislé ovládacie prvky odstraňovania na každý vektor plus voliteľný priechod prerezania dosiahnuteľnosti;TPdfSanitiseReportzaznamenáva počet odstránených záznamov, počet prerezaných objektov, počty bajtov a prípadnú chybuTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.03.0
Version 3.02.0
Pridané (Added)
TPdf.SaveAsPageLabelledzapisuje úplnú kópiu PDF, ktorej číselný strom/PageLabelsv katalógu je nahradený dodanými rozsahmi, pričom aplikuje štýly číslovania desiatkové, rímske veľkými/malými písmenami a písmenové veľkými/malými písmenami s voliteľnými textovými reťazcami predpony a štartovacími číslami podľa ISO 32000-1 §12.4.2TPdfPageLabelRange,TPdfPageLabelRanges,TPdfPageLabelStyleaTPdfPageLabelReportvystavujú model rozsahov, enum štýlu a počty bajtov/rozsahov na uloženie- Existujúce záznamy
/PageLabelsv katalógu sa detegujú a odmietajú, pokiaľ nie je odovzdanéReplaceExisting=True, v takom prípade sa starý záznam odstráni pred vložením nových rozsahov TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.02.0
Version 3.01.0
Pridané (Added)
TPdf.FlattenPageRotationzafixuje aktuálne/Rotatekaždej stránky do prúdu obsahu, rámce strán a obdĺžnikov anotácií a potom resetuje/Rotatena 0 — obaľujeFPDFPageObj_TransformF+FPDFAnnot_GetRect/SetRect+FPDFPage_SetMediaBox/SetCropBox+FPDFPage_SetRotation, takže vizuálne rozloženie sa zachová bez spoliehania sa na zobrazovací hint rotácieTPdfFlattenRotationOptionsvystavuje transformáciu anotácií na stránku, výmenu rámca stránky a ovládacie prvky automatickej aktualizácie;TPdfFlattenRotationReportzaznamenáva spracované, preskočené a zlyhané stránky plus celkový počet transformovaných objektov a anotáciíTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.01.0
Version 3.00.0
Pridané (Added)
TPdf.StampPagesFromPdfopečiatkuje zdrojovú stránku ako umiestnené, škálované, voliteľne rotované prekrytie alebo podklad Form XObject na jednu alebo viac cieľových strán, obaľujúcCreateXObjectFromPage+FPDFPageObj_SetMatrix+FPdfPageObj_SetBlendMode+FPDFPage_InsertObjectAtIndexs explicitnými politikami rámca stránky, ukotvenia, okraja, mierky, rotácie, blendu a z-orderTPdfOverlayOptionsaTPdfOverlayReportvystavujú ovládacie prvky umiestnenia, transformácie, blendu a z-order plus počty opečiatkovaných, zlyhaných a preskočených stránTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 3.00.0
Version 2.99.0
Pridané (Added)
TPdf.RefreshAppearanceselektívne regeneruje prúd vzhľadu jedného widgetu prostredníctvomFPDFAnnot_SetAPa vyhýba sa prestavbe celej stránky cezNeedAppearancesTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.99.0
Version 2.98.0
Pridané (Added)
TPdfView.MouseDownteraz smeruje udalosti pravého tlačidla do natívneho enginu vypĺňania formulárov prostredníctvomFORM_OnRButtonDown, čo umožňuje kontextové ponuky a interakcie widgetov pri kliknutí pravým tlačidlom- Položky mapy ciest 78 (mapovanie anotácií odkazov), 82 (prezentácia widgetov) a 83 (model atribútov štruktúry) potvrdené ako už dokončené prostredníctvom existujúcej infraštruktúry
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.98.0
Version 2.97.0
Pridané (Added)
TPdf.SetDeterministicTimeaTPdf.RestoreActualTimeumožňujú testom a reprodukovateľným zostavám vložiť pevný čas vytvorenia, úpravy a aktuálny čas prostredníctvom podporovaných natívnych spätných volaníTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.97.0
Version 2.96.0
Pridané (Added)
TPdf.GetWidgetAdditionalActionJavaScriptčíta JavaScript dodatočných akcií widgetu pre daný spúšťač udalosti prostredníctvomFPDFAnnot_GetFormAdditionalActionJavaScriptbez vykonania akéhokoľvek skriptuTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.96.0
Version 2.95.0
Pridané (Added)
TPdf.GetObjectTextextrahuje Unicode text textového objektu stránky prostredníctvomFPDFTextObj_GetTextpre presnú úpravu obsahu a diagnostiku kódovaniaTPdf.GetObjectsByTypevracia indexy všetkých objektov stránky zodpovedajúcich kategórii (text, cesta, obrázok, formulár, shading) pre selektívny výstup kategóriíTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.95.0
Version 2.94.0
Pridané (Added)
TPdf.AttachmentHasKey,GetAttachmentStringValueaSetAttachmentStringValuečítajú, zapisujú a skúmajú vlastné hodnoty rozšírení file-spec na vložených príloháchTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.94.0
Version 2.93.0
Pridané (Added)
TPdf.InsertObjectAtIndexvkladá objekt stránky na požadovanú pozíciu v zásobníku prostredníctvomFPDFPage_InsertObjectAtIndexnamiesto vždy pridávania na koniecTPdf.UpdateAnnotationObjectpotvrdzuje upravený objekt vzhľadu anotácie prostredníctvomFPDFAnnot_UpdateObject, takže zmeny objektov stránky vo vlastníctve anotácie spoľahlivo pretrvávajúTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.93.0
Version 2.92.0
Pridané (Added)
TPdf.InsertClipPathvytvára obdĺžnikovú cestu na orezávanie a vkladá ju do aktuálnej stránky cez natívne cestyFPDF_CreateClipPathaFPDFPage_InsertClipPath, čím dopĺňa existujúci inšpektorPageObjectClipPathTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.92.0
Version 2.91.0
Pridané (Added)
TPdf.GetPageComplexityskenuje aktuálnu stránku a hlási počty objektov obrázkov, ciest a textov plus celkový počet segmentov ciest, celkový počet pixelov obrázkov a prítomnosť priehľadnosti pre plánovanie vykresľovaniaTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.91.0
Version 2.90.0
Pridané (Added)
TPdf.IsAnnotationSubtypeSupportedsa pred úpravou pýta načítanej DLL PDFium, ktoré podtypy anotácií podporujeTPdf.ChooseRenderFlagsvyberá natívne príznaky vykresľovania (halftone, obmedzená vyrovnávacia pamäť obrázkov) z konečnej mierky a veľkosti cieľa pre adaptívne podvzorkovanie obrázkovTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.90.0
Version 2.89.0
Pridané (Added)
TPdf.GetTextRenderModevystavuje natívny režim vykresľovania textu (výplň, ťah, orezanie) textového objektu stránky pre diagnostiku vytváraniaTPdf.GetTextObjectRenderedBitmapvykresľuje jediný textový objekt do izolovanej bitmapy prostredníctvom natívnej cestyFPDFTextObj_GetRenderedBitmapTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.89.0
Version 2.88.0
Pridané (Added)
TPdf.GetThumbnailteraz prepadá na vykreslenie náhrady, keď stránka nemá vloženú miniatúru, čím implementuje prednosť vložených miniatúrTPdf.LinkAtPointvracia, či na súradnici v priestore stránky existuje natívny odkaz, pomocouFPDFLink_GetLinkAtPointnamiesto skenovania iba obdĺžnikovTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.88.0
Version 2.87.0
Pridané (Added)
TPdf.AuditActiveContentvracia snímkuTPdfActiveContentAudits počtom akcií JavaScriptu, počtom vložených súborov, počtom podpisov, typom formulára XFA a povoleniami dokumentu bez vykonania akéhokoľvek skriptu alebo akcieTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.87.0
Version 2.86.0
Pridané (Added)
TPdf.GetFeatureInventoryraz skenuje všetky stránky a vracia zjednotený záznam počtov objektov textu, ciest, obrázkov, Form XObject a shadingov spolu s faktami o prílohách, podpisoch, type formulára, povoleniach a verzii PDFTPdfFeatureInventoryagreguje fakty z celého dokumentu, ktoré predtým vyžadovali samostatné volania vlastností, do jedinej snímkyTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.86.0
Version 2.85.0
Pridané (Added)
TPdf.SaveAsReproducibleprepisuje dokument tak, aby dve uloženia rovnakého stavu v pamäti vytvorili bajtovo identický výstup- Nedeterministické časové pečiatky
/Info(/CreationDate,/ModDate) sa odstraňujú a zdrojové/ID(odvodené od bajtov závislých od wall-clock času) sa vynecháva, pričom poradie a generácia objektov zostávajú stabilné TPdfReproducibleReporthlási počty ponechaných a vyradených objektov plus počet odstránených záznamov časových pečiatokTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.85.0
Version 2.84.0
Pridané (Added)
TPdf.SaveAsInlineImagesExternalisedprepisuje dokument s extrakciou každého inline obrázkaBI/ID/EIdo opakovane použiteľného image XObjectu a nahradením inline bloku operátorom/ImN Do- Skratky v slovníku inline obrázkov (
/W,/H,/BPC,/CS,/F, hodnoty farebného priestoru a hodnoty filtrov) sa rozvinú na ich plné názvy image XObjectov, takže extrahovaný objekt je v súlade so štandardom - Slovník
/Resources /XObjectstránky sa aktualizuje o nové odkazy na XObjecty a prepísaný content stream sa komprimuje cez Flate TPdfInlineImageExternaliseReporthlási počty externalizovaných, preskočených a zlyhaných plus počet vytvorených XObjectovTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.84.0
Version 2.83.0
Pridané (Added)
TPdf.SaveAsFlateRecompressedprepisuje dokument a znovu zakóduje vyhovujúce prúdyFlateDecodes maximálnou kompresiou, pričom prúd nahradí len vtedy, keď nameraná úspora bajtov prekročí prah stanovený volajúcimTPdfFlateRecompressOptionsvyberá minimálnu úsporu v bajtoch a minimálny pomer úspory, takže už optimálne prúdy zostávajú nedotknutéTPdfFlateRecompressReporthlási počty rekompresovaných, preskočených a zlyhaných prúdov spolu s celkovými bajtovými objemami pôvodných a rekompresovaných prúdov- Čísla a generácie objektov zostávajú stabilné; menia sa len rekompresované obsahy prúdov a ich priame hodnoty
/Length, takže každý zachovaný krížový odkaz zostáva platný TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.83.0
Version 2.82.0
Pridané (Added)
TPdf.OptimizeImagesprechádza každým objektom obrázka stránky a prevzorkuje nadol tie, ktorých efektívne DPI umiestnenia prekračuje cieľ vybraný volajúcim, a potom potvrdzuje každú dotknutú stránku prostredníctvom natívneho generátora obsahuTPdfImageOptimizeOptionsvyberá cieľové DPI a minimálny pomer, takže sa rekódujú iba obrázky, ktoré sú skutočne nadmerne prevzorkovanéTPdfImageOptimizeReporthlási počty optimalizovaných, preskočených a zlyhaných obrázkov spolu so štruktúrovanou správou o zlyhaní- Prevzorkovanie nadol používa priechod metódou najbližšieho suseda nad natívnym bufferom bitmapy PDFium, zachováva zdrojový formát, stride a alfa kanál a
FPDFImageObj_SetBitmaprekóduje preživší obrázok TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.82.0
Version 2.81.0
Pridané (Added)
TPdf.SaveAsDeduplicatedprepisuje dokument ako jedinú čistú revíziu, ktorá zrúti kompatibilné písma, obrázky a Form XObjekty na jedného zdieľaného zástupcu- Rekurzívny odtlačok obsahu kombinuje každý slovník zdrojov, jeho úplný dosiahnuteľný podgraf a jeho surový obsah prúdu, takže sa duplicity zlúčia iba vtedy, keď je ich celý obsah identický
- Každý krížový odkaz na zlúčenú duplicitu sa prepíše na preživšieho zástupcu, pričom prestavaná klasická tabuľka krížových odkazov udržuje čísla objektov stabilné
TPdfDedupReporthlási počty ponechaných a prerezaných objektov plus počty zlúčených písiem, obrázkov a Form XObjectov na kategóriuTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.81.0
Version 2.80.0
Pridané (Added)
TPdf.SaveAsReachableprepisuje dokument do jednej čistej revízie, ktorá ponechá len nepriame objekty dosiahnuteľné z katalógu a zo slovníka trailer /InfoTPdfPruneReporthlási počty ponechaných a vyradených nepriamych objektov spolu s veľkosťami zdroja a výstupu v bajtoch a štruktúrovanými dôvodmi zlyhania pre šifrovaný alebo poškodený vstup- Nedosiahnuteľné osirelé objekty zanechané inkrementálnymi aktualizáciami, zlučovaním strán alebo opravenými uloženiami sa vyčistia, pričom znovu vybudovaná klasická tabuľka krížových odkazov a trailer zachovajú
/Root,/Infoa/IDbez prečíslovania TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.80.0
Version 2.79.0
Pridané (Added)
TPdf.CreateDocumentSearchvytvára dopredné alebo spätné vyhľadávanie v celom dokumente, ktoré vracia po jednej zhode bez zostavenia textového indexu celého dokumentuTPdfDocumentSearchResulthlási stránku založenú na jednotke, rozsah znakov, nájdený text a obdĺžniky v priestore stránky pre každý výsledok- Sedenia vyhľadávania akceptujú
IPdfCancellationToken, udržiavajú iba aktuálne handly stránky a textu PDFium a bezpečne sa ukončia pri zatvorení dokumentu TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.79.0
Version 2.78.0
Zmenené (Changed)
TPdfRangeRequestSchedulerteraz preemptuje prekrývajúce sa prenosy s nižšou prioritou, takže pre PDFium kritické hinty stránok nečakajú za sťahovaniami na pozadí- Externe dostupné riedke bajty rušia redundantné aktívne prenosy, pričom nahradené alebo duplicitné spätné volania prenosu vracajú False bez publikovania zastaralého pokrytia
- Povýšenie priority zachováva nezávislé histórie opakovaných pokusov a preemptácia prenosu už nespotrebováva rozpočet opakovaní neovplyvnených chvostov rozsahov
TPdfRangeRequestStatistics.SupersededRequestCounthlási prácu prenosu vytlačenú hintmi s vyššou prioritou alebo externe dodaným pokrytímTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.78.0
Version 2.77.0
Pridané (Added)
TPdf.SaveAsNormalizedContentzapisuje syntakticky normalizovaný obsah strán do prúdu alebo atomicky nahradeného súboru a hlási počty normalizovaných, preskočených a zlúčených stránNormalizePdfContentSequenceposkytuje obmedzenú samostatnú normalizáciu tokenov pre dekódované sekvencie content streamu
Zmenené (Changed)
- Polia
/Contentsstrán je teraz možné zlúčiť do jedného prúdu pri zachovaní reťazcov, mien, obsahov inline obrázkov, neznámych operátorov a grafického stavu naprieč prúdmi - Pre chybné tokeny, nevyvážené rozsahy stavov, nepodporované filtre, šifrovaný vstup a prepisy podpísaných dokumentov existujú explicitné politiky a štruktúrované hlásenie stavu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.77.0
Version 2.76.0
Pridané (Added)
TPdfStreamInspectorinventarizuje ľubovoľné fyzické objekty prúdov PDF a hlási ofsety objektov, surové dĺžky, reťazce filtrov, DecodeParms, značky externých súborov, stav šifrovania a natívne cesty obrázkov alebo prílohCopyRawDatakopíruje úplné zakódované payloady alebo validované bajtové okná, zatiaľ čoDecodeDataaplikuje prediktory ASCIIHex, ASCII85, LZW, Flate, RunLength, TIFF 8-bit a PNG v deklarovanom poradíTPdfStreamInspectOptionsobmedzuje prostriedky pre zdroj, surové a dekódované dáta, slovník, počet prúdov a pomer expanzie, so štruktúrovanými hláseniami pre limity, poškodené dáta, nepodporované kodeky, šifrovanie a zlyhania zápisu
Zmenené (Changed)
- Určovanie dĺžky prúdu teraz vystavuje presné rozpätia pre priame aj nepriame hodnoty
/Length, vrátane prúdov s nulovou dĺžkou a payloadov obsahujúcich literálnu sekvenciuendstream TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.76.0
Version 2.75.0
Pridané (Added)
TPdfLoadOptionspridáva kompatibilné, prísne politiky a politiky obnovy k načítavaniu zo súboru, pamäte, rozsahu bajtov a vlastného prúduTPdfLoadReporthlási natívnu cestu obnovy, platnosť xref, poškodené ofsety, konflikty záznamov, počty revízií, rozpočty auditu a štruktúrované problémy pre klasické, hybridné dokumenty a dokumenty xref-streamTPdf.SaveAsRepairedvytvára úplnú kópiu s jedinou revíziou a nezávisle ju prísne načítava pred doručením overeného prúdu alebo atomickým nahradením cieľového súboru
Zmenené (Changed)
- Existujúce preťaženia načítania si zachovávajú kompatibilné správanie a teraz publikujú natívnu platnosť xref a stav obnovy prostredníctvom
LastLoadReport - Prísne načítanie odmieta dokumenty, ktoré vyžadovali natívnu prestavbu xref alebo zlyhali v štrukturálnom audite, pričom výstup opravy podpísaného dokumentu vyžaduje explicitnú autorizáciu volajúceho
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.75.0
Version 2.74.0
Pridané (Added)
TPdf.MergeFileszlučuje zoznamy zdrojov zo súborov s rozsahmi strán a heslami na zdroj, pričom udržuje otvorený najviac jeden zdrojový dokumentTPdfBatchMergeOptionspridáva spracovanie chýb stop alebo skip, importy v rozsahu zdroja alebo po kúskoch, politiky formulárov a osnovy, ovládanie vkladania, spätné volania priebehu, rušenie, kopírovanie preferencií prehliadača a ovládanie odvolaniaTPdfBatchMergeReporthlási potvrdené a odvolané stránky, výsledky zdrojov, natívne volania importu, najväčšiu dávku, špičkové otvorené zdroje, detekcie politík, problémy a terminálny status
Zmenené (Changed)
- Predvolená dávková cesta vykonáva jeden natívny import stránok na zdroj, takže PDFium môže opakovane použiť klonované objekty v rámci daného zdroja, a potom zdroj zatvorí pred otvorením ďalšieho súboru
- Režim po kúskoch poskytuje jemnejšie body rušenia a menšie natívne dávky, pričom zlyhané čiastočné zdroje a výsledky stop alebo zrušenia môžu odstrániť všetky stránky vložené operáciou
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.74.0
Version 2.73.0
Pridané (Added)
TPdfRandomAccessStoreposkytuje vláknovo bezpečné sekvenčné a pozicionované I/O, udržiava malý obsah v obmedzenej pamäti a raz prepadá do súkromného dočasného úložiska pri strope vybranom volajúcimTPdf.SaveMemoryLimitaSaveTemporaryDirectorykonfigurujú prípravu ukladania, pričomLastSaveSpillCountaLastSaveLargestMemoryBuffervystavujú merateľnú diagnostiku na uloženie
Zmenené (Changed)
- Buffery prípravy ukladania, konverzie štandardov, validácie, šifrovania, DSS a PAdES teraz zdieľajú obmedzené pracovné úložisko s výhradnými spill súbormi mazanými pri zatvorení a čistením pamäte
- Vlastné spätné volania blokov PDFium serializujú bežné presuny v prúdoch a používajú pozicionované čítania nezávislé od kurzora, keď sú podložené
TPdfRandomAccessStore - Sken schopností XFA zo súboru teraz číta prekrývajúce sa bloky pevnej veľkosti namiesto kopírovania úplného PDF do pamäte
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.73.0
Version 2.72.0
Pridané (Added)
TPdf.BeginIncrementalSave,CommitIncrementalSaveaEndIncrementalSaveposkytujú sedenie revízií, ktoré pripája iba zmenené alebo novo vytvorené nepriame objektyTPdfIncrementalCommitInfohlási počet zmenených objektov, pripojené bajty, celkové bajty výstupu a počet úspešných revízií pre každý commit
Zmenené (Changed)
- Každý zmenený commit zachováva úplný predchádzajúci výstup ako presnú bajtovú predponu, pri ničom nezmenenom neemituje žiadnu revíziu a pokračuje vo formáte zdroja klasickom alebo xref-stream
- Natívny inkrementálny výstup xref-stream sa opravuje s jeho požadovaným typom, vlastným záznamom, dĺžkou, indexom a terminátorom objektu pred ďalším spracovaním
- Šifrované dokumenty sa odmietajú pred začatím sedenia, pričom podpísané dokumenty vyžadujú explicitné povolenie volajúceho, takže politiku podpisov nemožno omylom obísť
- Súborové preťaženie dokončuje súvisiaci dočasný súbor pred atomickým nahradením cieľa a vracia stav sedenia späť po akomkoľvek zlyhaní zápisu alebo nahradenia
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.72.0
Version 2.71.0
Pridané (Added)
TPdf.SaveAsObjectStreamzapisuje súbory PDF 1.5+ s obmedzenými komprimovanými skupinami objektov a čistým xref prúdom obsahujúcim úplné záznamy typu 2PackPdfObjectStreamsmôže modernizovať klasický, hybridný, xref-stream a existujúci vstup object-stream po vyriešení aktívnej revízie
Zmenené (Changed)
- Lokálne usporiadanie objektov strán, adaptívne šírky polí xref, priamy prístup ku katalógu a konfigurovateľné stropy členov a dekódovaných bajtov vyrovnávajú veľkosť súboru s výkonom náhodného prístupu
- Súborové preťaženie dokončuje súvisiaci dočasný súbor pred atomickým nahradením cieľa, pričom neplatné možnosti inkrementálne, verzie a zoskupovania sa odmietajú pred začatím výstupu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.71.0
Version 2.70.0
Pridané (Added)
TPdf.SaveAsLinearizedzapisuje skutočné PDF Fast Web View do prúdu alebo súboru pomocou zoskupovania objektov prvej stránky, dvoch sekcií krížových odkazov a tabuliek hintov Annex F pre ofsety strán a zdieľané objekty- Aktívni členovia object-stream sa materializujú automaticky, čo umožňuje, aby sa vstupy xref-stream a object-stream stali výstupom priateľským k rozsahom bez zmeny viditeľného obsahu stránok
Zmenené (Changed)
- Súborové preťaženie dokončuje súvisiaci dočasný súbor pred atomickým nahradením cieľa, pričom preťaženie prúdu si zachováva bežné možnosti ukladania PDFium a explicitné kontroly verzií
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.70.0
Version 2.69.0
Pridané (Added)
TPdfRangeRequestSchedulerkonvertuje hinty rozsahov bajtov PDFium na prioritizovanú, zlúčenú a veľkosťou obmedzenú prácu prenosu bez vynútenia súvislého sťahovania- Úplné a čiastočné dokončenie, obmedzené opakované pokusy, deduplikácia riedkej dostupnosti, štatistiky požiadaviek a rušenie bezpečné voči generáciám podporujú pipeline HTTP Range a vlastných prenosov
TPdfProgressiveDocument.RangeRequestsautomaticky prijíma hinty dokumentu, formulára a stránky a povyšuje iba presné bajty, ktoré blokujú interaktívnu stránku
Zmenené (Changed)
CancelProgressiveLoadteraz ruší aktívnu prácu rozsahov pred natívnou dostupnosťou a rozobratím prúdu a zastarané dokončenia prenosu sa bezpečne ignorujúTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.69.0
Version 2.68.0
Pridané (Added)
TPdfProgressiveDocumentudržiava sedenie dostupnosti PDFium nažive, kým vzdialený alebo rastúci prúd s náhodným prístupom prijíma rozsahy bajtov, ktoré PDFium požadujeCheckDocumentAvailability,CheckFormAvailabilityaLoadAvailablePagevracajú zlúčené hintyTPdfDownloadRange, takže hostiteľ môže načítať iba dáta potrebné na otvorenie a zobrazenie linearizovanej stránkyAvailableByteCountpodporuje monotonické súvislé sťahovania, pričomOnDataAvailablepodporuje riedke vyrovnávacie pamäte rozsahov mimo poradia
Zmenené (Changed)
- Linearizované súbory používajú natívne brány progresívneho dokumentu, formulára a stránky PDFium; nelinearizované súbory automaticky prepnú na natívny loader vlastného prúdu po prítomnosti úplného súboru
TPdfStreamAdaptermôže vystaviť logickú konečnú veľkosť odlišnú od aktuálne uložených bajtov, pričom zachováva explicitný limit 4 GiBFPDF_FILEACCESSTPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.68.0
Version 2.67.0
Pridané (Added)
TPdfView.AllowFormEventsvypína udalosti myši, klávesnice a zamerania, ktoré prehliadač preposiela do vrstvy vypĺňania formulárov, určené pre prehliadač len na čítanie alebo taký, ktorý riadi interakciu s formulárom sám- Polia formulárov sa s ním vypnutým stále vykresľujú normálne: načítanie a zatvorenie stránky sú zámerne ponechané bez brány, pretože tie inicializujú vrstvu formulára namiesto reakcie na vstup
- Prepínač sa pridáva k existujúcim prepínačom
AllowUserPageChangeaAllowUserTextSelectiona predvolene je True, takže existujúce správanie sa nemení
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.67.0
Version 2.66.0
Pridané (Added)
- Pomenované akcie, ktoré dokument vyvolá (ISO 32000-1 §12.6.4.11), teraz dorazia k hostiteľovi prostredníctvom novej udalosti
OnNamedAction; predtým sa každá z nich zahodila - Ak sa nespracujú, štyri štandardné navigačné mená —
NextPage,PrevPage,FirstPage,LastPage— presunú stránku s pripevnením na prvú a poslednú namiesto pretočenia TPdf.PerformNamedActionumožňuje aplikácii spustiť rovnaké správanie priamo a vracia False pre meno, ktoré nemá význam dodaný knižnicou
Opravené (Fixed)
- Šifrovací test meral telo prúdu spätným skenovaním od
endstream, čo občas zamieňalo bajt šifrotextu za terminátor riadku a hlásilo intermitentné zlyhanie; knižnica bola počas celého času správna
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.66.0
Version 2.65.0
Pridané (Added)
BuildToUnicodeCMapgeneruje ToUnicode CMap (ISO 32000-1 §9.10.3), ktoré CID písmo potrebuje, aby jeho text bolo možné kopírovať, vyhľadávať a čítať asistívnou technológiou — bez neho sa text vykreslí správne, ale extrahuje sa ako nič- Záznamy sa zoskupujú na limite 100 na blok, ktorý stanovuje špecifikácia, duplicitné glyfy sa zapíšu raz a
.notdefsa preskočí - CMap nasleduje konvenciu CID = GID, takže vedľa neho nie je potrebný žiadny prúd
CIDToGIDMap
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.65.0
Version 2.64.0
Pridané (Added)
- Anotácie ink a stamp kreslia seba samé zo svojich vlastných objektov strán namiesto z prúdu obsahu stránky a tieto objekty sú teraz dosiahnuteľné:
AnnotationObjectCountaAnnotationObjectInfoich čítajú,AddPathToAnnotationodovzdáva anotácii cestu postavenú pomocouCreatePathaRemoveAnnotationObjectjednu maže - Stavba vzhľadu pečiatky už nevyžaduje externý nástroj: vytvorte cestu ako zvyčajne a potom ju odovzdajte anotácii namiesto stránke
- PDFium akceptuje objekty strán iba na podtypoch ink a stamp, takže každý iný podtyp sa odmietne so správou uvádzajúcou obmedzenie namiesto nezrozumiteľného zlyhania
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.64.0
Version 2.63.0
Pridané (Added)
TPdf.AddStandardFontTextkreslí text jedným z 14 písiem, ktoré musí poskytovať každý čítač PDF, bez akéhokoľvek vloženia programu písma — výsledný súbor je merateľne menší než ten istý text kreslený pomocouAddText, ktoré vkladá systémový rez, ktorý nájde- Nový enum
TPdfStandardFontpomenúva všetkých 14 rezov, takže volajúci nemôže preklepať meno základného písma; PDFium tieto mená porovnáva presne a preklep by mlčky nevydal žiadne písmo - PDF/A aj PDF/X vyžadujú vloženie každého písma, takže výstup zameraný na tieto profily by mal naďalej používať
AddText
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.63.0
Version 2.62.0
Pridané (Added)
TPdf.TextObjectGlyphOutlinevracia obrys jedného glyfu písma textového objektu ako segmenty cesty, na konverziu textu na vektorovú grafiku alebo preskúmanie glyfu, ktorý mohla zmeniť substitúcia písma- Výsledok opätovne používa existujúci typ
TPdfPathSegments, takže sa číta presne ako obrys kresleného objektu cesty - Súradnice sú vo vlastnom návrhovom priestore písma, normalizované tak, že jedno em je 1.0; požadovaná veľkosť písma ich neškáluje, takže volajúci, ktorý chce jednotky zariadenia, násobí samotnou bodovou veľkosťou
- Prázdny výsledok znamená, že písmo pre daný glyf nevystavuje žiadny obrys, čo nie je chyba; žiadosť o glyf netextového objektu vyvolá výnimku
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.62.0
Version 2.61.0
Pridané (Added)
TPdf.InspectAvailabilityhlási, čo dokáže PDFium povedať o PDF bez jeho načítania ako dokumentu: či je súbor linearizovaný (“web optimalizovaný”), či by sa úplná analýza podarila, či nesie dáta formulára a ktorú stránku by prehliadač zobrazil ako prvú- Nové typy
TPdfAvailability,TPdfLinearizationaTPdfFormAvailabilitynesú odpovede; prúd sa číta, ale nezachováva sa a jeho pozícia sa pri návrate obnoví - Toto zatvára poslednú medzeru v rodine
FPDFAvail_*, ktorá bola naviazaná a načítaná, ale nemala žiadneho volajúceho nikde v knižnici - Delphi, Lazarus a C++Builder každý pokrývajú hlásené fakty, garanciu pozície prúdu a odmietnutie nil prúdu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.61.0
Version 2.60.0
Pridané (Added)
- Označený obsah (ISO 32000-1 §14.6) je teraz dosiahnuteľný z API vysokej úrovne:
PageObjectMarksčíta každú značku BDC a jej zoznam vlastností z objektu stránky,AddPageObjectMarkjednu zapisuje,RemovePageObjectMarkjednu maže aPageObjectMarkedContentIDhlási MCID - Nové typy
TPdfContentMark,TPdfContentMarkParamaTPdfMarkParamKindnesú meno značky a jej typované parametre (integer, float, string, blob), pričom druh hodnoty sa rieši z PDFium namiesto hádania podľa gettera, ktorý uspeje - Pridanie značky prestaví prúd obsahu stránky, takže značka prežije uloženie; toto muselo byť explicitné, pretože
SaveAssám o sebe obsah neregeneruje - Delphi, Lazarus a C++Builder každý nesú šesť prípadov, vrátane jedného, ktorý nafúkne uložený prúd obsahu, aby potvrdil, že operátor BDC a jeho zoznam vlastností naozaj pristáli
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.60.0
Version 2.59.0
Pridané (Added)
TPdfAnnotationzískavaHasLinkUriaLinkUri, takžeCreateAnnotationteraz dokáže vytvoriť funkčný webový odkaz: anotácia sa uloží s akciou/URIsmerujúcou na zadanú adresu- Nastavenie URI odkazu na hocijakom inom podtype než
anLinkvyvolá výnimku, pretože slovník akcií nesie iba anotácia Link - Pole je zatiaľ určené len na zápis; spätné načítanie cieľa odkazu vedie cez rodinu
FPDFLink_*, ktorá potrebuje handle dokumentu - Delphi, Lazarus aj C++Builder overia, že uložené bajty nesú akciu
/URIaj cieľovú adresu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.59.0
Version 2.58.12
Pridané (Added)
- Validácia PDF/X hlási
pvxiTrimBoxWithArtBox, keď stránka nesie súčasne/TrimBoxa/ArtBox; oba popisujú finálnu stranu, takže RIP nemá ako zistiť, ktorý z nich je záväzný (ISO 15930) - Validácia PDF/X hlási
pvxiPageBoxOutsideMediaBox, keď/TrimBoxalebo/BleedBoxpresahuje mimo/MediaBox, vrátane boxu so záporným počiatkom; box za hranicou média sa nedá vyobraziť - Obdĺžniky sa pred porovnaním normalizujú, takže akceptuje sa ľubovoľné poradie rohov a box, ktorý sa presne dotýka okraja média, stále prejde
- Reporty preflightu klasifikujú oba problémy pod štruktúru a menujú konkrétnu nápravu
- Delphi, Lazarus aj C++Builder pokrývajú oba odmietnuté prípady aj konformný prípad
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.12
Version 2.58.11
Pridané (Added)
- Validácia PDF/UA hlási
pvuaiTociWithoutToc, keď dokument označuje záznamy TOCI, ale nikdy neoznačí kontajner TOC, do ktorého patria, čo necháva asistívnu technológiu oznamovať položky obsahu bez obsahu (ISO 14289-1 §7.7) - Reporty preflightu klasifikujú problém pod štruktúru a odporúčajú zabaliť záznamy do prvku TOC
- C++Builder získava svoje prvé testovacie pokrytie PDF/UA popri prípadoch Delphi a Lazarus
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.11
Version 2.58.10
Pridané (Added)
- Validácia PDF/A hlási
pvaiSymbolicTrueTypeEncoding, keď symbolické písmo TrueType nesie záznam/Encoding; ISO 19005-1 §6.3.7 pripúšťa iba vstavanú cmap tabuľku písma, takže/Encodingby jej odporoval - Príznak symbolického písma sa číta z
/FontDescriptor, či už je zapísaný inline v slovníku písma, alebo sa odkazuje nepriamo; nesymbolické písmo si ponechá svoje povinné/WinAnsiEncodingalebo/MacRomanEncodingbez toho, aby bolo označené - Reporty preflightu klasifikujú problém pod obsah a odporúčajú záznam odstrániť
- Delphi a Lazarus pokrývajú označený prípad plus oba akceptované prípady; C++Builder pokrýva označený prípad a prípad nesymbolického písma
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.10
Version 2.58.9
Pridané (Added)
- Validácia PDF/A hlási implementačné limity kontajnerov z Annex C ISO 19005-1:
pvaiNameOverLimitpre mená dlhšie než 127 bajtov,pvaiArrayOverLimitnad 8191 prvkov,pvaiDictOverLimitnad 4095 záznamov apvaiNestingOverLimitnad 28 úrovní vnorenia - Limity sú inkluzívne, takže kontajner presne na limite stále validuje; testy pripínajú obe strany každej hranice, odmietnutú aj akceptovanú
- Reporty preflightu klasifikujú štyri problémy pod štruktúru a v každom odporúčaní pomenúvajú konkrétny limit
- Delphi a Lazarus pokrývajú všetky štyri limity plus hraničné prípady; C++Builder pokrýva limit poľa a hranicu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.9
Version 2.58.8
Pridané (Added)
- Validácia PDF/R hlási
pvriPageImageMismatch, keď počet obrázkov nezodpovedá počtu strán; ISO 23504-1 §6.5.1 robí z každej stránky presne jeden pruhový obrázok, takže stránka bez obrázka alebo s niekoľkými nevyhovuje - Testy Delphi, Lazarus a C++Builder pokrývajú stránku bez obrázka, stránku s dvoma a vyhovujúci prípad s jedným obrázkom
Zmenené (Changed)
- Testy injektáže značiek PDF/R teraz začínajú od zdrojovej stránky, ktorá už nesie pruhový obrázok, pretože injektáž značiek pridáva metadáta a nemôže dodať obsah stránky
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.8
Version 2.58.7
Pridané (Added)
- Validácia PDF/R hlási
pvriFontForbidden, keď stránka menuje zdroj písma; stránka PDF/raster nesie naskenovaný obrázok a nič viac (ISO 23504-1 §6.5.2) - Validácia PDF/R hlási
pvriForbiddenImageFilterpre pruhové kódovania mimo bieleho zoznamu, takže/LZWDecode,/RunLengthDecode,/ASCII85Decode,/ASCIIHexDecode,/JBIG2Decodea/Cryptsa odmietajú, kým/CCITTFaxDecode,/DCTDecode,/JPXDecodea/FlateDecodeprechádzajú (ISO 23504-1 §6.6) - Reporty preflightu klasifikujú oba problémy pod obsah a odporúčajú konkrétnu nápravu
- Testy Delphi, Lazarus a C++Builder pokrývajú zdroj písma, odmietnutý filter a stránku používajúcu výhradne kódovania z bieleho zoznamu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.7
Version 2.58.6
Pridané (Added)
- Validácia PDF/E hlási
pveiFontNotEmbedded, keď dokument vykazuje použitie písiem, ale nenesie žiadny vložený program písma; požiadavka sa tak kontroluje na ceste bez DLL aj cez PDFium - Inžinierska kresba sa musí aj o desaťročia neskôr vykresliť identicky, takže ISO 24517-1 neoslobodzuje žiadne zo 14 štandardných písiem; kontrola sa rovnako vzťahuje na
/Type1,/TrueType,/Type0aj/MMType1 - Reporty preflightu klasifikujú nový problém pod obsah a odporúčajú vložiť každý program písma
- Testy Delphi, Lazarus a C++Builder pokrývajú deskriptor bez programu, vložený
/FontFile2a dokument, ktorý nepoužíva žiadne písmo
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.6
Version 2.58.5
Pridané (Added)
InjectPdfEMarkersteraz zapisuje output intent, ktorý vyžaduje ISO 24517-1 §6.2: vložený cieľový profil sRGB ICC, output intent/GTS_PDFE1, ktorý sa naň odvoláva, a pole/OutputIntentsv katalógu — všetko v rámci tej istej inkrementálnej aktualizácie- Prúd profilu odvodzuje
/Nz hlavičky ICC namiesto predpokladu troch zložiek, takže aj CMYK profil by bol popísaný správne - Validácia PDF/E hlási
pveiMissingOutputIntentapveiMissingIccProfile, takže kandidát bez uvedenej farebnej podmienky už nie je akceptovaný - Testy Delphi, Lazarus a C++Builder pokrývajú akceptovaný output intent, output intent bez cieľového profilu a katalóg úplne bez output intentu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.5
Version 2.58.4
Pridané (Added)
- Validácia PDF/X teraz hlási
pvxiFontNotEmbeddedzo skenu bajtov, takže nevložené písmo sa odchytí už na ceste bez DLL a nie len cez kontrolu vykonávanú cez PDFium - Na rozdiel od PDF/A sa 14 štandardných písiem v PDF/X neoslobodzuje, takže hlási sa každé použitie písma bez vloženého programu písma
- Kontrola zostáva konzervatívna: spustí sa len vtedy, keď súbor síce vykazuje použitie písma, ale nenesie vôbec žiadny
/FontFile,/FontFile2ani/FontFile3, pretože počítanie deskriptorov voči programom dáva pri zdieľaných deskriptoroch falošné poplachy - Testy Delphi, Lazarus a C++Builder pokrývajú deskriptor bez programu, vložený program a dokument, ktorý nepoužíva žiadne písmo
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.4
Version 2.58.3
Pridané (Added)
- Validácia PDF/X teraz hlási
pvxiColorSpaceForbidden, keď kandidát na PDF/X-1a nesie/DeviceRGB,/CalRGBalebo/Lab, ktoré ISO 15930-1 §6.2 z výmeny postavenej na CMYK vylučuje - Kontrola sa obmedzuje výhradne na PDF/X-1a, takže PDF/X-3 a novšie naďalej pripúšťajú RGB a priestory nezávislé od zariadenia, ktoré s output intentom kombinujú
- Testujú sa len jednoznačné tokeny mien farebných priestorov; prúd
ICCBasedsi vyžaduje vyriešené/Na ostáva na vrstve objektového modelu - Testy Delphi, Lazarus a C++Builder pokrývajú označený priestor RGB, označený priestor Lab, akceptovanú dvojicu CMYK a grayscale aj povolený prípad na PDF/X-3
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.3
Version 2.58.2
Pridané (Added)
- Validácia PDF/X teraz hlási
pvxiTransparencyForbiddenpri skupine priehľadnosti alebo aktívnej soft maske, ktoré ISO 15930-1 §6.2 (PDF/X-1a) a ISO 15930-3 §6.3 (PDF/X-3) zakazujú - Kontrola sa riadi zistenou konformanciou, takže PDF/X-4 a PDF/X-6 naďalej pripúšťajú priehľadnosť a súbor, pri ktorom sa úroveň nepodarilo identifikovať, sa nikdy neoznačí kvôli pravidlu, ktoré naň nemusí platiť
- Soft maska explicitne vypnutá cez
/SMask /Nonesa za priehľadnosť nepovažuje PdfHasActiveSMasksa presunul zFPdfPdfado rozhraniaFPdfPdfCommon, aby všetky validátory mohli zdieľať jedno pravidlo pre soft masku- Testy Delphi, Lazarus a C++Builder pokrývajú označenú skupinu na X-1a, označenú soft masku na X-3, vypnutú soft masku a povolený prípad na X-4
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.2
Version 2.58.1
Pridané (Added)
- Validácia PDF/X teraz kontroluje tvar output intentu požadovaného ISO 15930-7 §6.2.4:
pvxiOutputIntentSchemehlási podtyp, ktorý je síce prítomný, ale nie je to/GTS_PDFX, apvxiOutputIntentMissingIdentifierhlási chýbajúce/OutputConditionIdentifier - Podtyp sa porovnáva ako celý token mena, takže dlhšie meno ako
/GTS_PDFXVersionuž neprejde, zatiaľ čo escapovaný zápis#xxtoho istého mena prejde stále - Output intent, ktorý vôbec nenesie žiadny podtyp, sa nerieši, pretože jeho absenciu už hlásia problémy na úrovni značiek
- Reporty preflightu zaraďujú oba problémy do kategórie output intent a navrhujú opravu
- Testy Delphi, Lazarus a C++Builder pokrývajú akceptovaný podtyp, podtyp PDF/A, dlhší token mena, chýbajúci podtyp a chýbajúci identifikátor podmienky
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.58.1
Version 2.58.0
Zmenené (Changed)
- Všetkých 35 spätných volaní, ktoré PDFium vyvoláva zo svojich vlastných rámcov C++ (vypĺňanie formulárov, XFA, platforma JavaScript, pauza progresívneho vykresľovania a čítanie a zápis prúdov), teraz zachytáva akúkoľvek výnimku Pascal a vracia zdokumentovanú hodnotu zlyhania namiesto odvíjania cez jazykovú hranicu
- Spracovateľ udalosti, ktorý vyvolá výnimku, zlyhávajúca alokácia alebo neočakávaná chyba vnútri spätného volania preto už nemôže zrúšiť proces ani nechať PDFium v nedefinovanom stave
Opravené (Fixed)
- Registrácia časovača formulára uniekala svoj záznam, keď sa nepodarilo vytvoriť podkladový časovač
Pridané (Added)
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú ukladanie do cieľového prúdu, ktorý odmieta zápisy, a potvrdzujú, že dokument zostáva potom použiteľný a uložiteľný
Version 2.57.8
Opravené (Fixed)
- Staršie vydania Delphi (XE5 a staršie) prestali kompilovať skúšobnú knižnicu s
E2003 Undeclared identifier: 'GetTickCount64'vFPdfPades.pas, pretože jednotka Windows dodávaná s týmito kompilátormi tento symbol neexportuje - Rovnaké kompilátory zlyhávali aj na
GetUserDefaultLocaleNamevPDFium.pasa na priradeníTBytesdoarray of BytevGetXfaFormPackets, takže spätné volanie locale XFA a snímka paketov sa teraz stavajú aj na týchto kompilátoroch
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.8
Version 2.57.7
Zmenené (Changed)
- Každý prepis na strane ukladania teraz cieľový prúd pred zápisom skráti, namiesto toho aby ho len presunul späť na začiatok, takže buffer dodaný volajúcim, ktorý už obsahoval dlhší dokument, nemôže za novým
%%EOFponechať zastaraný chvost - Testy Delphi, Lazarus a C++Builder teraz pokrývajú ukladanie do predvyplneného prúdu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.7
Version 2.57.6
Opravené (Fixed)
- Sken objektov, ktorý predchádza šifrovaniu, akceptoval behy číslic ľubovoľnej dĺžky, takže dlhé číslo na ľubovoľnom mieste v súbore sa mohlo prelomiť do záporného alebo falošného čísla objektu a pridať fantómový záznam do prestavanej tabuľky krížových odkazov
- Čísla objektov nad limit Annex C ISO 32000-1 a generácie nad 65535 sa teraz odmietajú ako hlavičky objektov namiesto skrátenia
Pridané (Added)
- Testy Delphi, Lazarus a C++Builder teraz potvrdzujú presný počet používaných záznamov prestavanej tabuľky
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.6
Version 2.57.5
Opravené (Fixed)
- Šifrovanie s
EncryptMetadata = Falsezapísalo/EncryptMetadata falsedo slovníka Encrypt, ale napriek tomu zašifrovalo stream metadát dokumentu, takže čítačka riadiaca sa týmto vyhlásením našla nečitateľné XMP - Stream
/Type /Metadatasa teraz kopíruje nezmenený, keď je šifrovanie metadát vypnuté, zatiaľ čo každý ďalší stream sa naďalej šifruje
Pridané (Added)
AnsiNameTokenMatchesKeyje teraz súčasťou rozhraniaFPdfPdfCommonpre porovnania mien s ohľadom na oddeľovače- Testy Delphi, Lazarus a C++Builder teraz pokrývajú oba režimy šifrovania metadát
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.5
Version 2.57.4
Opravené (Fixed)
- Tabuľka krížových odkazov prestavaná počas šifrovania vynechala povinnú hlavičku voľného zoznamu objekt 0 vyžadovanú ISO 32000-1 §7.5.4, takže jej prvá podsekcia začínala o jeden objekt neskôr
- Každý prestavaný záznam uvádzal generáciu 0; objekty zapísané s vyššou generáciou si ju teraz ponechávajú, takže tabuľka súhlasí s hlavičkami objektov, na ktoré ukazuje
Pridané (Added)
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú záznam hlavičky voľného zoznamu a zachovanie generácie v prestavanej tabuľke
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.4
Version 2.57.3
Opravené (Fixed)
- Šifrovaný výstup zahodil kľúčové slovo
streamkaždého objektu streamu, takže uložený súbor už nebol platnou syntaxou PDF a prísne čítačky hlásili obsah stránky ani ako stream, ani ako pole streamov - Prepis
/Lengthhľadal/Lengthako obyčajný podreťazec, takže slovník streamu nesúci/Length1(ktorékoľvek vložené písmo) mal poškodený názov kľúča, zatiaľ čo skutočná dĺžka zostala zastaraná - Stream uvádzajúci svoju dĺžku nepriamo ako
/Length N 0 Rmal číslo objektu prepísané novou dĺžkou; záznam sa teraz nahrádza priamou zašifrovanou dĺžkou - Slovník streamu úplne bez
/Lengthteraz jednu dostane, namiesto toho, aby čítačka ostala bez dĺžky
Pridané (Added)
AnsiFindDictKeyTokenje teraz súčasťou rozhraniaFPdfPdfCommonpre vyhľadávanie kľúčov slovníka na najvyššej úrovni s ohľadom na oddeľovače- Testy Delphi, Lazarus a C++Builder teraz pokrývajú zachovanie
/Length1, náhradu nepriamej dĺžky a súlad veľkosti tela streamu
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.3
Version 2.57.2
Opravené (Fixed)
SaveAsEncryptedaSaveAsEncryptedToStreamsRevision = erR6produkovali dokumenty, ktoré odmietali vlastné správne heslo zhruba v jednom súbore zo štyroch, pretože počítadlo kôl algoritmu 2.B podľa ISO 32000-2 §7.6.4.3 začínalo o jedno kolo nižšie a to navyše kolo zmenilo hodnoty/U,/O,/UEa/OE- Šifrované dokumenty R6 sa teraz otvoria heslom používateľa alebo vlastníka v ľubovoľnej konformnej čítačke a nesprávne heslo stále odmietajú
Pridané (Added)
- Testovacie sady Lazarus a C++Builder získali pokrytie šifrovania, ktoré predtým existovalo len v Delphi: dĺžky kľúčov R6, polia slovníka Encrypt, opakovaný cyklus zašifrovania a opätovného otvorenia a odmietnutie nesprávneho hesla
Zmenené (Changed)
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.2
Version 2.57.1
Zmenené (Changed)
- Písanie do poľa formulára, presúvanie kurzora a prepínanie začiarkávacích políčok teraz prekresľujú iba oblasť, ktorú PDFium hlási ako poškodenú, namiesto celého prehliadača
- Boxy poškodenia sa normalizujú pre os Y stránky smerujúcu nahor, rozširujú o jeden pixel, aby okraje widgetov s anti-aliasingom zostali čisté, a orežú na viditeľnú klientskú oblasť
- Box poškodenia, ktorý je úplne odskrolovaný mimo zobrazovaciu oblasť, už neplánuje prekreslenie, pričom neaktívne zobrazenie alebo nenamapovaná stránka stále prepadá na plné prekreslenie
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú obmedzenú invalidáciu formulárov, preklopené boxy strán, boxy mimo obrazovky a bezpečnosť neaktívneho zobrazenia
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.1
Version 2.57.0
Pridané (Added)
TPdfThumbnailView.Orientationpodporuje vertikálne a horizontálne rozloženia miniatúr pri zachovaní existujúceho vertikálneho predvoleného nastaveniaFirstVisiblePageIndex,LastVisiblePageIndexaEnsureCurrentPageVisiblevystavujú a ovládajú zobrazovaciu oblasť miniatúr s indexami stránok založenými na jednotke
Zmenené (Changed)
- Zmena
CurrentPageIndexteraz posunie vybranú miniatúru do viditeľnej oblasti v oboch orientáciách - Testy Delphi, Lazarus a C++Builder teraz pokrývajú predvolené nastavenia orientácie, prepínanie, viditeľné rozsahy a viditeľnosť vybranej stránky
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.57.0
Version 2.56.2
Zmenené (Changed)
HighlightSearchText,AddSearchTextHighlightaClearHighlightteraz invalidujú iba obdĺžniky zariadenia pre vyhľadávacie rozsahy, ktoré boli pridané alebo odstránené, namiesto prekreslenia celého prehliadača- Nahradenie zvýraznení rovnakými zhodami alebo pridanie duplicitných zhôd už neplánuje zbytočné prekreslenie
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú ohraničenú invalidáciu, idempotentné aktualizácie, čistenie a bezpečnosť neaktívneho prehliadača
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.56.2
Version 2.56.1
Zmenené (Changed)
TPdfThumbnailViewteraz opätovne používa vykreslené bitmapy pre stránky, ktoré zostávajú viditeľné naprieč prekresleniami a priľahlými pozíciami posunu- Vyrovnávacia pamäť uchováva iba aktuálny viditeľný rozsah stránok a uvoľňuje položky presne vtedy, keď stránky opustia tento rozsah, keď sa zmení priradený dokument alebo keď sa zmenia rozmery miniatúr
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú opätovné použitie vyrovnávacej pamäte, orezávanie zobrazovacej oblasti, invalidáciu veľkosti, nahradenie dokumentu a zničenie komponentu
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.56.1
Version 2.56.0
Pridané (Added)
TPdfView.CutSelectedFormTextToClipboardaTPdfView.PasteFormTextFromClipboardposkytujú Unicode úpravy schránky pre zameraný editovateľný widget formulára
Zmenené (Changed)
- Zamerané editory formulára teraz spracovávajú štandardné klávesové skratky copy, cut, paste a select-all pred preposlaním textového vstupu do PDFium
- Cut a paste odmietajú polia len na čítanie a relácie bez povolenia na vyplnenie formulára alebo úpravu, pričom cut úspešne skopíruje pred odstránením vybratého textu
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú správanie bez zamerania, spiatočnú cestu skratky a odmietnutie len-na-čítanie
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.56.0
Version 2.55.0
Pridané (Added)
TPdfView.AddSearchTextHighlightpripája jedinečné zhody pre ďalší hľadaný výraz k aktuálnej prekryvnej vrstve stránky, čo umožňuje, aby spolu zostalo zvýraznených viacero dotazov
Zmenené (Changed)
HighlightSearchTextzostáva vstupným bodom pre nahradenie a teraz zdieľa aditívny skener, pričom duplicitné rozsahy znakov sa ignorujú aClearHighlightodstraňuje celú nahromadenú množinu- Testy Delphi, Lazarus a C++Builder teraz pokrývajú akumuláciu odlišných dotazov a potlačenie duplicitných rozsahov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.55.0
Version 2.54.0
Pridané (Added)
TPdfteraz vystavuje úplné snímky objektov stránky, dávkové aktualizácie štýlu, afinne transformácie objektov, segmenty cesty, cesty na orezávanie a potomkov Form XObject- Inšpekcia znakov teraz zahŕňa farby výplne a ťahu, názov a príznaky písma, voľné hranice glyfov, efektívne matice, handly textových objektov a konverziu z indexu znaku na index textu
- Poznámky teraz obojsmerne spracovávajú geometriu okraja a toky normálneho, rollover a down vzhľadu
- Nové prístupové metódy pre surové a dekódované miniatúry, transformácie obsahu stránky a poznámok a
RenderPageWithMatrixposkytujú priame pokročilé cesty vykresľovania a úprav
Zmenené (Changed)
- Zmeny štýlu objektov stránky je teraz možné odovzdať ako jednu dávku, aby PDFium regeneroval obsah stránky len raz
- Vykresľovanie matíc používa existujúcu cestu bitmapy zero-copy, keď je rozloženie bitmapy cieľa kompatibilné
Version 2.53.1
Opravené (Fixed)
- Vstavaný čínsky popis ponuky Copy teraz používa kódovo nezávislé body kódu Unicode a zobrazuje sa správne v zostavách Lazarus
- Staršie reťazce nástrojov Delphi teraz môžu skompilovať
FPdfAsync, keď ich jednotkaWinapi.Windowsvynecháva deklaráciuGetTickCount64
Version 2.53.0
Pridané (Added)
- Nová testovacia súprava
Tests.ApiCoveragepokrývajúca verejné TPdf API, ktoré predtým mali nulové end-to-end testovacie pokrytie:GetPageBox/SetPageBox(čítanie/zápis MediaBox/CropBox, chyby chýbajúcej schránky a spiatočná cesta ukladania),FlattenPage/FlattenAllPages(návratová hodnota a zachovanie počtu stránok),GenerateFormAppearances(no-op na dokumentoch bez formulára),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 so spiatočnou cestou hesla — overuje, že zašifrovaný súbor odmieta otvorenie bez hesla a otvorí sa s ním), validácia hranícDeletePage(strana 0 a mimo rozsahu vyvolávaEPdfError) a strážne prvky poznámokHasContents/HasAuthorzavedené vo v2.38.0 (overujúce, žeDefault(TPdfAnnotation)ich nechávaFalse)
Version 2.52.0
Pridané (Added)
TPdfView.CopySelectedFormTextToClipboardkopíruje výber textu vo vnútri zameraného widgetu AcroForm do schránky Windows akoCF_UNICODETEXT
Zmenené (Changed)
- Operácie kopírovania textu stránky a zameraného formulára teraz zdieľajú rovnakého defenzívneho zapisovača schránky Unicode a nechajú schránku nezmenenú, keď je ich výber prázdny
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú neaktívne alebo nezamerané volania kopírovania formulára a spiatočnú cestu výberu zameraného formulára cez schránku Windows
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.52.0
Version 2.51.0
Pridané (Added)
TPdfView.SelectLineAtvyberá vizuálny riadok textu obsahujúci stránku založenú na jednotke a index znaku založený na nule bez nutnosti vstupu myšou
Zmenené (Changed)
- Programový výber riadka, výber trojitým kliknutím a
Shift+HomealeboShift+Endteraz zdieľajú jeden model hranice riadka založený na znakových boxoch - Testy Delphi, Lazarus a C++Builder teraz pokrývajú stabilný výber riadka a neplatné indexy stránok alebo znakov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.51.0
Version 2.50.0
Pridané (Added)
TPdf.LoadDocumentteraz akceptuje oknoIndexaCountzaložené na nule do vyrovnávacej pamäteTBytes, čo umožňuje vloženým PDF načítanie bez alokovania dočasného rezu byte-array
Zmenené (Changed)
- Načítanie rozsahu bajtov odmieta záporné alebo mimo-rozsahové okná pred zmenou stavu dokumentu a zachováva existujúce možnosti životnosti vyrovnávacej pamäte a požičanej vyrovnávacej pamäte
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú vložené PDF okná a neplatné argumenty rozsahu bajtov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.50.0
Version 2.49.1
Pridané (Added)
TPdfView.FitModeteraz podporujepfmFitHeightpre prispôsobenie aktuálnej stránky viditeľnej výške zobrazovacej oblasti s umožnením horizontálneho posunu, keď je to potrebné
Opravené (Fixed)
- Režimy prispôsobenia teraz konvergujú po tom, ako zmena viditeľnosti posuvníka zmení klientsku oblasť, čím sa výsledky fit-page, fit-width a fit-height udržiavajú konzistentné medzi VCL a LCL
- Testy prehliadača Delphi, Lazarus a C++Builder teraz pokrývajú výber
pfmFitHeighta spiatočné cesty enumerácií TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.49.1
Version 2.49.0
Pridané (Added)
- Verejná väzobná plocha PDFium teraz pokrýva všetkých 470 exportovaných funkcií v revidovaných hlavičkách, vrátane prístupu k popisom príloh prostredníctvom
FPDFAttachment_SetDescriptionaFPDFAttachment_GetDescription TPdfteraz exposeuje popisy príloh, platnosť krížových odkazov, ofsety konca traileru, revíziu security-handler, 64-bitové načítanie do pamäte, rozsahy bytov podpisu, rozsahy textu webových odkazov a rozšírené snímky údajov obrázku, filtra, metadát a ICC profilu- Pomocníci formulárov teraz podporujú natívne zameranie polí, dotazy a aktualizácie zameraných voliteľných možností, preposielanie kolieska myši, zapisovateľné inkové ťahy a prekrytia formulárov po progresívnom vykresľovaní
Zmenené (Changed)
FormFieldCount, indexy polí formulára a poradie tabulátora teraz popisujú iba anotácie widgetov namiesto zahrnutia nesúvisiacich anotácií stránky- Bezhlavé stránky
TPdfteraz vstupujú do a opúšťajú životný cyklus stránky vypĺňania formulára, aby natívne zameranie a API zameraných polí fungovali bezTPdfView - Exporty popisov príloh sú obmedzené schopnosťami, takže aplikácie používajúce staršiu zostavu PDFium môžu stále nahrať knižnicu a zistiť nedostupnú funkciu
Opravené (Fixed)
- Progresívne vykresľovanie stránky teraz kreslí ovládacie prvky formulára, keď je vypĺňanie formulárov povolené
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú novú diagnostiku dokumentov, popisy príloh, inkové cesty, správanie formulárov, rozsahy bytov podpisu, rozsahy webových odkazov a metadáta obrázkov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.49.0
Version 2.48.0
Pridané (Added)
TPdfMatrixteraz exposeuje továrne, klonovanie a priradenie, diagnostiku konečného stavu a invertovateľnosti, porovnávanie založené na tolerancii, prístup k translácii, reportovanie determinantu a afínny rozklad- Prepend kompozícia, rotácia citlivá na pivot, škálovanie, skosenie a preklopenia, plus mapovanie obdĺžnikov stretch, contain a cover podporujú pracovné toky v lokálnom priestore a prispôsobené rozloženia bez ručnej aritmetiky koeficientov
- Nemutujúci inverzný prístup, inverzné mapovanie bodov, transformácie vektorov a štvoruholníkov, dynamické dávky bodov a obdĺžnikov, varianty in-place a jednopriechodové transformované hranice rozširujú znovupoužiteľnú geometrickú plochu
Zmenené (Changed)
- Translácia, škálovanie a preklopenia osí teraz aktualizujú iba ovplyvnené koeficienty namiesto smerovania cez všeobecné afínne násobenie
- Transformácia obdĺžnikov normalizuje svoj vstup raz, používa špecializovanú presnú cestu zarovnanú podľa osí, kde je to možné, a počíta všeobecné rotované hranice bez dočasných záznamov bodov
- Dávkové transformácie bodov a obdĺžnikov alokujú jedno pole výsledkov alebo znovu používajú úložisko volajúceho, kým transformované hranice bodov sa akumulujú v jednom priechode bez medzipoľa
Opravené (Fixed)
- Mapovanie obdĺžnikov odmieta výsledky nulovej veľkosti, nekonečné a s pretečením
Singlepred zverejnením nepoužiteľnej matice - Testy Delphi, Lazarus a C++Builder teraz overujú poradie kompozície, invarianty pivotu, inverzné spiatočné cesty, prispôsobené obdĺžniky, rozklad a správanie hromadnej geometrie
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.48.0
Version 2.47.0
Pridané (Added)
FPdfAsyncteraz poskytuje štruktúrované dôvody a správy zrušenia, odstrániteľné registrácie spätných volaní, zdroje založené na časovom limite, čakanie na zrušenie a atómové operácie try-cancel prostredníctvom rozšírených rozhraní, ktoré zachovávajú pôvodné APITPdfFuture<T>.RunExpridáva konfigurovateľné dispečovanie odpovedí a prioritu pracovníka, kým obálky výsledkov exposeujú ID operácií, platnosť hodnôt, názvy tried výnimiek, načasovanie dokončenia a znovupoužiteľných pomocníkov dokončeniaTPdfAsyncExecutorpridáva znovupoužiteľný pevný pool pracovníkov so štyrmi FIFO prioritnými dráhami, voliteľný backpressure obmedzenej fronty, zrušiteľné obslužné body úloh, čakanie citlivé na časový limit, snímky úloh, agregované štatistiky a elegantné vypnutie
Zmenené (Changed)
- Opakujúce sa asynchrónne úlohy môžu znovu použiť vlákna pracovníkov a operácie frontu O(1) namiesto vytvárania vlákna pre každú úlohu, kým synchronizované dokončenie zostáva dostupné pre hostiteľov UI
- Zlyhania exekútora a future zachovávajú diagnostiku triedy a správy výnimiek, zrušenie zachováva svoj pôvodný dôvod a výnimky spätných volaní zostávajú izolované od životného cyklu pracovníka a vypnutia
- Testy Delphi, Lazarus a C++Builder teraz pokrývajú rozšírenú plochu zrušenia, metadát future, kontroly úloh, backpressure, poradie priorít, štatistiky, zlyhania a vypnutia
Opravené (Fixed)
- Súbežní vlastníci zrušenia teraz dostávajú deterministický výsledok prvého zapisovateľa namiesto spoliehania sa na samostatnú sekvenciu pozorovania a zrušenia
- Čakanie nečinnosti hlavného vlákna spracováva synchronizované odpovede úloh, čím zabraňuje dokončenému pracovníkovi nechať exekútor natrvalo nečinný počas koordinovaného vypnutia
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.47.0
Version 2.46.0
Pridané (Added)
FPdfAsn1teraz exposeuje triedy identifikátorov, 64-bitové kódovanie a dekódovanie vysokých čísel značiek, parsované TLV záznamy, okná detského čítača s nulovou kópiou, typované primitívne dekodéry a plátky obsahu alebo kódovaných hodnôt- Zápisy DER teraz podporujú celý nepodpísaný 64-bitový rozsah INTEGER, validovaný ľubovoľný obsah INTEGER, ENUMERATED, automatický výber UTCTime alebo GeneralizedTime, application a private značky, viachodnotovú SEQUENCE a kánonicky zoradený výstup SET OF
ValidateDervracia chyby validácie citlivé na ofset pri presadzovaní konfigurovateľných limitov vnorenia, počtu uzlov, dĺžky obsahu, počtu chýb, koreňa a voliteľného zoradenia SET
Zmenené (Changed)
- Konkatenácia DER a viachodnotová kompozícia používajú jednu alokáciu výstupu, buffere zapisovača exposeujú operácie reserve, count, capacity a prevodu vlastníctva a zoradenie SET OF teraz používa
O(n log n)zlučovacie triedenie - Hodnoty BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime a GeneralizedTime dostávajú kontroly kánonického tvaru počas kódovania, typovaného dekódovania alebo validácie
- Balicek runtime Lazarus teraz exportuje
FPdfAsn1a testovacie suiity Delphi, Lazarus a C++Builder cvičia rovnakú verejnú DER plochu
Opravené (Fixed)
- Kontextovo špecifické čísla značiek väčšie ako 30 už nie sú skrátené do spodných päť bitov identifikátora
- Poškodené identifikátory vysokých značiek, neminimálne určité dĺžky, neplatný UTF-8, nenulové vypchatie BIT STRING, neplatné časové polia, koncové korene a porušenia limitov zdrojov sú deterministicky odmietnuté
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.46.0
Version 2.45.0
Pridané (Added)
FPdfPreflightReportteraz priraďuje závažnosť Info, Warning alebo Error každej probléme a exposeuje API závažnosti, stavu, kategórie, kódu problému, vyhľadávania, hľadania, sploštenia a filtrovania na úrovni štandardu a reportu- Preflight reporty teraz exportujú SARIF 2.1.0, JUnit XML, NDJSON a natívny XML prostredníctvom zodpovedajúcich metód
To*aSave*ToFilepre CI, automatizačné a streamovacie rúry - Stabilné SHA-256 odtlačky reportov identifikujú ekvivalentné výsledky validácie nezávisle od zdrojových ciest a časových značiek generovania
Zmenené (Changed)
- Reporty JSON, CSV, text, Markdown a HTML teraz zahŕňajú závažnosť a rozšírené súhrny stavu; HTML pridáva prístupné nápisy tabuliek a súhrn stavu
- Konštrukcia kolekcií problémov a štandardov používa geometrický rast kapacity, výsledky dotazov sú prednastavené, escapovanie JSON zapisuje do jedného ohraničeného výstupného buffera a všetky súbory reportov používajú jedného priameho UTF-8 zapisovača
- Súhrny kategórií problémov používajú deterministické poradie, časové značky zahŕňajú milisekundy, JSON nesie
formatVersion: 2a bunky CSV neutralizujú vzorce tabuľkových procesorov
Opravené (Fixed)
- Export JSON teraz zachováva platné doplnkové Unicode páry a nahrádza izolované UTF-16 surrogate kódové jednotky namiesto emitovania poškodených skalárnych údajov
- Export HTML teraz escapuje apostrofy a filtrované zobrazenia reportov vlastnia nezávislé polia problémov namiesto zdieľania meniteľného úložiska výsledkov
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.45.0
Version 2.44.0
Pridané (Added)
- Záložky a ciele vystavujú stav otvorenia, počty potomkov, ciele akcií, režimy zobrazenia cieľa a až štyri parametre zobrazenia
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissionaUserHasPermissionposkytujú typované snímky inšpekcie dokumentu a dotazy na povoleniaExtractThumbnail(PageNumber)vykreslí požadovanú stránku bez zmeny aktívnej stránky a výsledky časovej pečiatky RFC 3161 vystavujú politiku, čas generovania a detaily nonce
Zmenené (Changed)
- Cesty záložiek, JavaScriptu, metadát, cieľov a miniatúr používajú validované dvojfázové buffery, geometrický rast kolekcií a prechod bezpečný voči cyklom
- Postprocessing pri ukladaní vyhľadáva aktívny katalóg, strom strán a open action cez aktuálnu revíziu xref, kešuje dekódované objektové streamy a prehľadáva PDF slovníky s rešpektovaním lexikálnych hraníc
- Zdieľané parsovanie PDF teraz vynucuje presné hlavičky objektov, generácie, kľúče slovníkov, dĺžky streamov, geometriu prediktora, celočíselné rozsahy a hranice komentárov, literálnych reťazcov a hexadecimálnych reťazcov
- Validácia odpovede RFC 3161 teraz viaže aj nonce, aj SHA-256
messageImprint, vyžaduje štrukturálne platného signatára a uplatňuje prísne pravidlá pre DER dĺžky, OID, INTEGER a GeneralizedTime
Opravené (Fixed)
- Inkrementálne dokumenty už pri pridávaní predvolenej open action nevyberajú neaktívne duplicitné katalógy ani zle formované koncové úseky referencií
- Tokeny časových pečiatok s DER dĺžkami v dlhej forme si zachovajú kompletný zakódovaný token, zatiaľ čo zle formované poradie voliteľných polí CMS a prázdne množiny signatárov sa odmietajú
- Čisté zostavenia Delphi teraz zapisujú polia nonce seed PAdES cez kópie bajtov bezpečné voči zarovnaniu a odovzdávajú bajty odpovede XFA s presným natívnym typom ukazovateľa
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta inštalátora teraz jednotne hlásia Version 2.44.0
Version 2.43.0
Pridané (Added)
- Záznamy polí a anotácií XFDF teraz vystavujú príznaky prítomnosti, ktoré odlišujú vynechanú hodnotu XML od explicitne prázdnej hodnoty
Zmenené (Changed)
- Import XFDF akceptuje elementy a atribúty s prefixom menného priestoru, zmiešaný text a obsah CDATA, referencie entity a hodnoty významné pre biele znaky, pričom odmieta neplatné skalárne referencie Unicode
- Import a export XFDF používajú indexované porovnávanie polí a ohraničené geometrické vyrovnávacie pamäte, čo zlepšuje priepustnosť a správanie vrcholovej alokácie pre hlboko vnorené formuláre, veľké kolekcie anotácií, ink zoznamy, vrcholy a značkové štvoruholníky
- Validácia PDF/A a PDF/UA používa ohraničený rast pre veľké kolekcie strán, streamov, názvov štruktúr a RoleMap; resolúcia RoleMap pre PDF/UA teraz sleduje priame polia a nepriame objekty typu name alebo array s presnou generáciou
Opravené (Fixed)
- Cykly XFDF teraz zachovávajú hlboko vnorené cesty polí, explicitne prázdne hodnoty polí, explicitne prázdne obsahy anotácií a rozlišenie medzi neprítomným a prázdnym obsahom
- Neplatné načítania z pamäťovej vyrovnávacej pamäte a priradenia strán mimo rozsah sa odmietajú bez zanechania čiastočného stavu dokumentu alebo stránky a zlyhané natívne znovunačítanie stránky zachováva predtým aktívnu stránku
- Veľké identifikátory označeného obsahu a vyrovnávacie pamäte metadát podpisu sú ohraničené a overené pred alokáciou alebo natívnym prístupom
Version 2.42.0
Pridané (Added)
TPdfMatrixteraz poskytujeInvert,TryInvert,TransformPointaTransformRectpre mapovanie súradníc, testovanie zásahov, normalizované ohraničenia a explicitné spracovanie singulárnych matícTPdf.WrapTextzískal preťaženieBreakLongWords, ktoré rozdeľuje CJK a ďalšie texty bez medzier pri zachovaní platných náhradných párov UTF-16TPdfAnnotation.AttachmentPointSetsvystavuje každý štvoruholník vo viacriadkových značkových anotáciách, zatiaľ čo existujúce poleAttachmentPointszostáva aliasom pre prvú množinu
Zmenené (Changed)
- Extrakcia textu, konštrukcia čitateľného obsahu, vyhľadávanie slov a mapovanie posunov vysloveného textu teraz používajú ohraničenú alokáciu a binárne cesty vyhľadávania, čím sa znižuje opakovaná alokácia a lineárne skenovanie na veľkých stránkach
- Serializácia ASN.1 a generovanie šifrovaných PDF teraz používajú geometrické výstupné vyrovnávacie pamäte; poradie šifrovaných objektov používa triedenie
O(n log n)a riadky xref sa zapisujú priamo do konečnej vyrovnávacej pamäte WrapTextzachováva hranice riadkov CR, LF a CRLF a pre celú operáciu znovu používa jeden natívny objekt merania- Import a export XFDF zachovávajú každý značkový štvoruholník; import tiež aplikuje RGB/interiérové farby a analyzuje desatinné súradnice nezávisle od locale procesu
Opravené (Fixed)
- Pôvodní volajúci môžu znova aktualizovať obsah a autora anotácie priradením neprázdnych reťazcov bez nastavenia novších sentinelov
HasContentsaHasAuthor - Explicitne prázdne reťazce anotácií teraz používajú platnú natívnu vyrovnávaciu pamäť s nulovým terminátorom, takže vymazanie
/Contents,/Ta ďalších voliteľných textových kľúčov už neprenáša nil ukazovateľ do PDFium
Version 2.41.0
Zmenené (Changed)
- Report predbežnej kontroly (Preflight report)
SaveJsonToFile,SaveMarkdownToFileaSaveTextToFileteraz na Delphi zapisujú UTF-8 (čo zodpovedá existujúcemuSaveHtmlToFile) namiesto systémovej kódovej stránky ANSI; znaky mimo ASCII v cestách k súborom, odporúčaniach a poznámkach o rozsahu boli na Delphi skomolené pri uložení pomocou týchto metód SaveCsvToFileteraz zapisuje UTF-8 s prefixom BOM, takže Excel pre Windows automaticky rozpozná kódovanie; bez BOM spracováva Excel UTF-8 CSV ako kódovú stránku 1252 a skomolí všetky znaky mimo ASCII
Opravené (Fixed)
- Ukážka
ExtractImagesspôsobovala únik pamäte pre cacheované objektyTBitmapvFExtractedImages, keď bol formulár zatvorený bez ich predchádzajúceho explicitného vyčistenia; formulár teraz prepisuje metóduDestroya voláClearExtractedImages, čím uvoľní každú cacheovanú bitmapu
Version 2.40.0
Zmenené (Changed)
TPdf.RenderPage(HDC, ...)teraz maskuje výnimky FPU/SSE okolo volaniaFPDF_RenderPage, čo zodpovedá správaniuTPdfView.RenderPage(HDC)(opravené vo verzii v2.25.0) a každému vstupnému bodu vykresľovania vracajúcemu bitmapu; preťaženie priamo na DC na úrovniTPdfpredtým ponechávalo výnimky FPU nemaskované na kompilátoroch pred D12
Opravené (Fixed)
ColorToARGBteraz vracia plne priehľadný pixel (alfa 0) preclNoneaclDefaultnamiesto spracovania tejto značky ako doslovnej farby RGB; predchádzajúce správanie spôsobovalo tmavú, takmer nepriehľadnú výplň, keď volajúci odovzdalclNonea očakával “žiadnu farbu”
Version 2.39.1
Opravené (Fixed)
- Explicitné uloženia vo verzii PDF 1.3 teraz odstraňujú položky
/SMask /None,/AIS falsea/TK true, ktoré iba opakujú počiatočný stav grafiky, pričom naďalej odmietajú predvolene nepovolený stav priehľadnosti
Version 2.39.0
Zmenené (Changed)
CreatePDFaImageToPDFteraz používajú potvrdené cieľové umiestnenia uloženia a hlásia úspech iba vtedy, keď sa úspešne dokončíSaveAsBatchExport,PDFtoJpgaSplitPDFteraz vyhradzujú jedinečné výstupné adresáre, takže opakované spustenia a vstupy s rovnakým názvom zachovajú staršie výsledkySplitViewteraz po zrušení alebo nenájdení zhody dokončí vyhľadávanie bez toho, aby zanechal skrytý stav stránky, a preruší nedokončené tlačové úlohy namiesto odoslania čiastočného výstupu
Opravené (Fixed)
MergePDFteraz odmieta nesprávne naformátované tokeny rozsahu stránok a výstupné cesty prepisujúce zdroj, počíta skutočne importované stránky a odmieta uložiť prázdny výsledok- Ukážky
Attachmentpre Delphi a C++Builder teraz potvrdzujú uloženia na rovnakú cestu prostredníctvom bezpečného nahradenia súborov, takže zlyhanie premenovania nemôže odstrániť pôvodný súbor PDF
Version 2.38.0
Zmenené (Changed)
SetAnnotationDatateraz chráni zápisy do/Contentsa/Authorza zarážkamiHasContents/HasAuthornaTPdfAnnotation, čo zodpovedá existujúcemu vzoruHasName/HasSubject/HasIcon; predtým sa tieto dve polia zapisovali bezpodmienečne, takže priradenie záznamuDefault(TPdfAnnotation)na aktualizáciu iba farby alebo príznakov ticho prepísalo existujúci obsah a autora anotácie prázdnymi reťazcami;GetPageAnnotationteraz nastavuje tieto zarážky, takže cyklus čítania, úpravy a zápisu zachováva pôvodné hodnoty
Opravené (Fixed)
GenerateFormAppearancesteraz číta hodnotu zaškrtávacieho políčka/prepínača pomocouFPDFAnnot_GetFormFieldValue(ktorá prechádza do slovníka nadradeného poľa podľa ISO 32000-1 §12.7.5) namiestoFPDFAnnot_GetStringValue(Annot, 'V', ...)(ktorá číta slovník widgetu); widget zvyčajne nenesie/V, takže/ASnebol nikdy synchronizovaný so zaškrtnutým stavom a zlúčené zaškrtávacie políčko/prepínač sa vykreslil ako nezaškrtnutý
Version 2.37.0
Zmenené (Changed)
ParseTsaUrlteraz po parsovaní obmedzí port na1..65535; inak by príliš veľká hodnota portu pretiekla cez skrátenie naDWORDa mohla skončiť na platnom porte- XFDF
ParseFieldteraz akceptuje parameter hĺbky (predvolená 0, strop 64) a na limite vráti prázdne pole, takže zlomyselne vnorený reťazec<field>s hĺbkou 100 000 už nemôže preteiec zásobník
Opravené (Fixed)
- TSA HTTP požiadavka sa teraz chráni proti prázdnu telu požiadavky skôr, než odovzdá
@ReqDer[0]doWinHttpSendRequest. Dereferencia dynamického poľa s nulovou dĺžkou by pristupovala k neukotvenému ukazovateľu;BuildTimeStampReqvždy vracia neprázdny SEQUENCE, ale volacie miesto si teraz tento kontrakt stráži
Poznámky (Notes)
- Komentár v hlavičke
FPdfTsaWino kontrole revokácií pri HTTPS bol opravený: WinHttp štandardne validuje reťazec certifikátov servera, ale kontrolu revokácií CRL/OCSP nevykonáva, pokiaľ nie je explicitne zapnutá cezWinHttpSetOption. Pôvodné znenie tvrdilo, že kontrola revokácií “dostanete zadarmo”, čo bolo zavádzajúce
Version 2.36.0
Zmenené (Changed)
- TSA HTTP požiadavky teraz posielajú explicitnú hlavičku
Content-Lengthpopri hlavičkáchContent-TypeaAccept. WinHttp si ju syntetizuje z celkovej dĺžky, ale niektoré proxy pre RFC 3161 vyžadujú explicitnú hlavičku a bez nej odmietajú požiadavku s411 Length Required - Export XFDF teraz zahodí riadiace znaky C0 (okrem TAB/LF/CR, ktoré sa už escapujú), namiesto toho, aby vypísal neplatnú sekvenciu backslash-hex. Predchádzajúci escape
\-01Fnie je platný XML (spätná lomka nemá v XML žiadny špeciálny význam), takže akákoľvek konformná čítačka by dokument odmietla ako poškodený InjectAssociatedFilesteraz zapisuje/Subtypedo slovníka streamu EmbeddedFile, keď volajúci dodáTAssociateFile.MIMEType. Pole bolo deklarované a zdokumentované, ale injektor ho predtým ignoroval a napevno zapisoval len/Type /EmbeddedFile(ISO 32000-2 §7.11.4 povoľuje/Subtypena streamu)
Opravené (Fixed)
- Import XFDF preskočil prvý obsahový bajt za UTF-8 BOM a prvý bajt, keď BOM prítomný nebol:
BytesToAnsi(Bytes, 4, ...)(BOM) aBytesToAnsi(Bytes, 1, ...)(bez BOM) používali počiatočné offsety posunuté o jedna, pretožeBytesToAnsiberie index poľa od nuly. Volania teraz používajú3a0 ExtractSignatureValuemal dve chyby odsadenia typu danglingif, kde saR.Position:= CNspúšťalo bezpodmienečne pre voliteľné vetvycertificates [0]asignedAttrs [0]. Vetvy sú teraz obalené dobegin/end, takže pozícia sa posunie len vtedy, keď sa voliteľný TLV skutočne prečítal (rovnaká trieda chyby opravená vAddSignatureTimestampToCmsvo v2.22.0)
Version 2.35.0
Zmenené (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailaTFPDFAvail_IsFormAvailteraz berúhints: PFX_DOWNLOADHINTSnamiestovar hints: FX_DOWNLOADHINTS, takže zdokumentovaný režim len na dopytovanie snullptr(zistiť aktuálnu dostupnosť bez vyžiadania ďalších údajov) je z Delphi dosiahnuteľný. Hlavička PDFium explicitne povoľuje, abyhintsbolo null; predchádzajúca väzba cezvarto znemožňovalaTFPDF_SetSystemFontInfoteraz beriepFontInfo: PFPDF_SYSFONTINFOnamiestovar pFontInfo: FPDF_SYSFONTINFO, takže volajúci môžu odovzdaťnil, aby PDFium povedali, že má prestať používať predtým zaregistrované rozhranie systémového písma (zdokumentovaná cesta vypnutia)TPdfThumbnailView.PaintpočítaVisibleRowsrovnakým vzorcom akoUpdateScrollBarRange(ClientHeight div RowHeight), takže počet vykreslených riadkov zodpovedá veľkosti strany posuvníka. Predchádzajúci vzorec používaný len pri kreslení ((ClientHeight - FMarginY) div RowHeight + 1) sa mohol pri hraničných výškach líšiť o jeden riadok, čo plytvalo vykreslením na riadok mimo stránky alebo prehliadlo posledný viditeľný riadok
Version 2.34.0
Pridané (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— vysokoúrovňové API, ktoré uloží dokument a potom ho zašifruje pomocou PDF 2.0 AES-256-CBC (V=5/R=5/R=6); preberáTPdfEncryptOptionss heslom používateľa/vlastníka, oprávneniami a revíziou; deleguje naEncryptDocumentBytes- Šifrovanie doslovných reťazcov StrF:
EncryptDocumentBytesteraz šifruje doslovné reťazce(...)v neprúdových objektoch (slovník Info atď.) na hexadecimálne reťazce AES-256-CBC, čo zodpovedá formátu šifrovania prúdu (16-bajtový IV + šifrovaný text PKCS7); hexadecimálne reťazce<...>zostávajú nedotknuté
Version 2.33.0
Pridané (Added)
- Injektor šifrovania celého dokumentu AES-256-CBC v
FPdfEncrypt.pas;EncryptDocumentBytespreberá nezašifrovaný súbor PDF a heslo, zašifruje každý nepriamy objekt prúdu (16-bajtový IV + AES-256-CBC PKCS7 pod kľúčom súboru), opraví/Length, pripojí objekt slovníka/Encrypta znova vytvorí kompletnú klasickú tabuľku krížových odkazov + trailer s/Encrypta/ID; dokončuje šifrovací zásobník PDF 2.0 (blok AES + GCM + SHA-512/384 + odvodenie kľúča R6 + slovník + prechod dokumentu) - Pomocná funkcia
EncryptStreamPayload— formát prúdu PDF 2.0 AES-256 (IV pridaný na začiatok šifrovaného textu AES-CBC-PKCS7), opätovne použiteľný volajúcimi, ktorí spravujú vlastné rozloženie objektov
Version 2.32.0
Pridané (Added)
- Hash SHA-512 / SHA-384 (FIPS 180-4) v novej jednotke
FPdfSha512.pas; čistý Pascal, portovaný z HotPDF; vyžadovaný iteráciou hashu hesla PDF 2.0 R6, ktorá sa vetví na 128-bitovej hodnote mod-3 na výber SHA-256/384/512 v každom kole; overené pomocou známych odpovedí FIPS-180-4 B.1 - Odvodenie šifrovacieho kľúča PDF 2.0 a nástroj na vytváranie slovníka Encrypt v novej jednotke
FPdfEncrypt.pas; implementuje algoritmus 2.B podľa ISO 32000-2 §7.6.4.3 (R6 hash dance: AES-128-CBC + iteratívny výber SHA-256/384/512), odvodzuje 32-bajtový šifrovací kľúč súboru a položky/O,/U,/OE,/UE,/Permsa vytvára slovník Encrypt V=5/R=5/R=6 s/CFM /AESV3; portované z PDFlibPas, upravené pre štýl TBytes
Version 2.31.0
Pridané (Added)
- Primitívy blokovej šifry AES (FIPS 197) v novej jednotke
FPdfAes.pas. Blokové šifry AES-128 a AES-256 v čistom Pascale, pomocné funkcie režimu CBC a CSPRNG backend, portované z HotPDF. Správnosť overujú testy známych odpovedí podľa FIPS-197 Appendix C.2 / C.3. Toto je kryptografický základ šifrovacieho stacku PDF 2.0 - Autentizované šifrovanie AES-GCM (NIST SP 800-38D) v novej jednotke
FPdfAesGcm.pas. Implementuje GHASH (násobenie v GF(2^128)), GCTR a konštrukciu GCM AEAD nad primitívami blokovej šifry AES. NIST GCM testovacie prípady 1 a 3 (AES-128) presne sedelia s autoritatívnym ciphertextom a tagom; testovací prípad 13 (AES-256) prejde tam a späť. GCM je režim pre PDF 2.0 podľa ISO/TS 32003 - Validácia integrity ParentTree a ClassMap pre PDF/A Level A (ISO 19005-1 §6.8.3).
pvaiParentTreeMissingoznačí StructTreeRoot bez číselného stromu /ParentTree;pvaiClassMapUnresolvedoznačí referenciu triedy /C bez /ClassMap
Version 2.30.0
Pridané (Added)
- Injektovanie pridružených súborov (Associate Files) (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); nová jednotkaFPdfAssocFilespripája polia/AFreferencií filespec do katalógu alebo do slovníka ktorejkoľvek stránky, čím pokrýva všetkých osem hodnôt/AFRelationshipz tabuľky ISO 32000-2 Table 45; opätovne využíva vzor prírastkovej aktualizácie overený pomocouInjectPadesDssMarkers - Podpora PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancepridávapxc6; injektor a validátor ju prepájajú cez identifikáciupdfxid:GTS_PDFXVersion; PDF/X-6 je nástupca PDF/X-4 založený na PDF 2.0 na kompletnú výmenu - PDF/A zakazuje akciu
/Thread(medzera v povolených akciách podľa ISO 19005-1 §6.6.1); zoznam zakázaných akcií teraz pokrýva Thread spolu s Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition a Hide
Opravené (Fixed)
- Validačná cesta PDF/A-4e teraz rešpektuje rovnaké kontroly štruktúry značiek (tagged-structure), MarkInfo a konca slov ako Level A; zníženie verzie na strane ukladania vo verzii v2.29.0 pokrývalo
PdfAIsLevelE, ale tri brányValidatePdfACompliancekontrolovali ibaPdfAIsLevelA, takže dokument PDF/A-4e bez označenej štruktúry prešiel bez upozornenia - Posun testov OCG
/BaseState: prechod PostProcess vo verzii v2.28.0 správne rozšíril akceptáciu na/ONalebo/OFF(ISO 32000-1 Table 8.70), ale testy pre Delphi a C++ stále očakávali odmietnutie/OFF; testy teraz používajú skutočne neplatnú hodnotu (/Undefined) a nový pozitívny test uzamyká akceptáciu/OFF - Nadmerná zhoda geografických údajov
/Subtype /GEO:ContainsDictionarySubtype('GEO')zodpovedal akémukoľvek slovníku obsahujúcemu tento token vrátane nesúvisiacich, ako napríklad zatúlaný/ViewerPreferences << /Subtype /GEO >>; novýContainsMeasureDictionarySubtypedodatočne vyžaduje/Type /Measurealebo kľúč súrodenca exkluzívny pre Measure, takže slovníky iné ako Measure už nevyvolávajú požiadavku ADBE ExtensionLevel 3
Version 2.29.0
Pridané (Added)
- Podpora PDF/A-4 (ISO 19005-4:2020) vo validátore, injektore XMP a vrstve objektového modelu Pdfium;
TPdfAConformancepridávapac4base,pac4fapac4e; základná úroveň je PDF 2.0 (ISO 32000-2) a nahrádza staršie úrovne A/B/U kombináciou base + F (formulár) + E (prístupnosť);ValidatePdfAčíta paket XMPpdfaid:part=4(základ vynecháva prvok zhody),SaveAsPdfAho vyžaruje aSignPadesWithPdfAakceptujepac4baseako kontajner na dlhodobú archiváciu - Väzba
FPDFBookmark_GetColor— posledný neviazaný verejný export PDFium (469/469);TBookmarkzískava poliaHasColoraColorvyplnené z poľa/Czáložky (ISO 32000-1 §12.3.3); väzba používa tolerantné načítanie, takže staršie knižnice DLL, ktoré predchádzajú exportu, naďalej fungujú - Kontrola verzie hlavičky PDF/E-1 (ISO 24517-1 §5)
pveiBadPdfVersion— PDF/E-1 je založený na PDF 1.6 a hlavička iná ako 1.6 je teraz označená - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— šifrovanie je povolené iba na hlavičke%PDF-2.0; telo 1.x nesúce/Encryptje teraz označené (predtým príkaz bez efektu) - PDF/R-1
pvriBadMediaBox— každá stránkaMediaBoxmusí byť[0 0 w h];PdfRHasNonZeroMediaBoxOriginje od národného prostredia nezávislý ASCII skener, ktorý preskakuje MediaBox s nepriamym odkazom - PDF/A Level A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — prítomná, ale neúplná RoleMap, ktorá ponecháva vlastné typy štruktúry/Snemapované, je teraz označená, čím sa uzatvára medzera po existujúcej kontrolepvaiRoleMapMissing, ktorá zisťovala iba prítomnosť
Opravené (Fixed)
PdfVersionToName(20)vrátil"1.0"namiesto"2.0", čo poškodilo položku katalógu/Versiona správy validátora pre každé uloženie PDF 2.0; formátovač teraz explicitne rozdeňuje major.minor pre verzie>= 20- Kódovač záporných hodnôt INTEGER v
FPdfAsn1.paszlyhal pri kompilácii pod Delphi 12 (E2015priInteger(-(V<0))), čo blokovalo celý testovací projekt; opravené použitímInt64(-Ord(V<0))pre masku rozšírenia znamienka - Zoznam zakázaných anotácií PDF/A teraz obsahuje
/RichMediavo všetkých častiach (predtým chýbalo; ISO 32000-1 §12.5.6.35 ho v PDF/A zakazuje)
Version 2.28.0
Pridané (Added)
TPdfVersionteraz obsahujepv20pre PDF 2.0 (ISO 32000-2);DecodePdfVersion(20)vraciapv20namiestopvUnknownaEncodePdfVersion(pv20)vyžaruje 20, takže verzia dokumentu PDF 2.0 sa pri spätnom načítaní nestratí a dá sa explicitne zapísať
Zmenené (Changed)
DecodeDateteraz analyzuje reťazce dátumu PDF s voliteľnými koncovými poľami podľa PDF Reference 3.8.3, namiesto toho, aby vyžadoval úplnú 23-znakovú formuD:YYYYMMDDHHmmSSOHH'mm'; vyhovujúce skrátené dátumy akoD:20260712,D:20260712153000aD:20260712153000Zare now accepted (predtým boli odmietnuté pevnou kontrolouLength=23); posun hodín časového pásma sa teraz overuje voči reálnemu rozsahu UTC-12..UTC+14 namiesto> 23FPdfMeasure.MeasureTextteraz kóduje názov písma ako FPCAnsiString/ DelphiUTF8Encode, čo zodpovedá ostatným miestam volania FPDF_BYTESTRING v knižnici, namiesto jednoduchého pretypovania naAnsiString, ktoré skomolilo názvy rodín písiem iných ako ASCII prostredníctvom aktuálnej kódovej stránky
Opravené (Fixed)
- Cesta záporných hodnôt v
TDerWriter.Integerspadla alebo vytvorila poškodený DER: cykluswhile V <> -1 do V := V shr 8ponechalInnerprázdny preValue = -1(chyba rozsahu pri následnomInner[Length(Inner)-1]) a produkoval nadbytočné bajty pre iné záporné hodnoty; kódovač teraz extrahuje bajty dvojkového doplnku s posunmi rozširujúcimi znamienko a správne sa zastaví, keď je zvyšok len rozšírením znamienka; polia CMS/PAdES INTEGER sú kladné, takže to ovplyvňuje iba volajúcich odovzdávajúcich záporné hodnoty, ale cesta je teraz správna TPdf.GetCharacterOriginaTPdfView.GetCharacterOriginignorovali návratovú hodnotuFPDFText_GetCharOrigina pri zlyhaní vrátili neinicializovaný bod; výsledok je teraz inicializovaný na nulu a neúspešné načítanie vráti počiatok (čo zodpovedá zmluveGetCharacterRectangle)
Version 2.27.0
Zmenené (Changed)
- Ukážky
PDFVieweraMultiPageViewerpre Delphi, C++Builder a Lazarus teraz majú vyhľadávanie v dokumente zabalené na jednom mieste, akceptujúEnteraF3pre ďalší výsledok, resetujú kontext vyhľadávania pri zmene možností zhody a vyhradzujúEscna zrušenie aktívneho vyhľadávania alebo tlačovej úlohy - Tlač vo vieweri teraz nasleduje aktuálne otočenie viewera a podľa neho volí výstup na výšku alebo na šírku, takže otočenie z toolbaru sa prejaví vo vytlačených stránkach
- Všetky tri ukážky
ViewerInteractionLabteraz podporujú skratkyCtrl+A,Ctrl+C,Enter,F3aEscbez zachytávania natívnych príkazov výberu a kopírovania edit-control
Opravené (Fixed)
- Zrušenie tlače vo vieweri pre C++Builder a Lazarus teraz preruší úlohu tlačiarne namiesto odoslania stránok vykreslených pred zrušením a Lazarus explicitne vystúpi z každého vnoreného cyklu kópií, stránok a kolácií
- Tlačidlo Cancel v ukážke
MultiPageViewerpre Delphi je teraz pripojené na svoj handler a vyhľadávacie poliaMultiPageViewerpre C++Builder/Lazarus si zachovávajú natívnu úpravu klávesami so šípkami, Home a End
Version 2.26.0
Zmenené (Changed)
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnaila ich náprotivky vTPdfViewteraz získavajú render lock okolo volaniaFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmap, rovnako akoRenderPage/RenderTile. Sú to volania na renderovacej strane PDFium, ktoré predtým bežali bez locku a mohli sa pretekať s paralelnýmUnloadPage/ReloadPagenad tým istým dokumentomTPdf.RenderPageThumbnailteraz rešpektuje položku/Rotatestránky: prispôsobenie sa pre stránky s/Rotate 90alebo270prepočíta z otočených rozmerov, takže pomer strán miniatúry sedí s tým, čo ukazuje viewer, namiesto použitia vnútorných (neotočených) rozmerov vrátenýchFPDF_GetPageSizeByIndex
Opravené (Fixed)
TPdfView.GetCharacterRectangleignoroval návratovú hodnotuFPDFText_GetCharBoxa odovzdával neinicializovanýTPdfRectangledoPageToDevice, keď PDFium nahlásilo zlyhanie. Obdĺžnik je teraz inicializovaný na nuly a neúspešnéGetCharBoxvraciaRect(0,0,0,0)- Dĺžka bufferu pre URI cestu a cestu k súboru v
GetLinkAnnotationsbola posunutá o jedna: druhé volanieFPDFAction_GetURIPath/GetFilePathodovzdalosize(čo zahŕňa ukončovací NUL) ako dĺžku bufferu do bufferu alokovaného nasize-1. Volanie teraz odovzdávasize-1, takže nemôže zapisovať za alokáciu pri PDFium zostavení, ktoré dĺžku zápisu samo neobmedzuje
Version 2.25.0
Zmenené (Changed)
TPdf.AddText,SetText,AddPathaInsertFormObjectFromXObjectteraz pred regeneráciou obsahu stránky zneplatnia cache textovej stránky a anotácií odkazov, rovnako akoSetTextPositionsaRemoveObject. Predtým volanieGetText/GetWebLinks/FindFirstpo úprave stránky vracalo zastarané textové a linkové dáta zachytené ešte pred úpravou a ponechaný handleFPDF_TEXTPAGEsa po regenerácii obsahu používal s nedefinovaným správanímTPdfView.RenderPage(HDC, ...)teraz získava render lock a maskuje výnimky FPU/SSE okolo volaniaFPDF_RenderPage, rovnako ako každý ďalší renderovací vstupný bod. Predchádzajúci overload zapisujúci priamo do DC sa mohol pretekať s paralelnýmUnloadPage/ReloadPagenad tým istým dokumentom a nechával výnimky FPU nemaskované na kompilátoroch pred D12- Ukážka
PrintPDFpre Delphi teraz pri zrušení voláPrinter.Abortnamiesto toho, aby nechala blokfinallydôjsť až kPrinter.EndDoc, čo odoslalo stránky vykreslené pred zrušením. Ukážka pre Lazarus to riešila správne už skôr
Opravené (Fixed)
TPdf.GetCharacter,TPdf.GetCharcodea ich náprotivky vTPdfViewskracovali kódové body astrálnej roviny (emoji, CJK Extension B) vrátenéFPDFText_GetUnicodena dolných 16 bitov cezWideChar(), čím vznikala osamotená surrogate, ktorá poškodila následné spracovanie textu. Znaky nad U+FFFF teraz vracajú U+FFFD (náhradný znak); na získanie plného UTF-16 kódovania astrálnych znakov použiteGetTextGetWebLinksvolalSetLength(Rectangles, FPDFLink_CountRects(...))bez ošetrenia návratu-1, čo na zle formovanej stránke vyvolaloEOutOfMemory. Záporný počet sa teraz obmedzí na nuluTPdf.Destroyteraz pred uvoľnením bufferu s referenčným počítadlom vymaže reťazecPasswordz pamäte (cezUniqueString+FillChar), takže heslo po zničení komponentu nezostane čitateľné na heape
Version 2.24.0
Pridané (Added)
TPdf.DeletePage,GetAttachment,GetAttachmentName,GetAttachmentType,SetAttachmentaDeleteAttachmentteraz validujú index stránky/prílohy a pri hodnote mimo rozsahu vyvolajúEPdfError, rovnako ako existujúce správanie prístupových metód anotácií. Predtým sa index mimo rozsahu odovzdával priamo do PDFium a viedol k tichému no-op alebo nedefinovanému správaniu
Opravené (Fixed)
- Úniky handle page-object pri zlyhaní v
TPdf.AddText,AddBitmapaAddJpegImage: keďFPDFText_SetText,FPDFImageObj_SetBitmap,FPDFImageObj_SetMatrixaleboFPDFImageObj_LoadJpegFileInlinevyhodili výnimku po vytvorení objektu, ale skôr, než hoFPDFPage_InsertObjectodovzdal stránke, natívny handleFPDF_PAGEOBJECTunikol. Každá cesta teraz objekt pri výnimke zničí, než ju znovu vyhodí TPdf.UnloadPagezahodil rozpracovaný handleFPath(nastavenýCreatePath, ale ešte nespotrebovanýAddPath) tým, že ho nastavil nanilbez volaniaFPDFPageObj_Destroy. Handle sa teraz zničí, takže cesta vytvorená a potom opustená (alebo prerušená zmenou stránky) už neunikáTPdf.InsertFormObjectFromXObjectvynechával volanieUpdatePage(FPDFPage_GenerateContent), ktoré vykonáva každé súrodenecké vkladanie (AddText/AddPath/AddBitmap/AddJpegImage/SetText/RemoveObject), takže Form XObject vložený týmto spôsobom zmizol pri ďalšom načítaní alebo uložení.UpdatePagesa teraz volá po vložení
Version 2.23.0
Opravené (Fixed)
- Validácia
/BaseStatevoliteľného obsahu teraz akceptuje/OFFnavyše k/ON(ISO 32000-1 Table 8.70 pripúšťa oboje). Predchádzajúca kontrola odmietala legitímne konfigurácie/OCProperties /D /BaseState /OFFchybou “malformed optional content”, hoci súbor vyhovel - Validácia
/Intentvoliteľného obsahu teraz akceptuje/Designa polia mien ako[/View /Design], nielen literál/View. ISO 32000-1 Table 8.70 definuje/Intentako meno alebo pole mien z/Viewa/Design; predchádzajúca kontrola jedinej hodnoty príliš často odmietala štandardný authoringový výstup - Detekcia geopriestorového slovníka Measure pre bránu PDF 1.7
/Extensions /ADBEExtensionLevel 3 už nevyžaduje/Type /Measure, ktorý ISO 32000-1 Table 254 označuje za voliteľný. Generátory GeoPDF vynechávajúce/Type(PDFBox, QGIS, FME) bránu predtým obchádzali a potichu produkovali nevyhovujúci výstup PDF 1.7; detektor sa teraz zhoduje už len na/Subtype /GEO
Version 2.22.0
Zmenené (Changed)
- Výpočty fit-zoom
TPdfView(GetPageZoom,GetPageWidthZoom,GetPageHeightZoom) teraz používajúClientWidth/ClientHeightnamiestoWidth/Heightokna, takžepfmFitPage/pfmFitWidth/pfmFitHeightprispôsobia stránku viditeľnému viewportu namiesto vonkajšieho rámu vrátane scrollbarov a okrajov, čím odpadá nadbytočný scrollbar, ktorý sa objavoval, keď bola prispôsobená stránka mierne väčšia ako klientská oblasť AddSignatureTimestampToCmsteraz vyvolá explicitnúExceptionidentifikujúcu nečitateľné pole CMS SignerInfo (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm) namiesto tichého skončenia cezExit, ktoré nechalo čiastočný parse bežať ďalej, ako keby išlo o kompletný podpísaný CMS; opravený je aj chýbajúci blokbegin/endokolo voliteľnej vetvysignedAttrs [0], ktorý ponechalR.Positionneposunutý
Opravené (Fixed)
- Únik handle súkromného kľúča CNG v
ResolveWinSigner: keďCryptAcquireCertificatePrivateKeyuspela, ale následné vyťaženie issuer/serial aleboTWinCmsSigner.Createvyvolalo výnimku,NCryptKeyHandlesa nikdy neuvolnil, pretože jeho vlastníctvo sa na signer prenáša až úspešným konštruktorom. Nastavenie po získaní handle je teraz zabalené tak, aby sa handle pri každom zlyhaní najprv uvoľnil cezNCryptFreeObject EcDsaP1363ToDerteraz odmietne celou nulovú polovicuralebosnamiesto emitovaniaINTEGER 0; ECDSA podpisy sr = 0alebos = 0sú neplatné (RFC 4754 §6 / FIPS 186-4 §6 vyžadujú1 ≤ r, s ≤ n-1) a zhovievavý verifikátor by ich inak prijal ako pravé
Version 2.21.12
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.5 až PDF 1.7 teraz odmieta chybné štruktúry
/OCPropertieskatalógu, vrátane chýbajúcich povinných položiek/OCGsalebo/D, neplatných hodnôt predvolenej konfigurácie a stavových položiek, ktoré nie sú poliami
Version 2.21.11
Opravené (Fixed)
- Explicitné ukladanie verzie PDF teraz odmieta priame alebo nepriame záznamy strany
/Annots, ktorých slovníky anotácií vynechávajú požadovaný záznam/Subtypealebo/Rect
Version 2.21.10
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.7 teraz vyžaduje, aby geopriestorové slovníky
/Type /Measure /Subtype /GEOa anotácie Projection deklarovali/Extensions /ADBEs/BaseVersion /1.7a/ExtensionLevel 3alebo novším
Version 2.21.9
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.7 teraz vyžaduje, aby anotácie RichMedia a akcie
RichMediaExecutedeklarovali/Extensions /ADBEs/BaseVersion /1.7a/ExtensionLevel 3alebo novším
Version 2.21.8
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.7 teraz vyžaduje, aby PRC 3D streamy deklarovali
/Extensions /ADBEs/BaseVersion /1.7a/ExtensionLevel 1alebo novším, namiesto toho, aby sa PRC považoval za základnú funkciu PDF 1.7
Version 2.21.7
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.4 a starších teraz odmieta záznamy XObject obrázka
/SMaskInData, vrátane explicitnej hodnoty0, pretože vložené kanály mäkkej masky JPEG 2000 vyžadujú PDF 1.5 alebo novší
Version 2.21.6
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.4 a starších teraz odmieta 16-bitové XObjecty obrázkov vyžadujúce PDF 1.5 alebo novší, kým ciele PDF 1.5–PDF 1.7 zachovávajú ich obrazové dáta
/BitsPerComponent 16
Version 2.21.5
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.4 a starších teraz odmieta hodnoty
/PageLayout /TwoPageLefta/TwoPageRightkatalógu dokumentu vyžadujúce PDF 1.5 alebo novší, kým ciele PDF 1.5–PDF 1.7 zachovávajú požadované dvojstranné rozloženie
Version 2.21.4
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.3 teraz odmieta záznamy
/Langkatalógu dokumentu vyžadujúce PDF 1.4 alebo novší, kým ciele PDF 1.4–PDF 1.7 uchovávajú identifikátor jazyka
Version 2.21.3
Opravené (Fixed)
- Explicitné uloženia PDF 1.3 teraz odmietajú stromy názvov
/EmbeddedFilesv dokumente, ktoré vyžadujú PDF 1.4 alebo novší, bez odmietnutia prúdov vložených súborov odkazovaných cez staršie špecifikácie súborov
Version 2.21.2
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.3 teraz odmieta aktívne prúdy metadát, ktoré vyžadujú PDF 1.4 alebo novší, pričom ich zachováva pre ciele PDF 1.4 až PDF 1.7
Version 2.21.1
Opravené (Fixed)
- Validácia hybridných referencií teraz aplikuje doplnkové záznamy
/XRefStmpred klasickými zástupnými symbolmi xref z rovnakej revízie, takže komprimované anotácie a iné objekty ohraničené verziou sa viac nevynechávajú, keď ich tabuľka kompatibility označí ako voľné
Version 2.21.0
Zmenené (Changed)
- Všetky ukážkové prehliadače Delphi, C++Builder a Lazarus dokážu otvoriť PDF odovzdané ako prvý argument príkazového riadka a ukážky
MultiPageViewerpre C++Builder a Lazarus poskytujú explicitné skratky na výber všetkého a kopírovanie
Opravené (Fixed)
- Ukážkové prehliadače teraz odmietajú neplatné cieľové stránky záložiek a odkazov, zachovávajú chyby načítania, konzistentne validujú ručne zadaný zoom, vytlačia požadovanú stránku s vyplneným formulárom namiesto opakovania viditeľnej stránky a prerušia zrušené tlačové úlohy v Delphi namiesto odoslania čiastočného výstupu
Version 2.20.0
Zmenené (Changed)
- Všetky ukážkové prehliadače Delphi, C++Builder a Lazarus teraz poskytujú konzistentné skratky na otváranie, vyhľadávanie, ukladanie, tlač, zoom a navigáciu stránok, pričom každá varianta
ViewerInteractionLabpodporuje aj skoky na stránky, overený manuálny zoom 10–600%, trvalé protokoly interakcií a kontroly spiatočnej cesty súradníc kliknutia
Version 2.19.1
Opravené (Fixed)
- Explicitná validácia verzie PDF teraz sleduje aktívny reťazec revízií klasického, hybridného alebo xref-stream formátu vrátane záznamov komprimovaných objektov, takže prekonané, uvoľnené a neodkázané objekty už nespôsobujú falošné zlyhania verzie funkcie
Version 2.19.0
Zmenené (Changed)
- Ukážky príloh, extrakcie obrázkov, extrakcie textu, konverzie stránok a rozdeľovania pre C++Builder a Lazarus teraz používajú vyhradené výstupné priečinky alebo bezpečne finalizované súbory, stabilné názvy s nulovým dopĺňaním, responzívne aktualizácie priebehu a súhrny dokončenia s počtami chýb na položku
Opravené (Fixed)
CJKTextLabpre C++Builder teraz meria text prostredníctvom exportovaných editačných funkcií PDFium aMergePDFsa vyhýba nejednoznačnému preťaženiu správy VCL, čím obnovuje čisté zostavenia v RAD Studio 37
Version 2.18.3
Opravené (Fixed)
- Časová pečiatka dokumentu PAdES B-LTA Document Time-stamp je teraz zaregistrovaná ako objaviteľné pole podpisu — neviditeľný Widget dostupný cez
/Annotsprvej stránky a/FieldsAcroForm (ETSI EN 319 142-1 §5.4.3) — namiesto nedostupného osirelého objektu, ktorý validátory vymenúvajúce polia podpisu nemohli nájsť; existujúce anotácie a polia sú zachované
Version 2.18.2
Opravené (Fixed)
- Podpisovanie PAdES a klasické písanie krížových odkazov teraz vyvolajú zreteľnú chybu, keď posun bajtov prekročí pevnú šírku poľa s 10 číslicami (~9,3 GB), namiesto tichého zanechania nezapísaného zástupného symbolu
/ByteRange(čo produkuje neplatný podpis) alebo presiahnutia 20-bajtového riadku xref (ISO 32000-1 §7.5.4); výstup prúdu krížových odkazov používa 8-bajtové binárne polia a nie je ovplyvnený
Version 2.18.1
Opravené (Fixed)
- Podpisovanie PAdES teraz rieši nepriame referencie na prvú stránku
/Annots,/AcroForma/Fieldspodľa celej hlavičky objektu (ISO 32000-1 §7.5.3) a skutočného generačného čísla referencie; predchádzajúce jednoduché vyhľadávanie podreťazca zodpovedalo číslu objektu vo vnútri dlhšieho (riešením5 0 Rna15 0 obj) a pevne zakódovaná generácia prepáčila objekty sgen>0, čím korumpovalo polia podpisových polí alebo odmietalo platné dokumenty - Keď sa katalóg, prvá stránka,
/Annots,/AcroFormalebo/Fieldsnachádza vo vnútri prúdu objektov, podpisovanie teraz zopakuje pokus na rozšírenej kópii pred zlyhaním namiesto priameho odmietnutia dokumentu
Version 2.18.0
Pridané (Added)
ReadPdfVersionInforeportuje verziu hlavičky, efektívnu základnú verziu, prepísanie katalógu a úroveň rozšírenia vývojárov Adobe z prúdu PDF
Zmenené (Changed)
- Explicitné uloženia PDF 1.3–1.7 teraz overujú štruktúry katalógu, zdrojov stránky, XFA, redakcie a rozšírení vývojárov v kontexte ich vlastníckeho objektu; šifrovaný explicitný verziový výstup a prírastková normalizácia PDF 1.3 sú odmietnuté na zachovanie integrity dokumentu
- Uloženia ciest k súborom teraz zapisujú do susediaceho dočasného súboru a nahrádzajú cieľ iba po úspešnom dokončení všetkých kontrol kompresie, normalizácie a verzie
Opravené (Fixed)
- Výstup PDF 1.3 teraz nesie požadovaný úplný zdroj
/ProcSeta odstraňuje transparentné kľúče PDF 1.4, keď iba opakujú počiatočné grafické hodnoty stavu PDF 1.3 - Súbory s hybridnými referenciami, xref-stream a object-stream už nie sú prepisované klasickým kompresorom xref, čím sa zabraňuje vypúšťaniu záznamov komprimovaných objektov
- Názvy, ktoré pripomínajú kľúče transparentnosti alebo funkcie katalógu vo vnútri reťazcov, komentárov alebo nesúvisiacich máp zdrojov, už nespôsobujú falošné zlyhania cieľovej verzie
Version 2.17.0
Pridané (Added)
- Podpisy PAdES sú teraz zaregistrované ako neviditeľné anotácie Widget v poli
/Annotsprvej stránky a v poli/FieldsAcroForm, pričom sa zachovávajú existujúce anotácie a polia formulára
Zmenené (Changed)
- Prírastkové aktualizácie PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT a PAdES teraz zachovávajú reprezentáciu krížových odkazov zdrojového dokumentu: dokumenty xref-stream dostávajú aktualizáciu xref-stream podľa požiadavky ISO 32000-1 §7.5.8.1, zatiaľ čo klasické dokumenty naďalej dostávajú tabuľku xref
- Posuny krížových odkazov,
startxref,/Prev, hodnoty PAdES ByteRange a spracovanie rozsahu SHA-256 teraz používajú 64-bitové pozície s fragmentovaným hašovaním, čo umožňuje súbory väčšie ako 2 GB v 64-bitových zostavách - Generované zapisovateľné pakety XMP teraz rezervujú 2048 bajtov výplne pred záverečnou inštrukciou paketu
Version 2.16.10
Opravené (Fixed)
- Rozšírenie object-stream už neobnovuje zastarané kópie objektov, ktoré prírastková aktualizácia migrovala z prúdu objektov do bežnej definície (ISO 32000-1 §7.5.7); kontroly zhody a vkladanie značiek predtým riešili zastaraný katalóg alebo slovník metadát na takýchto súboroch
Version 2.16.9
Opravené (Fixed)
- Na Free Pascal sa textové reťazce, ktorých vstup nie je platný UTF-8, rozširujú bajt po bajte ako Latin-1 a zapisujú ako hexadecimálne reťazce UTF-16BE; predtým surové vysoké bajty unikali do literálneho reťazca, čo nie je legálne kódovanie text-string PDF 1.7
- Dekódovanie prúdu teraz rozpoznáva surové deflate dáta bez obalu RFC 1950 zlib (bežná chyba nefunkčných zapisovačov) a dekomprimuje ich v surovom režime, takže skenovanie zhody už nezostáva ticho slepé na takýchto prúdoch
Version 2.16.8
Opravené (Fixed)
- Prírastkové aktualizácie zapísané cestou post-procesingu ukladania teraz obnovujú druhý (meniaci sa) element traileru
/IDpodľa požiadavky ISO 32000-1 §14.4; oba elementy boli predtým skopírované doslovne, takže nástroje na ukladanie do vyrovnávacej pamäte a synchronizáciu videli po každej aktualizácii nezmenený identifikátor
Version 2.16.7
Opravené (Fixed)
- Blankovanie tela prúdu používané skenovaním zhody teraz vyžaduje, aby za kľúčovým slovom
streamnasledoval koniec riadku (ISO 32000-1 §7.3.8.1); slovo vo vnútri literálneho reťazca ako(downstream)predtým blankovalo všetku nasledujúcu štruktúru až po ďalšíendstream, čím skrývalo skutočné porušenia pred kontrolami na úrovni bajtov - Skenovanie zakázaných funkcií PDF/X a PDF/E navyše blankuje literálne reťazce a komentáre (§7.2.2), takže hodnota ako
/Title (see /JavaScript docs)alebo komentovaný token už neprodukuje falošné zistenieJavaScript,AcroFormaleboLZWDecode
Version 2.16.6
Opravené (Fixed)
- Záznamy DPM PDF/VT sú teraz overované pri zápise podľa dokumentácie: názvy kľúčov porušujúce pravidlo NMTOKEN ISO 16612-2 §6.6 alebo pravidlo predpony registranta z Prílohy E a duplicitné názvy sú odmietnuté namiesto zapísania do slovníka DPart — názov obsahujúci medzeru sa predtým rozdelil na falošný pár kľúč/hodnota a poškodil slovník
Version 2.16.5
Opravené (Fixed)
- Odstraňovanie záznamu slovníka, ktorého hodnota je hexadecimálny reťazec (napríklad
/Check <...>), teraz odstraňuje celý záznam; injektory predtým nechávali za sebou osirelú hexadecimálnu hodnotu, čo produkovalo syntakticky nesprávny slovník - Odstraňovanie záznamu, ktorého nepriama referencia používa nové riadky medzi tokenmi (ISO 32000-1 §7.3.10 povoľuje ľubovoľné biele znaky), už nezanecháva číslo generácie a kľúčové slovo
R
Version 2.16.4
Opravené (Fixed)
- Skenovanie maximálneho čísla objektu už nevyžaduje, aby hlavičky objektov začínali na riadku (ISO 32000-1 §7.5.3 povoľuje ľubovoľné biele znaky alebo oddeľovač pred nimi), takže injektory už nemôžu alokovať číslo objektu, ktoré koliduje s vloženou hlavičkou
N G obja ticho poškodzuje súbor; čísla objektov sú ohraničené stropom prílohy C - Prúdy, ktorých
/Lengthje nepriama referencia, teraz riešia odkazovaný celočíselný objekt a používajú jeho hodnotu, keď sa zhoduje so záverečnýmendstream; takéto prúdy boli predtým ohraničené vyhľadávaním vzoru, ktorý skracoval telá legálne obsahujúce bajtovú sekvenciuendstream— typické pre vložené prílohy PDF
Version 2.16.3
Opravené (Fixed)
- Kompresné prechody prúdu prenášajú dokumenty s prúdom krížových odkazov (súbory PDF 1.5+ bez klasického kľúčového slova
trailer) bezo zmeny; cesta prebudovania predtým nesprávne parsovalastartxrefako umiestnenie tabuľky a syntetizovala odhadovaný trailer, čo mohlo produkovať neotvárateľný súbor - Kompresor preskakuje prúdy metadát XMP, takže dokument PDF/A si zachováva povinný nefiltrovaný prúd metadát (ISO 19005-1 §6.7.2), a ponecháva nedotknuté externé prúdy súborov (
/Fs/FFilter) - Prebudovaná tabuľka krížových odkazov skenuje kópiu dokumentu bez prúdov, takže binárny obsah prúdov už nemôže falšovať hlavičky objektov ani nafukovať tabuľku;
/Sizeprebudovaného traileru teraz odráža skutočnú tabuľku a čísla objektov sú ohraničené stropom prílohy C - Vyhľadávanie pôvodnej tabuľky krížových odkazov akceptuje konce riadkov iba s CR (ISO 32000-1 §7.5.1) a už nemôže zodpovedať písmenám
xrefvo vnútristartxref; skenovanie kľúčových slov prúdu získalo rovnaký ochranný mechanizmus chvostaendstreampoužívaný inde a teraz postupuje za telami preskočených prúdov
Version 2.16.2
Opravené (Fixed)
- Parsovanie celých čísel v čítačoch PDF na úrovni bajtov teraz akceptuje explicitné znamienko
+povolené ISO 32000-1 §7.3.3 a odmieta sekvencie číslic, ktoré by pretiekli, takže nepriateľské alebo poškodené dokumenty už nemôžu zabaliť parsované dĺžky a posuny do zavádzajúcich hodnôt
Version 2.16.1
Opravené (Fixed)
- Injektor PDF/UA zapisuje hodnotu katalógu
/Langako správny textový reťazec PDF; predtým spúšťal hodnotu cez XML escapér, takže jazykový tag obsahujúci&alebo závorky produkoval poškodený záznam a nez-ASCII vstup bol zapísaný ako surový UTF-8 - Záznam Info PDF/E
/ISO_PDFEVersionpoužíva zdieľaný kódovač textových reťazcov, čím udržiava hodnoty non-ASCII legálne v PDF 1.7 - XML escapovanie pre pakety XMP vypúšťa riadiace znaky, ktoré sú nelegálne v XML 1.0, takže metadáta skopírované z poškodeného zdrojového dokumentu už nemôžu spôsobiť, že celý prúd metadát bude nesprávne formátovaný
- Konverzia dátumu PDF-na-XMP overuje, že polia dátumu sú číselné a dopĺňa chýbajúce pole minút, čím zabraňuje nesprávne formátovaným dátumom ISO 8601 v generovanom XMP; na platformách iných ako Windows záložná časová pečiatka teraz zahŕňa aj čas dňa namiesto holého dátumu
Version 2.16.0
Pridané (Added)
- Dekódovanie prúdu teraz rekonštruuje prediktory
/DecodeParms(prediktory PNG 10–15 a prediktor TIFF 2, ISO 32000-1 §7.4.4.4) po FlateDecode, pričom rešpektuje/Colors,/BitsPerComponenta/Columns; prúdy objektov komprimované s prediktorom — bežná voľba zapisovača PDF 1.5+ — predtým zobrazovali diferencované bajty, takže objekty, ktoré nesú, boli ticho neviditeľné pre skenovanie zhody a vkladanie značiek
Opravené (Fixed)
- Detekcia FlateDecode teraz parsuje hodnotu
/Filterako názov alebo pole namiesto zhody podreťazca, takže kaskádové reťazce filtrov a výskyty slova v nesúvisiacich hodnotách už nespúšťajú falošné nafukovanie; nepodporované reťazce sa vracajú k surovým bajtom ako predtým
Version 2.15.1
Opravené (Fixed)
- Skener slovníkov teraz preskakuje literálne reťazce, hexadecimálne reťazce a komentáre pri vyvažovaní
<</>>(ISO 32000-1 §7.2.2), takže slovníky obsahujúce hodnoty ako(A >> B)alebo hexadecimálny reťazec susediaci s uzatváracím oddeľovačom už nie sú skracované počas parsovania traileru, katalógu a skenovania zhody - Extrakcia literálnych reťazcov teraz dekóduje úplný escapovací set §7.3.4.2 Tabuľka 3 —
\n \r \t \b \f, oktálové\ddd, pokračovania riadkov a normalizáciu EOL bez escapovania — namiesto doslovného kopírovania escapovacieho znaku, čím obnovuje správne porovnania/Producer,/GTS_PDFXVersiona/ISO_PDFEVersionpre zapisovačov používajúcich oktálové escapeovanie - Literálne reťazce zapísané injektormi značiek teraz escapujú CR, LF a iné riadiace znaky, takže hodnoty prežijú normalizáciu EOL na strane čítača bajt po bajte
Version 2.15.0
Opravené (Fixed)
- Prírastkové aktualizácie zapísané injektormi značiek PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA a PDF/VT a cestami podpisovania PAdES a DSS teraz zachovávajú trvalý identifikátor súboru zdrojového dokumentu: prvý element traileru
/IDje prenesený doslovne podľa požiadavky ISO 32000-1 §14.4 a obnovuje sa iba druhý (meniaci sa) element; predtým boli oba elementy regenerované, takže externé referencie a pracovné toky dlhodobej validácie videli po každom ukladaní inú identitu dokumentu - Podpisy PAdES, vkladanie DSS a Document Time-stamp B-LTA teraz prenášajú referenciu
/Infozo zdrojového traileru (ISO 32000-1 §7.5.6), takže vlastnosti dokumentu už nezmizujú z panelov čítača po podpisovaní; trailer Document Time-stamp tiež získa pole/ID - Záložný mechanizmus traileru
/Infopre dokumenty s prúdom krížových odkazov teraz správne lokalizuje slovník prúdu XRef a zachováva generačné číslo referencie; predtým sa nikdy nezhodoval na súboroch PDF 1.5+ zodpovedajúcich normám, pričom ticho vypúšťal/Info
Version 2.14.4
Opravené (Fixed)
- Dátum
/Mslovníka podpisu zapísanýTPdf.SignPadesaSignPadesBytesteraz nesie povinný prefixD:a marker UTC offsetuZpožadovaný ISO 32000-1 §7.9.4; prísne validátory predtým odmietali čas podpisu ako nesprávne formátovaný reťazec dátumu
Version 2.14.3
Opravené (Fixed)
- Vyhľadávanie kľúčov slovníka v zdieľanom čítači PDF teraz zodpovedá celým tokenom názvov (ISO 32000-1 §7.3.5); predtým prúd, ktorého slovník uvádzal
/Length1pred/Length(typické pre prúdy FontFile), bol skrátený na nesprávny počet bajtov, čo ticho zaslepovalo skenovanie PDF/A, PDF/UA a iné skenovania zhody čítajúce prúdy fontov, CMap alebo metadát - Vyhľadávania kľúčov traileru
/Encrypt,/Root,/Sizea/Infouž nezodpovedajú dlhším kľúčom zdieľajúcim rovnaký prefix (napríklad/EncryptMetadata) - Rozšírenie object-stream už nedôveruje poškodenej alebo nepriateľskej hodnote
/N: hodnoty, ktoré nie sú celé čísla, teraz poskytujú 0 namiesto neinicializovaného čísla a horná hranica odvodená od/Firstzabraňuje nadmerným alokáciám pri skenovaní nesprávne formátovaných dokumentov
Version 2.14.2
Opravené (Fixed)
- Injektory značiek PDF/X, PDF/VT, PDF/UA, PDF/E a PDF/R teraz kopírujú zašifrované zdrojové dokumenty bezo zmeny namiesto pridávania plaintext sekcií aktualizácií; predchádzajúce správanie produkovalo súbory, ktorých najnovší trailer stratil záznam
/Encrypt(ISO 32000-1 §7.5.6), takže vyhovujúce čítače čítali zašifrované telo ako plaintext TPdf.SignPades,SignPadesBytesaInjectPadesDssMarkersteraz vyvolávajúEPadesCrypto, keď je zdrojový dokument zašifrovaný, namiesto tichého vydávania poškodeného alebo neoverite ľného súboru; pred podpisovaním alebo vkladaním materiálu DSS odstráňte šifrovanie
Version 2.14.1
Opravené (Fixed)
TPdf.SignPadesaSignPadesBytesteraz spätne vyplnia všetky štyri polia/ByteRangeslovníka podpisu; predtým zostali posledné tri polia pri svojich nulových zástupných symboloch, takže produkované podpisy deklarovali prázdny rozsah bajtov a zlyhali pri overovaní vo vyhovujúcich validátoroch- Slovníky Document Time-stamp PAdES B-LTA dostávajú rovnakú opravu spätného vyplnenia
/ByteRange ValidatePadesComplianceteraz akceptuje štandardné rozloženie podpisu, kde medzera v rozsahu bajtov obsahuje hexadecimálnu hodnotu/Contents, a overuje, že druhý segment rozsahu končí presne na konci súboru; predtým prešli kontrolou pokrytia iba rozsahy bez medzier
Version 2.14.0
Pridané (Added)
TPdf.ExportXFDFserializuje každú hodnotu poľa formulára a anotáciu naprieč všetkými stránkami do dokumentu XFDF (ISO 19444-1), vydávajúc<fields>pre hierarchické hodnoty formulárov a<annots>pre všetky podporované podtypy anotácií (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact)TPdf.ImportXFDFnačíta dokument XFDF späť do načítaného PDF, znovu vytvára anotácie na zodpovedajúcich stránkach a aplikuje hodnoty polí na ich widgetové anotácie- Záznam
TPdfAnnotationzískalName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), koncové body čiary, vrcholy polygónu/polylínie a polia gest ink-list, takže okruhy XFDF zachovávajú úplné metadáta anotácií - Nová ukážka
XfdfLabv sadách demoaplikácií Delphi, C++Builder a Lazarus demonštruje okruh export/import
Version 2.13.6
Opravené (Fixed)
ValidatePdfAteraz zaobchádza s prúdmi katalógu/Metadatabez/Type /Metadataalebo/Subtype /XMLako s chýbajúcimi metadátami XMP cezpvaiMissingXmpMetadata- Správy predbežnej kontroly PDF/A teraz klasifikujú
pvaiMissingXmpMetadataako Metadáta a odporúčajú prúd katalógu/Metadatas/Type /Metadata,/Subtype /XML, nefiltrovaným XMP a značkamipdfaid
Version 2.13.5
Opravené (Fixed)
ValidatePdfAteraz hlási widgetové anotácie bez slovníka zobrazenia a anotácie PDF/A-2 / PDF/A-3, ktoré vyžadujú, ale nemajú/AP, cezpvaiAnnotationApDictViolation- Správy predbežnej kontroly PDF/A teraz klasifikujú
pvaiAnnotationApDictViolationako obsah, ktorý vkladanie značiek nemôže opraviť
Version 2.13.4
Opravené (Fixed)
ValidatePdfAteraz hlási vstavané obrázky PDF/A-2 a PDF/A-3, ktorých hodnota/Ialebo/Interpolatejetrue, cezpvaiImageDictionaryViolation, čo zodpovedá existujúcemu pokrytiu slovníka XObject Image- Správy predbežnej kontroly PDF/A teraz klasifikujú
pvaiImageDictionaryViolationako obsah, ktorý vkladanie značiek nemôže opraviť
Version 2.13.3
Opravené (Fixed)
ValidatePdfAteraz hlási vstavané obrázky PDF/A-1, ktoré používajú filtre/LZWDecodealebo skrátený/LZWvo vnútri prúdov obsahu, cezpvaiInlineImageLzwForbidden, čo zodpovedá existujúcemu pokrytiu vstavených obrázkov PDF/A-2 a PDF/A-3- Skener filtrov vstavených obrázkov teraz postupuje za úvodnými názvami zdrojov ako
/GS1, čím sa vyhýba zaseknutiam pri skenovaní širších prúdov obsahu PDF/A-1
Version 2.13.2
Pridané (Added)
TPdf.SetFocusedFormFieldTextzapisuje text do editačného bufferu aktuálne zaostreného poľa formulára cezFORM_ReplaceSelection, symetricky kFocusedFormFieldText. Pre polia text/combo AcroForm sa hodnota zatvrdí do/Vpri strate fokusu a pretrváva; pre textové polia XFA zápis pristane iba v bufferi v pamäti (PDFium nezverejňuje žiadne verejné API na odsúhlasenie hodnôt XFA späť do paketu datasetov, takže nepretrváva cez uloženie)- Hostiteľská platforma JavaScript je teraz pripojená vždy, keď je k dispozícii motor V8, bez ohľadu na to, či je dokument XFA — takže vložený JavaScript AcroForm (skripty na úrovni dokumentu, výpočty polí,
app.alert) môže tiež vykonávať. Predtým bolm_pJsPlatformprepojený iba pre dokumenty XFA, pričom JS AcroForm bol ticho zakázaný
Zmenené (Changed)
- Pripojenie platformy JavaScript je teraz nezávislé od rozhodnutia XFA v
InitializeFormFill— tabuľkam_pJsPlatformje zostavená vždy, keď jeV8FeaturesAvailabletrue, aplikovaná po prepojení verzie/spätného volania XFA, nie vnorená do neho
Version 2.13.1
Pridané (Added)
- Nové hostiteľské udalosti surfacujú informácie, ktoré spätné volania vyplňovania formulárov v2.13.0 predtým prehĺtali:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Každá udalosť má predvolene existujúce správanie no-op, keď nie je priradená, takže existujúce hosťovské aplikácie nie sú ovplyvnené - Vlastnosť iba na čítanie
TPdf.XfaFormPacketsvracia jednorazový snímok všetkých paketov XFA (TXfaPacketList), čím plní typyTXfaPacket/TXfaPacketListpredtým deklarované, ale nepoužité - Chybové kódy PDFium špecifické pre XFA
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTsú teraz viazané a surfacované cezLastPdfError, čím nahrádzajú generickú chybu "Unknown error" pre zlyhania načítania/rozloženia XFA
Zmenené (Changed)
FFI_DoURIActionWithKeyboardModifierteraz konzultujeOnXfaUriActionpred vykonaním URI z poľa XFA, čím dáva hostiteľovi právo veta (bezpečnosť: škodlivé pole XFA mohlo predtým bezpodmienečne spúšťať ľubovoľné URL adresy). Nepriradení obslužní programy zachovávajú predchádzajúci predvolenýShellExecuteWDecodeFormFieldTypeteraz smeruje typy polí XFA cezIsXfaFormFieldnamiesto explicitného prípadového bloku s 8 vetvami, čím udržiava enum zarovnaný sFPDF_FORMFIELD_XFA_*podľa ordinálneho offsetu
Opravené (Fixed)
ValidatePdfAteraz hlási deklarácie PDF/A-1, ktoré používajú prúdy krížových odkazov PDF 1.5 alebo prúdy objektov, s novým problémompvaiPdfA1Pdf15Structure, pričom naďalej umožňuje prúdy objektov pre PDF/A-2 a PDF/A-3
Version 2.13.0
Pridané (Added)
- Plná podpora runtime XFA (XML Forms Architecture):
TPdf.InitializeFormFillteraz prepojuje všetkých 14 spätných volaníFPDF_FORMFILLINFOverzie 2 (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) a pripájaIPDF_JsPlatform, takžepdfium.dlls povoleným XFA môže renderovať a skriptovať dynamické formuláre XFA - Nová jednotka
Lib\FPdfXfa.pasdeklarujúca konštanty XFA (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) a typyTXfaPacket/TXfaSaveFormat, ktoré boli predtým odkazované iba v komentároch - Statický čítač paketov XFA na
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplusGetXfaTemplate/GetXfaDatasets/GetXfaConfigextrahujú pakety XFAtemplate,datasetsaconfigako surové XML bez potreby runtime s povoleným XFA — užitočné pre audit zhody a migráciu dát - Sondy schopností: globálne
XfaFeaturesAvailable, a per-dokumentTPdf.XfaRuntimeAvailable(čiFPDF_LoadXFAskutočne uspelo) aTPdf.XfaStaticReadable(či sa exporty čítača paketov riešia) TPdfFormFieldTyperozšírený ofiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, pričomDecodeFormFieldTypemapuje nové hodnotyFPDF_FORMFIELD_XFA_*- Hostiteľské udalosti JavaScript na
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrlaOnXfaRuntimeMissingumožňujú hostiteľovi prispôsobiť dialógy JS a navigáciu XFA alebo reagovať, keď dokument XFA nemôže spustiť engine - Nová ukážka Delphi
XfaLabdemonštrujúca detekciu XFA, extrakciu paketov, sondovanie schopností a záložnú cestu chýbajúceho runtime
Zmenené (Changed)
TPdf.LoadDocumentteraz predbežne skenuje vstup na markery XFA (/XFAv slovníku AcroForm alebo katalóg/NeedsRendering) a po nájdení automaticky vyberiepdfium.v8.dllnastavenímEnableV8Engine := Truepred prvým načítaním knižnice singleton; akonáhle je načítaný obyčajnýpdfium.dll, proces nemôže prepnúť, takžeOnXfaRuntimeMissingsignalizuje daný prípadTPdf.GetPageCountteraz odráža počet stránok, ktorý engine XFA hlási cezFFI_PageEventpo dynamickom stránkovaní, nielen statický strom stránok PDF- Keď je dokument XFA otvorený, ale runtime nie je dostupný,
InitializeFormFillteraz pripneversion=1axfa_disabled=1namiesto požiadania o verziu 2 s neprikladenými spätnými volaniami, čo predtým riskovalo dereferencovanie zlého ukazovateľa spätného volania
Version 2.12.2
Opravené (Fixed)
ValidatePdfAComplianceteraz hlási použité vlastné menné priestory XMP bezpdfaExtension:schemas, pričom stále akceptuje štandardné metadátapdfaidbez deklarácií rozšírení- Validácia vložených súborov PDF/A-3 teraz vyžaduje záznamy najvyššej úrovne
/Faj/UFna slovníkoch filespec a ignoruje vnorené kľúče prúdu/EFpri kontrole týchto názvov
Version 2.12.1
Opravené (Fixed)
ValidatePdfAComplianceteraz dekóduje escapované tokeny názvov PDF pred porovnávaním JavaScript, LZWDecode, Type1 a ďalších zakázaných názvov, takže obfuskované, ale sémanticky identické názvy sú hlásené správne- Kontroly vstavených obrázkov PDF/A teraz odmietajú hodnoty
/Filtera/F, ktoré používajú/LZWDecode, skrátený/LZWalebo/Crypt, vrátane foriem polí a escapovaných názvov - Validácia PDF/A teraz hlási prúdy metadát so zakázanými filtrami prúdov, profily ICC OutputIntent, ktorých počet komponentov
/Nchýba alebo je nekonzistentný, a špecifikácie vložených súborov PDF/A-3 s chýbajúcim alebo neplatným/AFRelationship
Version 2.12.0
Pridané (Added)
- HTTP požiadavky TSA teraz nastavujú explicitné 30 s časové limity pre každú fázu (resolve/connect/send/receive) cez
WinHttpSetTimeouts, takže pomalý alebo nedostupný orgán časových pečiatok nemôže na neurčito zavesiť podpisové vlákno namiesto spoliehania sa na implicitné predvolené hodnoty WinHttp - Odvodenie nonce per požiadavku pre požiadavky časových pečiatok PAdES B-T / B-LTA, keď volajúci vynechá
TPadesSignOptions.Nonce: skladanie SHA-256 monotónneho počítadla + hodín steny +GetTickCount64+ id procesu nahrádza predchádzajúci pevný záložný$100000000, takže dve požiadavky vydané v rovnakej milisekunde už znova nepoužívajú rovnaký nonce anti-replay PdfInflateteraz ohraničuje dekomprimovaný výstup na 256 MiB, aby zastavil prúd komprimovaný zlib, ktorý vyčerpáva pamäť na nepriateľskom alebo poškodenom vstupe (tzv. “zlib bomba”); limit je štedré pre akýkoľvek skutočný prúd PDF
Zmenené (Changed)
- Prekrývajúce sa miešanie
TPdfView(zvýraznenie vyhľadávania, výber textu, slovo čítania, výber rozšírenia) už nepoužívaGetPixel/SetPixelVper pixel; obdĺžnik je teraz miešaný cez 32-bpp off-screenTBitmapaScanLinev jednom prechode, čím sa eliminujú tisíce prechodov jadra GDI na jedno vykreslenie a veľké výbery sa stávajú responzívnymi FPdfAsn1.TDerReader.ReadIntegerteraz odmieta polia INTEGER dlhšie ako 8 bajtov (a 8-bajtové záporné hodnoty, ktorých znamienkový bit by vyžadovalshl >= 64), vrátiac 0 namiesto výpočtu nesprávnej hodnoty prostredníctvom nedefinovaného správania posunu na vstupe ASN.1 CMS/PAdESParseTimeStampRespuž neodráža nonce požiadavky späť akoTPadesTimestamp.Nonce; kým nepristane walker TSTInfo overujúci vrátený nonce, pole zostáva 0, aby signalizovalo “neoverené”, namiesto dávania volajúcim falošnej dôvery, že odpoveď časovej pečiatky je čerstvá
Opravené (Fixed)
PointsToPixelsvrátil svoj vstup nezmenený pre každé DPI: deliteľ bolPointsPerInch(konštanta 72) namiesto literálu 72, čím vzorec kolapsoval naResult := Points. Každý externý volajúci, ktorý robí dimenzovanie points→device-pixel cez tento pomocník, teraz dostáva správnePoints × PixelsPerInch / 72PdfMaxObjNumpodpočítal na dokumentoch používajúcich prúdy objektov (PDF 1.5+ ObjStm): objekty komprimované vnútri/ObjStmnenesú žiadny markerN 0 obj, takže skenovanie surových bajtov ich prehliadlo a injektory alokujúceMaxObj+1pre nové objekty by kolidovali so skrytými členmi ObjStm a ticho poškodili súbor. Skenovanie teraz najprv rozširuje prúdy objektov, takže každé číslo objektu je viditeľnéInjectPdfAMarkersuž nevytvára falošné tvrdenie o zhode PDF/A na zašifrovanom dokumente: PDF/A (ISO 19005-1 §7.1) zakazuje šifrovanie a injektor predtým kopíroval zdroj so značkami, aj keď ho nasledujúca validácia odmietne. Keď je nastavenéHasEncrypt, zdroj je teraz prenášaný bezo zmeny. Normálna cestaTPdf.SaveAsPdfAuž odstraňuje šifrovanie (saRemoveSecurity) pred injekciou, takže to ovplyvňuje iba priamych volajúcichPdfReadStreamBytesteraz odmieta/Lengthväčší ako celý súbor pred alokáciou výsledného bufferu, čím uzatvára rannú alokačnú cestu na poškodenom alebo nepriateľskom nepriamom dĺžke
Version 2.11.0
Pridané (Added)
- Záznam PDFium
FPDF_FILEHANDLERteraz deklaruje svojich šesť spätných volaní (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) ako skutočné polia namiesto komentárov, čo zodpovedá rozloženiu hlavičky C. Spätné volania prenosu súborov FFI XFA (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL), ktoré vrátia alebo konzumujúPFPDF_FILEHANDLER, zostávajú neimplementované vo vrtsve vyplňovania formulárov Pascal, ale typ je teraz štrukturálne správny pre akúkoľvek budúcu cestu odosielania/nahrávania XFA - Načítanie a uvoľnenie knižnice PDFium (
LoadLibrary/UnloadLibrary) sú teraz serializované procesom globálnej kritickej sekcie, takže dve pracovné vláknaTPdfFuture<T>(alebo pracovník pretekajúci s hlavným vláknom) nemôžu oba pozorovaťPDFiumLibrary=0a dvojito sa viazať, alebo uvoľniť DLL, kým iné vlákno je uprostred väzby - Sekcia
initialization/finalizationteraz voláUnloadLibrarypri uvoľnení jednotky, čím zaistí, žeFPDF_DestroyLibrarybeží (spojenie pracovného vlákna, likvidácia izolátu V8, demontáž fontov/cache) namiesto spoliehania sa na OS na získanie DLL
Zmenené (Changed)
TPdf.SetActiveteraz prehĺta akúkoľvek výnimku počas načítania (predtým ibaEPdfError), takže chyba prúdu alebo porušenie prístupu počas nastavenia formulára/stránky zanecháActive=Falsenamiesto čiastočne načítanej komponenty s neurčeným stavom- Konzistentné kódovanie znakov pre argumenty kľúčov metadát PDFium:
TPdf.GetMetaTextteraz používa rovnaké rozdelenie FPCAnsiString/ DelphiUTF8EncodeakoGetViewerPreferencea načívacie cesty, namiesto konverzie holéhoAnsiString(Tag) - Duplicitné pomocníky
BytesToAnsi,AnsiToBytes,WriteBytesaWriteStrboli deduplikované:FPdfCompressich teraz importuje zFPdfPdfCommon(jeho aliasyWriteBytesToStream/WriteAnsiToStreamsú zrušené) a redundantné preťaženieBytesToAnsis tromi argumentmi vFPdfPdfaje odstránené.FPdfAsn1si zachováva svoju lokálnu kópiu zámerne, aby kryptografická vrstva zostala bez jednotky vrstvy zhody
Opravené (Fixed)
- Únik zdrojov v
TPdf.LoadDocument(súbor, pamäť,TBytes,TMemoryStream, vlastný prúd) aTPdf.CreateDocument: akInitializeFormFillaleboReloadPagevyvolali po úspešnomFPDF_LoadDocument/FPDF_CreateNewDocument, natívny handleFPDF_DOCUMENTunikol, pretožeFActivebol stále False v danom bode. Každá cesta teraz zabalí nastavenie po načítaní dotry/excepta pri zlyhaní zavrie dokument, pričom komponentu nechá v čisto neaktívnom stave - Priateľskejšia diagnostika načítania DLL PDFium:
CheckLoadLibrarydetegujeERROR_BAD_EXE_FORMAT(193) a hlási nesúlad architektúry 32/64-bit poukazujúc na zodpovedajúce zostavenieDLLs/Win32aleboDLLs/Win64, namiesto odovzdávania iba generickej chyby OS.CheckGetProcAddressteraz uvádza, že nasadenápdfium.dllje staršia ako väzba, keď chýba požadovaný export, namiesto holého textu OS "procedure not found"
Version 2.10.1
Opravené (Fixed)
- Štandardizácia sid v SignerInfo PAdES: identifikátor podpisovateľa teraz používa formu
issuerAndSerialNumberz RFC 5652 §5.3 (issuer Name + serialNumber, obe extrahované doslovne z DER certifikátu podpisovateľa), čím nahrádza predchádzajúci neštandardnýsubjectKeyIdentifier+ SHA-256 zástupný údaj s celým certifikátom, ktorý Adobe Acrobat a iné vyhovujúce validátory odmietali. Nový prechod TbsCertificate DER (ExtractIssuerAndSerial) číta issuer SEQUENCE a serial INTEGER ako surové bajty TLV — sériové čísla často prevyšujú rozsahInt64, takže surový TLV je povinný. FormasubjectKeyIdentifierzostáva ako fallback len vtedy, keď parsovanie DER certifikátu zlyhá
Zmenené (Changed)
TCmsSignerId.SerialNumber: Int64nahradenýSerialDer: TBytes(surové TLV serialNumber). Tvorca CMS vkladá vyrezané TLV doslovne doIssuerAndSerialNumber, čím sa vyháva pretečeniuInt64pri 20-bajtových CA sériových číslach (horná hranica RFC 5280 §4.1.2.2)
Version 2.10.0
Pridané (Added)
- Dlhodobá validácia PAdES B-LT: keď
TPadesSignOptions.Level >= plB_LT,SignPadesBytespripája prírastkovú aktualizáciu nesúcu slovník/DSSs certifikátom podpisovateľa a plným prechodným reťazcom (samopodpísaný root je vylúčený podľa RFC 5652 §10.2.3), plus značku/Extensions /ESICLevel 1 (EN 319 142-1 §5.4.2) - Archivačná časová pečiatka PAdES B-LTA: keď
Level >= plB_LTAa je nastavenéTsaUrl, pripojí sa slovník podpisu Document Time-stamp (/SubFilter /ETSI.RFC3161), ktorého/ByteRangepokrýva celý súbor; značka ESIC je povýšená na Level 2. Tým sa dokončujú štyri základné úrovne PAdES (B-B, B-T, B-LT, B-LTA) - Zbierka reťazca certifikátov:
ResolveWinSignerteraz voláCertGetCertificateChaina napĺňaTPadesResolvedSigner.ChainCertDerprechodnými CA certifikátmi, takže/DSS /Certsv B-LT nesie každý certifikát potrebný na validáciu podpisu bez externých vyhľadávaní.CertFreeCertificateContextje teraz viazaný, čím sa zatvára únik jedného kontextu na podpis zaznamenaný vo v2.8.0 - Pracovný postup integrácie PDF/A:
TPdf.SignPadesWithPdfAnajprv konvertuje dokument na PDF/A (najvyššia úroveň, ktorú knižnica dnes emituje) a potom aplikuje požadovaný podpis PAdES — vzorec kontajnera dlhodobého archivovania odporúčaný v EN 319 142-1 Annex A.7
Version 2.9.0
Pridané (Added)
- Dôveryhodná časová pečiatka PAdES B-T:
TPadesSignOptionszískava poliaLevel,TsaUrlaNonce. KeďLevel >= plB_Ta je nastavenéTsaUrl,SignPadesBytesextrahuje hodnotu podpisu zo zostaveného CMS, vyžiada si nad ním časovú pečiatku RFC 3161 a vloží vrátený TimeStampToken ako nepodpísaný atribút SignerInfosignature-time-stamp— krok dôveryhodného času B-T (EN 319 142-1 §6.3 req o) FPdfTsa: multiplatformný klient RFC 3161 —BuildTimeStampReq(verzia 1, SHA-256 messageImprint nad hodnotou podpisu, nonce, certReq=true),ParseTimeStampResp(akceptuje PKIStatus 0/1, odmieta 2+, extrahuje TimeStampToken ContentInfo doslovne) aRequestTimestamp(jednorazové zostavenie+POST+parsovanie).PadesTsaAvailablefunkciu bráni na platformách bez HTTP backenduFPdfTsaWin: Windows WinHttp backend, dynamicky viazaný z winhttp.dll (žiadna nová závislosť kompilácie; HTTPS vyjednaný úložiskom certifikátov Windows). Zrkadlí vzorec dynamického viazaniaFPdfCryptoWinFPdfCms:ExtractSignatureValueprejde zostavený CMS, aby získal surové oktety podpisu (vstup hasha TSA), aAddSignatureTimestampToCmsprestaví ContentInfo s novýmunsignedAttrs [1](0xA1) nesúcim atribút časovej pečiatky. Validátor stage-1 rozpozná výsledok ako podpis B-T
Version 2.8.0
Pridané (Added)
- Zásobník podpisovania PAdES B-B: štyri nové čisto-Pascalové/multiplatformné stavebné bloky (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) plus Windows CNG backend (FPdfCryptoWin) umožňujúTPdf.SignPades/SignPadesToStreamvytvoriť podpis PAdES B-B komplexne. Certifikát podpisovateľa sa rozpoznáva pomocou odtlačku SHA-1 z úložiska Current User “MY”; RSA-PSS (odporúčané), RSA PKCS#1 v1.5 a ECDSA sú všetky podporované prostredníctvomNCryptSignHash FPdfSha256: samostatný SHA-256 FIPS 180-4 (Init/Update/Final + jednorazové pomocníky). FPC 3.2.2 nedodáva žiadnu jednotku SHA-2, takže knižnica vlastní jednu, aby udržala každú cestu kódu CMS na jedinom typeTSHA256Digestbez vetvenia RTLFPdfAsn1: DER enkodér (TDerWriter) a čítačka (TDerReader) pokrývajúce SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontextové značky, s kódovaním definite-length a obsluhou IMPLICIT-tag, ktorú CMS vyžadujeFPdfCms: tvorca CAdES SignedData (BuildSignedData) emitujúci podpísané atribúty content-type, message-digest a signing-certificate-v2, ktoré baseline PAdES ukladá, s voliteľnými signing-time a commitment-type-indication. Hash signedAttrs sa počíta nad formou označenou SET (0x31) a znovu sa emituje so značkou IMPLICIT [0] (0xA0) podľa RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: abstrakcia kryptografického backendu sPadesCryptoAvailable/ResolvePadesSignera Windows implementáciou viažúcou dynamicky crypt32.dll / ncrypt.dll (žiadna nová závislosť DLL kompilácie). Podpisy ECDSA sa prekódovávajú z formy Windows IEEE P1363 r¦s do podoby DERECDSA-Sig-Value, ktorú CMS vyžadujeSignPadesBytes: injekcia podpisu na úrovni bajtov — rezervuje štrbiny hex/Contentss pevnou šírkou, vypočíta pokrývajúci/ByteRange, vytvorí hash dokumentu, zostaví a vloží CMS a pripojí prírastkovú aktualizáciu. Validátor (v2.7.0) rozpozná výstup ako podpis PAdES B-B
Version 2.7.0
Pridané (Added)
- Štrukturálny validátor PAdES (ETSI EN 319 142-1 V1.2.1): nová jednotka
FPdfPadesa metódaTPdf.ValidatePadeskontrolujú slovníky hodnoty podpisu dosiahnuteľné z/ByteRange, prejdúSignedDataCMS vo vnútri/Contentsdostatočne ďaleko na potvrdenie tvaru CAdES detached a detekujú štyri základné úrovne (B-B, B-T, B-LT, B-LTA) plus slovníky Document Time-stamp (/SubFilter /ETSI.RFC3161) - Sada problémov PAdES na úrovni klauzúl: 26 výpočtov
ppei*pokrýva prijateľnosť/SubFilter(adbe.pkcs7.sha1aadbe.x509.rsa_sha1označené ako zakázané), pokrytie súboru/ByteRange, zákaz/Cert, tvarSignedDataCMS (jeden podpisovateľ, detached eContent, rozsah verzií), požadované podpísané atribúty (content-type,message-digest,signing-certificate/v2), zakázané hashe (MD5, SHA-1), vzájomné vylúčenie/Reasonvscommitment-type-indication(req d), požiadavku na dôveryhodný čas B-T,/DSS+/Certs+ značka ESIC Level 1 pre B-LT a Document Time-stamp + značka ESIC Level 2 pre B-LTA - Injektor DSS:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreampripájajú prírastkovú aktualizáciu nesúcu slovník/DSS(s poliami streamov/Certs,/OCSPs,/CRLs) a značku/Extensions /ESIC(Level 1 alebo 2) na kópii dokumentu, pričom zachovávajú pôvodné bajty — krok vkladania validačného materiálu B-LT/B-LTA (klauzula 5.4.2) - Multiplatformná, nezávislá fáza: validátor a injektor sú čisto-Pascalové a fungujú v každom podporovanom IDE (Delphi, Lazarus, FPC, C++Builder); pre toto vydanie sa nevyžaduje žiadny kryptografický backend a nezavádza sa žiadna nová závislosť DLL
Version 2.6.0
Zmenené (Changed)
- Deduplikácia naprieč štandardmi: ďalších sedem duplikovaných pomocných funkcií (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) bolo odstránených z jednotlivých jednotiek štandardov a skonsolidovaných do
FPdfPdfCommon, čím sa znižuje približne ~300 riadkov záťaže údržby copy-paste - Kvalita PreflightReport: problémy tried obsahu PDF/X a PDF/E, ktoré predtým prepadli do všeobecnej kategórie “missing marker”, majú teraz presné kategórie Content/Metadata/Security a odporúčania špecifické pre klauzuly (približne 15 výpočtov v oboch štandardoch)
- Pokrytie testov PDF/E a PDF/R: ďalších šesť nulovým pokrytím disponujúcich výpočtov získalo pozitívne testy (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Oprava zostavovania Lazarus:
Tests.PdfVT(jednotka DUnitX len pre Delphi pridaná vo v2.5.x) je teraz vylúčená z projektu Lazarus, aby sa obnovila kompilácia
Version 2.5.3
Pridané (Added)
- Úplnosť OutputIntent (PDF/X-4 §6.2.4):
pvviOutputIntentSchemeoznačuje OutputIntent, ktorého/Snie je/GTS_PDFX;pvviOutputIntentMissingIdentifieroznačuje chýbajúci/OutputConditionIdentifier - Výnimka Reference XObject pre PDF/VT-2 (§6.2.2):
pvviReferenceXObjectForbiddensa už nespúšťa pre súborPDF/VT-2, ktorý smie legálne používať Reference XObjects na báze X-5g/5pg - Validácia znakov hranice MIME (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharoznačuje hranicu, ktorej znaky spadajú mimo množiny bchars alebo ktorej dĺžka presahuje 70
Opravené (Fixed)
InjectPdfVTMarkersteraz zapisuje Info/CreationDatea/ModDatez volieb uloženia, takže vytvorený súbor prejdeValidatePdfVTCompliancebez falošnéhopvviInfoModDateMismatch(injektor predtým prepísal dátumy XMP, ale ponechal dátumy slovníka Info neaktuálne)
Version 2.5.2
Pridané (Added)
- Konzistencia Info
/ModDate(§6.3 NOTE 2, báza PDF/X-4):pvviInfoModDateMismatchoznačuje/ModDatev slovníku Info, ktoré po normalizácii dátumu-PDF-na-dátum-XMP sa nerovnáxmp:ModifyDate - Súlad inline fragmentu PDF/VT-2s (Annex A.2): validátor MIME teraz spúšťa
ValidatePdfVTCompliancena každej inline častiapplication/pdfa označuje telo mimo PDF/VT prostredníctvomvtmviInlinePdfNotPdfVT
Version 2.5.1
Pridané (Added)
- Validácia delenia DParts (ISO 16612-2 §6.5 Table 4):
pvviDPartsBadChunkingoznačuje pole/DParts, ktorého nekoncové polia nemajú presne 8192 položiek alebo ktorého posledné pole spadá mimo 1..8192 - Konzistencia RecordLevel naprieč streamami (Annex A.2): validátor MIME PDF/VT-2s teraz extrahuje
/RecordLevelz každého inline PDF a označuje nesúhlas prostredníctvomvtmviRecordLevelMismatch, čím dopĺňa existujúcu kontrolu NodeNameList - Tipy opakujúcich sa grafických objektov (§6.7):
pvviGtsScopeInvalidValueoznačuje/GTS_Scopemimo {SingleUse, Record, File, Stream, Global, Unknown};pvviGtsScopeRecordWithoutRecordLeveloznačuje/Recordbez/RecordLevel;pvviGtsXidNotUuidoznačuje/GTS_XID, ktoré nie je uuid: URI podľa RFC 4122;pvviGtsEnvMissingoznačuje chýbajúce/GTS_Env, keď/GTS_Scopeje Stream alebo Global (§6.7.4) - Detekcia dopredných referencií MIME (Annex A.2):
vtmviForwardReferenceoznačuje inline PDF, ktoré cituje názov súboru (prostredníctvom/EF /F) nezavedený skoršou časťou prílohy v streame
Opravené (Fixed)
- Funkcie
ExtractNodeNameListFromPdfaExtractRecordLevelFromPdfvFPdfPdfvtMimevyriešili opakujúcu sa chybu off-by-one, kde 1-based offset vrátenýAnsiFindKeybol braný ako absolútny bajtový offset v rozbalenom PDF
Version 2.5.0
Pridané (Added)
- Metadáta časti dokumentu PDF/VT (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionszískaloDpmEntriesaDpmTarget, takže zapisovač môže pripojiť slovník/DPMk syntetizovanému uzlu DPart, s validáciou názvu kľúča voči pravidlu second-class-prefix z Annex E a pravidlám NMTOKEN / jedinečnosti / tvaruGTS_Managed§6.6 na strane validátora - Streamová výmena PDF/VT-2s (Annex A): nová jednotka
FPdfPdfvtMimeposkytujeBuildPdfVT2sStreamaValidatePdfVT2sStreampre obálku MIMEmultipart/mixednesúcu inline fragmenty PDF/VT plus prílohu ICC profilov, s pravidlom usporiadania hlavičkyX-PDFVT-Stream-version: 1a kontrolou konzistentnostiNodeNameListnaprieč streamami TPdf.ValidatePdfVTteraz vykonáva autoritatívne počítanie akcií JavaScript prostredníctvomFPDFDoc_GetJavaScriptActionCount, čím dopĺňa skenovanie názvov/JavaScriptna úrovni bajtov
Opravené (Fixed)
- Správnosť
Trappedv PDF/VT na báze PDF/X-4: hodnota výpočtuptvUnknownje odstránená (PDF/X-4 zakazuje/Unknown),ptvUnspecifiedsa normalizuje na/Falsepri zápise (chýbajúce/Trappedje rovnako zakázané) a nový problémpvviTrappedInvalidoznačuje neprítomnú aleboUnknownhodnotu ValidatePdfVTComplianceteraz rozbaľuje streamy objektov (PdfExpandObjectStreams) pred skenovaním, takže katalóg, slovník OutputIntent alebo Metadata uložené vo vnútri komprimovaného ObjStm (PDF 1.5+, typické pre producentov PDF/X-4) sú dosiahnuteľné vyhľadávaním na úrovni bajtov
Zmenené (Changed)
- PDF/VT-1 teraz dedí plné zákazy obsahu PDF/X-4:
pvviAcroFormForbidden(/AcroFormalebo/XFA),pvviAdditionalActionsForbidden(katalóg/AA),pvviMissingTrimBoxapvviReferenceXObjectForbidden(Reference XObject, len X-5g/5pg) - Deduplikácia naprieč štandardmi:
BuildDictObj,IccComponentCount, vstavaný ICC profil sRGB (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumaPdfExpandObjectStreamsboli povýšené zo strojených lokálnych kópií vFPdfPdfa/FPdfPdfx/FPdfPdfvtdo jediného kanonického domova vFPdfPdfCommon; 3144-bajtový ICC literál teraz existuje v kódovej základni presne raz
Version 2.4.0
Opravené (Fixed)
InjectPdfUaMarkersuž neodhadzuje referenciu traileru/Infona báze krížových odkazov v streamoch (cross-reference-stream): lokálna kópiaSourceTrailerInfoRef(ktorej chýbal fallback pre xref-stream) bola nahradená zdieľanouPdfSourceTrailerInfoRef(prevzatou z kópie pre PDF/A, ktorá mala tento fallback od verzie v2.0.0)- Zdieľaná funkcia
PdfReadStreamBytesteraz spracováva nepriame referencie/Length N G R(portované z lokálnej kópie pre PDF/A), takže validátory pre PDF/VT, PDF/R a PDF/E už nesprávne nečítajú ani nepreskakujú streamy metadát XMP vytvorené nástrojmi, ktoré používajú nepriamu dĺžku Length (Acrobat, Ghostscript)
Zmenené (Changed)
- Deduplikácia naprieč štandardmi: lokálne kópie
PdfReadTrailervFPdfPdfaaFPdfPdfx, lokálne kópieSourceTrailerInfoRefvFPdfPdfaaFPdfPdfuaa lokálna funkciaPdfReadStreamBytesvFPdfPdfaboli odstránené — zdieľané verzie zFPdfPdfCommonsa teraz uplatňujú všade, čo odstraňuje približne ~330 riadkov duplicitného kódu a eliminuje záťaž na údržbu spojenú so synchronizáciou kópií - Zníženie dlhu v testoch PDF/X: sedem enums pre triedy obsahu, ktoré mali predtým nulové pokrytie testami, získalo pozitívne testy (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Zmenené (Changed)
- Znižovanie dlhu v testoch PDF/A pokračuje: ďalšie tri enums s nulovým pokrytím získali pozitívne testy;
pvaiForbiddenRenderingIntent(§6.2.9) označuje neštandardný názov rendering-intent v streame obsahu;pvaiJpeg2000Violation(§6.2.2) označuje obrázok JPXDecode s počtom komponentov/NumComponentsmimo {1,3,4} v Part 2;pvaiInlineImageLzwForbidden(§6.1.10) označuje inline obrázok používajúci filter LZW v Part 2
Version 2.2.0
Zmenené (Changed)
- Regresné testy pre cross-reference-stream: existujúci
Validate_XrefStreamTrailer_DetectsConformanceteraz tiež overuje, že referencia/Metadatav katalógu je vyriešená a XMPpdfaid:partsa číta na základe xref-stream (nielen/Root+/ID) — nový testInjectPdfA_XrefStreamBase_RoundTripschráni cestu xref-stream injektora pridanú vo verzii v2.0.0; dva testy naprieč štandardmi (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) overujú, že validátory PDF/E and PDF/R už neodmietajú PDF s xref-stream ako neparsovateľné - Uzavretie testovacieho dlhu pre PDF/A:
Validate_MinimalPdf_FlagsRequiredMarkersoveruje, že holé minimálne PDF vyvolápvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataapvaiMissingXmpDates— čím sa uzatvára gap v symetrii s validátormi PDF/E a PDF/X, ktoré už mali ekvivalentné testy; dva ďalšie enumy s nulovým pokrytím získali pozitívne testy:pvaiUnembeddedFontapvaiSubsetMissingCidSet
Version 2.1.0
Opravené (Fixed)
- PDF/E bolo neúmyselne vynechané z opravy cross-reference-stream vo verzii v2.0.0:
InjectPdfEMarkersajValidatePdfECompliancestále volaliPdfReadTrailerbezAcceptXrefStream, takže injektor PDF/E potichu zlyhal pri výstupe PDF 1.5+ (predvolené nastavenieSaveAsCopyv pdfium); obe miesta volania teraz odovzdávajúTrue - Zdieľaný fallback pre cross-reference-stream v
PdfReadTrailerteraz obsahuje kontrolu/Type /XRef, ktorú už lokálne kópie pre PDF/A a PDF/X mali, takže poškodený offsetstartxrefukazujúci na nesúvisiaci slovník zlyhá kontrolovane namiesto toho, aby bol nesprávne parsovaný ako trailer - Mechanizmus na riešenie nepriamych odkazov
/LangvoValidatePdfUaCompliance(v2.0.0) bol nedostupný:PdfFindObjDictnachádza iba slovníky<<, ale reťazcový objekt/Langje(...)alebo<...>bez slovníka; nahradené priamym skenovaním tela objektu, ktoré lokalizuje token reťazca
Zmenené (Changed)
- Sedem duplicitných pomocných funkcií (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj), ktoré boli bajtovo identickými kópiami verzií zo zdieľaného
FPdfPdfCommon, bolo odstránených zFPdfPdfaaFPdfPdfua— zdieľané verzie sa teraz uplatňujú všade prostredníctvomuses
Version 2.0.0
Opravené (Fixed)
- Tiché zlyhanie naprieč štandardmi: zdieľaný pomocník
PdfReadTrailer(používaný injektormi a validátormi markerov PDF/UA, PDF/X, PDF/VT a PDF/R) teraz prijíma parameterAcceptXrefStreama prechádza na slovník objektov cross-reference-stream, keď nie je prítomné kľúčové slovotrailer(PDF 1.5+); predtým výstupSaveAsCopyv pdfium (ktorý používa krížový referenčný prúd) spôsoboval, že každý injektor markerov potichu zlyhal — zdrojové bajty boli prekopírované bez zmien a volanie napriek tomu vrátilo úspech; validátor PDF/R-1.0 (ktorého základ PDF 2.0 je vždy krížový referenčný prúd) bol prakticky nefunkčný; vyzretá implementácia validátora PDF/A bola portovaná do zdieľaného pomocníka, takže z toho profituje každý štandard - Skenovanie slovníka trailer v
InjectPdfUaMarkersandInjectPdfAMarkersteraz používa funkciuPdfDictEndzohľadňujúcu hĺbku vnorenia namiesto jednoduchého hľadania>>, takže trailer obsahujúci vnorený slovník (napr./Encrypt << ... >>) sa už neukončí predčasne pred koncovou položkou/Info
Zmenené (Changed)
TPdf.ValidatePdfUateraz potláča hrubú kontrolu na úrovni bajtovpvuaiFontNotEmbedded, ak už bol vyvolaný presnejší objektový model PdfiumpvuaiPdfiumFontNotEmbedded, takže preflight report už neobsahuje dva takmer duplicitné riadky „embed your fonts“ pre rovnakú chybupvuaiLangInvalidFormat(§7.2) teraz prevádza nepriamy odkaz/Lang(N 0 R) na jeho reťazcový objekt a overuje jeho obsah, takže nepriamo odkazovaný jazykový tag už nie je slepým miestom
Version 1.99.0
Opravené (Fixed)
pvuaiLangInvalidFormat(§7.2) už nedáva hexadecimálne kódovaným reťazcom/Langvoľný prechod: dvojice UTF-16BE (s BOMFE FF) a čisté ASCII hexadecimálne reťazce sa teraz dekódujú a prechádzajú rovnakou kontrolou gramatiky BCP 47 ako doslovné reťazce(...), takže nesprávne naformátovaný hexadecimálny/Langje zachytený, zatiaľ čo vyhovujúci (napr. UTF-16BEen-US) už nie je vystavený riziku označenia
Zmenené (Changed)
pvuaiFontMissingToUnicode(§7.21.7) teraz vyníma/MacExpertEncodingspolu s/WinAnsiEncodingand/MacRomanEncoding, čo zodpovedá štyrom podmienkam výnimky, ktoré táto klauzula uvádza
Version 1.98.0
Pridané (Added)
pvuaiNeedAppearancesTrue(§7.18.4) označuje AcroForm, ktorého príznak/NeedAppearancesje true, takže vzhľady widgetov nie sú spoľahlivo uzamknuté a asistenčné technológie ich nemôžu priradiť k stromu štruktúry. Portované z validátora PDF/A a obmedzené na prítomnosť/AcroFormna zúženie skenovanej oblasti
Zmenené (Changed)
- Regresia korpusu veraPDF: prepojili sme pár pass+fail pre Reference-XObject podľa §7.20 a páry pass+fail pre podmnožinu CharSet/CIDSet podľa §7.21.4.2 do
Live_Corpus_ValidatePdfUaMatchesConformance. Vzorky pass pre ToUnicode-forbidden-value podľa §7.21.7 a media-clip podľa §7.18.6.2 boli tiež zapojené ako ochrany pred falošne pozitívnymi výsledkami (ich vzorky fail používajú rozloženie slovníkov, ktoré skenovanie na úrovni bajtov nezachytáva, takže je zapojená iba strana pass) - Zoznam kontrol úspešných ciest korpusu získal 15 nových ochrán s nulovým počtom falošne pozitívnych nálezov, takže každá aktívna kontrola
pvuai*na úrovni bajtov a štruktúry je teraz testovaná voči vyhovujúcim vzorkám (predtým bolo chránených len asi 30 zo 60 aktívnych problémov). OchranapvuaiLangInvalidFormatbola zámerne vynechaná, pretože kontrola na úrovni bajtov konzervatívne označuje hexadecimálne kódované reťazce/Lang, ktoré nedokáže dekódovať
Version 1.97.0
Opravené (Fixed)
- Zabezpečenie
ValidatePdfUaStructureElements: prechod rodičovským reťazcomEnclosingTableteraz obsahuje počítadlo krokov (ohraničené počtom prvkov), takže nesprávne naformátovaný cyklusParentIndexna syntetickom poli prvkov štruktúry už nemôže zablokovať volajúceho. Alokácia poľa pre ID označeného obsahu voValidatePdfUaPageContentTaggingje teraz obmedzená na jeden milión položiek, čo zabraňuje viacgigabajtovej alokácii pri chybnom alebo úmyselne poškodenomMarkedContentID
Zmenené (Changed)
- Dokumentačný komentár k enum
pvuaiOrderedListMissingListNumberingteraz presne popisuje, čo kontrola robí: označuje prvokL, ktorého hodnotaListNumberingje mimo množiny definovanej v tabuľke ISO 32000-1 Table 347 (chýbajúci atribút sa neoznačuje). Predchádzajúci komentár naznačoval, že zisťuje aj usporiadané zoznamy, ktorým tento atribút chýba, čo však implementácia nerobí - Dve vzorky fail pre nesúlad WMode
7.21.3.3-t02z korpusu sú teraz prepojené doLive_Corpus_ValidatePdfUaMatchesConformance— od verzie v1.95.0 je prúd CMap dekomprimovaný pomocou FlateDecode, takže porovnanie slovníka voči obsahu teraz prebieha na čitateľnej strane. Zastaraný komentár „nepripojené“ bol odstránený
Version 1.96.0
Pridané (Added)
- Konzistencia medzi štandardmi:
TPdf.ValidatePdfUazískava dve kontroly portované z validátora PDF/A.pvuaiAnnotationFlagsViolation(§7.18.1) označuje neoslobodenú anotáciu obsahujúcu príznak Hidden / Invisible / NoView, čo narúša tok čítania asistenčnej technológie.pvuaiActionTargetMissing(§7.18.5) označuje akciu GoToR / URI / SubmitForm, ktorej chýba požadovaný kľúč cieľa (/F+/D, /URI, /F), čím sa odkaz stáva pre asistenčnú technológiu nepoužiteľným
Opravené (Fixed)
- Zlúčenie stromu štruktúry medzi stránkami: akumulačná slučka
AllElemsinTPdf.ValidatePdfUateraz prepočítavaParentIndexkaždého prvku z lokálneho poľa stránky na zlúčené pole. Bez toho si podriadené prvky na stránke 2 ponechávali lokálny index ukazujúci do výseku stránky 1, čo v tichosti poškodzovalo každú kontrolu závislú od ParentIndex (štruktúra tabuliek/zoznamov, počet podriadených H podľa §7.4.4, EnclosingTable) - Parsovanie RoleMap:
PdfReadRoleMapPairsuž neukončuje celý sken kľúčov/hodnôt, keď je hodnota nepriamym odkazom (N 0 R) alebo polom ([...]) — obe formy sú platnými formami RoleMap podľa ISO 32000-1 14.8.5.1. Teraz iba preskočí túto položku (Continue) namiesto prerušenia (Break), čím sa eliminujú falošne pozitívne nálezypvuaiRoleMapUnresolvedpri typoch mapovaných po nepriamej položke alebo poli
Zmenené (Changed)
FPdfPreflightReport: 18 aktívnych hodnôtTPdfUaValidationIssue, ktoré predtým spadali pod všeobecnú kategóriu a odporúčanie „chýbajúci príznak“, teraz nesú presné kategórie (Structure / Content / Metadata / Security) a odporúčania špecifické pre jednotlivé klauzuly. Taktiež bola opravená chyba v písanípuaNone / pua1→pucNone / puc1v súborePDFSpecComplianceMatrix.md
Version 1.95.0
Zmenené (Changed)
- Revízia správnosti a úplnosti
TPdf.ValidatePdfUa: kontrolapvuaiCMapWModeMismatchpodľa §7.21.3.3 a kontrolapvuaiToUnicodeForbiddenValuepodľa §7.21.7 teraz pred skenovaním dekomprimujú prúdy CMap / ToUnicode komprimované pomocouFlateDecode(predtým sa posudzovali iba nekomprimované prúdy, čo bol známy falošne negatívny výsledok). Zdieľaní pomocníciPdfInflate/PdfReadAndDecodeStreamboli presunutí zFPdfPdfa/FPdfPdfxdoFPdfPdfCommon, aby každá jednotka zhody zdieľala rovnakú kópiu
Pridané (Added)
pvuaiSubsetCharSetEmpty(§7.21.4.2) označujeFontDescriptorpodmnožiny Type 1, ktorý obsahuje kľúč/CharSet, ktorého reťazcová hodnota je prázdna — existujúca kontrolapvuaiSubsetMissingCharSetzachytila iba chýbajúci kľúč. Prázdny/CIDSetsa neoznačuje, keďže písmo bez CID môže oprávnene obsahovať prázdnu bitmapu
Version 1.94.0
Pridané (Added)
- Druhé kolo auditu
TPdf.ValidatePdfUauzavrelo šesť nedostatkov voči ISO 14289-1, ktoré vyplynuli z revízie po jednotlivých klauzulách a opätovného preskúmania natívnych API Pdfium, ktoré už boli obalené, ale nepoužívali sa v ceste PDF/UA.pvuaiHeadingFormatInvalid(§7.4.3) označuje používateľom definované značky nadpisov, ktoré začínajú na H, ale obsahujú oddeľovače, medzery alebo rímske číslice namiesto čistých arabských číslic.pvuaiMissingDocumentOutline(§7.17, should) označuje viacstránkový dokument, ktorý neobsahuje osnovu záložiek (jednostránkové dokumenty sú oslobodené).pvuaiStructElementLangInvalid(§7.2) označuje hodnotu/Langprvku štruktúry, ktorá nie je platným tagom BCP 47.pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) označuje prvok štruktúry typu Widget, ktorému chýba vlastník atribútu PrintField.pvuaiLinkNotInStructureTree(§7.18.5) označuje dokument, ktorého anotácie/Subtype /Linknie sú vystavené ako prvky štruktúry typu Link.pvuaiPdfiumAnnotationMissingContentsapvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) pridávajú presné skenovanie anotácií v objektovom modeli Pdfium, ktoré vyníma skryté anotácie, anotácie mimo crop-boxu, Popup a Widget anotácie — čím sa eliminujú falošne pozitívne nálezy heuristiky na úrovni bajtov, ktorá nedokáže čítať príznaky/Falebo/Rect
Version 1.93.0
Pridané (Added)
TPdf.ValidatePdfUateraz vrství prechod objektovým modelom Pdfium nad inšpektor na úrovni bajtov, čím kopíruje architektúru 7. kola PDF/A: prechádza textové objekty každej stránky cezFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) a skenuje každý znak cezFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) aFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — čo je presnejšie ako heuristiky na úrovni bajtov, ktoré sa spúšťajú iba vtedy, keď nie sú prítomné žiadne programy písiem alebo sa vôbec neobjavuje/ToUnicode. Prechod sa predčasne ukončuje na troch úrovniach: slučka stránky sa skončí, keď sú už nastavené všetky tri problémy vrstvy Pdfium, slučka objektov sa skončí pri prvom nevloženom písme a skenovanie znakov preskočí kontrolu.notdef, ak už nastala chybaUnicodeMapError. PDF/UA bol posledným validátorom štandardu PDF bez vrstvy objektového modelu Pdfium
Version 1.92.0
Pridané (Added)
- Vytvorený súbor
Tests.PdfR— prvý testovací súbor pre validátor PDF/R-1 (FPdfPdfr), ktorý pokrýva validáciu hlavičky, zákaz ObjStm, detekciu raster-markerov a ochranu čistého súboru pred falošne pozitívnymi nálezmi. Všetkých šesť testovacích sád pre štandardy PDF má teraz vyhradené testovacie súbory: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = celkovo 212 testov
Version 1.91.0
Pridané (Added)
ValidatePdfEaValidatePdfVTzískali kontroly na úrovni obsahu, ktoré boli predtým dostupné iba vo validátoroch PDF/A, PDF/UA a PDF/X:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(iba PDF/E),pveiEmbeddedFilesForbidden(iba PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden.TPdf.ValidatePdfEaTPdf.ValidatePdfVTtaktiež získavajú vrstvu objektového modelu Pdfium (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded), ktorá prechádza textové objekty stránky pomocouFPDFFont_GetIsEmbeddeda predčasne končí pri prvom nevloženom písme
Version 1.90.0
Pridané (Added)
TPdf.ValidatePdfXteraz vrství prechod objektovým modelom Pdfium nad inšpektor na úrovni bajtov: prechádza textové objekty každej stránky cezFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddeda nahlasuje nevložené písmo akopvxiPdfiumFontNotEmbedded— čo je presnejšie ako heuristika na úrovni bajtov, ktorá sa spúšťa iba vtedy, keď nie sú prítomné žiadne programy písiem. Prechod sa predčasne končí pri prvom nájdenom nevloženom písme
Zmenené (Changed)
- Prechod stromom štruktúry
TPdf.ValidatePdfUa: volanieValidatePdfUaPageContentTaggingpre každú stránku (ktoré vytvára mapu priradenia ID označeného obsahu a krížovo kontroluje každý textový/obrázkový objekt) sa teraz na nasledujúcich stránkach vynecháva, ak sa už našiel problémpvuaiUntaggedContent— prvky štruktúry sa stále zbierajú na kontroly medzi stránkami (jedinečné ID poznámky, sekvencia nadpisov), ale náročný prechod označovania obsahu pre každú stránku sa ukončí skôr
Version 1.89.0
Zmenené (Changed)
- Výkon vrstvy objektového modelu Pdfium v
TPdf.ValidatePdfA: prechod stránkami/objektmi sa teraz predčasne ukončuje na troch úrovniach — slučka stránky sa skončí, keď sú už nájdené všetky príslušné problémy vrstvy Pdfium, slučka pre jednotlivé objekty sa skončí, keď sú nastavené oba problémy objektu (vloženie písma + priehľadnosť) a skenovanie znakov na textovej stránke preskočí prechod.notdef, ak už nastala chybaUnicodeMapError. Kontroly dostupnosti API cezAssigned()a príznaky zhody sa ukladajú do lokálnych boolovských premenných raz pred začiatkom slučky namiesto ich opätovného vyhodnocovania pre každú stránku/objekt/znak. Pri veľkom nevyhovujúcom dokumente sa prechod môže zastaviť už po prvej stránke namiesto skenovania všetkých stránok; pri vyhovujúcom dokumente je réžia na stránku nižšia (žiadne opakované volaniaAssigned)
Version 1.88.0
Pridané (Added)
ValidatePdfXzískal osem nových hodnôtTPdfXValidationIssuena úrovni obsahu, ktoré pokrývajú obmedzenia pre tlačovú výmenu (print-exchange), ktoré PDF/X ukladá nad rámec príznakov formátu súboru:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(žiadny/TrimBoxna žiadnej stránke) apvxiTrappedNotSet(chýbajúci/Trappedalebo hodnota/Unknown). Validátor PDF/X predtým kontroloval iba značky XMP/OutputIntent; toto je jeho prvý prechod na úrovni obsahu. Zdieľaní pomocníciPdfStructureBytes/PdfHasName/PdfCountNameboli pridaní doFPdfPdfCommon, aby ich mohli používať všetky jednotky zhody
Version 1.87.0
Pridané
- Validácia PDF/UA teraz pokrýva pravidlá zloženého písma podľa ISO 14289-1 §7.21.3:
pvuaiCidSystemInfoMismatchoznačí fonty Type0, u ktorých sa vložená CMap a následníka CIDFont nezhodujú v hodnotáchRegistry/Ordering, alebo ktorýchSupplementCIDFont presahuje hodnotu CMap,pvuaiCMapNotEmbeddedoznačí CMap odkazované podľa názvu (akoEncodingaleboUseCMap), ktoré nie sú preddefinovanými CMap z tabuľky ISO 32000-1 Table 118, apvuaiCMapWModeMismatchoznačí vložené CMap, ktorých slovníkový kľúčWModesa líši od WMode v obsahu ich prúdu
Opravené
- Kontrola
pvuaiCidFontMissingCidToGidMappodľa §7.21.3.2 vynechávala slovníky CIDFontType2, kde bol pár kľúč/hodnotaSubtypeoddelený novým riadkom; teraz navyše označí aj hodnotu názvuCIDToGIDMapinú akoIdentity
Version 1.86.0
Pridané
- Validácia PDF/UA teraz pokrýva pravidlá kódovania TrueType podľa ISO 14289-1 §7.21.6:
pvuaiTrueTypeEncodingInvalidoznačí nesymbolické fonty TrueType, ktorýchEncodingchýba alebo nie je aniMacRomanEncoding, aniWinAnsiEncoding(priamo alebo cezBaseEncoding), apvuaiSymbolicTrueTypeEncodingoznačí symbolické fonty TrueType nesúce neštandardný názovEncoding
Version 1.85.1
Zmenené
- Kontrola poradia tabulátorov
pvuaiMissingTabsOrderpodľa ISO 14289-1 §7.18.3 sa teraz vykonáva na úrovni každej stránky: každá stránka obsahujúca anotácie musí deklarovať/Tabs /Svo svojom vlastnom slovníku stránky, takže vyhovujúca susedná stránka už nemôže zakryť stránku bez tohto záznamu
Version 1.85.0
Pridané
- Validácia PDF/UA teraz rozlišuje dynamické a statické formuláre XFA podľa ISO 14289-1 §7.15:
pvuaiXfaDynamicoznačí formuláre, ktorých konfigurácia XFA nastavujedynamicRendernarequired
Zmenené
- Bývalý príznak kandidáta pre akýkoľvek XFA
pvuaiXfaPresentbol stiahnutý z používania a naďalej sa nevyvoláva (statický XFA vyhovuje §7.15); hodnota enumu zostáva zachovaná pre kompatibilitu API
Version 1.84.0
Pridané
- Validácia PDF/UA teraz deteguje neoznačený skutočný obsah vyžadovaný normou ISO 14289-1 §7.1:
pvuaiUntaggedContentoznačí vykreslené textové a obrazové objekty, ktoré nie sú zahrnuté do stromu štruktúry stránky (prostredníctvom ich ID označeného obsahu) ani označené ako Artifact - Nové pomocné funkcie na úrovni stránky
GetPageContentMarkInfosaValidatePdfUaPageContentTaggingso záznamomTPdfPageContentMarkInfona priame použitie
Version 1.83.0
Pridané
- Validácia PDF/UA teraz vynucuje model nadpisov podľa ISO 14289-1 §7.4.4:
pvuaiHeadingModelMixedoznačí dokumenty, ktoré miešajú generickú značkuHs číslovanými nadpismiH1..Hn, apvuaiHeadingMultipleInNodeoznačí uzly štruktúry obsahujúce viac ako jeden podradený nadpisH
Version 1.82.0
Pridané
- Validácia PDF/UA teraz rieši RoleMap vyžadovaný normou ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardoznačí záznamy RoleMap, ktoré predefinujú štandardný typ štruktúry, apvuaiRoleMapUnresolvedoznačí použité neštandardné typy štruktúry, ktorých reťazec RoleMap chýba, je prerušený alebo cyklický — nepriame reťazce vedúce k štandardnému typu sú akceptované a nepoužité záznamy RoleMap sa nikdy nehodnotia - Nové pomocné funkcie
PdfUaIsStandardStructType,PdfReadRoleMapPairs(s dekódovaním únikových sekvencií PDF názvov#hh) aValidatePdfUaRoleMapUsagena priame použitie
Version 1.81.0
Pridané
- Validácia PDF/UA teraz pokrýva označovanie zoznamov podľa ISO 32000-1 vyžadované normou ISO 14289-1 §7.6:
pvuaiListStructureInvalidoznačí položky LI mimo kontajnera L a časti Lbl/LBody mimo položky LI, pričom akceptuje vnorené zoznamy a legitímne použitie Lbl vo vnútri prvkov Note a BibEntry
Version 1.80.0
Pridané
- Validácia PDF/UA teraz pokrýva označovanie tabuliek podľa ISO 32000-1 vyžadované normou ISO 14289-1 §7.5:
pvuaiTableStructureInvalidoznačí bunky TH/TD mimo riadka TR a riadky alebo skupiny riadkov mimo kontajnera Table,pvuaiTableHeaderMissingScopeoznačí bunky hlavičky, ktorých vzťah nie je určiteľný ani cez atribút Scope, ani cez asociáciu Headers/ID, apvuaiTableHeadersUndefinedIdoznačí referencie Headers v dokumentoch, ktoré nedefinujú žiadne ID prvkov štruktúry TPdfStructureElementsprístupňuje atribúty tabuľkyScope,HasHeaders,HeadersIds,ColSpanaRowSpan, rozlíšené počas prechodu stromom štruktúry
Zmenené
- Prechod stromom štruktúry teraz číta všetky atribúty rozloženia a tabuľky v jedinom prechode cez slovníky atribútov každého prvku namiesto jedného skenu na atribút
Version 1.79.1
Pridané
- Prenesený príklad
AnnotationsLabdo Lazarus a C++Builder, čím sa pridal k existujúcemu konzolovému príkladu Delphi
Opravené
TPdf.CreateAnnotationmohol vyvolať chybu “Cannot set attachment points” pre anotačné značky, ktoré používajú štvorbodové (quad) súradnice (Highlight, Underline, StrikeOut, Squiggly), pretože nová anotácia zatiaľ nemala žiadny priestor na nahradenie; teraz sa namiesto toho pripojí prvý štvorbod
Version 1.79.0
Pridané
- Nový konzolový príklad Delphi
AnnotationsLab: vytvorí anotácie Text, Highlight, Square a Circle, zapíše ich do PDF, potom znovu načíta súbor a vymenúva zoznam anotácií na stránke
Version 1.78.0
Pridané
- Nové metódy
TPdf.MeasureTextaTPdf.MeasureTextWidth: merajú vykreslenú šírku a výšku reťazca pre dané písmo a veľkosť (používateľské jednotky PDF, 1 jednotka = 1/72 palca) bez pridania obsahu na stránku, čo umožňuje logiku rozloženia a zalamovania slov nad metódouAddText; poskytované samostatnou jednotkouFPdfMeasureako pomocná trieda - Nová metóda
TPdf.WrapText: nenásytné zalamovanie slov postavené naMeasureTextWidth, ktoré rozdeľuje text podľa medzier a zoskupuje slová do riadkov nie širších, ako je daná šírka (používateľské jednotky PDF); príliš dlhé jedno slovo získa svoj vlastný riadok (bez zalamovania vo vnútri slova), pričom vráti zalomené riadky ako pole
Version 1.77.0
Pridané
- Funkcia
ValidatePdfAzískala tri nové hodnotyTPdfAValidationIssuepokrývajúce klauzuly, ktoré boli pri predchádzajúcom audite nedostatkov ohodnotené ako “NO” alebo “reader behaviour” (pridané ako ďalšie v poradí, existujúce hodnoty sa nezmenili):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — znak, ktorý sa prevedie na Unicode 0 bez chyby mapovania, čo je runtime príznak odkazu na piktogram.notdef; zistené cez objektovú vrstvu modelu Pdfium),pvaiWordBreakMissing(Úroveň A 6.8.3.2 — reťazec v prúde obsahu zobrazený dlhší ako 20 znakov bez medzery, pravdepodobne porušenie spojených slov; hrubá heuristika, ktorá sa vyhýba falošným pozitívam CJK), apvaiLinkActionMissingTarget(6.6.3 — akcii GoToR/URI/SubmitForm chýba kľúč pre jej cieľ zobrazenia, takže ho čítačka nemôže zobraziť)
Version 1.76.0
Pridané (Added)
ValidatePdfAzískal tri nové hodnotyTPdfAValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 — token/BaseFontalebo/FontNameobsahujúci bajty ≥ 0x80, ktoré netvoria platné UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — vložený obrázok v prúde obsahu stránky používa filter LZW alebo Crypt) apvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — nesymbolické písmo TrueType, ktorého slovník Encoding nesie/Differences)
Version 1.75.0
Pridané (Added)
ValidatePdfAzískal tri nové hodnotyTPdfAValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — číselný token prekračujúci 32-bitový limit celého čísla so znamienkom 2 147 483 647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — hodnota/BMmimo štandardnej množiny režimov miešania ISO 32000-1 §11.3.5; dopĺňa PDF/A-1pvaiTransparentColorSpace, ktoré povoľuje iba Normal/Compatible) apvaiHexStringOddDigits(6.1.6 — hexadecimálny reťazec<...>s nepárnym počtom hexadecimálnych číslic)
Version 1.74.0
Pridané (Added)
ValidatePdfAzískal tri nové hodnotyTPdfAValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvaiPermissionsViolation(6.1.12 — slovník/Permsnesúci/DigestLocation,/DigestMethodalebo/DigestValuespolu s/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — akcia prechodu Trans, detegovaná cez vzor slovníka akcie/S /Trans, aby sa zabránilo falošným zhodám s/Transparency) apvaiPdfiumObjectTransparency(PDF/A-1 6.4 — objekt stránky nesie skutočnú priehľadnosť podľaFPDFPageObj_HasTransparency, čím rozširuje vrstvu objektového modelu Pdfium zavedenú vo v1.73.0, aby zachytila efekty režimu miešania/mäkkej masky, ktoré môže sken názvov na úrovni bajtov prehliadnuť)
Version 1.73.0
Pridané (Added)
TPdf.ValidatePdfAteraz vrství priechod objektovým modelom Pdfium nad inšpektorom na úrovni bajtov: prechádza textové objekty každej stránky cezFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddeda nahlasuje ne vložené vykreslené písmo akopvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4) a načíta každú textovú stránku, aby skenovalFPDFText_HasUnicodeMapErrora nahlásil poškodené mapovanie Unicode akopvaiPdfiumUnicodeMapError(6.3.8). Tieto sú kontroly, ktoré inšpektor na úrovni bajtov nedokáže vykonať — vidí iba tokeny názvov, nie rozpoznané handle písiem alebo stav mapovania podľa znakov — a sú zlúčené do výsledku na úrovni bajtov. Samostatná funkcia na úrovni bajtovValidatePdfACompliancezostáva bez zmeny
Version 1.72.0
Pridané (Added)
ValidatePdfAzískal päť nových hodnôtTPdfAValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalóg nesie niesť/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — OutputIntent nesie niesť/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — file spec s/EFmusí tiež niesť/UF),pvaiXmpPacketBytesAttr(6.7.5 — hlavička paketu XMP nesie niesť zastaralý atribútbytes=aleboencoding=) apvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — bit ToggleNoView anotácie/F, hodnota 512, je zakázaný)
Version 1.71.0
Zmenené (Changed)
ValidatePdfUateraz vyvolávapvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): prechod štruktúrovým stromom rieši atribút rozloženiaListNumberingna každom elementeLcez atribútové API Pdfium a označuje akúkoľvek hodnotu mimo množiny ISO 32000-1 Table 347 (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Neprítomný atribút sa neoznačuje, keďže zoznam môže byť neusporiadaný; tým sa zatvára posledná zvyšková medzera ISO 14289-1 zaznamenaná na konci 5. kola
Version 1.70.0
Pridané (Added)
ValidatePdfUazískal štyri nové hodnotyTPdfUaValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 —FontDescriptorpodmnožiny CID musí deklarovať/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — CMap ToUnicode nesmie mapovať žiadny kód naU+FEFFaleboU+FFFE; nekomprimované prúdy sa skenujú na výstupné formy<FEFF>/<FFFE>),pvuaiLangInvalidFormat(7.2 —/Langmusí byť platná značka RFC 1766 / BCP 47; permisívna gramatika prijímaen,en-US,zh-Hans,es-419a označuje jasne nevyhovujúce hodnoty) apvuaiOrderedListMissingListNumbering(7.6 — zachované pre úplnosť API; validátor ho zatiaľ nevyvoláva, pretože spoľahlivé rozlíšenie usporiadaných a neusporiadaných zoznamov vyžaduje hodnotu atribútuListNumbering, ktorú prechod štruktúrovým stromom nevystavuje)
Version 1.69.0
Pridané (Added)
ValidatePdfUazískal dve nové hodnotyTPdfUaValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — štruktúrny element Widget musí byť vnorený v rámci elementuForm; prechod štruktúrovým stromom teraz overuje priamy typ nadradeného elementu každého Widgetu) apvuaiSubsetMissingCharSet(7.21.4.2 —FontDescriptorpodmnožiny Type 1 musí deklarovať/CharSet, identifikovaný šesťpísmenovým prefixom+názvu podmnožiny na/FontName)
Version 1.68.0
Pridané (Added)
ValidatePdfUazískal dve nové hodnotyTPdfUaValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — slovník akcie URI nesie niesť/IsMaps hodnotoutrue, keďže to vypína prístupný cieľ odkazu) apvuaiHeadingSequenceViolation(7.4.2 — číslované nadpisy musia začínať naH1a zostupná postupnosť nesmie preskočiť medziľahlú úroveň, napr.H1→H3je porušenie). Kontrola nadpisov je prvé pravidlo PDF/UA na úrovni štruktúrového stromu v validátore:ValidatePdfUaStructureElementsteraz prechádza zoznam typovaných elementov a overuje postupnosťH1…H6(aH7+podľa 7.4.3) v poradí dokumentu
Version 1.67.0
Pridané (Added)
ValidatePdfUazískal päť nových hodnôtTPdfUaValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — anotácia Link musí niesť alternatívny popis cez/Contents),pvuaiAnnotationMissingContents(7.18.1 — každá neoslobodená anotácia bez/Contentsmusí mať alternatívny popis; Popup a Widget sú oslobodené),pvuaiEmbeddedFileMissingName(7.11 — slovník špecifikácie súboru musí obsahovať/Fa/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — slovník údajov mediálneho klipu musí obsahovať/CTa/Alt) apvuaiCidFontMissingCidToGidMap(7.21.3.2 — vložené CIDFont Type 2 musí obsahovať/CIDToGIDMap)
Version 1.66.0
Pridané (Added)
ValidatePdfUazískal päť nových hodnôtTPdfUaValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvuaiRoleMapMissing(ISO 14289-1 7.1 — označkovaný dokument s neštandardnými typmi štruktúry musí niesť/RoleMap),pvuaiOptionalContentAsKey(7.10 — konfiguračný slovník voliteľného obsahu nesie niesť kľúč automatického stavu/AS),pvuaiXfaPresent(7.15 — prítomnosť/XFAv AcroForm sa označuje, keďže dynamické XFA je zakázané),pvuaiTrapNetAnnotation(7.18.2 — anotácie/TrapNetsú zakázané) apvuaiReferenceXObject(7.20 — referenčné XObjecty, rozpoznané podľa značky/Ref, sú zakázané)
Opravené (Fixed)
ValidatePdfUauž neprodukuje falošné pozitívapvuaiEncryptionPresentna každom šifrovanom súbore: PDF/UA povoľuje šifrovanie, pokiaľ má kľúč/Pšifrovacieho slovníka nastavenú bitovú pozíciu 10 (hodnota 1024), čo udeľuje prístup asistívnej technológii (7.16). Presné porušenie sa teraz nahlasuje cez novépvuaiEncryptionPBitMissing;pvuaiEncryptionPresentsa v enum zachováva pre kompatibilitu API, ale validátor na úrovni bajtov ho už nevyvoláva
Version 1.65.0
Pridané (Added)
ValidatePdfAzískal päť nových hodnôtTPdfAValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — vložené CIDFont Type 2 musí niesť/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 —FontDescriptorpodmnožiny Type 1 musí niesť/CharSet),pvaiSubsetMissingCidSet(6.3.5 —FontDescriptorpodmnožiny CID musí niesť/CIDSet),pvaiWidgetActionForbidden(6.6.1 — anotácia Widget nesie niesť/Aani/AA) apvaiOptionalContentAsKey(ISO 19005-2 6.9 — konfiguračný slovník voliteľného obsahu nesie niesť kľúč automatického stavu/AS, čo je novo relevantné, pretože PDF/A-2 povoľuje voliteľný obsah)
Version 1.64.0
Pridané (Added)
ValidatePdfAzískal osem nových hodnôtTPdfAValidationIssue(pripojené ordinály, existujúce hodnoty bez zmeny):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 — hlavičku%PDF-x.ymusí nasledovať komentár%s aspoň štyrmi bajtami väčšími ako 127),pvaiExternalStreamRef(6.1.7 — slovník prúdu nesie niesť/F,/FFilterani/FDecodeParms),pvaiOutputIntentScheme(6.2.2 —/SOutputIntent musí byť/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDatesa musí tiež objaviť akoxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — úroveň A vyžaduje/MarkInfos/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — slovník/APanotácie musí obsahovať iba/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Annex E.2 — každá pridružená filespec musí niesť/AFRelationship) apvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — obrázok JPEG2000 musí deklarovať 1, 3 alebo 4 komponenty)
Opravené (Fixed)
ValidatePdfAuž neprodukuje falošné pozitívapvaiAnnotationFlagsViolationna dokumentoch, ktoré používajú jednoznakový názov prostriedku písma, ako napríklad/Font << /F 5 0 R >>; sken príznaku/Fje teraz podmienený kontextom anotácie (/Subtypetypu anotácie), čo zodpovedá zdokumentovanému správaniu (6.5.3)ValidatePdfAteraz nahlasuje požiadavku pridruženého súboru PDF/A-3 podľa súboru: dokument sa označí iba vtedy, keď vložená/Type /Filespecodkazujúca na vložený prúd cez/EFnemá/AFRelationship, namiesto predošlej kontroly typu celý-dokument alebo-žiadny (ISO 19005-3 Annex E.2)- Pridaná zastaralá akcia
/SetStatedo množiny zakázaných akcií popri/SetOCGState, takže sa názov akcie podľa PDF Reference zachytí priamo (6.6.1)
Version 1.63.0
Pridané (Added)
- Pridané
TPdf.MeasureTextaTPdf.MeasureTextWidth: zmerajte vykreslenú šírku a výšku textu v danom písme a veľkosti bez pridania obsahu na stránku (v používateľských jednotkách PDF, 1 jednotka = 1/72 palca), čo umožňuje výpočty rozloženia a automatické zalamovanie riadkov nadAddText; poskytované samostatnou jednotkouFPdfMeasureako pomocník triedy
Zmenené (Changed)
DemoDelphiMergePDF,DemoCBuilderMergePDFaDemoLazarusMergePDFvylepšené vo všetkých troch IDE: pridaný výber rozsahu strán podľa súboru, voliteľná výstupná cesta, deduplikácia, protokol behu, tlačidlo zrušenia a súhrn dokončenia zlúčenia, pričom záložky a metadáta sa pri importe prenášajú z prvého zdroja- Ukážky
CreatePDFvo všetkých troch IDE teraz obsahujú voľbu “European Text” na zápis diakritického textu v češtine, francúzštine, nemčine, španielčine, portugalčine, poľštine a turečtine, na overenie výberu písma a spracovania Unicode (bývalá ukážkaEuropeanTextbola pripojená) - Odstránené ukážky
ExtractTextPagesaEuropeanText: schopnosť výstupu textu podľa stránok vExtractTextPagesje teraz pokrytá voľbami rozsahu strán a oddeľovača strán vExtractText; viacjazykové vykresľovanie textu vEuropeanTextbolo pripojené doCreatePDF
Version 1.62.2
Opravené (Fixed)
- Znovu vygenerované hlavičky C++Builder (
.hpp) pre každú verziu a platformu RAD Studio (Win32/Win64/Win64x); odchýlili sa od zdrojov Pascal, zanechávajúc zastaralé signatúry funkcií a chýbajúce jednotky, ktoré sa k používateľom C++Builderu dostávali prostredníctvom distribúcie zdrojov
Version 1.62.1
Opravené (Fixed)
- Obnovená kompilácia zdrojov na RAD Studio 12 Athens a starších: priradenie
TArray<Byte>v ceste validácie PDF/UA používalo implicitný prevod poľa dostupný iba v Delphi 13, ktorý sa na starších IDE nedal skompilovať
Version 1.62.0
Pridané (Added)
TPdf.RenderPageThumbnailvykreslí ľubovoľnú stránku podľa indexu do bitmapy s prispôsobeným pomerom strán bez zmeny aktuálnej stránky dokumentu, načítanej stránky alebo bez vyvolaniaOnPageChange
Opravené (Fixed)
TPdfThumbnailViewuž počas maľovania neriadiPageNumberhostiteľského dokumentu; skôr každé prekreslenie znovu načítalo stránky, vyvolaloOnPageChangea zahodilo textovú stránku, čo mohlo narušiť prepojenýTPdfViewa spustiť slučky prekresľovania. Miniatúry sa teraz vykresľujú cezRenderPageThumbnailbez takýchto vedľajších efektov- Validácia zhody PDF/X teraz skúma dokumenty s prúdom krížových odkazov (PDF 1.6, typické pre PDF/X-4) a objekty uložené v komprimovaných prúdoch objektov, namiesto nahlasovania takýchto súborov plošne ako nevyhovujúcich; značka
GTS_PDFXVersionsa číta z XMP v tvare elementu aj z XMP v tvare atribútu RDF - Validácia PDF/R teraz nahlasuje
pvriInfoXmpMismatch, keď sa slovník Info a XMP nezhodnú v producentovi alebo tvorcovi; problém bol predtým deklarovaný, ale nikdy nevyvolaný - Časovače vypĺňania formulára sa sledujú podľa požiadavky, takže dokument, ktorý naraz spúšťa viacero časovačov (napríklad interval JavaScript spolu s blikaním kurzora poľa), si ich zachováva všetky namiesto toho, aby stratil každý časovač okrem posledného
- Maľovanie
TPdfViewa jeho verejné metódyRenderPage/RenderTileteraz držia zámok vykresľovania dokumentu, čím sa serializujú voči vykresľovaniu rovnakéhoTPdfvo vlakne pracovníka (PDFium nie je bezpečné pre vlákna) - Diakritický text zapisovaný do metadát PDF/X, PDF/R a PDF/VT (názvy podmienok OutputIntent, Creator, Producer) sa teraz kóduje ako reťazec UTF-16BE podľa ISO 32000-1 §7.9.2.2 namiesto surového UTF-8, ktoré by vyhovujúce čítačky chybne interpretovali
- Pomocníci zhody správne čítajú vložené prúdy metadát, ktorých
/Lengthje nepriamy odkaz, načítajú zdrojové bajty pomocouReadBuffer(takže krátke čítanie zlyhá čisto) a odmietajú negatívny posunstartxrefnamiesto riskovania čítania mimo rozsah
Version 1.61.0
Zmenené (Changed)
- Opravy deklarácií FFI/ABI, ktoré môžu vyžadovať prekompilovanie kódu implementujúceho dotknuté spätné volania: spätné volanie vypĺňania formulára
FFI_OpenFileteraz nesiecdecl(Win32 konvencia zásobníka) a parametervalueFPDFAnnot_SetStringValueaFPDFAttachment_SetStringValueje terazFPDF_WIDESTRING(UTF-16LE), aby sa zhodoval s hlavičkami PDFium - Spätné volania progresívneho načítania
FX_FILEAVAIL.IsDataAvailaFX_DOWNLOADHINTS.AddSegmentteraz prijímajú posunysize_tasize_tmá šírku ukazovateľa na Free Pascal / Lazarus Win64 (predtým skrátené na 32 bitov), čo opravuje volania API dostupnosti údajov aoutsize_tna FPC Win64
Opravené (Fixed)
- Bezpečnosť pamäte: použitie-po-uvoľnení časovača vypĺňania formulára pri ničení
TPdfs aktívnym kurzorom AcroForm; dvojitéFPDF_CloseDocumentna chybovej cesteImportNPagesToOne; výnimky Pascal unikajúce cez spätné volaniaFPDF_FILEWRITE/FPDF_FILEACCESScez hranicu C počas ukladania a vkladania JPEG; a pretečenie celého čísla pri extrakcii textu pri čítaní od počiatočného indexu do konca stránky TPdfFuture<T>teraz spoľahlivo doručuje svoje spätné volanie výsledku; odpoveď bola predtým takmer vždy zahodená (a mohla sa dotknúť uvoľneného vlákna), pretože pracovník sa uvoľnil skôr, ako bežalo zaradené spätné volanie odpovede- Výstup PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT a PDF/UA teraz zapisuje záznamy krížových odkazov, ktoré majú presne 20 bajtov, ako vyžaduje ISO 32000-1 §7.5.4
- Injektovanie značiek štandardov už nezničí slovník, keď bol odstránený kľúč (napríklad
/Trapped) poslednou položkou, čo predtým prehltlo uzatvárajúce>>a vytvorilo poškodený objekt - Prúdy ICC profilu OutputIntent teraz deklarujú požadovaný počet komponentov
/Npre PDF/X a PDF/VT (už prítomné pre PDF/A); šifrované zdrojové dokumenty sa dešifrujú pred injektovaním značiek PDF/X, PDF/E, PDF/R, PDF/VT a PDF/UA, takže výstup je platný namiesto tichého poškodenia - BOM xpacket UTF-8 v generovanom XMP sa vysiela ako presné bajty, čo opravuje poškodenie na inštaláciách Delphi, ktorých kódová stránka ANSI nie je Latin-1; updatovacie trailery teraz zachovávajú odkaz
/Infodokumentu SaveAss kompresiou už neskracuje prúdy, ktorých/Lengthje nepriamy odkaz, a znovu zostavené tabuľky krížových odkazov teraz používajú 20-bajtové záznamy, skutočné čísla generácií a zahadzujú zastaralý ukazovateľ/Prev- Validácia zhody číta značky verzie XMP v tvare atribútu pre PDF/E a PDF/X (takže súbory PDF/X-4 serializované ako atribút sú rozpoznané), vyžaduje presný identifikátor
PDF/E-1, správne číta prúdy metadát s nepriamym/Lengtha už nevytvára falošné zhody kľúča/IDštruktúrneho elementu alebo/StructTreeRootpri kontrole traileru PDF/UA; poškodený posunstartxrefuž nevyvoláva chybu rozsahu TPdfThumbnailView: posledná stránka je teraz dosiahnuteľná pomocou posúvača, aktuálna stránka hostiteľského dokumentu sa obnoví po vymaľovaní miniatúr a štandardné spracovanie opustenia myšou sa opätovne distribuuje- Bitmapy stránok a obrázkov v odtieňoch sivej sa už nevykresľujú s chybnou paletou;
TPdfViewuž nezostáva s voľne visiacim odkazom, keď sa jehoTPdfuvoľní ako prvý - Predbežné správy: HTML sa ukladá ako UTF-8, aby sa zhodovalo s deklarovanou znakovou sadou, a escapovanie reťazcov JSON produkuje správne sekvencie
\upre znaky mimo ASCII na Free Pascal - Skúšobné zostavy: dialóg pripomienky skúšobnej verzie sa teraz zobrazí namiesto toho, aby bol potlačený skôr, než sa mohol ukázať
TPdfStreamAdapterteraz odmieta prúdy väčšie ako 4 GiB s jasnou chybou namiesto tichého skrátenia dĺžky odovzdanej do PDFium
Version 1.60.1
Zmenené (Changed)
- Ukážky AccessibilityReader pre Delphi, Lazarus a C++Builder teraz spúšťajú čítanie nahlas na
TPdfReadingSession: každá stránka sa zostaví do jedného hovoreného bloku pomocouBuildSpokenTextFromWords, pozície slov SAPI napájajúFeedSpokenPositiona sedenie posúva stránky a riadi kurzor slov pohľadu, čím nahrádza ručne písanú orchestráciu, ktorú mala každá ukážka predtým - Sledovanie karaoke na úrovni slov v ukážkach teraz funguje aj keď je NVDA rečovým engineom:
EstimatePacingtempuje kurzor čítania podľa uplynutého času hovorenia, zatiaľ čo NVDA predtým čítal nahlas bez akéhokoľvek sledovania slov - Pauza a pokračovanie v ukážkach teraz fungujú aj s NVDA:
ResumeRestartsChunkpri pokračovaní znovu prečíta aktuálnu stránku od jej začiatku, zatiaľ čo SAPI si ponecháva svoju natívnu pauzu a pokračovanie na mieste
Version 1.60.0
Pridané (Added)
- Živé vykresľovanie pre slabozrakých na
TPdfView: nové voľby vykresľovaniareInvertareNightDuotoneprefarbia každú vykreslenú dlaždicu stránky (úplná inverzia farieb alebo nočná duotónová paleta) pred vymaľovaním prekrytia vyhľadávania, výberu, čítania a kurzora slov, čím prinášajú existujúce transformácie farieb bitmapy do interaktívneho prehliadača pre jednoduché aj dvojstranové rozloženia; prepínanie volieb spôsobí okamžité prekreslenie NightDuotoneInkaNightDuotonePaperkonfigurujú nočnú paletu, predvolene jantárový text na čiernej stránke;reInvertzvíťazí, keď sú nastavené obe voľby
Version 1.59.0
Pridané (Added)
TPdfReadingSession: neutrálne komponenta orchestrácie čítania nahlas voči engineu reči. Udržiava kurzor blokov, kurzor slov a stav prehrávania (Play/PlayFrom/Pause/Resume/Stop), postupuje cez načítané blokyTPdfSpokenText, keď hostiteľ ohlási engine nečinný cezTick, prekladá posuny hovoreného textu späť na znaky stránky a automaticky riadi kurzor slov pripojenéhoTPdfView; hostiteľ pripojí ľubovoľný engine reči cezOnSpeaka udalosti požiadavky zrušiť / pauza / pokračovať, takže knižnica neprepája žiadne API reči samaFeedSpokenPositionkonzumuje pozície slov engineu (ako SAPIStatus.InputWordPosition);EstimatePacingsEstimatedWordsPerMinutetempuje enginey bez signálu pozície;ResumeRestartsChunkznovu prečíta aktuálny blok pre enginey bez natívnej pauzyOnChunkChange,OnWordChangeaOnFinishedsa spúšťajú iba pri skutočných zmenách a uvoľnený pripojený pohľad sa automaticky odpojí, takže kód hostiteľa zostáva bez blikania a bez pádov
Version 1.58.0
Pridané (Added)
EstimateSpokenWordIndexodhaduje, ktoré slovo engine reči práve vyslovuje, z uplynutého času a rýchlosti slov za minútu, pričom dlhším slovám dáva úmerne viac času, takže enginey, ktoré nenahlasujú pozíciu slova (ako klientsky kontrolér NVDA), môžu stále riadiť kurzor čítania na úrovni slov; volajúci dodáva uplynutý čas, takže rutina zostáva bez hodín a testovateľná jednotkovo
Version 1.57.0
Pridané (Added)
- Zostavenie hovoreného textu s dvojdoménovým mapovaním pre sledovanie čítania nahlas:
BuildSpokenTextFromWordsaSpokenTextAppendstavajú reťazec odovzdaný engineu prevodu textu na reč z boxov slov stránky pri zaznamenávaní tabuľky rozsahov aSpokenToPageCharprekladá engineom nahlásený hovorený posun (ako SAPIStatus.InputWordPosition) späť na index znaku stránky, takže sledovanie zvýraznenia na úrovni slov zostáva správne, keď hovorený text nie je celým textom stránky (vynechané oblasti, čítanie po jednotkách, prepisy výslovnosti) - Typy
TPdfSpokenTextaTPdfSpokenSpannesú hovorený reťazec plus rozsahy zdrojových stránok, z ktorých bol zostavený; posuny na vložených oddeľovačoch sa riešia na nasledujúce mapované slovo a posuny za mapovanými behmi nahlasujú žiadnu zhodu
Version 1.56.9
Pridané (Added)
DemoDelphiPreflightReportpridáva náhľad Akčného plánu, ktorý kondenzuje nevyhovujúce štandardy, priority, ďalšie akcie, kódy problémov a odporúčania do kontrolného zoznamu nápravyDemoDelphiPreflightReportCliprijímaplan/actionplanako výstupný formát pre behy jedného súboru a dávky, pričom zapisuje rovnaký kontrolný zoznam nápravy do textového súboru
Zmenené (Changed)
- Obidve ukážky Delphi PreflightReport teraz zobrazujú počty stavov pass / action / review popri celkových štandardoch a problémoch
Version 1.56.8
Zmenené (Changed)
ViewerInteractionLabteraz obsahuje ovládacie prvky skoku na stránku, ovládanie ručného priblíženia, protokolovanie súradnícDeviceToPage/PageToDevicena základe kliknutia a jasnejší protokol interakcií pre kontroly výberu, vyhľadávania, rotácie a navigácie- Stránky readme
ViewerInteractionLabteraz dokumentujú pridaný pracovný tok interakcie naprieč lokalizovanou sadou readme ukážok
Version 1.56.7
Pridané (Added)
AccessibilityWorkbenchClimapuje každé spustené zistenie na jeho kritériá úspechu WCAG 2.1 a oblasť klauzuly ISO 14289-1 (PDF/UA-1) a zobrazuje v správach sekciu pokrytia štandardovAccessibilityWorkbenchClipočíta zdokumentované skóre prístupnosti 0-100 so zverejneným rubrikou penalizácie a pásmom vynikajúce / dobré / potrebuje prácu / slabé, vystavené podľa súboru a ako priemer dávkyAccessibilityWorkbenchCliprijímafailscore=N, aby zlyhal beh (exitový kód 2), keď ľubovoľný súbor dosiahne skóre pod NAccessibilityWorkbenchClizapisuje protokol SARIF 2.1.0, keď názov súhrnu dávky končí na.sarif, s jedným pravidlom na druh zistenia, ktoré nesie svoje značky WCAG 2.1 a PDF/UA pre prijímanie CI a skenovania kóduAccessibilityWorkbenchClipridáva príkazversion, ktorý vypíše verziu prepojeného PDFium Delphi Component
Version 1.56.6
Pridané (Added)
IntakeWorkbenchClipočíta forenzný hash SHA-256 každého vstupného súboru (degraduje naunavailablena kompilátoroch bezSystem.Hash) a nahlasuje ho v každom formáteIntakeWorkbenchCliprijímapasswords=file.txtna skúšobné odomknutie dokumentov vyžadujúcich heslo zo zoznamu kandidátov, pričom zaznamená zodpovedajúci index kandidáta bez akéhokoľvek zaznamenávania textu heslaIntakeWorkbenchCliprijímacopyto=dirna smerovanie každého auditovaného súboru do podpriečinka podľa úrovne rizika, čím sa z audítora stane triedič príjmuIntakeWorkbenchClizapisuje protokol SARIF 2.1.0, keď názov súhrnu dávky končí na.sarif, s jedným pravidlom na príznak rizika a jedným výsledkom na označený súbor pre prijímanie CI a skenovania kóduIntakeWorkbenchClipridáva príkazversion, ktorý vypíše verziu prepojeného PDFium Delphi Component
Version 1.56.5
Pridané (Added)
IntakeWorkbenchCliteraz odvodzuje odporúčané akcie po príjme, ako napríklad accept, request-password, manual-review, quarantine a deduplicate, a vystavuje počty akcií v súhrnoch dávkyAccessibilityWorkbenchCliteraz odvodzuje odporúčané nápravné akcie, ako napríklad pass-through, remediate-tags, run-ocr, remediate-semantics a manual-review, so zodpovedajúcimi počtami akcií dávky
Zmenené (Changed)
- Obidva CLI demo nástrojovej úrovne vystavujú odporúčanú akciu vo výstupe konzoly, textu, HTML, JSON a CSV, takže operátori dávky môžu smerovať súbory bez post-processingu polí rizika alebo stavu
Version 1.56.4
Opravené (Fixed)
- Čítanie anotácií, záložiek alebo anotácií odkazov v slučke už neunikajú textové reťazce predchádzajúcej položky: záznamy výsledkov
TPdfAnnotation,TBookmarkaTLinkAnnotationsa teraz čistia inicializáciou zohľadňujúcou spravované typy namiesto surového nulovania pamäte, takže dokumenty nesúce veľmi veľký počet anotácií s textom už nenafukujú pamäť procesu po celú dobu životnosti aplikácie - Ničenie
TPdf, ktoré malo zaregistrovaný obslužný programOnUnsupportedFeature, ho teraz odpája od globálneho spätného volania PDFium procesu, takže neskoršie načítanie dokumentu z inej inštancieTPdfbez vlastného obslužného programu sa už nemôže dispatchovať do uvoľneného komponentu (použitie-po-uvoľnení)
Version 1.56.3
Opravené (Fixed)
AccessibilityWorkbenchCliuž nepočíta prázdne stránky ako heuristické stránky poradia čítania, takže označkované dokumenty s prázdnymi oddeľovacími stránkami si zachovávajú správny stav prístupnosti; stránky bez čitateľného obsahu sa teraz nahlasujú samostatne- Detekcia hlavičiek tabuliek
AccessibilityWorkbenchCliuž nepripisuje vonkajšej tabuľke bunkyTH, ktoré patria vnorenej tabuľke, a názvy formulárových polí a písiem sa porovnávajú s rozlišovaním veľkých a malých písmen, takže odlišné polia sa nespájajú - Inventáre hostiteľov URL
IntakeWorkbenchCliteraz odstraňujú userinfo, query a fragment časti, takže sfalšovaný odkaz akotrusted.example@evil.examplesa pripíše skutočnému hostiteľovi a cielemailto:prispievajú svojou doménou namiesto toho, aby boli neviditeľné - Správy Markdown
IntakeWorkbenchCliescapujú spätné apostrofy v cestách, hostiteľoch a názvoch príloh kontrolovaných útočníkom, takže formátovanie správ nemôže byť narušené zvnútra dokumentu
Zmenené (Changed)
AccessibilityWorkbenchClinahlasuje zlyhania skenu písiem a formulárových polí ako samostatné počítadlá, označuje nevložené písma, ktoré majú aj vložené inštancie, a obmedzuje dlhé zoznamy písiem explicitným značkou skrátenia- Súhrny dávky
IntakeWorkbenchClipridávajú stĺpec počtu anotácií príloh a sčítanie anotácií na stránku je obmedzené na 20000 anotácií na stránku, pričom sa cap nahlasuje v každom formáte
Version 1.56.2
Pridané (Added)
AccessibilityWorkbenchCliteraz audituje vkladanie písiem, tooltipy formulárových polí, zdroj poradia čítania, osnovy dokumentu, štruktúru tabuliek a zoznamov, podozrivý alternatívny text a bohatšie podrobnosti kontroly na stránku, takže dávkové správy prístupnosti identifikujú viac cieľov nápravyIntakeWorkbenchCliteraz nahlasuje limity skenu stránok, akcie launch a remote-go-to, inventáre hostiteľov URI, počty anotácií, nepodporované funkcie PDFium, duplicitné identifikátory dokumentov a rozšírené príznaky rizika pre automatizovanú kontrolu príjmu
Zmenené (Changed)
IntakeWorkbenchCliprijímamaxpages=Nv režimoch jedného súboru a dávky na obmedzenie skenovania stránok na dokument, pričom stále dokončí nahlasovanie metadát, príloh, skriptov, XFA, podpisov a rizík
Version 1.56.1
Opravené (Fixed)
- Načítanie staršieho
pdfium.dll, ktorému chýba novší export, teraz zlyhá čisto: cesta zlyhania resetuje každý naviazaný vstupný bod API, takže kontrolyAssigned()(napríklad naFPDF_GetLastErroraleboFPDF_GetSecurityHandlerRevision) nahlasujú knižnicu ako nenačítanú namiesto volania do už uvoľneného modulu a zlyhania s chybou prístupu UnloadLibraryteraz maže všetky väzby API PDFium namiesto iba voliteľných pomocníkov V8, takže po uvoľnení DLL nezostanú žiadne zastaralé ukazovatele funkcií
Version 1.56.0
Pridané (Added)
- Kurzor čítania karaoke na úrovni slov na
TPdfView:TrackReadingWordAtmapuje posun znaku aktuálneho slova engineu prevodu textu na reč (ako SAPIStatus.InputWordPosition) na boxy slov stránky, zvýrazní slovo, ktoré ho obsahuje, ako osobitné prekrytie nad blokom čítania, posunie ho do zobrazenia a vráti index slova, takže hovorené slovo sa rozsvieti, ako hlas napreduje SetReadingWordaClearReadingWordnastavia alebo vymažú zvýraznené slovo priamo zTPdfWordBox; opätovné nastavenie toho istého slova je no-op, takže sledovanie podľa slov nikdy nespôsobí blikanie pohľaduReadingWordColoraReadingWordFollowriadia farbu kurzora slov a to, či pohľad automaticky posunie hovorené slovo do zobrazenia
Version 1.55.2
Opravené (Fixed)
- ViewerInteractionLab teraz dáva riadkom panela nástrojov viac vertikálneho priestoru, takže ovládacie prvky Open PDF, Create Sample, navigácie, vyhľadávania a výberu sa už neprekrývajú pri škálovaných písmach
Version 1.55.1
Opravené (Fixed)
- ViewerInteractionLab teraz umiestňuje Prev, Next a Rotate na druhý riadok panela nástrojov, čím sa vyhnute prekrývaniu pri štarte s Open PDF a Create Sample
Version 1.55.0
Pridané (Added)
- Most zo slova do výberu pre čítanie "prečítaj to, vyber to":
TPdfView.SelectWordBoxaSelectWordSpanvyberajú jeden box slova alebo rozsah boxov slov na rovnakej stránke (zPageWordBoxes) podľa ich znakových rozsahov, takže práve čítané slovo alebo riadok možno tiež vybrať a skopírovať WordBoxIndexAtCharIndexmapuje index znaku späť na box slova, ktorý ho obsahuje, čím riadi zvýraznenie slovo-za-slovom, ako sa kurzor čítania TTS posúva
Version 1.54.0
Pridané (Added)
- Prístupové funkcie hlasového vypĺňania formulárov, ktoré čítajú zamerané pole priamo z logického kurzora:
FocusedFormFieldValue,FocusedFormFieldNameaFocusedFormFieldDetailsnaTPdfaTPdfViewnahlasujú hodnotu aktuálneho poľa, čitateľný názov pre človeka (/TUtooltip, s náhradou na/T) a úplnéTPdfFormFieldInfo(typ, príznaky, voľby) — všetko, čo hlasové UI potrebuje na oznámenie pri krokaní formulárom
Opravené (Fixed)
FocusedFormFieldValuečíta pole podľaFocusedFormFieldIndexnamiesto interaktívneho zamerania pdfium, takže hlasom riadený vypĺňač formulárov dostane správnu hodnotu aj bez kurzora na obrazovke (existujúceFocusedFormFieldTextstále odráža zameranie pdfium a je bez zmeny)
Version 1.53.0
Pridané (Added)
- Podpora zvýrazňovania na úrovni slov:
TPdf.PageWordBoxesaTPdfView.PageWordBoxesrozdelia stránku na záznamyTPdfWordBox, z ktorých každý nesie text slova, jeho znakový rozsah a ohraničujúci obdĺžnik v priestore stránky, takže čítačka prístupnosti môže postupne zvýrazniť každé hovorené slovo (čítanie "karaoke") odovzdaním obdĺžnika doSetReadingHighlight BuildWordBoxesvystavuje krok tokenizéra samostatne, čím mení text stránky na boxy slov so znakovými rozsahmi
Version 1.52.0
Pridané (Added)
- Pomocníci vykresľovania pre slabozrakých
InvertPdfBitmap,GrayscalePdfBitmapaDuotonePdfBitmapaplikujú transformácie farieb na mieste na vykreslenú 32-bitovú bitmapu, takže čítačka prístupnosti môže prezentovať stránky invertovane / v tmavom režime, v odtieňoch sivej alebo vo vlastnej dvojfarebnej schéme (napríklad tmavé pozadie so svetlým textom) pre slabozrakých používateľov - Transformácie bežia na pixel a správajú sa identicky na VCL a Lazarus/LCL, pričom rozmery bitmapy zostávajú nedotknuté
Version 1.51.0
Pridané (Added)
- Jednotky čítania na úrovni viet pre asistívne čítanie-nášepot:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsaTPdfView.ReadingUnitslinearizujú prúd čitateľného obsahu do usporiadaných, na vetu dimenzovaných záznamovTPdfReadingUnit— každý nesie text na vyslovenie plus svoj sémantický druh, stránku, obdĺžniky zvýraznenia a značku jazyka, takže aplikácia čítačky obrazovky môže prechádzať stránku alebo celý dokument po jednej hovorenej jednotke - Sémantická navigácia pomocou
NextReadingUnitOfKind, ktorá umožňuje hlasovému UI skočiť na nasledujúci alebo predchádzajúci nadpis, obrázok, položku zoznamu alebo bunku tabuľky bez ručného skenovania prúdu BuildReadingUnitspriamo konvertuje ľubovoľnéTPdfContentFragmentsna jednotky čítania: nadpisy a popisy obrázkov/alt zostávajú celé, zatiaľ čo odsece sa rozdelia na hraniciach viet, desatinné bodky sa zachovajú a kurzor čítania je obyčajný index vo vlastníctve volajúceho
Version 1.50.0
Pridané (Added)
ValidatePdfAteraz môže skúmať dokumenty PDF 1.5+, ktoré ukladajú katalóg, OutputIntent alebo iné slovníky vo vnútri komprimovaných prúdov objektov (/Type /ObjStm). Prúdy objektov sa nahrajú a objekty, ktoré nesú, sa rozpoznajú, takže sa takéto dokumenty overujú podľa svojich vlastností namiesto toho, aby boli nahlasované ako s chýbajúcimi značkami PDF/A
Version 1.49.5
Opravené (Fixed)
ValidatePdfAuž nenahlasuje chýbajúci popispdfaExtension:schemasako problém. Schéma identifikátora PDF/A (pdfaid) je dobre známa, takže ani veraPDF, ani PDF/A-2/-3 nevyžadujú jej popis schémy rozšírenia a označovanie jej neprítomnosti mylne nahlasovalo každý vyhovujúci PDF/A tretej strany. Dokumenty, ktoré produkuje samotná knižnica, popis naďalej obsahujú
Version 1.49.4
Opravené (Fixed)
ValidatePdfAteraz detekuje úroveň zhody, keď je identifikátor PDF/A zapísaný ako atribúty XML (pdfaid:part="2") namiesto dcérskych elementov, takže dokumenty v tvare atribútu sa už nenahlasujú s neznámou úrovňou. Tiež to opravuje kaskádu, v ktorej nezistená úroveň viedla k tomu, že kontroly špecifické pre diel sa vrátili na prísne pravidlá PDF/A-1 a mylne označili vložené súbory a priehľadnosť, ktoré PDF/A-2 a PDF/A-3 povoľujú
Version 1.49.3
Opravené (Fixed)
ValidatePdfAteraz skúma dokumenty PDF 1.5+, ktorých údaje krížových odkazov sú prúd krížových odkazov (súbory, ktoré nemajú kľúčové slovotrailer). Úroveň zhody,/IDtraileru a ostatné značky sa čítajú zo slovníka prúdu krížových odkazov, takže sa takéto dokumenty overujú podľa svojich vlastností namiesto toho, aby boli nahlasované ako úplne nevyhovujúce
Version 1.49.2
Opravené (Fixed)
ValidatePdfAuž nenahlasuje falošný problém nevloženého písma na dokumentoch, ktoré vkladajú všetky svoje fonty. Predošlá heuristika porovnávala počet tokenov/FontDescriptors vloženými programi písiem, ale každé vložené písmo prispieva dvoma tokenmi/FontDescriptor(odkaz na slovník písma plus objekt deskriptora), takže každý súbor s vloženým písmom bol mylne označený. Kontrola teraz nahlasuje iba dokument, ktorý odkazuje na písma, ale nevloží žiadny program písma, čo zodpovedá príslušnej opraveValidatePdfUa
Version 1.49.1
Opravené (Fixed)
- Výstup PDF/A sa teraz overuje ako vyhovujúci PDF/A-1b a PDF/A-1a s veraPDF: vložený prúd ICC profilu sRGB OutputIntent (odkazovaný cez
/DestOutputProfile) teraz deklaruje požadovaný počet komponentov/N(3 pre vstavaný profil RGB), ako ustanovuje ISO 19005-1 6.2.3.2. Dokumenty produkovanéSaveAsPdfApredtým zlyhávali v prísnej validácii PDF/A-1, pretože prúd cieľového profilu vynechával/N; hodnota sa odvodzuje z hlavičky ICC profilu, takže od volajúceho dodaný profil CMYK alebo Gray dostane správny počet
Version 1.49.0
Opravené (Fixed)
ValidatePdfUauž nenahlasuje falošnú chýbajúcu identifikáciu XMP na vyhovujúcich označkovaných PDF — identifikátor PDF/UA (pdfuaid:part),dc:title, dátumy XMP a/IDtraileru sa teraz čítajú z pôvodných bajtov dokumentu namiesto z znovu uloženej kópie, ktorá vynecháva prúd XMP/Metadataa v prípade súborov s prúdom krížových odkazov aj/IDtraileru- Kontrola vkladania písiem
ValidatePdfUaopravená tak, aby dokument, ktorý vkladá všetky svoje písma, už nebol nahlasovaný ako majúci nevložené písma; teraz označuje iba dokument, ktorý odkazuje na písma, ale nevloží žiadny program písma vôbec ValidatePdfUateraz prijíma štruktúrny elementFormula, ktorého alternatívny text je dodaný cezActualTextnamiesto položkyAlt(ISO 14289-1 §7.7), čo je v súlade s existujúcim pravidlomFigure
Version 1.48.0
Pridané (Added)
- Programatický výber textu na
TPdfView:SelectTextRange(podľa stránky a znakového rozsahu) aSetSelection(podľa explicitných rozsahov na stránku) vyberajú text z kódu — napríklad na prečítanie a zvýraznenie pasáže; obe prekreslia a vyvolajúOnSelectionChangepri zmene výberu.SelectionRangesčíta aktuálny výber ako rozsahy znakov podľa stránok aSelectionRectanglesvracia jeho obdĺžniky v súradniciach stránky pre vlastné zvýraznenie alebo posun-k
Version 1.47.0
Pridané (Added)
- Navigácia polí formulára pre hlasom riadené vypĺňanie formulárov, na
TPdfajTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusaFocusedFormFieldText. Tieto posúvajú logický kurzor polí nad widgetovými poľami stránky v poradí tabulátora (s zalomením na koncoch), takže asistívna čítačka môže prejsť formulár, ohlásiť každé pole cezFormFieldInfo[Index].AlternateName(tooltip /TU) a vyplniť ho cezFormField[Index] - Udalosť
TPdfView.OnFormFieldFocusChange, vyvolaná pri presune kurzora polí (nesie nový index poľa alebo -1 pri vymazaní)
Version 1.46.0
Pridané (Added)
- Prúd obsahu asistívneho čítania-nášepot:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentaTPdfView.ReadableContentvracajú usporiadaný zoznam sémantických položiekTPdfContentFragment, z ktorých každá nesie hovorený text (skutočné glyfy aleboActualText/Alt pre obrázky), druh fragmentu (nadpis s úrovňou, odsek, obrázok, položka zoznamu, bunka tabuľky, odkaz, obyčajný), jazyk, 1-základnú stránku a obdĺžniky bloku plus zvýraznenia na riadok. Označkované PDF sa linearizujú v logickom poradí čítania zo štruktúrového stromu; neoznačkované stránky sa vrátia k poradiu vykresľovania, takže každý dokument môže byť čítaný nahlas - Synchronizované zvýraznenie čítania na
TPdfView:SetReadingHighlight,ClearReadingHighlighta publikovanéReadingHighlightColorzvýrazňujú blok, ktorý sa práve číta, nad prekrytím vyhľadávania a výberu - Nové verejné typy
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindaTPdfReadingOrderSourcea nový pomocníkClassifyStructType
Version 1.45.0
Pridané (Added)
ValidatePdfUateraz tiež prechádza živý označkovaný štruktúrový strom a nahlasuje tri vysoko-spoľahlivé porušenia obsahu, ktoré skenovanie na úrovni bajtov nedokáže detegovať: elementFigurebez položky Alt aj ActualText (ISO 14289-1, 7.3), elementFormulabez atribútu Alt (7.7) a elementNote, ktorému chýba unikátne ID (7.9). Tri nové hodnotyTPdfUaValidationIssueich vystavujú:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltapvuaiNoteMissingId. Prechod stromom sa preskakuje pre neoznačkované dokumenty- Nový verejný pomocník
ValidatePdfUaStructureElementsaplikuje tie pravidlá štruktúrového stromu na plochý zoznam elementov (ako ho vraciaTPdf.StructureElements), takže kontroly možno spustiť alebo otestovať jednotkovo bez načítania celého dokumentu
Version 1.44.5
Opravené (Fixed)
- Kontrola vkladania písiem
ValidatePdfA(pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) teraz tiež detekuje nevložené jednoduché písma, ktoré nenesú/FontDescriptor, čo najdôležitejšie 14 štandardných písiem Type 1 (Helvetica, Times, Courier a tak ďalej), ktoré PDF/A vyžaduje vložiť bez výnimky. Predtým takéto písmo zostalo nepovšimnuté; kontrola teraz tiež počíta slovníky jednoduchých písiem (/Type1,/TrueType,/MMType1) proti vloženým programom písiem, čo zrkadlí opravu PDF/UA v 1.44.3
Version 1.44.4
Opravené (Fixed)
ValidatePdfVTteraz odmieta poškodené stromy DPart ISO 16612-2 §6.5, kde je/DPartsploché pole odkazov namiesto požadovaného pola polí, alebo kde listový DPart opakuje svoju stránku/Startako/Endaj napriek tomu, že rozsah obsahuje iba jednu stránkuValidatePdfVTteraz overuje názvy/NodeNameListako hodnoty XML NMTOKEN po rozbalení escapovania názvu PDF#xx, takže neplatné názvy úrovní hierarchie sa nahlasujú cezpvviMissingDPartRootnamiesto toho, aby boli prijaté ako použiteľná štruktúra DPart
Version 1.44.3
Opravené (Fixed)
- Kontrola vkladania písiem
ValidatePdfUa(pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) teraz tiež detekuje nevložené jednoduché písma, ktoré nenesú/FontDescriptor, čo najdôležitejšie 14 štandardných písiem Type 1 (Helvetica, Times, Courier a tak ďalej), pre ktoré PDF/UA neudeľuje žiadnu výnimku vkladania. Predtým takéto písmo zostalo nepovšimnuté a dokument, ktorý ho používal, mohol byť nahlasovaný ako vyhovujúci; kontrola teraz tiež počíta slovníky jednoduchých písiem (/Type1,/TrueType,/MMType1) proti vloženým programom písiem
Version 1.44.2
Opravené (Fixed)
ValidatePdfVTteraz ponecháva prítomnú, ale nerozpoznanú značkupdfvtid:GTS_PDFVTVersionakopvcUnknownnamiesto jej degradácie napvcNone. Tým zostanú neplatné reťazce na úrovni súboru akoPDF/VT-2sodlíšiteľné od dokumentov, ktoré nenesú žiadnu značku PDF/VT; PDF/VT-2s sa identifikuje podľa hlavičky prúdu MIME v ISO 16612-2 Annex A, nie podľa značky XMP súboru PDF- Kontrola
/DPartRootteraz overuje sémantiku stromu ISO 16612-2 §6.5 tesnejšie:/DPartRootNodea/NodeNameListmusia popisovať skutočnú hĺbku DPart, odkazy nadradených DPart musia tvoriť strom,/Starta/DPartssa navzájom vylučujú a každý/DPartstránky musí smerovať na pokrývajúci listový DPart v rovnakom poradí do hĺbky ako strom stránok
Version 1.44.1
Opravené (Fixed)
SaveAsPdfVTteraz zapisuje minimálnu hierarchiu častí dokumentu ISO 16612-2 §6.5, keď zdrojovému PDF chýba použiteľný/DPartRoot. Vygenerovaný strom prepojí každú stránku cez/DPart, zachová existujúcu platnú hierarchiu a ponecháva bohatšie metadáta príjemcu/DPM volajúcemu pracovnému tokuValidatePdfVTteraz overuje použiteľnú štruktúru DPart, číta hodnoty XMP PDF/VT z atribútov RDF aj textu elementu a vynucuje presné párovanie základu PDF/VT-to-PDF/X: PDF/VT-1 vyžaduje PDF/X-4, zatiaľ čo PDF/VT-2 vyžaduje PDF/X-4p, PDF/X-5g alebo PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2už nezapisuje neplatné značky PDF/VT-2 jedného súboru. Zapisovač jedného súboru normalizuje výstup na PDF/VT-1, pretože PDF/VT-2 vyžaduje sémantiku súpravy súborov
Version 1.44.0
Pridané (Added)
ValidatePdfUateraz nahlasuje popri značkách formátu súboru aj kontrolovateľné na bajtoch porušenia PDF/UA na úrovni obsahu: program písma, ktorý nie je vložený (ISO 14289-1, 7.21.4), písmo, ktorému chýba CMap/ToUnicode, keď nie je prítomné oslobodené kódovanie jednoduchého písma (7.21.7), a dokument, ktorý nesie anotácie, ale nedeklaruje poradie tabulátora/Tabs /Sstránky (7.18.3)- Tri nové hodnoty
TPdfUaValidationIssue—pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeapvuaiMissingTabsOrder— vystavujeValidatePdfUaa v predbetch správe. Sú to hrubé heuristiky určené ako predbežné tipy namiesto úplného overenia ISO 14289-1
Version 1.43.1
Opravené (Fixed)
SaveAsPdfUateraz vynucuje povinné položky katalógu ISO 14289-1, 7.1/ViewerPreferences/DisplayDocTitle truea/MarkInfo/Marked true/Suspects falseaj vtedy, keď zdrojový dokument už poskytuje tieto slovníky s chýbajúcimi alebo protichodnými hodnotami. Predtým sa značky injektovali iba vtedy, keď slovníky úplne chýbali, takže zdroj, ktorý niesol napríklad/ViewerPreferencesbezDisplayDocTitlealebo/MarkInfos/Marked false, sa pri ceste tam a späť zmenil na nevyhovujúci súbor- Existujúce kľúče v už existujúcom slovníku
/ViewerPreferencesalebo/MarkInfosa zachovávajú a slovník dodaný ako nepriamy odkaz sa rozpozná pred aplikovaním povinných kľúčov
Version 1.43.0
Pridané (Added)
ValidatePdfAteraz aplikuje pravidlá PDF/A-2 / PDF/A-3 pre vložené a pridružené súbory a pre text úrovne U. Vložené súbory sa pre PDF/A-1 stále odmietajú; pre PDF/A-3 sa označí vložený súbor, ktorému chýba požadovaný kľúč/AFRelationship(ISO 19005-3 Annex E), zatiaľ čo prílohy PDF/A-2 sú povolené (ich vlastná zhoda sa neoveruje rekurzívne). Nový problémpvaiUnicodeMappingMissingnahlasuje dokument PDF/A-2u alebo PDF/A-3u, ktorého písma nenesú mapovanie/ToUnicode(ISO 19005-2 6.2.11.7). Priehľadnosť a voliteľný obsah zostávajú označené iba pre PDF/A-1
Version 1.42.0
Pridané (Added)
- PDF/A-2 (ISO 19005-2) a PDF/A-3 (ISO 19005-3) sú teraz podporované na všetkých troch úrovniach zhody — a, b a u — prostredníctvom
SaveAsPdfA,ValidatePdfAa vlastnostiPdfAConformance. EnumeráciaTPdfAConformancezískavapac2a,pac2u,pac3aapac3u(PDF/A-1 nemá úroveň u). Ukladanie zapisuje zodpovedajúcipdfaid:part(2 alebo 3) apdfaid:conformance(A, B alebo U), pričom zachováva podtyp OutputIntentGTS_PDFA1, ktorý ISO 19005-2 zachováva pre kompatibilitu. Požiadavka na úroveň A sa stále degraduje na zodpovedajúcu úroveň B (pre ľubovoľný diel), keď dokumentu chýba označkovaná štruktúra, ktorú táto úroveň vyžaduje
Version 1.41.0
Pridané (Added)
ValidatePdfAteraz detekuje popri štrukturálnych značkách, ktoré už nahlasoval, aj porušenia PDF/A na úrovni obsahu, ktoré injektovanie značiek nedokáže opraviť: JavaScript a iné zakázané akcie, doplnkové akcie (/AA), vložené súbory,LZWDecode, priehľadnosť (mäkké masky a skupiny priehľadnosti), voliteľný obsah (/OCProperties), zakázané podtypy anotácií (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances truea/XFA, písma, ktorých deskriptory nemajú vložený program písma, a tvrdenie úroveň A vykonané bez označkovanej štruktúry vyžadovanej ISO 19005-1 6.8. Kontroly priehľadnosti, voliteľného obsahu a vložených súborov sa aplikujú iba na PDF/A-1 (tieto funkcie sú povolené v PDF/A-2 a PDF/A-3). Nové hodnotyTPdfAValidationIssuevystavujú každý prípad; existujúce hodnoty zostávajú bez zmeny
Version 1.40.3
Opravené (Fixed)
SaveAsPdfAteraz pred produkciou výstupu PDF/A odstraňuje akékoľvek šifrovanie zdrojového dokumentu. ISO 19005-1 6.1.3 zakazuje kľúč/Encryptv traileri, ale cesta ukladania predtým zachovávala obslužný program bezpečnosti zdroja, takže uloženie šifrovaného dokumentu ako PDF/A produkovalo šifrovaný, nevyhovujúci súbor. Uloženie PDF/A teraz najprv dešifruje dokument. Nešifrované dokumenty nie sú ovplyvnené
Version 1.40.2
Opravené (Fixed)
- Zastavené emitovanie falošného tvrdenia zhody PDF/A úrovne A v
SaveAsPdfA. Keď je požadovaná úroveň A (pac1a), ale zdrojový dokument nemá značky označkovanej štruktúry vyžadované ISO 19005-1 6.8 —/StructTreeRootv katalógu a slovník/MarkInfos/Marked true— uložený súbor sa teraz identifikuje ako zodpovedajúca úroveň B (pdfaid:conformance=B) namiesto tvrdenia úrovne A. Čisto vizuálny výstup PDF/A-1b nie je ovplyvnený
Version 1.40.1
Opravené (Fixed)
- Stiahnutá validácia zhody verzie PDF tak, aby sa akcia
SetOCGState(set-optional-content-group-state) rozpoznala ako funkcia PDF 1.5. Ukladanie do cieľa PDF 1.2, 1.3 alebo 1.4, ktorý obsahuje akciuSetOCGState, sa teraz odmieta, aby sa zhodovalo s ISO 32000-1 (Table 198); predtým takáto akcia mohla prejsť do výstupu nižšej verzie. Distinktná, zastaralá akciaSetStatePDF 1.2 sa naďalej prijíma od verzie PDF 1.2
Version 1.40.0
Pridané (Added)
- Naviazané upstream API
FPDFPageObj_AddExistingMark(), ktoré pripája existujúcu značku obsahu k objektu stránky. Keď po sebe idúce objekty stránky zdieľajú rovnakú značku, uložené PDF ich zlúči do jednej značky, ktorá ich všetky pokrýva; nepo sebe idúce objekty dostanú samostatné kópie - Naviazané upstream API
FPDFTextObj_SetFontSize()na zmenu bodovej veľkosti existujúceho textového objektu, ktoré dopĺňa existujúcu väzbuFPDFTextObj_GetFontSize()
Zmenené (Changed)
- Obnovené pribalené runtime DLL PDFium (Win32 a Win64, štandardné a V8 zostavy) na upstream snímku 2026-06-02
Version 1.39.53
Zmenené (Changed)
- Zmenené ukážky Delphi
PDFViewer,SplitViewaMultiPageViewer, aby otvárali dokumenty v režimeZoom to Pagepredvolene - Počiatočné vykreslenie teraz celú stránku prispôsobí ploche prehliadača skôr, ako si používateľ zvolí ručnú úroveň priblíženia
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.53
Version 1.39.52
Zmenené (Changed)
- Vylepšené
Demo\Lazarus\CreatePDF, takže úvodná ukážka teraz generuje dvojstrankové PDF s vektorovými cestami, obsahom tabuľky, vloženým obrázkom, textovou anotáciou, otočeným textom a jasnejším sprievodcom stavbou dokumentu - Pridané vyleštené stránky
README.htmlpre každý priečinok ukážky Delphi, C++Builder a Lazarus, čím sa nahrádzajú zostávajúce iba-textové README ukážok čitateľným sprievodcom v prehliadači - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.52
Version 1.39.51
- Vylepšené dávkové súhrny
Demo\Delphi\PreflightReportClio celkové stavy pre výsledky Pass, Action required a Review naprieč vybranými štandardmi - Riadky podľa súboru teraz obsahujú počty action-required a review v súhrnoch TXT / HTML / JSON / CSV, čím sú artefakty CI ľahšie skontrolovateľné bez otvárania každej generovanej správy
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.51
Version 1.39.50
- Vylepšený režim dávkového spracovania adresára
Demo\Delphi\PreflightReportCli, takžebatchdir=folderzbiera objavené cesty PDF, triedi ich a následne generuje správy v stabilnom poradí - Rekurzívne skeny adresárov teraz produkujú reprodukovateľné poradie správ a riadky súhrnu, zatiaľ čo explicitné spracovanie
batch=list.txtnaďalej zachováva poradie súboru zoznamu - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.50
Version 1.39.49
- Vylepšené súhrny dávkového spracovania
Demo\Delphi\PreflightReportClitak, aby zaznamenávali nastavenia spustenia: druh zdroja, cestu zdroja, stav rekurzie, výstupný adresár, formát reportu, vybrané štandardy a režimfailon= - Súhrny JSON teraz obsahujú objekt
run, súhrny TXT a HTML zobrazujú sekciu nastavení behu a riadky CSV opakujú rovnaké auditné stĺpce pre tabuľkové a CI pipelines - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.49
Version 1.39.48
- Vylepšené pomenovanie dávkového výstupu
Demo\Delphi\PreflightReportCli, takže duplicitné názvy vstupných súborov zdieľajúce jedenoutdir=sa už navzájom neprepisujú svoje generované správy - Dávkové behy teraz pripájajú
-2,-3a neskoršie prípony, keď už bola cesta generovanej správy priradená v rovnakom behu, a súhrny zaznamenávajú konečnú cestu správy bezpečnú voči kolíziám - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.48
Version 1.39.47
- Vylepšené dávkové súhrny
Demo\Delphi\PreflightReportCli, takže výstupy TXT a JSON teraz obsahujú agregátne celky pre celkové súbory, spracované súbory, zlyhané súbory, problémy a zhodyfailon= - Súhrny CSV zostávajú čistou tabuľkou riadkov pre existujúcich konzumentov, zatiaľ čo súhrny HTML naďalej zobrazujú rovnaké agregátne metriky v hlavičke dashboardu
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.47
Version 1.39.46
- Vylepšené
Demo\Delphi\PreflightReportCliosummary=batch.html/.htm, takže dávkové behy môžu emitovať v prehliadači čitateľný dashboard popri manifestoch TXT / CSV / JSON - Súhrny HTML zobrazujú celkové, spracované, zlyhané, problémové metriky a metriky zhody
failon=, a následne vypíšu každý vstup s odkazmi na správy, stavom, počtami a textom chyby - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.46
Version 1.39.45
- Vylepšené
Demo\Delphi\PreflightReportCliobatchdir=folderarecursive, takže skripty môžu skenovať priečinky PDF priamo bez toho, aby najprv zapísali súbor zoznamu - Režim dávkového spracovania adresára opätovne využíva správanie
outdir=,summary=,standards=afailon=z režimu dávky založenej na zozname, zatiaľ čo nerekurzívne skenuje iba vybraný priečinok arecursivezahŕňa podpriečinky - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.45
Version 1.39.44
- Vylepšené
Demo\Delphi\PreflightReportCliosummary=batch.csv|json|txt, takže dávkové behy môžu emitovať strojovo čitateľný manifest popri správach podľa súborov - Dávkové súhrny obsahujú každú vstupnú cestu, cestu správy, stav, počet štandardov, počet úspešných, počet problémov, stav zhody
failon=a text chyby pre úlohy CI a externé skripty - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.44
Version 1.39.43
- Vylepšené
Demo\Delphi\PreflightReportCliobatch=list.txtaoutdir=reports, takže skripty môžu generovať predbežné správy pre zoznam súborov PDF v jednom behu - Dávkový režim preskakuje prázdne riadky a komentáre
#, odvodzuje názov každej správy.preflight.<ext>zo vstupného PDF, pokračuje po chybách podľa súborov a pred návratom sumarizuje spracované a zlyhané súbory - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.43
Version 1.39.42
- Vylepšené
Demo\Delphi\PreflightReportCliofailon=none|issues|action|review, takže úlohy CI môžu premeniť generované predbežné výsledky na deterministické exitové kódy - CLI teraz vracia exitový kód 2, keď sa po vygenerovaní súboru správy a voliteľného pripojeného PDF zhodí vybrané pravidlo
failon=, zatiaľ čo chyby za behu stále vracajú exitový kód 1 - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.42
Version 1.39.41
- Vylepšené
Demo\Delphi\PreflightReportClioattach=output.pdf, takže generovaná predbežná správa môže byť vložená ako príloha na úrovni dokumentu v novej kópii PDF - CLI ponechá vygenerovaný súbor správy TXT / HTML / Markdown / JSON / CSV na disku a odmieta pripojiť naspäť do pôvodnej cesty vstupného PDF, čím znižuje riziko náhodného prepisovania
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.41
Version 1.39.40
- Pridané
Demo\Delphi\PreflightReportCli, konzolový sprievodca pre Delphi na skriptovateľné generovanieFPdfPreflightReportbez otvorenia prehliadača - CLI podporuje vytvorenie ukážky bez argumentov plus argumenty vstup / výstup, voliteľné heslo, výstupné formáty
text/html/md/json/csva filtrovaniestandards=pre PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R a PDF/VT - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.40
Version 1.39.39
- Vylepšené
FPdfPreflightReportoTPdfPreflightReport.ToMarkdownaSaveMarkdownToFile, takže predbežné správy môžu byť exportované ako Markdown priateľský k issue-trackeru - Aktualizované ukážky
PreflightReportpre Delphi, C++Builder a Lazarus o prepínanie náhľadu Markdown a akcie Save MD popri existujúcom pracovnom toku TXT / HTML / JSON / CSV - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.39
Version 1.39.38
- Vylepšené ukážky
SecurityAuditpre Delphi, C++Builder a Lazarus o export auditnej správy JSON popri existujúcom pracovnom toku uloženia / kopírovania TXT - Správa JSON obsahuje
format,generatedAt,summary,findingCounta štruktúrované riadkyfindingss poliami severity, area a detail - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.38
Version 1.39.37
- Vylepšené
FPdfPreflightReportoTPdfPreflightReport.ToCsvaSaveCsvToFile, takže predbežné správy môžu byť exportované ako tabuľke-priateľské CSV - Aktualizované ukážky
PreflightReportpre Delphi, C++Builder a Lazarus o prepínanie náhľadu CSV a akcie Save CSV popri existujúcom pracovnom toku TXT / HTML / JSON - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.37
Version 1.39.36
- Vylepšené
FPdfPreflightReportoTPdfPreflightReport.IssueCategoryCountsplus opakovane použiteľné typyTPdfPreflightIssueCategoryCountaTPdfPreflightIssueCategoryCountsna agregáciu problémov na úrovni značiek podľa kategórie - Aktualizované
TPdfPreflightReport.ToText,ToHtmlaToJson, takže generovaný výstup PreflightReport obsahuje súhrny počtov kategórií problémov popri riadkoch podľa štandardov a podrobných odporúčaniach problémov - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.36
Version 1.39.35
- Premenovaná rozšírená ukážka
PrintDialognaPrintPreferencesnaprieč Delphi, C++Builder a Lazarus, takže názov ukážky teraz zodpovedá jej pracovnému toku predvolieb tlače autora PDF, tlače N-up, filtračných párnych / nepárnych, odtieňov sivej, okrajov buniek a mapovania obojstrannej tlače - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.35
Version 1.39.34
- Vylepšené
Demo\Delphi\PrintPDFo načítanie PDF pomocou drag-and-drop a zdokumentovaný existujúci pracovný tokDemo\CBuilder\PrintPDFpopri ukážkach PrintPDF pre Delphi a Lazarus - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.34
Version 1.39.33
- Pridané
Demo\CBuilder\SplitView, čím sa dokončuje matica ukážok SplitView naprieč Delphi, C++Builder a Lazarus - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.33
Version 1.39.32
- Pridané
Demo\Lazarus\SplitView, čím sa do Lazarusu prináša porovnávanie PDF vedľa seba s dvoj- alebo troj-panelovými rozloženiami, navigáciou aktívneho pohľadu, synchronizovanými príkazmi, prednastaveniami priblíženia a rotáciou - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.32
Version 1.39.31
- Pridané
Demo\Lazarus\PrintPDF, čím sa do Lazarusu prináša štandardný pracovný tok tlače PDF s navigáciou náhľadu, rozsahmi strán, kópiami, režimom collate, priebehom a zrušením - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.31
Version 1.39.30
- Pridané
Demo\Lazarus\FontProperties, čím sa dokončuje matica ukážok FontProperties naprieč Delphi, C++Builder a Lazarus - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.30
Version 1.39.29
- Pridané
Demo\CBuilder\FontProperties, čím sa do C++Builderu prináša indexová kontrola metadát znakov a písiem popri ukážke Delphi - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.29
Version 1.39.28
- Pridané
Demo\Delphi\ExtractTextPages, čím sa dokončuje matica ukážok extrakcie textu podľa stránok naprieč Delphi, C++Builder a Lazarus - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.28
Version 1.39.27
- Pridané
Demo\Lazarus\PrintDialog, čím sa dokončuje matica ukážok PrintDialog naprieč Delphi, C++Builder a Lazarus - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.27
Version 1.39.26
- Pridané
Demo\CBuilder\PrintDialog, čím sa do C++Builderu prináša pracovný tok tlače N-up a predvolieb tlače autora PDF popri ukážke Delphi - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.26
Version 1.39.25
- Pridané
Demo\CBuilder\ViewerInteractionLab, čím sa dokončuje matica ukážok ViewerInteractionLab naprieč Delphi, C++Builder a Lazarus - Aktualizovaný pracovný tok zostavy knižnice a výstupy balíka Win64 C++Builder, takže metódy interakcie prehliadača
TPdfViewsa správne linkujú v ukážkach Win64 - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.25
Version 1.39.24
- Pridané
Demo\Lazarus\ViewerInteractionLab, čím sa do Lazarusu prináša zameraný pracovný tok interakcie prehliadača popri ukážke Delphi - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.24
Version 1.39.23
- Pridané
Demo\Lazarus\SearchAndSelect, čím sa dokončuje matica ukážok SearchAndSelect naprieč Delphi, C++Builder a Lazarus - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.23
Version 1.39.22
- Pridané
Demo\CBuilder\ContentExtractionLabaDemo\Lazarus\ContentExtractionLab, čím sa viackategóriový pracovný tok extrakcie obsahu prináša do všetkých podporovaných IDE ukážok - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.22
Version 1.39.21
- Vylepšené
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportaDemo\CBuilder\PreflightReporto volič formátu náhľadu, takže používatelia môžu skontrolovať textový alebo JSON výstup pred uložením správ - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.21
Version 1.39.20
- Pridaný export JSON do
FPdfPreflightReportprostredníctvomTPdfPreflightReport.ToJsonaSaveJsonToFile, čím vznikajú strojovo čitateľné súhrny, stavy / priority podľa štandardov, ďalšie akcie a podrobnosti problémov - Aktualizované
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportaDemo\CBuilder\PreflightReporto akcie Save JSON popri exporte TXT / HTML - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.20
Version 1.39.19
- Vylepšené
FPdfPreflightReportoTPdfPreflightStatus, kategórie problémov, priority podľa štandardov a usmerňovanie ďalšej akcie v správach TXT / HTML - Aktualizované
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportaDemo\CBuilder\PreflightReport, aby v mriežke súhrnu zobrazovali stav, prioritu, počet problémov a ďalšiu akciu - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.19
Version 1.39.18
- Pridané
Demo\Lazarus\SecurityAudit, čím sa dokončuje matica ukážok Delphi, C++Builder a Lazarus pre pracovný tok auditu rizikového povrchu PDF iba na čítanie - Ukážka Lazarus vymenúva oprávnenia, prílohy, akcie JavaScript, anotácie odkazov URI / Launch, webové odkazy, podpisy, stav XFA, dostupnosť pomocníkov V8 / XFA a spätné volania nepodporovaných funkcií, a následne uloží alebo skopíruje zoznam zistení ako správu TXT
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.18
Version 1.39.17
- Pridané
Demo\CBuilder\SecurityAudit, čím sa do C++Builderu prináša pracovný tok auditu rizikového povrchu PDF iba na čítanie popri existujúcej ukážke Delphi - Ukážka C++Builder vymenúva oprávnenia, prílohy, akcie JavaScript, anotácie odkazov URI / Launch, webové odkazy, podpisy, stav XFA, dostupnosť pomocníkov V8 / XFA a spätné volania nepodporovaných funkcií, a následne uloží alebo skopíruje zoznam zistení ako správu TXT
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.17
Version 1.39.16
- Pridané
Demo\CBuilder\SearchAndSelect, čím sa do C++Builderu prináša samostatný pracovný tok prehliadača SearchAndSelect popri existujúcej ukážke Delphi - Ukážka C++Builder vytvára alebo otvára PDF, vypisuje zhody na všetkých stránkach s náhľadmi stránka / znakový index, podporuje navigáciu Previous / Next a dvoj-klikom a zvýrazňuje zhody na aktuálnej stránke pomocou
HighlightSearchText - Tiež vystavuje voľby
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangea rozloženiaDisplayMode; metadáta verzie teraz nahlasujú 1.39.16
Version 1.39.15
- Pridané
Demo\CBuilder\WatermarkStamp, čím sa dokončuje matica ukážok Delphi, Lazarus a C++Builder pre opakovane použiteľné pracovné toky vodoznaku a pečate Form XObject - Ukážka C++Builder vytvára cieľové PDF a PDF pečate, opätovne využíva stránku pečate prostredníctvom
CreateXObjectFromPage, aplikuje transformácieTPdfMatrixa ukladá centrované vodoznaky, rohové pečate a štítky čísiel stránok - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.15
Version 1.39.14
- Pridané
Demo\Lazarus\WatermarkStamp, čím sa do Lazarusu prináša opakovane použiteľný pracovný tok vodoznaku a pečate Form XObject - Ukážka Lazarus vytvára cieľové PDF a PDF pečate, opätovne využíva stránku pečate prostredníctvom
CreateXObjectFromPage, aplikuje transformácieTPdfMatrixa ukladá centrované vodoznaky, rohové pečate a štítky čísiel stránok - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.14
Version 1.39.13
- Pridané
Demo\CBuilder\PreflightReport, čím sa dokončuje matica ukážok Delphi, Lazarus a C++Builder pre opakovane použiteľný pracovný tokFPdfPreflightReport - Ukážka C++Builder používa
FPdfPreflightReport.hppna generovanie štandardných súhrnov, náhľadov správ TXT, súborov správ TXT / HTML a správania Open Last Report - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.13
Version 1.39.12
- Pridané
Demo\Lazarus\PreflightReport, čím sa do Lazarusu prináša pracovný tok predbežných správ PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R a PDF/VT - Ukážka Lazarus môže otvoriť alebo vytvoriť PDF, vybrať cieľové štandardy, zobraziť náhľad riadkov súhrnu a výstupu správy TXT, uložiť správy TXT / HTML a otvoriť naposledy uloženú správu
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.12
Version 1.39.11
- Vylepšené
Demo\Delphi\SearchAndSelecto zoznam výsledkov vyhľadávania na všetkých stránkach, ktorý zaznamenáva číslo stránky, znakový index a text náhľadu - Pridaná navigácia zhôd Previous / Next a skok na výsledok dvoj-klikom pri zachovaní správania
HighlightSearchTextaktuálnej stránky - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.11
Version 1.39.10
- Vylepšené
Demo\Delphi\SecurityAudito akcie Save Report a Copy Report, ktoré exportujú aktuálny súhrn a riadky zistení ako auditnú správu TXT - Ukážka teraz vymazáva stav exportu správy, keď sa panel auditu resetuje, čím udržiava skopírované alebo uložené správy v súlade s viditeľnými zisteniami
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.10
Version 1.39.9
- Vylepšené
Demo\Delphi\ContentExtractionLabo uloženie zdrojového PDF, kopírovanie správy do schránky a akcie výberu kategórie all / none - Ukážka teraz zneplatňuje aktuálnu správu pri zmene výberu kategórií, takže exporty TXT / JSON odrážajú viditeľný rozsah extrakcie
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.9
Version 1.39.8
- Pridané
Demo\Delphi\ContentExtractionLab, jednotná ukážka pracovného toku extrakcie obsahu pre metadáta dokumentu, text stránky, objekty stránky, obrázky, prílohy, odkazy, anotácie, záložky a metriky písma / znakov - Ukážka môže otvoriť existujúce PDF alebo vytvoriť syntetické PDF s textom, obrázkom, prílohou a obsahom anotácie, a následne generovať riadky súhrnu a podrobné správy TXT / JSON
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.8
Version 1.39.7
- Pridané
Lib\FPdfPreflightReport.pas, opakovane použiteľný pomocník správ, ktorý zabalíValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRaValidatePdfVTdo jedného objektuTPdfPreflightReport - Pridané
Demo\Delphi\PreflightReport, ukážka pracovného toku, ktorá otvorí alebo vytvorí PDF, vyberie cieľové štandardy, zobrazí náhľad riadkov súhrnu a odporúčaní problémov a uloží správy TXT alebo HTML - Generované správy explicitne popisujú vstavanú hranicu validácie na úrovni značiek, takže aplikácie ich môžu spárovať s vyhradenými nástrojmi predbežnej kontroly na úrovni obsahu, keď je to potrebné
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus, zoznamy projektov balíka a metadáta verzie inštalátora, aby nahlasovali 1.39.7
Version 1.39.6
- Pridané
Demo\Delphi\SearchAndSelect, zameraná ukážka pracovného toku prehliadača pre zvýrazňovanie vyhľadávania, výber textu, náhľad vybraného textu, kopírovanie, mazanie a režimy rozloženia spread - Ukážka demonštruje
HighlightSearchText, voľby vyhľadávania match-case / whole-word,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardaClearSelectionbez pridania nového API knižnice - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.6
Version 1.39.5
- Rozšírené
Demo\Delphi\ViewerInteractionLabna ukážku UX prehliadača v štýle SearchAndSelect sHighlightSearchText, voľbami match-case / whole-word, náhľadom vybraného textu a existujúcimi ovládacími prvkami výberu / schránky - Rozšírené
Demo\Delphi\PrintDialogo kontrolu tlačových predvolieb autora PDF:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlinga viditeľné mapovanie obojstrannej tlačeSetPdfPrintPaperHandlingDevMode - Pridané
Demo\Delphi\SecurityAudit, ukážka rizikového povrchu iba na čítanie, ktorá vypisuje oprávnenia, prílohy, JavaScript dokumentu, odkazy URI / Launch, webové odkazy, podpisy, stav XFA a dostupnosť pomocníkov V8 / XFA - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.5
Version 1.39.4
- Pridané
Demo\CBuilder\ImageToPDFaDemo\Lazarus\ImageToPDF, čím sa dokončuje matica ukážok ImageToPDF naprieč Delphi, C++Builder a Lazarus - Nové ukážky demonštrujú výber viacerých obrázkov, náhľad vybraného obrázku, jednu stránku PDF na obrázok, dimenzovanie stránky A4 portrét / landscape, centrované škálovanie obrázku, priebeh podľa obrázku a otvorenie vygenerovaného PDF po uložení
- Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.4
Version 1.39.3
- Pridané
Demo\CBuilder\BatchExport, čím sa do C++Builderu prináša pracovný tok exportu viacerých súborov PDF do JPG popri existujúcich ukážkach Delphi a Lazarus - Ukážka demonštruje
LoadCustomDocument,IPdfCancellationTokenSource, streamovanie vstupuTFileStream, priebeh podľa súboru a stránky, spracovanie zrušenia, vstupy DPI / quality / password a otvorenie výstupného priečinka po dokončení - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.3
Version 1.39.2
- Pridané
Demo\Delphi\WatermarkStamp, spustiteľná ukážka pracovného toku Form XObject, ktorá vytvorí cieľové PDF a opakovane použiteľné PDF pečate, a následne aplikuje centrované vodoznaky, pečate vpravo hore a štítky čísiel stránok na každej stránke - Ukážka demonštruje
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixaFPDFPageObj_SetMatrixbez pridania nového API knižnice - Aktualizované
Docs\en-us\Examples.html, aby používalo aktuálny vzorTPdfMatrix.Handlepri odovzdávaní matíc doFPDFPageObj_SetMatrix - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.2
Version 1.39.1
- Pridané
Demo\Delphi\ViewerInteractionLab, zameraná ukážkaTPdfViewpre režimy zobrazenia, režimy prispôsobenia, farby stránok, rotáciu, výber textu používateľom, akcie schránky a spätnú väzbu súradnícDeviceToPage - Pridané
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLab, takže používatelia Lazarusu môžu spustiť pracovný tok validácie a výstupu značiek PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R a PDF/VT - Uvedené jednotky štandardov v
Lib\37.0\PDFiumPas.dprojaLib\FPC\PDFiumLaz.lpka opravená zostava ukážky DelphiSplitViewodstránením duplicitného importuWinapi.ShellAPI - Opravené blokátory dávkovej zostavy ukážok Delphi v
BatchExport,PDFViewer,MultiPageVieweraSplitViewbez zmeny ich správania za behu - Opravená kompatibilita dávkovej zostavy ukážok C++Builder v
PDFVieweraMultiPageViewernahradenímnullptrzaNULLpre aktuálny režim projektu - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.1
Version 1.39.0
- Pridané
Demo\Delphi\StandardsLab, spustiteľná ukážka pracovného toku štandardov, ktorá načíta alebo vytvorí PDF, spustíValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRaValidatePdfVTa zobrazí detekovanú zhodu, stav pass/fail a počty problémov v jednej mriežke - Tlačidlá uloženia StandardsLab volajú
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRaSaveAsPdfVT, čím sprístupňujú výstup značiek PDF štandardov bez písania vlastného harénu - Aktualizované
TPdf.AboutInfo, metadáta balíka Lazarus a metadáta verzie inštalátora, aby nahlasovali 1.39.0
Version 1.38.0
- Prekrytia vyhľadávania a výberu textu
TPdfViewteraz používajú skutočné miešanie alfa namiesto logického maľovania maskou, čím sa zachováva obsah stránky pod zvýrazneniami - Pridané
SetPdfPrintPaperHandlingDevModena mapovanieTPrintPaperHandlingdo hodnôt WindowsDEVMODE.dmDuplex:DMDUP_SIMPLEX,DMDUP_HORIZONTALaDMDUP_VERTICAL TPdfView.SmoothScrollteraz animuje príkazy posuvníka pre riadky/strany v časovačom riadených segmentoch; sledovanie palca zostáva okamžité- Aktualizované
TPdf.AboutInfoa metadáta verzie inštalátora tak, aby uvádzali 1.38.0
Version 1.37.0
TPdfteraz vlastní zámok vykresľovania na inštanciu, ktorý serializujeRenderPage,RenderTile,RenderPageProgressive, cesty opätovného načítania stránky a uvoľnenia dokumentu. Vykresľovanie riadené pracovníkom cez zdieľaný komponent je teraz praktické, pričom aplikácie naďalej koordinujú mutáciu a dobu životnosti dokumentu- Opravený obal bitmapy zero-copy, aby odmietol rozloženia DIB
TBitmapzdola-nahor a vrátil sa k bufferu vo vlastníctve PDFium pred kopírovaním von, čím sa eliminujú zlyhania poškodenia stride / prístupu v testoch vykresľovania VCL - Stiahnuté správanie výberu
TPdfView:AllowUserTextSelectionbráni iba vstupu používateľa, API výberu na úrovni kódu sa stále maľujú aSelectAllnasleduje skutočné viditeľné rozloženie, takže úvodná stránka už nevyberá stranu 2. Testy Delphi, Lazarus a C++Builder boli príslušne rozšírené - Aktualizované
TPdf.AboutInfoa metadáta verzie inštalátora tak, aby uvádzali 1.37.0
Version 1.36.0
- Aktivovaný výber textu koncovým používateľom v
TPdfView— vlastnosťAllowUserTextSelectionrezervovaná vo v1.17.0 teraz riadi úplný pipeline výberu ťahaním. Ľavé kliknutie na textový znak vstupuje do režimu výberu (hit-test auto); ľavé kliknutie na prázdnu oblasť pokračuje v posúvaní ako predtým. Widget vypĺňania formulára si ponecháva prioritu, takže kliknutie na pole formulára stále zameria pole namiesto začatia výberu - Dvoj-klik vyberie slovo, troj-klik vyberie riadok,
Ctrl+Avyberie aktuálnu stránku (obe stránky v režimoch spread) aCtrl+Cskopíruje výber do schránky Windows akoCF_UNICODETEXT Shift+Left/Shift+Rightrozširuje výber naraz o jeden znak (s presahom do priľahlej stránky v režime spread);Shift+Home/Shift+Endrozširuje na vizuálny okraj riadku pomocou výšky boxu semenového znaku ako tolerancie klastra riadku, takže riadky so zmiešanými veľkosťami písma zostávajú správne zhlukované- Pretáčanie nad textom zmení kurzor na
crIBeam; opustenie textu obnoví predvolený kurzor. Kým prebieha ťahanie výberu textu, potiahnutie do 20-pixelovej mŕtvej zóny na akomkoľvek okraji prehliadača automaticky posúva stránku (50 ms tick, 16 px / tick, obmedzené na rovnaké hranice, aké používa cesta posúvania), takže sa výber môže rozšíriť za aktuálny viewport bez toho, aby sa najprv uvoľnila myš - Výber naprieč stránkami funguje v režimoch spread (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): ťahanie začaté na ľavej stránke a končiace na pravej stránke vyberie súvislý rozsah pokrývajúci obe.SelectedTextspája rezy podľa stránok s CR/LF, takže text pri ceste tam a späť sa číta ako normálny viacriadkový obsah - Nová publikovaná vlastnosť
SelectionColor(predvolenéclHighlight, farba výberu systému Windows) — nezávislá odHighlightColor, ktorá farbí výsledky vyhľadávania nažlto. Zvýraznenia vyhľadávania a živý výber ťahaním môžu byť zobrazené na obrazovke súčasne bez farebného konfliktu - Nová publikovaná udalosť
OnSelectionChangesa spúšťa vždy, keď sa materializované rozsahy výberu skutočne zmenia — nikdy pri identickom opätovnom aplikovaní, takže hostiteľské aplikácie ju môžu priamo prepojiť na text stavového riadku alebo stav povolenia tlačidla bez debouncing - Nové verejné API na
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Toto sú vstupné body na úrovni kódu a vždy fungujú bez ohľadu naAllowUserTextSelection— príznak bráni iba vstupu používateľa (myš, Ctrl+C, Ctrl+A, Shift+šípky), takže hostitelia kiosku môžu zakázať výber riadený používateľom a pritom stále stavať tlačidlá panela nástrojov "Select All / Copy", ktoré riadia rovnaké API - Predvolené kontextové menu pravého kliku
Copy/复制sa automaticky pripojí, keď hostiteľ nepriradil svoje vlastnéPopupMenu— štandardné "vyberte text, pravé kliknutie, kopírovať" funguje out of the box. Popis sa vyberá medzi angličtinou a čínštinou podľaSysLocale.PriLangID; hostitelia, ktorí potrebujú plnú lokalizáciu (alebo bohatšie menu), jednoducho priradia svoje vlastnéPopupMenua predvolené sa potlačí - Výber sa automaticky vymaže pri
SetPdf,SetPageNumber,SetActive(False)a prechodochDisplayMode, pričomOnSelectionChangesa spustí presne raz, keď bol predchádzajúci výber neprázdny. Subsystém vypĺňania formulárov si ponecháva prioritu — kým sa upravuje pole formulára, všetky klávesové skratky výberu sa odložia, takže pole dostaneCtrl+C/Ctrl+A/Shift+šípkypre svoj vlastný výber - Rozšírené regresné sady Delphi a Lazarus na 202 prípadov každá a sada C++Builder na 159 prípadov, pokrývajúce predvolené hodnoty, cestu tam a späť, správanie verejného API, vymazania pri zmene stavu, ťahanie myšou (hit-text / hit-blank), klik vs ťahanie, prepínanie kurzora IBeam, slovo dvoj-klikom, riadok troj-klikom, klávesové skratky, predvolené pripojenie / odloženie / popis kontextového menu a výber naprieč stránkami spread — vrátane kontroly cesty tam a späť CR/LF schránky
Version 1.35.0
- Pridaná podpora injektovania značiek PDF/VT (ISO 16612-2:2010): TPdf.SaveAsPdfVT povyšuje aktuálny dokument na súbor vyhovujúci PDF/VT-1 alebo PDF/VT-2 (PDF podmnožina pre variabilnú a transakčnú tlač). PDF/VT je postavené nad PDF/X-4 — ISO 16612-2 §6.2.1 vyžaduje, aby každý súbor PDF/VT-1 zároveň vyhovel PDF/X-4 — takže injektor zapisuje úplnú množinu značiek PDF/X-4 (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)a/Trapped, katalóg/OutputIntentsodkazujúci na slovník OutputIntent s vloženým ICC profilom) popri vlastnostiach špecifických pre PDF/VT - Injektovanie špecifické pre PDF/VT pokrýva XMP
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" alebo "PDF/VT-2" podľa §6.3 Table 2) apdfvtid:GTS_PDFVTModDate(udržiavaný v synchronizácii sxmp:ModifyDatepodľa §6.3 NOTE 1), plus popis pdfaExtension:schemas, ktorý deklaruje menné priestory pdfxid aj pdfvtid (NPES URIhttp://www.npes.org/pdfx/ns/id/ahttp://www.npes.org/pdfvt/ns/id/). Trailer nesie pole/ID - Pridané TPdf.SaveAsPdfVTToStream pre výstup PDF/VT v pamäti a skratka s predvolenými voľbami
TPdf.SaveAsPdfVT(FileName), ktorá produkuje PDF/VT-1 s pribaleným OutputIntentom sRGB IEC61966-2.1 (3144 bajtov, rovnaký profil ako SaveAsPdfA / SaveAsPdfX) a/Trapped /False - Pridané TPdf.ValidatePdfVT: kontroluje otvorené PDF na značky zhody PDF/VT (prítomnosť XMP
pdfvtid:GTS_PDFVTVersionaGTS_PDFVTModDate, rovnosť medzipdfvtid:GTS_PDFVTModDateaxmp:ModifyDate, prítomnosť podkladového identifikátorapdfxid:GTS_PDFXVersion, prítomnosť/DPartRootv katalógu podľa §6.5,/OutputIntentss/DestOutputProfile, trailer /ID, stav šifrovania, prítomnosťxmp:CreateDate/ModifyDate) a vracia TPdfVTValidationResult s detekovanou úrovňou zhody a množinou nájdených problémov - Pridaná vlastnosť TPdf.PdfVTConformance: vracia úroveň zhody aktuálne otvoreného dokumentu (pvc1, pvc2, pvcNone alebo pvcUnknown) bez nutnosti explicitne volať ValidatePdfVT
- Nové typy exportované v novej jednotke FPdfPdfvt: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Hierarchia častí dokumentu (strom
DPartRoot/DPartpodľa §6.5) je štruktúra na úrovni aplikácie, ktorá závisí od mapovania príjemcov / rozsahov stránok v pracovnom toku variabilnej tlače. SaveAsPdfVT strom DPart NESYNTETIZUJE — ValidatePdfVT vystaví chýbajúci/DPartRootakopvviMissingDPartRoot, takže volajúci môžu súbory PDF/VT smerovať cez samostatný krok stavby DPart. Požiadavky PDF/X-4 na úrovni obsahu (vkladanie písiem, priehľadnosť, ICC správa farieb, zákazy OPI / JavaScript / Reference XObject atď.) zostávajú zodpovednosťou autora dokumentu a renderovacej pipeline PDFium - Aktualizovaný reťazec TPdf.AboutInfo tak, aby uvádzal aktuálnu verziu produktu
Version 1.34.0
- Pridaná podpora injektovania značiek PDF/R-1 (ISO 23504-1:2020): TPdf.SaveAsPdfR povyšuje aktuálny dokument na súbor vyhovujúci PDF/R-1 (rastrová prenosová podmnožina PDF používaná pre naskenované dokumenty). Injektovanie pokrýva požiadavky na úrovni formátu súboru, ktoré možno pripojiť post-processingom — unikátny komentár identifikácie verzie
%PDF-raster-1.0zapisovaný medzi slovník traileru a kľúčové slovo startxref (§5), slovník katalógu zredukovaný na bielu listinu §6.3 (prežijú iba Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata), slovník informácií o dokumente zredukovaný na bielu listinu §6.4.3 (iba Creator / Producer / CreationDate / ModDate), prúd XMP v katalógu /Metadata nesúci štyri položky §6.4.4 Table 1 (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate) a pole traileru /ID - Pridané TPdf.SaveAsPdfRToStream pre výstup PDF/R v pamäti a skratka s predvolenými voľbami
TPdf.SaveAsPdfR(FileName)pre bežný prípad - Pridané TPdf.ValidatePdfR: kontroluje otvorené PDF na značky zhody PDF/R-1 (komentár päty
%PDF-raster-x.y, verzia hlavičky, absencia /Type /ObjStm, súlad katalógu s bielou listinou, súlad slovníka Info s bielou listinou, prítomnosť prúdu metadát XMP, trailer /ID) a vracia TPdfRValidationResult s detekovanou úrovňou zhody a množinou nájdených problémov - Pridaná vlastnosť TPdf.PdfRConformance: vracia úroveň zhody aktuálne otvoreného dokumentu (prc1, prcNone alebo prcUnknown) bez nutnosti explicitne volať ValidatePdfR
- Nové typy exportované v novej jednotke FPdfPdfr: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions.
TPdfRSaveOptions.Defaultnastavuje StripInfoOptionalEntries a StripCatalogOptionalEntries na True, takže injektor predvolene produkuje katalóg a slovník Info vyhovujúce §6.3 / §6.4.3; volajúci ich môžu nastaviť na False, aby zachovali zdrojové položky (výstup potom nevyhovie týmto klauzulám PDF/R, ale ostatné značky zostanú pripojené) - Požiadavky na úrovni obsahu zostávajú zodpovednosťou zdrojového PDF: štruktúra Contents na stranu (§6.5.1), tvar MediaBox
[0 0 w h](§6.5.3), obmedzenia filtrov (§6.2.2 — iba FlateDecode, CCITTFaxDecode bitonálne, DCTDecode 8-bitové šedá/RGB), absencia prúdov objektov (§6.2.4) a rozloženie prúžkov podľa §6.6. Tieto nemožno vynútiť post-processingom — PDF/R je štrukturálne oveľa prísnejšia podmnožina než ostatné štandardy PDF/x a vyžaduje správne vygenerovanie zdrojových bajtov. ValidatePdfR vystavuje problémy formátu súboru, ktoré táto jednotka dokáže detegovať; pre úplné kontroly na úrovni obsahu ho spárujte s validátorom PDF/R od TWAIN Working Group - Aktualizovaný reťazec TPdf.AboutInfo tak, aby uvádzal aktuálnu verziu produktu
Version 1.33.0
- Pridaná podpora injektovania značiek PDF/X (rodina ISO 15930): TPdf.SaveAsPdfX povyšuje aktuálny dokument na súbor vyhovujúci PDF/X-1a:2001, PDF/X-3:2002 alebo PDF/X-4 post-processingom základného PDF s prírastkovým updatom. Injektovanie pokrýva požiadavky na úrovni formátu súboru, ktoré možno pripojiť post-processingom — prúd metadát XMP nesúci
pdfxid:GTS_PDFXVersion(apdfxid:GTS_PDFXConformancepre PDF/X-1a / PDF/X-3) plus zodpovedajúci popis pdfaExtension:schemas, prepísaný slovník informácií o dokumente s položkami/GTS_PDFXVersion,/GTS_PDFXConformancea/Trapped, aktualizovaný katalóg s/OutputIntents [N 0 R]odkazujúcim na slovník OutputIntent s/S /GTS_PDFXa vloženým ICC profilom a pole/IDtraileru - Pridané TPdf.SaveAsPdfXToStream pre výstup PDF/X v pamäti a skratka s predvolenými voľbami
TPdf.SaveAsPdfX(FileName), ktorá produkuje PDF/X-4 s vstavaným OutputIntentom sRGB IEC61966-2.1 (3144 bajtov, identický s profilom, ktorý používa SaveAsPdfA) - Pridané TPdf.ValidatePdfX: kontroluje otvorené PDF na značky zhody PDF/X (identifikátor pdfxid v XMP a jeho rovnosť s hodnotou v slovníku Info, popis schémy rozšírenia pdfxid, pole /OutputIntents s /DestOutputProfile, prítomnosť Title, trailer /ID, stav šifrovania, prítomnosť xmp:CreateDate / xmp:ModifyDate) a vracia TPdfXValidationResult s detekovanou úrovňou a množinou nájdených problémov
- Pridaná vlastnosť TPdf.PdfXConformance: vracia úroveň zhody aktuálne otvoreného dokumentu (pxc1a, pxc3, pxc4, pxcNone alebo pxcUnknown) bez nutnosti explicitne volať ValidatePdfX. Reťazec verzie v XMP sa analyzuje, aby sa rozlíšilo medzi tromi úrovňami zhody
- Nové typy exportované v novej jednotke FPdfPdfx: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions.
TPdfXSaveOptions.Defaultcieľuje na PDF/X-4 s OutputIntentom sRGB a/Trapped /False; volajúci môžu prepísaťConformance, dodať CMYK blobIccProfileDatapre komerčné tlačové pracovné toky alebo zmeniťOutputCondition/OutputConditionIdentifier/RegistryName, aby ukazovali na konkrétnu položku registra ICC charakterizácií (napr. FOGRA39, GRACoL2006_Coated1v2) - Požiadavky na úrovni obsahu (všetky písma vložené, žiadny JavaScript, žiadne viditeľné anotácie, zákaz OPI, pravidlá priehľadnosti pre PDF/X-1a / PDF/X-3 atď.) zostávajú zodpovednosťou autora dokumentu a renderovacej pipeline PDFium. Pre úplné overenie zhody spárujte ValidatePdfX s preflight nástrojom, akým je callas pdfaPilot alebo Ghent PDF Workgroup Output Suite
- Aktualizovaný reťazec TPdf.AboutInfo tak, aby uvádzal aktuálnu verziu produktu
Version 1.32.0
- Pridaná podpora injektovania značiek PDF/E-1 (ISO 24517-1:2008): TPdf.SaveAsPdfE povyšuje aktuálny dokument na súbor vyhovujúci PDF/E-1 post-processingom základného PDF s prírastkovým updatom. Injektovanie pokrýva požiadavky na úrovni formátu súboru, ktoré možno pripojiť post-processingom — prúd metadát XMP nesúci
pdfe:ISO_PDFEVersion = "PDF/E-1"plus zodpovedajúci popis pdfaExtension:schemas, prepísaný slovník informácií o dokumente s povinnou položkou/ISO_PDFEVersion (PDF/E-1)vyžadovanou §5, bloky premostenia Info-XMP zdedené z ISO 19005-1 §6.7 cez §13.1 (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool) a pole/IDtraileru vyžadované §6.2 - Pridané TPdf.SaveAsPdfEToStream pre výstup PDF/E v pamäti a skratka s predvolenými voľbami
TPdf.SaveAsPdfE(FileName)pre bežný prípad - Pridané TPdf.ValidatePdfE: kontroluje otvorené PDF na značky zhody PDF/E-1 (prítomnosť pdfe:ISO_PDFEVersion v XMP a jej rovnosť s hodnotou v slovníku Info, popis schémy rozšírenia pdfe, položka /ISO_PDFEVersion slovníka Info, trailer /ID, prítomnosť xmp:CreateDate / xmp:ModifyDate) a vracia štruktúrovaný výsledok s detekovanou úrovňou zhody a množinou nájdených problémov
- Pridaná vlastnosť TPdf.PdfEConformance: vracia úroveň zhody aktuálne otvoreného dokumentu (pec1, pecNone alebo pecUnknown) bez nutnosti explicitne volať ValidatePdfE
- Nové typy exportované v novej jednotke FPdfPdfe: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Prepis slovníka Info je prvýkrát v post-processingovej ceste PDF/x komponentu PDFium Delphi Component — prepisuje existujúci objekt Info s rovnakým číslom objektu (takže referencia /Info v podsekúcii xref a v traileri zostáva platná) a syntetizuje úplne nový slovník Info, keď zdrojový trailer nemá položku /Info. Samotné PDFium emituje slovník Info v každom výstupe SaveAs, takže bežným prípadom je cesta prepisu
- Požiadavky na úrovni obsahu (vkladanie písiem, CMapy ToUnicode, zakázané XObjecty / kľúče ExtGState / formuláre XFA atď.) zostávajú zodpovednosťou autora dokumentu — SaveAsPdfE pripája značky formátu súboru, ale nemení obsah strany ani neodstraňuje zakázané funkcie
- Aktualizovaný reťazec TPdf.AboutInfo tak, aby uvádzal aktuálnu verziu produktu
Version 1.31.0
- Pridaná podpora injektovania značiek PDF/UA-1 (ISO 14289-1:2014): TPdf.SaveAsPdfUa povyšuje aktuálny dokument na súbor vyhovujúci PDF/UA-1 post-processingom základného PDF s prírastkovým updatom. Injektovanie pokrýva požiadavky na úrovni formátu súboru, ktoré možno vynútiť post-processingom — prúd metadát XMP nesúci
pdfuaid:part = 1plus zodpovedajúci popis pdfaExtension:schemas, povinnédc:title, katalóg/MarkInfo << /Marked true /Suspects false >>a/ViewerPreferences << /DisplayDocTitle true >>(iba keď ich zdroj nemá žiadne), katalóg/Lang(keď volajúci dodá značku BCP 47) a pole/IDtraileru - Pridané TPdf.SaveAsPdfUaToStream pre výstup PDF/UA v pamäti a skratka s predvolenými voľbami
TPdf.SaveAsPdfUa(FileName)pre bežný prípad - Pridané TPdf.ValidatePdfUa: kontroluje otvorené PDF na značky zhody PDF/UA-1 (existencia StructTreeRoot, /Lang, /MarkInfo /Marked true s /Suspects = false, /ViewerPreferences /DisplayDocTitle true, identifikátor pdfuaid:part v XMP, prítomnosť dc:title, trailer /ID, stav šifrovania) a vracia štruktúrovaný výsledok s detekovanou úrovňou zhody a množinou nájdených problémov
- Pridaná vlastnosť TPdf.PdfUaConformance: vracia úroveň zhody aktuálne otvoreného dokumentu (puc1, pucNone alebo pucUnknown) bez nutnosti explicitne volať ValidatePdfUa
- Nové typy exportované v novej jednotke FPdfPdfua: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- Polia Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language ponechané v TPdfUaSaveOptions prázdne sa automaticky vyplnia z FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, takže existujúci volajúci môžu ukladať jedným riadkom
- Požiadavky na úrovni obsahu (úplnosť označkovania StructTreeRoot, Alt text obrázkov, CMapy ToUnicode, vkladanie písiem atď.) zostávajú zodpovednosťou autora dokumentu — SaveAsPdfUa pripája značky formátu súboru, ale nemení obsah strany ani nevymýšľa značky. ValidatePdfUa vystaví absenciu StructTreeRoot ako
pvuaiMissingStructTreeRoot, takže volajúci môžu neoznačkované dokumenty smerovať cez samostatnú pipeline označkovania - Aktualizovaný reťazec TPdf.AboutInfo tak, aby uvádzal aktuálnu verziu produktu
Version 1.30.0
- Výstup PDF/A-1b teraz spĺňa požiadavky ISO 19005-1 (s Cor.1:2007) na ekvivalenciu slovníka informácií o dokumente / XMP: každá položka slovníka Info, ktorú PDFium zapisuje do základného PDF, sa zrkadlí do paketu XMP, vrátane Title (dc:title), Author (dc:creator), Subject (dc:description podľa Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) a ModDate (xmp:ModifyDate). Emituje sa tiež xmp:MetadataDate
- Trailer dokumentu PDF/A teraz vždy obsahuje pole /ID (tvrdá požiadavka ISO 19005-1 6.1.3). Keď TPdf.SaveAsPdfA spracováva dokument, ktorého zdroj už má identifikátor súboru, znovu sa použijú existujúce 16-bajtové trvalé a meniace sa ID; inak sa zo zdrojových bajtov odvodí deterministické 16-bajtové záložné ID
- Injektované XMP teraz vkladá popis schémy rozšírenia pdfaid vyžadovaný ISO 19005-1 6.7.8 (nahradený Cor.1) — pdfaid sa považuje za schému rozšírenia relatívnu voči XMP Specification 2004, takže všetky vyhovujúce súbory musia deklarovať názvy jej vlastností, typy hodnôt a kategórie v kontajneri pdfaExtension:schemas
- TPdfASaveOptions získal päť nových voliteľných polí: Producer, CreationDate, ModDate (dátumové reťazce PDF v tvare “D:YYYYMMDDHHmmSSOHH'mm'”), DocumentId a InstanceId (16-bajtové bajtové reťazce pre pole traileru /ID). TPdf.SaveAsPdfA / SaveAsPdfAToStream automaticky vyplnia chýbajúce polia z FPDF_GetMetaText a FPDF_GetFileIdentifier, takže existujúci volajúci fungujú ďalej bez zmien
- TPdf.ValidatePdfA / TPdf.PdfAConformance teraz nahlasujú tri ďalšie problémy: pvaiMissingTrailerId (žiadne /ID v traileri), pvaiMissingXmpDates (chýbajúce xmp:CreateDate alebo xmp:ModifyDate) a pvaiMissingExtensionSchema (chýbajúci popis schémy rozšírenia pdfaid)
- Znaky mimo ASCII v Title, Author, Subject, Keywords, Creator a Producer sa teraz kódujú v pakete XMP ako UTF-8 (XMP Specification vyžaduje UTF-8), čím sa zachováva viacjazyčná cesta metadát tam a späť cez SaveAsPdfA
- Aktualizovaný reťazec TPdf.AboutInfo tak, aby uvádzal aktuálnu verziu produktu
Version 1.29.0
- Obnovené pribalené DLL PDFium (Win32 a Win64, štandardné aj V8 zostavy) na upstream snímku 2026-05-22, čím sa preberajú upstream opravy cestách zlyhania FPDFText_SetText / FPDFText_SetCharcodes a rôzne interné spevnenie z projektu PDFium
- Vystavený nový príznak uloženia PDFium FPDF_SUBSET_NEW_FONTS vo FPdfPageOps.pas, ktorý umožňuje volajúcim FPDF_SaveAsCopy vyžadovať automatické vytváranie podmnožín vložených súborov písiem pre novo pridané textové objekty. Existujúce konštanty FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL a FPDF_REMOVE_SECURITY sú teraz definované pomocou upstream bit-shift formy (zastaralá číselná hodnota 3 sa zachováva ako FPDF_REMOVE_SECURITY_DEPRECATED pre binárnu kompatibilitu)
- Pridaný enum FPDF_FONT_BACKEND_TYPE (FREETYPE / FONTATIONS) a zodpovedajúce pole m_FontLibraryType na FPDF_LIBRARY_CONFIG vo FPdfView.pas, takže aplikácie, ktoré inicializujú PDFium s rendererom Skia, si teraz môžu vybrať backend písiem pri štarte
- Aktualizovaná signatúra TFPDFPage_InsertObject, aby sa zhodovala s upstream: C funkcia teraz vracia FPDF_BOOL (TRUE pri úspechu, FALSE ak je page_object NULL alebo zlyhá prenos vlastníctva) namiesto void. Existujúci volajúci PDFium Delphi Component naďalej kompilujú bez zmeny, keďže Delphi / FPC povoľujú ignorovanie návratovej hodnoty funkcie
- Opravený reťazec TPdf.AboutInfo, aby nahlasoval aktuálnu verziu produktu (bol zastaralý na v1.27.0 od vydania v1.28.0 iba s dokumentáciou)
Version 1.28.0
- Podstatne rozšírená dokumentácia na stránke naprieč celou referenciou API: každá položka vlastnosti, metódy, udalosti a globálnej funkcie teraz nesie 3-odsekový Description, zoznam Remarks, viacriadkovový príklad Delphi a bohatší blok See Also — pokrývajúc 200+ predtým tenkých stránok vrátane všetkých počítadiel TPdf, getterov metadát, prístupov k písmam a znakom, vlastností na úrovni stránky, indexovaných záznamov, metód na úrovni dokumentu a plnej plochy stavu / zobrazenia / udalostí TPdfView
- Doladené rozloženie nápovedy, aby sa zhodovalo s vizuálnym základom losLab použitým v referencii HotXLS: zhodné veľkosti h1/h2, konsolidované štýly mriežky navigácie API do zdieľaného StyleSheet a odstránené prepísania inline CSS na stránke v Navigation.html
- Dokumentácia sa teraz dodáva s pomocným skriptom (Docs\Build-Expand-Entries.ps1), ktorý regeneruje obohatenie stránok vstupov z jednej dátovej tabuľky pre opakovateľnú údržbu
Version 1.27.0
- Pridaná podpora vytvárania PDF/A-1b: TPdf.SaveAsPdfA ukladá ľubovoľný otvorený dokument ako súbor vyhovujúci PDF/A-1b post-processingom základného PDF s prírastkovým updatom, ktorý injektuje prúd metadát XMP, OutputIntent ICC sRGB a aktualizovaný katalóg dokumentu — všetko bez nutnosti ďalších DLL API. Funguje na akejkoľvek platforme podporovanej PDFium Delphi Component
- Pridané TPdf.SaveAsPdfAToStream pre výstup PDF/A v pamäti
- Pridané TPdf.ValidatePdfA: kontroluje otvorené PDF na zhodu s PDF/A (značky pdfaid v XMP, OutputIntent s vloženým ICC profilom, šifrovanie) a vracia štruktúrovaný výsledok s detekovanou úrovňou zhody a množinou konkrétnych nájdených problémov
- Pridaná vlastnosť TPdf.PdfAConformance: vracia úroveň zhody aktuálne otvoreného dokumentu (pac1b, pac1a, pac2b, pac3b, pacNone alebo pacUnknown) bez nutnosti explicitne volať ValidatePdfA
- Nové exportované typy: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (v novej jednotke FPdfPdfa.pas)
- SaveAsPdfA podporuje vlastný ICC profil cez TPdfASaveOptions.IccProfileData; ak sa ponechá prázdny, automaticky sa použije vstavaný profil sRGB IEC61966-2.1 (HP/Microsoft, 3144 bajtov)
- Monolitická HTML referencia bola nahradená reštrukturalizovaným systémom webovej nápovedy: 302 individuálnych stránok položiek API (jedna na vlastnosť, metódu, udalosť a globálnu funkciu) pokrývajúcich TPdf a TPdfView, každá s plným popisom, tabuľkou parametrov, príkladom kódu v Delphi a odkazmi See Also
- Pridané Navigation.html: komplexný jednostránkový index navigácie API organizovaný do šiestich sekcií (vlastnosti/metódy/udalosti TPdf, vlastnosti/metódy/udalosti TPdfView, globálne funkcie) s 5-stĺpcovou flex mriežkou pre rýchle prehliadanie
- TPdf.html a TPdfView.html boli prestavané ako kompaktné prehľadové stránky komponentov, ktoré zachovávajú sekcie referencií typov (Types, Constants, Global Variables) a odkazujú na jednotlivé stránky položiek pre všetkých členov
- Pridané fulltextové vyhľadávanie poháňané Search.js s inkrementálnym porovnávaním na strane klienta naprieč všetkými 312 indexovanými stránkami
- Aktualizované všetky navigačné lišty na celom webe tak, aby smerovali na Navigation.html
Version 1.26.0
- Pridané Demo/Lazarus/BatchExport, port LCL ukážky Delphi BatchExport v1.14.0. Rovnaká sada funkcií: export viacerých súborov PDF -> JPG s celkovým priebehom podľa súboru, aktuálnym priebehom podľa stránky, vstupmi DPI / quality / password a dávkou kooperatívne zrušiteľnou prostredníctvom IPdfCancellationToken. Výstupný priečinok sa otvorí v správcovi súborov platformy, keď extrakcia úspešne skončí
Version 1.25.0
- Pridané opakovné použitie stránky Form XObject do TPdf, čím sa umožňujú pracovné toky vodoznaku, prekrytia šablóny a “pečať jednej stránky na viacero”: CreateXObjectFromPage vyrobí opakovane použiteľný handle z akejkoľvek stránky iného dokumentu; InsertFormObjectFromXObject vloží JEDNU kópiu zabalednej stránky do aktuálnej stránky. Vracia vložený FPDF_PAGEOBJECT, takže volajúci ho môže poziciovať / škálovať / otočiť pomocou FPDFPageObj_SetMatrix a pomocníkov TPdfMatrix v1.9.0
- Nová trieda TPdfXObject Pascal zabaľuje handle PDFium FPDF_XOBJECT a automaticky ho zatvára vo svojom deštruktore, čím eliminuje manuálny rituál FPDF_CloseXObject
- Rozšírené regresné sady Delphi a Lazarus na 147 prípadov každá a sada C++Builder na 123 prípadov, pokrývajúce kontrakty vytvárania handle a vkladania objektov stránky
Version 1.24.0
- Pridané TPdf.RenderPageProgressive — zrušiteľná varianta RenderPage, ktorá riadi progresívnu slučku vykresľovania PDFium a medzi iteráciami pooluje IPdfCancellationToken v1.7.0, takže dlhé vykresľovania s vysokým DPI môžu prerušiť v polovici stránky namiesto blokovania volajúceho až do dokončenia
- Vracia hodnotu TPdfProgressiveStatus: prsDone, prsCancelled alebo prsFailed. Odovzdajte AToken = nil pre vykreslenie do dokončenia bez akéhokoľvek pozastavenia (žiadna možnosť prsCancelled)
- Používa rovnakú rýchlu cestu zero-copy zavedenú vo v1.21.0 — PDFium vykresľuje priamo do DIB cieľového TBitmap. Rovnaký starší fallback sa aplikuje, keď DIB nemožno zabaliť
- Rozšírené regresné sady Delphi a Lazarus na 145 prípadov každá a sada C++Builder na 121 prípadov, pokrývajúce nil-token (dokončí), pred-zrušený token (prsCancelled) a pixelovú ekvivalenciu so synchroným RenderPage na živom tokene
Version 1.23.0
- Pridaných šesť nových metód TPdfView, ktoré vystavujú výber textu formulárového widgetu a Undo/Redo PDFium aplikáciám: GetSelectedFormText vracia aktuálne vybraný text vo vnútri zameraného widgetu formulára; SelectAllFormText vyberie každý znak; FormUndo / FormRedo / FormCanUndo / FormCanRedo riadia históriu úprav zameraného widgetu. Podkladové API PDFium už boli naviazané, ale nemali vysokoúrovňový vstupný bod. Všetkých šesť sa bezpečne skratuje, keď je pohľad neaktívny alebo dokument nemá zameraný widget AcroForm
- Rozšírené regresné sady Delphi a Lazarus na 142 prípadov každá a sada C++Builder na 119 prípadov, pokrývajúce kontrakt no-form-no-focus pre každú novú metódu
Version 1.22.0
- Pridané obaly kompozície stránok do TPdf: ImportPagesByIndex prijíma zero-based indexové pole na kopírovanie konkrétnych stránok zo zdrojového dokumentu; ImportNPagesToOne vracia úplne nový TPdf, ktorého stránky sú N-up kompozity tohto dokumentu; MovePages preraduje stránky na mieste. Podkladové API PDFium už boli naviazané, ale nemali vstupný bod priateľský k Pascalu
- ImportPagesByIndex prijíma prázdne pole pre import každej zdrojovej stránky (ekvivalent odovzdania nil na úrovni C ABI)
- Rozšírené regresné sady Delphi a Lazarus na 136 prípadov každá a sada C++Builder na 115 prípadov, pokrývajúce import podmnožiny, import celého dokumentu, preradenie stránok a N-up kompozit
Version 1.21.0
- Zlepšený výkon vykresľovania prepnutím TPdf.RenderPage / TPdf.RenderTile (a zodpovedajúcich pomocníkov TPdfView) na výstupnú cestu zero-copy. PDFium teraz zapisuje priamo do buffera DIB cieľového TBitmap namiesto do interného buffera, ktorý sa následne kopíroval riadok po riadku, čím sa ušetrí jedno kopírovanie pamäte width x height x 4 bajtov na vykreslenie. Zlepšenie je najbadateľnejšie pri vysokom DPI (panely miniatúr, export v kvalite tlače, dávkový export)
- Staršia cesta per-scanline sa zachováva ako bezpečnostný fallback pre nepravdepodobný prípad, keď cieľové DIB nemožno zabaliť (extrémne rozmery, nezvyčajný stride, OOM). Správanie je bajtovo identické medzi oboma cestami, v fallbacke len pomalšie
- Rozšírené regresné sady Delphi a Lazarus na 132 prípadov každá a sada C++Builder na 112 prípadov, pokrývajúce upgrade caller-bitmap pf32bit, cestu rozmerov tam a späť a test zdravia stride veľkej bitmapy
Version 1.20.0
- Pridané zvýrazňovanie výsledkov vyhľadávania do TPdfView: HighlightSearchText(Text, MatchCase, MatchWholeWord) skenuje aktuálnu stránku pohľadu a vracia počet nájdených zhôd, pričom maľuje masku HighlightColor cez každú zhodu pri každom prekreslení. ClearHighlight odstraňuje zvýraznenia; prepnutie pohľadu na inú stránku ich vymaže automaticky, keďže zhody sú špecifické pre stránku
- HighlightColor je predvolene clYellow a je publikované, takže aplikácie môžu zvýraznenie temovať, aby sa zhodovalo s ich paletou UI
- Rozšírené regresné sady Delphi a Lazarus na 129 prípadov každá a sada C++Builder na 109 prípadov, pokrývajúce predvolenú farbu, cestu farby tam a späť, “zhody skutočných slov fixture” proti reťazcu sample.pdf a kontrakt “chýbajúce slovo vracia nula zhôd”
Version 1.19.0
- Pridaná vlastnosť FitMode do TPdfView so štyrmi hodnotami: pfmNone (ručné priblíženie), pfmActualSize (100%), pfmFitPage (celá stránka sa prispôsobí viewportu) a pfmFitWidth (šírka stránky sa zhoduje so šírkou viewportu). Aktívny režim prispôsobenia sa automaticky reaplikuje pri Resize a pri zmene aktuálnej stránky, takže dlhé dokumenty so zmiešanými veľkosťami stránok zostávajú perfektně orámované
- Priame nastavenie Zoom ruší aktívny režim prispôsobenia (FitMode sa vráti na pfmNone), čo zodpovedá štandardnej konvencii prehliadača PDF, kde zadaním hodnoty priblíženia sa vypadne z Fit Page / Fit Width
- Predvolené je pfmNone, takže existujúce aplikácie si zachovajú svoje správanie explicitnej zmeny mierky
- Rozšírené regresné sady Delphi a Lazarus na 124 prípadov každá a sada C++Builder na 106 prípadov, pokrývajúce predvolenú hodnotu, cestu režimu tam a späť, fit-page produkujúce skutočné priblíženie na načítanom dokumente a manual-zoom-ruší-fit-mode
Version 1.18.0
- Pridaná vlastnosť PageColor do TPdfView, ktorá odpája pozadie vykreslenej stránky PDF od Color okolného ovládacieho prvku. Predvolené je clWhite, takže stránky PDF sa teraz vykresľujú ako papierovo-biele bez ohľadu na tému hostiteľskej aplikácie. Prehliadače v tmavom režime teraz môžu ponechať oblasť posúvania tmavou, pričom samotnú stránku PDF nechajú bielu (alebo ľubovoľnú farbu, ktorú aplikácia zvolí)
- Zmena správania: aplikácie, ktoré zvykli nastavovať TPdfView.Color, aby prefarbili stránku PDF, by mali namiesto toho nastaviť PageColor. Predvolený zážitok sa zlepší pre bežný prípad (biele stránky na tematických pozadiach ovládacích prvkov) bez akejkoľvek zmeny kódu
- Rozšírené regresné sady Delphi a Lazarus na 120 prípadov každá a sada C++Builder na 103 prípadov, pokrývajúce predvolenú hodnotu a cestu farby tam a späť
Version 1.17.0
- Pridané prepínače uzamknutia vstupu používateľa do TPdfView, takže aplikácie vkladajúce prehliadač do kioskot, panelov náhľadu alebo kontextov iba na čítanie môžu zakázať gestá navigácie bez podtriedenia: AllowUserPageChange riadi nové klávesové skratky PgUp / PgDn / Ctrl+Home / Ctrl+End; ChangePageOnMouseScrolling riadi nové skoky stránok wheel-up / wheel-down; AllowUserTextSelection je rezervované pre budúcu cestu výberu textu ťahaním myšou. Všetky tri sú predvolene True, takže existujúce aplikácie sa upgradujú bez zmeny správania
- Navigácia stránok kolieskom myši preskakuje Ctrl+wheel, takže aplikácie si môžu nechať Ctrl+wheel rezervované pre priblíženie
- Rozšírené regresné sady Delphi a Lazarus na 118 prípadov každá a sada C++Builder na 101 prípadov, pokrývajúce predvolené hodnoty a cestu prepínača tam a späť
Version 1.16.2
- Rozšírené regresné pokrytie TPdfView pre kliky na anotačné odkazy, keď sa stránka prehliadača líši od pridruženej stránky TPdf, pomocou reálnej cesty kliku myšou bez hlavice naprieč Delphi, Lazarus a C++Builder
- Sady Delphi a Lazarus teraz spúšťajú 114 prípadov každá a C++Builder teraz spúšťa 99 prípadov
Version 1.16.1
- Opravené spracovanie kliku na odkaz v TPdfView, takže automatické anotačné a webové-odkazové akcie používajú stránku aktuálne zobrazenú prehliadačom, aj keď je pridružený komponent TPdf zaparkovaný na inej stránke
- Spevnený TPdfThumbnailView proti voľne visiacim odkazom Pdf, keď je zničený prepojený komponent TPdf
- Pridané regresné pokrytie doby životnosti odkazu miniatúry; sady Delphi a Lazarus teraz spúšťajú 113 prípadov každá a C++Builder teraz spúšťa 98 prípadov
- Synchronizované README, testovacia dokumentácia, obsah vyhľadávania/indexu HTML Help a generované výstupy balíka C++ s integračnými updatmi v1.7.0 až v1.16.0
Version 1.16.0
- Pridaná nová ukážka Delphi PrintDialog (Demo/Delphi/PrintDialog), ktorá sa zameriava na tlač N-up (1 / 2 / 4 / 9 stránok na hárok) s filtráciou nepárnych / pánych stránok, vykresľovaním v odtieňoch sivej a voliteľnými 1-pixelovými okrajmi buniek. Je to úmyselný malý sprievodca existujúcej ukážky PrintPDF, ktorá už pokrýva náhľad, nedávne súbory, priblíženie a škálovanie
Version 1.15.0
- Pridaný nový komponent TPdfThumbnailView (jednotka FPdfThumbnail), ktorý vykresľuje jednu miniatúru stránky na riadok v posúvateľnom bočnom paneli so zvýraznením pretáčania a výberu plus navigáciou klikom-na-prejdenie. Navrhnutý, aby sedel vedľa TPdfView, takže koncoví používatelia môžu prehliadať dlhý dokument podľa stránok
- Komponent je registrovaný na karte palety losLab vedľa TPdf a TPdfView; kľúčové vlastnosti: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor a udalosť OnPageClick
- Rozšírené regresné sady Delphi a Lazarus na 112 prípadov každá a sada C++Builder na 97 prípadov, pokrývajúce predvolené hodnoty, cestu veľkosti miniatúry tam a späť, obmedzenie extrémnych hodnôt, cestu farby tam a späť a priradenie obsluhy udalosti
Version 1.14.0
- Pridaná nová ukážka Delphi BatchExport (Demo/Delphi/BatchExport) ukazujúca, ako previesť veľa súborov PDF na JPG jedným prechodom pomocou TPdf.LoadCustomDocument na streamovacie načítanie, IPdfCancellationToken na kooperatívne zrušenie a panely celkového priebehu podľa súboru + priebehu podľa stránky. Ukážka používa jednu inštanciu TPdf na súbor (samotné PDFium nie je bezpečné pre vlákna) a otvorí výstupný priečinok v Explorery, keď extrakcia úspešne skončí
Version 1.13.0
- Pridané prekrytie UI asynchrónneho vykresľovania do TPdfView prostredníctvom troch nových vlastností: AsyncRendering, LoadingText a LoadingColor. Keď je AsyncRendering True, cesta maľovania jednej stránky nakreslí malý indikátor “Loading...” nad vykreslenou stránkou, takže aplikácie používajúce vlastného pracovníka pre dlhé vykresľovania zdieľajú konzistentnú vizuálnu affordance
- Predvolené hodnoty zachovávajú existujúce správanie: AsyncRendering je False, takže aplikácie, ktoré sa nepripoja, nevidia žiadnu vizuálnu zmenu
- Dokumentácia objasňuje, že samotné PDFium nie je bezpečné pre vlákna — skutočné presunutie vykresľovania na pracovníka vyžaduje, aby volajúci držal jeden TPdf na pracovníka; pripravovaná ukážka batch-export ukazuje tento vzor
- Rozšírené regresné sady Delphi a Lazarus na 106 prípadov každá a sada C++Builder na 93 prípadov, pokrývajúce predvolené hodnoty a cestu troch vlastností tam a späť
Version 1.12.0
- Pridané spracovanie odkazov riadené klikom do TPdfView. Nová vlastnosť LinkOptions riadi automatické správanie pre štyri typy akcií odkazov PDF: goto (skok na stránku), URI (ShellExecute), launch (ShellExecute) a vložené GotoR (rezervované). Predvolené hodnoty povoľujú loAutoGoto a loAutoOpenURI; loAutoLaunch a loAutoEmbeddedGoto zostávajú vypnuté, takže zatúlaný klik nemôže spustiť ľubovoľný program
- Pridané udalosti OnAnnotationLinkClick a OnWebLinkClick, ktoré sa spúšťajú pred akoukoľvek automatickou akciou a umožňujú aplikáciiam skontrolovať odkaz, označiť ho ako Handled alebo ho presmerovať (napríklad na výzvu bezpečnosti)
- Detekcia kliku na odkaz beží iba vtedy, keď je gesto klikom skôr než ťahaním, pričom používa čerstvý ukotvenie MouseDown, takže gestá posúvania stále pretekajú existujúcou cestou posúvania nezmenene
- Rozšírené regresné sady Delphi a Lazarus na 102 prípadov každá a sada C++Builder na 91 prípadov, pokrývajúce predvolené LinkOptions, cestu množiny tam a späť a priradenie obsluhy udalosti
Version 1.11.0
- Pridaná vizuálna výzdoba do TPdfView: vlastnosti PageShadowSize, PageShadowColor a PageBorderColor maľujú voliteľný tieň pod obdĺžnikom stránky a jeden-pixelový okraj okolo neho. Predvolené hodnoty zachovávajú predchádzajúci plochý vzhľad (PageShadowSize = 0; okraj sa kreslí v predvolenom clBlack, ale zlieva sa s predvoleným bielym pozadím, kým volajúci nezmení farby)
- Pridaná vlastnosť SmoothScroll ako opt-in príznak pre budúcu inkrementálnu animáciu posúvania; vlastnosť dnes robí cestu tam a späť a je zapojená, takže aplikácie môžu preferenciu perzistovať, zatiaľ čo strana vykresľovania stále používa existujúce okamžité správanie posúvania
- Rozšírené regresné sady Delphi a Lazarus na 98 prípadov každá a sada C++Builder na 89 prípadov, pokrývajúce predvolené hodnoty, cestu vlastnosti tam a späť a obmedzenie negatívnej veľkosti tieňa
Version 1.10.0
- Pridané priame vkladanie obrázkov prostredníctvom nových preťažení TPdf.AddImage a TPdfView.AddImage, ktoré prijímajú buď cestu k súboru alebo TBitmap, okrem existujúceho AddPicture založeného na TPicture. AddImage(FileName) rozpozná akýkoľvek formát registrovaný s grafickými jednotkami VCL alebo LCL (BMP, PNG prostredníctvom jednotky PngImage, JPG atď.) a prechádza rovnakým pipeline ako AddPicture, takže správanie je identické
- AddImage(TBitmap) preskakuje sprostredkovateľa TPicture, čo zjednodušuje volajúcich, ktorí už držia TBitmap z vykresľovania alebo práce dávkového generovania
- Rozšírené regresné sady Delphi a Lazarus na 92 prípadov každá a sada C++Builder na 84 prípadov, pokrývajúce vkladanie bitmapy, ohraničenia objektu stránky, odmietnutie nil bitmapy a načítanie BMP súboru
Version 1.9.0
- Pridaná vysokoúrovňová podpora transformačnej matice prostredníctvom novej triedy TPdfMatrix v jednotke FPdfMatrix. TPdfMatrix zabaluje FS_MATRIX PDFium s OO API pre Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew a Multiply, vhodné na skladanie transformácií pred ich odovzdaním do FPDFPageObj_SetMatrix a podobných API PDFium
- TPdfMatrix.Multiply správne sníma šesť prvkov matice pred výpočtom nových hodnôt riadkov, čím opravuje latentný problém, kde alternatívne implementácie Pascal prepisujú skôršie prvky počas toho istého volania a produkujú nesprávne výsledky pre akúkoľvek kompozíciu za rýdzim posunom
- Rozšírené regresné sady Delphi a Lazarus na 88 prípadov každá a sada C++Builder na 81 prípadov, pokrývajúce identity, reset, translate / scale / flip, post-multiplicatívne poradie kompozície a regresný prípad Multiply
Version 1.8.0
- Pridané na-demand načítanie prúdu prostredníctvom novej metódy TPdf.LoadCustomDocument(AStream, AOwnsStream) a pomocnej triedy TPdfStreamAdapter, podporovaných FPDF_LoadCustomDocument PDFium. PDFium teraz číta bloky z dodaného TStream iba vtedy, keď je to potrebné, takže veľmi veľké alebo vzdialené PDF už nevyžadujú kópiu v pamäti vopred
- Pridaný voliteľné vlastníctvo prúdu: odovzdanie AOwnsStream = True udeľuje dobu životnosti TStream do TPdf, ktorý ho uvoľní, keď beží UnloadDocument
- Rozšírené regresné sady Delphi a Lazarus na 79 prípadov každá a sada C++Builder na 75 prípadov, pokrývajúce streamovacie načítanie cez TFileStream, čistenie vlastneného prúdu a kontrakt externe-vlastnený-prúd-prežije-unload
Version 1.7.0
- Pridané primitívy kooperatívneho asynchrónneho zrušenia v novej jednotke FPdfAsync, vystavujúce IPdfCancellationToken / IPdfCancellationTokenSource a opakovane použiteľný singleton PdfNoCancellationToken, takže dlho bežiace pracovné toky vykresľovania a exportu môžu podporovať čistú sémantiku cancel-from-UI
- Pridaný ľahký pomocník TPdfFuture<T>, ktorý spúšťa pracovníka na vlákne v pozadí a posiela obálku TPdfFutureResult<T> späť do hlavného vlákna, rozlišujúci prípady úspechu, zrušenia a zlyhania
- Rozšírené regresné sady Delphi a Lazarus na 76 prípadov každá a sada C++Builder na 73 prípadov, so zdieľaným pokrytím stavu zrušenia, idempotentného zrušenia, fan-out spätného volania a registrácie po zrušení
Version 1.6.10
- Pridaný vysokoúrovňový prístup TPdf.PrintPageRanges k rozsahu tlačových stránok preferencií prehliadača PDF, vracajúci rozsahy stránok založené na jednotke pre kód aplikácie
- Pridané TPdf.SetFormFieldFlags / SetFormFieldFlagsAt a zodpovedajúci pomocníci TPdfView, takže aplikácie môžu aktualizovať príznaky polí AcroForm cez verejné API, vrátane pokrytia príznakov password a multi-select
- Zosilnené pokrytie ABI väzby PDFium pre Windows-sized FPDF_DWORD, callbacky FPDF_FILEACCESS a polia slotu V8 embeddera
Version 1.6.9
- Pridané nízkoúrovňové väzby vykresľovania Skia pre novo exportované API FPDF_RenderPageSkia a FPDF_FFLDrawSkia v pribalených štandardných a V8 DLL PDFium
- Rozšírené kontroly pokrytia verejných väzieb, takže načítavanie štandardných a V8 DLL teraz overuje vstupné body vykresľovania Skia popri existujúcich sondách schopností V8/XFA
Version 1.6.8
- Pridané TPdf.SetTextPositions a TPdfSingleArray na nastavenie pozícií podľa znakov na existujúcich textových objektoch prostredníctvom novo exportovaného API FPDFText_SetPositions
- Povýšené FPDFText_SetPositions na požadovanú väzbu pre aktuálne pribalené DLL PDFium, pričom sa potvrdzuje, že vstupné body vykresľovania Skia zostávajú nedostupné, pretože ich DLL stále neexportujú
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 65 prípadov každá s pokrytím text-position
Version 1.6.7
- Pridaný vysokoúrovňový prístup TPdf k akciám menného stromu JavaScript dokumentu, vracajúci názvy akcií a skripty cez JavaScriptAction a JavaScriptActions
- Pridané TPdf.FileIdentifier na čítanie trvalých a meniacich sa ID traileru ako binárne TBytes bez ukončovacieho bajtu PDFium
- Pridané TPdf.PageBox, GetPageBox a SetPageBox pre MediaBox, CropBox, BleedBox, TrimBox a ArtBox na aktuálnej stránke
- Potvrdené, že aktuálne pribalené DLL PDFium nechávajú za behu nedostupné iba vstupné body vykresľovania Skia, pretože tieto exporty nie sú prítomné
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 64 prípadov každá s pokrytím JavaScript dokumentu, ID traileru a page-box
Version 1.6.6
- Pridaná podpora runtime pre pribalené DLL PDFium s povoleným V8. Nastavenie EnableV8Engine pred načítaním teraz vyberá pdfium.v8.dll zo stromu DLLs\Win32 alebo DLLs\Win64 a vystavuje výhradné väzby V8/XFA, keď ich načítané DLL poskytuje
- Pridané V8FeaturesAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags a nízkoúrovňové voliteľné väzby pre FPDF_BStr_*, FPDF_GetRecommendedV8Flags a FPDF_GetArrayBufferAllocatorSharedInstance
- Urobené FPDFText_SetPositions voliteľným, takže PDFium Delphi Component sa naďalej načítava s DLL PDFium, ktoré neexportujú tento experimentálny nastavovač text-position
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 61 prípadov každá s pokrytím schopností štandardné-DLL a V8-DLL