Poznámky k vydaniu PDFiumPas
História verzií pre funkcie viditeľné pre používateľa PDFiumPas, opravy, vylepšenia vieweru, generovanie dokumentov, výstup PDF/A, vykresľovanie a aktualizácie dokumentácie
Posledné vydanie
- Najnovšia verzia: 2.57.0; Dátum vydania:
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ú typové snímky kontroly 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ú overené dvojprúdové vyrovnávacie pamäte, geometrický rast kolekcií a prechod bez cyklov
- Nasledujúce spracovanie pri ukladaní rezolvuje aktívny katalóg, strom strán a otvorenú akciu prostredníctvom aktuálnej revízie xref, ukladá do vyrovnávacej pamäte dekódované objektové streamy a skenuje PDF slovníky s lexikálnymi hranicami
- Zdieľaný PDF parser 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álových reťazcov a hexadecimálnych reťazcov
- Validácia odpovede RFC 3161 teraz viaže nonce aj SHA-256
messageImprint, vyžaduje štrukturálne platného signatára a aplikuje prísne pravidlá pre DER dĺžku, OID, INTEGER a GeneralizedTime
Opravené (Fixed)
- Inkrementálne dokumenty už nevyberajú neaktívne duplicitné katalógy alebo zle formované prípony referencií pri pridávaní predvolenej otvorenej akcie
- Časové pečiatky tokeny s dlhou formou DER dĺžok si zachovávajú kompletný kódovaný token, zatiaľ čo zle formované poradie voliteľných polí CMS a prázdne množiny signatárov sa odmietajú
- Čisté zostavy Delphi teraz zapisujú polia seed nonce PAdES prostredníctvom kópií bajtov bezpečných voči zarovnaniu a odovzdávajú bajty odpovede XFA s presným natívnym typom ukazovateľa
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 analýze obmedzuje port na rozsah1..65535; nadmerná hodnota portu by sa inak skrátila pretečením typuDWORDa mohla by skončiť na platnom porte- XFDF
ParseFieldteraz prijíma parameter hĺbky (predvolená hodnota 0, limit 64) a pri dosiahnutí limitu vracia prázdne pole, takže zlomyseľne vnorený reťazec<field>s hĺbkou 100 000 už nemôže spôsobiť pretečenie zásobníka
Opravené (Fixed)
- HTTP požiadavka TSA sa teraz chráni pred prázdnym telom požiadavky pred odovzdaním
@ReqDer[0]doWinHttpSendRequest; dereferencia dynamického poľa s nulovou dĺžkou by pristupovala k neplatnému ukazovateľu;BuildTimeStampReqvždy vracia nenulovú sekvenciu SEQUENCE, ale miesto volania teraz zabezpečuje dodržanie kontraktu
Poznámky (Notes)
- Komentár v hlavičke
FPdfTsaWino kontrole odvolania certifikátov HTTPS bol opravený: WinHttp predvolene overuje reťazec certifikátov servera, ale **nevykonáva** kontrolu odvolania CRL/OCSP, pokiaľ to nie je explicitne povolené pomocouWinHttpSetOption; predchádzajúca formulácia tvrdila, že kontrola odvolania je “zadarmo”, čo bolo zavádzajúce
Version 2.36.0
Zmenené (Changed)
- HTTP požiadavky TSA teraz odosielajú explicitnú hlavičku
Content-Lengthokrem hlavičiekContent-TypeaAccept; WinHttp ju vytvára z celkovej dĺžky, ale niektoré proxy servery RFC 3161 vyžadujú explicitnú hlavičku a bez nej odmietnu požiadavku s chybou411 Length Required - Export XFDF teraz zahadzuje riadiace znaky C0 (iné ako TAB/LF/CR, ktoré sú už escapované) namiesto generovania neplatnej sekvencie so spätným lomkou a hexadecimálnou hodnotou; predchádzajúce escapovanie
\-01Fnie je platným XML (spätné lomítko nemá v XML žiadny špeciálny význam), takže akákoľvek vyhovujúca čítačka by dokument odmietla ako nesprávne naformátovaný InjectAssociatedFilesteraz zapisuje/Subtypedo slovníka streamu EmbeddedFile, keď volajúci poskytneTAssociateFile.MIMEType; toto pole bolo deklarované a zdokumentované, ale injektor predtým napevno zakódoval/Type /EmbeddedFilea ignoroval ho (ISO 32000-2 §7.11.4 povoľuje/Subtypena streame)
Opravené (Fixed)
- Import XFDF vynechal prvý bajt obsahu po UTF-8 BOM a prvý bajt, keď nebol prítomný žiadny BOM:
BytesToAnsi(Bytes, 4, ...)(BOM) aBytesToAnsi(Bytes, 1, ...)(bez BOM) používali posunuté počiatočné indexy o jeden, pretožeBytesToAnsiprijíma 0-indexovaný index poľa; volania teraz používajú3a0 ExtractSignatureValueobsahoval dve chyby odsadenia s voľne visiacimif, kdeR.Position:= CNbežal bezpodmienečne pre voliteľné vetvycertificates [0]asignedAttrs [0]; tieto vetvy sú teraz obalené vbegin/end, takže pozícia sa posunie iba vtedy, keď bol voliteľný TLV skutočne prečítaný (rovnaká trieda chýb opravená vAddSignatureTimestampToCmsvo verzii v2.22.0)
Version 2.35.0
Zmenené (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailaTFPDFAvail_IsFormAvailteraz preberajúhints: PFX_DOWNLOADHINTSnamiestovar hints: FX_DOWNLOADHINTS, takže zdokumentovaný režim iba na dotazovanienullptr(kontrola aktuálnej dostupnosti bez vyžiadania ďalších údajov) je dostupný z Delphi; hlavička PDFium explicitne povoľuje, aby bolohintsnull, čo predchádzajúca väzba svarznemožňovalaTFPDF_SetSystemFontInfoteraz preberápFontInfo: PFPDF_SYSFONTINFOnamiestovar pFontInfo: FPDF_SYSFONTINFO, takže volajúci môžu odovzdaťnil, aby oznámili PDFium, že má prestať používať predtým zaregistrované rozhranie systémových písiem (zdokumentovaná cesta zakázania)TPdfThumbnailView.Paintteraz počítaVisibleRowspomocou rovnakého vzorca akoUpdateScrollBarRange(ClientHeight div RowHeight), takže počet vykreslených riadkov zodpovedá veľkosti stránky posúvača; predchádzajúci vzorec iba pre vykresľovanie ((ClientHeight - FMarginY) div RowHeight + 1) sa mohol pri hraničných výškach líšiť o jeden riadok, čo viedlo k zbytočnému vykresľovaniu riadku mimo stránky alebo vynechaniu posledného viditeľného riadku
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íva blokovej šifry AES (FIPS 197) v novej jednotke
FPdfAes.pas; čisté Pascal implementácie blokových šifier AES-128 a AES-256, pomocné funkcie režimu CBC a CSPRNG backend, portované z HotPDF; testy so známymi odpoveďami FIPS-197 Appendix C.2 / C.3 overujú správnosť; toto je kryptografický základ pre šifrovací zásobník PDF 2.0 - Overené šifrovanie AES-GCM (NIST SP 800-38D) v novej jednotke
FPdfAesGcm.pas; implementuje GHASH (násobenie GF(2^128)), GCTR a konštrukciu GCM AEAD na základe primitív bloku AES; testovacie prípady NIST GCM 1 a 3 (AES-128) presne zodpovedajú autoritatívnemu šifrovanému textu a tagu; testovací prípad 13 (AES-256) prechádza obojsmerne; GCM je režim ISO/TS 32003 pre PDF 2.0 - Overenie integrity ParentTree a ClassMap pre PDF/A Level A (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingoznačuje StructTreeRoot bez číselného stromu/ParentTree;pvaiClassMapUnresolvedoznačuje odkaz na triedu/Cbez/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)
- Viewer ukážky spracúvajú vyhľadávanie,
Enter/F3a zrušenie pomocouEsc - Tlač rešpektuje otočenie vieweru
Opravené (Fixed)
- Zrušenie tlače zastaví úlohu tlačiarne
Version 2.26.0
Zmenené (Changed)
- Bitmap metódy používajú render lock okolo volaní PDFium
RenderPageThumbnailrešpektuje/Rotate
Opravené (Fixed)
GetCharacterRectanglevraciaRect(0,0,0,0)pri chybe
Version 2.25.0
Zmenené (Changed)
- Editačné metódy zneplatnia cache textu a odkazov
RenderPage(HDC, ...)používa lock a maskuje FPU/SSE výnimky
Opravené (Fixed)
- Kódové body nad U+FFFF vracajú U+FFFD
TPdf.DestroyvymažePassword
Version 2.24.0
Pridané (Added)
- Indexy sa validujú a mimo rozsahu vyvolajú
EPdfError
Opravené (Fixed)
- Opravené úniky page-object a chýbajúce
UpdatePage
Version 2.23.0
Opravené (Fixed)
- Validácie prijímajú povolené
/OFFa/Design - Geospatial Measure už nevyžaduje
/Type /Measure
Version 2.22.0
Zmenené (Changed)
- Fit zoom používa
ClientWidth/ClientHeight AddSignatureTimestampToCmsvyvolá explicitnúException
Opravené (Fixed)
- CNG handle sa uvoľní cez
NCryptFreeObject EcDsaP1363ToDerodmietne nulovér/s
Opravené (Fixed)
- Explicitné ukladanie do PDF 1.5–PDF 1.7 teraz odmieta nesprávne naformátované štruktúry katalógu
/OCProperties, vrátane chýbajúcich povinných položiek/OCGsalebo/D, neplatných predvolených konfiguračných hodnôt a stavových záznamov, ktoré nie sú poliami
Version 2.21.12
Opravené (Fixed)
- Ukladanie PDF 1.5 až PDF 1.7 teraz odmieta chybné štruktúry
/OCProperties
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)
- Posledná verzia: 2.21.4; Dátum vydania:
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 môž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)
- Posledná verzia: 2.21.12; Dátum vydania:
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 PDFiumPas
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 PDFiumPas
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 (podmnožina PDF 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 tiež 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 obe menné priestory pdfxid a 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 OutputIntent 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ť identifikátorapdfxid:GTS_PDFXVersion, prítomnosť/DPartRootkataló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íjemcu / rozsahu stránok pracovného toku variabilnej tlače. SaveAsPdfVT NEsyntetizuje strom DPart — ValidatePdfVT vystavuje chýbajúci/DPartRootakopvviMissingDPartRoot, takže volajúci môžu smerovať súbory PDF/RT cez samostatný krok stavby DPart. Požiadavky obsahu PDF/X-4 na úrovni obsahu (vkladanie písiem, priehľadnosť, farebná správa ICC, zákazy OPI / JavaScript / referenčné XObject atď.) zostávajú zodpovednosťou autora dokumentu a pipeline vykresľovania PDFium - Aktualizovaný reťazec
TPdf.AboutInfotak, 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 (podmnožina PDF na prenos rastrových obrázkov 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.0zapísaný medzi slovníkom traileru a kľúčovým slovom startxref (§5), slovník katalógu redukovaný na bielu listinu §6.3 (prežijú iba Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata), slovník informácií o dokumente redukovaný na bielu listinu §6.4.3 (iba Creator / Producer / CreationDate / ModDate), prúd XMP 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úci §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 stránku (§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é sivé/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 generovanie 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 TWAIN Working Group - Aktualizovaný reťazec
TPdf.AboutInfotak, 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 OutputIntent 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 XMP a rovnosť s hodnotou slovníka 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 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 OutputIntent sRGB a/Trapped /False; volajúci môžu prepísaťConformance, dodať blobIccProfileDataCMYK pre komerčné tlačové pracovné toky alebo zmeniťOutputCondition/OutputConditionIdentifier/RegistryName, aby ukazovali na konkrétnu položku registra charakterizácie ICC (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 pipeline vykresľovania PDFium. Spárujte ValidatePdfX s nástrojom predbežnej kontroly, ako je callas pdfaPilot alebo Ghent PDF Workgroup Output Suite, pre úplné overenie zhody
- Aktualizovaný reťazec
TPdf.AboutInfotak, 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 prostredníctvom §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 XMP a rovnosť s hodnotou slovníka 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 ceste post-processingu PDF/x PDFiumPas — prepíše existujúci objekt Info s rovnakým číslom objektu (takže podsekcia xref / odkaz traileru /Info zostanú platné) a syntetizuje čerstvý slovník Info, keď trailer zdroja 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 stránky ani neodstraňuje zakázané funkcie
- Aktualizovaný reťazec
TPdf.AboutInfotak, 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ď 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 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é prázdne v TPdfUaSaveOptions 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 stránky ani nevymýšľa značky. ValidatePdfUa vystavuje neprítomnosť StructTreeRoot ako
pvuaiMissingStructTreeRoot, takže volajúci môžu smerovať neoznačkované dokumenty cez samostatný pipeline označkovania - Aktualizovaný reťazec
TPdf.AboutInfotak, 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 zapíše 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). xmp:MetadataDate sa tiež emituje
- Trailer dokumentu PDF/A teraz vždy obsahuje pole /ID (tvrdá požiadavka ISO 19005-1 6.1.3). Keď TPdf.SaveAsPdfA spracuje dokument, ktorého zdroj už má identifikátor súboru, existujúce 16-bajtové trvalé a meniace ID sa znovu použijú; inak sa deterministické 16-bajtové náhradné ID odvodí zo zdrojových bajtov
- 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 k 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 vyplňujú chýbajúce polia z FPDF_GetMetaText a FPDF_GetFileIdentifier, takže existujúci volajúci naďalej fungujú 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ú ako UTF-8 v pakete XMP (XMP Specification vyžaduje UTF-8), čím sa zachováva viacjazyková cesta metadát tam a späť cez SaveAsPdfA
- Aktualizovaný reťazec
TPdf.AboutInfotak, 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 PDFiumPas 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 extra API DLL. Funguje na akejkoľvek platforme podporovanej PDFiumPas
- Pridané
TPdf.SaveAsPdfAToStreampre výstup PDF/A v pamäti - Pridané TPdf.ValidatePdfA: kontroluje otvorené PDF na zhodu s PDF/A (značky pdfaid 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; keď sa ponechá prázdne, automaticky sa použije vstavaný profil sRGB IEC61966-2.1 (HP/Microsoft, 3144 bajtov)
- Nahradená monolitická referencia HTML reštrukturovaným systémom webovej nápovedy: 302 individuálnych stránok vstupov 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 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 skenovanie
- Znovu zostavené TPdf.html a TPdfView.html ako kompaktné stránky prehľadu komponentov, ktoré si ponechávajú sekcie referencií typov (Types, Constants, Global Variables) a odkazujú na individuálne stránky vstupov pre všetkých členov
- Pridané fulltextové vyhľadávanie poháňané Search.js s inkrementálnym zhodovaním na strane klienta naprieč všetkými 312 indexovanými stránkami
- Aktualizované všetky navigačné panely na celom webe, aby ukazovali 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 PDFiumPas 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
Version 1.6.5
- Pridaná inšpekcia štruktúrového stromu označkovaného PDF prostredníctvom TPdf.StructureElements a TPdfView.StructureElements, vrátane typu elementu, názvu, alternatívneho textu, skutočného textu, textu rozšírenia, jazyka, ID označeného obsahu, počtu dcérskych prvkov a počtu atribútov
- Pridaný výber režimu tlače Windows PDFium prostredníctvom TPdfPrintMode a SetPdfPrintMode, pokrývajúci režimy tlače EMF, text-only, PostScript, pass-through, image-mask a Type 42
- Pridané nízkoúrovňové väzby pre zostávajúce verejné exporty štandardných-DLL PDFium pokrývajúce akcie JavaScript, príznaky formulára anotácií/farbu písma, aktívny stav objektu stránky, indexované vkladanie, hodnoty float content-mark, údaje ICC profilu obrázku, odstránenie form-object a pozície textu
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 59 prípadov každá s pokrytím označkovaného štruktúrového stromu PDF, režimu tlače a väzieb verejných exportov
Version 1.6.4
- Aktualizované ukážky Delphi, C++Builder a Lazarus, aby automaticky otvárali vygenerované PDF, exportovaný text/obrázky a výstupné priečinky dávky po úspešnom vytvorení
Version 1.6.3
- Rozšírené zrovnané regresné sady Delphi, C++Builder a Lazarus na 56 prípadov každá s pokrytím GUI TPdfView pre pomocníkov fit-zoom, cesty súradníc zariadenie/stránka tam a späť, hit-testing znakov a posúvanie myšou prostredníctvom ovládacích prvkov prehliadača so skrytým oknom
- Fixtúry TPdfView teraz používajú explicitnú veľkosť prehliadača a podtriedy len-na-test, ktoré cvičia chránené obslužné programy myši, pričom udržiavajú sady plne bez hlavičky
Version 1.6.2
- Opravené TPdf.AddPage(0, ...), takže vložená prvá stránka sa okamžite stane aktívnou stránkou. Existujúci kód ukážky naďalej funguje, zatiaľ čo PageNumber teraz po vložení nahlasuje platnú stránku založenú na jednotke
- Synchronizovaná verzia balíka Lazarus a rozšírené zrovnané regresné sady Delphi, C++Builder a Lazarus na 52 prípadov každá
Version 1.6.1
- Opravená nesprávna požiadavka na minimálnu verziu v validátore zhody verzie PDF v1.6.0: akcia SetState bola preklasifikovaná z PDF 1.5 nadol na PDF 1.2, čo zodpovedá PDF 1.2 Reference 6.9.9. Ciele SaveAs PDF 1.3 / 1.4, ktoré obsahujú akcie SetState, sa teraz ukladajú správne namiesto toho, aby boli odmietnuté
- Pridané zodpovedajúce lexikálne kontroly PDF 1.2 podľa tej istej sekcie špecifikácie: akcie Sound, Movie a NOP plus farebný priestor Separation sú teraz blokované, keď je zvolená cieľová verzia staršia než PDF 1.2
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 50 prípadov každá pridaním pozitívneho testu akceptácie PDF 1.4 SetState, ktorý zamkýna opravenú hranicu
Version 1.6.0
- Spevnené explicitné ciele SaveAs PDF 1.0 až PDF 1.7 úplným validátorom verzia-funkcia, ktorý pokrýva celú časovú os funkcií PDF 1.1 až ISO 32000-1. Validátor teraz blokuje uloženia, ktoré obsahujú položky slovníka, názvy filtrov, podtypy anotácií, typy akcií, písma, farebné priestory alebo parametre šifrovania zavedené po zvolenej cieľovej verzii. Príklady: JBIG2Decode (1.4+), MarkInfo / Tagged PDF (1.4+), OutputIntents (1.4+), ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+), anotácie Polygon / PolyLine / Caret / Screen / Watermark / Redact, šifrovanie AES a AES-256 (CFM AESV2 / AESV3), položky katalógu Perms / Legal / Requirements / NeedsRendering a verziami podmienené akcie ako JavaScript, Trans, SetState, Rendition, GoToE, GoTo3DView sa všetky odmietajú, keď ich cieľová verzia PDF nedokáže reprezentovať
Version 1.5.13
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 49 prípadov každá, pridaním priameho pokrytia odmietnutia farebných priestorov ICCBased, MarkInfo označkovaného PDF, anotácií Polygon, šifrovania AES (V2) a anotácií Redact voči cieľom PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6
Version 1.5.12
- Opravený post-processing SaveAs pre prírastkové prepisy katalógu. PDFiumPas teraz overuje najnovší opakovaný nepriamy objekt, takže existujúce prepísania /Version katalógu sa správne nahradia pri ukladaní do explicitnej staršej cieľovej verzie PDF
- Rozšírené regresné sady Delphi, C++Builder a Lazarus na 44 prípadov každá, pridaním priameho pokrytia nahradenia zastaralého /Version katalógu, normalizácie verzie katalógu PDF 1.4 a odmietnutia funkcií priehľadnosti a portable-collection, keď ich zvolená cieľová verzia PDF nedokáže reprezentovať
Version 1.5.11
- Spevnený verziovaný výstup SaveAs pre explicitné ciele PDF 1.3, 1.4, 1.5, 1.6 a 1.7. PDFiumPas teraz normalizuje značky verzie katalógu, udržiava predvolený OpenAction Fit Height bezpečný voči verzii a odmieta novšie funkcie PDF, keď ich zvolená cieľová verzia nedokáže reprezentovať
- Pridané regresné pokrytie Delphi, C++Builder a Lazarus, ktoré ukladá a znovu načítava explicitné súbory PDF 1.3 až PDF 1.7, overujúc finálnu hlavičku, predvolený OpenAction Fit Height a nahlásenú verziu PDF
Version 1.5.10
- Prekročené z voľby B špecifikácie na voľbu C pridaním smoke testov TPdfView vo všetkých troch IDE sadách (Tests.PdfView). Každá sada zostaví skrytý nadradený TForm (cez TForm.CreateNew na stranách Pascal a
new TForm(NULL, 0)na strane C++Builder), rodičovsky preprideli TPdfView, nastaví Active := True a následne overí plochu cesty tam a späť pre PageCount, predvolené PageNumber, Zoom, Rotation, DisplayMode a že View.Text sa zhoduje s podkladovým TPdf.Text. Každá IDE sada teraz spúšťa 39 prípadov
Version 1.5.9
- Prekročené z voľby A špecifikácie na voľbu B pridaním render smoke testov vo všetkých troch IDE sadách. Každá sada Tests.Render zavolá TPdf.RenderPage na sample.pdf a overí tri robustné signály namiesto kontrolných súčtov bajt-za-bajtom: vrátená bitmapa sa presne zhoduje s požadovanou veľkosťou pixelov; rôzne požadované veľkosti (200x100, 64x256) produkujú zodpovedajúce bitmapy; a vykreslená stránka má aspoň 95 % bieleho pozadia s aspoň 50 (Lazarus: 20) nebielymi pixelmi označujúcimi antialiasovaný text. Každá IDE sada teraz spúšťa 33 prípadov
Version 1.5.8
- Uzavreté pôvodné skupiny testovacieho plánu A(2) pridaním ďalších sedem regresií na IDE: TPdf.CreateAnnotation budujúci anotáciu anHighlight plus cestu SaveAs/LoadDocument tam a späť, cesta čítania AcroForm na Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf (FormType je ftAcroForm, FormFieldCount > 0, FlattenAllPages znižuje polia na nula) a tiché pokrytie cesty čítania pre Bookmarks, LinkAnnotationCount a WebLinkCount na dokumente, ktorý nemá žiadnu z týchto funkcií. Každá IDE sada teraz spúšťa 30 prípadov
Version 1.5.7
- Rozšírené sady Delphi (DUnitX), Lazarus (FPCUnit) a C++Builder (GoogleTest) o sedem nových regresií na IDE: PdfVersion, PageRotation, vyhľadávanie podreťazca TPdf.FindFirst / FindNext, súhlas CharacterOrigin / CharacterRectangle proti pôvodu AddText, registrácia CreateAttachment plus cesta SaveAs/LoadDocument tam a späť a cesta diakritického textu AddText tam a späť, ktorá overuje, že cesta vloženia európskeho TrueType v1.3.0 zachováva doplnkové kódové body Latin-1 neporušené
Version 1.5.6
- Uložené PDF teraz dostávajú predvolenú akciu otvorenia Fit Height prvej stránky, keď nie je prítomný žiadny existujúci OpenAction, takže čítačky PDF spočiatku zobrazujú vygenerované dokumenty s priblížením na výšku stránky
- Pridané regresné pokrytie Delphi, Lazarus a C++Builder pre vygenerovaný OpenAction a nastavenie Fit Height
Version 1.5.5
- Pridané regresné testy naprieč sadami Delphi (DUnitX), Lazarus (FPCUnit) a C++Builder (GoogleTest) pre plochu API indexovej inšpekcie znakov a písiem (TPdf.FontBaseName, FontFamilyName, FontWeight, FontItalicAngle, FontData, FontIsEmbedded, CharacterFontWeight, CharacterAngle). Sada Lazarus úmyselne preskakuje FontData, ktorý momentálne spôsobuje access-violation vo vnútri FPDFFont_GetFontData pod FPC
Version 1.5.4
- Pridaná ukážka Attachment pre C++Builder portovaná zo vzorky Delphi, pokrývajúca vytváranie PDF, pridávanie, vypisovanie, extrahovanie, odstraňovanie a ukladanie vložených príloh súborov so zobrazením podtypu MIME
Version 1.5.3
- Vystavený výpočet spread-stránok, ktorý podopiera dvojstranové režimy TPdfView, ako pomocník na úrovni jednotky ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). Správanie je bez zmeny; pomocník robí pravidlo uvedomujúce si obálku nezávisle testovateľným bez inštanciovania prehliadača
- Pridaných päť regresných testov naprieč sadami Delphi (DUnitX), Lazarus (FPCUnit) a C++Builder (GoogleTest) pokrývajúcich prázdne dokumenty, štandardné dvojstranové párovanie, úvodnú stránku stojacu samostatne v dmTwoPageContinuousWithCover, páry po obálke a správanie obmedzenia posledná-stránka / mimo-rozsah
Version 1.5.2
- Pridaná podpora jazyka dokumentu prostredníctvom TPdf.Language, namapovaná na položku /Lang katalógu PDF
- Pridaný prístup k podtypu MIME prílohy prostredníctvom
TPdf.AttachmentType - Pridané anRedact do TPdfAnnotationSubtype a pridaní pomocníci na odstránenie objektov stránky pre TPdf a TPdfView
- Aktualizované ukážky prehliadača a príloh, aby zobrazovali nové informácie o jazyku a type prílohy, keď sú dostupné
Version 1.5.1
- Pridané dmTwoPageContinuousWithCover pre TPdfView, takže rozloženia prehliadača môžu zobraziť prvú stránku samostatne a potom pokračovať s dvojstranovými spreadmi
- Aktualizované ukážky MultiPageViewer pre Delphi, C++Builder a Lazarus, aby vystavili dvojstranový režim zobrazenia uvedomujúci si obálku
Version 1.5.0
- Pridané smoke-úrovňové automatizované testovacie sady pre Delphi (DUnitX), Lazarus (FPCUnit) a C++Builder (GoogleTest). Tri sady zdieľajú jeden fixtúrny PDF v Tests\TestData a spúšťajú rovnakých sedem prípadov každá, pokrývajúc načítanie dokumentu, informácie o stránke, extrakciu textu, metadáta, cestu uloženia tam a späť, validáciu hlavičky PDF a vlastnosť Compressed
Version 1.4.3
- Vylepšená ukážka FontProperties, aby zobrazovala API metadát písiem TPdfView aj TPdf, vrátane handle-ov písiem, veľkosti dát písma a metrík znakov
- Pridané indexové vlastnosti inšpekcie znakov a písiem TPdfView a aktualizovaná ukážka FontProperties, aby dopytovala metadáta písma textového objektu
Version 1.4.2
- Pridané indexové vlastnosti inšpekcie znakov a písiem do TPdf pre textovú analýzu bez nutnosti prehliadača. Vlastnosti indexované podľa znakov (CharacterAngle, CharacterFontSize, CharacterFontWeight) dopytujú metriky podľa znakov z textového prúdu aktuálnej stránky. Vlastnosti indexované podľa objektu stránky (FontAscent, FontBaseName, FontData, FontDescent, FontFamilyName, FontHandle, FontIsEmbedded, FontItalicAngle, FontWeight) dopytujú metadáta písma pre ľubovoľný textový objekt na aktuálnej stránke
- Netextové objekty stránky vracajú bezpečnú nulu alebo prázdne hodnoty pre všetky vlastnosti Font* namiesto vyvolania chyby, čo uľahčuje iteráciu každého objektu stránky a inšpekciu iba textových
- FontBaseName číta názov základného písma PostScript priamo namiesto náhrady na názov rodiny písma, čím dáva presnejší identifikátor pre vložené písma
Version 1.4.1
- Pridané verzie C++Builder a Lazarus ukážky EuropeanText, takže všetky podporované rodiny IDE môžu overiť generovanie diakritického európskeho textu so systémovými písmami TrueType
- Pridané verzie C++Builder a Lazarus ukážky FormFill, vrátane ukážkových PDF formulárov, úpravy polí, regenerácie vzhľadu, uloženia vyplneného a uloženia zrovnanej formy pracovných tokov
Version 1.4.0
- Pridaná podpora Lazarus / Free Pascal: nový balík PDFiumLaz poskytuje rovnaké komponenty TPdf, TPdfView a súvisiace pod sadou widgetov LCL, čím rozširuje knižnicu do IDE Lazarus a kompilátora Free Pascal popri existujúcich balíkoch Delphi a C++Builder
- Pridané verzie ukážok Lazarus, takže vývojári Lazarusu môžu preskúmať každú funkciu so spustiteľnými príkladmi
- Opravený problém kompilácie Lazarus, kde sa podmienené definície Free Pascal vyhodnocovali spolu s kontrolami verzie kompilátora Delphi, čo spôsobovalo, že zostavy FPC sa pokúšali rozpoznať názvy jednotiek špecifické pre Delphi a zlyhávali
Version 1.3.1
- Zdokumentovaný pracovný tok zrovnávania formulára v sade nápovedy: GenerateFormAppearances, FlattenPage, FlattenAllPages a súvisiace konštanty FLAT_* / FLATTEN_* sú teraz pokryté v TPdf, TPdfView, referencii API, matici funkcií a programovacích príkladoch
- Opravená tabuľka architektúry na stránke prehľadu, takže uvádza skutočné jednotky väzieb dodávané v priečinku Lib
Version 1.3.0
- Vylepšená podpora európskych znakov pri vytváraní PDF. TPdf.AddText teraz načítava a cachuje zodpovedajúce systémové písmo TrueType pred vytvorením textového objektu, čím zachováva diakritické znaky z češtiny, francúzštiny, nemčiny, španielčiny, portugalčiny, poľštiny a turečtiny, ktoré vstavané štandardné písma PDFium nedokážu reprezentovať
- Aplikácie, ktoré predtým produkovali otázniky alebo náhradné glyfy pre latinský text mimo ASCII, sa teraz vykreslia správne bez akejkoľvek zmeny kódu. Pridaná ukážka EuropeanText na ilustráciu funkcie
Version 1.2.0
- Pridané obnovenie vzhľadu AcroForm do TPdf: volanie GenerateFormAppearances po úprave hodnôt FormField[] aktualizuje vzhľad widgetu, takže vyplnené hodnoty sú viditeľné v štandardných čítačkách PDF bez nutnosti interaktívnej úpravovej relácie
- Pridaní pomocníci zrovánania formulára do TPdf (FlattenPage / FlattenAllPages) a TPdfView (FlattenPage pre aktuálnu stránku pohľadu). Zrovnanie natrvalo vloží vyplnené hodnoty polí ako bežný obsah stránky a odstráni interaktívnu vrstvu formulára, čím vznikne statický dokument, ktorý sa vykresľuje konzistentne naprieč všetkými prehliadačmi
- Pridané Demo\Delphi\FormFill na demonštráciu pracovných tokov fill-and-save a fill-and-flatten so vzorkovým PDF AcroForm
Version 1.1.2
- Pridaná kompresia prúdu PDF v čase uloženia. Nová vlastnosť TPdf.Compressed (predvolene povolená) prepisuje nekomprimované prúdy obsahu ako prúdy komprimované FlateDecode pri ukladaní, čím výrazne znižuje veľkosť súboru pre programaticky generované PDF. Aplikácie, ktoré vyžadujú čistý nekomprimovaný výstup, môžu nastaviť Compressed na False pred volaním SaveAs
Version 1.1.1
- Zostavy balíka Win64 už nezahŕňajú registračné jednotky v čase návrhu, čím sa predchádza zlyhaniam v čase zostavy, keď je balík Win64 nasadený v kontexte iba pre runtime
- Loader DLL PDFium teraz najprv vyhľadáva v podadresári aplikácie Win32 alebo Win64, pričom používa štandardné názvy pdfium.dll a pdfium.v8.dll, a vracia sa do plochého adresára aplikácie a systémového adresára Windows. Toto zodpovedá rozloženiu DLL dodávanému s balíkom komponentov, čím sa inštalácia zjednodušuje
Version 1.1.0
- Opravená vizuálna chyba orezania v dvojstranovom režime TPdfView: obsah stránky presakoval cez žľab, pretože obe dlaždice ľavej a pravej stránky zdieľali jeden obdĺžnik orezania. Každá dlaždica sa teraz orezáva nezávisle, takže obsah zostáva v rámci hraníc svojej stránky
- Vylepšené chybové hlásenie ukážky Delphi, keď sa DLL PDFium nedá nájsť, poskytujúce jasnejšiu výzvu s očakávaným názvom DLL a umiestnením