PDFiumPas Kiadási megjegyzések
A PDFiumPas felhasználó által látható funkcióinak, javításainak, megjelenítői fejlesztéseinek, dokumentumkészítésének, PDF/A kimenetének, renderelésének és dokumentációs frissítéseinek verziótörténete
Legutóbbi kiadás
- Legújabb verzió: 2.57.0; Kiadás dátuma:
Version 2.57.0
Hozzáadva (Added)
- A
TPdfThumbnailView.Orientationtámogatja a függőleges és vízszintes bélyegkép-elrendezéseket, miközben megőrzi a meglévő függőleges alapértelmezést - A
FirstVisiblePageIndex,LastVisiblePageIndexésEnsureCurrentPageVisibleegyesen alapuló oldalindexekkel teszi elérhetővé és vezérli a bélyegkép-nézetablakot
Módosítva (Changed)
- A
CurrentPageIndexmódosítása mostantól görgeti a kiválasztott bélyegképet a nézetbe mindkét tájolásban - A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a tájolási alapértelmezéseket, váltást, látható tartományokat és a kiválasztott oldal láthatóságát
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.0 verziót jelentik
Version 2.56.2
Módosítva (Changed)
- A
HighlightSearchText,AddSearchTextHighlightésClearHighlightmostantól csak a hozzáadott vagy eltávolított keresési tartományok eszköztéglalapját érvényteleníti a teljes megjelenítő újrarajzolása helyett - A kiemelések cseréje ugyanazokra az egyezésekre vagy duplikált egyezések hozzáfűzése már nem ütemez felesleges újrarajzolást
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a korlátozott érvénytelenítést, idempotens frissítéseket, törlést és az inaktív nézet biztonságát
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.56.2 verziót jelentik
Version 2.56.1
Módosítva (Changed)
- A
TPdfThumbnailViewmostantól újrahasználja a megjelenített bitképeket az oldalakhoz, amelyek újrarajzolások és szomszédos görgetési pozíciók között láthatóak maradnak - A gyorsítótár csak az aktuális látható oldaltartományt őrzi meg, és pontosan akkor szabadítja fel a bejegyzéseket, amikor az oldalak elhagyják ezt a tartományt, a hozzárendelt dokumentum megváltozik, vagy a bélyegkép méretei megváltoznak
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a gyorsítótár-újrahasznosítást, a nézetablak ritkítását, a méret érvénytelenítését, a dokumentum cseréjét és az összetevő megsemmisítését
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.56.1 verziót jelentik
Version 2.56.0
Hozzáadva (Added)
- A
TPdfView.CutSelectedFormTextToClipboardésTPdfView.PasteFormTextFromClipboardUnicode vágólap-szerkesztést biztosít a fókuszált, szerkeszthető űrlap-widgethez
Módosítva (Changed)
- A fókuszált űrlapszerkesztők mostantól a szabványos copy, cut, paste és select-all billentyűparancsokat kezelik a szövegbevitel PDFiumhoz való továbbítása előtt
- A cut és paste elutasítja a csak olvasható mezőket és az űrlap-kitöltési vagy módosítási engedély nélküli munkameneteket, miközben a cut sikeresen másol a kiválasztott szöveg eltávolítása előtt
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a nincs-fókusz, aShortcut oda-vissza és a csak olvasható elutasítási viselkedést
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.56.0 verziót jelentik
Version 2.55.0
Hozzáadva (Added)
- A
TPdfView.AddSearchTextHighlightegy másik keresőkifejezés egyedi egyezéseit fűzi hozzá az aktuális oldal átfedéséhez, lehetővé téve több lekérdezés együttes kiemelését
Módosítva (Changed)
- A
HighlightSearchTexttovábbra is a csere belépési pontja, és mostantól megosztja az additív szkennert, miközben a duplikált karaktertartományokat figyelmen kívül hagyja, aClearHighlightpedig eltávolítja a teljes felhalmozott halmazt - A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a különálló lekérdezések felhalmozását és a duplikált tartományok elnyomását
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.55.0 verziót jelentik
Version 2.54.0
Hozzáadva (Added)
- A
TPdfmostantól elérhetővé teszi a teljes oldalobjektum-pillanatképeket, kötegelt stílusfrissítéseket, affin objektumtranszformációkat, útvonalszegmenseket, vágási útvonalakat és Form XObject gyermekeket - A karaktervizsgálat mostantól tartalmazza a kitöltési és vonalszínneket, a betűtípus nevét és jelzőit, a lazít glyph határokat, a hatékony mátrixokat, a szövegobjektum-fogantyúkat és a karakter-szöveg-index átalakítást
- A jegyzetek mostantól round-trip a szegélygeometriát és a normal, rollover és down megjelenés-folyamokat
- Az új nyers és dekódolt bélyegkép-hozzáférők, az oldal tartalmi és jegyzet transzformációi, valamint a
RenderPageWithMatrixközvetlen fejlett megjelenítési és szerkesztési útvonalakat biztosítanak
Módosítva (Changed)
- Az oldalobjektum-stílusváltozásait mostantól egy kötegként lehet véglegesíteni, így a PDFium csak egyszer regenerálja az oldal tartalmát
- A mátrix-megjelenítés a meglévő zero-copy bitkép útvonalat használja, amikor a cél bitkép elrendezése kompatibilis
Version 2.53.1
Javítva (Fixed)
- A beépített kínai Copy menüfelirat mostantól kódolásfüggetlen Unicode kódpontokat használ, és helyesen jelenik meg a Lazarus buildekben
- A régebbi Delphi eszközláncok lefordíthatják az
FPdfAsyncegységet, ha aWinapi.Windowsegységük kihagyja aGetTickCount64deklarációt
Version 2.53.0
Hozzáadva (Added)
- Új
Tests.ApiCoveragetesztkészlet, amely olyan nyilvános TPdf API-kat fed le, amelyek korábban nulla végpontok közötti tesztlefedettséggel rendelkeztek:GetPageBox/SetPageBox(MediaBox/CropBox olvasás/írás, hiányzó-doboz hibák és mentés round-trip),FlattenPage/FlattenAllPages(visszatérési érték és oldalszám megőrzése),GenerateFormAppearances(no-op nem űrlap dokumentumokon),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 jelszó round-trip-pel — ellenőrzi, hogy a titkosított fájl jelszó nélkül megnyitni nem hajlandó, de azzal igen),DeletePagehatárellenőrzés (0. oldal és a tartományon kívüliEPdfError-t vált ki), és a v2.38.0-ban bevezetettHasContents/HasAuthorjegyzet-őrértékek (ellenőrizve, hogy aDefault(TPdfAnnotation)False-on hagyja őket)
Version 2.52.0
Hozzáadva (Added)
- A
TPdfView.CopySelectedFormTextToClipboarda fókuszált AcroForm-widgeten belüli szövegkijelölést a Windows vágólapra másoljaCF_UNICODETEXT-ként
Módosítva (Changed)
- A oldalszöveg- és fókuszált űrlap-másolási műveletek mostantól ugyanazt a védekező Unicode vágólap-író megosztják, és változatlanul hagyják a vágólapot, amikor a kijelölésük üres
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik az inaktív vagy nem fókuszált űrlap-másolási hívásokat és egy fókuszált űrlap-kijelölés round-tripjét a Windows vágólapon keresztül
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.52.0 verziót jelentik
Version 2.51.0
Hozzáadva (Added)
- A
TPdfView.SelectLineAtkiválasztja azt a vizuális szövegsort, amely egy egyesen alapuló oldalt és egy nullás alapú karakterindexet tartalmaz, egérbevitelek megkövetelése nélkül
Módosítva (Changed)
- A programozatos sorkiválasztás, a tripla kattintásos kiválasztás és a
Shift+HomevagyShift+Endmostantól egy karakterdobozos sorhatár-modellt oszt meg - A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a stabil sorkiválasztást és az érvénytelen oldal- vagy karakterindexeket
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.51.0 verziót jelentik
Version 2.50.0
Hozzáadva (Added)
- A
TPdf.LoadDocumentmostantól egy nullás alapulóIndexésCountablakot fogad el egyTBytespufferbe, lehetővé téve a beágyazott PDF-ek betöltését ideiglenes bájttömb-szelet lefoglalása nélkül
Módosítva (Changed)
- A bájttartomány-betöltés elutasítja a negatív vagy tartományon kívüli ablakokat a dokumentum állapotának módosítása előtt, és megőrzi a meglévő pufferelt és kölcsönzött-puffer élettartam-beállításokat
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a beágyazott PDF-ablakokat és az érvénytelen bájttartomány-argumentumokat
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.50.0 verziót jelentik
Version 2.49.1
Hozzáadva (Added)
- A
TPdfView.FitModemostantól támogatja apfmFitHeightértéket az aktuális oldal látható nézetmagassághoz való illesztéséhez, szükség esetén vízszintes görgetés engedélyezésével
Javítva (Fixed)
- Az illesztési módok mostantól konvergálnak azután, hogy a görgetősáv láthatósága megváltoztatja a kliensterületet, így a fit-page, fit-width és fit-height eredmények konzisztensek maradnak a VCL és LCL között
- A Delphi, Lazarus és C++Builder nézőtesztek mostantól lefedik a
pfmFitHeightkiválasztást és a felsorolási oda-vissza utakat - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.49.1 verziót jelentik
Version 2.49.0
Hozzáadva (Added)
- A nyilvános PDFium kötési felület mostantól minden 470 exportált függvényt lefed az áttekintett fejlécekben, beleértve a mellékletleírások elérését a
FPDFAttachment_SetDescriptionésFPDFAttachment_GetDescriptionsegítségével - A
TPdfmostantól közzéteszi a mellékletleírásokat, a kereszthivatkozások érvényességét, a trailer végi eltolásokat, a security-handler revízióját, a 64 bites memóriatöltést, az aláírás bájttartományait, a webhivatkozás szövegtartományait és a kibővített képadat-, szűrő-, metaadat- és ICC-profil pillanatképeket - Az űrlapsegítők mostantól támogatják a natív mezőfókuszt, a fókuszált választási beállítások lekérdezéseit és frissítéseit, az egérgörgetés továbbítását, az írható tollvonásokat és az űrlapfedőrétegeket a progresszív megjelenítés után
Módosítva (Changed)
- A
FormFieldCount, az űrlapmező-indexek és a tabulátorsorrend mostantól csak widget-jegyzeteket írnak le ahelyett, hogy kapcsolatba nem hozható oldaljegyzeteket tartalmaznának - A fej nélküli
TPdfoldalak mostantól belépnek és kilépnek az űrlapkitöltés oldal-életciklusából, így a natív fókusz és a fókuszált mező API-kTPdfViewnélkül is működnek - A mellékletleírás-exportálások képességkapuval vannak ellátva, így a régebbi PDFium buildet használó alkalmazások továbbra is betölthetik a könyvtárat és felismerhetik a nem elérhető funkciót
Javítva (Fixed)
- A progresszív oldalrenderelés mostantól kirajzolja az űrlapvezérlőket, ha az űrlapkitöltés engedélyezve van
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik az új dokumentumdiagnosztikát, a mellékletleírásokat, a tollvonalakat, az űrlapviselkedést, az aláírás bájttartományokat, a webhivatkozás tartományokat és a kép metaadatokat
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.49.0 verziót jelentik
Version 2.48.0
Hozzáadva (Added)
- A
TPdfMatrixmostantól közzéteszi a gyárakat, a klónozást és hozzárendelést, a véges-állapot és invertálhatósági diagnosztikát, a toleranciaalapú összehasonlítást, a transzlációs hozzáférést, a determináns jelentést és az affin felbontást - A prepend kompozíció, a forgáspont-tudatos forgatás, a méretezés, a ferdítés és a tükrözések, valamint a stretch, contain és cover téglalap-leképezés támogatják a helyi tér és az illesztett elrendezés munkafolyamatait manuális együttható-számtan nélkül
- A nem-mutáló inverz hozzáférés, az inverz pont-leképezés, a vektor- és négyszög-transzformációk, a dinamikus pont- és téglalap-kötegek, a helyben változatok és az egymenetes transzformált határok kiterjesztik az újrahasználható geometriai felületet
Módosítva (Changed)
- A transzláció, a méretezés és a tengely-tükrözések mostantól csak az érintett együtthatókat frissítik az általános affin szorzáson át történő útválasztás helyett
- A téglalap-transzformáció egyszer normalizálja a bemenetét, lehetséges esetben specializált pontos tengelypárhuzamos utat használ, és általános forgatott határokat számít ideiglenes pontrekordok nélkül
- A pont- és téglalap-köteg transzformációk egy eredménytömböt foglalnak vagy újrahasználják a hívó tárolóját, miközben a transzformált pont-határok egy menetben halmozódnak köztömb nélkül
Javítva (Fixed)
- A téglalap-leképezés elutasítja a nulla méretű, nem véges és
Single-túlcsorduló eredményeket, mielőtt használhatatlan mátrixot közzétenne - A Delphi, Lazarus és C++Builder tesztek mostantól ellenőrzik a kompozíció sorrendjét, a forgáspont-invariánsokat, az inverz oda-vissza utakat, az illesztett téglalapokat, a felbontást és a tömeges geometriai viselkedést
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.48.0 verziót jelentik
Version 2.47.0
Hozzáadva (Added)
- Az
FPdfAsyncmostantól strukturált megszakítási okokat és üzeneteket, eltávolítható visszahívás-regisztrációkat, időkorlát-alapú forrásokat, megszakításra várakozást és atomi try-cancel műveleteket biztosít olyan kiterjesztett felületeken, amelyek megőrzik az eredeti API-t - A
TPdfFuture<T>.RunExkonfigurálható válasz-diszpatchot és munkás-prioritást ad hozzá, miközben az eredmény-borítékok közzéteszik a művelet-azonosítókat, az érték-érvényességet, a kivételosztály-neveket, a befejezés-időmérést és az újrahasználható befejezés-segítőket - A
TPdfAsyncExecutoregy újrahasználható fix munkáskészletet ad hozzá négy FIFO prioritási sávval, opcionális korlátozott-sor backpressure-rel, megszakítható feladat-fogantyúkkal, időkorlát-tudatos várakozással, feladat-pillanatképekkel, aggregált statisztikákkal és kecses leállítással
Módosítva (Changed)
- Az ismétlődő aszinkron feladatok újrahasználhatják a munkás-szálakat és az O(1) sor-műveleteket ahelyett, hogy minden feladathoz szálat hoznának létre, miközben a szinkronizált befejezés továbbra is elérhető marad az UI gazdák számára
- A végrehajtó és future hibák megőrzik a kivételosztály- és üzenet-diagnosztikát, a megszakítás megtartja az eredeti okát, és a visszahívás-kivételek elkülönítve maradnak a munkás-életciklustól és a leállítástól
- A Delphi, Lazarus és C++Builder tesztek mostantól lefedik a kiterjesztett megszakítási, future-metaadat, feladat-vezérlési, backpressure, prioritás-rendezési, statisztika, hiba és leállítás felületet
Javítva (Fixed)
- A párhuzamos megszakítás-tulajdonosok mostantól determinisztikus első-író eredményt kapnak ahelyett, hogy külön megfigyelési és megszakítási sorozatra hagyatkoznának
- A fő szál üresjárati várakozása feldolgozza a szinkronizált feladat-válaszokat, megakadályozva, hogy egy befejezett munkás véglegesen nem-üresjárati állapotban hagyja a végrehajtót koordinált leállítás közben
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.47.0 verziót jelentik
Version 2.46.0
Hozzáadva (Added)
- Az
FPdfAsn1mostantól közzéteszi az azonosító-osztályokat, a 64 bites magas-címke-szám kódolást és dekódolást, az elemzett TLV rekordokat, a nulla-másolat gyermek-olvasó ablakokat, a típusos primitív dekódereket és a tartalom vagy kódolt érték szeleteket - A DER írók mostantól támogatják a teljes előjel nélküli 64 bites INTEGER tartományt, az érvényesített tetszőleges INTEGER tartalmat, az ENUMERATED értéket, az automatikus UTCTime vagy GeneralizedTime választást, az application és private címkéket, a többértékű SEQUENCE-t és a kanonikusan rendezett SET OF kimenetet
- A
ValidateDereltolás-tudatos érvényesítési hibákat ad vissza, miközben konfigurálható beágyazási, csomópont-szám, tartalom-hossz, hiba-szám, gyökér és opcionális SET rendezési korlátokat kényszerít ki
Módosítva (Changed)
- A DER összefűzés és a többértékű kompozíció egy kimenet-foglalást használ, az író-pufferek közzéteszik a reserve, count, capacity és tulajdonos-átadás műveleteket, és a SET OF rendezés mostantól
O(n log n)egyesítés-rendezést használ - A BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime és GeneralizedTime értékek kanonikus forma-ellenőrzéseket kapnak kódolás, típusos dekódolás vagy érvényesítés során
- A Lazarus futásidejű csomag mostantól exportálja az
FPdfAsn1-t, és a Delphi, Lazarus és C++Builder tesztkészletek ugyanazt a nyilvános DER felületet gyakorolják
Javítva (Fixed)
- A 30-nál nagyobb környezet-specifikus címszámok többé nem kerülnek csonkításra az azonosító alsó öt bitjébe
- A deformált magas-címke azonosítók, a nem-minimális határozott hosszak, az érvénytelen UTF-8, a nem-nulla BIT STRING kitöltés, az érvénytelen idő-mezők, a záró gyökerek és az erőforrás-korlát megsértések determinisztikusan elutasításra kerülnek
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.46.0 verziót jelentik
Version 2.45.0
Hozzáadva (Added)
- Az
FPdfPreflightReportmostantól Info, Warning vagy Error súlyosságot rendel minden problémához, és közzéteszi a súlyosság, állapot, kategória, probléma-kód, keresés, laposítás és szűrés API-kat szabvány- és jelentés-szinten - A preflight jelentések mostantól SARIF 2.1.0, JUnit XML, NDJSON és natív XML formátumot exportálnak megfelelő
To*ésSave*ToFilemetódusokon keresztül a CI, automatizálás és streamelési csővezetékek számára - A stabil SHA-256 jelentés-ujjlenyomatok a forrás-útvonalaktól és a generálási időbélyegektől függetlenül azonosítják az egyenértékű érvényesítési eredményeket
Módosítva (Changed)
- A JSON, CSV, text, Markdown és HTML jelentések mostantól tartalmazzák a súlyosságot és a kibővített állapot-összefoglalókat; a HTML hozzáférhető táblázat-feliratokat és egy állapot-összefoglalót ad hozzá
- A probléma- és szabvány-gyűjtemény építés geometriai kapacitás-növekedést használ, a lekérdezés eredményei elő-méretezettek, a JSON escape egy korlátozott kimeneti pufferbe ír, és minden jelentés-fájl egy közvetlen UTF-8 írót használ
- A probléma-kategória összefoglalók determinisztikus rendezést használnak, az időbélyegek ezredmásodpercet tartalmaznak, a JSON
formatVersion: 2-t hordoz, és a CSV cellák semlegesítik a táblázatkezelő képleteket
Javítva (Fixed)
- A JSON export mostantól megőrzi az érvényes kiegészítő Unicode párokat, és az izolált UTF-16 helyettesítő kód-egységeket helyettesíti ahelyett, hogy deformált skalár-adatokat bocsátana ki
- A HTML export mostantól escape-eli az aposztrófokat, és a szűrt jelentés-nézetek független probléma-tömbökkel rendelkeznek a megosztható változtatható eredmény-tároló helyett
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.45.0 verziót jelentik
Version 2.44.0
Hozzáadva (Added)
- A könyvjelzők és célállomások (destinations) mostantól elfedik a nyitott állapotot, a leszármazottak számát, a műveleti célokat, a célállomás nézeti módjait és legfeljebb négy nézeti paramétert
- A
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissionésUserHasPermissiontípusos dokumentum-vizsgálati pillanatképeket és engedély-lekérdezéseket biztosítanak - Az
ExtractThumbnail(PageNumber)a kért oldalt az aktív oldal megváltoztatása nélkül rendereli, az RFC 3161 időbélyeg-eredmények pedig elfedik a házirendet, a generálási időt és a nonce részleteket
Módosítva (Changed)
- A könyvjelző-, JavaScript-, metaadat-, célállomás- és bélyegkép-útvonalak ellenőrzött kétmenetes puffereket, mértani gyűjteménynövekedést és ciklusbiztos bejárást használnak
- A mentés utófeldolgozása az aktív katalógust, az oldal fát és a nyitott műveletet az aktuális xref revízión keresztül oldja fel, gyorsítótárazza a dekódolt objektumfolyamokat, és lexikális határokkal vizsgálja a PDF szótárakat
- A megosztott PDF elemzés mostantól pontos objektumfejléceket, generációkat, szótárkulcsokat, folyamhosszakat, prediktor-geometriát, egész tartományokat, valamint megjegyzés-, literális karakterlánc- és hexadecimális karakterlánc-határokat követel meg
- Az RFC 3161 válaszellenőrzés mostantól mind a nonce, mind a SHA-256
messageImprintértéket köti, strukturálisan érvényes aláírót követel meg, és szigorú DER hossz-, OID-, INTEGER- és GeneralizedTime-szabályokat alkalmaz
Javítva (Fixed)
- Az inkrementális dokumentumok a továbbiakban nem választanak inaktív duplikált katalógusokat vagy hibás formátumú hivatkozási utótagokat alapértelmezett nyitott művelet hozzáadásakor
- A hosszú formájú DER hosszúságú időbélyeg-tokenek megőrzik a teljes kódolt tokent, miközben a hibás formátumú CMS opcionális mezősorrend és az üres aláíró-halmazok elutasításra kerülnek
- A tiszta Delphi buildek mostantól igazított-biztonságú bájtmásolásokon keresztül írják a PAdES nonce seed mezőit, és a pontos natív mutatótípussal adják át az XFA válaszbájtokat
Version 2.43.0
Hozzáadva (Added)
- Az XFDF mező- és annotációs rekordok mostantól jelenléti jelzőket fednek fel, amelyek megkülönböztetnek egy kihagyott XML értéket egy explicit üres értéktől
Módosítva (Changed)
- Az XFDF importálás elfogad névtér-prefixumos elemeket és attribútumokat, vegyes szöveg és CDATA tartalmat, entitáshivatkozásokat és szóközjelentőségű értékeket, miközben elutasítja az érvénytelen Unicode skaláris hivatkozásokat
- Az XFDF importálás és exportálás indexelt mezőegyeztetést és korlátozott mértani puffereket használ, javítva az áteresztőképességet és a csúcsfoglalási viselkedést mélyen beágyazott űrlapok, nagy annotáció-gyűjtemények, tintalista-jegyek, csúcsok és jelölő-négyszögek esetén
- A PDF/A és PDF/UA ellenőrzés korlátozott növekedést használ nagy oldal-, folyamat-, szerkezetnév- és RoleMap gyűjteményekhez; a PDF/UA RoleMap feloldás mostantól követi a közvetlen tömböket és a pontos generációjú indirekt név- vagy tömbobjektumokat
Javítva (Fixed)
- Az XFDF oda-vissza konverziók mostantól megőrzik a mélyen beágyazott mezőútvonalakat, az explicit üres mezőértékeket, az explicit üres annotációtartalmakat, valamint a hiányzó és üres tartalmak közötti különbséget
- Az érvénytelen memóriapuffer-betöltések és a tartományon kívüli oldalhozzárendelések elutasításra kerülnek részleges dokumentum- vagy oldalállapot hátrahagyása nélkül, és egy sikertelen natív oldal-újratöltés megőrzi a korábban aktív oldalt
- A nagy jelölt-tartalom-azonosítók és aláírás-metaadat pufferek korlátozottak és ellenőrzöttek a foglalás vagy a natív hozzáférés előtt
Version 2.42.0
Hozzáadva (Added)
- A
TPdfMatrixmostantólInvert,TryInvert,TransformPointésTransformRectmetódusokat biztosít koordinátaleképezéshez, találatteszteléshez, normalizált határokhoz és explicit szinguláris mátrixkezeléshez - A
TPdf.WrapTextkapott egyBreakLongWordstúlterhelést, amely szóköz nélküli CJK és egyéb szövegeket oszt fel, miközben az érvényes UTF-16 helyettesítő párokat együtt tartja - A
TPdfAnnotation.AttachmentPointSetsminden négyszöget elfed a többsoros jelölő annotációkban, miközben a meglévőAttachmentPointsmező az első halmaz álneve marad
Módosítva (Changed)
- A szövegkinyerés, az olvasható-tartalom építés, a szókeresés és a beszélt-szöveg eltolás-leképezés mostantól korlátozott foglalást és bináris keresési útvonalakat használ, csökkentve az ismételt foglalásokat és a lineáris vizsgálatokat nagy oldalakon
- Az ASN.1 szerializáció és a titkosított PDF előállítás mostantól mértani kimeneti puffereket használ; a titkosított-objektum sorrend
O(n log n)rendezést használ, az xref sorok pedig közvetlenül a végső pufferbe íródnak - A
WrapTextmegőrzi a CR, LF és CRLF sorhatárokat, és egy natív mérési objektumot újrahasznál a teljes művelethez - Az XFDF importálás és exportálás minden jelölő-négyszöget megőriz; az importálás emellett RGB/belső színeket alkalmaz, és a decimális koordinátákat a folyamat területi beállításától függetlenül elemzi
Javítva (Fixed)
- A régi hívók újra frissíthetik az annotációtartalmat és a szerzőt nem üres karakterláncok hozzárendelésével, anélkül, hogy az újabb
HasContentsésHasAuthorsentinel értékeket beállítanák - Az explicit üres annotációs karakterláncok mostantól érvényes nullával lezárt natív puffert használnak, így a
/Contents,/Tés egyéb opcionális szövegkulcsok törlése többé nem ad át nil mutatót a PDFium számára
Version 2.41.0
Módosítva (Changed)
- A Preflight report
SaveJsonToFile,SaveMarkdownToFileésSaveTextToFilemetódusai mostantól UTF-8 kódolást használnak Delphi alatt (illeszkedve a meglévőSaveHtmlToFileeljáráshoz) a rendszer ANSI kódlapja helyett; a fájlútvonalakban, ajánlásokban és hatókör-megjegyzésekben szereplő nem-ASCII karakterek korábban hibásan jelentek meg Delphi alatt, amikor ezeken a metódusokon keresztül lettek elmentve - A
SaveCsvToFilemostantól BOM előtaggal rendelkező UTF-8 kódolást ír, így az Excel for Windows automatikusan észleli a kódolást; a BOM nélkül az Excel a UTF-8 CSV fájlt 1252-es kódlapként kezeli, és elrontja a nem-ASCII karaktereket
Javítva (Fixed)
- Az
ExtractImagesdemó elszivárogtatta a gyorsítótárazottTBitmapobjektumokat azFExtractedImageslistában, amikor az űrlapot bezárták anélkül, hogy előbb kifejezetten törölték volna azokat; az űrlap mostantól felülírja aDestroymetódust aClearExtractedImagesmeghívásához, felszabadítva minden gyorsítótárazott bitmapet
Version 2.40.0
Módosítva (Changed)
- A
TPdf.RenderPage(HDC, ...)mostantól elfedi az FPU/SSE kivételeket aFPDF_RenderPagehívás körül, megegyezve aTPdfView.RenderPage(HDC)viselkedésével (javítva a v2.25.0 verzióban) és minden bitmappel visszatérő renderelési belépési ponttal; aTPdf-szintű közvetlen DC túlterhelés korábban elfedetlenül hagyta az FPU kivételeket a D12 előtti fordítóknál
Javítva (Fixed)
- A
ColorToARGBmostantól teljesen átlátszó pixelt (alpha 0) ad vissza aclNoneésclDefaultértékekre, ahelyett, hogy a sentinel értéket szó szerinti RGB színként kezelné; a korábbi viselkedés sötét, szinte átlátszatlan kitöltést eredményezett, amikor a hívóclNoneértéket adott át „nincs szín” elvárással
Version 2.39.1
Javítva (Fixed)
- Az explicit PDF 1.3 mentések mostantól eltávolítják a
/SMask /None,/AIS falseés/TK truebejegyzéseket, amelyek csak az eredeti grafikai állapotot ismétlik, miközben továbbra is elutasítják a nem-alapértelmezett átlátszósági állapotot
Version 2.39.0
Módosítva (Changed)
- A
CreatePDFésImageToPDFmostantól megerősített mentési célhelyeket használ, és csak akkor jelent sikert, ha aSaveAssikeresen befejeződik - A
BatchExport,PDFtoJpgésSplitPDFmostantól egyedi kimeneti könyvtárakat foglal le, így az ismételt futtatások és az azonos nevű bemenetek megőrzik a korábbi eredményeket - A
SplitViewmostantól egyszer végzi el a keresési körbefutást anélkül, hogy rejtett oldali állapotot hagyna hátra megszakítás vagy találat hiánya után, valamint megszakítja a befejezetlen nyomtatási feladatokat a részleges kimenet elküldése helyett
Javítva (Fixed)
- A
MergePDFmostantól elutasítja a hibás formátumú oldaltartomány-tokeneket és a forrást felülíró kimeneti útvonalakat, megszámolja a ténylegesen importált oldalakat, és megtagadja az üres eredmény mentését - A Delphi és C++Builder
Attachmentdemók mostantól az azonos útvonalú mentéseket visszaállítás-biztonságos fájlcsere útján hajtják végre, így a sikertelen átnevezés nem tudja eltávolítani az eredeti PDF fájlt
Version 2.38.0
Módosítva (Changed)
- A
SetAnnotationDatamostantól a/Contentsés/Authorírásokat aHasContents/HasAuthorsentinel értékek mögé zárja aTPdfAnnotationesetében, illeszkedve a meglévőHasName/HasSubject/HasIconmintához; korábban ez a két mező feltétel nélkül íródott, így a csak a szín vagy jelzők frissítésére szolgálóDefault(TPdfAnnotation)rekord hozzárendelése csendben felülírta a megjegyzés meglévő tartalmát és szerzőjét üres karakterláncokkal; aGetPageAnnotationmostantól beállítja a sentinel értékeket, így az olvasás-módosítás-írás ciklus megőrzi az eredeti értékeket
Javítva (Fixed)
- A
GenerateFormAppearancesmostantól azFPDFAnnot_GetFormFieldValuesegítségével olvassa be a jelölőnégyzet/rádiógomb értékét (amely az ISO 32000-1 §12.7.5 szerint a szülő mezőszótárig megy el) aFPDFAnnot_GetStringValue(Annot, 'V', ...)helyett (amely a widget szótárt olvassa); a widget általában nem tartalmaz/Vértéket, így az/ASsoha nem szinkronizálódott a bejelölt állapothoz, és a lapított jelölőnégyzet/rádiógomb bejelöletlenként jelent meg
Version 2.37.0
Módosítva (Changed)
- A
ParseTsaUrlmostantól a portot1..65535közé korlátozza a feldolgozás után; a túlméretezett portérték egyébként aDWORDcsonkítás miatt körbefutna, és érvényes portra eshetne - Az XFDF
ParseFieldmostantól elfogad egy mélységi paramétert (alapértelmezett értéke 0, felső korlátja 64), és a korlátnál üres mezőt ad vissza, így a rosszindulatúan beágyazott 100 000 mélységű<field>lánc már nem tudja túlcsordítani a vermet
Javítva (Fixed)
- A TSA HTTP kérés mostantól védelmet nyújt az üres kéréstörzs ellen, mielőtt átadná a
@ReqDer[0]értéket aWinHttpSendRequestmetódusnak; egy nulla hosszúságú dinamikus tömb dereferálása földelés nélküli mutatóhoz férne hozzá; aBuildTimeStampReqmindig nem üres SEQUENCE-t ad vissza, de a hívás helye mostantól védi a szerződést
Version 2.36.0
Módosítva (Changed)
- A TSA HTTP kérések mostantól kifejezett
Content-Lengthfejlécet küldenek aContent-TypeésAcceptfejléceken kívül; a WinHttp a teljes hosszból állítja ezt elő, de néhány RFC 3161 proxy megköveteli a kifejezett fejlécet, és anélkül elutasítja a kérést411 Length Requiredhibával - Az XFDF exportálás mostantól elveti a C0 vezérlőkaraktereket (a már elfedett TAB/LF/CR karaktereken kívül) ahelyett, hogy érvénytelen fordított perjel-hex sorozatot bocsátana ki; a korábbi
\-01Felfedés nem érvényes XML (a fordított perjelnek nincs különleges jelentése az XML-ben), így bármely megfelelő olvasó hibásnak minősítette és elutasította volna a dokumentumot - Az
InjectAssociatedFilesmostantól kiírja a/Subtypeértéket az EmbeddedFile folyam szótárába, ha a hívó megadja aTAssociateFile.MIMETypeértéket; a mező deklarálva és dokumentálva volt, de a beillesztő korábban mereven kódolta a/Type /EmbeddedFileértéket és figyelmen kívül hagyta azt (az ISO 32000-2 §7.11.4 engedélyezi a/Subtypehasználatát a folyamon)
Javítva (Fixed)
- Az XFDF importálás kihagyta az első tartalom bájtot a UTF-8 BOM után, és az első bájtot, ha nem volt jelen BOM: a
BytesToAnsi(Bytes, 4, ...)(BOM) és aBytesToAnsi(Bytes, 1, ...)(BOM nélkül) egymástól eltérő kezdő eltolásokat használt, mert aBytesToAnsi0-alapú tömbindexet vesz igénybe; a hívások mostantól a3és0értékeket használják - Az
ExtractSignatureValuemetódusnak két függő-ifbehúzási hibája volt, ahol azR.Position:= CNfeltétel nélkül lefutott az opcionáliscertificates [0]éssignedAttrs [0]ágaknál; az ágak mostantólbegin/endblokkba vannak zárva, így a pozíció csak akkor lép előre, ha az opcionális TLV valóban beolvasásra került (ugyanez a hibatípus lett javítva azAddSignatureTimestampToCmsmetódusban a v2.22.0 verzióban)
Version 2.35.0
Módosítva (Changed)
- A
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailésTFPDFAvail_IsFormAvailmostantólhints: PFX_DOWNLOADHINTSparamétert vesz fel avar hints: FX_DOWNLOADHINTShelyett, így a dokumentáltnullptrcsak-lekérdezés mód (az aktuális elérhetőség ellenőrzése újabb adatok kérése nélkül) elérhetővé válik Delphi alól; a PDFium fejléc kifejezetten engedélyezi ahintsnull értékét, míg a korábbivarkötés ezt lehetetlenné tette - A
TFPDF_SetSystemFontInfomostantólpFontInfo: PFPDF_SYSFONTINFOparamétert vár avar pFontInfo: FPDF_SYSFONTINFOhelyett, így a hívók átadhatnaknilértéket, amellyel jelzik a PDFium számára, hogy ne használja tovább a korábban regisztrált rendszerszintű betűkészlet-interfészt (ez a dokumentált letiltási útvonal) - A
TPdfThumbnailView.Paintmostantól ugyanazzal a képlettel számítja ki aVisibleRowsértékét, mint azUpdateScrollBarRange(ClientHeight div RowHeight), így a kirajzolt sorok száma megegyezik a görgetősáv oldalszámával; a korábbi csak-rajzolási képlet ((ClientHeight - FMarginY) div RowHeight + 1) egy sorral eltérhetett a határmagasságoknál, ami felesleges renderelést okozott egy oldalon kívüli soron, vagy kihagyta az utolsó látható sort
Version 2.34.0
Hozzáadva (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— magas szintű API, amely elmenti a dokumentumot, majd titkosítja azt PDF 2.0 AES-256-CBC (V=5/R=5/R=6) eljárással; egy felhasználói/tulajdonosi jelszót, jogosultságokat és revíziót tartalmazóTPdfEncryptOptionsparamétert vár, majd átadja a feladatot azEncryptDocumentByteseljárásnak- StrF literál-karakterlánc titkosítás: az
EncryptDocumentBytesmostantól titkosítja a nem-folyam objektumokban (Info szótár stb.) található(...)literál karakterláncokat AES-256-CBC hexadecimális karakterláncokká, illeszkedve a folyam titkosítási formátumához (16 bájtos IV + PKCS7 titkosított szöveg); a<...>hexadecimális karakterláncokat érintetlenül hagyja
Version 2.33.0
Hozzáadva (Added)
- Teljes dokumentum AES-256-CBC titkosítás-beillesztő az
FPdfEncrypt.pasegységben; azEncryptDocumentBytesegy egyszerű szöveges PDF-et és egy jelszót vár, titkosít minden közvetett folyamobjektumot (16 bájtos IV + AES-256-CBC PKCS7 a fájlkulccsal), frissíti a/Lengthértékét, hozzáfűzi az/Encryptszótárobjektumot, és újjáépít egy teljes klasszikus kereszthivatkozási táblát + lezárást az/Encryptés/IDértékekkel; teljessé teszi a PDF 2.0 titkosítási stacket (AES blokk + GCM + SHA-512/384 + R6 kulcsszármaztatás + szótár + dokumentum-bejárás) EncryptStreamPayloadsegédfüggvény — a PDF 2.0 AES-256 folyamformátum (a titkosított AES-CBC-PKCS7 szöveg elé illesztett IV), amely újra felhasználható a saját objektum-elrendezést kezelő hívók által
Version 2.32.0
Hozzáadva (Added)
- SHA-512 / SHA-384 hash (FIPS 180-4) az új
FPdfSha512.pasegységben; tiszta Pascal megvalósítás, a HotPDF projektből átültetve; a PDF 2.0 R6 jelszó-hash iterációhoz szükséges, amely egy 128 bites mod-3 értéken ágazik el, hogy kiválassza a SHA-256/384/512 algoritmust minden körben; a FIPS-180-4 B.1 ismert válaszok alapján ellenőrizve - PDF 2.0 titkosítási kulcsszármaztatás és Encrypt szótárépítő az új
FPdfEncrypt.pasegységben; megvalósítja az ISO 32000-2 §7.6.4.3 2.B algoritmusát (R6 hash-tánc: AES-128-CBC + iteratív SHA-256/384/512 választás), származtatja a 32 bájtos fájltitkosítási kulcsot, valamint az/O,/U,/OE,/UE,/Permsbejegyzéseket, és felépíti a V=5/R=5/R=6 Encrypt szótárt a/CFM /AESV3értékekkel; a PDFlibPas projektből átültetve, a TBytes stílushoz igazítva
Version 2.31.0
Hozzáadva (Added)
- AES blokkrejtjel primitívek (FIPS 197) az új
FPdfAes.pasegységben; tiszta Pascal megvalósítású AES-128 és AES-256 blokkrejtjelek, valamint CBC módú segédek és egy CSPRNG háttérprogram, a HotPDF projektből átültetve; a FIPS-197 Appendix C.2 / C.3 ismert válaszú tesztek igazolják a helyességet; ez a kriptográfiai alapja a PDF 2.0 titkosítási stacknek - AES-GCM hitelesített titkosítás (NIST SP 800-38D) az új
FPdfAesGcm.pasegységben; megvalósítja a GHASH (GF(2^128) szorzás), GCTR és a GCM AEAD konstrukciót az AES blokkprimitívek tetején; a NIST GCM 1. és 3. tesztesetei (AES-128) pontosan megegyeznek a hiteles titkosított szöveggel és címkével, míg a 13. teszteset (AES-256) oda-vissza működik; a GCM az ISO/TS 32003 mód a PDF 2.0 esetében - PDF/A Level A ParentTree és ClassMap integritás-ellenőrzés (ISO 19005-1 §6.8.3); a
pvaiParentTreeMissingjelzi a StructTreeRoot elemet a /ParentTree számfa nélkül, apvaiClassMapUnresolvedpedig jelzi a /C osztályhivatkozást a /ClassMap nélkül
Version 2.30.0
Hozzáadva (Added)
- Társított fájlok beillesztése (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); az újFPdfAssocFilesegység a fájlspecifikációs hivatkozások/AFtömbjeit csatolja a katalógushoz vagy bármely oldalszótárhoz, lefedve mind a nyolc ISO 32000-2 Table 45/AFRelationshipértéket; újra felhasználja azInjectPadesDssMarkersáltal bizonyított növekményes frissítési mintát - PDF/X-6 (ISO 15930-9:2020) támogatás; a
TPdfXConformancehozzáadja apxc6értéket, a beillesztő és az ellenőrző pedig átvezeti azt apdfxid:GTS_PDFXVersionazonosításon; a PDF/X-6 a PDF 2.0-alapú utódja a PDF/X-4-nek a teljes cseréhez - A PDF/A megtiltja a
/Threadműveletet (ISO 19005-1 §6.6.1 fehérlista hiányosság); a tiltott műveletek listája mostantól lefedi a Thread műveletet a Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition és Hide mellett
Javítva (Fixed)
- A PDF/A-4e ellenőrzési útvonal mostantól ugyanazokat a strukturált-címke, MarkInfo és szótörés ellenőrzéseket veszi figyelembe, mint a Level A; a v2.29.0 mentési oldali visszaminősítése lefedte a
PdfAIsLevelE-t, de háromValidatePdfACompliancekapu kizárólag aPdfAIsLevelA-t ellenőrizte, így a strukturált címkével nem rendelkező PDF/A-4e dokumentum csendben átment a vizsgálaton - OCG
/BaseStateteszt elcsúszás: a v2.28.0 PostProcess menet helyesen terjesztette ki az elfogadást az/ONvagy/OFFértékekre (ISO 32000-1 Table 8.70), de a Delphi és C++ tesztek továbbra is elvárták az/OFFelutasítását; a tesztek mostantól egy valóban érvénytelen értéket (/Undefined) használnak, és egy új pozitív teszt rögzíti az/OFFelfogadását - Térbeli
/Subtype /GEOtúlillesztés: aContainsDictionarySubtype('GEO')minden olyan szótárra illeszkedett, amely tartalmazta a tokent, beleértve a nem kapcsolódókat is, mint például a felesleges/ViewerPreferences << /Subtype /GEO >>; az újContainsMeasureDictionarySubtypeemellett megköveteli a/Type /Measurevagy egy kizárólagos Measure testvérkulcs meglétét, így a nem-Measure szótárak már nem váltják ki az ADBE ExtensionLevel 3 követelményt
Version 2.29.0
Hozzáadva (Added)
- PDF/A-4 (ISO 19005-4:2020) támogatás az ellenőrzőben, az XMP beillesztőben és a Pdfium objektummodell-rétegben; a
TPdfAConformancehozzáadja apac4base,pac4féspac4eértékeket; az alapszint a PDF 2.0 (ISO 32000-2) és a korábbi A/B/U szinteket váltja fel az alapszinttel, az F (űrlap) és az E (akadálymentesség) szintekkel; aValidatePdfAbeolvassa apdfaid:part=4XMP csomagot (az alapszint elhagyja a megfelelőségi elemet), aSaveAsPdfAkibocsátja azt, aSignPadesWithPdfApedig elfogadja apac4base-t mint hosszú távú archívumtárolót FPDFBookmark_GetColorkötés — az utolsó kötetlen PDFium nyilvános export (469/469); aTBookmarkmegkapja a könyvjelző/Ctömbjéből (ISO 32000-1 §12.3.3) feltöltöttHasColorésColormezőket; a kötés toleráns betöltést használ, így az exportálás előtti régebbi DLL-ek továbbra is működnek- PDF/E-1 (ISO 24517-1 §5) fejléc verzióellenőrzés
pveiBadPdfVersion— a PDF/E-1 a PDF 1.6-on alapul, így a nem-1.6 fejléceket mostantól megjelöli a rendszer - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— a titkosítás csak%PDF-2.0fejlécen engedélyezett; az/Encrypt-et hordozó 1.x törzs mostantól megjelölésre kerül (korábban ez nem végrehajtható művelet volt) - PDF/R-1
pvriBadMediaBox— minden oldalMediaBoxértékének[0 0 w h]formátumúnak kell lennie; aPdfRHasNonZeroMediaBoxOriginegy területi beállításoktól független ASCII szkenner, amely átugorja a közvetett hivatkozású MediaBoxokat - PDF/A Level A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — az olyan jelenlévő, de hiányos RoleMap, amely leképzetlenül hagyja az egyedi/Sstruktúratípusokat, mostantól megjelölésre kerül, lezárva a meglévő, csak jelenlétet ellenőrzőpvaiRoleMapMissingvizsgálat által hagyott hiányosságot
Javítva (Fixed)
- A
PdfVersionToName(20)a"1.0"értéket adta vissza a"2.0"helyett, megrongálva a katalógus/Versionbejegyzését és az ellenőrző üzeneteket minden PDF 2.0 mentésnél; a formázó mostantól kifejezetten felosztja a fő- és alverziót a>= 20verziókódoknál - Az
FPdfAsn1.pasnegatív-INTEGER kódolója nem tudott lefordulni Delphi 12 alatt (E2015hiba azInteger(-(V<0))sornál), blokkolva a teljes tesztprojektet; javítva azInt64(-Ord(V<0))használatával az előjel-kiterjesztési maszkhoz - A PDF/A tiltott megjegyzéseinek listája mostantól tartalmazza a
/RichMediabejegyzést minden részben (korábban kimaradt; az ISO 32000-1 §12.5.6.35 tiltja azt a PDF/A-ban)
Version 2.28.0
Hozzáadva (Added)
- A
TPdfVersionmostantól tartalmazza apv20értéket a PDF 2.0 (ISO 32000-2) verzióhoz; aDecodePdfVersion(20)apv20értéket adja vissza apvUnknownhelyett, azEncodePdfVersion(pv20)pedig a 20-as értéket bocsátja ki, így a PDF 2.0 dokumentum verziója már nem vész el a visszaolvasáskor, és kifejezetten kiírható
Módosítva (Changed)
- A
DecodeDatemostantól a PDF Reference 3.8.3 szerint opcionális záró mezőkkel rendelkező dátum-karakterláncokat is feldolgoz ahelyett, hogy a teljes 23 karakteresD:YYYYMMDDHHmmSSOHH'mm'formátumot követelné meg; a megfelelő csonkított dátumok, mint például aD:20260712,D:20260712153000ésD:20260712153000Zmostantól elfogadottak; korábban ezeket elutasította egy szigorúLength=23kapu; az időzóna óra-eltolása mostantól a valós UTC-12..UTC+14 tartomány alapján kerül ellenőrzésre a> 23helyett - A
FPdfMeasure.MeasureTextmostantól a betűkészlet nevét FPCAnsiString/ DelphiUTF8Encodeformátumban kódolja, illeszkedve a könyvtár többi FPDF_BYTESTRING hívási helyéhez, ahelyett, hogy pusztaAnsiStringtípuskonverziót használna, amely a nem-ASCII családneveket eltorzította az aktuális kódlapon keresztül
Javítva (Fixed)
- A
TDerWriter.Integernegatív értékű útvonala összeomlott vagy hibás DER-t eredményezett: awhile V <> -1 do V := V shr 8ciklus üresen hagyta azInnertömbötValue = -1esetén (tartományhiba a következőInner[Length(Inner)-1]sornál), és túl sok bájtot produkált más negatív értékeknél; a kódoló mostantól kettes komplementer bájtokat nyer ki előjel-kiterjesztő eltolásokkal, és helyesen áll le, amikor a maradék már tiszta előjel-kiterjesztés; a CMS/PAdES INTEGER mezői pozitívak, így ez csak a negatív értékeket átadó hívókat érinti, de az útvonal mostantól helyes - A
TPdf.GetCharacterOriginésTPdfView.GetCharacterOriginfigyelmen kívül hagyta azFPDFText_GetCharOriginvisszatérési értékét, és hiba esetén inicializálatlan pontot adott vissza; az eredmény mostantól nulla-inicializált, és a sikertelen olvasás a kiindulópontot adja vissza (illeszkedve aGetCharacterRectangleszerződéséhez)
Version 2.27.0
Módosítva (Changed)
- A Delphi, C++Builder és Lazarus
PDFViewerésMultiPageViewerdemók kezelik a keresést, azEnter/F3billentyűket és azEscmegszakítást - A nyomtatás követi a megjelenítő forgatását
- A
ViewerInteractionLabdemók támogatják a gyorsbillentyűket
Javítva (Fixed)
- A nyomtatás megszakítása leállítja a nyomtatási feladatot
Version 2.26.0
Módosítva (Changed)
- A bitmap metódusok render lockot használnak a PDFium-hívások körül
TPdf.RenderPageThumbnailfigyelembe veszi a/Rotateértéket
Javítva (Fixed)
- A sikertelen
GetCharBoxeredményeRect(0,0,0,0)
Version 2.25.0
Módosítva (Changed)
- A szerkesztési metódusok érvénytelenítik a szöveg- és linkgyorsítótárat
- A
RenderPage(HDC, ...)lockot használ és maszkolja az FPU/SSE kivételeket
Javítva (Fixed)
- Az U+FFFF feletti kódpontok U+FFFD értéket adnak
- A
TPdf.Destroytörli aPasswordértéket
Version 2.24.0
Hozzáadva (Added)
- Az indexek ellenőrzése
EPdfErrorkivételt jelez tartományon kívül
Javítva (Fixed)
- Javítva a page-object szivárgás és az
UpdatePagehiánya
Version 2.23.0
Javítva (Fixed)
- A
/BaseStateés/Intentellenőrzése elfogadja a megengedett értékeket - A Geospatial Measure felismerése nem igényli a
/Type /Measurekulcsot
Version 2.22.0
Módosítva (Changed)
- A fit zoom a
ClientWidth/ClientHeightértékeket használja - Az
AddSignatureTimestampToCmskifejezettExceptionhibát ad a hibás CMS mezőre
Javítva (Fixed)
- A CNG handle hiba esetén
NCryptFreeObjectsegítségével felszabadul - Az
EcDsaP1363ToDerelutasítja a nullar/sértéket
Javítva (Fixed)
- Az explicit PDF 1.5–PDF 1.7 mentések most elutasítják a hibás formátumú katalógus-
/OCProperties-struktúrákat, beleértve a hiányzó kötelező/OCGsvagy/Dbejegyzéseket, az érvénytelen alapértelmezett konfigurációs értékeket és a nem tömbös állapotbejegyzéseket
Version 2.21.12
Javítva (Fixed)
- A PDF 1.5–PDF 1.7 mentések most elutasítják a hibás
/OCPropertiesszerkezeteket
Version 2.21.11
Javítva (Fixed)
- Az explicit PDF-verzió-mentések most elutasítják a közvetlen vagy közvetett oldal-
/Annots-bejegyzéseket, amelyek megjegyzés-szótárai nem tartalmazzák a szükséges/Subtypevagy/Rectbejegyzést
Version 2.21.10
Javítva (Fixed)
- Az explicit PDF 1.7 mentések most megkövetelik, hogy a térbeli
/Type /Measure /Subtype /GEOszótárak és Projection-megjegyzések/Extensions /ADBE-t deklaráljanak a/BaseVersion /1.7-tel és a/ExtensionLevel 3-mal vagy újabbal
Version 2.21.9
Javítva (Fixed)
- Az explicit PDF 1.7 mentések most megkövetelik, hogy a RichMedia-megjegyzések és a
RichMediaExecuteműveletek/Extensions /ADBE-t deklaráljanak a/BaseVersion /1.7-tel és a/ExtensionLevel 3-mal vagy újabbal
Version 2.21.8
Javítva (Fixed)
- Az explicit PDF 1.7 mentések most megkövetelik, hogy a PRC 3D-folyamok
/Extensions /ADBE-t deklaráljanak a/BaseVersion /1.7-tel és a/ExtensionLevel 1-gyel vagy újabbal, ahelyett hogy a PRC-t alap PDF 1.7-funkcióként kezelnék
Version 2.21.7
Javítva (Fixed)
- Az explicit PDF 1.4 és régebbi mentések most elutasítják a képes XObject
/SMaskInDatabejegyzéseit, beleértve az explicit0értéket, mert a beágyazott JPEG 2000 lágymaszk-csatornák PDF 1.5-öt vagy újabbat igényelnek
Version 2.21.6
Javítva (Fixed)
- Az explicit PDF 1.4 és régebbi mentések most elutasítják a 16 bites képes XObjecteket, amelyek PDF 1.5-öt vagy újabbat igényelnek, míg a PDF 1.5–PDF 1.7-célok megőrzik
/BitsPerComponent 16képadataikat
Version 2.21.5
Javítva (Fixed)
- Az explicit PDF 1.4 és régebbi mentések most elutasítják a dokumentumkatalógus
/PageLayout /TwoPageLeftés/TwoPageRightértékeit, amelyek PDF 1.5-öt vagy újabbat igényelnek, míg a PDF 1.5–PDF 1.7-célok megőrzik a kért kétoldalas elrendezést
Version 2.21.4
Javítva (Fixed)
- Az explicit PDF 1.3-mentések most elutasítják a dokumentumkatalógus
/Lang-bejegyzéseit, amelyek PDF 1.4-et vagy újabbat igényelnek, míg a PDF 1.4–PDF 1.7-célok megőrzik a nyelvazonosítót
Version 2.21.3
Javítva (Fixed)
- Az explicit PDF 1.3-mentések most elutasítják a dokumentum
/EmbeddedFiles-névfáit, amelyek PDF 1.4-et vagy újabbat igényelnek, anélkül, hogy elutasíták volna a régebbi fájlspecifikációkon keresztül hivatkozott ágyazott fájlfolyamokat
Version 2.21.2
Javítva (Fixed)
- Legutolsó verzió: 2.21.2; Kiadás dátuma:
Version 2.21.1
Javítva (Fixed)
- A hibrid-referencia-érvényesítés most a kiegészítő
/XRefStmbejegyzéseket az azonos revisó klasszikus xref helyőrzői előtt alkalmazza, így a tömörített megjegyzések és más verziopont-kötött objektumok többé nem tűnnek el
Version 2.21.0
Módosítva (Changed)
- Az összes Delphi-, C++Builder- és Lazarus-néző-példa most megnyitható az első parancssori argumentumként átadott PDF-fájlt, a C++Builder- és Lazarus-
MultiPageViewer-példák képernyőn át elérhető az összes kijelölése és másolása gyorsgombokat
Javítva (Fixed)
- Legutolsó verzió: 2.21.3; Kiadás dátuma:
Version 2.20.0
Módosítva (Changed)
- Az összes Delphi-, C++Builder- és Lazarus-néző-példa most egységes gyorsgombokat kínál a megnyitáshoz, kereséshez, mentéshez, nyomtatáshoz, lekícsínyitéshez/nagyitáshoz és lapnavigációhoz, miközben minden
ViewerInteractionLab-változat támogatja az oldalugrásokat, az érvényesített 10–600 %-os manuális közelítést, a tartós interakciós naplókat és a kattintási koordináta körök ellenőrzését
Version 2.19.1
Javítva (Fixed)
- Legutolsó verzió: 2.21.4; Kiadás dátuma:
Version 2.19.0
Módosítva (Changed)
- Legutolsó verzió: 2.21.12; Kiadás dátuma:
Javítva (Fixed)
- A C++Builder
CJKTextLabmostantól az exportált PDFium szerkesztési függvényeken keresztül mér szöveget, aMergePDFpedig elkerül egy kétértelmű VCL üzenet túlterhelést, visszaállítva a tiszta RAD Studio 37 fordítást
Version 2.18.3
Javítva (Fixed)
- A PAdES B-LTA Dokumentum Időbélyeg mostantól felderíthető aláírási mezőként van regisztrálva — egy láthatatlan Widget, amely elérhető az első oldal
/Annotstömbjén és az AcroForm/Fieldstömbjén keresztül (ETSI EN 319 142-1 §5.4.3) —, ahelyett, hogy nem elérhető árva objektum lenne, amelyet az aláírási mezőt felsoroló ellenőrzők nem találnak meg; a meglévő megjegyzések és mezők megmaradnak
Version 2.18.2
Javítva (Fixed)
- A PAdES aláírás és a klasszikus kereszthivatkozás-írás mostantól egyértelmű hibát jelez, ha egy bájt-eltolás meghaladja a rögzített 10 jegyű mező szélességét (~9,3 GB), ahelyett, hogy csendesen hagyná a
/ByteRangehelyőrzőt megíratlanul (érvénytelen aláírást produkálva) vagy túlcsordítaná a 20 bájtos xref-sort (ISO 32000-1 §7.5.4); a kereszthivatkozási folyam kimenet 8 bájtos bináris mezőket használ és nincs érintve
Version 2.18.1
Javítva (Fixed)
- A PAdES aláírás mostantól az első oldal közvetett
/Annots,/AcroFormés/Fieldshivatkozásait teljes objektum fejléc szerint oldja fel (ISO 32000-1 §7.5.3) és a hivatkozás tényleges generációszámával; egy egyszerű részstring-keresés korábban egy hosszabb objektumszámon belül egyezett meg (pl.5 0 Rhelyett15 0 obj-re mutatott), és egy rögzített generáció kihagyta agen>0objektumokat, megrongálva az aláírási mező tömböket vagy érvényes dokumentumokat elutasítva - Ha a katalógus, az első oldal, az
/Annots, az/AcroFormvagy a/Fieldsegy objektumfolyamban van, az aláírás mostantól egy kibővített másolaton újrapróbálkozik, mielőtt hibát jelezne, ahelyett, hogy azonnal visszautasítaná a dokumentumot
Version 2.18.0
Hozzáadva (Added)
- A
ReadPdfVersionInfoegy PDF folyamból jelenti a fejléc verzióját, az effektív mag verziót, a katalógus felülírást és az Adobe fejlesztői bővítmény szintjét
Módosítva (Changed)
- Az explicit PDF 1.3–1.7 mentések mostantól a katalógus, oldal-erőforrás, XFA, kihúzási és fejlesztői bővítmény struktúrákat saját objektumkontextusukban érvényesítik; a titkosított explicit verziójú kimenet és a PDF 1.3 növekményes normalizálás el van utasítva a dokumentum sértetlenségének megőrzése érdekében
- A fájlúton való mentések mostantól egy testvér ideiglenes fájlba írnak, és a célt csak az összes tömörítési, normalizálási és verzióllenőrzés sikeres befejezése után cserélik le
Javítva (Fixed)
- A PDF 1.3 kimenet mostantól a szükséges teljes
/ProcSeterőforrást tartalmazza, és eltávolítja a PDF 1.4 átlátszóság kulcsokat, ha azok csak a PDF 1.3 kezdeti grafikai állapot értékeit ismétlik - A hibrid hivatkozású, xref-folyam és objektumfolyam fájlokat a klasszikus xref tömörítő többé nem írja át, megakadályozva a tömörített objektum bejegyzések elveszítését
- A sztringekben, megjegyzésekben vagy nem kapcsolódó erőforrástérképekben lévő, átlátszóság vagy katalógus funkció kulcsokra hasonlító nevek többé nem okoznak hamis célverzió-hibákat
Version 2.17.0
Hozzáadva (Added)
- A PAdES aláírások mostantól láthatatlan Widget megjegyzésként vannak regisztrálva az első oldal
/Annotstömbjében és az AcroForm/Fieldstömbjében, megőrizve a meglévő megjegyzéseket és űrlapmezőket
Módosítva (Changed)
- A növekményes PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT és PAdES frissítések mostantól megőrzik a forrás kereszthivatkozás reprezentációját: az xref-folyam dokumentumok az ISO 32000-1 §7.5.8.1 által megkövetelt xref-folyam frissítést kapnak, míg a klasszikus dokumentumok xref táblát kapnak
- A kereszthivatkozás eltolások, a
startxref, a/Prev, a PAdES ByteRange értékek és az SHA-256 tartomány feldolgozása mostantól 64 bites pozíciókat és darabolt hashelést használ, lehetővé téve 2 GB-nál nagyobb fájlokat 64 bites fordításokban - A generált írható XMP csomagok mostantól 2048 bájt kitöltést tartanak fenn a záró csomag utasítás előtt
Version 2.16.10
Javítva (Fixed)
- Az objektumfolyam kibontás többé nem idézi vissza azoknak az objektumoknak az elavult másolatait, amelyeket egy növekményes frissítés az objektumfolyamból egy egyszerű definícióba migrált (ISO 32000-1 §7.5.7); a megfelelőségi ellenőrzések és a jelölő befecskendezés korábban az elavult katalógust vagy metaadat szótárt oldotta fel ilyen fájlokon
Version 2.16.9
Javítva (Fixed)
- Free Pascalon azok a szöveges karakterláncok, amelyek bemenete nem érvényes UTF-8, mostantól bájtról bájtra Latin-1 kódolással szélesítve UTF-16BE hex karakterláncként íródnak; a nyers magas bájtok korábban belekerültek egy literál karakterláncba, ami nem legális PDF 1.7 szövegkódolás
- A folyam dekódolás mostantól felismeri az RFC 1950 zlib burkolat nélküli nyers deflate adatokat (sérült írók egyik gyakori hibája), és nyers módban tömöríti ki őket, így a megfelelőségi vizsgálatok nem maradnak csendesen vakok az ilyen folyamokra
Version 2.16.8
Javítva (Fixed)
- A mentés utófeldolgozó útján írt növekményes frissítések mostantól frissítik a második (változó) trailer
/IDelemet az ISO 32000-1 §14.4 által előírt módon; korábban mindkét elem szó szerint másolódott, így a gyorsítótárazási és szinkronizálási eszközök változatlan azonosítót láttak minden frissítés után
Version 2.16.7
Javítva (Fixed)
- A megfelelőségi vizsgálatok által használt folyam-törzs ürítés mostantól megköveteli, hogy a
streamkulcsszót sorvége kövesse (ISO 32000-1 §7.3.8.1); a szó egy literál karakterláncban, például(downstream), korábban az összes következő struktúrát ürítette a következőendstream-ig, elrejtve a valódi szabálysértéseket a bájt szintű ellenőrzések elől - A PDF/X és PDF/E tiltott funkció vizsgálatok ezenkívül ürítik a literál karakterláncokat és a megjegyzéseket (§7.2.2), így egy olyan érték, mint
/Title (see /JavaScript docs)vagy egy megjegyzésbe tett token, többé nem produkál hamisJavaScript,AcroFormvagyLZWDecodetalálatot
Version 2.16.6
Javítva (Fixed)
- A PDF/VT DPM bejegyzések mostantól az írás idején kerülnek érvényesítésre a dokumentált módon: az ISO 16612-2 §6.6 NMTOKEN szabályát vagy az E Melléklet regisztráló-előtag szabályát megsértő, illetve duplikált kulcsneveket a rendszer elutasítja, ahelyett, hogy beírná őket a DPart szótárba — egy szóközt tartalmazó névnév korábban hamis kulcs/érték párra hasadt és megrongálta a szótárat
Version 2.16.5
Javítva (Fixed)
- Egy szótárbejegyzés eltávolítása, amelynek értéke hex karakterlánc (pl.
/Check <...>), mostantól az egész bejegyzést eltávolítja; a befecskendezők korábban egy árva hex értéket hagytak hátra, szintaktikailag hibás szótárat produkálva - Egy bejegyzés eltávolítása, amelynek közvetett hivatkozása sorvégéket tartalmaz a tokenek között (ISO 32000-1 §7.3.10 bármilyen szóközt engedélyez), többé nem hagyja hátra a generációszámot és az
Rkulcsszót
Version 2.16.4
Javítva (Fixed)
- A maximális objektumszám vizsgálat többé nem követeli meg, hogy az objektumfejlécek sor elején kezdődjenek (ISO 32000-1 §7.5.3 bármilyen szóközt vagy elhatárolót engedélyez előttük), így a befecskendezők többé nem oszthatnak ki olyan objektumszámot, amely ütközik egy beágyazott
N G objfejléccel és csendesen rongálja a fájlt; az objektumszámokat az C Melléklet felső korlátja korlátozza - Azok a folyamok, amelyek
/Length-e közvetett hivatkozás, mostantól feloldják a hivatkozott egész számú objektumot és annak értékét használják, if az egyezik a záróendstream-mel; korábban az ilyen folyamokat mintakeresés határolta, ami csonkította azokat a törzseket, amelyek legálisan tartalmazzák azendstreambájtsorát — ami jellemző a beágyazott PDF mellékletekre
Version 2.16.3
Javítva (Fixed)
- A folyam-tömörítés változatlanul átenged kereszthivatkozás-folyam dokumentumokat (PDF 1.5+ fájlok klasszikus
trailerkulcsszó nélkül); az újraépítési útvonal korábban tévesen értelmezte astartxref-et a tábla helyeként és kitalált trailert szintetizált, ami megnyithatatlan fájlt produkálhatott - A tömörítő kihagyja az XMP metaadat folyamokat, így egy PDF/A dokumentum megtartja kötelező szűrő nélküli metaadat folyamát (ISO 19005-1 §6.7.2), és érintetlenül hagyja a külső fájl folyamokat (
/Fa/FFilter-rel) - Az újraépített kereszthivatkozás tábla a dokumentum folyam-kivonatos másolatát vizsgálja, így a bináris folyam tartalom többé nem utánozhat objektumfejléceket vagy növelheti a táblát; az újraépített trailer
/Size-a mostantól a tényleges táblát tükrözi, és az objektumszámokat az C Melléklet felső korlátja korlátozza - Az eredeti kereszthivatkozás tábla megkeresése elfogad CR-only sorvégéket (ISO 32000-1 §7.5.1), és többé nem egyezhet meg az
xrefbetűkkel astartxrefbelsejében; a folyam kulcsszó vizsgálat megkapta az egyébként is használtendstream-farkas védelmet, és most már továbblép az átugrott folyam törzsek után
Version 2.16.2
Javítva (Fixed)
- Az egész szám elemzés a bájt szintű PDF olvasókon mostantól elfogadja az ISO 32000-1 §7.3.3 által engedélyezett explicit
+jelet, és elutasítja az átfutást okozó számjegysorozatokat, így az ellenséges vagy sérült dokumentumok többé nem csomagolhatják be az elemzett hosszakat és eltolásokat félrevezető értékekre
Version 2.16.1
Javítva (Fixed)
- A PDF/UA befecskendező a katalógus
/Langértékét megfelelő PDF szövegként írja; korábban az értéket az XML escape-előn futtatta keresztül, így egy&-t vagy zárójeleket tartalmazó nyelvcímke sérült bejegyzést produkált, és a nem ASCII bemenet nyers UTF-8-ként íródott - A PDF/E
/ISO_PDFEVersionInfo bejegyzés a megosztott szövegkódolót használja, így a nem ASCII értékek legálisak maradnak PDF 1.7-ben - Az XMP csomagok XML escape-elése elveti az XML 1.0-ban tiltott vezérlőkaraktereket, így a sérült forrás dokumentumból másolt metaadat többé nem teheti az egész metaadat folyamot nem jól formázottá
- A PDF–XMP dátum átalakítás érvényesíti, hogy a dátummezők numerikusak és kiegészíti a hiányzó perc mezőt, megakadályozva a hibás formátumú ISO 8601 dátumokat a generált XMP-ben; nem Windows platformokon a tartalék időbélyeg mostantól a napszakot is tartalmazza a puszta dátum helyett
Version 2.16.0
Hozzáadva (Added)
- A folyam dekódolás mostantól rekonstruálja a
/DecodeParmsprediktorokat (PNG prediktorok 10–15 és TIFF 2-es prediktora, ISO 32000-1 §7.4.4.4) a FlateDecode után, tiszteletben tartva a/Colors,/BitsPerComponentés/Columnsértékeket; a prediktorral tömörített objektumfolyamok — egy általános PDF 1.5+ íróválasztás — korábban differenciált bájtokat adtak vissza, így az általuk hordozott objektumok csendesen láthatatlanok voltak a megfelelőségi vizsgálatok és a jelölő befecskendezés számára
Javítva (Fixed)
- A FlateDecode felismerés mostantól a
/Filterértéket névként vagy tömbként elemzi a részstring egyeztetés helyett, így kaszkád szűrőláncok és a szó előfordulásai nem kapcsolódó értékekben többé nem indítanak hamis inflate-t; a nem támogatott láncok visszaesnek a nyers bájtokra, mint korábban
Version 2.15.1
Javítva (Fixed)
- A szótárszkenner mostantól kihagyja a literál karakterláncokat, hex karakterláncokat és megjegyzéseket, miközben egyensúlyban tartja a
<</>>delimitálókat (ISO 32000-1 §7.2.2), így az olyan értékeket tartalmazó szótárak, mint(A >> B)vagy egy záró delimitálóhoz tapadó hex karakterlánc, többé nem csonkulnak a trailer, katalógus és megfelelőségi vizsgálat elemzése során - A literál karakterlánc kinyerés mostantól dekódolja a teljes §7.3.4.2 3-as táblázat escape készletet —
\n \r \t \b \f, oktális\ddd, sorfolytatások és szükségtelen sorvége normalizálás —, az escape betű szó szerinti másolása helyett, helyreállítva a helyes/Producer,/GTS_PDFXVersionés/ISO_PDFEVersionösszehasonlításokat azon írók számára, amelyek oktális escape-t használnak - A jelölő befecskendezők által írt literál karakterláncok mostantól escape-elik a CR, LF és más vezérlőkaraktereket, így az értékek bájtról bájtra túlélik az olvasói oldal sorvége normalizálást
Version 2.15.0
Javítva (Fixed)
- A PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA és PDF/VT jelölő befecskendezők, valamint a PAdES aláírás és DSS útvonalak által írt növekményes frissítések mostantól megőrzik a forrás dokumentum állandó fájlazonosítóját: az első trailer
/IDelem szó szerint átmásolódik az ISO 32000-1 §14.4 előírásának megfelelően, és csak a második (változó) elem frissül; korábban mindkét elem újragenerálódott, így a külső hivatkozások és a hosszú távú érvényesítési munkafolyamatok minden mentés után eltérő dokumentum identitást láttak - A PAdES aláírások, a DSS befecskendezés és a B-LTA Dokumentum Időbélyegek mostantól a forrás trailer
/Infohivatkozását viszik előre (ISO 32000-1 §7.5.6), így a dokumentum tulajdonságai többé nem tűnnek el az olvasó panelekből aláírás után; a Dokumentum Időbélyeg trailer megkapja a/IDtömböt is - A trailer
/Infotartalék a kereszthivatkozás-folyam dokumentumokhoz mostantól helyesen azonosítja az XRef folyam szótárat és megőrzi a hivatkozás generációszámát; korábban sohasem egyezett a megfelelő PDF 1.5+ fájlokon, csendesen elejtve az/Info-t
Version 2.14.4
Javítva (Fixed)
- A
TPdf.SignPadesés aSignPadesBytesáltal írt aláírási szótár/Mdátuma mostantól tartalmazza a kötelezőD:előtagot és aZUTC eltolás jelölőt, amelyet az ISO 32000-1 §7.9.4 ír elő; a szigorú ellenőrzők korábban hibás formátumú dátum karakterláncként utasították el az aláírási időt
Version 2.14.3
Javítva (Fixed)
- A megosztott PDF olvasó szótárkulcs keresései mostantól teljes névtokent egyeztetnek (ISO 32000-1 §7.3.5); korábban egy olyan folyam, amelynek szótárában
/Length1szerepelt/Lengthelőtt (jellemző a FontFile folyamoknál), hibás bájtszámra csonkult, csendesen elvakítva a PDF/A, PDF/UA és más megfelelőségi vizsgálatokat, amelyek betűtípus, CMap vagy metaadat folyamokat olvasnak - Az
/Encrypt,/Root,/Sizeés/Infotrailer keresések többé nem egyeznek meg az ugyanolyan előtagot osztó hosszabb kulcsokkal (pl./EncryptMetadata) - Az objektumfolyam kibontás többé nem bízik meg egy sérült vagy ellenséges
/Nértékben: a nem egész értékek mostantól 0-t adnak vissza inicializálatlan szám helyett, és a/First-ből levezetett felső korlát megakadályozza a túlméretes foglalásokat hibás formátumú dokumentumok vizsgálatakor
Version 2.14.2
Javítva (Fixed)
- A PDF/X, PDF/VT, PDF/UA, PDF/E és PDF/R jelölő befecskendezők mostantól változatlanul átengedik a titkosított forrás dokumentumokat, ahelyett, hogy egyszerű szöveges frissítési szakaszokat fűznének hozzájuk; a korábbi viselkedés olyan fájlokat produkált, amelyeknek a legújabb trailerje elvesztette az
/Encryptbejegyzést (ISO 32000-1 §7.5.6), így a megfelelő olvasók a titkosított törzset egyszerű szövegként értelmezték - A
TPdf.SignPades, aSignPadesBytesés azInjectPadesDssMarkersmostantólEPadesCryptohibát jelez, ha a forrás dokumentum titkosított, a sérült vagy ellenőrizhetetlen fájl csendes kibocsátása helyett; az aláírás vagy DSS anyag beágyazása előtt távolítsa el a titkosítást
Version 2.14.1
Javítva (Fixed)
- A
TPdf.SignPadesés aSignPadesBytesmostantól visszatölti az aláírási szótár összes négy/ByteRangemezőjét; korábban az utolsó három mező a nulla helyőrzőjén maradt, így a produkált aláírások üres bájttartományt deklaráltak és az ellenőrzés sikertelen volt a megfelelő érvényesítőkben - A PAdES B-LTA Dokumentum Időbélyeg szótárak megkapják ugyanezt a
/ByteRangevisszatöltési javítást - A
ValidatePadesCompliancemostantól elfogadja a szabványos aláírás elrendezést, ahol a bájttartomány rés a hex/Contentsértéket tartja, és ellenőrzi, hogy a második tartomány szegmens pontosan a fájl végén ér véget; korábban csak a rés nélküli tartományok mentek át a lefedettség ellenőrzésen
Version 2.14.0
Hozzáadva (Added)
- A
TPdf.ExportXFDFaz összes oldal minden űrlapmező értékét és megjegyzését egy XFDF dokumentumba (ISO 19444-1) szerializálja,<fields>-t bocsátva ki a hierarchikus űrlapértékekhez és<annots>-t az összes támogatott megjegyzés altípushoz (szöveg, kiemelés, aláhúzás, áthúzás, hullámos aláhúzás, vonal, kör, négyzet, caret, sokszög, töröttvonal, bélyegző, tinta, szabadszöveg, fájlmelléklet, hang, hivatkozás, kihúzás) - A
TPdf.ImportXFDFvisszaolvassa az XFDF dokumentumot a betöltött PDF-be, újra létrehozza a megjegyzéseket az egyező oldalakon és alkalmazza a mezőértékeket a widget megjegyzéseikre - A
TPdfAnnotationrekord megkapta aName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), sor végpontok, sokszög/töröttvonal csúcsok és tintalistás gesztus mezőket, így az XFDF körforgalmak megőrzik a teljes megjegyzés metaadatot - Új
XfdfLabminta a Delphi, C++Builder és Lazarus demo készletekben bemutatja az export/import körforgalmat
Version 2.13.6
Javítva (Fixed)
- A
ValidatePdfAmostantól/Type /Metadatavagy/Subtype /XMLnélküli katalógus/Metadatafolyamokat hiányzó XMP metaadatként kezeli apvaiMissingXmpMetadatakódon keresztül - A PDF/A preflight jelentések mostantól
pvaiMissingXmpMetadata-t Metaadat kategóriába sorolják, és katalógus/Metadatafolyamot ajánlanak/Type /Metadata,/Subtype /XML, szűrő nélküli XMP éspdfaidjelölőkkel
Version 2.13.5
Javítva (Fixed)
- A
ValidatePdfAmostantól jelenti a megjelenési szótár nélküli Widget megjegyzéseket és a PDF/A-2 / PDF/A-3 megjegyzéseket, amelyek megkövetelik, de nem rendelkeznek/AP-vel, apvaiAnnotationApDictViolationkódon keresztül - A PDF/A preflight jelentések mostantól
pvaiAnnotationApDictViolation-t olyan tartalomként kategorizálják, amelyet a jelölő befecskendezés nem tud javítani
Version 2.13.4
Javítva (Fixed)
- A
ValidatePdfAmostantól jelenti azokat a PDF/A-2 és PDF/A-3 beágyazott képeket, amelyek/Ivagy/Interpolateértéketrue, apvaiImageDictionaryViolationkódon keresztül, kiterjesztve a meglévő Image XObject szótár lefedettségét - A PDF/A preflight jelentések mostantól
pvaiImageDictionaryViolation-t olyan tartalomként kategorizálják, amelyet a jelölő befecskendezés nem tud javítani
Version 2.13.3
Javítva (Fixed)
- A
ValidatePdfAmostantól jelenti azokat a PDF/A-1 beágyazott képeket, amelyek/LZWDecodevagy rövidített/LZWszűrőket használnak tartalomfolyamokon belül, apvaiInlineImageLzwForbiddenkódon keresztül, kiterjesztve a meglévő PDF/A-2 és PDF/A-3 beágyazott képes lefedettséget - A beágyazott kép szűrő szkenner mostantól átugorja a vezető erőforrás neveket, mint például
/GS1, elkerülve a leállásokat a szélesebb PDF/A-1 tartalomfolyamok vizsgálatakor
Version 2.13.2
Hozzáadva (Added)
- A
TPdf.SetFocusedFormFieldTextaFORM_ReplaceSelectionsegítségével szöveget ír az aktuálisan fókuszált űrlapmező szerkesztési pufferébe, szimmetrikusan aFocusedFormFieldText-tel. Az AcroForm szöveges/kombó mezőknél az érték a/V-re kerül fókuszvesztéskor és megmarad; XFA szöveg mezőknél az írás csak az in-memory pufferbe kerül (a PDFium nem tesz közzé nyilvános API-t az XFA értékek visszaegyeztetéséhez az adathalmaz csomagba, így mentés után nem marad meg) - A JavaScript host platform mostantól csatolva van, amikor a V8 motor elérhető, függetlenül attól, hogy a dokumentum XFA-e — így a beágyazott AcroForm JavaScript (dokumentum szintű szkriptek, mező számítások,
app.alert) is futhat. Korábban azm_pJsPlatformcsak XFA dokumentumokhoz volt kötve, hagyva az AcroForm JS-t csendesen letiltva
Módosítva (Changed)
- A JavaScript platform csatolás mostantól független az XFA döntéstől az
InitializeFormFill-ben — azm_pJsPlatformtábla felépül, amikor aV8FeaturesAvailableigaz, az XFA verzió/visszahívás bekötése után alkalmazva, ahelyett, hogy beágyazva lenne bele
Version 2.13.1
Hozzáadva (Added)
- Új host események teszik felszínre azokat az információkat, amelyeket a v2.13.0 form-fill visszahívások korábban elnyeltek:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Minden esemény alapértelmezés szerint a meglévő no-op viselkedést tartja fenn, ha nincs hozzárendelve, így a meglévő hostok nem érintettek - A
TPdf.XfaFormPacketscsak olvasható tulajdonság egyetlen pillanatfelvételt ad vissza az összes XFA csomagról (TXfaPacketList), beteljesítve a korábban deklarált, de fel nem használtTXfaPacket/TXfaPacketListtípusokat - Az XFA-specifikus PDFium hibakódok,
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUT, mostantól kötve vannak és aLastPdfError-on keresztül felszínre kerülnek, lecserélve az általános “Unknown error” üzenetet az XFA betöltési/elrendezési hibáknál
Módosítva (Changed)
- Az
FFI_DoURIActionWithKeyboardModifiermostantól azOnXfaUriAction-t konzultálja, mielőtt végrehajtana egy URI-t egy XFA mezőből, vétójogot adva a hostnak (biztonság: egy rosszindulatú XFA mező korábban feltétel nélkül indíthatott tetszőleges URL-eket). A hozzá nem rendelt kezelők megőrzik a korábbiShellExecuteWalapértelmezést - A
DecodeFormFieldTypemostantól az XFA mező típusokat azIsXfaFormField-en keresztül irányítja, explicit 8-ágú eset helyett, így az enum sorrendeltolás alapján van igazítva azFPDF_FORMFIELD_XFA_*-hoz
Javítva (Fixed)
- A
ValidatePdfAmostantól jelenti a PDF 1.5 kereszthivatkozás folyamokat vagy objektumfolyamokat használó PDF/A-1 állításokat az újpvaiPdfA1Pdf15Structurejelzéssel, miközben továbblép az objektumfolyamokat PDF/A-2 és PDF/A-3 esetén
Version 2.13.0
Hozzáadva (Added)
- Teljes XFA (XML Forms Architecture) futásidejű támogatás: a
TPdf.InitializeFormFillmostantól bekötözi mind a 14 version-2FPDF_FORMFILLINFOvisszahívást (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), és csatol egyIPDF_JsPlatform-ot, hogy egy XFA-képespdfium.dllrenderelhessen és szkriptelhessen dinamikus XFA űrlapokat - Új
Lib\FPdfXfa.pasegység, amely deklarálja az XFA konstansokat (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) és aTXfaPacket/TXfaSaveFormattípusokat, amelyek korábban csak megjegyzésekben szerepeltek - XFA statikus csomag olvasó a
TPdf-en:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNamepluszGetXfaTemplate/GetXfaDatasets/GetXfaConfigkinyeri az XFAtemplate,datasetsésconfigcsomagokat nyers XML-ként, anélkül, hogy XFA-képes futásidőre lenne szükség — hasznos megfelelőségi ellenőrzéshez és adatmigrációhoz - Képességszondák: globális
XfaFeaturesAvailable, és dokumentumonkéntiTPdf.XfaRuntimeAvailable(hogy azFPDF_LoadXFAténylegesen sikerült-e) ésTPdf.XfaStaticReadable(hogy a csomag olvasó exportok feloldódnak-e) - A
TPdfFormFieldTypekiegészült afiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextFieldértékekkel, aDecodeFormFieldTypeleképezi az újFPDF_FORMFIELD_XFA_*értékeket - JavaScript host események a
TPdf-en:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrlésOnXfaRuntimeMissinglehetővé teszik a host számára a JS párbeszédpanelek és az XFA navigáció testreszabását, vagy reakciót, ha egy XFA dokumentum nem tudja futtatni a motort - Új
XfaLabDelphi minta az XFA felismerés, csomag kinyerés, képességszondázás és a futásidő-hiányzó tartalék út bemutatásához
Módosítva (Changed)
- A
TPdf.LoadDocumentmostantól előzetesen átvizsgálja a bemenetet XFA jelölők után (/XFAaz AcroForm szótárban vagy katalógus/NeedsRendering), és ha megtalálja, automatikusan kiválasztja apdfium.v8.dll-t azEnableV8Engine := Truebeállításával, mielőtt a singleton könyvtárat első alkalommal töltené be; ha egyszer egy egyszerűpdfium.dllbe van töltve, a folyamat nem tud váltani, ezért azOnXfaRuntimeMissingjelzi ezt az esetet - A
TPdf.GetPageCountmostantól azt az oldalszámot tükrözi, amelyet az XFA motor azFFI_PageEvent-en keresztül jelent a dinamikus újraszámozás után, nem csupán a statikus PDF oldaifa - Ha egy XFA dokumentum meg van nyitva, de a futásidő nem érhető el, az
InitializeFormFillmostantól rögzíti aversion=1ésxfa_disabled=1értékeket, ahelyett, hogy a 2-es verziót kérné hozzá nem rendelt visszahívásokkal, ami korábban rossz visszahívás mutató hivatkozás kockázatát hordozta
Version 2.12.2
Javítva (Fixed)
- A
ValidatePdfACompliancemostantól jelenti apdfaExtension:schemasnélküli, egyéni XMP névtereket használó dokumentumokat, miközben továbbra is elfogadja a normálpdfaidmetaadatot bővítmény deklarációk nélkül - A PDF/A-3 beágyazott fájl érvényesítés mostantól megköveteli mind a felső szintű
/F, mind az/UFbejegyzéseket a fájlleírói szótárakon, és figyelmen kívül hagyja a beágyazott/EFfolyam kulcsokat ezen nevek ellenőrzésekor
Version 2.12.1
Javítva (Fixed)
- A
ValidatePdfACompliancemostantól dekódolja az escape-elt PDF névtokeneket az egyeztetés előtt a JavaScript, LZWDecode, Type1 és kapcsolódó tiltott nevek esetén, így az obfuszkált, de szemantikailag azonos nevek helyesen kerülnek jelentésre - A PDF/A beágyazott kép ellenőrzések mostantól elutasítják a
/Filterés/Fértékeket, amelyek/LZWDecode-ot, rövidített/LZW-t vagy/Crypt-ot használnak, beleértve a tömb és escape-elt névformákat - A PDF/A érvényesítés mostantól jelenti a tiltott folyam szűrőkkel rendelkező metaadat folyamokat, az OutputIntent ICC profilokat hiányzó vagy inkonzisztens
/Nkomponensszámmal, és a hiányzó vagy érvénytelen/AFRelationshipértékű PDF/A-3 beágyazott fájl leírói szótárakat
Version 2.12.0
Hozzáadva (Added)
- A TSA HTTP kérések mostantól explicit 30 másodperces időtúllépéseket állítanak be minden fázishoz (feloldás/csatlakozás/küldés/fogadás) a
WinHttpSetTimeoutssegítségével, így egy lassú vagy elérhetetlen időbélyeg-hatóság nem blokkolhatja határozatlan ideig az aláírási szálat a WinHttp implicit alapértékeire hagyatkozva - Kérésenként nonce levezetés a PAdES B-T / B-LTA időbélyeg kérésekhez, ha a hívó elhagyja a
TPadesSignOptions.Nonce-t: egy monotonikusa számláló + falióra +GetTickCount64+ folyamat azonosító SHA-256 hajtása helyettesíti a korábbi rögzített$100000000tartalékot, így az ugyanabban az ezredmásodpercben kiadott két kérés többé nem használja ugyanazt a visszajátszás-elleni nonce-t - A
PdfInflatemostantól 256 MiB-ban korlátozza a kicsomagolt kimenetet, megakadályozva, hogy egy zlib-tömörített folyam kimerítse a memóriát ellenséges vagy sérült bemeneten (“zlib bomba”); a korlát bőséges minden valódi PDF folyamhoz
Módosítva (Changed)
- A
TPdfViewoverlay keverés (keresési kiemelés, szövegkijelölés, olvasási szó, kiterjedt kijelölés) többé nem használ pixelenkéntGetPixel/SetPixelV-t; a téglalap mostantól egy 32 bpp off-screenTBitmap-on ésScanLine-on keresztül egy menetben keveredik, kiküszöbölve több ezer GDI kernel-átmenetet festésenként és érzékennyé téve a nagy kijelöléseket - A
FPdfAsn1.TDerReader.ReadIntegermostantól elutasítja a 8 bájtot meghaladó INTEGER mezőket (és a 8 bájtos negatívokat, amelyek előjel bitjeshl >= 64-et igényelne), 0-t visszaadva ahelyett, hogy hibás értéket számítana meghatározatlan eltolású viselkedésen keresztül CMS/PAdES ASN.1 bemeneten - A
ParseTimeStampResptöbbé nem visszhangozza vissza a kérési nonce-tTPadesTimestamp.Nonce-ként; amíg a visszaadott nonce-t ellenőrző TSTInfo bejáró nem érkezik meg, a mező 0 marad, jelezve az “nem ellenőrzött” állapotot, ahelyett, hogy hamis biztonságérzetet adna a hívóknak, hogy az időbélyeg válasz friss
Javítva (Fixed)
- A
PointsToPixelsminden DPI esetén változatlanul adta vissza a bemenetét: az osztóPointsPerInchvolt (a 72 konstans) a szó szerinti 72 helyett, az összecsukva a formulátResult := Points-ra. Minden külső hívó, aki ezen segítőn keresztül végez pontból eszköz-pixelbe méretezést, mostantól a helyesPoints × PixelsPerInch / 72értéket kapja - A
PdfMaxObjNumkevesebbet számolt objektumfolyamokat használó dokumentumokon (PDF 1.5+ ObjStm): az/ObjStm-ben tömörített objektumoknak nincsN 0 objjelölőjük, így a nyers bájt vizsgálat kihagyta őket, és az új objektumokhozMaxObj+1-t foglaló befecskendezők ütköztek volna a rejtett ObjStm tagokkal és csendesen rongálták volna a fájlt. A vizsgálat mostantól először kibontja az objektumfolyamokat, így minden objektumszám látható - Az
InjectPdfAMarkerstöbbé nem kohol hamis PDF/A megfelelőségi állítást titkosított dokumentumon: a PDF/A (ISO 19005-1 §7.1) tiltja a titkosítást, és a befecskendező korábban átmásolta a forrást a jelölőkkel, annak ellenére, hogy a következő érvényesítés elutasítaná. Ha aHasEncryptbe van állítva, a forrás mostantól változatlanul kerül átadásra. A normálTPdf.SaveAsPdfAútvonal már eltávolítja a titkosítást (saRemoveSecurity) befecskendezés előtt, így ez csak a közvetlen hívókat érinti - A
PdfReadStreamBytesmostantól elutasítja a teljes fájlnál nagyobb/Length-et a eredménypuffer foglalása előtt, lezárva egy korai foglalási útvonalat sérült vagy ellenséges közvetett hosszon
Version 2.11.0
Hozzáadva (Added)
- A PDFium
FPDF_FILEHANDLERrekord mostantól a hat visszahívást (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) valódi mezőkként deklarálja megjegyzések helyett, a C fejléc elrendezésével egyezően. Az XFA FFI fájlátviteli visszahívások (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL), amelyekPFPDF_FILEHANDLER-t adnak vissza vagy fogyasztanak, egyelőre nincsenek implementálva a Pascal form-fill rétegben, de a típus most már szerkezetileg helyes bármilyen jövőbeli XFA beküldési/feltöltési útvonalhoz - A PDFium könyvtár betöltése és eltávolítása (
LoadLibrary/UnloadLibrary) mostantól folyamat-globális kritikus szekcióval van serialisálva, így kétTPdfFuture<T>munkaszál (vagy egy munkaszál, amely versenyez a főszállal) nem figyelheti egyszerre aPDFiumLibrary=0-t és nem tud kettősen kötni, sem felszabadítani a DLL-t miközben egy másik szál közepén van a kötésnél - Egy
initialization/finalizationszakasz mostantól azUnloadLibrary-t hívja egység eltávolításkor, biztosítva, hogy azFPDF_DestroyLibrarylefut (munkaszál csatlakozás, V8 izolált megsemmisítése, betűtípus/gyorsítótár lebontása), ahelyett, hogy az operációs rendszerre hagyná a DLL visszanyerését
Módosítva (Changed)
- A
TPdf.SetActivemostantól minden kivételt elnyel a betöltés során (korábban csak azEPdfError-t), így egy folyamhiba vagy hozzáférési jogsértés az űrlap/oldal beállítása soránActive=False-t hagy indetermináns állapotú, részlegesen betöltött komponens helyett - Egységes karakterkódolás a PDFium metaadat kulcs argumentumokhoz: a
TPdf.GetMetaTextmostantól ugyanazt az FPCAnsiString/ DelphiUTF8Encodefelosztást használja, mint aGetViewerPreferenceés a betöltési útvonalak, pusztaAnsiString(Tag)konverzió helyett - A
BytesToAnsi,AnsiToBytes,WriteBytesésWriteStrsegítők deduplikálása: azFPdfCompressmostantól importálja őket azFPdfPdfCommon-ból (aWriteBytesToStream/WriteAnsiToStreamaliasai megszűnnek) és azFPdfPdfa-ban lévő redundáns háromargumentumúBytesToAnsitúlterhelés el lett távolítva. AzFPdfAsn1szándékosan megtartja helyi másolatát, hogy a kriptográfia réteg mentes maradjon a megfelelőségi réteg egységétől
Javítva (Fixed)
- Erőforrás-szivárgás a
TPdf.LoadDocument-ben (fájl, memória,TBytes,TMemoryStream, egyedi folyam) és aTPdf.CreateDocument-ben: ha azInitializeFormFillvagy aReloadPagekivételt dobott azFPDF_LoadDocument/FPDF_CreateNewDocumentsikeres lefutása után, a natívFPDF_DOCUMENTkezelő kiszivárgott, mert azFActivemég False volt ezen a ponton. Minden útvonal mostantól a betöltés utáni beállításttry/except-be csomagolja és sikertelenség esetén lezárja a dokumentumot, a komponenst tisztán inaktívan hagyva - Barátságosabb PDFium DLL betöltési diagnosztika: a
CheckLoadLibraryfelismeri azERROR_BAD_EXE_FORMAT-ot (193) és 32/64 bites architektúra eltérésről számol be, a megfelelőDLLs/Win32vagyDLLs/Win64fordításra mutatva, az általános OS hiba puszta közvetítése helyett. ACheckGetProcAddressmostantól azt jelzi, hogy a telepítettpdfium.dllrégebbi a köteléknél, ha egy szükséges export hiányzik, a puszta OS “procedure not found” szöveg helyett
Version 2.10.1
Javítva (Fixed)
- A PAdES SignerInfo sid szabványosítása: az aláíró azonosítója mostantól az RFC 5652 §5.3 szerinti
issuerAndSerialNumberformát használja (issuer Name + serialNumber, mindkettő szó szerint kinyerve az aláíró tanúsítványának DER-kódolásából), lecserélve a korábbi nem szabványossubjectKeyIdentifier+ teljes tanúsítványos SHA-256 helyőrzőt, amelyet az Adobe Acrobat és más megfelelő ellenőrzők elutasítottak. Egy új TbsCertificate DER bejáró (ExtractIssuerAndSerial) kiolvassa az issuer SEQUENCE-t és a serial INTEGER-t nyers TLV bájtként — a sorozatszámok gyakran meghaladják azInt64tartományt, így a nyers TLV kötelező. AsubjectKeyIdentifierforma csak tartalékként (fallback) marad, ha a tanúsítvány DER-elemzése meghiúsul
Módosítva (Changed)
- A
TCmsSignerId.SerialNumber: Int64lecserélveSerialDer: TBytes-ra (a nyers serialNumber TLV). A CMS-építő a kivágott TLV-t szó szerint beágyazza azIssuerAndSerialNumber-be, elkerülve azInt64túlcsordulást 20 bájtos CA sorozatszámoknál (RFC 5280 §4.1.2.2 felső határ)
Version 2.10.0
Hozzáadva (Added)
- PAdES B-LT hosszú távú ellenőrzés: ha
TPadesSignOptions.Level >= plB_LT, aSignPadesByteshozzáfűz egy olyan növekményes frissítést, amely egy/DSSszótárt hordoz az aláíró tanúsítványával és a teljes köztes lánccal (az önaláírt root az RFC 5652 §10.2.3 értelmében kizárt), plusz a/Extensions /ESICLevel 1 jelölőt (EN 319 142-1 §5.4.2) - PAdES B-LTA archiválási időbélyeg: ha
Level >= plB_LTAés aTsaUrlbe van állítva, egy Document Time-stamp aláírási szótár (/SubFilter /ETSI.RFC3161) kerül hozzáfűzésre, amelynek/ByteRange-e a teljes fájlt lefedi; az ESIC jelölő Level 2-re léptetődik elő. Ezzel kiteljesednek a négy PAdES alapSzint (B-B, B-T, B-LT, B-LTA) - Tanúsítványlánc gyűjtése: a
ResolveWinSignermostantól meghívja aCertGetCertificateChain-t, és feltölti aTPadesResolvedSigner.ChainCertDer-t a köztes CA tanúsítványokkal, így a B-LT/DSS /Certsminden olyan tanúsítványt hordoz, amely az aláírás ellenőrzéséhez külső keresések nélkül szükséges. ACertFreeCertificateContextmostantól kötött, lezárva az aláírásonkénti egy kontextus szivárgást, amelyet a v2.8.0 megjegyzett - PDF/A integrációs munkafolyamat: a
TPdf.SignPadesWithPdfAelőször PDF/A-vá alakítja a dokumentumot (a legmagasabb szint, amelyet a könyvtár ma kibocsát), majd alkalmazza a kért PAdES aláírást — az EN 319 142-1 Annex A.7 által ajánlott hosszú távú archiválási konténer-minta
Version 2.9.0
Hozzáadva (Added)
- PAdES B-T megbízható időbélyeg: a
TPadesSignOptionsmegkapja aLevel,TsaUrlésNoncemezőket. HaLevel >= plB_Tés aTsaUrlbe van állítva, aSignPadesByteskinyeri az aláírás értékét a felépített CMS-ből, RFC 3161 időbélyeget kér fölötte, és a visszaadott TimeStampTokent SignerInfo aláíratlan attribútumként (signature-time-stamp) ágyazza be — a B-T megbízható idő lépés (EN 319 142-1 §6.3 req o) FPdfTsa: többplatformos RFC 3161 kliens —BuildTimeStampReq(1-es verzió, SHA-256 messageImprint az aláírás értéke felett, nonce, certReq=true),ParseTimeStampResp(elfogad PKIStatus 0/1, elutasít 2+, szó szerint kinyeri a TimeStampToken ContentInfo-t) ésRequestTimestamp(egylépéses felépítés+POST+elemzés). APadesTsaAvailablea HTTP backend nélküli platformokon kapuként működik a funkció számáraFPdfTsaWin: Windowsos WinHttp backend, dinamikusan kötve a winhttp.dll-ből (nulla új fordítási függőség; a HTTPS-t a Windows tanúsítványtárára tárgyalják). Tükrözi azFPdfCryptoWindinamikus kötési mintájátFPdfCms: azExtractSignatureValuebejárja egy felépített CMS-t, hogy visszanyerje a nyers aláírás-oktettet (a TSA hash bemenete), és azAddSignatureTimestampToCmsújraépíti a ContentInfo-t egy újunsignedAttrs [1]-gyel (0xA1), amely az időbélyeg attribútumot hordozza. A stage-1 ellenőrző B-T aláírásként ismeri fel az eredményt
Version 2.8.0
Hozzáadva (Added)
- PAdES B-B aláírási verem: négy új, tiszta-Pascal/többplatformos építőkocka (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) plusz egy Windowsos CNG backend (FPdfCryptoWin) teszi lehetővé, hogy aTPdf.SignPades/SignPadesToStreamvégponttól végpontig PAdES B-B aláírást állítson elő. Az aláíró tanúsítvány SHA-1 ujjlenyomattal lesz feloldva a Current User “MY” tárból; az RSA-PSS (ajánlott), RSA PKCS#1 v1.5 és ECDSA mind támogatottak azNCryptSignHash-en keresztül FPdfSha256: önálló FIPS 180-4 SHA-256 (Init/Update/Final + egylépéses segítők). Az FPC 3.2.2 nem tartalmaz SHA-2 egységet, így a könyvtár sajátot tart fenn, hogy minden CMS kódútvonal egyetlenTSHA256Digesttípuson maradjon RTL elágazás nélkülFPdfAsn1: DER kódoló (TDerWriter) és olvasó (TDerReader), amely a SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontextus-specifikus címkéket fedi le, a definite-length kódolással és a CMS által megkövetelt IMPLICIT-címke kezelésselFPdfCms: CAdES SignedData építő (BuildSignedData), amely kibocsátja a PAdES baseline által megkövetelt content-type, message-digest és signing-certificate-v2 aláírt attribútumokat, opcionális signing-time és commitment-type-indication értékekkel. A signedAttrs digest a SET-címkézett (0x31) forma felett kerül kiszámításra, és újra kibocsátásra kerül az IMPLICIT [0] (0xA0) címkével az RFC 5652 §5.4 szerintFPdfCrypto+FPdfCryptoWin: kriptográfiai backend absztrakcióPadesCryptoAvailable/ResolvePadesSignersegítségével, valamint a Windows implementáció dinamikusan kötve a crypt32.dll / ncrypt.dll könyvtárakhoz (nincs új fordítási DLL függőség). Az ECDSA aláírások a Windowsos IEEE P1363 r¦s formából a CMS által megkövetelt DERECDSA-Sig-Valueformára lesznek újrakódolvaSignPadesBytes: bájtszintű aláírás-befecskendezés — lefoglal egy fix szélességű/Contentshex rést, kiszámítja a lefedő/ByteRange-et, hash-eli a dokumentumot, felépíti és beágyazza a CMS-t, majd hozzáfűzi a növekményes frissítést. Az ellenőrő (v2.7.0) PAdES B-B aláírásként ismeri fel a kimenetet
Version 2.7.0
Hozzáadva (Added)
- PAdES strukturális ellenőrző (ETSI EN 319 142-1 V1.2.1): az új
FPdfPadesegység és aTPdf.ValidatePadesmetódus megvizsgálja a/ByteRange-ből elérhető aláírásérték-szótárakat, eléggé behatol a/Contents-ben lévő CMSSignedData-be a CAdES detached alak megerősítéséhez, és felismeri a négy alapSzintet (B-B, B-T, B-LT, B-LTA) plusz a Document Time-stamp szótárakat (/SubFilter /ETSI.RFC3161) - PAdES záradékszintű problémahalmaz: 26
ppei*enum fedi a/SubFilterelfogadhatóságát (adbe.pkcs7.sha1ésadbe.x509.rsa_sha1tiltottként megjelölve), a/ByteRangefájllefedést, a/Certtilalmát, a CMSSignedDataalakját (egy aláíró, detached eContent, verziótartomány), a kötelező aláírt attribútumokat (content-type,message-digest,signing-certificate/v2), a tiltott hash-eket (MD5, SHA-1), a/Reasonvscommitment-type-indicationkölcsönös kizárását (req d), a B-T megbízható idő követelményét, a B-LT/DSS+/Certs+ ESIC Level 1 jelölőt, valamint a B-LTA Document Time-stamp + ESIC Level 2 jelölőt - DSS injektor: a
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreamnövekményes frissítést fűz hozzá, amely egy/DSSszótárt (a/Certs,/OCSPs,/CRLsstreamtömbökkel) és a/Extensions /ESICjelölőt (Level 1 vagy 2) a dokumentum másolatára tesz, megőrizve az eredeti bájtokat — a B-LT/B-LTA ellenőrző-anyag beágyazási lépés (5.4.2 záradék) - Többplatformos, függőség nélküli szakasz: az ellenőrző és az injektor tiszta-Pascal, és minden támogatott IDE-n működik (Delphi, Lazarus, FPC, C++Builder); ehhez a kiadáshoz nincs szükség kriptográfiai backendre, és nem vezetnek be új DLL függőséget
Version 2.6.0
Módosítva (Changed)
- Szabványok közötti deduplikáció: hét további duplikált segédfüggvény (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) el lett távolítva az egyes szabványegységekből és összevonva az
FPdfPdfCommon-ba, körülbelül ~300 sornyi másolás-beillesztéses karbantartási terhet csökkentve - PreflightReport minőség: a PDF/X és PDF/E tartalomosztály problémái, amelyek korábban az általános “missing marker” kategóriába estek, mostantól pontos Content/Metadata/Security kategóriákat és záradékspecifikus javaslatokat kapnak (kb. 15 enum mindkét szabványban)
- PDF/E és PDF/R tesztlefedettség: hat további nulla lefedettségű enum kapott pozitív teszteket (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Lazarus build javítás: a
Tests.PdfVT(egy v2.5.x-ben hozzáadott, csak Delphi DUnitX egység) mostantól ki van zárva a Lazarus projektből, hogy helyreálljon a fordítás
Version 2.5.3
Hozzáadva (Added)
- OutputIntent teljesség (PDF/X-4 §6.2.4): a
pvviOutputIntentSchememegjelöl egy olyan OutputIntent-et, amelynek/Sértéke nem/GTS_PDFX; apvviOutputIntentMissingIdentifieregy hiányzó/OutputConditionIdentifier-t jelöl - PDF/VT-2 Reference XObject kivétel (§6.2.2): a
pvviReferenceXObjectForbiddentöbbé nem váltódik ki egyPDF/VT-2fájl esetén, amely jogszerűen használhat Reference XObjecteket egy X-5g/5pg bázison - MIME határkarakter-ellenőrzés (RFC 2046 §5.1.1): a
vtmviBoundaryInvalidCharmegjelöl egy olyan határt, amelynek karakterei a bchars halmazon kívül esnek, vagy amelynek hossza meghaladja a 70-et
Javítva (Fixed)
- Az
InjectPdfVTMarkersmostantól a mentési beállításokból írja az Info/CreationDateés/ModDateértékeket, így az előállított fájl átmegy aValidatePdfVTCompliance-en hamispvviInfoModDateMismatchnélkül (az injektor korábban átírta az XMP dátumokat, de az Info szótár dátumait elavultan hagyta)
Version 2.5.2
Hozzáadva (Added)
- Info
/ModDatekonzisztencia (§6.3 NOTE 2, PDF/X-4 bázis): apvviInfoModDateMismatchmegjelöl egy Info szótár/ModDateértéket, amely PDF-dátumból XMP-dátumba történő normalizálás után nem egyenlő azxmp:ModifyDate-tel - PDF/VT-2s inline darab megfelelőség (Annex A.2): a MIME ellenőrő mostantól minden inline
application/pdfrészen futtatja aValidatePdfVTCompliance-et, és avtmviInlinePdfNotPdfVT-vel jelöl egy nem PDF/VT törzset
Version 2.5.1
Hozzáadva (Added)
- DParts darabolás ellenőrzése (ISO 16612-2 §6.5 Table 4): a
pvviDPartsBadChunkingmegjelöl egy/DPartstömböt, amelynek nem végső rész-tömbjei nem pontosan 8192 bejegyzést tartalmaznak, vagy amelynek utolsó rész-tömbje a 1..8192 tartományon kívül esik - RecordLevel streamek közötti konzisztencia (Annex A.2): a PDF/VT-2s MIME ellenőrő mostantól kinyeri minden inline PDF
/RecordLevelértékét, és avtmviRecordLevelMismatch-vel jelöli az ellentmondást, kiegészítve a meglévő NodeNameList ellenőrzést - Ismétlődő grafikus objektum tippek (§6.7): a
pvviGtsScopeInvalidValuemegjelöl egy {SingleUse, Record, File, Stream, Global, Unknown} halmazon kívüli/GTS_Scope-ot; apvviGtsScopeRecordWithoutRecordLevelegy/RecordLevelnélküli/Record-ot jelöl; apvviGtsXidNotUuidmegjelöl egy/GTS_XID-et, amely nem RFC 4122 uuid: URI; apvviGtsEnvMissingegy hiányzó/GTS_Env-et jelöl, amikor a/GTS_ScopeStream vagy Global (§6.7.4) - MIME előre-hivatkozás észlelés (Annex A.2): a
vtmviForwardReferencemegjelöl egy olyan inline PDF-et, amely olyan fájlnevet idéz (/EF /F-en keresztül), amelyet egy korábbi melléklet-rész nem vezetett be a streamben
Javítva (Fixed)
- Az
ExtractNodeNameListFromPdfés azExtractRecordLevelFromPdfazFPdfPdfvtMime-ben megoldott egy ismétlődő off-by-one hibát, ahol azAnsiFindKeyáltal visszaadott 1-alapú offset abszolút bájt-offsetként lett kezelve a kibontott PDF-en belül
Version 2.5.0
Hozzáadva (Added)
- PDF/VT dokumentumrész-metaadatok (DPM, ISO 16612-2 §6.6): a
TPdfVTSaveOptionsmegkapta aDpmEntriesésDpmTargetmezőket, így az író egy/DPMszótárt csatolhat a szintetizált DPart csomóponthoz, a kulcsnév ellenőrzésével az Annex E second-class-prefix szabálya, valamint az §6.6 NMTOKEN / egyediség /GTS_Managed-alakra vonatkozó szabályok alapján az ellenőrző oldalán - PDF/VT-2s streamcsere (Annex A): az új
FPdfPdfvtMimeegység biztosítja aBuildPdfVT2sStreamésValidatePdfVT2sStreamfüggvényeket amultipart/mixedMIME burkolathoz, amely inline PDF/VT darabokat plusz melléklet ICC profilokat hordoz, aX-PDFVT-Stream-version: 1fejléc-rendezési szabállyal és a streamek közöttiNodeNameListkonzisztencia-ellenőrzéssel - A
TPdf.ValidatePdfVTmostantól autoritatív JavaScript-akció számlálást végez azFPDFDoc_GetJavaScriptActionCount-on keresztül, kiegészítve a bájtszintű/JavaScriptnévszkennelést
Javítva (Fixed)
- PDF/VT
Trappedhelyesség a PDF/X-4 bázison: aptvUnknownenum érték el lett távolítva (a PDF/X-4 tiltja az/Unknown-t), aptvUnspecifiedíráskor/False-ra normalizálódik (a hiányzó/Trappedszintén tiltott), és egy újpvviTrappedInvalidprobléma jelöli a hiányzó vagyUnknownértéket - A
ValidatePdfVTCompliancemostantól kibontja az objektumstream-eket (PdfExpandObjectStreams) a szkennelés előtt, így egy katalógus, OutputIntent vagy Metadata szótár, amely egy tömörített ObjStm (PDF 1.5+, a PDF/X-4 előállítók esetében tipikus) belsejében van, elérhető a bájtszintű keresések számára
Módosítva (Changed)
- A PDF/VT-1 mostantól örökli a teljes PDF/X-4 tartalom-tiltásokat:
pvviAcroFormForbidden(/AcroFormvagy/XFA),pvviAdditionalActionsForbidden(katalógus/AA),pvviMissingTrimBoxéspvviReferenceXObjectForbidden(Reference XObject, csak X-5g/5pg) - Szabványok közötti deduplikáció: a
BuildDictObj,IccComponentCount, a beépített sRGB ICC profil (GetSrgbIccProfile), aPdfTextStr, aPdfEnclosingObjNum, aPdfDictRefNumés aPdfExpandObjectStreamsazFPdfPdfa/FPdfPdfx/FPdfPdfvtegységekben lévő háromszorosított helyi másolatokból egyetlen kanonikus helyre lettek előléptetve azFPdfPdfCommon-ban; a 3144 bájtos ICC literál mostantól pontosan egyszer létezik a kódbázisban
Version 2.4.0
Javítva (Fixed)
- Az
InjectPdfUaMarkerstöbbé nem dobja el a trailer/Inforeferenciáját cross-reference-stream alapon: a helyiSourceTrailerInfoRef(amelyből hiányzott az xref-stream fallback) ki lett cserélve a megosztottPdfSourceTrailerInfoRef-re (amely a PDF/A másolatból lett előléptetve, amely v2.0.0 óta tartalmazza a fallbacket) - A megosztott
PdfReadStreamBytesmostantól kezeli az indirekt/Length N G Rreferenciákat (a helyi PDF/A másolatból átvéve), így a PDF/VT, PDF/R és PDF/E ellenőrzők többé nem olvassák félre vagy hagyják ki az indirekt Length-et használó eszközök (Acrobat, Ghostscript) által előállított XMP metaadat-folyamokat
Módosítva (Changed)
- Szabványok közötti deduplikáció: a helyi
PdfReadTrailermásolatok aFPdfPdfaésFPdfPdfxegységekben, a helyiSourceTrailerInfoRefmásolatok aFPdfPdfaésFPdfPdfuaegységekben, valamint a helyiPdfReadStreamBytesaFPdfPdfaegységben törlésre kerültek — mostantól a megosztottFPdfPdfCommonverziók érvényesek mindenhol; ez körülbelül 330 sornyi duplikált kódot távolít el, és megszünteti a másolatok szinkronban tartásának karbantartási terheit - A PDF/X teszt-lefedettség pótlása: hét korábban nulla lefedettségű content-class enum kapott pozitív teszteket (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Módosítva (Changed)
- A PDF/A teszt-lefedettség pótlása folytatódik: további három korábban lefedetlen enum kapott pozitív teszteket; a
pvaiForbiddenRenderingIntent(§6.2.9) jelzi a nem szabványos rendering-intent nevet a content streamen belül; apvaiJpeg2000Violation(§6.2.2) jelzi a Part 2 szerinti {1,3,4} tartományon kívüli/NumComponentsértékkel rendelkező JPXDecode képet; apvaiInlineImageLzwForbidden(§6.1.10) pedig jelzi az LZW szűrőt használó beágyazott képet a Part 2-ben
Version 2.2.0
Módosítva
- Kereszthivatkozás-folyam (cross-reference-stream) regressziós tesztek: a meglévő
Validate_XrefStreamTrailer_DetectsConformancemostantól azt is ellenőrzi, hogy a katalógus/Metadatahivatkozása feloldásra kerül-e, és az XMPpdfaid:partbeolvasásra kerül-e egy xref-stream alapon (nem csak a/Root+/ID). Egy újInjectPdfA_XrefStreamBase_RoundTripsteszt védi az injektornak a v2.0.0-ban hozzáadott xref-stream útvonalát. Két szabványok közötti teszt (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) ellenőrzi, hogy a PDF/E és PDF/R ellenőrzők többé nem utasítják el az xref-stream PDF-eket elemezhetetlenként - PDF/A tesztelési adósság lezárása: a
Validate_MinimalPdf_FlagsRequiredMarkersellenőrzi, hogy egy teljesen minimális PDF kiváltja-e apvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataéspvaiMissingXmpDatesjelzéseket — lezárva a szimmetriai szakadékot a PDF/E és PDF/X ellenőrzőkkel, amelyek már rendelkeztek egyenértékű tesztekkel. Két további, korábban lefedetlen felsorolás kapott pozitív teszteket:pvaiUnembeddedFontéspvaiSubsetMissingCidSet
Version 2.1.0
Javítva
- A PDF/E véletlenül kimaradt a v2.0.0-s kereszthivatkozás-folyam javításból: az
InjectPdfEMarkersés aValidatePdfEComplianceis továbbra is azAcceptXrefStreamnélkül hívta aPdfReadTrailerfüggvényt, így a PDF/E injektor némán meghiúsult a PDF 1.5+ kimeneteken (a pdfiumSaveAsCopyalapértelmezése). Mostantól mindkét hívási hely aTrueértéket adja át - A közös
PdfReadTrailerkereszthivatkozás-folyam fallback mostantól tartalmazza azt a/Type /XRefvédelmet, amellyel a PDF/A és PDF/X helyi másolatai már rendelkeztek, így egy nem kapcsolódó szótárra mutató, sérültstartxrefeltolás (offset) tisztán hibát jelez ahelyett, hogy hibásan trailerként kerülne elemzésre - A közvetett hivatkozású
/Langfeloldó aValidatePdfUaCompliance(v2.0.0) függvényben elérhetetlen volt: aPdfFindObjDictcsak a<<szótárakat találja meg, de egy/Langkarakterlánc-objektum szótár nélküli(...)vagy<...>alakú. Ezt egy közvetlen objektumtest-szkennelésre cseréltük, amely megkeresi a karakterlánc-tokent
Módosítva
- Hét felesleges árnyék-segédfüggvény duplikátum (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj), amelyek a közös
FPdfPdfCommonverziók bájt-azonos másolatai voltak, eltávolításra került aFPdfPdfaés aFPdfPdfuaegységekből — a közös verziók mostantól mindenhol ausessegítségével érvényesülnek
Version 2.0.0
Javítva
- Szabványok közötti néma meghiúsulás: a közös
PdfReadTrailersegédfüggvény (amelyet a PDF/UA, PDF/X, PDF/VT és PDF/R jelölő-injektorok és ellenőrzők használnak) mostantól elfogad egyAcceptXrefStreamparamétert, és visszalép a kereszthivatkozás-folyam objektumszótárára, ha nincs jelen atrailerkulcsszó (PDF 1.5+). Korábban a pdfiumSaveAsCopykimenete (amely kereszthivatkozási folyamot használ) minden jelölő-injektor néma meghiúsulását okozta — a forrásbájtok változatlanul lettek átmásolva, és a hívás továbbra is sikert jelzett vissza. A PDF/R-1.0 ellenőrző (amelynek PDF 2.0 alapja mindig egy kereszthivatkozási folyam) gyakorlatilag működésképtelen (no-op) volt. A PDF/A ellenőrző kiforrott megvalósítása átkerült a közös segédfüggvénybe, így minden szabvány részesül a javításból - A trailer szótár szkennelése az
InjectPdfUaMarkersésInjectPdfAMarkersfüggvényekben mostantól a mélységtudatosPdfDictEnd-et használja az egyszerű>>keresés helyett, így a beágyazott szótárat (pl./Encrypt << ... >>) tartalmazó trailer nem szakad meg idő előtt egy záró/Infobejegyzés előtt
Módosítva
- A
TPdf.ValidatePdfUamostantól elnyomja a durva bájtszintűpvuaiFontNotEmbeddedhibajelzést, ha a pontos Pdfium objektummodellpvuaiPdfiumFontNotEmbeddedmár aktiválódott, így az előzetes ellenőrzési jelentés (preflight report) többé nem tartalmaz két szinte azonos „embed your fonts” sort ugyanarra a hibára vonatkozóan - A
pvuaiLangInvalidFormat(§7.2) mostantól feloldja a közvetett hivatkozású/Lang(N 0 R) bejegyzést a hozzá tartozó karakterlánc-objektumra, és ellenőrzi a tartalmat, így a közvetetten hivatkozott nyelvjelölő (language tag) többé nem jelent vakfoltot
Version 1.99.0
Javítva
pvuaiLangInvalidFormat(§7.2) többé nem ad ingyen felmentést a hexadecimálisan kódolt/Langkarakterláncoknak: a UTF-16BE párok (aFE FFBOM-mal) és a csupasz ASCII hexadecimális karakterláncok mostantól visszafejtésre kerülnek, és ugyanazon a BCP 47 nyelvtani ellenőrzésen esnek át, mint a literál(...)karakterláncok, így a hibás formátumú hexadecimális/Langkiszűrésre kerül, míg a megfelelőt (például egy UTF-16BEen-US) már nem fenyegeti a hibás megjelölés veszélye
Módosítva
pvuaiFontMissingToUnicode(§7.21.7) mostantól mentesíti a/MacExpertEncodingbejegyzést is a/WinAnsiEncodingés a/MacRomanEncodingmellett, igazodva a szakasz által felsorolt négy mentesítési feltételhez
Version 1.98.0
Hozzáadva
pvuaiNeedAppearancesTrue(§7.18.4) megjelöli az olyan AcroForm-okat, amelyek/NeedAppearancesjelzője true, így a widget megjelenések nem zárolhatók megbízhatóan, és a segítő technológiák nem tudják őket a struktúrafához társítani. A PDF/A-ellenőrzőből átültetve és az/AcroFormjelenlétéhez kötve a vizsgálati felület szűkítése érdekében
Módosítva
- veraPDF korpusz regresszió: a §7.20 Reference-XObject sikeres+sikertelen párjai és a §7.21.4.2 részhalmaz CharSet/CIDSet sikeres+sikertelen párjai bevezetésre kerültek a
Live_Corpus_ValidatePdfUaMatchesConformance-ba. A §7.21.7 ToUnicode-forbidden-value és a §7.18.6.2 media-clip sikeres mintái álpozitív védelmi ellenőrzésekként is bekerültek (a sikertelen minták olyan szótárelrendezést használnak, amelyet a bájtszintű vizsgálat nem ér el, így csak a sikeres oldal lett bekötve) - A korpusz sikeres vizsgálatainak listája 15 új, garantáltan álpozitív-mentes védelmi ellenőrzéssel bővült, így most már minden aktív
pvuai*bájtszintű és strukturális ellenőrzés tesztelésre kerül a megfelelő mintákkal szemben (korábban a 60 aktív probléma közül csak kb. 30 volt lefedve). ApvuaiLangInvalidFormatvédelme szándékosan kimaradt, mert a bájtszintű ellenőrző konzervatív módon megjelöli a hexadecimálisan kódolt, általa nem dekódolható/Langkarakterláncokat
Version 1.97.0
Javítva
ValidatePdfUaStructureElementsmegerősítése: azEnclosingTableszülő-lánc bejárása mostantól tartalmaz egy lépésszámlálót (amelyet az elemszám korlátoz), így a szintetikus struktúraelem-tömbben előforduló hibás formátumúParentIndexkörkörös hivatkozás nem tudja többé lefagyasztani a hívót. AValidatePdfUaPageContentTaggingmegjelölt tartalom-ID tömbjének lefoglalása mostantól egymillió bejegyzésre van korlátozva, megakadályozva a több gigabájtos lefoglalást egy hibás vagy rosszindulatúMarkedContentIDesetén
Módosítva
- A
pvuaiOrderedListMissingListNumberingfelsorolás dokumentációs megjegyzése mostantól pontosan leírja az ellenőrzés működését: megjelöli azokat azLelemeket, amelyekListNumberingértéke kívül esik az ISO 32000-1 347. táblázatának halmazán (a hiányzó attribútum nincs megjelölve). A korábbi megjegyzés azt sugallta, hogy az attribútum nélküli rendezett listákat is észleli, amit az implementáció valójában nem tesz meg - A két
7.21.3.3-t02WMode-eltérés korpusz sikertelen mintája most már be van kötve aLive_Corpus_ValidatePdfUaMatchesConformance-ba — a v1.95.0 óta a CMap folyam FlateDecode-kicsomagolást kap, így a szótár- és tartalom-összehasonlítás már az olvasható oldalon fut. Az elavult „not wired” megjegyzés eltávolításra került
Version 1.96.0
Hozzáadva
- Szabványok közötti konzisztencia: a
TPdf.ValidatePdfUakét új ellenőrzést kapott a PDF/A-ellenőrzőből. ApvuaiAnnotationFlagsViolation(§7.18.1) megjelöli az olyan nem mentesített annotációkat, amelyek a Hidden / Invisible / NoView jelzőt hordozzák, ami megtöri a segítő technológiák olvasási folyamatát. ApvuaiActionTargetMissing(§7.18.5) megjelöli a GoToR / URI / SubmitForm műveleteket, amelyeknél hiányzik a kötelező célobjektum kulcs (/F+/D, /URI, /F), használhatatlanná téve a hivatkozást a segítő technológiák számára
Javítva
- Oldalak közötti struktúrafa-összevonás: az
AllElemsfelhalmozási ciklus aTPdf.ValidatePdfUametódusban mostantól áthelyezi az egyes elemekParentIndexértékét az oldal-lokális tömbből az összevont tömbbe. Enélkül a 2. oldal gyermekelemei olyan oldal-lokális indexet tartanának meg, amely az 1. oldal szeletére mutatna, észrevétlenül megrontva minden ParentIndex-függő ellenőrzést (táblázat/lista struktúra, §7.4.4 H-gyermekek száma, EnclosingTable) - RoleMap elemzés: a
PdfReadRoleMapPairsmár nem állítja le a teljes kulcs/érték vizsgálatot, ha az érték egy közvetett hivatkozás (N 0 R) vagy egy tömb ([...]) — mindkettő érvényes RoleMap formátum az ISO 32000-1 14.8.5.1 szerint. Mostantól csak ezt a bejegyzést hagyja ki (Continue) aBreakutasítás helyett, kiküszöbölve apvuaiRoleMapUnresolvedálpozitívokat az olyan típusoknál, amelyek egy közvetett vagy tömbbejegyzés után vannak leképezve
Módosítva
FPdfPreflightReport: 18 olyan aktívTPdfUaValidationIssueérték, amely korábban a gyűjtő „hiányzó jelölő” kategóriába és javaslatba esett, mostantól pontos kategóriákat (Structure / Content / Metadata / Security) és szakaszspecifikus javaslatokat hordoz. Ugyancsak javításra került apuaNone / pua1→pucNone / puc1elírás aPDFSpecComplianceMatrix.mdfájlban
Version 1.95.0
Módosítva
- A
TPdf.ValidatePdfUapontossági és helyességi felülvizsgálata: a §7.21.3.3 szerintipvuaiCMapWModeMismatchellenőrzés és a §7.21.7 szerintipvuaiToUnicodeForbiddenValueellenőrzés mostantól kitömöríti aFlateDecode-tömörített CMap / ToUnicode folyamokat a vizsgálat előtt (korábban csak a tömörítetlen folyamok kerültek elbírálásra, ami ismert téves negatívum volt). A közösPdfInflate/PdfReadAndDecodeStreamsegédfüggvények átkerültek azFPdfPdfa/FPdfPdfxegységekből azFPdfPdfCommon-ba, így minden megfelelőségi egység egyetlen példányon osztozik
Hozzáadva
- A
pvuaiSubsetCharSetEmpty(§7.21.4.2) megjelöli az olyan Type 1 részhalmazFontDescriptor-okat, amelyek/CharSetkulcsának karakterlánc-értéke üres — a meglévőpvuaiSubsetMissingCharSetcsak a hiányzó kulcsot észlelte. Az üres/CIDSetnincs megjelölve, mivel egy CID nélküli betűtípus jogosan hordozhat üres bitképet
Version 1.94.0
Hozzáadva
- A második körös
TPdf.ValidatePdfUaaudit hat darab ISO 14289-1 hiányosságot zárt le, amelyeket a szakaszonkénti felülvizsgálat és a PDF/UA útvonal által korábban nem használt, de már burkolt natív Pdfium API-k újra-vizsgálata tárt fel. ApvuaiHeadingFormatInvalid(§7.4.3) megjelöli azokat a felhasználó által definiált címsorcímkéket, amelyek H-val kezdődnek, de elválasztókat, szóközöket vagy római számokat tartalmaznak a tiszta arab számjegyek helyett. ApvuaiMissingDocumentOutline(§7.17, should) megjelöli a többoldalas dokumentumokat, amelyek nem tartalmaznak könyvjelző-vázlatot (az egyoldalas dokumentumok mentesülnek). ApvuaiStructElementLangInvalid(§7.2) megjelöli, ha egy struktúraelem/Langértéke nem érvényes BCP 47 tag. ApvuaiWidgetMissingPrintField(§7.14 / §7.18.4) megjelöli a PrintField attribútum-tulajdonos nélküli Widget struktúraelemeket. ApvuaiLinkNotInStructureTree(§7.18.5) megjelöli azokat a dokumentumokat, amelyeknél a/Subtype /Linkannotációk nincsenek Link struktúraelemként exportálva. ApvuaiPdfiumAnnotationMissingContentsés apvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) pontos Pdfium objektummodell-szintű annotációvizsgálatot biztosít, amely mentesíti a rejtett, a vágókereten kívüli (off-crop-box), a Popup és a Widget annotációkat — kiküszöbölve a bájtszintű heurisztika álpozitívjait, amelyek nem képesek olvasni az/Fjelzőket vagy a/Rectbejegyzést
Version 1.93.0
Hozzáadva
- A TPdf.ValidatePdfUa mostantól egy Pdfium objektummodell-vizsgálatot rétegez a bájtszintű ellenőrző fölé, tükrözve a PDF/A 7. körös architektúráját: bejárja minden oldal szöveges objektumát az FPDFTextObj_GetFont → FPDFFont_GetIsEmbedded útvonalon (pvuaiPdfiumFontNotEmbedded, §7.21.4), és minden karaktert megvizsgál az FPDFText_HasUnicodeMapError (pvuaiPdfiumUnicodeMapError, §7.21.7) és az FPDFText_GetUnicode (pvuaiPdfiumNotDefGlyph, §7.21.8) segítségével — ami jóval pontosabb, mint a bájtszintű heurisztikák, amelyek csak akkor futnak le, ha egyáltalán nincsenek betűtípus-programok vagy hiányzik a /ToUnicode bejegyzés. A bejárás három szinten rövidre zárható: az oldalciklus kilép, ha mindhárom Pdfium-rétegbeli probléma be van állítva; az objektumonkénti ciklus kilép az első nem beágyazott betűtípusnál; a karaktervizsgálat pedig kihagyja a .notdef ellenőrzést, ha a UnicodeMapError már teljesült. A PDF/UA volt az utolsó PDF-szabványú ellenőrző, amely nem rendelkezett Pdfium objektummodell-réteggel
Version 1.92.0
Hozzáadva
- Létrejött a Tests.PdfR — az első tesztfájl a PDF/R-1 ellenőrzőhöz (FPdfPdfr), lefedve a fejléc-ellenőrzést, az ObjStm tiltást, a raszteres jelölő észlelését és a tiszta fájlos álpozitív elleni védelmet. Most már mind a hat PDF-szabványú tesztkészlet dedikált tesztfájllal rendelkezik: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = összesen 212 teszt
Version 1.91.0
Hozzáadva
- A ValidatePdfE és a ValidatePdfVT olyan tartalom-szintű ellenőrzéseket kaptak, amelyek korábban csak a PDF/A, PDF/UA és PDF/X ellenőrzőkben voltak elérhetők: pveiLzwForbidden, pveiJavaScriptForbidden, pveiFormFieldsForbidden (csak PDF/E esetén), pveiEmbeddedFilesForbidden (csak PDF/E esetén), pveiOpiForbidden, pvviLzwForbidden, pvviJavaScriptForbidden, pvviEmbeddedFilesForbidden, pvviOpiForbidden. A TPdf.ValidatePdfE és a TPdf.ValidatePdfVT szintén kapott egy Pdfium objektummodell-réteget (pveiPdfiumFontNotEmbedded / pvviPdfiumFontNotEmbedded), amely bejárja a lapok szöveges objektumait az FPDFFont_GetIsEmbedded metóduson keresztül, az első nem beágyazott betűtípusnál leállítva a vizsgálatot
Version 1.90.0
Hozzáadva
- A TPdf.ValidatePdfX mostantól egy Pdfium objektummodell-vizsgálatot rétegez a bájtszintű ellenőrző fölé: bejárja minden oldal szöveges objektumát az FPDFTextObj_GetFont → FPDFFont_GetIsEmbedded útvonalon, és a nem beágyazott betűtípust pvxiPdfiumFontNotEmbedded kódként jelenti — ami pontosabb, mint a bájtszintű heurisztika, amely csak akkor fut le, ha egyáltalán nincsenek betűtípus-programok. A bejárás leáll az első megtalált nem beágyazott betűtípusnál
Módosítva
- A TPdf.ValidatePdfUa struktúrafa bejárása: az oldalaként végrehajtott ValidatePdfUaPageContentTagging hívás (amely felépíti a megjelölt tartalom-ID-k térképét és keresztellenőrzi az összes szöveg-/képobjektumot) mostantól átugrásra kerül a további oldalakon, amint a pvuaiUntaggedContent már azonosítva van — a struktúraelemek továbbra is gyűjtésre kerülnek az oldalak közötti ellenőrzésekhez (Note egyedi ID, címsorsorozat), de a költséges oldalszintű tartalom-címkézési menet korán leáll
Version 1.89.0
Módosítva
- A TPdf.ValidatePdfA Pdfium objektummodell-rétegének teljesítménye: a lap/objektum bejárás mostantól három szinten rövidre záródik — az oldalciklus kilép, ha az összes vonatkozó Pdfium-rétegbeli probléma már megvan; az objektumonkénti ciklus kilép, ha mindkét objektumszintű probléma (betűtípus beágyazása + áttetszőség) be van állítva; a szöveglap karaktervizsgálata pedig átugorja a .notdef ellenőrzést, ha a UnicodeMapError már teljesült. Az Assigned() API-elérhetőségi ellenőrzések és megfelelőségi jelzők a ciklus előtt egyszer helyi logikai változókba cache-elődnek, ahelyett hogy minden lapon/objektumon/karakteren újra kiértékelésre kerülnének. Egy nagyméretű, nem megfelelő dokumentumon a bejárás most már megállhat az első oldal után ahelyett, hogy minden oldalt végigvizsgálna; megfelelő dokumentumon pedig kisebb az oldalakénti rezsi (nincsenek ismételt Assigned hívások)
Version 1.88.0
Hozzáadva
- A ValidatePdfX nyolc új tartalom-szintű TPdfXValidationIssue értéket kapott, amelyek lefedik azokat a nyomtatási-adatcsere korlátozásokat, amelyeket a PDF/X ír elő a fájlformátum-jelölőkön túl: pvxiLzwForbidden (/LZWDecode), pvxiJavaScriptForbidden (/JavaScript), pvxiFormFieldsForbidden (/AcroForm / XFA), pvxiAdditionalActions (/AA), pvxiEmbeddedFilesForbidden (/EmbeddedFiles / FileAttachment), pvxiOpiForbidden (/OPI / Alternates), pvxiMissingTrimBox (nincs /TrimBox egyik oldalon sem) és pvxiTrappedNotSet (/Trapped hiányzik vagy /Unknown). A PDF/X-ellenőrző korábban csak az XMP/OutputIntent jelölőket vizsgálta; ez az első tartalom-szintű menete. A közös PdfStructureBytes / PdfHasName / PdfCountName segédfüggvények hozzáadásra kerültek az FPdfPdfCommon egységhez, így az összes megfelelőségi egység használhatja őket
Version 1.87.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól lefedi az ISO 14289-1 §7.21.3 összetett betűtípus-szabályait: a
pvuaiCidSystemInfoMismatchmegjelöli azokat a Type0 betűtípusokat, amelyeknél a beágyazott CMap és az alárendelt CIDFont eltér aRegistry/Orderingértékben, vagy amelyeknél a CIDFontSupplementértéke meghaladja a CMap-ét; apvuaiCMapNotEmbeddedmegjelöli a névvel hivatkozott CMap-eket (mintEncodingvagyUseCMap), amelyek nem szerepelnek az ISO 32000-1 118. táblázatának előre definiált CMap-jei között; apvuaiCMapWModeMismatchmegjelöli azokat a beágyazott CMap-eket, amelyek szótáránakWModeértéke eltér a folyambeli WMode értékétől
Javítva
- A §7.21.3.2 szerinti
pvuaiCidFontMissingCidToGidMapellenőrzés kihagyta azokat a CIDFontType2 szótárakat, amelyekben aSubtypekulcs/érték párt sortörés választja el; mostantól aCIDToGIDMapnévértéket is megjelöli, ha az értéke nemIdentity
Version 1.86.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól lefedi az ISO 14289-1 §7.21.6 TrueType kódolási szabályait: a
pvuaiTrueTypeEncodingInvalidmegjelöli a nem szimbolikus TrueType betűtípusokat, amelyeknél azEncodinghiányzik, vagy sem közvetlenül, semBaseEncodingútján nemMacRomanEncodingvagyWinAnsiEncoding; apvuaiSymbolicTrueTypeEncodingmegjelöli azokat a szimbolikus TrueType betűtípusokat, amelyek nem szabványosEncodingnevet viselnek
Version 1.85.1
Módosítva
- Az ISO 14289-1 §7.18.3 tabulátorsorrend-ellenőrzés (
pvuaiMissingTabsOrder) mostantól oldalanként fut: minden, annotációkat tartalmazó oldalnak saját oldalszótárában kell deklarálnia a/Tabs /Sbejegyzést, így egy megfelelő testvéroldal sem fedheti el azt az oldalt, amelyből az hiányzik
Version 1.85.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól megkülönbözteti a dinamikus és statikus XFA-űrlapokat az ISO 14289-1 §7.15 alapján: a
pvuaiXfaDynamicmegjelöli azokat az űrlapokat, amelyek XFA-konfigurációjában adynamicRenderértékerequired
Módosítva
- A korábbi, bármely XFA-ra vonatkozó jelölő (
pvuaiXfaPresent) visszavonásra kerül, és a továbbiakban nem kerül kiváltásra (a statikus XFA megfelel a §7.15 követelményeinek); az enum értéke az API-kompatibilitás érdekében megmarad
Version 1.84.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól észleli az ISO 14289-1 §7.1 által megkövetelt, nem megjelölt valódi tartalmat: a
pvuaiUntaggedContentmegjelöli azokat a megjelenített szöveg- és képobjektumokat, amelyeket az oldal struktúrafája sem (jelölt tartalom azonosítóikon keresztül) nem igényel, sem Artifact-ként nem jelöl meg - Új oldal szintű segédfüggvények:
GetPageContentMarkInfosésValidatePdfUaPageContentTaggingaTPdfPageContentMarkInforekorddal közvetlen használatra
Version 1.83.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól érvényesíti az ISO 14289-1 §7.4.4 fejléc-modellt: a
pvuaiHeadingModelMixedmegjelöli azokat a dokumentumokat, amelyek az általánosHcím-tagot számozottH1..Hnfejlécekkel vegyesen használják; apvuaiHeadingMultipleInNodemegjelöli azokat a struktúracsomópontokat, amelyek egynél több gyermekHfejlécet tartalmaznak
Version 1.82.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól feloldja az ISO 14289-1 §7.1 által előírt RoleMap-et: a
pvuaiRoleMapRemapsStandardmegjelöli azokat a RoleMap-bejegyzéseket, amelyek szabványos struktúratípust definiálnak felül; apvuaiRoleMapUnresolvedmegjelöli a használt, nem szabványos struktúratípusokat, amelyek RoleMap-lánca hiányzik, megszakad vagy ciklikus — a szabványos típushoz vezető közvetett láncok elfogadottak, a nem használt RoleMap-bejegyzések soha nem kerülnek megítélésre - Új segédfüggvények:
PdfUaIsStandardStructType,PdfReadRoleMapPairs(PDF névvel ellátott#hhescape dekódolással) ésValidatePdfUaRoleMapUsageközvetlen használatra
Version 1.81.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól lefedi az ISO 14289-1 §7.6 által előírt, ISO 32000-1 szerinti listacímkézést: a
pvuaiListStructureInvalidmegjelöli az L-tárolón kívüli LI-elemeket és az LI-elemen kívüli Lbl/LBody részeket, miközben elfogadja a beágyazott listákat és az Lbl jogszerű használatát Note és BibEntry elemeken belül
Version 1.80.0
Hozzáadva
- A PDF/UA-ellenőrzés mostantól lefedi az ISO 14289-1 §7.5 által előírt, ISO 32000-1 szerinti táblázatcímkézést: a
pvuaiTableStructureInvalidmegjelöli a TR-soron kívüli TH/TD cellákat, valamint a Táblázat-tárolón kívüli sorokat vagy sorcsoportokat; apvuaiTableHeaderMissingScopemegjelöli azokat a fejléccellákat, amelyek kapcsolata sem Scope attribútumon, sem Headers/ID-társításon keresztül nem határozható meg; apvuaiTableHeadersUndefinedIdmegjelöli a Headers-hivatkozásokat olyan dokumentumokban, amelyek nem definiálnak struktúraelem-azonosítókat - A
TPdfStructureElementközzéteszi a táblázatattribútumokat:Scope,HasHeaders,HeadersIds,ColSpanésRowSpan, amelyek a struktúrafa-bejárás során kerülnek feloldásra
Módosítva
- A struktúrafa-bejáró mostantól egyetlen menetben olvassa el az összes elrendezési és táblázat-attribútumot minden elem attribútumszótárán, attribútumonkénti külön vizsgálat helyett
Version 1.79.1
Hozzáadva
- Az
AnnotationsLabpélda átírása Lazarusra és C++Builderre, csatlakozva a meglévő Delphi konzolos példához
Javítva
- A
TPdf.CreateAnnotation„Cannot set attachment points” kivételt dobhatott azoknál a jelölő annotációknál (Highlight, Underline, StrikeOut, Squiggly), amelyek quad pontokat használnak, mivel az új annotációnak még nem volt lecserélhető quad helye; ehelyett mostantól hozzáfűzi az első quad-ot
Version 1.79.0
Hozzáadva
- Új
AnnotationsLabDelphi konzolos példa: Text, Highlight, Square és Circle annotációkat hoz létre, PDF-be írja őket, majd újratölti a fájlt és felsorolja az oldal annotációinak listáját
Version 1.78.0
Hozzáadva
- Új
TPdf.MeasureTextésTPdf.MeasureTextWidth: megméri egy karakterlánc megjelenített szélességét és magasságát egy adott betűtípushoz és mérethez (PDF felhasználói egységek, 1 egység = 1/72 hüvelyk) anélkül, hogy tartalmat adna az oldalhoz, így lehetővé teszi az elrendezés és a sortörés logikájának kialakítását azAddTextfölött; az önállóFPdfMeasureegység biztosítja osztálysegédként (class helper) - Új
TPdf.WrapText: aMeasureTextWidth-re épülő "mohó" sortörés, amely a szóközöknél választja el a szöveget, és a szavakat legfeljebb a megadott szélességű (PDF felhasználói egységek) sorokba rendezi; egy túl hosszú önálló szó saját sort kap (nincs szón belüli törés), és a betördelt sorokat tömbként adja vissza
Version 1.77.0
Hozzáadva
- A
ValidatePdfAhárom újTPdfAValidationIssueértékkel bővült, amelyek azokat a záradékokat fedik le, amelyeket a korábbi hiányosság-vizsgálat „NEM” vagy „olvasói viselkedés” kategóriába sorolt (hozzáfűzött sorszámok, a meglévő értékek változatlanok):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — egy karakter, amely leképezési hiba nélkül a 0-s Unicode értékre oldódik fel, ami egy.notdefglifahivatkozás futásidejű tünete; a Pdfium objektummodell-rétegén keresztül észlelve),pvaiWordBreakMissing(Level A 6.8.3.2 — egy tartalomfolyamban (content-stream) megjelenő, 20 karakternél hosszabb karakterlánc szóköz nélkül, amely valószínűleg a szavak egybeolvadásának megsértése; durva heurisztika, amely elkerüli a CJK fals pozitívokat), éspvaiLinkActionMissingTarget(6.6.3 — egy GoToR/URI/SubmitForm művelet, amelyből hiányzik a megjelenítendő célkulcs, így az olvasó nem tudja megjeleníteni)
Version 1.76.0
Hozzáadva (Added)
- A
ValidatePdfAhárom újTPdfAValidationIssueértékkel bővült (hozzáfűzött sorszámok, a meglévő értékek változatlanok):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 — olyan/BaseFontvagy/FontNametoken, amely ≥ 0x80 bájtokat tartalmaz, melyek nem alkotnak érvényes UTF-8 kódolást),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — az oldaltartalom-folyam egy beágyazott képe az LZW vagy Crypt szűrőt használja), éspvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — olyan nem szimbolikus TrueType betűtípus, amelynek Encoding szótára/Differencesbejegyzést tartalmaz)
Version 1.75.0
Hozzáadva (Added)
- A
ValidatePdfAhárom újTPdfAValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — egy numerikus token túllépi a 32 bites előjeles egész számok 2 147 483 647-es korlátját),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — egy/BMérték, amely kívül esik az ISO 32000-1 §11.3.5 szabványos blend-mode halmazán; kiegészíti a PDF/A-1pvaiTransparentColorSpaceértékét, amely csak a Normal/Compatible értékeket engedélyezi), éspvaiHexStringOddDigits(6.1.6 — egy<...>hexadecimális karakterlánc, amely páratlan számú hexadecimális számjegyet tartalmaz)
Version 1.74.0
Hozzáadva (Added)
- A
ValidatePdfAhárom újTPdfAValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvaiPermissionsViolation(6.1.12 — egy/Permsszótár, amely a/DigestLocation,/DigestMethodvagy/DigestValuebejegyzést tartalmazza a/DocMDPmellett),pvaiTransActionForbidden(PDF/A-2 6.5.1 — egy Trans átmeneti művelet, amelyet az/S /Transműveletszótár minta alapján érzékel, hogy elkerülje a/Transparencytéves egyezését), éspvaiPdfiumObjectTransparency(PDF/A-1 6.4 — egy oldalobjektum valódi átlátszósággal rendelkezik azFPDFPageObj_HasTransparencyalapján, kiterjesztve a v1.73.0-ban bevezetett Pdfium objektummodell-réteget, hogy észlelje azokat a blend-mode/soft-mask effektusokat, amelyeket a bájtszintű névvizsgálat kihagyhat)
Version 1.73.0
Hozzáadva (Added)
- A
TPdf.ValidatePdfAmostantól egy Pdfium objektummodell menetet helyez a bájtszintű vizsgáló fölé: bejárja minden oldal szövegobjektumait azFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedútvonalon, és a be nem ágyazott megjelenített betűtípustpvaiPdfiumFontNotEmbeddedhibaként jelenti (ISO 19005 6.3.4), valamint betölt minden szöveges oldalt, hogy megvizsgálja azFPDFText_HasUnicodeMapError-t, és a hibás Unicode leképezéstpvaiPdfiumUnicodeMapErrorhibaként jelenti (6.3.8). Ezek olyan ellenőrzések, amelyeket a bájtszintű vizsgáló nem tud elvégezni — az csak név tokeneket lát, nem pedig feloldott betűtípus leírókat vagy karakterenkénti leképezési állapotot — és beolvadnak a bájtszintű eredménybe. Az önállóValidatePdfACompliancebájtszintű függvény változatlan maradt
Version 1.72.0
Hozzáadva (Added)
- A
ValidatePdfAöt újTPdfAValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — a katalógus nem tartalmazhatja a/NeedsRenderingértéket),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — egy OutputIntent nem tartalmazhatja a/DestOutputProfileRefértéket),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — egy/EFértéket tartalmazó fájlspecifikációnak tartalmaznia kell a/UFértéket is),pvaiXmpPacketBytesAttr(6.7.5 — az XMP csomag fejléce nem tartalmazhatja az elavultbytes=vagyencoding=attribútumot), éspvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — az annotáció/FToggleNoView bitje, 512-es érték, tilos)
Version 1.71.0
Módosítva
- A
ValidatePdfUamostantólpvuaiOrderedListMissingListNumberinghibát ad vissza (ISO 14289-1 7.6): a fastruktúra-bejáró a Pdfium attribútum API-ján keresztül mindenLelemen feloldja aListNumberingelrendezési attribútumot, és megjelöl minden olyan értéket, amely az ISO 32000-1 347. táblázatának halmazán (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square) kívül esik. A hiányzó attribútum nem kerül megjelölésre, mivel a lista lehet rendezetlen is; ez lezárja az 5. kör végén rögzített utolsó fennmaradó ISO 14289-1 hiányosságot
Version 1.70.0
Hozzáadva
- A
ValidatePdfUanégy újTPdfUaValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — egy CID részhalmazFontDescriptorelemének deklarálnia kell a/CIDSet-et),pvuaiToUnicodeForbiddenValue(7.21.7 — egy ToUnicode CMap nem képezhet le semmilyen kódotU+FEFFvagyU+FFFEértékre; a tömörítetlen adatfolyamokat átvizsgáljuk a<FEFF>/<FFFE>kimeneti formák után),pvuaiLangInvalidFormat(7.2 — a/Langérvényes RFC 1766 / BCP 47 címke kell legyen; a megengedő nyelvtan elfogadja azen,en-US,zh-Hans,es-419értékeket, és megjelöli az egyértelműen nem megfelelő értékeket), valamintpvuaiOrderedListMissingListNumbering(7.6 — az API teljessége érdekében megtartva; a validátor még nem veti fel, mivel a rendezett és rendezetlen listák megbízható megkülönböztetéséhez szükség van aListNumberingattribútum értékére, amelyet a fastruktúra-bejáró nem tesz közzé)
Version 1.69.0
Hozzáadva
- A
ValidatePdfUakét újTPdfUaValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — egy Widget struktúraelemet egyFormelemen belül kell beágyazni; a fastruktúra-bejáró mostantól ellenőrzi minden Widget közvetlen szülőtípusát) éspvuaiSubsetMissingCharSet(7.21.4.2 — egy Type 1 részhalmazFontDescriptorelemének deklarálnia kell a/CharSet-et, amelyet a/FontNamehatbetűs+részhalmaznév-előtagja azonosít)
Version 1.68.0
Hozzáadva
- A
ValidatePdfUakét újTPdfUaValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — egy URI művelet szótár nem tartalmazhattrueértékű/IsMapbejegyzést, mivel ez letiltja a hozzáférhető hivatkozáscélt) éspvuaiHeadingSequenceViolation(7.4.2 — a számozott címsoroknakH1-gyel kell kezdődniük, és a csökkenő sorrend nem hagyhat ki köztes szintet, pl. aH1→H3szabálysértés). A címsor-ellenőrzés az első fastruktúra-szintű PDF/UA szabály a validátorban: aValidatePdfUaStructureElementsmostantól bejárja a típusos elemlistát, és ellenőrzi aH1…H6(és a 7.4.3 alapján aH7+) sorrendet a dokumentum sorrendjében
Version 1.67.0
Hozzáadva
- A
ValidatePdfUaöt újTPdfUaValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — egy Link annotációnak alternatív leírást kell tartalmaznia a/Contentsrévén),pvuaiAnnotationMissingContents(7.18.1 — minden nem mentesített,/Contentsnélküli annotációnak alternatív leírással kell rendelkeznie; a Popup és a Widget mentesítve van),pvuaiEmbeddedFileMissingName(7.11 — egy fájlspecifikációs szótárnak tartalmaznia kell az/Fés/UFbejegyzéseket),pvuaiMediaClipMissingAlt(7.18.6.2 — egy médiaklip-adat szótárnak tartalmaznia kell a/CTés/Altbejegyzéseket), éspvuaiCidFontMissingCidToGidMap(7.21.3.2 — egy beágyazott Type 2 CIDFontnak tartalmaznia kell a/CIDToGIDMap-et)
Version 1.66.0
Hozzáadva
- A
ValidatePdfUaöt újTPdfUaValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvuaiRoleMapMissing(ISO 14289-1 7.1 — egy nem szabványos struktúratípusokkal rendelkező címkézett dokumentumnak tartalmaznia kell egy/RoleMap-et),pvuaiOptionalContentAsKey(7.10 — egy opcionálistartalom-konfigurációs szótár nem tartalmazhatja az/ASauto-state kulcsot),pvuaiXfaPresent(7.15 — az AcroForm/XFAjelenléte megjelölésre kerül, mivel a dinamikus XFA tilos),pvuaiTrapNetAnnotation(7.18.2 — a/TrapNetannotációk tilosak), éspvuaiReferenceXObject(7.20 — a/Refjelölővel ellátott Referencia XObject-ek tilosak)
Javítva
- A
ValidatePdfUamár nem jelez tévesenpvuaiEncryptionPresenthibát minden titkosított fájlnál: a PDF/UA engedélyezi a titkosítást, amennyiben a titkosítási szótár/Pkulcsának 10. bitpozíciója (1024-es érték) be van állítva, amely hozzáférést biztosít a kisegítő technológiák számára (7.16). A pontos szabálysértést mostantól az újpvuaiEncryptionPBitMissingjelenti; apvuaiEncryptionPresentmegmaradt az enumban az API-kompatibilitás érdekében, de a byte-szintű validátor már nem veti fel
Version 1.65.0
Hozzáadva
- A
ValidatePdfAöt újTPdfAValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — egy beágyazott Type 2 CIDFontnak tartalmaznia kell a/CIDToGIDMap-et),pvaiSubsetMissingCharSet(6.3.5 — egy Type 1 részhalmazFontDescriptorelemének tartalmaznia kell a/CharSet-et),pvaiSubsetMissingCidSet(6.3.5 — egy CID részhalmazFontDescriptorelemének tartalmaznia kell a/CIDSet-et),pvaiWidgetActionForbidden(6.6.1 — egy Widget annotáció nem tartalmazhat/Avagy/AAbejegyzést), éspvaiOptionalContentAsKey(ISO 19005-2 6.9 — egy opcionálistartalom-konfigurációs szótár nem tartalmazhatja az/ASauto-state kulcsot, ami újonnan releváns, mivel a PDF/A-2 engedélyezi az opcionális tartalmat)
Version 1.64.0
Hozzáadva
- A
ValidatePdfAnyolc újTPdfAValidationIssueértékkel bővült (a végére fűzve, a meglévő értékek változatlanok):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 — a%PDF-x.yfejlécet egy%megjegyzésnek kell követnie legalább négy, 127-nél nagyobb értékű bájttal),pvaiExternalStreamRef(6.1.7 — egy adatsor szótár nem tartalmazhat/F,/FFiltervagy/FDecodeParmsbejegyzést),pvaiOutputIntentScheme(6.2.2 — az OutputIntent/Sértéke/GTS_PDFA1kell legyen),pvaiInfoXmpDateMismatch(6.7.3 — az InfoCreationDate/ModDateértéknekxmp:CreateDate/xmp:ModifyDate-ként is szerepelnie kell),pvaiMarkInfoMissing(6.8.2.2 — az A-szint megköveteli a/MarkInfomeglétét/Marked trueértékkel),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — az annotáció/APszótára csak/N-t tartalmazhat),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 E.2 melléklet — minden társított fájlspecifikációnak tartalmaznia kell az/AFRelationship-et), éspvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — egy JPEG2000 képnek 1, 3 vagy 4 komponenst kell deklarálnia)
Javítva
- A
ValidatePdfAmár nem jelez tévesenpvaiAnnotationFlagsViolationhibát olyan dokumentumokon, amelyek egybetűs betűtípus-erőforrásnevet használnak, például/Font << /F 5 0 R >>; az/Fjelző vizsgálata mostantól annotációs kontextushoz (egy annotációtípus/Subtype-ja) van kötve, igazodva a dokumentált viselkedéshez (6.5.3) - A
ValidatePdfAmostantól fájlonként jelenti a PDF/A-3 társított fájl követelményét: egy dokumentum csak akkor kerül megjelölésre, ha egy beágyazott/Type /Filespec, amely az/EF-en keresztül egy beágyazott adatsorra hivatkozik, nem rendelkezik/AFRelationship-pel, a korábbi egész dokumentumra kiterjedő "bármelyik vagy egyik sem" ellenőrzés helyett (ISO 19005-3 E.2 melléklet) - A tiltott műveletek halmazába a
/SetOCGStatemellé bekerült az elavult/SetStateművelet is, így a PDF Referencia szerinti műveletnév közvetlenül elkapható (6.6.1)
Version 1.63.0
Hozzáadva (Hozzáadva)
- Hozzáadva:
TPdf.MeasureTextésTPdf.MeasureTextWidth: megméri a szöveg renderelt szélességét és magasságát adott betűtípus és méret alapján, anélkül, hogy tartalmat adna az oldalhoz (PDF felhasználói egység, 1 egység = 1/72 hüvelyk) — lehetővé téve az elrendezési számításokat és az automatikus soremelést azAddTextfölött; önállóFPdfMeasureunit biztosítja class helper formájában
Módosítva (Módosítva)
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDF,Demo\Lazarus\MergePDFbővítve mindhárom IDE-hez: fájlonkénti oldalszám-tartomány, opcionális kimeneti útvonal, deduplikáció, futási napló, Mégse gomb, összesítő jelentés; könyvjelzők és metaadatok az első forrásból- A CreatePDF demók mostantól tartalmazzák az Európai szöveg opciót ékezetes cseh, francia, német, spanyol, portugál, lengyel és török szövegekhez, amelyek ellenőrzik a betűtípus-kiválasztást és az Unicode-kezelést (a korábbi EuropeanText beolvadt)
- Eltávolítva:
ExtractTextPagesésEuropeanText: az oldalankénti szövegkinyerést azExtractTextoldalszám-tartomány/elválasztó opciói fedik le; azEuropeanTexttöbbnyelvű renderelése beolvadt aCreatePDFdemóba
Version 1.62.2
Javítva (Javítva)
- Újrageneráltuk a C++Builder fejléceket (
.hpp) minden RAD Studio-verzióhoz és platformhoz (Win32/Win64/Win64x); ezek eltértek a Pascal-forrásoktól, így elavult függvényszignatúrák és hiányzó unitok jutottak el a C++Builder-felhasználókhoz a forrásdisztribúción keresztül
Version 1.62.1
Javítva (Javítva)
- Helyreállt a forrásból fordítás RAD Studio 12 Athens és korábbi verziók alatt: a PDF/UA-ellenőrzési útvonalon egy
TArray<Byte>hozzárendelés Delphi 13-only implicit tömbkonverziót használt, amely régebbi IDE-kben nem fordult le
Version 1.62.0
Hozzáadva (Hozzáadva)
TPdf.RenderPageThumbnailbármely oldalt index alapján aránytartó bitmapbe renderel anélkül, hogy módosítaná a dokumentum aktuális oldalát, a betöltött oldalt, vagyOnPageChangeeseményt váltana ki
Javítva (Javítva)
- A
TPdfThumbnailViewrajzolás közben többé nem vezérli a gazdadokumentumPageNumberértékét; korábban minden újrarajzolás újratöltötte az oldalakat,OnPageChangeeseményt váltott ki és eldobta a text page-et, ami megzavarhatott egy kapcsoltTPdfView-t és újrarajzolási ciklusokat indíthatott. A bélyegképek mostRenderPageThumbnailhasználatával készülnek ilyen mellékhatások nélkül - A PDF/X megfelelőség-ellenőrzés most megvizsgálja a cross-reference streameket tartalmazó dokumentumokat (PDF 1.6, jellemző a PDF/X-4-re) és a tömörített object streamekben tárolt objektumokat is, ahelyett hogy az ilyen fájlokat teljes egészében nem megfelelőnek jelentené; a
GTS_PDFXVersionjelölő mind element form, mind RDF attribute form XMP alakból kiolvasásra kerül - A PDF/R ellenőrzés most
pvriInfoXmpMismatchértéket jelent, amikor az Info dictionary és az XMP eltér a Producer vagy Creator mezőben; a problémát korábban deklaráltuk, de soha nem jeleztük - A form-fill időzítők kérések szerint követettek, így egy dokumentum, amely egyszerre több időzítőt futtat (például JavaScript interval a field caret villogása mellett), mindet megtartja, nem csak a legutóbbit
- A
TPdfViewrajzolása és nyilvánosRenderPage/RenderTilemetódusai most tartják a dokumentum render lockját, sorosítva ugyanazonTPdfworker-thread renderelésével (a PDFium nem thread-safe) - A PDF/X, PDF/R és PDF/VT metadatába írt nem ASCII szöveg (OutputIntent feltételnevek, Creator, Producer) most UTF-16BE stringként kerül kódolásra az ISO 32000-1 §7.9.2.2 szerint a raw UTF-8 helyett, amelyet a megfelelő olvasók félreolvastak volna
- A megfelelőségi helperek helyesen olvassák azokat az embedded metadata streameket, amelyeknél a
/Lengthindirect reference,ReadBuffersegítségével töltik be a forrásbájtokat (így a rövid olvasás tisztán hibázik), és elutasítják a negatívstartxrefoffsetet a tartományon kívüli olvasás kockáztatása helyett
Version 1.61.0
Módosítva (Módosítva)
- FFI/ABI deklarációjavítások, amelyek az affected callbackeket megvalósító kód újrafordítását is szükségessé tehetik: a
FFI_OpenFileform-fill visszahívás mostcdecljelölést kapott (Win32 stack convention), és avalueparaméter aFPDFAnnot_SetStringValuevalamintFPDFAttachment_SetStringValuehívásokban mostFPDF_WIDESTRING(UTF-16LE), hogy illeszkedjen a PDFium fejlécekhez - A fokozatos betöltésű visszahívások, a
FX_FILEAVAIL.IsDataAvailés aFX_DOWNLOADHINTS.AddSegmentmostsize_teltolásokat kapnak, és asize_tmutatóméretű a Free Pascal / Lazarus Win64 alatt (korábban 32 bitre csonkolódott), így javul az adatelérhetőség és azoutsize_tAPI-hívások kezelése FPC Win64 alatt
Javítva (Javítva)
- Memóriabiztonság: a form-fill időzítő use-after-free hibája, amikor egy aktív AcroForm kurzort tartalmazó
TPdfmegsemmisül; kétszeresFPDF_CloseDocumentazImportNPagesToOnehibaútján; a mentés és a JPEG beszúrás közben aFPDF_FILEWRITE/FPDF_FILEACCESSvisszahívásokon átszökő Pascal kivételek a C-határon át; valamint egy egész túlcsordulás a szövegkinyerésben, amikor az olvasás egy kezdőindexről az oldal végéig történik TPdfFuture<T>most megbízhatóbban kézbesíti az eredmény-visszahívást; a válasz korábban szinte mindig elveszett volt, és akár egy felszabadított szálat is érinthetett, mert a worker a sorba állított válasz lefutása előtt felszabadította önmagát- A PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT és PDF/UA kimenet most pontosan 20 bájtos cross-reference bejegyzéseket ír az ISO 32000-1 §7.5.4 szerint
- A szabványjelölő-beszúrás többé nem semmisít meg egy szótárat, amikor az eltávolított kulcs, például a
/Trapped, volt az utolsó bejegyzés, ami korábban lenyelte a záró>>-t és hibás objektumot eredményezett - Az OutputIntent ICC profile streamek most deklarálják a szükséges
/Nkomponensszámot PDF/X és PDF/VT esetén, ami már korábban is megvolt PDF/A-hoz; a titkosított forrásdokumentumokat a PDF/X, PDF/E, PDF/R, PDF/VT és PDF/UA jelölők beszúrása előtt visszafejtjük, így a kimenet érvényes marad ahelyett, hogy néma sérülést hordozna - A generált XMP-ben lévő UTF-8 xpacket BOM most pontos bájtokként kerül kiadásra, így javítva a sérülést azokon a Delphi telepítéseken, ahol az ANSI code page nem Latin-1; az inkrementális frissítésű trailer most megtartja a dokumentum
/Infohivatkozását - A
SaveAstömörítéssel többé nem csonkolja azokat a streameket, amelyeknek a/Lengthértéke közvetett hivatkozás, és az újjáépített cross-reference táblák most 20 bájtos bejegyzéseket, valós generációs számokat használnak, valamint elhagyják az elavult/Prevmutatót - A megfelelőség-ellenőrzés PDF/E és PDF/X esetén most beolvassa az attribute-form XMP verziójelölőit, így az attribute-serialised PDF/X-4 fájlok felismerhetők, megköveteli a pontos
PDF/E-1azonosítót, helyesen olvassa a közvetett/Lengthmetadata streameket, és a PDF/UA trailer ellenőrzésekor többé nem keveri össze hamisan egy structure element/IDvagy/StructTreeRootkulcsát; egy hibásstartxrefoffset többé nem dob tartományhibát TPdfThumbnailView: az utolsó oldal most elérhető a gördítősávval, a gazdadokumentum aktuális oldala a bélyegképek kirajzolása után visszaáll, és az alapértelmezett mouse-leave kezelés ismét kiküldésre kerül- A szürkeárnyalatos oldal- és kép-bitmapek többé nem rossz palettával renderelődnek; a
TPdfView-hez többé nem marad lógó hivatkozás, amikor előbb aTPdfszabadul fel - A preflight jelentések: az HTML a deklarált charsettel egyezően UTF-8-ként kerül mentésre, és a JSON string escaping Free Pascal alatt helyes
\usorozatokat állít elő a nem ASCII karakterekhez - Trial build-ek: a trial emlékeztető párbeszédpanel most megjelenik ahelyett, hogy el lenne nyomva még azelőtt, hogy láthatóvá válhatna
TPdfStreamAdaptermost elutasítja a 4 GiB-nál nagyobb streameket világos hibaüzenettel ahelyett, hogy csendben csonkolná a PDFiumnak átadott hosszt
Version 1.60.1
Módosítva (Módosítva)
- A Delphi, Lazarus és C++Builder AccessibilityReader demók most a
TPdfReadingSessionalapján olvasnak fel: minden oldal egyetlen kimondott blokká áll össze aBuildSpokenTextFromWordssegítségével, a SAPI szópozíciói aFeedSpokenPositionfelé táplálódnak, a munkamenet pedig lépteti az oldalakat és vezérli a nézet szókurzorát, leváltva az egyes demók korábbi kézi vezénylését - A szó szintű karaoke-követés a demókban most NVDA esetén is működik: a
EstimatePacingaz eltelt beszédidő alapján ütemezi az olvasási kurzort, míg korábban az NVDA egyáltalán nem adott szókövetést - A Pause és Resume a demókban most NVDA-val is működik: a
ResumeRestartsChunka Resume során az aktuális oldalt annak elejétől mondja újra, míg a SAPI megtartja a saját helyben működő szüneteltetését és folytatását
Version 1.60.0
Hozzáadva (Hozzáadva)
- Élő nagyítóbarát megjelenítés a
TPdfView-ben: az újreInvertésreNightDuotonerenderelési opciók minden megjelenített oldalcsempét újraszíneznek (teljes színinvertálás vagy éjszakai duotone paletta), mielőtt a keresési, kijelölési, olvasási és szókurzor-overlayek megjelennének, így a meglévő bitmap színtranszformációk az interaktív nézetbe kerülnek mind az egyoldalas, mind a kétoldalas elrendezésben; az opciók kapcsolása azonnal újrarajzol - A
NightDuotoneInkésNightDuotonePaperbeállítják az éjszakai palettát, alapértelmezetten borostyánsárga szöveget és fekete oldalt használva; ha mindkét opció be van állítva, areInvertérvényesül
Version 1.59.0
Hozzáadva (Hozzáadva)
TPdfReadingSession: beszédmotor-független felolvasási vezénylő komponens. A chunk kurzort, a word kurzort és a lejátszási állapotot (Play/PlayFrom/Pause/Resume/Stop) tartja karban, a betöltöttTPdfSpokenTextchunkokon halad át, amikor a gazda aTicksegítségével a motor tétlenségét jelzi, a kimondott szöveg eltéréseit visszavezeti az oldalszöveg karaktereire, és automatikusan vezérli a csatoltTPdfViewszókurzorát; a gazda bármely beszédmotort azOnSpeakés a cancel / pause / resume request eseményeken keresztül csatlakoztatja, így a könyvtár maga nem kötődik egyetlen beszéd-API-hoz sem- A
FeedSpokenPositiona motor által jelzett szópozíciókat fogyasztja (például a SAPIStatus.InputWordPositionértékét); azEstimatePacingazEstimatedWordsPerMinuteértékkel ütemezi a pozíciójelet nem küldő motorokat; aResumeRestartsChunka natív szüneteltetés nélküli motoroknál újramondja az aktuális chunkot - Az
OnChunkChange,OnWordChangeésOnFinishedcsak valódi változáskor váltódik ki, és a felszabadult csatolt nézet automatikusan leválik, így a gazdakód villódzásmentes és összeomlásbiztos marad
Version 1.58.0
Hozzáadva (Hozzáadva)
- Az
EstimateSpokenWordIndexaz eltelt idő és a szavak-per-perc arány alapján becsli meg, hogy a beszédmotor éppen melyik szót mondja, a hosszabb szavaknak arányosan több időt adva, így azok a motorok is vezérelhetik a szó szintű olvasási kurzort, amelyek nem adnak szópozíciót (például az NVDA controller client); a hívó adja meg az eltelt időt, ezért az eljárás órától független és unit tesztelhető
Version 1.57.0
Hozzáadva (Hozzáadva)
- Kétirányú leképezésű kimondott szöveg-összeállítás a felolvasás követéséhez: a
BuildSpokenTextFromWordsés aSpokenTextAppenda page word boxokból építik fel a text-to-speech motor számára átadott stringet egy span tábla rögzítése mellett, aSpokenToPageCharpedig a motor által jelentett spoken offsetet (például a SAPIStatus.InputWordPositionértékét) visszavezeti az oldalszöveg karakterindexére, így a szó szintű kiemelés követése akkor is helyes marad, amikor a kimondott szöveg nem a teljes oldalszöveg (kihagyott részek, egységenkénti olvasás, kiejtési felülbírálások) - A
TPdfSpokenTextésTPdfSpokenSpantípusok a kimondott stringet és azokat a forrás oldaltartományokat hordozzák, amelyekből felépültek; a beszúrt elválasztók utáni eltolások a következő leképezett szóra oldódnak fel, a leképezett futásokon túli eltolások pedig nem találnak egyezést
Version 1.56.9
Hozzáadva
- A
Demo\Delphi\PreflightReporthozzáad egy Action Plan előnézetet, amely a nem teljesítő szabványokat, prioritásokat, következő teendőket, issue kódokat és javaslatokat egy javítási ellenőrzőlistává sűríti - A
Demo\Delphi\PreflightReportClielfogadja aplan/actionplanértéket kimeneti formátumként önálló fájlos és kötegelt futtatásokhoz, és ugyanezt a javítási ellenőrzőlistát szövegfájlba írja
Módosítva
- Mindkét Delphi PreflightReport demó most a pass / action / review állapotszámokat is megjeleníti az összes szabvány és issue mellett
Version 1.56.8
Módosítva
- A
ViewerInteractionLabmost oldalugrási vezérlőket, kézi nagyításvezérlőket, kattintásalapúDeviceToPage/PageToDevicekoordináta-naplózást és tisztább interakciós naplót tartalmaz a kijelölés, keresés, forgatás és navigáció ellenőrzéséhez - A
ViewerInteractionLabreadme oldalak most dokumentálják a hozzáadott interakciós munkafolyamatot a lokalizált demo readme-készletben
Version 1.56.7
Hozzáadva
AccessibilityWorkbenchCliminden kiváltott találatot a WCAG 2.1 Success Criteria és az ISO 14289-1 (PDF/UA-1) megfelelő cikkelyrészéhez rendel, és a jelentésekben szabvány-lefedettségi szakaszt is mutatAccessibilityWorkbenchClidokumentált 0-100 akadálymentességi pontszámot számol egy közzétett büntetési rubrikával és egy kiváló / jó / fejlesztendő / gyenge sávval, fájlonként és kötegátlagként megjelenítveAccessibilityWorkbenchClielfogadja afailscore=Nértéket a futás meghiúsítására (2-es kilépési kód), ha bármely fájl N alatt pontozAccessibilityWorkbenchCliSARIF 2.1.0 naplót ír, ha a kötegösszegzés neve.sarif-re végződik, és minden találattípushoz egy szabályt hordoz WCAG 2.1 és PDF/UA címkékkel a CI és code-scanning betöltéshezAccessibilityWorkbenchClihozzáad egyversionparancsot, amely kiírja a kapcsolt PDFiumPas verziót
Version 1.56.6
Hozzáadva
IntakeWorkbenchCliminden bemeneti fájlhoz SHA-256 törvényszéki hash-t számol, régebbi fordítóknál, aholunavailable-re visszalépve nincsSystem.Hash, és minden formátumban riportoljaIntakeWorkbenchClielfogadja apasswords=file.txtparamétert, hogy jelöltlistából próbával feloldja a jelszavas dokumentumokat, a talált jelölt indexét rögzítve anélkül, hogy valaha is naplózná a jelszó szövegétIntakeWorkbenchClielfogadja acopyto=dirparamétert, hogy minden ellenőrzött fájlt a kockázati szint szerinti almappába irányítson, és az ellenőrt intake rendezővé alakítsaIntakeWorkbenchCliSARIF 2.1.0 naplót ír, ha a kötegösszegzés neve.sarif-re végződik, és minden kockázati jelzőhöz egy szabályt, minden megjelölt fájlhoz pedig egy eredményt ír a CI és code-scanning betöltéshezIntakeWorkbenchClihozzáad egyversionparancsot, amely kiírja a kapcsolt PDFiumPas verziót
Version 1.56.5
Hozzáadva
IntakeWorkbenchClimost olyan javasolt intake utáni műveleteket vezet le, mint az accept, request-password, manual-review, quarantine és deduplicate, és a kötegszámokban műveletszámokat is megjelenítAccessibilityWorkbenchClimost olyan javasolt javítási műveleteket vezet le, mint a pass-through, remediate-tags, run-ocr, remediate-semantics és manual-review, megfelelő kötegszámokkal
Módosítva
- Mindkét tool-grade CLI demó a javasolt műveletet konzol, szöveg, HTML, JSON és CSV kimenetben is megjeleníti, így a kötegkezelők utófeldolgozás nélkül tudják útvonalazni a fájlokat a kockázat vagy állapot mezők alapján
Version 1.56.4
Javítva
- Ha ciklusban olvasunk annotációkat, könyvjelzőket vagy link annotációkat, többé nem szivárog az előző elem szöveges tartalma: a
TPdfAnnotation,TBookmarkésTLinkAnnotationeredményrekordok most managed-type-aware inicializálással tisztulnak, nem nyers memória-nullázással, így a rengeteg szöveges annotációt tartalmazó dokumentumok sem növelik meg a folyamatmemóriát az alkalmazás teljes élettartamára - Egy
TPdfmegsemmisítése, amelyhezOnUnsupportedFeaturekezelő volt regisztrálva, most leválasztja azt a folyamatszintű PDFium callbackről, így egy későbbi dokumentumbetöltés egy másik, saját kezelő nélküliTPdfpéldányból már nem hívhat a felszabadított komponensbe (use-after-free)
Version 1.56.3
Javítva
AccessibilityWorkbenchClitöbbé nem számítja a blank pages oldalakat heuristikus reading-order oldalaknak, így az üres elválasztó oldalakkal rendelkező címkézett dokumentumok megőrzik a helyes akadálymentességi állapotukat; a nem olvasható tartalmú oldalak most külön jelentést kapnakAccessibilityWorkbenchClitáblafejléc-felismerése többé nem tulajdonít egy külső táblának olyanTHcellákat, amelyek beágyazott táblához tartoznak, és a formmező- és fontnevek esetén kis- és nagybetűérzékeny egyezés történik, így a különálló mezők nem olvadnak összeIntakeWorkbenchCliURL host leltárai most eltávolítják a userinfo, query és fragment részeket, így egy olyan beépített linket, mint atrusted.example@evil.example, a valódi hosthoz rendelik, amailto:célok pedig a domainjüket adják hozzá ahelyett, hogy láthatatlanok lennénekIntakeWorkbenchCliMarkdown jelentések escape-elik a backtickeket a támadó által vezérelt útvonalakban, hostokban és csatolmánynevekben, így a jelentésformázás nem törhető meg egy dokumentum belsejéből
Módosítva
AccessibilityWorkbenchClikülön számlálóként jelenti a font-scan és form-field-scan hibákat, megjelöli azokat a nem beágyazott fontokat is, amelyeknek van beágyazott példányuk, és explicit truncation markerrel rövidíti a hosszú fontlistákatIntakeWorkbenchClikötegszámokhoz csatolmány-annotáció számláló oszlopot ad hozzá, és az oldalankénti annotációszámlálás 20000 annotációra van korlátozva oldalanként, a korlátot minden formátumban jelentve
Version 1.56.2
Hozzáadva
AccessibilityWorkbenchClimost auditálja a fontbeágyazást, a formmező tooltipjeit, a reading-order forrást, a dokumentum vázlatát, a táblázat- és listastruktúrát, a gyanús alternatív szöveget és a részletesebb oldalankénti review adatokat, így az akadálymentességi kötegjelentések több javítási célt azonosítanakIntakeWorkbenchClimost jelenti az oldalszkennelési korlátokat, a launch és remote-go-to műveleteket, az URI host leltárakat, az annotációszámokat, a nem támogatott PDFium funkciókat, a duplikált dokumentumazonosítókat és a kibővített kockázati jelzőket az automatizált intake reviewhoz
Módosítva
IntakeWorkbenchClielfogadja amaxpages=Nértéket az egyfájlos és kötegelt módokban, hogy dokumentumonként korlátozza az oldalszkennelést, miközben továbbra is befejezi a metadata, attachment, script, XFA, signature és risk jelentést
Version 1.56.1
Javítva
- Egy régebbi
pdfium.dllbetöltése, amelyből hiányzik egy újabb export, most tisztán hibával áll le: a hibakezelési útvonal minden bekötött API végpontot nulláz, így azAssigned()ellenőrzések (például azFPDF_GetLastErrorvagyFPDF_GetSecurityHandlerRevisionesetében) a könyvtárat betöltetlenként jelentik ahelyett, hogy a már eltávolított modulba hívnának és access violationnel összeomlanának UnloadLibrarymost minden PDFium API kötést töröl, nem csak az opcionális V8 segédeket, így a DLL felszabadítása után sem maradnak elavult függvénypointerek
Version 1.56.0
Hozzáadva
- Szó szintű karaoke olvasási kurzor a
TPdfView-ben: aTrackReadingWordAtegy text-to-speech motor aktuális szavának karaktereltolását (például a SAPIStatus.InputWordPositionértékét) leképezi az oldal szóboxaira, külön rétegként kiemeli azt a szót, amelyben ez az offset van, a reading block fölé görgeti, és visszaadja a szó indexét, így a kimondott szó világít, ahogy a hang halad előre SetReadingWordésClearReadingWordközvetlenül állítják vagy törlik a kiemelt szót egyTPdfWordBox-ból; ugyanaz a szó újraállítva no-op, így a per-word követés soha nem villogtatja a nézetetReadingWordColorésReadingWordFollowvezérli a szókurzor színét és azt, hogy a nézet automatikusan görgesse-e a kimondott szót a látható területre
Version 1.55.2
Javítva
- A ViewerInteractionLab most több függőleges helyet ad az eszköztár sorainak, így az Open PDF, Create Sample, navigáció, keresés és kijelölés vezérlők nagyított betűk alatt sem fedik egymást
Version 1.55.1
Javítva
- A ViewerInteractionLab most a Prev, Next és Rotate gombokat a második eszköztársorra helyezi, elkerülve az Open PDF és Create Sample közötti induláskori átfedést
Version 1.55.0
Hozzáadva
- Szó-kijelölés híd a "read it, select it" olvasáshoz: a
TPdfView.SelectWordBoxés aSelectWordSpanegyetlen word boxot vagy ugyanazon oldalon lévő word box-sávot választ ki (PageWordBoxesalapján) a karaktertartományaik szerint, így a jelenleg olvasott szó vagy sor ki is jelölhető és másolható WordBoxIndexAtCharIndexa karakterindexet visszavezeti ahhoz a word boxhoz, amelyik tartalmazza azt, így a TTS olvasási kurzor előrehaladásakor szavankénti kiemelés vezérelhető
Version 1.54.0
Hozzáadva
- Hangalapú űrlapkitöltő hozzáférők, amelyek a fókuszált mezőt közvetlenül a logikai kurzorból olvassák: a
FocusedFormFieldValue,FocusedFormFieldNameésFocusedFormFieldDetailsaTPdf-en és aTPdfView-ben a jelenlegi mező értékét, ember által olvasható nevét (/TUtooltip,/T-re visszalépve) és teljesTPdfFormFieldInfo-ját (típus, flag-ek, opciók) adják vissza, vagyis mindent, amit egy hangalapú UI-nak ki kell mondania, miközben végiglép egy űrlapon
Javítva
FocusedFormFieldValuea mezőt aFocusedFormFieldIndexalapján olvassa, nem a pdfium interaktív fókusza alapján, így a hangvezérelt űrlapkitöltő akkor is a helyes értéket kapja, ha nincs képernyőn látható kurzor (a meglévőFocusedFormFieldTexttovábbra is a pdfium fókuszt tükrözi, és változatlan)
Version 1.53.0
Hozzáadva
- Szó szintű kiemelés támogatás: a
TPdf.PageWordBoxesés aTPdfView.PageWordBoxesegy oldaltTPdfWordBoxrekordokra bont, amelyek mind a szó szövegét, mind a karaktertartományát és egy oldaltérbeli befoglaló téglalapot hordoznak, így az akadálymentességi olvasó sorban kiemelhet minden kimondott szót ("karaoke" olvasás) a téglalap átadásával aSetReadingHighlight-nak BuildWordBoxesönállóan is kiteszi a tokenizer lépést, és az oldalszöveget szóboxokká alakítja karaktertartományokkal
Version 1.52.0
Hozzáadva
- Alacsony látású megjelenítési segédek a
InvertPdfBitmap,GrayscalePdfBitmapésDuotonePdfBitmapfüggvényekkel in-place színtranszformációkat alkalmaznak egy renderelt 32 bites bitmapre, így az akadálymentességi olvasó invertált / dark-mode, szürkeárnyalatos vagy egyedi kétszínű sémában is megjelenítheti az oldalakat (például sötét háttér világos szöveggel) alacsony látású felhasználóknak - A transzformációk pixelenként futnak, és VCL-en és Lazarus/LCL-en azonosan viselkednek, a bitmap méreteit változatlanul hagyva
Version 1.51.0
Hozzáadva
- Mondat szintű olvasási egységek az asszisztív hallgatva-olvasáshoz: a
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsésTPdfView.ReadingUnitsa hozzáférhető tartalmi folyamot rendezett, mondatméretűTPdfReadingUnitrekordokra linearizálják — mindegyik hordozza a kimondandó szöveget, a szemantikai típust, az oldalt, a kiemelési téglalapokat és a nyelvi címkét, így egy képernyőolvasó alkalmazás egyenként tud végiglépni egy oldalon vagy a teljes dokumentumon - Szemantikus navigáció a
NextReadingUnitOfKindsegítségével, amely lehetővé teszi, hogy egy hangvezérelt felület kézzel végigpásztázás nélkül ugorjon a következő vagy előző címsorra, ábrára, listatételre vagy táblacellára BuildReadingUnitsbármelyTPdfContentFragmentsgyűjteményt közvetlenül reading unitokká alakít: a címsorok és az ábra/alt leírások egyben maradnak, a bekezdések mondathatárok mentén bomlanak, a tizedespontok megmaradnak, és az olvasási kurzor egyszerű, a hívó által birtokolt index
Version 1.50.0
Hozzáadva
ValidatePdfAmost már olyan PDF 1.5+ dokumentumokat is meg tud vizsgálni, amelyek a katalógust, az OutputIntentet vagy más szótárakat tömörített object stream-ekben tárolják (/Type /ObjStm) Az object stream-eket kibontja és a bennük lévő objektumokat feloldja, így az ilyen dokumentumokat az érdemeik alapján validálja ahelyett, hogy hiányzó PDF/A jelölésekkel jelentené
Version 1.49.5
Javítva
ValidatePdfAtöbbé nem jelenti problémának a hiányzópdfaExtension:schemasleírást. A PDF/A identifier schema (pdfaid) közismert, ezért sem a veraPDF, sem a PDF/A-2/-3 nem követel hozzá extension-schema leírást, és ennek hiánya korábban minden szabályos harmadik fél általi PDF/A-t hibásan jelzett. A könyvtár által maga előállított dokumentumok továbbra is tartalmazzák a leírást
Version 1.49.4
Javítva
ValidatePdfAmost felismeri a konformitási szintet akkor is, amikor a PDF/A identifier XML attribútumokként van írva (pdfaid:part="2") nem pedig gyermekelemként, így az attribútum formájú dokumentumokat többé nem jelentik ismeretlen szinttel. Ez azt is kijavítja, hogy egy fel nem ismert szint korábban az adott részre vonatkozó ellenőrzéseket visszavitte a szigorú PDF/A-1 szabályokra, és tévesen jelölte azokat a beágyazott fájlokat és átlátszóságot, amelyeket a PDF/A-2 és PDF/A-3 megenged
Version 1.49.3
Javítva
ValidatePdfAmost megvizsgálja a PDF 1.5+ dokumentumokat akkor is, ha a kereszt-referencia adataik cross-reference streamben vannak (olyan fájlokban, amelyekben nincstrailerkulcsszó) A konformitási szintet, a trailer/ID-t és a többi jelölőt a cross-reference stream szótárából olvassa, így az ilyen dokumentumokat az érdemeik alapján validálja ahelyett, hogy teljesen nem konformként jelentene
Version 1.49.2
Javítva
ValidatePdfAtöbbé nem jelent hamis nem beágyazott font hibát olyan dokumentumokra, amelyek minden fontjukat beágyazzák. A korábbi heurisztika a/FontDescriptortokenek számát hasonlította a beágyazott fontprogramokhoz, de minden beágyazott font két/FontDescriptortokent ad hozzá (a font szótárhivatkozást és a descriptor objektumot), így minden beágyazott fontos fájl tévesen jelölve lett. Az ellenőrzés most csak azt a dokumentumot jelenti, amely fontokra hivatkozik, de egyáltalán nem ágyaz be fontprogramot, összhangban a megfelelőValidatePdfUajavítással
Version 1.49.1
Javítva
- A PDF/A kimenet most megfelel a veraPDF szerinti PDF/A-1b és PDF/A-1a előírásoknak: a beágyazott sRGB OutputIntent ICC profilfolyam (
/DestOutputProfileáltal hivatkozva) most deklarálja a kötelező/Nkomponensszámot (3 a beépített RGB profilhoz), ahogy az ISO 19005-1 6.2.3.2 előírja. ASaveAsPdfAáltal előállított dokumentumok korábban elbuktak a szigorú PDF/A-1 validáláson, mert a célprofil-folyam kihagyta a/N-t; az érték az ICC profil fejlécéből származik, így egy hívó által megadott CMYK vagy Gray profil is a helyes számot kapja
Version 1.49.0
Javítva
ValidatePdfUatöbbé nem jelent hamis hiányzó XMP azonosítást szabályszerű taggelt PDF-ekre — a PDF/UA azonosító (pdfuaid:part), adc:title, az XMP dátumok és a trailer/IDmost az eredeti dokumentumbájtokból olvashatók, nem az újra mentett másolatból, amelyből hiányzik a/MetadataXMP stream és a cross-reference-stream fájlok esetében a trailer/IDValidatePdfUafontbeágyazás-ellenőrzése kijavult, így az a dokumentum, amely minden fontját beágyazza, többé nem kap nem beágyazott font jelzést; most csak azt a dokumentumot jelöli, amely fontokra hivatkozik, de egyáltalán nem ágyaz be fontprogramotValidatePdfUamost elfogad egyFormulaszerkezet-elemet, amelynek alternatív szövegétActualTextadja meg, nem pedig egyAltbejegyzés (ISO 14289-1 §7.7), összhangban a meglévőFigureszabállyal
Version 1.48.0
Hozzáadva
TPdfViewprogramozott szövegkijelölése: aSelectTextRange(oldal- és karaktertartomány alapján) és aSetSelection(explicit, oldalankénti tartományokkal) kódból jelöl ki szöveget — például egy bekezdés felolvasásához és kiemeléséhez; a kijelölés változásakor mindkettő újrarajzol és kiváltja azOnSelectionChangeeseményt. ASelectionRangesaz aktuális kijelölést oldalankénti karaktertartományokként olvassa ki, aSelectionRectanglespedig a téglalapokat oldalkoordinátákban adja vissza egyéni kiemeléshez vagy odagörgetéshez
Version 1.47.0
Hozzáadva
- Űrlapmező-navigáció hangvezérelt űrlapkitöltéshez, mind a
TPdf, mind aTPdfViewesetén:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusésFocusedFormFieldText. Ezek egy logikai mezőkurzort mozgatnak az oldal widgetmezői között tab sorrendben, a végeken visszafordulva, így a kisegítő olvasó végig tud haladni az űrlapon, minden mezőt be tud jelenteni aFormFieldInfo[Index].AlternateNamealapján (a /TU tooltip), és ki tudja tölteni aFormField[Index]használatával TPdfView.OnFormFieldFocusChangeesemény, amely akkor fut le, amikor a mezőkurzor elmozdul — az új mezőindexet hordozza, vagy törléskor -1-et
Version 1.46.0
Hozzáadva
- Kisegítő technológiás felolvasó tartalomfolyam: a
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentésTPdfView.ReadableContentegy rendezett, szemantikusTPdfContentFragmentelemekből álló listát ad vissza, amelyek mindegyike hordozza a beszélt szöveget (valós glyphjekek, vagy ábráknálActualText/Alt), egy fragmensfajtát (címsor szinttel, bekezdés, ábra, listaelem, táblázatcella, hivatkozás, egyszerű), a nyelvet, az 1-alapú oldalt, valamint a blokk- és sornkénti kiemelő téglalapokat. A címkézett PDF-ek a szerkezetfából logikai olvasási sorrendben kerülnek linearizálásra; a címkézetlen oldalak renderelési sorrendre térnek vissza, így bármely dokumentum felolvasható - Szinkronizált olvasási kiemelés a
TPdfView-ben: aSetReadingHighlight,ClearReadingHighlightés a publikáltReadingHighlightColorkiemeli az éppen olvasott blokkot a keresési és kijelölési rétegek fölött - Új publikus típusok
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindésTPdfReadingOrderSource, valamint az újClassifyStructTypesegéd
Version 1.45.0
Hozzáadva
- A
ValidatePdfUamost már a valós címkézett struktúrafát is bejárja, és három nagy bizonyosságú tartalmi hibát jelent, amelyeket a bájtszintű vizsgálat nem tud kimutatni: egyFigureelemet Alt bejegyzés ésActualTextnélkül (ISO 14289-1, 7.3), egy Alt attribútum nélküliFormulaelemet (7.7), valamint egy egyedi ID nélküliNoteelemet (7.9). Ezeket három újTPdfUaValidationIssueérték jelzi:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltéspvuaiNoteMissingId. Címkézetlen dokumentumoknál a fa bejárása kimarad - Az új nyilvános segéd, a
ValidatePdfUaStructureElements, ugyanezeket a struktúrafás szabályokat alkalmazza egy lapított elemlistára (ahogyan aTPdf.StructureElementsvisszaadja), így az ellenőrzések teljes dokumentum betöltése nélkül is futtathatók vagy egységtesztelhetők
Version 1.44.5
Javítva
- A
ValidatePdfAbetűbeágyazási ellenőrzése (pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) most már a nem beágyazott egyszerű fontokat is felismeri, amelyekhez nem tartozik/FontDescriptor, mindenekelőtt a 14 szabványos Type 1 fontot (Helvetica, Times, Courier és társai), amelyeket a PDF/A minden kivétel nélkül beágyazva követel meg. Korábban az ilyen font észrevétlen maradt; az ellenőrzés most az egyszerűfont-szótárakat (/Type1,/TrueType,/MMType1) is összeszámolja a beágyazott fontprogramokkal, a 1.44.3-as PDF/UA javítást követve
Version 1.44.4
Javítva
- A
ValidatePdfVTmost elutasítja a hibás ISO 16612-2 §6.5 DPart fákat, ahol a/DPartsegy lapos hivatkozási tömb a szükséges tömbök tömbje helyett, vagy ahol egy levélszintű DPart a/Startoldalt/End-ként ismétli, noha a tartomány csak egy oldalt tartalmaz - A
ValidatePdfVTmost a/NodeNameListneveit XML NMTOKEN értékként ellenőrzi a PDF név#xxescape bővítése után, így az érvénytelen hierarchiaszint-nevek apvviMissingDPartRootértéken keresztül jelentenek hibát ahelyett, hogy használható DPart struktúraként elfogadnánk őket
Version 1.44.3
Javítva
- A
ValidatePdfUabetűbeágyazási ellenőrzése (pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) most már a/FontDescriptornélküli be nem ágyazott egyszerű fontokat is felismeri, mindenekelőtt a 14 szabványos Type 1 fontot (Helvetica, Times, Courier és társaik), amelyekhez a PDF/UA nem ad beágyazási mentességet. Korábban egy ilyen font észrevétlen maradt, és az azt használó dokumentum megfelelőként jelenhetett meg; az ellenőrzés most az egyszerűfont-szótárakat (/Type1,/TrueType,/MMType1) is beszámítja a beágyazott fontprogramokkal szemben
Version 1.44.2
Javítva
- A
ValidatePdfVTmost a jelen lévő, de fel nem ismertpdfvtid:GTS_PDFVTVersionjelölőtpvcUnknown-ként hagyja meg ahelyett, hogypvcNone-ra degradálná. Így az olyan érvénytelen fájlszintű karakterláncok, mint aPDF/VT-2s, megkülönböztethetők maradnak azoktól a dokumentumoktól, amelyekben egyáltalán nincs PDF/VT jelölő; a PDF/VT-2s-t az ISO 16612-2 Annex A MIME stream fejléce azonosítja, nem a PDF-fájl XMP jelölője - A
/DPartRootellenőrzés most szorosabban vizsgálja az ISO 16612-2 §6.5 fa szemantikáját: a/DPartRootNodeés a/NodeNameListaz aktuális DPart-mélységet kell leírja, a DPart szülőkapcsolatoknak fát kell alkotniuk, a/Startés a/DPartskölcsönösen kizárják egymást, és minden oldal/DPartbejegyzésének ugyanabban a mélységi sorrendben kell a lefedő levél DPartra mutatnia, mint az oldalfának
Version 1.44.1
Javítva
- A
SaveAsPdfVTmost egy minimális ISO 16612-2 §6.5 Document Part Hierarchy-t ír, amikor a forrás PDF nem tartalmaz használható/DPartRoot-ot. A generált fa minden oldalt/DPartrévén kapcsol össze, megőrzi a már létező érvényes hierarchiát, és a gazdagabb recipient/DPM metaadatokat a hívó munkafolyamatra bízza - A
ValidatePdfVTmost a használható DPart struktúrát is ellenőrzi, a PDF/VT XMP értékeket RDF attribútumokból és elem szövegből is beolvassa, és kikényszeríti a pontos PDF/VT–PDF/X alappárosítást: a PDF/VT-1 PDF/X-4-et, a PDF/VT-2 pedig PDF/X-4p, PDF/X-5g vagy PDF/X-5pg formát igényel - A
TPdfVTSaveOptions.Conformance = pvc2többé nem ír érvénytelen egyfájlos PDF/VT-2 jelölőket. Az egyfájlos író PDF/VT-1-re normalizálja a kimenetet, mert a PDF/VT-2 fájlkészlet-szemantikát igényel
Version 1.44.0
Hozzáadva
- A
ValidatePdfUamost már a bájtszinten ellenőrizhető tartalmi PDF/UA hibákat is jelentik a fájlformátum-jelölők mellett: egy beágyazatlan fontprogramot (ISO 14289-1, 7.21.4), egy olyan fontot, amelyhez nincs/ToUnicodeCMap, ha nincs kivételes egyszerűfont-kódolás (7.21.7), valamint egy olyan dokumentumot, amely tartalmaz annotációkat, de nem deklarál oldalonkénti/Tabs /Stab sorrendet (7.18.3) - Három új
TPdfUaValidationIssueérték —pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeéspvuaiMissingTabsOrder— jelenik meg aValidatePdfUaés a preflight jelentés kimenetében. Ezek durva heurisztikák, amelyek inkább preflight jelzések, mint teljes ISO 14289-1 ellenőrzés
Version 1.43.1
Javítva
- A
SaveAsPdfUamost kényszeríti az ISO 14289-1, 7.1 által előírt/ViewerPreferences/DisplayDocTitle trueés/MarkInfo/Marked true/Suspects falsekatalógusbejegyzéseket akkor is, ha a forrásdokumentum már tartalmazza ezeket a szótárakat hiányos vagy ellentmondásos értékekkel. Korábban a jelölők csak akkor kerültek be, ha a szótárak teljesen hiányoztak, így például egyDisplayDocTitlenélküli/ViewerPreferencesvagy egy/Marked falseértékű/MarkInfoszabálytalan fájlba tért vissza - A már létező
/ViewerPreferencesvagy/MarkInfoszótárban lévő meglévő kulcsok megmaradnak, a közvetett hivatkozásként megadott szótárat pedig a kötelező kulcsok alkalmazása előtt feloldjuk
Version 1.43.0
Hozzáadva
- A
ValidatePdfAmost már a PDF/A-2 / PDF/A-3 szabályokat is alkalmazza a beágyazott és kapcsolt fájlokra, valamint a Level U szövegre. A beágyazott fájlok továbbra is elutasításra kerülnek PDF/A-1 esetén; PDF/A-3 esetén az a beágyazott fájl, amelyből hiányzik a szükséges/AFRelationshipkulcs (ISO 19005-3 Annex E), hibaként jelzésre kerül, míg a PDF/A-2 mellékletek megengedettek (saját megfelelőségük nem kerül rekurzívan ellenőrzésre). Egy újpvaiUnicodeMappingMissingprobléma jelzi azt a PDF/A-2u vagy PDF/A-3u dokumentumot, amelynek fontjai nem tartalmaznak/ToUnicodeleképezést (ISO 19005-2 6.2.11.7). Az átlátszóság és az opcionális tartalom továbbra is csak PDF/A-1 esetén kerül jelzésre
Version 1.42.0
Hozzáadva
- A PDF/A-2 (ISO 19005-2) és a PDF/A-3 (ISO 19005-3) most mindhárom megfelelőségi szinten — a, b és u — támogatott a
SaveAsPdfA, aValidatePdfAés aPdfAConformancetulajdonság által. ATPdfAConformancefelsorolás megkapja apac2a,pac2u,pac3aéspac3uértékeket (a PDF/A-1-nek nincs Level u szintje). Mentéskor a megfelelőpdfaid:part(2 vagy 3) éspdfaid:conformance(A, B vagy U) kerül kiírásra, miközben megmarad az ISO 19005-2 által kompatibilitásból megtartottGTS_PDFA1OutputIntent altípus. Egy Level A kérés továbbra is a megfelelő Level B-re vált vissza (bármely részhez), ha a dokumentum nem tartalmazza az adott szinthez szükséges címkézett struktúrát
Version 1.41.0
Hozzáadva
- A
ValidatePdfAmost már a jelölőbeszúrás által nem javítható tartalmi PDF/A hibákat is észleli a már jelentett szerkezeti jelölők mellett: JavaScript és más tiltott műveletek, additional-actions (/AA), beágyazott fájlok,LZWDecode, átlátszóság (soft maskok és transparency groupok), opcionális tartalom (/OCProperties), tiltott annotáció-altípusok (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances trueés/XFA, olyan fontok, amelyek descriptorából hiányzik a beágyazott fontprogram, valamint a címkézett struktúra nélküli Level A állítás az ISO 19005-1 6.8 szerint. Az átlátszóság-, opcionális tartalom- és beágyazott fájlellenőrzés csak PDF/A-1-re vonatkozik, mert ezek a funkciók PDF/A-2-ben és PDF/A-3-ban megengedettek. Az újTPdfAValidationIssueértékek mindegyik esetet külön jelzik; a meglévő értékek változatlanok
Version 1.40.3
Javítva
- A
SaveAsPdfAmostantól minden forrásdokumentum-titkosítást eltávolít a PDF/A kimenet előállítása előtt. Az ISO 19005-1 6.1.3 megtiltja a trailer/Encryptkulcsát, de a mentési útvonal korábban megőrizte a forrás biztonsági kezelőjét, így egy titkosított dokumentum PDF/A-ként való mentése titkosított, nem megfelelő fájlt eredményezett. A PDF/A mentés mostantól először dekódolja a dokumentumot. A titkosítatlan dokumentumokat ez nem érinti
Version 1.40.2
Javítva
- Megállítottuk, hogy a
SaveAsPdfAhamis PDF/A Level A megfelelőségi állítást tegyen. Amikor Level A (pac1a) van kérve, de a forrásdokumentumból hiányoznak az ISO 19005-1 6.8 által megkövetelt címkézett struktúra jelölők — egy/StructTreeRoota katalógusban és egy/Marked trueértékű/MarkInfoszótár — a mentett fájl most a megfelelő Level B-ként van azonosítva (pdfaid:conformance=B) ahelyett, hogy Level A-t állítana. A tisztán vizuális PDF/A-1b kimenet nem érintett
Version 1.40.1
Javítva
- Szigorítottuk a PDF verzió-megfelelőség ellenőrzését, így a
SetOCGState(set-optional-content-group-state) műveletet a rendszer a PDF 1.5 egyik funkciójaként ismeri fel. ASetOCGStateműveletet tartalmazó PDF 1.2, 1.3 vagy 1.4 célverzióba mentés most elutasításra kerül, hogy megfeleljen az ISO 32000-1-nek (Table 198); korábban az ilyen művelet átcsúszhatott az alacsonyabb verziójú kimenetbe. A különálló, elavult PDF 1.2SetStateművelet továbbra is elfogadott PDF 1.2-től felfelé
Version 1.40.0
Hozzáadva
- Kötve lett az upstream
FPDFPageObj_AddExistingMark()API, amely egy meglévő tartalomjelet csatol egy oldalobjektumhoz. Amikor egymást követő oldalobjektumok ugyanazt a jelet osztják meg, a mentett PDF egyetlen, mindegyiküket átfogó jellé vonja össze őket; a nem egymást követő objektumok külön másolatokat kapnak - Kötve lett a
FPDFTextObj_SetFontSize()upstream API, amely egy meglévő szövegobjektum pontméretét módosítja, kiegészítve a meglévőFPDFTextObj_GetFontSize()kötést
Módosítva
- Frissítve lettek a csomagolt PDFium futtatókörnyezet DLL-ek (Win32 és Win64, standard és V8 build) a 2026-06-02 upstream pillanatképre
Version 1.39.53
Módosítva
- Megváltoztattuk a Delphi
PDFViewer,SplitViewésMultiPageViewerdemoit úgy, hogy a dokumentumokat alapértelmezés szerint aZoom to Pagemódban nyissák meg - A kezdeti renderelés most a teljes oldalt a megjelenítő felületéhez illeszti, mielőtt a felhasználó kézi nagyítási szintet választana
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.53-ra
Version 1.39.52
Módosítva
- Kibővítettük a
Demo\Lazarus\CreatePDFmintát, így a bevezető példa most kétoldalas PDF-et állít elő vektoros görbékkel, táblatartalommal, beágyazott képpel, szöveges annotációval, elforgatott szöveggel és áttekinthetőbb dokumentumépítési útmutatóval - Igényes
README.htmloldalak készültek minden Delphi, C++Builder és Lazarus demo mappához, lecserélve a megmaradt csak szöveges demo README-t egy böngészőben olvasható útmutatóra - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.52-re
Version 1.39.51
- Kibővítettük a
Demo\Delphi\PreflightReportClikötegjelentéseit, amelyek most a kijelölt szabványokhoz tartozó Pass, Action required és Review eredmények összesített állapotértékeit is tartalmazzák - A fájlszintű sorok most az action-required és review darabszámokat is tartalmazzák a TXT / HTML / JSON / CSV összesítésekben, így a CI-artifaktok könnyebben áttekinthetők anélkül, hogy minden generált jelentést meg kellene nyitni
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.51-re
Version 1.39.50
- Kibővítettük a
Demo\Delphi\PreflightReportClimappás köteg módját, így abatchdir=folderösszegyűjti a talált PDF útvonalakat, rendezi őket, majd stabil sorrendben generálja a jelentéseket - A rekurzív könyvtárvizsgálatok most reprodukálható jelentésrendet és összegző sorokat adnak, miközben a kifejezett
batch=list.txtfeldolgozás továbbra is megőrzi a lista fájl sorrendjét - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.50-re
Version 1.39.49
- Kibővítettük a
Demo\Delphi\PreflightReportClikötegjelentéseit, hogy rögzítsék a futási beállításokat: forrástípus, forrásútvonal, rekurzív állapot, kimeneti könyvtár, jelentésformátum, kijelölt szabványok ésfailon=mód - A JSON-összesítések most tartalmaznak egy
runobjektumot, a TXT és HTML összesítések futási beállítások szakaszt mutatnak, a CSV sorok pedig ugyanazokat az audit oszlopokat ismétlik a táblázatos és CI-folyamatokhoz - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.49-re
Version 1.39.48
- Kibővítettük a
Demo\Delphi\PreflightReportClikötegkimenet-nevezését, így azonos nevű bemeneti fájlok, amelyek ugyanazt aoutdir=értéket osztják meg, többé nem írják felül egymás generált jelentéseit - A kötegfutások most
-2,-3és későbbi utótagokat fűznek hozzá, amikor egy generált jelentési útvonalat már kiosztottak ugyanabban a futásban, és az összesítések rögzítik a végleges, ütközésmentes jelentési útvonalat - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.48-ra
Version 1.39.47
- Kibővítettük a
Demo\Delphi\PreflightReportClikötegjelentéseit, így a TXT és JSON kimenetek most tartalmazzák az összes fájlra, feldolgozott fájlra, sikertelen fájlra, hibára ésfailon=egyezésre vonatkozó összesített értékeket - A CSV-összesítések továbbra is tiszta soros táblák a meglévő fogyasztók számára, míg a HTML-összesítések a műszerfal fejlécében ugyanazokat az összesített metrikákat mutatják
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.47-re
Version 1.39.46
- Kibővítettük a
Demo\Delphi\PreflightReportClieszközt asummary=batch.html/.htmlehetőséggel, így a kötegfutások TXT / CSV / JSON manifesztumok mellé böngészőben olvasható műszerfalat is ki tudnak adni - A HTML-összesítések megmutatják a total, processed, failed, issue és
failon=egyezési metrikákat, majd felsorolják az egyes bemeneteket a jelentéshivatkozásokkal, állapottal, darabszámokkal és hiba szöveggel - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.46-ra
Version 1.39.45
- Kibővítettük a
Demo\Delphi\PreflightReportClieszközt abatchdir=folderésrecursiveopciókkal, így a szkriptek közvetlenül átvizsgálhatják a PDF mappákat anélkül, hogy előbb lista fájlt kellene írniuk - A könyvtáras köteg mód újrahasznosítja a listaalapú köteg mód
outdir=,summary=,standards=ésfailon=viselkedését, miközben a nem rekurzív vizsgálat csak a kijelölt mappát nézi, arecursivepedig az almappákat is bevonja - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.45-re
Version 1.39.44
- Kibővítettük a
Demo\Delphi\PreflightReportClieszközt asummary=batch.csv|json|txtlehetőséggel, így a kötegfutások a fájlszintű jelentések mellett gépileg olvasható manifesztumot is ki tudnak adni - A kötegösszesítések minden bemeneti útvonalat, jelentési útvonalat, állapotot, szabványdarabszámot, átment darabszámot, hibadarabszámot,
failon=egyezési állapotot és hiba szöveget tartalmaznak a CI-feladatokhoz és külső szkriptekhez - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.44-re
Version 1.39.43
- Kibővítettük a
Demo\Delphi\PreflightReportClieszközt abatch=list.txtésoutdir=reportsopciókkal, így a szkriptek egyetlen futásban tudnak preflight jelentéseket készíteni egy PDF-listához - A köteg mód kihagyja az üres és
#megjegyzés sorokat, minden.preflight.<ext>jelentésnevet a bemeneti PDF-ből származtat, folytatja a feldolgozást fájlszintű hibák után is, és visszatérés előtt összegzi a feldolgozott és sikertelen fájlokat - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.43-ra
Version 1.39.42
- Kibővítettük a
Demo\Delphi\PreflightReportClieszközt afailon=none|issues|action|reviewopcióval, így a CI-feladatok a generált preflight eredményeket determinisztikus kilépési kódokká alakíthatják - A CLI most 2-es kilépési kódot ad vissza, amikor egy kiválasztott
failon=szabály a jelentésfájl és az opcionális csatolt jelentés-PDF létrehozása után illeszkedik, míg a futásidejű hibák továbbra is 1-es kilépési kódot adnak vissza - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.42-re
Version 1.39.41
- A
Demo\Delphi\PreflightReportClikiegészült azattach=output.pdfopcióval, így a generált preflight jelentés dokumentumszintű mellékletként beágyazható egy új PDF-másolatba - A CLI a generált TXT / HTML / Markdown / JSON / CSV jelentésfájlt a lemezen tartja, és megtagadja, hogy visszacsatolja az eredeti bemeneti PDF útvonalába, csökkentve a véletlen felülírás kockázatát
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.41-re
Version 1.39.40
- Hozzáadva a
Demo\Delphi\PreflightReportCli, egy Delphi konzolos kísérő, amely megnyitó nézet nélkül teszi szkriptezhetővé aFPdfPreflightReportgenerálást - A CLI támogatja a paraméter nélküli minta létrehozást, az input / output argumentumokat, az opcionális jelszót, a
text/html/md/json/csvkimeneti formátumokat, valamint astandards=szűrést PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R és PDF/VT számára - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.40-re
Version 1.39.39
- Kibővítettük az
FPdfPreflightReportegységet aTPdfPreflightReport.ToMarkdownésSaveMarkdownToFileműveletekkel, így a preflight jelentések hibanaplóbarát Markdown formátumban is exportálhatók - Frissítettük a Delphi, C++Builder és Lazarus
PreflightReportmintákat Markdown előnézet-váltással és Save MD műveletekkel a meglévő TXT / HTML / JSON / CSV munkafolyamat mellé - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.39-re
Version 1.39.38
- Kibővítettük a Delphi, C++Builder és Lazarus
SecurityAuditmintákat JSON audit jelentés exporttal a meglévő TXT mentés / másolás munkafolyamat mellé - A JSON jelentés tartalmazza a
format,generatedAt,summary,findingCountés a strukturáltfindingssorokat a severity, area és detail mezőkkel - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.38-ra
Version 1.39.37
- Kibővítettük az
FPdfPreflightReportegységet aTPdfPreflightReport.ToCsvésSaveCsvToFileműveletekkel, így a preflight jelentések táblázatbarát CSV formátumban is exportálhatók - Frissítettük a Delphi, C++Builder és Lazarus
PreflightReportmintákat CSV előnézet-váltással és Save CSV műveletekkel a meglévő TXT / HTML / JSON munkafolyamat mellé - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.37-re
Version 1.39.36
- Kibővítettük az
FPdfPreflightReportegységet aTPdfPreflightReport.IssueCategoryCountstulajdonsággal, valamint az újrahasznosíthatóTPdfPreflightIssueCategoryCountésTPdfPreflightIssueCategoryCountstípusokkal a jelölőszintű hibák kategóriánkénti összegzéséhez - Frissítettük a
TPdfPreflightReport.ToText,ToHtmlésToJsonkimeneteket, így a generált PreflightReport eredmény hibakategória-összesítéseket is tartalmaz az egyes szabványsorok és a részletes javítási javaslatok mellett - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.36-ra
Version 1.39.35
- A kibővített
PrintDialogminta átnevezvePrintPreferencesnévre Delphi, C++Builder és Lazarus alatt, hogy a demó neve mostantól illeszkedjen a PDF-szerzői nyomtatási beállítások, N-up nyomtatás, páros/páratlan szűrés, szürkeárnyalatos, cellaszegély és kétoldalas leképezés munkafolyamatához - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.35-re
Version 1.39.34
- Kibővítettük a
Demo\Delphi\PrintPDFmintát húzd és ejtsd PDF betöltéssel, és dokumentáltuk a meglévőDemo\CBuilder\PrintPDFmunkafolyamatot a Delphi és Lazarus PrintPDF minták mellett - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.34-re
Version 1.39.33
- Hozzáadva a
Demo\CBuilder\SplitView, amellyel teljessé vált a SplitView mintamátrix Delphi, C++Builder és Lazarus környezetben - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.33-ra
Version 1.39.32
- Hozzáadva a
Demo\Lazarus\SplitView, amely egymás melletti PDF-összehasonlítást hoz a Lazarusba két- vagy hárompaneles elrendezéssel, aktív nézetes navigációval, szinkronizált parancsokkal, nagyítási előbeállításokkal és forgatással - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.32-re
Version 1.39.31
- Hozzáadva a
Demo\Lazarus\PrintPDF, amely a standard PDF nyomtatási munkafolyamatot hozza el Lazarusba előnézeti navigációval, oldaltartományokkal, példányszámmal, összefűzési móddal, előrehaladással és megszakítással - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.31-re
Version 1.39.30
- Hozzáadva a
Demo\Lazarus\FontProperties, amellyel teljessé vált a FontTulajdonságok mintamátrix Delphi, C++Builder és Lazarus környezetben - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.30-ra
Version 1.39.29
- Hozzáadva a
Demo\CBuilder\FontProperties, amely indexelt karakter- és fontmetaadat-vizsgálatot hoz a C++Builderbe a Delphi minta mellé - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.29-re
Version 1.39.28
- Hozzáadva a
Demo\Delphi\ExtractTextPages, amellyel teljessé vált az oldalszintű szövegkinyerési mintamátrix Delphi, C++Builder és Lazarus környezetben - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.28-ra
Version 1.39.27
- Hozzáadva a
Demo\Lazarus\PrintDialog, amellyel teljessé vált a PrintDialog mintamátrix Delphi, C++Builder és Lazarus környezetben - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.27-re
Version 1.39.26
- Hozzáadva a
Demo\CBuilder\PrintDialog, amely az N-up nyomtatási és PDF szerzői nyomtatási beállítások munkafolyamatát hozza a C++Builderbe a Delphi minta mellé - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.26-ra
Version 1.39.25
- Hozzáadva a
Demo\CBuilder\ViewerInteractionLab, amely teljessé teszi a ViewerInteractionLab mintamátrixot Delphi, C++Builder és Lazarus között - Frissítettük a könyvtár build munkafolyamatát és a Win64 C++Builder csomagkimeneteket, hogy a
TPdfViewnézet interakciós metódusai helyesen linkelődjenek a Win64 demókban - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.25-re
Version 1.39.24
- Hozzáadva a
Demo\Lazarus\ViewerInteractionLab, amely a fókuszált nézegető-interakciós munkafolyamatot hozza el Lazarusba a Delphi minta mellett - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.24-re
Version 1.39.23
- Hozzáadva a
Demo\Lazarus\SearchAndSelect, amellyel teljessé vált a SearchAndSelect mintamátrix Delphi, C++Builder és Lazarus környezetben - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.23-ra
Version 1.39.22
- Hozzáadva a
Demo\CBuilder\ContentExtractionLabésDemo\Lazarus\ContentExtractionLab, amelyek a többkategóriás tartalomkinyerési munkafolyamatot elhozzák minden támogatott demo IDE-be - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.22-re
Version 1.39.21
- Kibővítettük a
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportésDemo\CBuilder\PreflightReportmintákat egy előnézeti formátumválasztóval, így a felhasználók mentés előtt megvizsgálhatják a szöveg vagy JSON kimenetet - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.21-re
Version 1.39.20
- JSON exporttal bővült az
FPdfPreflightReportaTPdfPreflightReport.ToJsonésSaveJsonToFilerévén, gépileg olvasható összesítéseket, szabványonkénti állapotot / prioritást, következő műveleteket és hiba részleteket adva - Frissítettük a
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportésDemo\CBuilder\PreflightReportmintákat Save JSON műveletekkel a TXT / HTML export mellé - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.20-ra
Version 1.39.19
- A
FPdfPreflightReportkiegészült aTPdfPreflightStatustípussal, a hibakategóriákkal, a szabványonkénti prioritással és a következő lépésre vonatkozó útmutatással a TXT / HTML jelentésekben - A
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportésDemo\CBuilder\PreflightReportfrissült, hogy az állapotot, prioritást, hibaszámot és a következő teendőt jelenítse meg az összefoglaló rácsban - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.19-re
Version 1.39.18
- Hozzáadva a
Demo\Lazarus\SecurityAudit, ezzel teljessé téve a Delphi, C++Builder és Lazarus demo mátrixot az olvasásvédett PDF kockázati felület auditmunkafolyamatához - A Lazarus minta felsorolja az engedélyeket, mellékleteket, JavaScript műveleteket, URI / Launch hivatkozás-annotációkat, webhivatkozásokat, aláírásokat, XFA állapotot, a V8 / XFA segéd elérhetőségét és a nem támogatott funkciók visszahívásait, majd TXT jelentésként menti vagy másolja a találati listát
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.18-ra
Version 1.39.17
- Hozzáadva a
Demo\CBuilder\SecurityAudit, amely a már meglévő Delphi minta mellé C++Builderben is elérhetővé teszi az olvasásvédett PDF kockázati felület auditmunkafolyamatát - A C++Builder minta felsorolja az engedélyeket, mellékleteket, JavaScript műveleteket, URI / Launch hivatkozás-annotációkat, webhivatkozásokat, aláírásokat, XFA állapotot, a V8 / XFA segéd elérhetőségét és a nem támogatott funkciók visszahívásait, majd TXT jelentésként menti vagy másolja a találati listát
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.17-re
Version 1.39.16
- Hozzáadva a
Demo\CBuilder\SearchAndSelect, amely az önálló SearchAndSelect nézetői munkafolyamatot hozza a C++Builderbe a meglévő Delphi minta mellé - A C++Builder minta PDF-eket hoz létre vagy nyit meg, az összes oldal találatait oldal / karakterindex előnézettel listázza, támogatja a Previous / Next és a dupla kattintásos navigációt, és a jelenlegi oldali találatokat a
HighlightSearchTextsegítségével emeli ki - Emellett elérhetővé teszi az
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangeés a kiterítettDisplayModeopciókat; a verziómetaadatok most 1.39.16-ot jeleznek
Version 1.39.15
- Hozzáadva a
Demo\CBuilder\WatermarkStamp, amellyel teljessé vált a Delphi, Lazarus és C++Builder demo mátrix az újrahasználható Form XObject vízjel- és bélyegmunkafolyamatokhoz - A C++Builder minta cél- és bélyeg-PDF-eket hoz létre, a bélyegoldalt a
CreateXObjectFromPagesegítségével újrahasznosítja,TPdfMatrixtranszformációkat alkalmaz, és középre igazított vízjeleket, sarokbélyegeket és oldalszámcímkéket ment - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.15-re
Version 1.39.14
- Hozzáadva a
Demo\Lazarus\WatermarkStamp, amely az újrahasználható Form XObject vízjel- és bélyegmunkafolyamatot hozza el Lazarusba - A Lazarus minta cél- és bélyeg-PDF-eket hoz létre, a bélyegoldalt a
CreateXObjectFromPagesegítségével újrahasznosítja,TPdfMatrixtranszformációkat alkalmaz, és középre igazított vízjeleket, sarokbélyegeket és oldalszámcímkéket ment - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.14-re
Version 1.39.13
- Hozzáadva a
Demo\CBuilder\PreflightReport, amellyel teljessé vált a Delphi, Lazarus és C++Builder demo mátrix az újrahasználhatóFPdfPreflightReportmunkafolyamathoz - A C++Builder minta a
FPdfPreflightReport.hppsegítségével készít szabványösszesítéseket, TXT jelentéselőnézeteket, TXT / HTML jelentésfájlokat és Open Last Report viselkedést - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.13-ra
Version 1.39.12
- Hozzáadva a
Demo\Lazarus\PreflightReport, amely a PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R és PDF/VT preflight jelentésmunkafolyamatot hozza Lazarusba - A Lazarus minta képes PDF-et nyitni vagy létrehozni, célstandardokat kiválasztani, az összegző sorokat és a TXT jelentéskimenetet előnézetben mutatni, TXT / HTML jelentéseket menteni, és megnyitni a legutóbb mentett jelentést
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.12-re
Version 1.39.11
- Kibővítettük a
Demo\Delphi\SearchAndSelectmintát egy összes oldalra kiterjedő keresési találati listával, amely rögzíti az oldalszámot, a karakterindexet és az előnézeti szöveget - Hozzáadva a Previous / Next találatnavigáció és a dupla kattintásos eredményugrás, miközben megmarad a jelenlegi oldalra vonatkozó
HighlightSearchTextviselkedés - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.11-re
Version 1.39.10
- Kibővítettük a
Demo\Delphi\SecurityAuditmintát Save Report és Copy Report műveletekkel, amelyek a jelenlegi összegzést és találati sorokat TXT audit jelentésként exportálják - A minta most törli a jelentés-export állapotát az auditpanel visszaállításakor, így a másolt vagy mentett jelentések összhangban maradnak a látható találatokkal
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.10-re
Version 1.39.9
- Kibővítettük a
Demo\Delphi\ContentExtractionLabmintát forrás-PDF mentéssel, jelentés vágólapra másolással és mind / egyik kategória kijelölési műveletekkel - A minta most érvényteleníti az aktuális jelentést, amikor a kategóriakijelölések megváltoznak, így a TXT / JSON exportok a látható kinyerési tartományt tükrözik
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.9-re
Version 1.39.8
- Hozzáadva a
Demo\Delphi\ContentExtractionLab, egy egységes tartalomkinyerési munkafolyamat minta dokumentum-metaadatokhoz, oldalszöveghez, oldalobjektumokhoz, képekhez, mellékletekhez, hivatkozásokhoz, annotációkhoz, könyvjelzőkhöz és font / karakter metrikákhoz - A minta képes meglévő PDF-et megnyitni vagy szintetikus PDF-et létrehozni szöveggel, képpel, melléklet- és annotációtartalommal, majd összegző sorokat és részletes TXT / JSON jelentéseket generálni
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.8-ra
Version 1.39.7
- Hozzáadva a
Lib\FPdfPreflightReport.pas, egy újrahasznosítható jelentéssegéd, amely aValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRésValidatePdfVTellenőrzéseket egyetlenTPdfPreflightReportobjektumba csomagolja - Hozzáadva a
Demo\Delphi\PreflightReport, egy munkafolyamat-minta, amely PDF-et nyit vagy hoz létre, kiválasztja a cél szabványokat, előnézetben megmutatja az összefoglaló sorokat és a javasolt teendőket, majd TXT vagy HTML jelentéseket ment - A generált jelentések kifejezetten leírják a beépített jelölőszintű ellenőrzési határt, így az alkalmazások szükség esetén dedikált tartalomszintű preflight eszközökkel párosíthatják őket
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok, a package project listák és a telepítő verziómetaadatai 1.39.7-re
Version 1.39.6
- Hozzáadva a
Demo\Delphi\SearchAndSelect, egy fókuszált nézegető munkafolyamat minta keresési kiemeléshez, szövegkijelöléshez, kijelölt szöveg előnézethez, másoláshoz, törléshez és kiterített megjelenítési módokhoz - A minta bemutatja a
HighlightSearchText, a match-case / whole-word keresési opciók, azAllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardésClearSelectionhasználatát anélkül, hogy új könyvtár API-t adna hozzá - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.6-ra
Version 1.39.5
- Kibővítve a
Demo\Delphi\ViewerInteractionLabegy SearchAndSelect-stílusú nézegető UX mintáváHighlightSearchText-tel, match-case / whole-word beállításokkal, kijelölt szöveg előnézettel és a meglévő kijelölési / vágólapvezérlőkkel - Kibővítettük a
Demo\Delphi\PrintDialogmintát a PDF szerzői nyomtatási beállítások vizsgálatához:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingés a láthatóSetPdfPrintPaperHandlingDevModeduplex leképezés - Hozzáadva a
Demo\Delphi\SecurityAudit, egy csak olvasható kockázati felületi minta, amely felsorolja az engedélyeket, mellékleteket, dokumentum JavaScriptet, URI / Launch hivatkozásokat, webhivatkozásokat, aláírásokat, XFA állapotot és a V8 / XFA segéd elérhetőségét - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.5-re
Version 1.39.4
- Hozzáadva a
Demo\CBuilder\ImageToPDFésDemo\Lazarus\ImageToPDF, amellyel teljessé vált az ImageToPDF mintamátrix Delphi, C++Builder és Lazarus környezetben - Az új minták többkép-kiválasztást, kiválasztott kép előnézetet, képenként egy PDF-oldalt, A4 álló / fekvő oldalméretet, középre igazított képméretezést, képenkénti előrehaladást és a mentés utáni generált PDF megnyitását mutatják be
- Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.4-re
Version 1.39.3
- Hozzáadva a
Demo\CBuilder\BatchExport, amely a többfájlos PDF to JPG export munkafolyamatot C++Builderben is elérhetővé teszi a meglévő Delphi és Lazarus minták mellett - A minta bemutatja a
LoadCustomDocument,IPdfCancellationTokenSource, a streameltTFileStreambemenet, a fájl- és oldalankénti előrehaladás, a megszakításkezelés, a DPI / minőség / jelszó bemenetek, valamint a befejezés utáni kimeneti mappa megnyitása használatát - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.3-ra
Version 1.39.2
- Hozzáadva a
Demo\Delphi\WatermarkStamp, egy futtatható Form XObject munkafolyamat minta, amely cél-PDF-et és újrahasználható bélyeg-PDF-et hoz létre, majd középre igazított vízjeleket, jobb felső bélyegeket és oldalszámcímkéket alkalmaz minden oldalon - A minta bemutatja a
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixésFPDFPageObj_SetMatrixhasználatát anélkül, hogy új könyvtár API-t adna hozzá - Frissítve a
Docs\en-us\Examples.html, hogy a jelenlegiTPdfMatrix.Handlemintát használja, amikor mátrixokat ad át aFPDFPageObj_SetMatrix-nek - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.2-re
Version 1.39.1
- Hozzáadva a
Demo\Delphi\ViewerInteractionLab, egy fókuszáltTPdfViewminta a megjelenítési módokhoz, illesztési módokhoz, oldal színeihez, forgatáshoz, felhasználói szövegkijelöléshez, vágólapműveletekhez ésDeviceToPagekoordinátavisszajelzéshez - Hozzáadva a
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLab, hogy a Lazarus felhasználók is lefuttathassák a PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R és PDF/VT validálási és jelölőkimeneti munkafolyamatot - Felsorolva lettek a szabványegységek a
Lib\37.0\PDFiumPas.dprojésLib\FPC\PDFiumLaz.lpkfájlokban, és kijavítottuk a DelphiSplitViewdemo buildet a duplikáltWinapi.ShellAPIimport eltávolításával - Kijavítottuk a Delphi demo köteg-build blokkolóit a
BatchExport,PDFViewer,MultiPageViewerésSplitViewesetén anélkül, hogy megváltozott volna a futásidejük - Kijavítottuk a C++Builder demo köteg-build kompatibilitást a
PDFViewerésMultiPageVieweresetén azzal, hogy a jelenlegi projektmódhoz anullptr-tNULL-ra cseréltük - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.1-re
Version 1.39.0
- Hozzáadva a
Demo\Delphi\StandardsLab, egy futtatható szabvány-munkafolyamat minta, amely PDF-et tölt be vagy hoz létre, lefuttatja aValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRésValidatePdfVTellenőrzéseket, majd az észlelt megfelelőséget, a siker / hibás állapotot és a hibaszámokat egyetlen rácsban jeleníti meg - A StandardsLab mentőgombjai a
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRésSaveAsPdfVThívásokat használják, így a PDF szabványjelölő kimenet egyedi előtétprogram nélkül is látható - Frissítve a
TPdf.AboutInfo, a Lazarus csomagmetaadatok és a telepítő verziómetaadatai 1.39.0-ra
Version 1.38.0
- A
TPdfViewkeresési és szövegkijelölési fedvényei most valódi alfa keverést használnak a logikai maszkkal festés helyett, megőrizve az oldal tartalmát a kiemelések alatt - Hozzáadva a
SetPdfPrintPaperHandlingDevMode, hogy aTPrintPaperHandling-et a WindowsDEVMODE.dmDuplexértékekre képezze:DMDUP_SIMPLEX,DMDUP_HORIZONTALésDMDUP_VERTICAL - A
TPdfView.SmoothScrollmost időzítő által vezérelt szegmensekben animálja a sor / oldal görgetősáv parancsokat; a fogantyú követése továbbra is azonnali - Frissítve a
TPdf.AboutInfoés a telepítő verziómetaadatai 1.38.0-ra
Version 1.37.0
- A
TPdfmost már példányonkénti render lockkal rendelkezik, amely sorosítja aRenderPage,RenderTile,RenderPageProgressive, oldal újratöltés és dokumentumleürítés útvonalakat. A közös komponensen keresztüli worker-vezérelt renderelés most már gyakorlatban is használható, miközben az alkalmazások továbbra is a dokumentummódosítást és az élettartamot koordinálják - Kijavítva a zero-copy bitmap burkoló, hogy elutasítsa a bottom-up
TBitmapDIB elrendezéseket, és másolás előtt visszaessen egy PDFium tulajdonú pufferre, ezzel megszüntetve a stride-sérülésből és hozzáférésmegsértésből eredő hibákat a VCL render tesztekben - Szűkítve a
TPdfViewkijelölési viselkedése: azAllowUserTextSelectioncsak a felhasználói bemenetet szabályozza, a kódszintű kijelölési API-k továbbra is rajzolnak, aSelectAllpedig a ténylegesen látható ívet követi, így a borítóoldal már nem a 2. oldalt választja ki. A Delphi, Lazarus és C++Builder tesztek ennek megfelelően bővültek - Frissítve a
TPdf.AboutInfoés a telepítő verziómetaadatai 1.37.0-ra
Version 1.36.0
- Engedélyezve lett a végfelhasználói szövegkijelölés a
TPdfView-ben — a v1.17.0 óta fenntartottAllowUserTextSelectiontulajdonság most egy teljes húzásos kijelölési folyamatot vezérel. Bal kattintás egy szövegkarakterre kijelölési módba lép (hit-test auto); bal kattintás üres területre továbbra is pásztáz, ahogy eddig is. Az űrlapkitöltő vezérlő továbbra is elsőbbséget élvez, így űrlapmezőre kattintva a mező kap fókuszt, nem indul el a kijelölés - A dupla kattintás a szót jelöli ki, a tripla kattintás a sort, a
Ctrl+Aaz aktuális oldalt jelöli ki (kétoldalas megjelenítési módokban mindkét oldalt), aCtrl+CpedigCF_UNICODETEXTformátumban másolja a kijelölést a Windows vágólapra - A
Shift+Left/Shift+Righta kijelölést egyszerre egy karakterrel bővíti (kétoldalas módban a szomszédos oldalra is átnyúlhat); aShift+Home/Shift+Enda vizuális sor széléig terjeszti ki, a kiinduló karakter dobozmagasságát használva sorcsoportosítási tűrésként, így a vegyes betűméretű sorok helyesen maradnak együtt - A szöveg fölé vitt egérmutató
crIBeam-re vált; a szövegről elmozdulva visszaáll az alapértelmezett kurzor. Ha szövegkijelölő húzás folyamatban van, a néző bármelyik szélén lévő 20 képpontos holtzónába húzva az oldal automatikusan görgetődik (50 ms-os ütem, 16 px / ütem, a pásztázási útvonal által használt határokra korlátozva), így a kijelölés az aktuális nézeten túl is kiterjedhet az egérgomb felengedése nélkül - A többoldalas kijelölés működik a kétoldalas megjelenítési módokban (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): a bal oldalon indított és a jobb oldalon befejezett húzás a két oldalt átfogó összefüggő tartományt jelöli ki. ASelectedTextaz oldalszeleteket CR/LF-fel fűzi össze, így a visszakapott szöveg a szokásos több soros tartalomként olvasható - Új publikált
SelectionColortulajdonság (alapértékeclHighlight, a Windows rendszer kijelölési színe) — független aHighlightColortulajdonságtól, amely sárgára színezi a keresési eredményeket. A keresési kiemelések és az élő húzásos kijelölés egyszerre is megjelenhetnek a képernyőn színütközés nélkül - Új publikált
OnSelectionChangeesemény akkor fut le, amikor a kijelölés ténylegesen materializálódott tartományai megváltoznak — azonos újraalkalmazásnál soha nem, így a gazdaalkalmazások közvetlenül ráköthetik az állapotsáv szövegére vagy a gomb engedélyezett állapotára további zajszűrés nélkül - Új publikus API a
TPdfView-n:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Ezek kódszintű belépési pontok, és aAllowUserTextSelection-től függetlenül mindig működnek — a kapcsoló csak a felhasználói bemenetet korlátozza, így a kioszkot használó gazdaalkalmazások kikapcsolhatják a felhasználó által vezérelt kijelölést, miközben továbbra is építhetnek ugyanarra az API-ra támaszkodó "Select All / Copy" eszköztárgombokat - Ha a gazda nem rendelt saját menüt, automatikusan csatlakozik egy alapértelmezett jobb gombos
Copy/复制felugró menü aPopupMenu-hez, amelynek feliratát az angol és a kínai között aSysLocale.PriLangIDválasztja ki; a teljes lokalizációt vagy gazdagabb menüt igénylő gazdaalkalmazások egyszerűen sajátPopupMenu-t rendelnek, és az alapértelmezett menü eltűnik - A kijelölés automatikusan törlődik a
SetPdf,SetPageNumber,SetActive(False)ésDisplayModeváltásokkor, miközben aOnSelectionChangepontosan egyszer fut le, ha az előző kijelölés nem volt üres. Az űrlapkitöltő alrendszer megtartja az elsőbbséget — miközben egy űrlapmező szerkesztés alatt áll, minden kijelölési billentyűparancs várakozik, így a mező a saját kijelöléséhez megkapja aCtrl+C/Ctrl+A/Shift+arrowskombinációkat - A Delphi és a Lazarus regressziós csomagok egyenként 202 esetre bővültek, a C++Builder csomag pedig 159 esetre, lefedve az alapértelmezett értékeket, az oda-vissza viselkedést, a publikus API működését, az állapotváltozáskor végzett törléseket, az egérhúzást (hit-text / hit-blank), a kattintás kontra húzás viselkedést, az IBeam kurzorváltást, a dupla kattintásos szó kijelölését, a tripla kattintásos sor kijelölését, a billentyűparancsokat, az alapértelmezett felugró menü csatlakoztatását / elhalasztását / feliratát, valamint a többoldalas kijelölést — beleértve a vágólapos CR/LF oda-vissza ellenőrzést is
Version 1.35.0
- Hozzáadva a PDF/VT (ISO 16612-2:2010) jelölőbeszúrás támogatása: a
TPdf.SaveAsPdfVTaz aktuális dokumentumot PDF/VT-1 vagy PDF/VT-2 megfelelő fájllá alakítja (a változó és tranzakciós nyomtatási PDF alhalmaz). A PDF/VT a PDF/X-4-re épül — az ISO 16612-2 §6.2.1 minden PDF/VT-1 fájlt PDF/X-4-nek is megfelelni követel — ezért az injektor a teljes PDF/X-4 jelölőkészletet írja (XMPpdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)és/Trapped, valamint a beágyazott ICC profilt hivatkozó/OutputIntentskatalógus) a PDF/VT-specifikus tulajdonságok mellé - A PDF/VT-specifikus beszúrás lefedi az XMP
pdfvtid:GTS_PDFVTVersionértéket (= "PDF/VT-1" vagy "PDF/VT-2" az §6.3 Table 2 szerint) és apdfvtid:GTS_PDFVTModDateértéket (amely a §6.3 NOTE 1 szerint szinkronban marad azxmp:ModifyDate-del), továbbá egy pdfaExtension:schemas leírást, amely a pdfxid és pdfvtid névtereket is deklarálja (NPES URI-k:http://www.npes.org/pdfx/ns/id/éshttp://www.npes.org/pdfvt/ns/id/). A trailer egy/IDtömböt hordoz - Hozzáadva a
TPdf.SaveAsPdfVTToStreama memóriabeli PDF/VT kimenethez, és egy alapértelmezett opciós rövidítés aTPdf.SaveAsPdfVT(FileName), amely a beépített sRGB IEC61966-2.1 OutputIntenttel (3144 bytes, ugyanaz a profil, mint aSaveAsPdfA/SaveAsPdfXesetén) és/Trapped /False-szal állít elő PDF/VT-1-et - Hozzáadva a
TPdf.ValidatePdfVT: ellenőrzi a megnyitott PDF-et a PDF/VT megfelelőségi jelölőkre (pdfvtid:GTS_PDFVTVersionésGTS_PDFVTModDatejelenléte, apdfvtid:GTS_PDFVTModDateés azxmp:ModifyDateegyezése, az alapul szolgálópdfxid:GTS_PDFXVersionazonosító jelenléte, a §6.5 szerinti/DPartRootjelenléte,/DestOutputProfile-lal rendelkező/OutputIntents, trailer /ID, titkosítási állapot,xmp:CreateDate/ModifyDatejelenléte), és a talált megfelelőségi szinttel és hibakészlettel együtt adja vissza aTPdfVTValidationResulteredményt - Hozzáadva a
TPdf.PdfVTConformancetulajdonság: visszaadja az éppen megnyitott dokumentum megfelelőségi szintjét (pvc1, pvc2, pvcNone vagy pvcUnknown), anélkül hogy külön meghívnád aValidatePdfVT-t - Új típusok exportálva az új
FPdfPdfvtegységben:TPdfVTConformance(pvcUnknown/None/1/2),TPdfVTTrappedState(ptvUnspecified/True/False/Unknown),TPdfVTValidationResult,TPdfVTValidationIssue,TPdfVTSaveOptions - A Document Part Hierarchy (
DPartRoot/DPartfa a §6.5 szerint) alkalmazásszintű struktúra, amely a változóadatú nyomtatási munkafolyamat recipient / page-range leképezésétől függ. ASaveAsPdfVTNEM állít elő DPart fát — aValidatePdfVTa hiányzó/DPartRoot-otpvviMissingDPartRootértékként jelzi, így a hívók külön DPart-építő lépésen keresztül vezérelhetik a PDF/VT fájlokat. A tartalomszintű PDF/X-4 követelmények (fontbeágyazás, átlátszóság, ICC-vezérelt színkezelés, OPI / JavaScript / Reference XObject tiltások stb.) továbbra is a dokumentum szerzőjének és a PDFium renderelési folyamatának felelőssége - A
TPdf.AboutInfokarakterlánc frissítve, hogy az aktuális termékverziót jelentse
Version 1.34.0
- Hozzáadva a PDF/R-1 (ISO 23504-1:2020) jelölőbeszúrás támogatása: a
TPdf.SaveAsPdfRaz aktuális dokumentumot PDF/R-1 megfelelő fájllá alakítja (a PDF szkennelt dokumentumokhoz használt raszterkép-átviteli alhalmazát). A beszúrás lefedi a postprocessinggel hozzáadható fájlformátum-szintű követelményeket — a%PDF-raster-1.0egyedi verzióazonosító megjegyzést, amely a trailer szótár és a startxref kulcsszó közé kerül (§5), a §6.3 fehérlistára szűkített katalógust (csak a Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata marad meg), a §6.4.3 fehérlistára szűkített Document Information Dictionary-t (csak Creator / Producer / CreationDate / ModDate), a §6.4.4 Table 1 négy bejegyzését hordozó katalógus /Metadata XMP streamet (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate), valamint egy trailer /ID tömböt - Hozzáadva a
TPdf.SaveAsPdfRToStreama memóriabeli PDF/R kimenethez, és egy általános esethez használt alapértelmezett-opciós rövidítést aTPdf.SaveAsPdfR(FileName)formában - Hozzáadva a
TPdf.ValidatePdfR: ellenőrzi a megnyitott PDF-et a PDF/R-1 megfelelőségi jelölőkre (%PDF-raster-x.ylábléc megjegyzés, fejlécverzió, a/Type /ObjStmhiánya, katalógus fehérlista-megfelelés, Info dictionary fehérlista-megfelelés, XMP metadata stream jelenléte, trailer /ID), és a talált megfelelőségi szinttel és hibakészlettel együtt adja vissza aTPdfRValidationResulteredményt - Hozzáadva a
TPdf.PdfRConformancetulajdonság: visszaadja az éppen megnyitott dokumentum megfelelőségi szintjét (prc1, prcNone vagy prcUnknown), anélkül hogy külön meghívnád aValidatePdfR-t - Új típusok exportálva az új
FPdfPdfregységben:TPdfRConformance,TPdfRValidationResult,TPdfRValidationIssue,TPdfRSaveOptions. ATPdfRSaveOptions.DefaultaStripInfoOptionalEntriesésStripCatalogOptionalEntriesértékét True-ra állítja, így az injektor alapértelmezésben a §6.3 / §6.4.3 szerinti katalógust és Info dictionary-t hoz létre; a hívók False-ra állíthatják ezeket a forrásbejegyzések megőrzéséhez (a kimenet ekkor nem felel meg azoknak a PDF/R szabályoknak, de más jelölők megmaradnak) - A tartalomszintű követelmények továbbra is a forrás PDF felelőssége: oldalankénti Contents struktúra (§6.5.1), MediaBox
[0 0 w h]forma (§6.5.3), szűrési korlátozások (§6.2.2 — csak FlateDecode, CCITTFaxDecode bitonális, DCTDecode 8-bit gray/RGB), object stream-ek hiánya (§6.2.4) és strip elrendezés a §6.6 szerint. Ezek postprocessinggel nem kényszeríthetők ki — a PDF/R szerkezetileg jóval szigorúbb alhalmaz, mint a többi PDF/x szabvány, és a forrás bájtok helyes előállítását igényli. AValidatePdfRazokat a fájlformátum-hibákat jelzi, amelyeket ez az egység észlelni tud; teljes tartalomszintű ellenőrzéshez párosítsd a TWAIN Working Group PDF/R validatorával - A
TPdf.AboutInfokarakterlánc frissítve, hogy az aktuális termékverziót jelentse
Version 1.33.0
- Hozzáadva a PDF/X (ISO 15930 család) jelölőbeszúrás támogatása: a
TPdf.SaveAsPdfXaz aktuális dokumentumot PDF/X-1a:2001, PDF/X-3:2002 vagy PDF/X-4 megfelelő fájllá alakítja a bázis PDF inkrementális frissítésével. A beszúrás lefedi a postprocessinggel hozzáadható fájlformátum-szintű követelményeket — az XMP metadata streamet, amely apdfxid:GTS_PDFXVersion(és a PDF/X-1a / PDF/X-3 esetén apdfxid:GTS_PDFXConformance) értéket tartalmazza, a hozzá illő pdfaExtension:schemas leírással együtt, az átírt Document Information Dictionary-t a/GTS_PDFXVersion,/GTS_PDFXConformanceés/Trappedbejegyzésekkel, a/OutputIntents [N 0 R]referenciával frissített katalógust egy/S /GTS_PDFXés beágyazott ICC profilt tartalmazó OutputIntent szótárra, valamint egy trailer/IDtömböt - Hozzáadva a
TPdf.SaveAsPdfXToStreama memóriabeli PDF/X kimenethez, és egy alapértelmezett-opciós rövidítés aTPdf.SaveAsPdfX(FileName)formában, amely a beépített sRGB IEC61966-2.1 OutputIntenttel (3144 bytes, ugyanaz a profil, mint aSaveAsPdfAesetén) állít elő PDF/X-4-et - Hozzáadva a
TPdf.ValidatePdfX: ellenőrzi a megnyitott PDF-et a PDF/X megfelelőségi jelölőkre (XMP pdfxid azonosító és egyezése az Info dictionary értékével, pdfxid extension schema leírás, /OutputIntents tömb /DestOutputProfile-lal, Title jelenléte, trailer /ID, titkosítási állapot, xmp:CreateDate / xmp:ModifyDate jelenléte), és a talált szinttel és hibakészlettel együtt adja vissza aTPdfXValidationResulteredményt - Hozzáadva a
TPdf.PdfXConformancetulajdonság: visszaadja az éppen megnyitott dokumentum megfelelőségi szintjét (pxc1a, pxc3, pxc4, pxcNone vagy pxcUnknown), anélkül hogy külön meghívnád aValidatePdfX-t. Az XMP verziókarakterlánc elemzésével különíti el a három megfelelőségi szintet - Új típusok exportálva az új
FPdfPdfxegységben:TPdfXConformance(pxcUnknown/None/1a/3/4),TPdfXTrappedState(ptUnspecified/True/False/Unknown),TPdfXValidationResult,TPdfXValidationIssue,TPdfXSaveOptions. ATPdfXSaveOptions.DefaultPDF/X-4-et céloz sRGB OutputIntenttel és/Trapped /False-szal; a hívók felülírhatják aConformanceértéket, CMYKIccProfileDatablobot adhatnak meg kereskedelmi nyomdai munkafolyamatokhoz, vagy módosíthatják azOutputCondition/OutputConditionIdentifier/RegistryNameértékeket, hogy egy konkrét ICC karakterizációs registry bejegyzésre mutassanak (például FOGRA39, GRACoL2006_Coated1v2) - A tartalomszintű követelmények (minden font beágyazása, JavaScript hiánya, látható annotációk hiánya, OPI tilalma, a PDF/X-1a / PDF/X-3 átlátszósági szabályai stb.) továbbra is a dokumentum szerzőjének és a PDFium renderelési folyamatának felelőssége. A
ValidatePdfX-et párosítsd olyan preflight eszközzel, mint a callas pdfaPilot vagy a Ghent PDF Workgroup Output Suite, a teljes megfelelőség-ellenőrzéshez - A
TPdf.AboutInfokarakterlánc frissítve, hogy az aktuális termékverziót jelentse
Version 1.32.0
- Hozzáadva a PDF/E-1 (ISO 24517-1:2008) jelölőbeszúrás támogatása: a
TPdf.SaveAsPdfEaz aktuális dokumentumot PDF/E-1 megfelelő fájllá alakítja a bázis PDF inkrementális frissítésével. A beszúrás lefedi a postprocessinggel hozzáadható fájlformátum-szintű követelményeket — egy XMP metadata streamet, amely apdfe:ISO_PDFEVersion = "PDF/E-1"értéket és a hozzá illő pdfaExtension:schemas leírást hordozza, egy átírt Document Information Dictionary-t a kötelező, §5 által előírt/ISO_PDFEVersion (PDF/E-1)bejegyzéssel, az ISO 19005-1 §6.7-ből a §13.1-en át örökölt Info-XMP hidaló blokkokat (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool), valamint egy §6.2 által előírt trailer/IDtömböt - Hozzáadva a
TPdf.SaveAsPdfEToStreama memóriabeli PDF/E kimenethez és aTPdf.SaveAsPdfE(FileName)alapértelmezett-opciós rövidítés a gyakori esetre - Hozzáadva a
TPdf.ValidatePdfE: ellenőrzi a megnyitott PDF-et a PDF/E-1 megfelelőségi jelölőkre (XMP pdfe:ISO_PDFEVersionjelenléte és egyezése az Info-dictionary értékkel, pdfe extension schema leírás, Info-dictionary/ISO_PDFEVersionbejegyzés, trailer/ID,xmp:CreateDate/xmp:ModifyDatejelenléte), és a talált megfelelőségi szinttel és hibakészlettel együtt adja vissza a strukturált eredményt - Hozzáadva a
TPdf.PdfEConformancetulajdonság: visszaadja az éppen megnyitott dokumentum megfelelőségi szintjét (pec1, pecNone vagy pecUnknown), anélkül hogy külön meg kellene hívni aValidatePdfE-t - Az új
FPdfPdfeegységben exportált új típusok:TPdfEConformance,TPdfEValidationResult,TPdfEValidationIssue,TPdfESaveOptions - Az Info-dictionary átírása elsőként jelenik meg a PDFiumPas PDF/x postprocessing útvonalán — a meglévő Info objektumot ugyanazzal az objektumszámmal írja át, hogy az xref subsection / trailer /Info hivatkozás érvényes maradjon, és friss Info dictionary-t hoz létre, amikor a forrás trailerben nincs
/Infobejegyzés. Maga a PDFium minden SaveAs kimenetben kibocsát egy Info dictionary-t, ezért a gyakori eset az átírási útvonal - A tartalomszintű követelmények (fontbeágyazás, ToUnicode CMaps, tiltott XObjects / ExtGState kulcsok / XFA űrlapok stb.) továbbra is a dokumentum szerzőjének felelőssége — a
SaveAsPdfEcsak a fájlformátum-jelölőket csatolja, de nem módosítja az oldaltartalmat és nem távolít el tiltott funkciókat - Frissítve a
TPdf.AboutInfostring a jelenlegi termékverzióra
Version 1.31.0
- Hozzáadva a PDF/UA-1 (ISO 14289-1:2014) jelölőbeszúrás támogatása: a
TPdf.SaveAsPdfUaaz aktuális dokumentumot PDF/UA-1 megfelelő fájllá alakítja a bázis PDF inkrementális frissítésével. A beszúrás lefedi a postprocessinggel kikényszeríthető fájlformátum-szintű követelményeket — egy XMP metadata streamet, amely apdfuaid:part = 1értéket és a hozzá illő pdfaExtension:schemas leírást hordozza, a köteleződc:titlemezőt, a katalógus/MarkInfo << /Marked true /Suspects false >>és/ViewerPreferences << /DisplayDocTitle true >>bejegyzéseit (csak amikor a forrásból hiányoznak), a katalógus/Langbejegyzését (amikor a hívó BCP 47 címkét ad meg), valamint egy trailer/IDtömböt - Hozzáadva a
TPdf.SaveAsPdfUaToStreama memóriabeli PDF/UA kimenethez és aTPdf.SaveAsPdfUa(FileName)alapértelmezett-opciós rövidítés a gyakori esetre - Hozzáadva a
TPdf.ValidatePdfUa: ellenőrzi a megnyitott PDF-et a PDF/UA-1 megfelelőségi jelölőkre (StructTreeRoot létezése,/Lang,/MarkInfo /Marked truea/Suspects = falseértékkel,/ViewerPreferences /DisplayDocTitle true, XMPpdfuaid:partazonosító,dc:titlejelenléte, trailer/ID, titkosítási állapot), és a talált megfelelőségi szinttel és hibakészlettel együtt adja vissza a strukturált eredményt - Hozzáadva a
TPdf.PdfUaConformancetulajdonság: visszaadja az éppen megnyitott dokumentum megfelelőségi szintjét (puc1, pucNone vagy pucUnknown), anélkül hogy külön meg kellene hívni aValidatePdfUa-t - Az új
FPdfPdfuaegységben exportált új típusok:TPdfUaConformance,TPdfUaValidationResult,TPdfUaValidationIssue,TPdfUaSaveOptions - A
TPdfUaSaveOptions-ban üresen hagyott Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language mezők automatikusan feltöltődnek aFPDF_GetMetaText/FPDF_GetFileIdentifier/FPDFCatalog_GetLanguagefüggvényekből, így a meglévő hívók egyetlen sorral menthetnek - A tartalomszintű követelmények (StructTreeRoot címkézési teljesség, Figure Alt szöveg, ToUnicode CMaps, fontbeágyazás stb.) továbbra is a dokumentum szerzőjének felelőssége — a
SaveAsPdfUacsak a fájlformátum-jelölőket csatolja, de nem módosítja az oldaltartalmat és nem talál ki címkéket. AValidatePdfUaa StructTreeRoot hiányátpvuaiMissingStructTreeRootformában mutatja, így a hívók külön címkézési csővezetékbe irányíthatják a címkézetlen dokumentumokat - Frissítve a
TPdf.AboutInfostring a jelenlegi termékverzióra
Version 1.30.0
- A PDF/A-1b kimenet most megfelel az ISO 19005-1 (Cor.1:2007) szerinti Document Information Dictionary / XMP egyezési követelményeknek: a PDFium által a bázis PDF-be írt minden Info dictionary bejegyzés visszatükröződik az XMP csomagba, beleértve a Title-t (dc:title), Author-t (dc:creator), Subject-et (dc:description a Cor.1 szerint), Keywords-ot (pdf:Keywords), Creator-t (xmp:CreatorTool), Producer-t (pdf:Producer), CreationDate-et (xmp:CreateDate) és ModDate-et (xmp:ModifyDate). Az
xmp:MetadataDateis kibocsátásra kerül - A PDF/A dokumentum trailerje most mindig tartalmaz egy
/IDtömböt (ISO 19005-1 6.1.3 kemény követelmény). Amikor aTPdf.SaveAsPdfAegy olyan dokumentumot dolgoz fel, amelynek forrásában már van fájlazonosító, a meglévő 16 bájtos állandó és változó ID-k újrahasznosításra kerülnek; ellenkező esetben a forrás bájtokból egy determinisztikus 16 bájtos tartalék ID származik - Az injektált XMP most beágyazza az ISO 19005-1 6.7.8 által megkövetelt pdfaid extension schema leírást (amelyet a Cor.1 váltott ki) — a pdfaid-et az XMP Specification 2004-hez viszonyított extension schemaként kezeljük, így minden megfelelő fájlnak deklarálnia kell a property name-eket, value type-okat és category-kat a pdfaExtension:schemas konténerben
- A
TPdfASaveOptionsöt új opcionális mezőt kapott: Producer, CreationDate, ModDate (D:YYYYMMDDHHmmSSOHH'mm'formájú PDF dátumsztringek), DocumentId és InstanceId (16 bájtos byte stringek a trailer/IDtömbhöz). ATPdf.SaveAsPdfA/SaveAsPdfAToStreama hiányzó mezőket automatikusan feltölti aFPDF_GetMetaTextésFPDF_GetFileIdentifierfüggvényekből, így a meglévő hívók változtatás nélkül tovább működnek - A
TPdf.ValidatePdfA/TPdf.PdfAConformancemost három további problémát jelent:pvaiMissingTrailerId(nincs/IDa trailerben),pvaiMissingXmpDates(xmp:CreateDatevagyxmp:ModifyDatehiányzik) éspvaiMissingExtensionSchema(hiányzik a pdfaid extension schema leírás) - A Title, Author, Subject, Keywords, Creator és Producer nem ASCII karakterei most UTF-8-ként kódolódnak az XMP csomagban (az XMP Specification UTF-8-at követel), megőrizve a többnyelvű metaadatok oda-vissza menetét a
SaveAsPdfAsorán - Frissítve a
TPdf.AboutInfostring a jelenlegi termékverzióra
Version 1.29.0
- Frissítve lettek a csomagolt PDFium DLL-ek (Win32 és Win64, standard és V8 build) a 2026-05-22 upstream pillanatképre, felvéve az FPDFText_SetText / FPDFText_SetCharcodes összeomlási útvonalak upstream javításait és a PDFium projekt egyéb belső keményítéseit
- Felfedve lett a PDFium új
FPDF_SUBSET_NEW_FONTSmentési jelzője aFPdfPageOps.pas-ban, így azFPDF_SaveAsCopyhívók automatikus részhalmaz-készítést kérhetnek az újonnan hozzáadott szövegobjektumok beágyazott fontfájljaihoz. A meglévőFPDF_INCREMENTAL,FPDF_NO_INCREMENTALésFPDF_REMOVE_SECURITYkonstansok most az upstream biteltolásos formával vannak definiálva (a régi 3-as numerikus értékFPDF_REMOVE_SECURITY_DEPRECATEDnéven megmarad bináris kompatibilitás miatt) - Hozzáadva a
FPDF_FONT_BACKEND_TYPEenumot (FREETYPE / FONTATIONS) és a hozzá tartozóm_FontLibraryTypemezőt azFPDF_LIBRARY_CONFIG-en aFPdfView.pas-ban, így a PDFiumot Skia renderelővel inicializáló alkalmazások most induláskor kiválaszthatják a font backendet - Frissítve a
TFPDFPage_InsertObjectszignatúra az upstreamhez igazítva: a C függvény mostFPDF_BOOL-t ad vissza (TRUEsiker esetén,FALSE, ha apage_objectNULLvagy az ownership átadás sikertelen) avoidhelyett. A meglévő PDFiumPas hívók továbbra is változtatás nélkül fordulnak, mert a Delphi / FPC engedi a függvény visszatérési értékének figyelmen kívül hagyását - Korrigálva a
TPdf.AboutInfostring a jelenlegi termékverzióra (korábban az 1.27.0-n ragadt a v1.28.0 csak dokumentációs kiadás óta)
Version 1.28.0
- Jelentősen kibővült az oldalon belüli dokumentáció az egész API-referenciában: minden tulajdonság-, metódus-, esemény- és globális függvénybejegyzés most 3 bekezdéses Leírást, egy Megjegyzések listát, egy többsoros Delphi Példát és egy gazdagabb Lásd még blokkot kapott — ez több mint 200 korábban vékony oldalt fed le, beleértve az összes TPdf számlálót, metaadat-lekérőt, font- és karakterhozzáférőt, oldalszintű tulajdonságot, indexelt recordot, dokumentumszintű metódust és a teljes TPdfView state / display / event felületet
- Finomhangoltuk a súgó elrendezését, hogy illeszkedjen a HotXLS referencia által használt losLab vizuális alapvonalhoz: az h1/h2 méreteket egyeztettük, az API navigációs rács stílusait a közös StyleSheetbe vontuk össze, és eltávolítottuk az oldalankénti inline CSS felülírásokat a Navigation.html fájlból
- A dokumentáció most egy segédszkripttel együtt érkezik (Docs\Build-Expand-Entries.ps1), amely egyetlen adattáblából regenerálja az entry-oldalak gazdagítását az ismételhető karbantartás érdekében
Version 1.27.0
- Hozzáadva a PDF/A-1b létrehozási támogatás: a
TPdf.SaveAsPdfAbármely nyitott dokumentumot PDF/A-1b megfelelő fájllá ment a bázis PDF inkrementális frissítésével, amely XMP metadata streamet, sRGB ICC OutputIntentet és frissített document catalogot injektál — mindezt extra DLL API-k nélkül. Minden, a PDFiumPas által támogatott platformon működik - Hozzáadva a
TPdf.SaveAsPdfAToStreama memóriabeli PDF/A kimenethez - Hozzáadva a
TPdf.ValidatePdfA: ellenőrzi a megnyitott PDF-et PDF/A megfelelőségre (XMP pdfaid jelölők, beágyazott ICC profillal rendelkező OutputIntent, titkosítás), és strukturált eredményt ad vissza a detektált megfelelőségi szinttel és a megtalált konkrét problémák halmazával - Hozzáadva a
TPdf.PdfAConformancetulajdonság: visszaadja az éppen megnyitott dokumentum megfelelőségi szintjét (pac1b, pac1a, pac2b, pac3b, pacNone vagy pacUnknown), anélkül hogy külön meg kellene hívni aValidatePdfA-t - Exportált új típusok:
TPdfAConformance,TPdfAValidationResult,TPdfAValidationIssue,TPdfASaveOptions(az újFPdfPdfa.pasegységben) - A
SaveAsPdfAtámogatja az egyedi ICC profilt aTPdfASaveOptions.IccProfileDatarévén; üresen hagyva automatikusan a beépített sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes) profil kerül használatra - Az egységes HTML referencia helyett átszervezett web help rendszer készült: 302 egyedi API oldallal (tulajdonságonként, metódusonként, eseményenként és globális függvényenként egy), amelyek a
TPdfésTPdfViewelemeit fedik le teljes leírással, paramétertáblával, Delphi kódpéldával és Lásd még hivatkozásokkal - Hozzáadva a Navigation.html: egy átfogó, egyoldalas API navigációs index, hat szekcióba rendezve (TPdf tulajdonságok/metódusok/események, TPdfView tulajdonságok/metódusok/események, globális függvények) egy 5 oszlopos flex rácsban a gyors áttekintéshez
- A TPdf.html és a TPdfView.html kompakt komponensáttekintő oldalakká lettek újraépítve, megőrizve a típus-hivatkozás szekciókat (Típusok, Constants, Global Variables) és az összes tag egyéni entry oldalára mutató hivatkozásokat
- Hozzáadva a Search.js által működtetett teljes szöveges keresés, inkrementális kliensoldali egyeztetéssel az összes 312 indexelt oldalon
- Az összes navigációs sávot a teljes webhelyen a Navigation.html-re állítottuk át
Version 1.26.0
- Hozzáadva a Demo/Lazarus/BatchExport, a v1.14.0 Delphi BatchExport demo LCL portja. Ugyanaz a funkcionalitás: többfájlos PDF -> JPG export fájlszintű összesített előrehaladással, oldalszintű aktuális előrehaladással, DPI / minőség / jelszó bemenetekkel és IPdfCancellationToken által támogatott, együttműködően megszakítható köteggel. Sikeres kinyerés után a kimeneti mappa megnyílik a platform fájlkezelőjében
Version 1.25.0
- Hozzáadva a Form XObject oldal-újrahasználat a
TPdf-hez, amely vízjel, sablonráfedés és “egy oldalt sokra bélyegezni” munkafolyamatokat tesz lehetővé: aCreateXObjectFromPageújrahasználható fogantyút készít bármely másik dokumentum oldalából; azInsertFormObjectFromXObjecta becsomagolt oldal EGY példányát illeszti az aktuális oldalra. A visszatérési érték a beszúrtFPDF_PAGEOBJECT, így a hívó aFPDFPageObj_SetMatrixés a v1.9.0TPdfMatrixsegédek segítségével pozicionálhatja / méretezheti / forgathatja - Az új
TPdfXObjectPascal osztály becsomagolja a PDFiumFPDF_XOBJECTfogantyúját, és a destruktorában automatikusan lezárja, megszüntetve a kéziFPDF_CloseXObjectceremóniát - Bővítve a Delphi és Lazarus regressziós csomagok 147 esetre, a C++Builder csomag pedig 123 esetre, lefedve a fogantyú-létrehozási és oldalobjektum-beszúrási szerződéseket
Version 1.24.0
- Hozzáadva a
TPdf.RenderPageProgressive— aRenderPagemegszakítható változata, amely a PDFium progresszív render ciklusát vezérli, és iterációnként lekérdezi a v1.7.0IPdfCancellationToken-t, így a hosszú, nagy DPI-s renderelések oldal közben megszakíthatók ahelyett, hogy a hívót a befejezésig blokkolnák - Visszaad egy
TPdfProgressiveStatusértéket:prsDone,prsCancelledvagyprsFailed. AzAToken = nilátadásával a renderelés megszakítás nélkül, teljes befejezésig fut (prsCancelledlehetősége nélkül) - Ugyanazt a zero-copy gyors útvonalat használja, amelyet a v1.21.0 vezetett be — a PDFium közvetlenül a cél
TBitmapDIB-jébe renderel. Ugyanaz a régi visszaesési útvonal érvényes, amikor a DIB nem burkolható - Bővítve a Delphi és Lazarus regressziós csomagok 145 esetre, a C++Builder csomag pedig 121 esetre, lefedve a nil-token (befejeződik), a pre-cancelled token (
prsCancelled) és az élő tokennel végzett szinkronRenderPage-hez viszonyított pixel-egyenértékűség eseteket
Version 1.23.0
- Hozzáadva hat új
TPdfViewmetódus, amelyek a PDFium űrlap-widget szövegkijelölését és Undo/Redo funkcióját teszik elérhetővé az alkalmazások számára: aGetSelectedFormTextvisszaadja a fókuszban lévő űrlapwidgetben kijelölt szöveget; aSelectAllFormTextminden karaktert kijelöl; aFormUndo/FormRedo/FormCanUndo/FormCanRedoa fókuszban lévő widget szerkesztési előzményeit vezérli. Az alapul szolgáló PDFium API-k már be voltak kötve, de nem volt magas szintű belépési pontjuk. Mind a hat biztonságosan rövidre zár, amikor a nézet inaktív vagy a dokumentumban nincs fókuszban lévő AcroForm widget - Bővítve a Delphi és Lazarus regressziós csomagok 142 esetre, a C++Builder csomag pedig 119 esetre, lefedve minden új metódus no-form-no-focus szerződését
Version 1.22.0
- Hozzáadva az oldalkompozíciós burkolók a
TPdf-hez: azImportPagesByIndexnullaalapú indextömböt vesz át adott oldalak másolásához egy forrásdokumentumból; azImportNPagesToOneegy teljesen újTPdf-et ad vissza, amelynek oldalai N-up összetételei ennek a dokumentumnak; aMovePageshelyben rendezi át az oldalakat. Az alapul szolgáló PDFium API-k már be voltak kötve, de nem volt Pascal-barát belépési pontjuk - Az
ImportPagesByIndexelfogad egy üres tömböt az összes forrásoldal importálásához (ami a C ABI szinten anilátadásával egyenértékű) - Bővítve a Delphi és Lazarus regressziós csomagok 136 esetre, a C++Builder csomag pedig 115 esetre, lefedve a részhalmaz-importot, a teljes dokumentum importját, az oldalak átrendezését és az N-up kompozitot
Version 1.21.0
- Improved rendering performance by switching TPdf.RenderPage / TPdf.RenderTile (and the corresponding TPdfView helpers) to a zero-copy output path. PDFium now writes directly into the destination TBitmap’s DIB buffer instead of into an internal buffer that was then copied row by row, saving one width x height x 4 bytes memory copy per render. The improvement is most noticeable at high DPI (thumbnail panels, print-quality export, batch export)
- A régi sorscanline-onkénti útvonal biztonsági tartalékként megmarad arra a valószínűtlen esetre, amikor a cél DIB nem csomagolható (szélsőséges méretek, szokatlan stride, OOM). A viselkedés bájtazonos a két útvonal között, csak lassabb a tartalékban
- A Delphi és Lazarus regressziós tesztkészletek 132 esetre, a C++Builder tesztkészlet pedig 112 esetre bővült, lefedve a hívó-bitmap pf32bit frissítést, a méretek oda-vissza kerekítését és egy nagy-bitmap stride épségi tesztet
Version 1.20.0
- Hozzáadva a keresési találat kiemelése a
TPdfView-hez: aHighlightSearchText(Text, MatchCase, MatchWholeWord)átvizsgálja az aktuális nézetoldalt, visszaadja a talált egyezések számát, és minden újrarajzoláskorHighlightColormaszkot fest minden találatra. AClearHighlighteltávolítja a kiemeléseket; másik oldalra váltva ezek automatikusan eltűnnek, mivel a találatok oldalhoz kötöttek - A
HighlightColoralapértelmezéseclYellow, és publikált, így az alkalmazások a kiemelést a saját UI palettájukhoz igazíthatják - Bővítve a Delphi és Lazarus regressziós csomagok 129 esetre, a C++Builder csomag pedig 109 esetre, lefedve az alapértelmezett színt, a szín oda-vissza menetét, a sample.pdf sztringgel szembeni “real fixture word matches” esetet és a “missing word returns zero matches” szerződést
Version 1.19.0
- Hozzáadva a
FitModetulajdonság aTPdfView-hez négy értékkel:pfmNone(kézi nagyítás),pfmActualSize(100%),pfmFitPage(az egész oldal belefér a nézetbe) éspfmFitWidth(az oldal szélessége egyezik a nézet szélességével). Az aktív illesztési mód automatikusan újraalkalmazódik aResizesorán és amikor az aktuális oldal változik, így a vegyes oldalméretű hosszú dokumentumok szépen keretezve maradnak - A
Zoomközvetlen beállítása megszakítja az aktív illesztési módot (FitModevisszaállpfmNone-ra), követve a szabványos PDF nézegető konvenciót, ahol egy nagyítási érték beírása kiléptet a Fit Page / Fit Width módból - Az alapértelmezés
pfmNone, így a meglévő alkalmazások megőrzik a kifejezett nagyítási viselkedésüket - Bővítve a Delphi és Lazarus regressziós csomagok 124 esetre, a C++Builder csomag pedig 106 esetre, lefedve az alapértelmezett értéket, a mód oda-vissza menetét, a valódi nagyítást produkáló fit-page viselkedést egy betöltött dokumentumon és a manual-zoom-cancels-fit-mode esetet
Version 1.18.0
- Hozzáadva a
PageColortulajdonság aTPdfView-hez, amely leválasztja a renderelt PDF oldal háttérszínét a környező vezérlőColorértékéről. Az alapértelmezésclWhite, így a PDF oldalak most papírfehérként jelennek meg a gazdaalkalmazás témájától függetlenül. A sötét módú nézegetők most sötéten tarthatják a görgetési területet, miközben maga a PDF oldal fehér marad (vagy bármilyen más színű, amit az alkalmazás választ) - Viselkedésváltozás: azoknak az alkalmazásoknak, amelyek korábban a PDF oldal átszínezéséhez a
TPdfView.Color-t állították, ezután aPageColor-t kell használniuk. Az alapértelmezett élmény javul a gyakori esetre (fehér oldalak témázott vezérlőháttér előtt) bármilyen kódváltoztatás nélkül - Bővítve a Delphi és Lazarus regressziós csomagok 120 esetre, a C++Builder csomag pedig 103 esetre, lefedve az alapértelmezett értéket és a szín oda-vissza menetét
Version 1.17.0
- Hozzáadva felhasználói bemenetet lezáró kapcsolók a
TPdfView-hez, így azok az alkalmazások, amelyek a nézetet kioszkokban, előnézeti panelekben vagy csak olvasható környezetben ágyazzák be, alosztályozás nélkül letilthatják a navigációs gesztusokat: azAllowUserPageChangevezérli az újPgUp/PgDn/Ctrl+Kezdőlap/Ctrl+Endbillentyűparancsokat; aChangePageOnMouseScrollingvezérli az új görgő-fel / görgő-le oldalugrásokat; azAllowUserTextSelectiona jövőbeli egérhúzásos szövegkijelölési útra van fenntartva. Mindhárom alapértelmezéseTrue, így a meglévő alkalmazások viselkedésváltozás nélkül frissülnek - Az egérgörgős oldalnavigáció kihagyja a
Ctrl+wheel-t, így az alkalmazások aCtrl+wheel-t továbbra is a nagyításra tarthatják fenn - Bővítve a Delphi és Lazarus regressziós csomagok 118 esetre, a C++Builder csomag pedig 101 esetre, lefedve az alapértelmezett értékeket és a kapcsoló oda-vissza menetét
Version 1.16.2
- Bővítve a TPdfView regressziós lefedettsége az annotation hivatkozáskattintásokra, amikor a viewer oldala eltér a társított TPdf oldalától, egy valós headless egérkattintási útvonalat használva Delphi, Lazarus és C++Builder alatt
- A Delphi és Lazarus tesztkészletek mostantól 114-114 esetet futtatnak, a C++Builder pedig 99 esetet
Version 1.16.1
- Javítva a TPdfView hivatkozáskattintás-kezelése, hogy az automatikus annotáció- és webhivatkozás-műveletek a viewer által jelenleg megjelenített oldalt használják, még akkor is, ha a társított TPdf komponens egy másik oldalon van
- Megerősítve a
TPdfThumbnailViewa csüngő Pdf hivatkozások ellen, amikor a hozzá kapcsoltTPdfkomponens megsemmisül - Hozzáadva thumbnail-reference lifetime regression coverage; the Delphi and Lazarus suites now run 113 cases each, and C++Builder now runs 98 cases
- Szinkronizálva a README, a tesztdokumentáció, a HTML Súgó keresési/tartalmi tartalma és a generált C++ csomagkimenetek a v1.7.0-tól v1.16.0-ig terjedő integrációs frissítésekkel
Version 1.16.0
- Hozzáadva egy új Delphi PrintDialog demó (Demo/Delphi/PrintDialog), amely az N-up nyomtatásra összpontosít (1 / 2 / 4 / 9 oldal laponként), páratlan / páros oldalszűréssel, szürkeárnyalatos megjelenítéssel és opcionális 1 pixeles cellaszegélyekkel. Tudatosan egy kicsi kísérője a meglévő PrintPDF demónak, amely már lefedi az előnézetet, a legutóbbi fájlokat, a nagyítást és a méretezést
Version 1.15.0
- Hozzáadva egy új TPdfThumbnailView komponens (FPdfThumbnail egység), amely egy görgethető oldalsó panelen soronként egy oldalbélyegképet jelenít meg, hover- és kijelöléskiemeléssel, valamint kattintásra odaugró navigációval. Úgy terveztük, hogy a TPdfView mellé illeszkedjen, így a végfelhasználók oldalanként böngészhetnek egy hosszú dokumentumban
- A komponens a losLab paletta lapon a TPdf és TPdfView mellett van regisztrálva; fő tulajdonságai: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor, valamint az OnPageClick esemény
- Bővítve a Delphi és Lazarus regressziós csomagok 112 esetre, a C++Builder csomag pedig 97 esetre, lefedve az alapértelmezéseket, az oldalbélyegképméret oda-vissza körét, a szélsőérték-korlátozást, a szín oda-vissza körét és az eseménykezelő-hozzárendelést
Version 1.14.0
- Hozzáadva egy új Delphi BatchExport demó (Demo/Delphi/BatchExport), amely bemutatja, hogyan lehet sok PDF fájlt egyetlen menetben JPG-vé alakítani a TPdf.LoadCustomDocument használatával folyamatos betöltéshez, az IPdfCancellationToken használatával együttműködő megszakításhoz, valamint fájlonkénti összesített és oldalszintű folyamatjelzőkkel. A demó fájlonként egy TPdf példányt használ (maga a PDFium nem szálbiztos), és az exportálás sikeres befejezésekor megnyitja a kimeneti mappát az Intézőben
Version 1.13.0
- Hozzáadva egy async-rendering UI fedőréteg a TPdfView-hoz három új tulajdonságon keresztül: AsyncRendering, LoadingText és LoadingColor. Amikor az AsyncRendering értéke True, az egyoldalas rajzolási útvonal egy kis “Loading...” jelzést rajzol a renderelt oldal fölé, így a hosszú rendereléseknél saját munkaszálat használó alkalmazások egységes vizuális jelzést kapnak
- Az alapértelmezések megőrzik a meglévő viselkedést: az AsyncRendering értéke False, így a bekapcsolást nem választó alkalmazásoknál nincs vizuális változás
- A dokumentáció tisztázza, hogy maga a PDFium nem szálbiztos — a renderelés tényleges kiszervezéséhez egy munkaszálra a hívónak munkaszálanként egy TPdf példányt kell megtartania; a készülő batch-export demó ezt a mintát mutatja be
- Bővítve a Delphi és Lazarus regressziós csomagok 106 esetre, a C++Builder csomag pedig 93 esetre, lefedve az alapértelmezett értékeket és a három tulajdonság oda-vissza körét
Version 1.12.0
- Hozzáadva kattintásvezérelt hivatkozáskezelés a
TPdfView-hez. Az újLinkOptionstulajdonság vezérli a négy PDF hivatkozásművelet automatikus viselkedését: goto (oldalugrás), URI (ShellExecute), launch (ShellExecute) és beágyazott GotoR (fenntartva). Az alapértelmezés engedélyezi aloAutoGotoésloAutoOpenURIopciókat; aloAutoLaunchésloAutoEmbeddedGotokikapcsolva marad, hogy egy téves kattintás se tudjon tetszőleges programot futtatni - Hozzáadva az
OnAnnotationLinkClickésOnWebLinkClickesemények, amelyek bármilyen automatikus művelet előtt lefutnak, és lehetővé teszik az alkalmazásoknak, hogy megvizsgálják a hivatkozást,Handled-re állítsák vagy átirányítsák azt (például biztonsági kérdésre) - A hivatkozáskattintás felismerése csak akkor fut le, amikor a gesztus kattintás és nem húzás, egy friss
MouseDownhorgonyt használva, így a pásztázási gesztusok változatlanul a meglévő görgetési útvonalon haladnak tovább - Bővítve a Delphi és Lazarus regressziós csomagok 102 esetre, a C++Builder csomag pedig 91 esetre, lefedve az alapértelmezett
LinkOptions-t, a készlet oda-vissza menetét és az eseménykezelő hozzárendelését
Version 1.11.0
- Hozzáadva vizuális finomítás a
TPdfView-hez: aPageShadowSize,PageShadowColorésPageBorderColortulajdonságok opcionális árnyékot rajzolnak az oldal téglalapja alá és egy egypixeles keretet köré. Az alapértelmezések megőrzik az előző lapos kinézetet (PageShadowSize = 0; a szegély alapértelmezettclBlack-kal rajzolódik, de beleolvad az alapértelmezett fehér háttérbe, amíg a hívó meg nem változtatja a színeket) - Hozzáadva a
SmoothScrolltulajdonság mint opt-in jelző a jövőbeli fokozatos görgetési animációhoz; a tulajdonság ma oda-vissza működik és be van kötve, hogy az alkalmazások eltárolhassák a beállítást, miközben a renderelési oldal továbbra is a meglévő azonnali görgetési viselkedést használja - Bővítve a Delphi és Lazarus regressziós csomagok 98 esetre, a C++Builder csomag pedig 89 esetre, lefedve az alapértelmezett értékeket, a tulajdonság oda-vissza menetét és a negatív árnyékméret-korlátozást
Version 1.10.0
- Hozzáadva közvetlen képbeszúrás az új
TPdf.AddImageésTPdfView.AddImagetúlterheléseken keresztül, amelyek fájlútvonalat vagyTBitmap-et vesznek át a meglévő,TPicture-alapúAddPicturemellett. AzAddImage(FileName)felismeri a VCL vagy LCL graphics egységek által regisztrált bármely formátumot (BMP, PNG aPngImageegységen keresztül, JPG stb.), és ugyanazon a pipeline-on megy át, mint azAddPicture, így a viselkedés azonos - Az
AddImage(TBitmap)kihagyja aTPictureköztes réteget, ami leegyszerűsíti azokat a hívókat, amelyek már rendelkeznek egy renderelésből vagy kötegelt generálásból származóTBitmap-tel - Bővítve a Delphi és Lazarus regressziós csomagok 92 esetre, a C++Builder csomag pedig 84 esetre, lefedve a bitmap beszúrást, az oldalobjektum-határokat, a nil bitmap elutasítását és a BMP fájlbetöltést
Version 1.9.0
- Hozzáadva magas szintű transzformációs mátrix támogatás az új
TPdfMatrixosztályon keresztül aFPdfMatrixegységben. ATPdfMatrixegy OO API-val csomagolja a PDFiumFS_MATRIX-ét aTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewésMultiplyműveletekhez, alkalmas transzformációk összerakására, mielőtt aFPDFPageObj_SetMatrix-nek és hasonló PDFium API-knak átadnánk őket - A
TPdfMatrix.Multiplyhelyesen pillanatképet készít a hat mátrixelemről, mielőtt kiszámítaná az új sorértékeket, ezzel javítva egy lappangó hibát, ahol az alternatív Pascal implementációk ugyanabban a hívásban felülírták a korábbi elemeket, és a tiszta transzláción túli bármely kompozícióra hibás eredményt adtak - Bővítve a Delphi és Lazarus regressziós csomagok 88 esetre, a C++Builder csomag pedig 81 esetre, lefedve az identitást, a visszaállítást, a translate / scale / flip műveleteket, a posztmultiplikatív kompozíciós sorrendet és a Multiply regressziós esetet
Version 1.8.0
- Hozzáadva igény szerinti stream betöltés az új
TPdf.LoadCustomDocument(AStream, AOwnsStream)metódussal és aTPdfStreamAdaptersegédosztállyal, a PDFiumFPDF_LoadCustomDocumentmechanizmusára építve. A PDFium most csak szükség esetén olvas blokkokat a megadottTStream-ből, így a nagyon nagy vagy távoli PDF-ekhez többé nincs szükség előzetes memóriabeli másolatra - Hozzáadva opcionális stream ownership: az
AOwnsStream = Trueátadja aTStreamélettartamát aTPdf-nek, amely azUnloadDocumentfutásakor felszabadítja - Bővítve a Delphi és Lazarus regressziós csomagok 79 esetre, a C++Builder csomag pedig 75 esetre, lefedve a
TFileStream-en át történő streamelt betöltést, az owned-stream takarítást és az externally-owned-stream survives-unload szerződést
Version 1.7.0
- Hozzáadva együttműködő aszinkron megszakítási primitívek az új
FPdfAsyncegységben, azIPdfCancellationToken/IPdfCancellationTokenSourceés egy újrahasználhatóPdfNoCancellationTokensingleton exportálásával, hogy a hosszú futású renderelési és export munkafolyamatok tiszta UI-ból megszakítható szemantikát kapjanak - Hozzáadva egy könnyű
TPdfFuture<T>segéd, amely egy worker szálon futtat feladatot, majd aTPdfFutureResult<T>burkot visszaküldi a fő szálra, megkülönböztetve a siker, a megszakítás és a hiba eseteket - Bővítve a Delphi és Lazarus regressziós csomagok 76 esetre, a C++Builder csomag pedig 73 esetre, közös lefedettséggel a megszakítási állapot, az idempotens megszakítás, a callback fan-out és a post-cancel regisztráció területén
Version 1.6.10
- Hozzáadva magas szintű
TPdf.PrintPageRangeshozzáférés a PDF nézegető preferencia nyomtatási oldaltartományához, amely egyalapú oldaltartományokat ad vissza az alkalmazáskód számára - Hozzáadva a
TPdf.SetFormFieldFlags/SetFormFieldFlagsAtés a hozzájuk tartozóTPdfViewsegédek, így az alkalmazások a nyilvános API-n keresztül frissíthetik az AcroForm mezőjelzőket, beleértve a jelszó és a többes kijelölés jelzőit is - Megerősítve a PDFium kötési ABI lefedettség a Windows-méretű FPDF_DWORD, az FPDF_FILEACCESS visszahívások és a V8 beágyazó slot-mezők számára
Version 1.6.9
- Alacsonyszintű Skia renderelési kötéseket adtunk a most exportált FPDF_RenderPageSkia és FPDF_FFLDrawSkia API-khoz a csomagolt standard és V8 PDFium DLL-ekben
- Bővítettük a nyilvános kötéslefedettségi ellenőrzéseket, így a standard és V8 DLL-ek betöltése most a meglévő V8/XFA képességvizsgálatok mellett a Skia renderelési belépési pontokat is ellenőrzi
Version 1.6.8
- Hozzáadtuk a TPdf.SetTextPositions és a TPdfSingleArray elemeket, hogy az újonnan exportált FPDFText_SetPositions API-n keresztül a meglévő szövegobjektumokon egyenként lehessen beállítani a karakterpozíciókat
- Az FPDFText_SetPositions most kötelező kötés a jelenlegi csomagolt PDFium DLL-ekhez, miközben megerősítettük, hogy a Skia renderelési belépési pontok továbbra sem érhetők el, mert a DLL-ek még mindig nem exportálják őket
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 65 esetre, karakterpozíció-lefedettséggel
Version 1.6.7
- Magas szintű TPdf-hozzáférést adtunk a dokumentum JavaScript name tree műveleteihez, az akcióneveket és szkripteket a JavaScriptAction és JavaScriptActions segítségével visszaadva
- Hozzáadtuk a TPdf.FileIdentifier-t a tartós és változó trailer ID-k bináris TBytes-ként való olvasására a PDFium lezáró bájtja nélkül
- Hozzáadtuk a TPdf.PageBox, GetPageBox és SetPageBox elemeket a jelenlegi oldal MediaBox, CropBox, BleedBox, TrimBox és ArtBox értékeihez
- Megerősítettük, hogy a jelenlegi csomagolt PDFium DLL-ek futásidőben csak a Skia renderelési belépési pontokat hagyják elérhetetlenül, mert azok az exportok nincsenek jelen
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 64 esetre, dokumentum-JavaScript, trailer ID és page-box lefedettséggel
Version 1.6.6
- Futásidejű támogatást adtunk a csomagolt V8-képes PDFium DLL-hez. Az EnableV8Engine betöltés előtti beállítása most a DLLs\Win32 vagy DLLs\Win64 faágából a pdfium.v8.dll-t választja, és a betöltött DLL által biztosított V8/XFA-only kötéseket teszi elérhetővé
- Hozzáadtuk a V8FeaturesAvailable, XfaBStrHelpersAvailable és GetRecommendedV8Flags elemeket, valamint a FPDF_BStr_*, FPDF_GetRecommendedV8Flags és FPDF_GetArrayBufferAllocatorSharedInstance alacsonyszintű opcionális kötéseit
- Az FPDFText_SetPositions most opcionális, így a PDFiumPas olyan PDFium DLL-ekkel is betöltődik, amelyek nem exportálják ezt a kísérleti szövegpozíció-beállítót
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 61 esetre, a standard-DLL és V8-DLL képességlefedettséggel
Version 1.6.5
- Taggelt PDF struktúrafa-ellenőrzést adtunk a TPdf.StructureElements és TPdfView.StructureElements segítségével, beleértve az elem típusát, címét, alternatív szövegét, tényleges szövegét, kiterjesztett szövegét, nyelvét, marked-content ID-it, gyermekszámait és attribútumszámait
- A Windows PDFium nyomtatási mód kiválasztását adtuk a TPdfPrintMode és SetPdfPrintMode segítségével, lefedve az EMF, csak szöveg, PostScript, pass-through, image-mask és Type 42 nyomtatási módokat
- Alacsonyszintű kötéseket adtunk a fennmaradó standard-DLL PDFium nyilvános exportokhoz, amelyek lefedik a JavaScript actions, annotation form flags/font color, page-object active state, indexed insertion, content-mark float values, image ICC profile data, form-object removal és text positions elemeket
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 59 esetre, taggelt PDF struktúrafa-, nyomtatási mód- és nyilvános exportkötés-lefedettséggel
Version 1.6.4
- Frissítettük a Delphi, C++Builder és Lazarus demókat, hogy sikeres létrehozás után automatikusan megnyissák a generált PDF-eket, az exportált szöveg- és képfájlokat, valamint a kötegelt kimeneti mappákat
Version 1.6.3
- Bővítettük az összehangolt Delphi, C++Builder és Lazarus regressziós csomagokat 56 esetre, TPdfView GUI-lefedettséggel a fit-zoom segédekhez, a device/page koordináta oda-vissza átalakításokhoz, a karakteres találati teszthez és az egérpásztázáshoz a rejtett ablakos viewer vezérlőkön keresztül
- A TPdfView rögzítőelemek most explicit viewer méretet és csak tesztre szolgáló leszármazott osztályokat használnak, amelyek a védett egérkezelőket gyakorolják, miközben a csomagokat teljesen fej nélkül tartják
Version 1.6.2
- Javítottuk a TPdf.AddPage(0, ...) viselkedését, hogy a beszúrt első oldal azonnal aktív oldal legyen. A meglévő mintakód továbbra is működik, miközben a PageNumber most érvényes, egyalapú oldalt jelent a beszúrás után
- Szinkronizáltuk a Lazarus csomagverziót, és bővítettük az összehangolt Delphi, C++Builder és Lazarus regressziós csomagokat 52 esetre
Version 1.6.1
- Javítottuk a v1.6.0 PDF-verzió megfelelőségi ellenőrzőjének helytelen minimális verziókövetelményét: a SetState action besorolása PDF 1.5-ről PDF 1.2-re változott, összhangban a PDF 1.2 Reference 6.9.9 résszel. A SetState actionöket tartalmazó PDF 1.3 / 1.4 SaveAs célok most már helyesen menthetők, nem kerülnek elutasításra
- Hozzáadtuk a megfelelő PDF 1.2 lexikai ellenőrzéseket ugyanazon specifikációs szakasz szerint: a Sound, Movie és NOP actionök, valamint a Separation színtér most blokkolva van, ha a kiválasztott célverzió régebbi mint PDF 1.2
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 50 esetre egy pozitív PDF 1.4 SetState elfogadási teszt hozzáadásával, amely rögzíti a kijavított határértéket
Version 1.6.0
- Megszilárdítottuk az explicit PDF 1.0-tól PDF 1.7-ig terjedő SaveAs célokat egy teljes verzió-funkció ellenőrzővel, amely lefedi a PDF 1.1 és az ISO 32000-1 közötti teljes funkcióidővonalat. Az ellenőrző most blokkolja azokat a mentéseket, amelyek olyan szótárelemeket, szűrőneveket, annotáció-altípusokat, művelettípusokat, betűtípusokat, színtereket vagy titkosítási paramétereket tartalmaznak, amelyeket a kiválasztott célverzió után vezettek be. Példák: JBIG2Decode (1.4+), MarkInfo / Tagged PDF (1.4+), OutputIntents (1.4+), ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+), Polygon / PolyLine / Caret / Screen / Watermark / Redact annotations, AES és AES-256 encryption (CFM AESV2 / AESV3), Perms / Legal / Requirements / NeedsRendering katalógusbejegyzések, valamint a verzióhoz kötött actionök, például JavaScript, Trans, SetState, Rendition, GoToE, GoTo3DView mind elutasításra kerülnek, ha a cél PDF-verzió nem tudja őket reprezentálni
Version 1.5.13
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 49 esetre, közvetlen lefedettséget adva az ICCBased színterek, a Tagged PDF MarkInfo, a Polygon annotációk, az AES (V2) titkosítás és a Redact annotációk elutasítására a PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6 célokkal szemben
Version 1.5.12
- Javítottuk a SaveAs utófeldolgozást az inkrementális katalógus-átírásokhoz. A PDFiumPas most a legutóbb ismétlődő közvetett objektumot ellenőrzi, így a meglévő katalógus /Version felülírások helyesen lecserélődnek, amikor explicit régebbi PDF célverzióra mentünk
- Bővítettük a Delphi, C++Builder és Lazarus regressziós csomagokat 44 esetre, közvetlen lefedettséget adva az elavult katalógus /Version cseréjére, a PDF 1.4 katalógusverzió-normalizálásra és a transzparencia valamint a portable-collection funkciók elutasítására, amikor a kiválasztott PDF célverzió nem tudja őket reprezentálni
Version 1.5.11
- Megszilárdítottuk a verziózott SaveAs kimenetet az explicit PDF 1.3, 1.4, 1.5, 1.6 és 1.7 célokhoz. A PDFiumPas most normalizálja a katalógus verziójelölőit, megtartja az alapértelmezett Fit Height OpenAction verzióbiztonságát, és elutasítja az újabb PDF-funkciókat, amikor a kiválasztott célverzió nem tudja őket reprezentálni
- Hozzáadtuk a Delphi, C++Builder és Lazarus regressziós lefedettséget, amely explicit PDF 1.3-tól PDF 1.7-ig terjedő fájlokat ment és tölt újra, ellenőrizve a végső fejléct, az alapértelmezett Fit Height OpenActiont és a jelentett PDF-verziót
Version 1.5.10
- A specifikáció B opciójáról a C opcióra léptünk tovább azzal, hogy mindhárom IDE-csomagban hozzáadtuk a TPdfView smoke teszteket (Tests.PdfView). Minden csomag létrehoz egy rejtett szülő TFormot (Pascal oldalon a TForm.CreateNew, a C++Builder oldalon a
new TForm(NULL, 0)használatával), újraszülőzi a TPdfView-t, Active := True értékre állítja, majd ellenőrzi a PageCount, az alapértelmezett PageNumber, a Zoom, a Rotation, a DisplayMode és a View.Text / TPdf.Text oda-vissza felületét. Minden IDE-csomag most 39 esetet futtat
Version 1.5.9
- A specifikáció A opciójáról a B opcióra léptünk tovább azzal, hogy mindhárom IDE-csomagban render smoke teszteket adtunk hozzá. Minden Tests.Render csomag meghívja a TPdf.RenderPage-t a sample.pdf fájlon, és három robusztus jelet ellenőriz a bájtról bájtra vett ellenőrzőösszegek helyett: a visszaadott bitmap pontosan megegyezik a kért képmérettel; a különböző kért méretek (200x100, 64x256) egyező bitmapeket eredményeznek; és a renderelt oldal legalább 95% fehér hátteret tartalmaz, legalább 50 (Lazarus: 20) nem fehér pixellel az antialiasolt szöveg megjelölésére. Minden IDE-csomag most 33 esetet futtat
Version 1.5.8
- Lezártuk az eredeti A(2) tesztterv-csoportokat azzal, hogy IDE-nként hét további regressziót adtunk hozzá: a TPdf.CreateAnnotation egy anHighlight annotációt épít, valamint egy SaveAs/LoadDocument oda-vissza menetet, az AcroForm olvasási útvonal a Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf fájlon (a FormType ftAcroForm, a FormFieldCount > 0, a FlattenAllPages nullára csökkenti a mezőket), valamint csendes olvasási útvonal-lefedettséget a Bookmarks, LinkAnnotationCount és WebLinkCount számára egy olyan dokumentumon, amelyben ezek közül egyik funkció sem található. Minden IDE-csomag most 30 esetet futtat
Version 1.5.7
- Bővítettük a Delphi (DUnitX), Lazarus (FPCUnit) és C++Builder (GoogleTest) csomagokat IDE-nként hét új regresszióval: PdfVersion, PageRotation, TPdf.FindFirst / FindNext részsztring-keresés, CharacterOrigin / CharacterRectangle egyezés az AddText kezdőpontjához képest, CreateAttachment regisztráció plusz egy SaveAs/LoadDocument oda-vissza menet, valamint egy ékezetes szövegű AddText oda-vissza menet, amely igazolja, hogy a v1.3.0 európai TrueType beágyazási útvonal megőrzi a Latin-1 kiegészítő kódpontokat
Version 1.5.6
- A mentett PDF-ek most alapértelmezett első oldalas Fit Height open actiont kapnak, ha nincs meglévő OpenAction, így a PDF-olvasók kezdetben oldalmagasság zoommal jelenítik meg a generált dokumentumokat
- Hozzáadtuk a Delphi, Lazarus és C++Builder regressziós lefedettséget a generált OpenAction és Fit Height beállításhoz
Version 1.5.5
- Regressziós teszteket adtunk a Delphi (DUnitX), Lazarus (FPCUnit) és C++Builder (GoogleTest) csomagokhoz az indexelt karakter- és betűtípusvizsgálati API felülethez (TPdf.FontBaseName, FontFamilyName, FontWeight, FontItalicAngle, FontData, FontIsEmbedded, CharacterFontWeight, CharacterAngle). A Lazarus csomag szándékosan kihagyja a FontData-t, amely jelenleg FPC alatt a FPDFFont_GetFontData belsejében access violationt okoz
Version 1.5.4
- Hozzáadtunk egy C++Builder Attachment demót, amelyet a Delphi mintából portoltunk, és lefedi a PDF-ek létrehozását, a beágyazott fájlmellékletek hozzáadását, listázását, kinyerését, törlését és mentését MIME subtype megjelenítéssel
Version 1.5.3
- Felszínre hoztuk azt a spread-page számítást, amely a TPdfView kétoldalas módjait támogatja, egységszintű ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo segítőként. A viselkedés változatlan; a segítő lehetővé teszi a borítóval számoló szabály önálló tesztelését nézet létrehozása nélkül
- Öt regressziós tesztet adtunk hozzá a Delphi (DUnitX), Lazarus (FPCUnit) és C++Builder (GoogleTest) csomagokhoz, amelyek az üres dokumentumokat, a szabványos kétoldalas párosítást, a borítóoldal önálló megjelenését a dmTwoPageContinuousWithCover módban, a borító utáni párokat, valamint az utolsó oldal és a tartományon kívüli értékek levágási viselkedését fedik le
Version 1.5.2
- Hozzáadtuk a dokumentumnyelv-támogatást a TPdf.Language révén, amely a PDF katalógus /Lang bejegyzéséhez van hozzárendelve
- Hozzáadtuk a melléklet MIME subtype elérését a TPdf.AttachmentType segítségével
- Hozzáadtuk az anRedact értéket a TPdfAnnotationSubtype-hoz, és oldali objektumeltávolító segédeket adtunk a TPdf és TPdfView számára
- Frissítettük a viewer és attachment demókat, hogy megjelenítsék az új nyelv- és melléklettípus-információkat, amikor azok elérhetők
Version 1.5.1
- Hozzáadtuk a dmTwoPageContinuousWithCover értéket a TPdfView-hez, így a viewer elrendezések az első oldalt önállóan mutathatják, majd kétoldalas terítésekkel folytathatják
- Frissítettük a Delphi, C++Builder és Lazarus MultiPageViewer demókat, hogy elérhetővé tegyék a borítóval számoló kétoldalas megjelenítési módot
Version 1.5.0
- Hozzáadtunk smoke-szintű automatizált tesztcsomagokat a Delphi (DUnitX), Lazarus (FPCUnit) és C++Builder (GoogleTest) számára. A három csomag egyetlen fixture PDF-et oszt meg a Tests\TestData mappában, és mindegyik ugyanazt a hét esetet futtatja, lefedve a dokumentum betöltését, az oldalinformációkat, a szövegkinyerést, a metaadatokat, a mentéses oda-vissza menetet, a PDF fejléc ellenőrzését és a Compressed tulajdonságot
Version 1.4.3
- Fejlesztettük a FontProperties demót, hogy a TPdfView és a TPdf betűtípus-metaadat API-jait is megmutassa, beleértve a betűtípus-handle-öket, a betűtípus-adat méretét és a karaktermetrikákat
- Hozzáadtuk az indexelt TPdfView karakter- és betűtípusvizsgálati tulajdonságokat, és frissítettük a FontProperties demót, hogy lekérdezze a text-object betűtípus-metaadatait
Version 1.4.2
- Hozzáadtuk az indexelt karakter- és betűtípusvizsgálati tulajdonságokat a TPdf-hez, hogy nézet nélkül lehessen szövegelemzést végezni. A karakterindexelt tulajdonságok (CharacterAngle, CharacterFontSize, CharacterFontWeight) az aktuális oldal text streamjéből kérik le az egyes karakterek metrikáit. Az oldalobjektum-indexelt tulajdonságok (FontAscent, FontBaseName, FontData, FontDescent, FontFamilyName, FontHandle, FontIsEmbedded, FontItalicAngle, FontWeight) bármely szövegobjektum betűtípus-metaadatait kérik le az aktuális oldalon
- A nem szöveges oldalobjektumok minden Font* tulajdonságnál biztonságos nulla vagy üres értéket adnak vissza hiba dobása helyett, így egyszerű az összes oldalobjektum bejárása és csak a szövegesek vizsgálata
- A FontBaseName közvetlenül a PostScript alap betűtípusnevét olvassa, nem a betűtípuscsaládnévre esik vissza, így pontosabb azonosítót ad a beágyazott betűtípusokhoz
Version 1.4.1
- Hozzáadtuk az EuropeanText demo C++Builder és Lazarus változatait, hogy minden támogatott IDE család ellenőrizhesse az ékezetes európai szöveg előállítását rendszer TrueType betűtípusokkal
- Hozzáadtuk a FormFill demo C++Builder és Lazarus változatait, beleértve a minta űrlap PDF-eket, a mezőszerkesztést, a megjelenés-újragenerálást, a kitöltve mentést és a kisimított mentési munkafolyamatokat
Version 1.4.0
- Hozzáadtuk a Lazarus / Free Pascal támogatást: az új PDFiumLaz csomag ugyanazokat a TPdf, TPdfView és kapcsolódó komponenseket biztosítja az LCL widget set alatt, kiterjesztve a könyvtárat a Lazarus IDE-re és a Free Pascal fordítóra a meglévő Delphi és C++Builder csomagok mellett
- Hozzáadtuk a demók Lazarus változatait, hogy a Lazarus fejlesztők futtatható példákkal fedezhessenek fel minden funkciót
- Javítottunk egy Lazarus fordítási hibát, ahol a Free Pascal feltételes definíciókat a Delphi fordítóverzió-ellenőrzésekkel együtt értékeltük ki, ami miatt az FPC fordítások megpróbálták feloldani a Delphi-specifikus unitneveket és elhasaltak
Version 1.3.1
- Dokumentáltuk az űrlap flattening munkafolyamatát a súgókészletben: a GenerateFormAppearances, FlattenPage, FlattenAllPages és a kapcsolódó FLAT_* / FLATTEN_* konstansok most már a TPdf, TPdfView, az API-referencia, a funkciómátrix és a programozási példák részei
- Javítottuk az áttekintő oldal architektúratábláját, hogy a Lib mappában szállított tényleges binding egységeket sorolja fel
Version 1.3.0
- Javítottuk az európai karakterek támogatását PDF-ek létrehozásakor. A TPdf.AddText most a megfelelő rendszer TrueType betűtípust tölti be és gyorsítótárazza a szövegobjektum létrehozása előtt, megőrizve a PDFium beépített szabványos betűtípusai által nem ábrázolható cseh, francia, német, spanyol, portugál, lengyel és török ékezetes karaktereket
- Azok az alkalmazások, amelyek korábban kérdőjeleket vagy helyettesítő glifeket adtak a nem ASCII latin szöveghez, most kódmódosítás nélkül helyesen jelennek meg. Hozzáadtuk az EuropeanText demót a funkció bemutatására
Version 1.2.0
- Hozzáadtuk az AcroForm megjelenés-frissítést a TPdf-hez: a GenerateFormAppearances meghívása a FormField[] értékek módosítása után frissíti a widget megjelenését, így a kitöltött értékek láthatók a szabványos PDF-olvasókban interaktív szerkesztési munkamenet nélkül
- Hozzáadtuk az űrlap-kisimítás segédeit a TPdf-hez (FlattenPage / FlattenAllPages) és a TPdfView-hez (FlattenPage az aktuális nézetoldalhoz). A kisimítás véglegesen beágyazza a kitöltött mezőértékeket közönséges oldaltartalomként, és eltávolítja az interaktív űrlaprteget, így olyan statikus dokumentumot hoz létre, amely minden megjelenítőben következetesen renderelődik
- Hozzáadtuk a Demo\Delphi\FormFill elemet a fill-and-save és fill-and-flatten munkafolyamatok bemutatására egy minta AcroForm PDF-fel
Version 1.1.2
- Hozzáadtuk a mentéskori PDF stream tömörítést. Az új TPdf.Compressed tulajdonság (alapértelmezés szerint engedélyezve) a tömörítetlen tartalomstreameket FlateDecode-tömörített streamekké írja át mentéskor, jelentősen csökkentve a programból generált PDF-ek fájlméretét. Azok az alkalmazások, amelyek sima tömörítetlen kimenetet igényelnek, a SaveAs meghívása előtt False-ra állíthatják a Compressed értéket
Version 1.1.1
- A Win64 csomagépítések többé nem tartalmaznak tervezési idejű regisztrációs unitokat, így elkerülhetők a build idejű hibák, amikor a Win64 csomagot csak futásidejű környezetben telepítik
- A PDFium DLL betöltő most először a Win32 vagy Win64 alkalmazás almappáját keresi a standard pdfium.dll és pdfium.v8.dll neveket használva, majd az alkalmazás lapos könyvtárára és a Windows rendszerkönyvtárra esik vissza. Ez illeszkedik a komponenscsomaghoz mellékelt DLL-elrendezéshez, és egyszerűvé teszi a telepítést
Version 1.1.0
- Javítottunk egy vizuális levágási hibát a TPdfView kétoldalas módjában: az oldaltartalom áthúzódott a kötésvonalon, mert a bal és jobb oldali csempék ugyanazt az egyetlen vágórectanglet használták. Most minden csempe külön vágódik, így a tartalom az oldalszélén belül marad
- Javítottuk a Delphi demo hibaüzenetét arra az esetre, amikor a PDFium DLL nem található, tisztább felszólítást adva a várt DLL-névvel és hellyel