PDFium Delphi Component Kiadási megjegyzések
A PDFium Delphi Component 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ó: 3.117.0; Kiadás dátuma:
Version 3.117.0
Hozzáadva (Added)
- A táblafelismerés beolvassa a kitöltött téglalapokként megrajolt kereteket és árnyalatokat is: egy olyan kitöltött doboz, amely nem vastagabb az új
MaxRulingThickness-nél, táblázatvonallá válik, egy nagyobb kitöltött doboz pedig a széleit adja hozzá, így a Wordből, a Google Dokumentumokból és a böngészőkből exportált táblák mostantól egyesített feliratsoros vonalazott rácsokként találhatók meg, üres területre utaló töredékek helyett. ADetectFilledRulingskikapcsolja ezt a viselkedést - A táblázatvonalak koordinátái a rácsok összeállítása előtt
RulingSnapTolerancehatáron belül illeszkednek, amivel a cellánkénti keretdarabok, a dupla keretek és a keskeny hézaggal elkülönített árnyalt cellák egyetlen táblává állnak össze - A form XObjectekben lévő vonalak az objektumok egyesített mátrixain keresztül részt vesznek a felismerésben,
IncludeFormXObjectsvezérlésével - Az
ExtractDocumentTablesösszefűzi azokat a folytatási töredékeket, amelyek ott érnek véget, ahol az oldal tartalma véget ér, és ott folytatódnak, ahol a következő oldal tartalma kezdődik – nem csak azokat, amelyek az oldal széleihez érnek –, és egyetlen kicsordult sort is a lánc részeként tart meg - A TableExtractionLab a
DetectFilledRulings-t teszi elérhetővé a beállításpaneljén a Delphi, Lazarus és C++Builder változatokban
Módosítva (Changed)
- Az üres terület felismerése figyelmen kívül hagyja azokat a szavakat, amelyek már egy vonalazott rácshoz tartoznak, és megköveteli, hogy minden oszlophatár szövegmentes folyosó legyen az általa elválasztott sorok mentén, így a sorkizárt bekezdéseket és a felsoroláslistákat már nem jelenti táblaként
- Az az új folytatási jelölt, amelynek első sora a teljes szélességet átfogó egyetlen cella, új, felirattal ellátott táblaként kezelődik, az előző tábla folytatásaként nem
- A
MinRowsvonalazott rácsoknál elfogadja az 1-et; az üres terület felismerése megtartja a két soros küszöbét, aMaxRulingSegmentsalapértelmezett kerete pedig 16384-re emelkedik, mert a cellánkénti keretdobozok jóval nagyobb számban érkeznek, mint a megrajolt rácsvonalak - A cella szövege soronként, egymást átfedő szódobozokból áll össze, így a különböző magasságú glifodobozú szavak megtartják balról jobbra sorrendjüket
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő verziómetaadatai a 3.117.0-s verziót jelentik
Version 3.116.4
Hozzáadva (Added)
- A TableExtractionLab kötegelt mappafeldolgozást kap: a
Batch folderazExtractDocumentTables-t futtatja a kiválasztott mappa minden PDF-jén, dokumentumonként listázza a táblák számát, OCR-re jelöli a szövegréteg nélküli dokumentumokat, és nem engedi, hogy a sérült vagy zárolt fájlok megszakítsák a futást - Az
Export all CSVminden felismert táblát kiír<document>-<n>-page<p>-t<i>.csvnéven atablesalmappába kötegelt futásoknál, egyetlen fájlnál pedig a betöltött dokumentum mellé - Egy felismerési preset-választó hangolt
TPdfTableExtractionOptionsbeállításokat kínál: Default, Compact columns (MinColumnGap4,AlignmentTolerance5, a szoros szövegszerkesztői exportokhoz) és Compact + wide rows (MaxRowGapFactor6, az 1.5-2x sorközökhöz) - A Default preset alatt táblát nem adó dokumentumok egyszer újrapróbálkoznak Compact columns beállítással, az egy dokumentumos és a kötegelt kinyerésnél egyaránt, a kötegelt sorok pedig jelzik, melyik preset adta az eredményt
Javítva (Fixed)
- A kötegelt kinyerés minden dokumentumot saját
TPdfpéldányban nyit meg egy közös komponens újratöltése helyett, ezzel eltűnnek a csendes betöltési hibák, amelyek a mappafutás közben inaktív komponens hibáiként mutatkoztak
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő verziómetaadatai a 3.116.4-es verziót jelentik
Version 3.116.3
Módosítva (Changed)
- A TableExtractionLab minta mindhárom eszközláncban mostantól a generált mintadokumentumát
TableExtractionSample.pdfnéven a demó futtatható fájlja mellé írja, ahelyett hogy csak a memóriában tartaná; ha a mappa nem írható, a lab visszaáll a korábbi memóriabeli viselkedésre, és ezt jelzi az állapotsorban - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai a 3.116.3-as verziót jelentik
Version 3.116.2
Javítva (Fixed)
- A könyvtár nem fordult le régebbi Delphi kiadásokon. A 64 bites tick-segéd, valamint a trusted-list és a production XML kodekjei olyan RTL egységekből hívták a
GetTickCount64-et és aCP_UTF8-at, amelyek csak az újabb fordítókban léteznek, a reflow HTML-író egy CSS karakterlánc-literált a 255 elemes korlát fölé ágyazott, amelyet ezek a fordítók egyetlen literálra kivetnek, az XFA datasetek összevonása pedigTBytesés sima dinamikus tömb mezője között végzett értékadást, amit az XE7 előtti fordítók elutasítanak. A régebbi fordítók most a kernel32-ből kötik meg aGetTickCount64-et, és lokálisan deklarálják aCP_UTF8-at, ha az RTL nem teszi, a stíluslap összefűzött rövid literálokként kerül be, a csomag tartalma pedig elemenként másolódik
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai a 3.116.2-s verziót jelentik
Version 3.116.1
Hozzáadva (Added)
- A
Demo\Delphi\TableExtractionLab, aDemo\CBuilder\TableExtractionLabés aDemo\Lazarus\TableExtractionLabegyetlen munkafolyammá alakítja a táblafelismerést. A lab egy mintadokumentumot épít, amelyben van egy vonalazott tábla egyesített fejléccellákkal, egy vonalazás nélküli, üres területtel igazított tábla, valamint egy hosszú tábla, amely az oldalhatáron át törik, majd lefuttatja azExtractTables-t vagy azExtractDocumentTables-t, és listázza a sorokat, oszlopokat, átfogásokat, fejlécjelzőket, a felismerés módját, a megbízhatóságot és a folytatási csoportokat - A lab a kiválasztott táblát
TPdfTable.ToCsvésTPdfTable.ToJsonútján exportálja, a beállításpanelről állítja aDetectRuledTables,DetectWhitespaceTables,DetectContinuationsésMinConfidenceértékeket, a teljes jelentést pedig a vágólapra másolja - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő verziómetaadatai a 3.116.1-es verziót jelentik
Version 3.114.21
Javítva (Fixed)
- A PDF/A validálás külső fájlhivatkozást jelzett minden jegyzetet tartalmazó dokumentumon. Az ISO 19005-1 §6.1.7 tiltja a
/F, az/FFilterés a/FDecodeParmskulcsokat a stream objektum szótárban, de az ellenőrzés a teljes fájlban kereste ezeket a neveket, miközben a/Fegyben az a jegyzetjelző-kulcs is, amelyet az §6.5.3 előír minden jegyzetnek. Az ellenőrzés mostantól csak a stream objektum szótárakon belül keres
Version 3.114.20
Javítva (Fixed)
- Az RSASSA-PSS aláírások mindhárom aláíró háttérben hibás algoritmusparamétereket vittek. Az RFC 4055 az RSASSA-PSS-params mind a négy mezőjét címkézi; a sóhossz puszta integerként íródott, amelyet egy feldolgozó egy másik mező kezdeteként olvas, a záró mező pedig kiírásra került, annak ellenére, hogy értéke megegyezik azzal az alapértelmezéssel, amelyet a DER szerint el kell hagyni. Egy ellenőrző így vagy nem tudta feldolgozni a paramétereket, vagy az alapértelmezett 20 bájtos sóra állt vissza, miközben az aláírás 32 bájtot használt, ezért a PSS aláírásokat elutasította. A PKCS#1 v1.5 és az ECDSA aláírásokat nem érintette a hiba
Version 3.114.19
Javítva (Fixed)
- Időbélyeg kérése SHA-256-tól eltérő kivonattal olyan kérést állított elő, amely deklarálta azt az algoritmust, miközben SHA-256 kivonatot vitt magával — ezt az időbélyeg-hatóság vagy elutasítja, vagy rosszabb esetben pontosan így időbélyegzi. Csak SHA-256 készül, így minden más azonosítót mostantól visszautasít; az üres azonosító továbbra is a SHA-256 alapértelmezést választja. A Lazarus és C++Builder alatti PDF Viewer minta olyan bookmark-kibontási kezelőt is bekötött, amelyet az űrlapfájl nevesít, de a kód nem definiált, ami űrlapbetöltéskor hibához vezet; a kezelőt a Delphi mintából portoltuk át
Version 3.114.18
Javítva (Fixed)
- A Delphi alatti XFA Lab és XFDF Lab minták, valamint a Lazarus alatti XFA Lab minta indításkor elszáltak. Mindegyik az űrlapja create kezelőjéből építi fel a vezérlőit, de az űrlaperőforrás sem nem létezett, sem nem volt bekötve, így a fő űrlap létrehozása resource-not-found hibát dobott, és a kezelő soha nem futott le. Most mindhárom tartalmazza az űrlapfájlt és a beágyazó direktívát
Version 3.114.17
Javítva (Fixed)
- Két natív erőforrást kezelt hibásan a kód, ha egy művelet félúton bukott meg. Egy elszált bélyegkép-renderelés a célbitmapot szabadította fel a natív renderelés lezárása előtt, és amikor a renderelés egyenesen az adott bitmap saját pixeleibe rajzolt, a lebontás már felszabadított memóriát olvasott. A
AddBitmapmegbukó bitmap-foglalása az imént létrehozott képobjektumot tulajdonos nélkül, megközelíthetetlenül hagyta maga után
Version 3.114.16
Javítva (Fixed)
- Az FDF szöveg olvasása hibás karaktereket adott
0x7Efelett. Az ISO 32000-1 D.2 mellékletének PDFDocEncoding táblája a0x80kódnál a bullettel kezdődik, de a leképezés0x7F-nél indította, így a0x9F-ig terjedő egész blokk egy hellyel eltolódott: a tőr bulletként, a nagykötőjel ellipszisként olvasódott, és így tovább egészen a zcaronig, amely teljesen lecsúszott a végéről. A0xA0kódú eurójel is hiányzott, és nem törhető szóközként jött vissza. Az importált FDF mezőnevei és értékei mostantól helyesen dekódolódnak
Version 3.114.15
Javítva (Fixed)
- A megbízhatóság validálása olyan dokumentumon, amelynek trailerje vagy katalógusa nem olvasható, túlírt a tömb végén. A megfelelőségi menet ebben az esetben feladja a dolgot anélkül, hogy bármilyen aláírást rögzítene, miközben az utána futó gyűjtő közvetlenül a bájtfolyamból dolgozik, és továbbra is találhat aláírási szótárakat, így minden megtalált szótárba egy-egy bejegyzés íródott egy üres tömbbe. A darabszám mostantól arra van korlátozva, amit a megfelelőségi menet előállított
Version 3.114.14
Javítva (Fixed)
- Egy PDF/A javítási terv végrehajtása olyan lépéseket is lefuttatott, amelyeket a tervező zárolt. Egy lépés akkor zárolt, ha a dokumentum aláírásokat hordoz, a lépés érvénytelenítené őket, és a hívó ezt nem engedte; a végrehajtó csak a lépés biztonsági szintjét vizsgálta, amely nem fejezi ki ezt a feltételt, így egy aláírt dokumentum aláírásait érvényteleníthette egy olyan automatikus javítás, amelyet a terv már korábban elutasított. A zárolt lépéseket most kihagyjuk, és kihagyásként számoljuk el
Version 3.114.13
Javítva (Fixed)
- Aláírási időbélyeg hozzáadása olyan CMS értékhez, amelynek tanúsítványkészlete nagyobb 127 bájtnál — vagyis minden valódi tanúsítványnál —, tönkretette az eredményt. A beágyazott struktúra kezdetét felkutató segédfüggvény visszafelé lépkedett a hossz oktettjein, és az utolsót az elsinek nézte, így a kivágott szelete jóval a kért struktúra előtt kezdődött. A fejléc hosszát mostantól a tartalom hosszából származtatjuk, amit a DER egyértelműen előír. Az öntesztek azért nem vették észre, mert a fixture tanúsítványaik elég kicsik voltak a rövid forma használatához
Version 3.114.12
Javítva (Fixed)
- Az aláírt attribútumok abban a sorrendben kerültek kiírásra, ahogyan felépültek, és nem a kódolásuk szerint rendezve, ahogy azt az X.690 §11.6 megköveteli egy DER SET OF esetén. Egy olyan ellenőrző, amely a kivonatolás előtt újrakódolja az attribútumhalmazt — ahogy az OpenSSL és a BouncyCastle egyaránt teszi —, ezért más kivonatot számolt, és egy szabályos PAdES aláírást jelentett érvénytelenként. Ennek a könyvtárnak az aláírásai mostantól teljesülnek ezekben a stackekben is; a Windows rétegen átmenő validálást nem érintette a hiba, mert a bájtokat úgy vonatolja, ahogyan megérkeztek
Version 3.114.11
Javítva (Fixed)
- A két tartalombájtnál szélesebb negatív DER INTEGER rossz értékkel kódolódott. Az író aritmetikai eltolást emulál azzal, hogy logikai eltolás után visszainjektálja az előjelet, de a használt maszkja az alacsony bájt feletti minden bitet beállított annak a bájtnak a helyett, amelyet az eltolás kiürített, így a maradék bájtokban még meglévő nagyság felülíródott. A -100000 érték például -34464-ként kódolódott. Az időbélyeg-kérések nonce-értékei és minden más ilyen méretű előjeles integer mostantól helyesen kódolódnak
Version 3.114.10
Javítva (Fixed)
- A PDF/A validálás sosem jelezte az ISO 19005-1 §6.4 átlátszósági szabályának konstans alfa részét. A segédfüggvény a keresési kulcsát solidus eléírásával építi, és a hívó is átadott egyet, így
//CAután keresett, és semmit nem talált. Mindkét alfa-ellenőrzés ezenkívül csak a1és a1.0pontos szövegeket fogadta el, így egy teljesen opák/CA 1.00szabálysértésként jelződött; az egyes értéket mostantól bármilyen írásmódban felismerjük
Version 3.114.9
Javítva (Fixed)
- Az oldalszintű URI művelet összekuszált szöveget adott vissza. Az útvonal a natív rétegtől UTF-8 bájtokként érkezik, és egyenesen egy wide stringbe íródott, amely a bájtokat 16 bites kódegységekké párosította, a puffer többi része pedig azt tárolta, ami véletlenül ott maradt a memóriában. A
GetPageActionURImostantól ugyanúgy dekódolja a bájtokat, ahogy a dokumentumszintű műveleti útvonal már tette
Version 3.114.8
Biztonság (Security)
- A Windowstól eltérő célokon a titkosítási kulcsok, a sók és az inicializáló vektorok mögötti véletlen bájtok a runtime PRNG-ből érkeztek, amelynek magva konstans, hacsak a program nem hívja a
Randomize-ot. Minden process ezért ugyanazt a fájltitkosítási kulcsot, ugyanazokat a/UEés/OEsókat, ugyanazokat a/Permsbájtokat és ugyanazokat az AES-GCM nonce-okat állította elő, ami a Linuxon vagy macOS-en fordított Free Pascal build titkosított kimenetét triviálisan visszanyerhetővé teszi, és GCM nonce-ot ismétel ugyanazzal a kulccsal. A bájtok mostantól a/dev/urandom-ból jönnek, és ha a kernel pool nem érhető el, kivételt dobunk ahelyett, hogy visszállnánk — ahogy már a nem elérhetőCryptGenRandomesetén is történt Windowson
Version 3.114.7
Javítva (Fixed)
- Egy hibás object stream miatt a tömörítési és javítási belépési pontok túlolvashattak a dekódolt puffer végén. A stream által deklarált tagoffszeteket mostantól a fejléc feldolgozása után azonnal ellenőrizzük tartományra és növekvő sorrendre, a fejlécben tárolhatónál nagyobb deklarált tagszámot már a memóriafoglalás előtt elutasítjuk, és minden tag bájtartományát a záró whitespace levágása előtt validáljuk, nem utána
Version 3.114.6
Javítva (Fixed)
- A beágyazott képek externalizálása használhatatlan kép-XObjectet eredményezett. A szótár az első kulcsa elé egy felesleges solidussal íródott, amely üres nevet nyitott, és minden kulcsot az előző kulcs értékére tolt, az inline rövidítőtábla pedig a Decode-ot
DhelyettG-re képezte, így egy/Dtömb elveszett, és a DeviceGray értékrövidítését kulcsnak nézték. A tartalomfolyamból kiemelt képek mostantól jól formált szótárat hordoznak, és megőrzik a Decode tömbjüket
Version 3.114.5
Javítva (Fixed)
- A HarfBuzz shaper a jobbról balra futó futamokban rossz glifusokhoz rendelte a klaszterhosszakat, és az egy klasztert megosztó glifusoknak — például jeleknek és ligatúra-komponenseknek — egységnyi hosszat adott. Minden glifus
ClusterLengthértéke mostantól a klasztere kezdetétől a logikai sorrendben következő klaszterig terjed, mindkét irányban, így az arab és héber szöveg karakter-glifus leképezése egyezik azzal, amit a Uniscribe háttér jelent
Version 3.114.4
Javítva (Fixed)
- A libcurl időbélyeg-átvitel a numerikus opcióit 32 bites értékekként adta át, és a HTTP státuszkódot is így olvasta, miközben a libcurl C
long-t vár és ad vissza, amely Linuxon és macOS-en 64 bites. A státuszkérés felülírhatta a veremen a célja melletti négy bájtot, az opcióértékek pedig attól függtek, mi maradt a regiszter felső felében. Mindkettő mostantól a platformlongszélességét használja, így aFPdfTsaFpcLP64 célokon is helyes
Version 3.114.3
Javítva (Fixed)
- A PKCS#11 háttér egy tokenobjektum-címke nyers bájtjait másolta át egyenesen stringbe, ami Delphi alatt UTF-8 bájtokat ültet UTF-16 kódegységekre. Ezért a
TPdfPkcs11Options.CertificateLabelútján kiválasztott tanúsítvány soha nem találhatott egyezést, és aEnumerateCertificatesösszekuszáltLabelText-et jelzett. A címkéket mostantól a szabvány által előírt UTF-8-ként dekódoljuk, aC_Login-nak átadott PIN pedig UTF-8-ként kódolódik a gazdagép kódlapján át történő szűkítés helyett, így a nem ASCII PIN érintetlenül jut el a tokenhez
Version 3.114.2
Javítva (Fixed)
- A macOS Keychain aláíró rossz műveletre kérdezett rá a
SecKeyIsAlgorithmSupportedútján, amikor eldöntötte, hogy egy kulcs elfogadja-e az RSASSA-PSS-t: a lekérdezés a decrypt műveletet nevezte meg a sign helyett, így a válasz mindig nem volt, és minden RSA aláírás csendben PKCS#1 v1.5-re állt vissza. A PSS-t támogató kulcs mostantól PSS-sel ír alá, ahogy aTPadesSignerOptions.PaddingSchemekéri, a műveletargumentum pedig a keretrendszer által deklarált szélességgel adódik át
Version 3.114.1
Javítva (Fixed)
- A jobbról balra írt szövegben a beágyazott zárójelpárok rossz irányra oldódtak fel. Az UAX #9 BD16 szabálya a nyitó zárójelek megjelenési sorrendjében dolgozza fel a párokat, és az N0 által feloldott páros a megelőző erős kontextussá válik az utána nyíló páros számára; a párok viszont a záró zárójelek lezárási sorrendjében kerültek feldolgozásra, így egy belső páros követhette az általa közrefogott betűt ahelyett, hogy a külső páros által kialakított kontextust követte volna. Az olyan szöveg, mint egy zárójelbe tett, további beágyazott zárójelet tartalmazó arab vagy héber mondat, mostantól úgy rendeződik, ahogy az olvasó várja
Version 3.114.0
Hozzáadva (Added)
- A
FPdfCryptoSslOpenSSL-en keresztül validálja a PDF aláírásokat és az időbélyeg tokeneket, ezzel bezárja az aláírásvalidálás utolsó platformhézagát: Linuxon egyáltalán nem létezett CMS ellenőrző háttér. AConfigureSslCmsVerifiertelepíti, a libcrypto futásidőben név szerint oldódik fel, így semmi nem linkel rá, és az 1.1-es és a 3.x-es sorozat egyaránt beköthető - Az aláírás és a tanúsítványlánc külön menetekben értékelődik, így egy szabályos aláírás olyan tanúsítványlánc alatt, amely nem ér el trust anchorig, érvényes aláírásnak jeleződik érvénytelen megbízhatósággal, nem pedig sérült aláírásként
- A
ConfigureSslTrustAnchorsDER trust anchorokat ad a rendszer tárolójához, aConfigureSslCrlspedig azokat a CRL-eket szolgáltatja, amelyeket a visszavonási ellenőrzés figyelembe vehet. A visszavonás csak akkor számít ellenőrzöttnek, ha ténylegesen van jelen CRL, mert az OpenSSL magától egyet sem tölt le; CRL nélkül az eredmény unsupportedot jelez ahelyett, hogy ellenőrizetlen láncot engedne át - A
SslAvailable, aSslMissingSymbols, aSslLibraryPath, aSslLibraryVersionés aSslAbiLayoutjelzi, mi kötött be és mi nem, aConfigureSslLibraryPathpedig konkrét könyvtárra irányítja a hátteret, ha a platform alapértelmezései nem találnak egyet
Version 3.113.0
Hozzáadva (Added)
- A
TPdfKeychainCmsVerifiermacOS-enCMSDecoderés SecTrust útján validálja a PDF aláírásokat és az időbélyeg tokeneket, így az aláírásvalidálás már nem Windows-exkluzív. AConfigureKeychainCmsVerifiertelepíti, és ugyanaz az egység fedi le a macOS támogatás mindkét felét, ahogy aFPdfCryptoWinteszi Windowson - A visszavonás-ellenőrzés is támogatott: ha kérik, egy visszavonási irányelv csatlakozik az alapvető X.509-eshez, az online letöltés kikapcsolása pedig a gyorsítótárazott válaszokra szűkíti az értékelést. A folyamat-ellenőrzőpontok az aláírás, a lánc, az online letöltés és a visszavonás fázisoknál aktiválódnak, pontosan úgy, ahogy a Windows háttér jelzi őket
- A
KeychainVerificationAvailableaz ellenőrzés támogatását külön jelzi az aláírástól, mert a kettőhöz különböző keretrendszerszimbólumok kellenek, és az egyik jelen lehet a másik nélkül
Version 3.112.0
Hozzáadva (Added)
- A
FPdfCryptoMacmacOS Keychain identitással ír PAdES aláírást, a Windows tanúsítványtároló megfelelőjeként: a tanúsítvány és a privát kulcsa a Keychainből érkezik, az aláírást aSecKeyCreateSignatureállítja elő, így a kulcs soha nem hagyja el a rendszer kulcstárolóját. AConfigureKeychainSignerProvidertelepíti, és nem kell modult telepíteni az alkalmazás mellé, ahogy azt egy PKCS#11 token háttér megkövetelné - Az aláíró a tanúsítványhoz igazodik: egy EC kulcs ECDSA-t ír, egy RSA kulcs RSASSA-PSS-t, és ahol a PSS nem érhető el — régebbi macOS, vagy olyan kulcs esetén, amely nem fogadja el — a padding PKCS#1 v1.5-re áll vissza, és a kiírt AlgorithmIdentifier is ezt jelzi, nem pedig PSS-t állít
- A
KeychainMissingSymbolsfelsorolja minden olyan keretrendszerszimbólumot, amelyet nem sikerült feloldani, így egy olyan telepítés, amely nem elérhetőként jelzi a hátteret, el tudja dönteni, hogy hiányzik-e a keretrendszer, vagy ez a kötés keresett rossz nevet
Version 3.111.0
Hozzáadva (Added)
- A
ConfigurePadesCmsVerifiertelepíti azt a CMS ellenőrző hátteret, amelyet a PAdES validátor használ, így az aláírás- és időbélyeg-ellenőrzés már nem Windows-hoz kötött. AIPdfCmsVerifierdeklarálja azt a két műveletet, amelyre egy háttér válaszol — detached egy PDF aláírásra, attached egy időbélyeg tokenre —, aPadesCmsVerificationAvailablepedig jelzi, van-e egyáltalán jelen háttér
Módosítva (Changed)
- Az ellenőrzési eredmény- és opciórekordok a
FPdfCryptoalá költöztekTPdfCmsVerify*néven. ATWinCmsVerify*nevek álnevekként megmaradnak, így a meglévő kód működik tovább, és egy csatlakoztatott háttér ugyanazokat a típusokat beszéli, mint a Windows háttér - A Windows viselkedése változatlan: telepített ellenőrző nélkül továbbra is CryptoAPI-t használ, a folyamat-ellenőrzőpontok, a visszavonási opciók és a natív hibakódok pedig ugyanazok. Ahol nem válaszol háttér, minden ítélet unsupportedot jelez ahelyett, hogy ellenőrizetlenül hagynák
Version 3.110.0
Hozzáadva (Added)
- A
FPdfPkcs11olyan kulccsal ír PAdES aláírást, amely a PKCS#11 tokenben marad. AConfigurePkcs11SignerProvideraláíró háttérként telepíti, a modul futásidőben útvonal szerint töltődik be, így semmi nem linkel rá, és ugyanez a kód szolgálja Windowst, Linuxot és macOS-t. AzIPdfPkcs11SignerProviderinterfész által deklarált tokenfelsorolás mellette valósul meg: slotok, tokenek és a mindegyikben tárolt tanúsítványok - A Windowson kívüli aláíráshoz a gyakori esetben már nem kell gazdagép által szolgáltatott provider: egy token modul és egy
TPdfPkcs11Optionselég. RSA PKCS#1 v1.5, RSASSA-PSS és ECDSA egyaránt a tokenen keresztül készül - A
FPdfSha1egyetlen célból adja hozzá a SHA-1-et: aTPadesSignerOptionsáltal hordozott ujjlenyomat szerinti tanúsítványegyeztetéshez. Windowson ezt a tanúsítványtárolóban oldotta meg a rendszer; a token visszaadja a tanúsítvány bájtjait, és az egyeztetést a hívóra hagyja. Nem aláíró kivonat, és a PAdES stack továbbra is végig SHA-256-mal ír alá
Módosítva (Changed)
- Azok a tanúsítvány DER segédek, amelyek beolvassák a nyilvános kulcsú algoritmus OID-jét, kinyerik a kibocsátót és a sorozatszámot, és újracsomagolnak egy nyers ECDSA aláírást, a Windows háttérből a
FPdfCms-be költöztek, ahol minden aláíró háttér eléri őket
Version 3.109.0
Módosítva (Changed)
- A natív könyvtárbetöltő már nem Windows-exkluzív. A
LibraryNamealapértelmezése a célnak megfelelőenpdfium.dll,libpdfium.sovagylibpdfium.dylib, a V8 build a megfelelő név alatt keresendő, a betöltés és a szimbólumbekötés pedig Free Pascal alatt a hordozható betöltőn megy át. A Windows viselkedése változatlan, beleértve a Win32 és Win64 telepítési elrendezést és az architektúra-eltérés diagnosztikáját - A más célok telepítési könyvtárai követik azt a
<cpu>-<os>írásmódot, amelyet a lefordított egységek már használnak, így aDLLs/x86_64-linux/libpdfium.soaLib/FPC/x86_64-linuxmellett ül. A rendszerkönyvtár-tartalék Windows-exkluzív marad; máshol a betöltő keresési útvonala lefedi
Version 3.108.0
Hozzáadva (Added)
- A
TPdfHarfBuzzTextShaperkétirányú és komplex írású szöveget formáz azokon a Free Pascal célokon, amelyeken nincs Uniscribe. A beágyazási szinteket aFPdfBidioldja fel, a futamokat írás szerint szegmentálja, mindegyik futamot a libharfbuzz formázza, és a futamokat vizuális sorrendbe helyezi. Telepítése aConfigureTextShaperútján történik; a libharfbuzz futásidőben oldódik fel, és aHarfBuzzAvailableőszintén jelzi, ha hiányzik - A shaper nem sorolja fel a betűtípusokat. A Uniscribe a betűtípus binárisát eszközkontextusból olvassa ki, aminek nincs hordozható megfelelője, ezért a gazdagép egy
TPdfFontDataResolver-t ad át, amely a betűtípus nevét a betűtípusfájl bájtjaira képezi le, és ez az irányelv ott marad, ahova tartozik
Version 3.107.0
Hozzáadva (Added)
- Az
FPdfBidia Unicode kétirányúsági algoritmust (UAX #9) implementálja tiszta Pascalban: aPdfResolveBidiLevelsUTF-16 kódegységenként egy beágyazási szintet ad vissza, aPdfBidiVisualOrderelvégzi az L2 átrendezést, aPdfBidiClassOfpedig megadja egy kódpont Bidi_Class értékét. A P2-P3, X1-X10, W1-W7, N0-N2, I1-I2 és L1-L2 szabályok mind le vannak fedve, az isolate kezdeményezőket és a BD16 zárójelpárokat is beleértve - A unit fordító- és platformfüggetlen, és pontosan ez teszi lehetővé, hogy kétirányú szöveg ott is elrendezhető legyen, ahol a Uniscribe nem érhető el. A shaping engine olyan futamhoz (run) rendel glypheket, amelynél az irány már ismert, így ez az a komponens, amelynek először kell eldöntenie az irányt
Version 3.106.0
Hozzáadva (Added)
- A
ConfigureTextShapertelepíti azt a szöveg-shaping backendet, amelyen a teljes könyvtár szövegkezelése átfut, mellette pedig elérhető aActiveTextShaper, azActiveTextShaperNameés aClearTextShaper. AShapePdfTextés aTPdf.AddShapedTextmostantól a telepített shapert használja Uniscribe-példány közvetlen létrehozása helyett, így a gazdalkalmazás adhat saját engine-t, egy teszt pedig determinisztikusat
Módosítva (Changed)
- Az
FPdfTextShapinga Windowstól eltérő célokon is lefordul: a Uniscribe backend mostantól a platform alapértelmezése, nem pedig az egyetlen implementáció, és csak a Windows buildre korlátozódik. Ahol egy backend sem áll rendelkezésre, a shaping belépési pontok ezt jelzik, ahelyett hogy a fordítás bukna el
Version 3.105.1
Biztonság (Security)
- Az időbélyeg-válasz mindkét szállítási csatornán 4 MB-ra korlátozódik. Egy folyamatosan adagoló TSA korábban korlátlanul növelhette a fogadó puffert, és így egy aláíró hívás korlátlan memórianövekedésbe fordulhatott át
Version 3.105.0
Hozzáadva (Added)
- Az RFC 3161 időbélyegzés a Windowstól eltérő Free Pascal célokon is működik: az új libcurl backend elküldi a TimeStampReq kérést és beolvassa a TimeStampResp választ, így ezeken a platformokon a
PadesTsaAvailableTrue-t jelent, és a PAdES B-T, B-LT és B-LTA szintek is juthatnak tokenhez. A libcurl futásidőben oldódik fel, nem build-időbeli függőség; ha hiányzik, a backend pontosan úgy jelzi, hogy nem áll rendelkezésre, ahogy a WinHttp-alapú is teszi. A Windows továbbra is WinHttp-ot használ, és nem érintett - Az aláíráshoz ezeken a célokon továbbra is olyan kulcsanyag kell, amellyel a könyvtár nem rendelkezik: ezt a
ConfigurePadesSignerProvidersegítségével, egyIPadesSignerProvider(token-alapú kulcsokhozIPdfPkcs11SignerProvider) megadásával kell biztosítani, mivel aFPdfCryptoWincsak Windows-on fut
Version 3.104.1
Hozzáadva (Added)
- Az XFA inspection lab minta mostantól Lazarus alatt is elérhető, így az XFA képességpróbák, a csomaglistázás, a csomagexport és az
OnXfaRuntimeMissingfallback is kipróbálható az LCL buildből
Version 3.104.0
Módosítva (Changed)
- A könyvtár Free Pascal 3.2 alatt elkerülhető diagnosztikáktól mentesen fordul: a belső időmérés a milliszekundum ticket a
GetTickCount64-ből olvassa az elavult 32 bites hívás helyett, az elavult SSE control-word accessorokat aGetMXCSRés aSetMXCSRváltja fel, a tartalom-ujjlenyomat offset alapja explicit típusú, így már nem vált ki fordítási idejű tartományellenőrzést, a scanline címeket pedig előjel nélküli pointerekként hasonlítja össze, amikor egy bitmapen ellenőrzi a top-down elrendezést
Version 3.103.1
Javítva (Fixed)
- Az XMP-be vitt dokumentum-metaadatok Free Pascal alatt is megtartják nem ASCII karaktereiket: a
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRésSaveAsPdfVTfelé eljutó címek, szerzők, tárgyak, kulcsszavak és létrehozói nevek mostantól a string kódlapján konvertálódnak bájtonkénti másolás helyett, így a metaadat-csomag akkor is érvényes UTF-8 marad, ahogy azt az ISO 19005-1 6.7.2 előírja, ha a gazdaprogram nem UTF-8 kódlapon fut - Az XFDF-export, a production metaadat oda-vissza útjai és a trusted-list XML feldolgozása ugyanezt a kódlaphelyes konverziót használja, így a
TBytesés astringközött vándorló szöveg már nem függ a gazdaprogram kódlapjától
Version 3.103.0
Hozzáadva (Added)
- A
TPdfEuropeanTrustedListhitelesített európai trusted listákat dolgoz fel, az ellenőrzőösszeges cache-eket ugyanazon hitelesítőn keresztül tölti újra, elfogad hívó által megadott frissítési forrásokat, közzéteszi az aktuális trust anchoröket, és a kért validációs időpontban értékeli a kvalifikált aláírási szolgáltatásokat - A
TPadesTrustValidationOptions.QualifiedTrustEvaluatoroffline kvalifikált-megbízhatósági szabályzatot alkalmaz minden validált aláíróra, anélkül hogy hálózati hozzáférést tenne a PAdES validátorba
Version 3.102.0
Hozzáadva (Added)
- A
BeginIncrementalSaveés aCommitIncrementalSavemostantól AES-256 titkosítású dokumentumokhoz is fűz hitelesített revíziókat, miközben megőrzi az eredeti/Encrypthivatkozást, a biztonsági paramétereket, a pontos objektumgenerációkat és a korábbi bájtokat
Módosítva (Changed)
- A fájl-commit túlterhelés mostantól tartósan kiírja és szigorúan újranyitja az azonos könyvtárban lévő mellékfájlt, ellenőrzi annak revízióhatárát, és atomikusan cseréli a célt, miközben bármilyen hiba után visszagörgeti a munkamenetet
Version 3.101.0
Módosítva (Changed)
- A
SaveAsRedactedmostantól megőrzi a részben metsző szövegek, a téglalap alakú path-ek és a tengely-igazított képek biztonságos részeit, majd eltávolítja azokat az erőforrásneveket, amelyekre az oldal, a Form XObject, a pattern, az appearance és a beágyazott erőforrás-hatályok többé nem hivatkoznak
Version 3.100.0
Módosítva (Changed)
- Az
OptimizeImagesmostantól a méretarány, a tartalomosztály, a mért részletesség és a hívó által kért minőség alapján választ box, bilinear, bicubic, Lanczos vagy bilevel újramintavételezést, alfa-tudatos szűréssel és szigorú munkamemória-kerettel
Version 3.99.0
Hozzáadva (Added)
- A
GraftPdfAcroFormhierarchikus AcroForm mezőket, widgeteket, appearance-öket, számítási sorrendet, alapértelmezett erőforrásokat, actionöket és értékeket importál explicit oldal-hozzárendelések és ütközésszabályok mentén - A
TPdfCrossDocumentGraftMapa forrás-azonosság alapján használja újra az importált indirekt objektumokat, miközben megőrzi a ciklusokat, a megosztott hivatkozásokat, a pontos forrásgenerációkat és a tranzakciós hibaszemantikát
Version 3.98.0
Hozzáadva (Added)
- A
TPdfOutlineEditorvázlatelemeket hoz létre, mozgat, töröl, stílusoz, kibont és más célra irányít át, explicit destinationöket rendez újra az oldal-terv eredményei alapján, és függetlenül ellenőrzött növekményes revíziót fűz a dokumentumhoz
Version 3.97.0
Hozzáadva (Added)
- A
TPdfTreeEditortetszőleges PDF NameTree és NumberTree struktúrákat olvas, validál, frissít, kiegyensúlyoz, szétbont, egyesít, szerializál és növekményesen ment, miközben megőrzi az újrahasznosítható indirekt hivatkozásokat és a nyers bejegyzésértékeket
Version 3.96.0
Hozzáadva (Added)
- A
TPdfParserResourceBudgetegyetlen, szálbiztos, folyamatszintű szabályzatot ad az egyéni PDF parserek számára a rekurzióra, a tokenekre, az objektumokra, a dekódolt bájtokra, a tágulási arányra, az allokációra és a határidőkre, megváltoztathatatlan, műveletenkénti pillanatképekkel és konfigurálható alapértékekkel
Version 3.95.0
Módosítva (Changed)
- A
ValidatePdfXmostantól az aktív PDF/X szótárakat, a metaadatokat, az OutputIntenteket, a betűtípusokat, a tiltott funkciókat, a transzparenciát, a színtereket és az oldaldobozokat validálja korlátozott, ritka (sparse) olvasásokkal érvényes xrefű, titkosítatlan dokumentumokon
Version 3.94.0
Módosítva (Changed)
- A
ValidatePdfRmostantól az aktív PDF/R szótárakat, oldalakat, képszűrőket, metaadatokat és lábléc-jelölőket validál korlátozott, ritka és ablakolt olvasásokkal érvényes xrefű, titkosítatlan dokumentumokon
Version 3.93.0
Módosítva (Changed)
- A
ValidatePdfEmostantól az aktív PDF/E szótárakat, a metaadatokat, az OutputIntenteket, az űrlapokat és a tiltott funkciókat validálja korlátozott, ritka olvasásokkal érvényes xrefű dokumentumokon
Version 3.92.0
Módosítva (Changed)
- A
ValidatePdfVTmostantól a visszatérő XObjectek hatályára, láthatóságára, beágyazottságára és a beágyazott Form használatára irányuló haladó elemzést végez korlátozott, ritka olvasásokkal érvényes xrefű dokumentumokon
Version 3.91.0
Hozzáadva (Added)
- A
TPdfSparseDictionaryReaderfel tudja oldani egy objektum aktív generációját, és hívó által megadott bájtlimit alatt közvetlen streamet is dekódolhat
Módosítva (Changed)
- A
ValidatePdfVTmostantól korlátozott, ritka olvasásokat használ a PDF/VT metaadat, DPart, OutputIntent, Info, oldal és rendes szótárellenőrzésekhez a normál, érvényes xrefű útvonalon
Version 3.90.0
Hozzáadva (Added)
- A
TPdfSparseDictionaryReaderegyetlen ritka xref és object-stream indexet tart nyitva az ismételt, korlátozott indirekt objektumszótár-olvasásokhoz
Módosítva (Changed)
- Az
InjectPdfVTMarkersmostantól validálja és megőrzi a meglévő PDF/VT DPart hierarchiát korlátozott forrásolvasásokkal, míg a hibás hierarchiák továbbra is az újraépítő fallback mentén haladnak
Version 3.89.0
Hozzáadva (Added)
- A
ReadPdfSparsePageDictionariesoldalobjektum-azonosságokat és korlátozott mennyiségű szótárbájtot ad vissza oldalfa-sorrendben a ritka objektumindexen keresztül
Módosítva (Changed)
- Az
InjectPdfVTMarkersmostantól előállítja a PDF/VT DPart hierarchiát, és korlátozott forrásolvasásokkal fűzi hozzá a jelölő objektumokat, ha a mentett PDF még nem tartalmaz DPart hierarchiát
Version 3.88.0
Hozzáadva (Added)
- A
ReadPdfSparseCatalogSubDictközvetlen vagy indirekt katalógus-szótárat olvas a ritka objektumindexen keresztül; a PDF/UA jelölő-befecskendezés használja aMarkInfoés aViewerPreferencesesetén
Módosítva (Changed)
- Az
InjectPdfUaMarkersmostantól ritka kereséssel oldja fel a katalógusMarkInfoésViewerPreferencesbejegyzéseit, és a PDF/UA revíziót korlátozott forrásolvasásokkal fűzi hozzá a normál xref útvonalon
Version 3.87.0
Hozzáadva (Added)
- Az
AppendPdfSparseUpdateegyetlen ritka revíziót streamel egy mentett PDF-re: a forrásbájtokat változatlanul, a hívó által megadott objektumtörzseket a rögzített offseteken, valamint egyetlen növekményes xref/trailer blokkot, amely a/Prev-ön keresztül láncolódik - A
NormalizePageViewRectaz oldal-térbe képzett két sarkot az oldalra szűkített látható téglalappá normalizálja, vagy jelenti, hogy az oldalból semmi sem látható - A PDF/E jelölő-befecskendezés friss Info objektumot állít elő
/ISO_PDFEVersionértékkel, ha a forrásdokumentumnak nincs Info szótára
Módosítva (Changed)
- A PDF/E, PDF/X és PDF/R jelölő-befecskendezés mostantól ritka kereséssel oldja fel a katalógust, az Info-t és a trailert, a revíziókat pedig az
AppendPdfSparseUpdatesegítségével fűzi hozzá korlátozott forrásolvasásokkal a normál xref útvonalon - Az űrlapkitöltés
FFI_GetPageViewRectcallbackje mostantól az oldalnak azt a részét jelenti, amely a csatoltTPdfView-ben ténylegesen látható, nem pedig mindig a teljes oldaldobozt, vezérlő nélküli (headless) dokumentumoknál pedig az oldal méretére esik vissza - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a 3.87.0-s verziót jelentik
Javítva (Fixed)
- A
FPDFPath_GetBezierControlPointskötése óta elérhető path-szegmens kontrollpontok sosem kaptak értéket: a natív export csak minden háromelemű kubikus végpontindexére válaszol, így a lekérdezés most görbenként egyszer fut, és mindhárom elem a görbe kontrollpontjait hordozza
Version 3.86.0
Hozzáadva (Added)
- A
ReadPdfSparseRevisionInfokorlátozott terjedelemben tárja fel a legfrissebb revízióra, a katalógusra, a titkosításra, a dokumentum-ID-re és a taggelt struktúrára vonatkozó tényeket a stream-utófeldolgozók számára - A
ComposePdfSparseUpdateIdmegőrzi vagy levezeti a növekményes frissítés dokumentumazonosítóit anélkül, hogy a teljes forrás-PDF-et materializálná
Módosítva (Changed)
- Az
InjectPdfAMarkersmostantól ritka kereséssel oldja fel a katalógust és a trailert, a nagy bemeneteket korlátozott darabokban másolja, és a PDF/A revíziót anélkül fűzi hozzá, hogy forrásméretű bájttömböt allokálna a normál xref útvonalon - A PDF/A jelölő-befecskendezés megőrzi a klasszikus vagy xref-stream kimeneti stílust, a katalógus és az Info generációit, a trailer azonosítóit, a titkosított fájl elutasításának viselkedését és a Level A lefokozási szabályait
Version 3.85.0
Hozzáadva (Added)
- A
SanitiseActiveContentPdfStreamhívói tulajdonú metszési munkaterületet fogad el egyéni, korlátozott vagy lemezhátú tároláshoz
Módosítva (Changed)
- Az aktív tartalom fertőtlenítése mostantól ritka kereséssel, korlátozott parser-ablakokkal és rögzített méretű tartánymásolással frissíti a katalógust és a trailert, ahelyett hogy a teljes PDF-et egyetlen bájttömbbe olvasná be a normál xref útvonalon
- A
TPdf.SaveAsSanitisedaSaveMemoryLimités aSaveTemporaryDirectorybeállításokat a metszési munkaterületére alkalmazza, és jelenti annak spill diagnosztikáját
Javítva (Fixed)
- A
StripMetadata=Truemostantól akkor is eltávolítja a trailer/Infohivatkozását, ha a katalógusban nincs/Metadatabejegyzés
Version 3.84.0
Módosítva (Changed)
- A
TPdf.PdfVersionmostantól aFPDF_GetFileVersionhívásán keresztül hasznosítja újra a PDFium parser állapotát, ahelyett hogy újraparsolná a teljes forrás-PDF-et - A verziólekérdezések legfeljebb a nyolcbájtos PDF fejlécet olvassák be, hogy egy hibás katalógus-deklaráció ne fokozhassa le a tényleges verziót
Version 3.83.0
Módosítva (Changed)
- A
PageLabelledPdfStreammostantól korlátozott stream-ablakokon és a ritka, lusta objektumindexen keresztül oldja fel és frissíti a katalógust - Az oldalcímke-kimenet a nagy forrás-PDF-eket rögzített méretű tartományokban másolja, ahelyett hogy a normál xref útvonalon teljes dokumentum méretű bájttömböt allokálna
Version 3.82.0
Módosítva (Changed)
- Az
ApplyDefaultOpenActionmostantól ritka, lusta objektumindexen keresztül olvassa a klasszikus, xref-stream, hibrid és objektum-stream revíziókat, a nagyon magas objektszámú dokumentumokat is beleértve - Az alapértelmezett open-action feldolgozás rögzített méretű ablakokat és korlátos tartomány-másolást használ ahelyett, hogy a teljes PDF-et egyetlen bájttömbbe töltené
Version 3.81.0
Hozzáadva (Added)
- A
PostProcessSavedPdfhárom, a hívó tulajdonában lévő, pozicionálható munkaterületet fogad el egyéni memóriamaximumokhoz és lemezhátterű feldolgozáshoz
Módosítva (Changed)
- A
TPdf.SaveAsminden mentett PDF utófeldolgozási munkaterületére alkalmazza aSaveMemoryLimités aSaveTemporaryDirectorybeállításokat, és a diagnosztikában is szerepelteti azok ideiglenes tárolóra kiírt adatait - A natív, növekményes xref-stream javítás rögzített méretű farok- és szótárablakokat használ korlátos tartomány-másolással, egész fájlos bájttömbök és ismételt teljes-fájl újrafoglalások helyett
Version 3.80.0
Hozzáadva (Added)
- A
ReadAttachmentMetadataegyetlen korlátos natív bejárásban rögzíti a csatolmányneveket, leírásokat, MIME-altípusokat, dekódolt méreteket és az olvashatósági állapotot - Az
ExtractAttachmentsToStreamsegy köteget ír a hívó tulajdonában lévő stream-ekbe fájlonkénti és összesített bájtkorlátokkal, konfigurálható írási blokkokkal, megszakíthatósággal és elemenkénti eredményekkel
Módosítva (Changed)
- A kötegelt kinyerés legfeljebb egy dekódolt csatolmányt tart meg a PDFiumPas memóriájában ahelyett, hogy a köteg minden hasznos tartalmát materializálná
Version 3.79.0
Hozzáadva (Added)
- A
TPdfCacheGovernor, aTPdf.CacheBudgetBytes, a fajtánkénti használati lekérdezések és a telemetria egyetlen, szálbiztos globális LRU bájtkereten keresztül koordinálja a megtartott gyorsítótár-memóriát - A
TPdfTileCacheés a folyamatszintű rendszerbetűtípus-gyorsítótár a hívó által kiválasztott szabályozóhoz csatlakozhat pontos bittérkép- és betűtípusbájt-elszámolással
Módosítva (Changed)
- Az elemzett oldaljelenetek, bélyegképek, struktúraadatok, szövegpillanatképek és oldalobjektum-pillanatképek mostantól egy alapértelmezett 256 MiB-os
TPdfkeret alatt versenyeznek, miközben megőrzik meglévő elemszám-korlátaikat - Az aktív oldaljelenetek a renderelés befejezéséig rögzítve maradnak, az átlátszatlan natív oldaljelenetek pedig explicit becsült terhet írnak fel, mert a PDFium nem kínál konfigurálható, teljes gyorsítótárbájt API-t
Version 3.78.0
Hozzáadva (Added)
- A
TPdfLayoutPagedPlan, aTPdfLayoutDocument.BuildPagedPlanés aTPdf.GeneratePagedLayoutaz elrendezési parancsokat a hívó által kiválasztott, pozicionálható tárolóra streameli, és egyszerre egy oldalt materializál
Módosítva (Changed)
- A nagy méretű generált elrendezések a parancsokat ideiglenes tárolóra írhatják ki, konfigurálható LRU oldal-gyorsítótárat tarthatnak fenn, nem összefüggő fejléc- és láblécszegmenseket állíthatnak helyre, és minden folyamati elem után felszabadítják a tördelt szöveget
Version 3.77.0
Hozzáadva (Added)
- A
TPdfLayoutTable, a sorok, a cellák és a táblabeállítások oldalakon átnyúló táblákat adnak hozzá feloldott rácspályákkal, feliratokkal, ismétlődő fejlécsorokkal, tördelhető törzssorokkal, hivatkozásokkal és konfigurálható szegélyekkel
Módosítva (Changed)
- A generált, címkézett táblák egyetlen összefüggő Table / TR / TH / TD struktúrát őriznek meg az oldalak között, a sorokat átívelő csoportokat atomiaként kezelik, és az adatcellákat automatikusan hozzárendelik a fejléc-azonosítókhoz
Version 3.76.0
Hozzáadva (Added)
- A
TPdfLayoutConstraintsés aSetLastItemConstraintskeep-together, keep-with-next, fizikai page-break-before / after és konfigurálható özvegy- illetve árvasor-vezérlést ad a generált elrendezésekhez
Módosítva (Changed)
- A
BuildPlanminden tördelt szöveges eredményt újrahasznosít az oldaltördelés-előrejelzéshez és a parancskibocsátáshoz, így a keep-with-next nem ismétli meg a szövegmérést
Version 3.75.0
Hozzáadva (Added)
- A
TPdf.InspectPdfUaUnicodeCoveragekorlátos, objektumszintű bizonyítékokat ad a közvetlen Unicode-leképezésekre, azActualTexthelyettesítésekre, a leképezési hibákra, a hiányzó Unicode-értékekre és a feloldatlan forrásobjektumokra vonatkozóan
Módosítva (Changed)
- A
TPdf.ValidatePdfUamostantól egyetlen, objektumhatókörű karakterszkennt hasznosít újra, amely kizárja az Artifact és a generált karaktereket, és megakadályozza, hogy egy szövegobjektumActualText-je elfedje a szomszédos tartalmat
Version 3.74.0
Módosítva (Changed)
- A
ValidatePdfUaPageContentTaggingés aTPdf.ValidatePdfUamostantólpvuaiArtifactInStructureTree-t jelent, amikor egy struktúrafában szereplő MCID Artifact oldalobjektumot igényel, az útalapú oldaltördelési Artifact-okat is beleértve - A PDF/UA oldaltartalom-vizsgálat mostantól csak akkor lép ki korán, ha mind a címkézetlen valódi tartalmat, mind az érvénytelen Artifact-tartalmazást észlelte, így megőrzi az oldalakon átnyúló lefedettséget a már lezárt ellenőrzések ismétlése nélkül
Version 3.73.0
Hozzáadva (Added)
- A
TPdf.InspectPdfUaLanguageCoveragekorlátos oldalobjektum- és struktúrasztring-bizonyítékokat ad a természetes nyelvű szakaszokról, az effektív nyelvet, a deklaráció forrását, az MCID-t, a struktúraindexet és a szövegrészleteket is beleértve - A
ResolvePdfUaEffectiveLanguagea megjelölt tartalom, a legközelebbi struktúraős és a katalógus nyelvi deklarációit oldja fel explicit érvényességi bizonyítékkal
Módosítva (Changed)
- A
TPdf.ValidatePdfUamostantólpvuaiNaturalLanguageUncovered-t jelent, ha a nem Artifact szövegnek vagy az akadálymentesítési sztringeknek nincs érvényes, effektív/Langdeklarációja
Version 3.72.0
Hozzáadva (Added)
- A
TPdf.InspectPdfAMetadatatípusos, mezőnkénti egyenértékűségi bizonyítékokat ad mind a nyolc ISO 19005-1 Info–XMP leképezéshez, az explicit üres értékeket és a dátumértelmezési hibákat is beleértve - A
TPdf.NormalizePdfAMetadatacsak az eltérő, leképezett XMP tulajdonságokat javítja, miközben megőrzi a nem kapcsolódó névtereket és a nem alapértelmezett nyelvi alternatívákat
Módosítva (Changed)
- A
TPdf.ValidatePdfAmostantólpvaiInfoXmpValueMismatch-t jelent, ha a PDFium által dekódolt Info értékek a Unicode- vagy időzóna-tudatos dátumösszehasonlítás után eltérnek a helyesen típusos XMP értékektől
Version 3.71.0
Hozzáadva (Added)
- Az
InspectPdfVT2sStreamnyomtatási feltétel bizonyítékokat ad vissza minden PDF/VT MIME részhez, az OutputIntent azonosságát, a beágyazott vagy MIME profil származását, az ICC hash-eket és fejléc-információkat, valamint a DPart oldal- és rekordszámait is beleértve - Az
FPdfIccProfilekorlátos ICC fejléc- és tagtábla-vizsgálatot biztosít MD5, SHA-256, színtér, verzió, eszközosztály, profilazonosító és többnyelvű profil-leírás támogatással
Módosítva (Changed)
- A PDF/VT-2s érvényesítés a korábbi ICC MIME csatolmányokat mostantól
DestOutputProfileRefURL fájlspecifikációkon keresztül oldja fel, és ellenőrzi aCheckSum,ICCVersion,ProfileCS,ProfileNameértékeket, az eszközosztályt és az engedélyezett process színtereket - Minden PDF/VT rész mostantól egy mérvadó
GTS_PDFXOutputIntentet, a PDF/X alapnak megfelelő beágyazott vagy külső profilcsomagolást és ugyanazt a karakterizált nyomtatási feltételt igényel, míg a csak PDF/X-hez tartozó csatolmányok a PDF/VT összehasonlításon kívül maradnak - Az egyfájlos PDF/VT-2 érvényesítés a
DestOutputProfileRef-et mostantól külső célprofilként ismeri fel ahelyett, hogy hiányzóként jelentené
Version 3.70.0
Módosítva (Changed)
- A PDF/VT érvényesítés a
GTS_Scope,GTS_XID,GTS_EnvésGTS_Encapsulatedértékeket mostantól közvetlenül minden XObjecten ellenőrzi ahelyett, hogy a közeli vagy beágyazott szótárak kielégíthetnék a hint-követelményeket - A
Recordhatókör aRecordLevel-t mostantól az indirektDPartRootszótárból oldja fel, míg aStreamhatókört a PDF/VT-1 fájlok elutasítják - A dekódolt oldal- és Form XObject tartalomfolyamok mostantól a
Doerőforrás-láthatóságát, aSingleUseelőfordulási számait és a címzettrekord-tulajdonlást ellenőrzik az effektív örökölt erőforrások és a DPart hierarchia alapján - Az Encapsulated XObjectek mostantól ellenőrzik a boolean alakot, az ajánlott hatókört, az Image
Intent-et, az izolált transzparenciacsoportokat, a keverési színtereket és a közvetlen vagy beágyazott optional-content függőségeket
Version 3.69.0
Módosítva (Changed)
- A PAdES érvényesítés mostantól elutasítja a duplikált
Contents,ByteRange,SubFilter,FilterésTypebejegyzéseket ahelyett, hogy elfogadná a parser által kiválasztott értéket - Az aláírásfelderítés mostantól stream-tudatos, lineáris szótárszkennt használ, felismeri az escape-elt PDF névtokeneket, és nem irányítható át a valódi
ByteRangeelé helyezett, lezárt beágyazott szótárral - Az aláírás
ByteRangeérvényesítése mostantól megköveteli, hogy a kizárt rés pontosan egyezzen a közvetlen hexadecimálisContentstokennel, miközben továbbra is engedi a későbbi növekményes revíziókat - Az aláírás-szótárak mostantól egyetlen, névértékű
Filter-t igényelnek, és következetesSigvagyDocTimeStamptípus- és alfilter-kombinációkat érvényesítenek
Version 3.68.0
Hozzáadva (Added)
- A
TPdf.BuildPadesEvidenceReportminden aláíráshoz összefüggésbe hozza a PDFium aláírás-tényeket, a CMS szabályzatot, a megbízhatósági és időbélyeg-állapotot, a tanúsítványútvonal-hasheket, a DSS/VRI lefedettséget és a későbbi revíziós döntéseket - A
TPadesEvidenceReportkorlátos, több aláírásra kiterjedő bizonyítékot exportál JSON vagy CSV formátumban, és forrás-, aláírás-, DSS-, revízió- és csonkolási telemetriát jelent
Módosítva (Changed)
- A PAdES megbízhatósági érvényesítés mostantól SHA-256 azonosságokat rögzít az aláíró tanúsítványhoz és a rendezett Windows tanúsítványútvonalhoz, miközben alapértelmezésben megőrzi az offline érvényesítést
- A bizonyíték-előállítás egyetlen megtartott forrásbájt-rögzítést hasznosít újra a megfelelőségi, megbízhatósági, DSS és revíziós elemzésekben ahelyett, hogy minden szakaszhoz új streambe másolná az eredeti PDF-et
Version 3.67.0
Hozzáadva (Added)
- A
TPadesSignatureFieldOptionskonfigurálható aláírásmező-neveket, kötelező seed értékeket, indoklási és jogi tanúsítási listákat, elfogadható aláíró tanúsítványokat és mezőzárolásokat hoz létre - A helyi és távoli aláírás jóváhagyó vagy tanúsító aláírásokat készíthet ISO 32000-1
FieldMDPésDocMDPtranszformációkkal
Módosítva (Changed)
- A tanúsító aláírások megőrzik a meglévő katalógus-jogosultságokat, miközben az új aláírást a
/Perms /DocMDPútján regisztrálják
Version 3.66.0
Hozzáadva (Added)
- A
RenderPageBandedToStreamPNG vagy TIFF kimenetet ír közvetlenül a hívó streamjébe konfigurálható sávamagassággal, PNG tömörítéssel és kimeneti bájtkorlátokkal - A
RenderPageBandedToEncoderaz egymást követő oldalsávokat a hívó által definiált kodekeknek adja át, és sáv-, sor-, memória-, befejezési és kimeneti telemetriát ad vissza
Javítva (Fixed)
- A
RenderPageBandedmostantól megőrzi a teljes oldalas renderelési geometriát, és minden kért sávot kivág ahelyett, hogy a teljes oldalt minden sávba átméretezné
Version 3.65.0
Hozzáadva (Added)
- A
TPdfParallelRenderReportmostantól jelenti a forrásméretet, a rögzített memória csúcsát, a tárolási hátteret és a megosztott háttér típusát
Módosítva (Changed)
- A
RenderPagesParallela rögzített forrást megváltoztathatatlan memórián, csak olvasható fájlleképezésen vagyFPDF_LoadCustomDocumentvéletlen hozzáférésen keresztül osztja meg ahelyett, hogy egy második, teljes dokumentumos bájttömböt foglalna - A kiírt párhuzamos renderelési források a
SaveMemoryLimitalatt maradnak, és már nem igénylik a teljes PDF újratöltését a folyamat címzhető memóriájába
Version 3.64.0
Hozzáadva (Added)
- Az
ImportImposedmostantól olyan túlterheléssel is rendelkezik, amely egyTPdfImpositionExecutionReport-ot ad vissza natív import-, egyedi forrás-, üreshely-, XObject-sablon-, űrobjektum-, tartalomgenerálási és kimeneti oldalszámlálókkal
Módosítva (Changed)
- A nulla geometriájú impozíció minden rendezett forrásoldalt egyetlen
FPDF_ImportPagesByIndexhíváson küld át, mielőtt üres oldalakat szúrna be és natív N-up kompozíciót készítene - Az egyéni geometriájú impozíció minden egyedi forrásoldalhoz egy natív XObject sablont hasznosít újra, gyorsítótárazott oldalmértékeket olvas a forrásoldal módosítása nélkül, és előre lefoglalja a pontos tervtárolót
Version 3.63.0
Hozzáadva (Added)
- A
BeginPageObjectEditTransaction, aCommitPageObjectEditTransactionés aRollbackPageObjectEditTransactiona natív oldalobjektum-módosításokat atomi, oldalhatókörű kötegbe csoportosítja validált pillanatkép-visszagörgetéssel - A
PageObjectEditTransactionStatusjelenti a kötött oldalt, a módosított állapotot, a sikeres mutációk számát és a tartalomgenerálások számát
Módosítva (Changed)
- A véglegesített objektumkötegek mostantól egyszer hívják meg a
FPDFPage_GenerateContent-et ahelyett, hogy minden beszúrási, törlési, transzformációs, tulajdonság-, mark-, annotációobjektum- vagy megjelenési mutációnál egyszer-egyszer megtennék - A mentés, az oldalváltások, az oldaltörlés, a beágyazott szerkesztési tranzakciók, valamint a sikertelen natív beszúrási vagy annotációfrissítési műveletek elutasításra kerülnek, mielőtt a halasztott tartalom elveszhetne
Version 3.62.0
Hozzáadva (Added)
- A
ReadPageObjectsSnapshota hívó tulajdonában lévő oldalobjektum-tényeket rögzít objektum-, útvonal-, kivágási, mark-, szöveg-, sztring- és határidőkorlátokkal - A
PageObjectsSnapshotrevíziófüggő LRU újrahasznosítást biztosít konfigurálható kapacitással, valamint foglaltsági, találati és tévesztési telemetriával
Módosítva (Changed)
- A
PageComplexitymostantól a megváltoztathatatlan oldalobjektum-pillanatképet hasznosítja újra ahelyett, hogy ismételné a natív objektumfelsorolást, valamint a transzparencia-, útvonal- és képlekérdezéseket
Version 3.61.0
Hozzáadva (Added)
- A
TPdfmostantól egységes bélyegkép-LRU-t tár fel a beágyazott és renderelt előnézetekhez, konfigurálható elem- és bájtmaximummal, valamint találati, tévesztési, kiürítési, foglaltsági és revíziós telemetriával - A
RenderPageThumbnailelfogad forgatást, renderelési beállításokat, háttérszínt ésTPdfColorScheme-et, miközben megőrzi a hívó tulajdonában lévő bittérkép-szerződést
Módosítva (Changed)
- Az ismételt bélyegkép-kinyerés és -renderelés a natív PDFium eredményeket hasznosítja újra revízió, oldal, forrás, méret, forgatás, jelzők, háttér és színséma kulcsok alapján, az opcionális beágyazott bélyegképek gyorsítótárazott hiányát is beleértve
- A
TPdfThumbnailViewszinkronban tartja a látható oldalak bittérkép-gyorsítótárát a dokumentum bélyegkép-revízióival, így a szerkesztések nem hagyhatnak hátra elavult előnézeteket
Version 3.60.0
Hozzáadva (Added)
- A
ReadTextPageSnapshotegyetlen menetben rögzíti a Unicode-ot, az UTF-16 leképezéseket, a karaktergeometriát és -stílust, valamint a normalizált szövegobjektum-metaadatokat explicit karakter-, objektum-, betűtípusnév- és határidőkorlátokkal - A
TextPageSnapshotmély, a hívó tulajdonában lévő másolatokat biztosít egy konfigurálható, revíziófüggő LRU-n keresztül, kapacitás-, darabszám-, találati és tévesztési telemetriával
Módosítva (Changed)
- A
GetStructuredTextés a fizikai elrendezésűGetTextInReadingOrdermostantól ugyanazt a szövegpillanatképet hasznosítja újra, és O(n log n) geometriarendezést alkalmaz
Javítva (Fixed)
- A kis szöveg- és struktúrapillanatkép-gyorsítótárak mostantól a legöregebb oldalt ürítik ki, miközben az új adatokat a kért oldalindex alatt tárolják, megakadályozva az oldalak közötti gyorsítótár-aliasingot
Version 3.59.0
Hozzáadva (Added)
- A
LifecycleActionPolicyletiltott, csak explicit vagy kompatibilis automatikus végrehajtást választ a PDF dokumentum- és oldalciklus-műveletekhez - Az
ExecuteDocumentLifecycleActiondokumentum JavaScript, megnyitási, zárási, mentési és nyomtatási műveleteket tár fel, míg azExecutePageLifecycleActionaz oldal megnyitási és zárási műveleteit futtatja aPageNumbermódosítása nélkül
Módosítva (Changed)
- A fej nélküli oldalbetöltések mostantól ugyanazokat az automatikus oldal megnyitási és zárási műveleteket kapják, mint a megjelenítő által vezérelt betöltések, az ideiglenes oldalak pedig a renderelési zár alatt hasznosulnak újra vagy szabadulnak fel
Version 3.58.0
Hozzáadva (Added)
- A
ReadStructureElementsés aVisitStructureElementsiteratív, címkézett struktúra-bejárást biztosít explicit mélység-, elem-, attribútum- és időkorlátokkal, valamint részletes befejezési állapottal - A
StructureElementsForPageegy alapú számozású oldalpillanatképeket tár fel aPageNumbermódosítása nélkül, a háttérben konfigurálható, revíziófüggő LRU-gyorsítótárral, találati, tévesztési és darabszám-telemetriával
Módosítva (Changed)
- Az akadálymentesítési, reflow, érvényesítési és megjelenítő fogyasztók mostantól a hívó tulajdonában lévő struktúrapillanatképeket hasznosítják újra, amíg egy releváns dokumentum- vagy oldalszerkesztés érvényteleníti azokat
Version 3.57.0
Hozzáadva (Added)
- A teljes natív űrlapgazda-visszahívások mostantól élettartam-biztonságos, lusta oldalhandle-eket, interakciónézeti kurzor-útválasztást, értékváltozás-értesítést, kijelölt szöveg téglalapokat, URI eseményeket és GoTo cél eseményeket biztosítanak
- Az
FormHostCallbacksCompletea visszahívások készültségét jelenti, míg aFormSelectionRectsés aClearFormSelectionRectskorlátos, oldaltér-beli kijelölésgeometriát tár fel
Javítva (Fixed)
- Az XFA aktuális oldalra vonatkozó visszahívásai mostantól helyesen fordítanak a PDFium nulla alapú oldalindexei és a komponens egy alapú
PageNumber-je között - Az AcroForm és XFA URI visszahívások mostantól megőrzik a nyers URI bájtokat, és explicit gazdaalkalmazás-jóváhagyást igényelnek minden külső indítás előtt
Version 3.56.0
Hozzáadva (Added)
- Az indexelt
PageMetricspillanatképek egy oldal méreteit, forgatását, címkéjét, transzparenciáját és az öt szabványos oldalkeretet tárják fel az aktív oldal módosítása nélkül
Módosítva (Changed)
- Az ismételt oldalmetaadat-olvasások egy automatikusan érvénytelenített natív pillanatkép-gyorsítótárat hasznosítanak újra, csökkentve az oldalnyitásokat a bélyegkép-, preflight és dokumentumelemzési munkaterhelésekben
Version 3.55.0
Hozzáadva (Added)
- Az útvonal-vizsgálat pontos köbös Bézier kontrollpontokat tár fel, amikor a betöltött PDFium build biztosítja az
FPDFPath_GetBezierControlPointsfunkciót, opcionális képességvizsgálattal a régebbi DLL-ekhez - Az
FormFieldTypeAtPoint, aTPdfView.FormFieldTypeAtés az indexeltFontFlagstulajdonságok natív űrlap- és betűtípus-tényeket tárnak fel nyers handle-ek nélkül - A
TPdf.Signaturesminden natív aláírás tartalmát, ByteRange-ét, alfilterét, indoklását, időpontját és jogosultságait adja vissza egyetlen, a hívó tulajdonában lévő pillanatképben
Módosítva (Changed)
- Az űrlapmező-meglét-ellenőrzések mostantól közvetlen, natív, pontalapú találatvizsgálatot használnak annotációhandle-ek megnyitása és zárása helyett
Javítva (Fixed)
- A PDF/E-1 érvényesítés mostantól engedi a közönséges AcroForm mezőket, a beágyazott fájlokat és a FileAttachment annotációkat, miközben pontos jelentést ad a legfelső szintű AcroForm
/XFAés/NeedAppearances truebeállításokról, az indirekt és objektum-stream értékeket is beleértve
Version 3.54.0
Hozzáadva (Added)
- Az
FPdfProductionmért többkodekes képkiválasztást, szín- és betűtípusfeldolgozási háttereket, SVG-pályákat, stílusos csere terveket, tranzakciós XFA csomagfrissítéseket, vonalkódvektorokat, Portfolio modelleket és biztonságos RichMedia kinyerést ad hozzá - Az
FPdfStandardsExecutionmérési és GeoPDF-konverziót, tranzakciós PDF/A javítást, PDF/UA-2 terveket, külső többszínű profilokat, történelmi DSS és VRI bizonyítékokat, DPart lekérdezéseket, mély PDF/E tényeket és rögzített memóriájú PDF/R sávokat ad hozzá - A
TPdf.ImportImposedkorlátos N-up és füzet terveket állít elő natív N-up vagy oldal-XObject útvonalakon pontos vájzat-, vérzóna- és creep-geometriával, míg aTPdf.CompareWithszemantikai, geometriai és toleranciát tűrő pixelekülönbségeket jelent - A PAdES-aláírás mostantól támogat csatlakoztatható útvonal-validátorokat és HSM szolgáltatókat, aláíráshoz csatolt PDF MAC-et,
cms-algorithm-protectionattribútumot és offline aláírási irányelvdokumentumokat
Módosítva (Changed)
- Az elrendezésmotor korlátos HTML- és Markdown-bemenetet fogad, oszlopokon át folytatja a tartalmat, és rögzített, automatikus valamint törtszámú rácspályákat old fel
- Az XFDF oda-vissza utak mostantól megőrzik a többértékű és rich-text mezőket, felugrókat, műveleteket, célkitűzéseket, megjelenítési átfedéseket, egyéni névtereket és a jelenlét explicit állapotát
Version 3.53.0
Hozzáadva (Added)
- A
ConfigurePdfLibrarymegváltoztathatatlan natív renderelési, betűtípus-, V8-, Brotli-, felhasználói betűtípusútvonal- és homokozó-konfigurációt biztosít az első PDFium betöltés előtt - Natív struktúraattribútumok, jegyzetkapcsolatok, jegyzetfájl-csatolmányok, típusos szótárértékek, fókuszirányelvek, link- és űrlap z-sorrend lekérdezések, valamint alapértelmezett TTF-leképezési diagnosztika érhetők el korlátos magas szintű API-kon keresztül
- A
TPdfView.ReplaceFormTextAndKeepSelectionmegőrzi az aktív kijelölést ismételt szerkesztések között, és a jobb gombos felengedési események mostantól elérnek a natív űrlapmotorhoz
Módosítva (Changed)
- A determinisztikus dokumentumidő mostantól stabil UTC naptárkonverziót is használ a rögzített epochum mellett, így minden gazdaidőzónában ugyanazokat a metaadatokat állítja elő
- A csatolmánysztring-írások ellenőrzik a natív eredményt, és a szótárkulcsokat UTF-8 kódolással írják
Version 3.52.0
Hozzáadva (Added)
- A
TPdf.GetImageObjectRenderedBitmapegy képobjektum renderelt eredményét adja vissza az aktuális mátrix, színtér, maszkok és renderelési állapot alkalmazásával - A
TPdf.TextObjectGlyphWidth, aTPdf.TextObjectFontSizeés aTPdf.SetTextObjectFontSizenatív glifamérést és pontos szövegobjektum betűméret-szerkesztést tesznek elérhetővé - A
TPdf.TransformPageObjectClipPath, aTPdf.DetachFormObjectChild, aTPdf.SharePageObjectMarkés aTPdf.IsAnnotationObjectSubtypeSupportedpontos tartalomobjektum-szerkesztést és képességvizsgálatot adnak hozzá
Version 3.51.0
Javítva (Fixed)
- Nyolc
TPdftag, amelyet a korábbi kiadási megjegyzések bejelentettek, a privát szakaszban volt deklarálva, és nem lehetett meghívni aPDFiumegységen kívülről; mostantól a dokumentációnak megfelelően nyilvánosak:LinkAtPoint,GetTextRenderMode,GetTextObjectRenderedBitmap,IsAnnotationSubtypeSupported,ChooseRenderFlags,AttachmentHasKey,GetAttachmentStringValueésSetAttachmentStringValue
Módosítva (Changed)
- Az angol referenciadokumentáció mostantól a
TPdfés aTPdfViewminden nyilvános tagját lefedi: 88 olyan tag, amelynek nem volt referencialapja, mostantól kapott egyet, az osztályoldalak, a navigációs index és az API-referencia pedig mindet felsorolják - A korábban megosztott oldalra mutató referencialapok mostantól magának a tagnak az oldalára hivatkoznak, így a keresési találat a keresett API leírását nyitja meg
- Az API-referencia dokumentálja a nyilvános aláírásokból elérhető felsorolásokat és rekordokat, beleértve a betöltési és folyamjelentési típusokat, a szöveg-, betűtípus- és OCR-típusokat, az elrendezésépítő típusokat, a PAdES-ellenőrzési típusokat, a köteg- és ellenőrzési típusokat, valamint a párhuzamos renderelési típusokat
Version 3.50.0
Hozzáadva (Added)
- Minden GUI demó mostantól használatra kész tartalommal nyílik meg üres űrlap helyett: a megjelenítő- és labor-demók egy generált mintadokumentumot töltenek be, a jelentés-demók induláskor elkészült jelentést hoznak létre, a feldolgozó-demók pedig előre generált mintabemeneteket készítenek, így a fő művelet egyetlen kattintással lefut
- A
MultiPageViewer,SplitViewésFontPropertiesinduláskor a memóriában generál mintadokumentumokat (egy hatoldalas bemutatót, két egymás melletti összehasonlító dokumentumot és egy többbetűtípusú oldalt kattintásos vizsgálathoz) - A
MergePDF,BatchExport,SplitPDF,ExtractText,PDFtoJpg,PrintPDFésPrintPreferencesfeldolgozó-demók a végrehajtható fájl mellé előre generált mintákat készítenek, és előre kitöltik a bemeneti vezérlőiket, idempotens újragenerálással, amely soha nem ír felül meglévő fájlokat - A
FormFillésExtractImagesautomatikusan betölti a demómappáikban szállított mintafájlokat, azImageToPDFkét mintabitképet generál, aWatermarkStampelőre felépíti a bélyegmintáit, azXfdfLabpedig egy szöveget és kiemelő jegyzeteket tartalmazó generált dokumentummal nyílik meg
Módosítva (Changed)
- A
CreatePDFmostantól párbeszédablak nélkül, induláskor a végrehajtható fájl mellé generálSample.pdffájlt, így a dokumentum már a demó megnyitásának pillanatában létezik - A
TPdf.AboutInfoés a telepítő metaadatai mostantól következetesen a Version 3.50.0 verziót jelentik
Version 3.49.0
Hozzáadva (Added)
- A frissített PDFium binárisok
FORM_GetTextDirectionésFORM_SetTextDirectionfüggvényei mostantól kötve vannak, így a dinamikus kötési réteg mind a 472 PDFium exportot lefedi - A
TPdf.FocusedFormFieldTextDirectionésTPdf.SetFocusedFormFieldTextDirectionaz újTPdfFormTextDirectionfelsoroláson keresztül teszik elérhetővé a fókuszált widget memóriabeli szövegirányát (ftdUnknown,ftdAuto,ftdLTR,ftdRTL),TPdfViewmegfelelőikkel, amelyek irányváltás után újrarajzolják az oldalszcénát
Módosítva (Changed)
- A
FPDF_LIBRARY_CONFIGmostantól a felsőbb szintű 6-os verzió elrendezését tükrözi aPDF_ENABLE_BROTLIopcióval épített binárisok kísérletim_BrotliEnabledmezőjével - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.49.0 verziót jelentik
Version 3.48.0
Hozzáadva (Added)
- A
PDFViewerdemó mostantól a létrehozó API-val induláskor egy hatoldalas bemutatódokumentumot hoz létre a memóriában, így a megjelenítő renderelt tartalommal nyílik meg, és nem szükséges mintafájl a lemezen - A
TPdfThumbnailView-ra épülő bélyegképpanel a könyvjelzőfa mellett kattintással navigálható oldal-előnézeteket biztosít mindhárom demóporton - A megjelenítő keresése mostantól a
HighlightSearchTextsegítségével az aktuális oldal összes találatát kiemeli egyetlen eredménytéglalap helyett, a találatok száma pedig megjelenik az állapotsorban - Az egykattintásos
Nightés2-Upeszköztárgombok egyetlen kattintással be- és kikapcsolják az éjszakai duotone renderelési módot és a kétoldalas terítésű megjelenítési módot
Módosítva (Changed)
- A szövegkijelölés a megjelenítőben mostantól a
TPdfViewbeépített kijelölőmotorját használja dupla kattintásos szókijelöléssel, húzásos kijelöléssel és vágólap-parancsikonokkal, amelyek felváltják a kézzel írt kijelölő kódot - Az oldalak mostantól vetett árnyékkal és finom görgetéssel jelennek meg a modern olvasási élmény érdekében
- A
TPdf.AboutInfoés a telepítő metaadatai mostantól következetesen a Version 3.48.0 verziót jelentik
Version 3.47.0
Hozzáadva (Added)
- Az
FPdfBenchmarkkorlátozott méretű PDF-korpuszokat futtat konfigurálható bemelegítő és mért futtatásokkal, oldal- és pixellimitekkel, kooperatív megszakítással, valamint esetenkénti sikeres, sikertelen vagy kihagyott állapottal - A
TPdfBenchmarkReportrögzíti a bemeneti és mentett bájtméreteket, a betöltési és első oldal késleltetését, a renderelési átbocsátóképességet, a mentés és újramegnyitás időzítését, a mintavételes csúcsmunkakészletet, a szemantikai és pixel SHA-256 hash-eket, az ismételt futtatás stabilitását, az elvárt hash-kapukat és a független újramegnyitási egyenértékűséget - A benchmark-jelentések képletbiztos CSV-t és strukturált JSON-t exportálnak CI-hez, release-kvalifikációhoz és hosszú távú teljesítménykövetéshez
- A
GetSkiaRenderCapabilities, aRenderPageSkiaés aRenderPageSkiaByIndexopcionális natív Skia oldal- és űrlaprenderelést tesz elérhetővé elemzett oldalak gyorsítótár-újrahasznosításával, kemény DLL-exportkövetelmény nélkül - Egy verziózott, képességekre épülő nyomdai kimeneti ABI pontos spotlemez-felsorolást, lemezrenderelést, overprint-észlelést és overprint-előnézetet tesz elérhetővé, amikor a betöltött PDFium-modul biztosítja azokat
Javítva (Fixed)
- A
PDF_USE_SKIAnélküli PDFium-buildek mostantól normálisan betöltődnek ahelyett, hogy a kísérleti Skia exportok hiánya miatt meghiúsulnának
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.47.0 verziót jelentik
Version 3.46.0
Hozzáadva (Added)
- A
ValidatePdfRmostantól ellenőrzi a csak raszteres oldaltartalmat, a sávgeometriát, a színmodelleket, a hatékony felbontást, a tömörítési paramétereket, a kötelező metaadatokat és a titkosított PDF 2.0 profilokat konfigurálható ellenőrzési beállításokon keresztül - A
BuildPdfARepairPlanaz ellenőrzési bizonyítékokat függőségi sorrendbe rendezett javítási lépésekké alakítja biztonsági osztályokkal, aláírás-hatásőrökkel és JSON-kimenettel - A
BuildPdfXProductionPreflightjelentést ad az oldalboxokról, beágyazott betűtípusokról, output intentekről, colourantokról, átlátszóságról, overprintről, szeparációkról, képfelbontásról és gyártási készenlétről a képadatok dekódolása nélkül - A PDF/UA-2 szerkezetellenőrzés mostantól a társított fájlok tulajdonjogát, az olvasási sorrendet, a leírásokat, a kapcsolatokat és a felderíthetőséget is ellenőrzi
Módosítva (Changed)
- A
TAssociateFile.Description, aTPdf.ImageInfoés aTPdf.PageComplexitya társított fájlakra és gyártási előellenőrzésre épülő munkafolyamatokhoz szükséges metaadatokat teszik elérhetővé - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.46.0 verziót jelentik
Version 3.45.0
Hozzáadva (Added)
- A
TPdfXmpPacketnévtér-tudatos XMP-et elemez, szerkeszt, klónoz és szerializál ismeretlen névterekkel, tipizált RDF-konténerekkel, URI- és erőforrásértékekkel, kvalifikátorokkal, nyelvi alternatívákkal, csomagburkolatokkal és megőrzött kitöltéssel - A
TPdf.ReadXmpPacketés aSaveAsWithXmpPacketmagas szintű metaadat-olvasást és atomi kimenetet biztosít, az aláírt dokumentumok módosítása kifejezett engedélyhez kötődik
Biztonság (Security)
- A korlátozott XML-olvasó elutasítja a DTD-ket és a külső entitásokat, és korlátozza a csomag bájtjait, a beágyazottságot, a csomópontokat, az attribútumokat és a numerikus karakterhivatkozásokat
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.45.0 verziót jelentik
Version 3.44.0
Hozzáadva (Added)
- A
TPdfValidationRuleRegistryprofilklauzulákat regisztrál súlyossággal, függőségekkel, javítási útmutatással, bizonyítékokkal és beépített vagy egyéni predikátumokkal - A
TPdfValidationBudgetés aTPdfValidationExecutionContextkorlátozza a szabályokat, a hibákat, az objektumokat, a rekurziót, a UTF-8 bizonyítékokat, a lefoglalt memóriát, az eltelt időt, a gyors meghiúsulást és a kooperatív megszakítást - A
ValidatePdfFilesParallelelszigetelt munkadokumentumokon keresztül ellenőrzi a fájlokat, megőrzi a bemeneti sorrendet, és összesíti a problémák eloszlását, az időzítéseket, a hibákat, a megszakításokat és a betöltési hibákat
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.44.0 verziót jelentik
Version 3.43.0
Hozzáadva (Added)
- A
TPdfStructureElementmostantól névtér-, névtér-szerepfeltérképezési, hivatkozási, társított fájl-, jegyzet-, widget-, címke- és megjelenéstényeket hordoz a PDF/UA-2 szemantikai ellenőrzéshez - A
ValidatePdfUa2StructureElementsés a célzott validátorai ellenőrzik az ISO/TS 32005 névtereket és tartalmazásokat, a korlátozott táblázatrácsokat, a jegyzeteket, az űrlapokat, a Formula/MathML társításokat, a társított fájlokat, a dokumentumgyökereket, az FENote elemeket, a listákat, a TOC-hivatkozásokat, a címeket és a feliratokat apdfium.dllbetöltése nélkül - A
ClassifyPdfUaNamespaceazonosítja a PDF 1.7, PDF 2.0, MathML, ARIA, DPUB, egyéni és hiányzó szerkezeti névtereket - A
PdfUa2StructureHasIssueC++Builder-biztos, egyetlen problémára vonatkozó lekérdezést biztosít érték szerint visszaadott Pascal halmaz nélkül
Módosítva (Changed)
- A
ValidatePdfUaStructureElementsautomatikusan alkalmazza az új szemantikai szabálykészletet apuc2profilhoz, miközben megőrzi a PDF/UA-1 szabályútvonalat - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.43.0 verziót jelentik
Version 3.42.0
Hozzáadva (Added)
- A
TPdfUaSaveOptions.PdfUa2PDF/UA-2 kimenetet hoz létrepdfuaid:part2,pdfuaid:rev2024 és hatályos PDF 2.0 katalógusverzióval - A
ValidatePdfUafelismeri apuc2profilt, és jelenti a hiányzó revízió-metaadatokat, a nem PDF 2.0 fájlokat, a névtelen optional-content konfigurációkat, az elavult jegyzeteket és az általános H címsorokat
Módosítva (Changed)
- A PDF/UA-ellenőrzés mostantól profilspecifikus tab-sorrend-, XFA- és címsorszabályokat választ a PDF/UA-1 és a PDF/UA-2 profilhoz
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.42.0 verziót jelentik
Version 3.41.0
Hozzáadva (Added)
- A
SetPageObjectMarkParamegészszám-, valós-, karakterlánc- vagy blob paramétert ad hozzá vagy cserél egy meglévő megjelölt tartalombejegyzésen a jelölő lecserélése nélkül - A
RemovePageObjectMarkParameltávolít egy kiválasztott tulajdonságot, miközben megőrzi a jelölő nevét és minden más tulajdonságot
Módosítva (Changed)
- A nem egész megjelölt tartalmi számok mostantól
pmpFloatformájában járják körbe, ahelyett hogy egész számú pillanatképekbe csonkolódnának - Az
AddPageObjectMarksorán meghiúsult paraméter-ellenőrzés eltávolítja a részlegesen létrehozott natív jelölőt - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.41.0 verziót jelentik
Version 3.40.0
Hozzáadva (Added)
- A
ConfigureSystemFontProvidera PDFium indítása előtt telepít egy alkalmazásszintű betűtípus-leképezőt, és érvényesített TrueType- vagy OpenType-bájtokat szolgáltat a hiányzó vagy helyettesített dokumentumbetűtípusokhoz - A
TPdfSystemFontPolicyvezérli a betűkép-helyettesítést, a natív tartalékot, a betűtípusonkénti bájtlimiteket és a korlátozott kérés-gyorsítótárazást - A
GetSystemFontProviderStatisticsjelentést ad a leképezési, gyorsítótár-, tartalék-, elutasítási, adattábla- és élő fogantyútevékenységről
Módosítva (Changed)
- A szolgáltató visszahívásai feltárják a PDFium által kért betűképet, vastagságot, stílust, karakterkészletet és pitch-et, miközben a visszahívási hibák a natív határon belül maradnak
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.40.0 verziót jelentik
Version 3.39.0
Hozzáadva (Added)
- Az
AddCidType2Texta hívó által megadott TrueType-adatokat ágyaz be explicit glyph-enkénti CID-GID geometriával és CID-Unicode feltérképezésekkel - A
TPdfCidFontOptionsteljes beágyazást, előnyben részesített részhalmaz-képzést tartalékkal vagy kötelező részhalmaz-képzést választ, és korlátozott betűtípus-, glyph- és Unicode-költségvetéseket állít be - A
TPdfCidFontReportjelentést ad a részhalmaz-döntésekről, bájtméretekről, egyedi glyphekről, beágyazási állapotról, elvárt szövegről, kinyert szövegről és a kinyerés sértetlenségéről
Módosítva (Changed)
- A TrueType részhalmaz-képzés megőrzi a kért glyph-azonosítókat, elutasítja a nem biztonságos kimenetet, és visszaállít minden beszúrt oldalobjektumot, ha a feltérképezés vagy a kinyerés ellenőrzése meghiúsul
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.39.0 verziót jelentik
Version 3.38.0
Hozzáadva (Added)
- A
BuildReflowDocumentkorlátozott, újrahasznosítható szemantikai csomópontfát hoz létre Tagged PDF szerkezetből vagy fizikai elrendezésre következtetésből egy kiválasztott oldaltartományon - A
TPdfReflowDocument.ToHtmlescape-elt, reszponzív címsorokat, bekezdéseket, listákat, ábrákat, feliratokat, oldalszakaszokat és táblázatokat bocsát ki fejléc- és span-szemantikával - A
TPdfReflowOptionsvezérli a táblázatészlelést, az oldalszakaszokat, a geometriát, a CSS-t, a sortöréseket, az oldaltartományt, a megszakítást és az erőforrás-költségvetéseket
Módosítva (Changed)
- Az átrendezés során a táblázattartalom felváltja az átfedő bekezdésblokkokat, és az aktív oldal állapota sikeres befejezés, meghiúsulás vagy megszakítás után visszaáll
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.38.0 verziót jelentik
Version 3.37.0
Hozzáadva (Added)
- Az
ApplyOcrSearchLayera PDFium-on keresztül rendereli a kiválasztott oldalakat, és korlátozott, fentről lefelé irányuló BGRA pixeleket küld a hívó által biztosítottIPdfOcrProviderszolgáltatónak - A
TPdfOcrWordUnicode-szöveget, megbízhatóságot és pixelsík-négyszögeket hordoz, amelyeket a natív oldalgeometrián keresztül láthatatlan kereshető szöveggé képez le - A
TPdfOcrReportoldalankénti befejezést, meglévő szöveg miatti kihagyásokat, hibákat, megszakítást, renderelt pixeleket, valamint elfogadott vagy elutasított szavakat rögzít
Módosítva (Changed)
- Az OCR-beszúrás megőrzi az eredeti szkennelt képfolyamokat, kiszűri a hibás formátumú vagy alacsony megbízhatóságú eredményeket, oldalanként egyszer véglegesít, és visszaállítja az aktív oldalt
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.37.0 verziót jelentik
Version 3.36.0
Hozzáadva (Added)
- Az
ExtractTablesvonalvezérelt és szóköz-igazítású táblázatokat észlel a natív szógeometriából és a transzformált útvonalvonalakból - A
TPdfTablejelentést ad a sorokról, oszlopokról, egyesített tartományokról, oldalhatárokról, fejléccellákról, észlelési módról és megbízhatóságról, valamint közvetlen CSV- vagy JSON-kimenetet ad - Az
ExtractDocumentTablesmegosztott költségvetések mellett minden oldalt átvizsgál, és megjelöli az oldalhatárokon át folytatódó egyező táblázatokat
Módosítva (Changed)
- A táblázatkinyerés konfigurálható szó-, vonal-, cella- és táblázatlimiteket kényszerít ki, és visszaállítja az aktív oldalt a dokumentumszintű átvizsgálások után
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.36.0 verziót jelentik
Version 3.35.0
Hozzáadva (Added)
- A
GenerateTaggedLayoutúj szemantikai elrendezésű dokumentumot hoz létre natív megjelölt tartalommal, Document szerkezeti fával, ParentTree- és IDTree-feltérképezésekkel, valamint dokumentumnyelvi metaadatokkal - A
TPdfLayoutSemanticscímsorokat, szakaszokat, listákat, ábrákat, feliratokat, táblázatokat, fejléc-társításokat, spanokat, alternatív szöveget, tényleges szöveget, nyelveket és elemazonosítókat modellez - A
TPdfLayoutDocument.AddLinkURI Link jegyzeteket bocsát ki, és minden jegyzetet a hozzá tartozó Link szerkezeti elemmel társít OBJR- és StructParent-feltérképezéseken keresztül
Módosítva (Changed)
- Az elrendezési szöveg alapértelmezetten bekezdésszemantikát kap, míg a fejlécek, élőfejek, elválasztóvonalak, képek és újrahasznosítható űrlapok alapértelmezetten artifactok, hacsak nem jelölik meg kifejezetten
- A szemantikai terv ellenőrzése elutasítja a duplikált azonosítókat, a hiányzó szülőket, a ciklikus hivatkozásokat, az érvénytelen lista- vagy táblázattartalmazást, a helyettesítő szöveg nélküli ábrákat és a megoldatlan táblázatfejléc-azonosítókat a dokumentumkibocsátás előtt
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.35.0 verziót jelentik
Version 3.34.0
Hozzáadva (Added)
- A
TPdf.AddShapedTextRTL-, bidi-, kontextusfüggő és ligatúra glyph-sorozatokat ír natív rendszerformázással és a PDFium CID Type 2 betűtípus-API-kon keresztül - A
ShapePdfTextés aTPdfUniscribeTextShaperelhelyezett glyph-azonosítókat, előrehaladásokat, eltolásokat, forrásfürtöket, vizuális futáspozíciókat és bidi-szinteket tárnak fel a dokumentum módosítása nélkül
Módosítva (Changed)
- A generált ToUnicode-feltérképezések minden formázott glypfet lefednek, miközben az
ActualTextaz eredeti logikai Unicode-karakterláncot tárolja a szabvány szerinti kinyerést és akadálymentesítést végző fogyasztók számára - A bájtsorrend-jelölős UTF-16-os megjelölt tartalmi karakterláncok mostantól helyesen dekódolódnak a
PageObjectMarks-on keresztül - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.34.0 verziót jelentik
Version 3.33.0
Hozzáadva (Added)
- A
TPdfLayoutCachedNodeelső használatkor építi fel az alosztályozott elrendezési tartalmat, és ismételt skálázott elhelyezéseket támogat azAddCachedNode-on keresztül - A
TPdfLayoutPlanjelentést ad a méretgyorsítótár-találatokról, -tévesztésekről, a gyorsítótárazott csomópontok elhelyezéséről és az újrahasznosított natív XObjectekről
Módosítva (Changed)
- A
BuildPlanaz egyező terveket a teljes oldalkorlátok, a tartalom, a betűtípus, a stílus, a forrás és a mérő identitása szerint hasznosítja újra, a szövegmérés ismétlése nélkül - A
GenerateLayoutminden egyedi gyorsítótárazott csomópontot egy célhoz kötött XObjectté alakít, és minden elhelyezéshez könnyűsúlyos Form objektumokat hoz létre - A
TPdf.AboutInfo, a csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.33.0 verziót jelentik
Version 3.32.0
Hozzáadva (Added)
- A
TPdfLayoutDocumentsortörött szöveget, távtartókat, elválasztóvonalakat, képeket, újrahasznosítható oldal-XObjecteket, explicit oldaltöréseket, fejléceket és élőfejeket épít egy mért oldaltervbe - A
GenerateLayouta teljes elrendezést oldaltördeli, mielőtt atomisan hozzáfűzné a natív oldalakat és oldalobjektumokat, stabil{page}és{pages}hivatkozásokkal
Módosítva (Changed)
- A
TPdf.AboutInfo, a csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.32.0 verziót jelentik
Version 3.31.0
Hozzáadva (Added)
- A
TPdfPagePlanépítők törölt, mozgatott, beszúrt, felosztott és egyesített oldalműveleteket írnak le azok végrehajtása nélkül - A
ValidatePagePlana pontos régi-új oldalhozzárendelést adja vissza, és leltárt készít az érintett könyvjelzőkről, nevesített célkitűzésekről, oldalcímkékről, űrlapmezőkről, megjelölt oldalakról, importált funkciókról és aláírásokról
Biztonság (Security)
- Azok a tervek, amelyek lógó navigációs célokat hagynának hátra, vagy explicit engedély nélkül módosítanák az aláírt tartalmat, elutasításra kerülnek, mielőtt bármilyen natív oldalművelet lefutna
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.31.0 verziót jelentik
Version 3.30.0
Hozzáadva (Added)
- A
SaveRecoverySnapshotellenőrzőösszegű, méretkorlátos helyreállítási csomagot ír, amely a forrás-ujjlenyomatot és az ellenőrzött dokumentumszerkesztési naplót tartalmazza - A
RestoreRecoverySnapshotcsak akkor játssza le újra a helyreállítási csomagot, ha az ellenőrzőösszege, a naplólánc, a forrás-ujjlenyomat és a helyreállított ujjlenyomat mind egyezik - Az
EnableRecoveryAutosaveminden módosított véglegesítés, visszavonás vagy újra végrehajtás után atomikusan frissíti a kifejezett helyreállítási fájlt a forrás PDF újraírása nélkül
Módosítva (Changed)
- Az
InspectRecoverySnapshotjelentést ad a helyreállítási forrásról, ujjlenyomatokról, bejegyzésszámra, pozícióról és a korlátozott tárolóról a csomag alkalmazása nélkül - Az
ImportEditJournalés a helyreállítási visszaállítás mostantól kifejezettAllowSignedDocumentengedélyt követel meg, mielőtt szerkesztéseket alkalmazna egy aláírt PDF-re - A helyreállítási csomag tárolása a konfigurált korlátozott véletlen hozzáférésű tárolót és azonos könyvtárú átíró helyettesítést használja a nagy naplókhoz és az összeomlásbiztos automatikus mentési frissítésekhez
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.30.0 verziót jelentik
Version 3.29.0
Hozzáadva (Added)
- A
BeginEditTransaction, aCommitEditTransactionés aRollbackEditTransactiontetszőleges natív dokumentumszerkesztéseket atomi tranzakciókba csoportosít - Az
UndoEdités aRedoEditSHA-256-tal ellenőrzött inverz és előre irányuló deltákat alkalmaznak az oldal-, objektum-, jegyzet-, melléklet- és metaadat-változásokon - Az
ExportEditJournalés azImportEditJournalkorlátozott hordozható deltákat tartósít forrás-ujjlenyomat- és kivonatlánc-ellenőrzéssel későbbi visszajátszáshoz
Módosítva (Changed)
- A tranzakciós pillanatképek reprodukálható natív kimenetet használnak, így a változatlan véglegesítések üresek maradnak, még ha a szokásos PDFium-mentések nem determinisztikus azonosítókat vagy időbélyegeket is tartalmaznak
- A meghiúsult véglegesítések és az érvénytelen naplóvisszajátszás atomikusan visszaállítják a korábbi betölthető dokumentumot, miközben a bejegyzésszám, a tárolt bájtok és a pillanatképméret a hívó által konfigurált limitek alatt maradnak
- Az aláírt PDF-ek kifejezett
AllowSignedDocumentengedélyt igényelnek, mielőtt egy dokumentumszerkesztési tranzakció elkezdődne - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.29.0 verziót jelentik
Version 3.28.0
Hozzáadva (Added)
- A
TPdf.InspectOptionalContentfelsorolja az OCG-rétegeket, az alapértelmezett és alternatív konfigurációkat, a View/Print/Export használati állapotokat, a nagyítási és nyelvi metaadatokat, a zárolt rétegeket, a sorrendtömböket, a rádiócsoportokat, az OCMD-házirendeket, a láthatósági kifejezéseket és a hatályos renderelési állapotot - A
TPdf.SaveAsOptionalContentConfiguredszigorúan ellenőrzött másolatot ír a hívó által kiválasztott rétegállapotokkal egy választott használatra és konfigurációra
Módosítva (Changed)
- A rétegállapot-kimenet mostantól mind a konfigurációs
/ON, mind az/OFFtömböket, mind az OCG Usage állapotszótárakat frissíti, hogy a PDFium a kért láthatóságot a natív renderelési kontextusán keresztül alkalmazza - A konfigurációs írások elutasítják az ismeretlen csoportokat, a zárolt rétegek módosítását, a rádiócsoport-ütközéseket, a titkosított előkészített fájlokat és az explicit engedély nélküli aláírt fájlokat, valamint alapértelmezetten eltávolítják az automatikus állapotszabályokat, hogy a kiválasztott eredmény determinisztikus maradjon
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.28.0 verziót jelentik
Version 3.27.0
Hozzáadva (Added)
- A
TPdf.RenderPageByIndexbármely egyes alapú oldalt pontos pixelméretben renderel az aktív szerkesztési oldal módosítása vagy oldalváltási események kiváltása nélkül - A
PageSceneCacheCapacity, aPageSceneCacheCountés aClearPageSceneCachekorlátozott jelenetgyorsítótár-vezérlést és diagnosztikát tesz elérhetővé
Módosítva (Changed)
- Az indexelt oldalrenderelések, a renderelt bélyegképek és a beágyazott bélyegképek kinyerése mostantól alapértelmezetten nyolc bejegyzésű LRU-gyorsítótáron keresztül hasznosítja újra az elemzett PDFium-oldalállapotot
- A jelenetbejegyzések érvénytelenné válnak oldalaktiváláskor, szerkesztéskor, oldalfa-változásoknál, űrlapállapot-visszahívásoknál, kifejezett törléskor és dokumentumlebontáskor, a folyamatban lévő renderelések pedig biztonságosan megőrződnek a felszabadításig
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.27.0 verziót jelentik
Version 3.26.0
Hozzáadva (Added)
- A
TPadesSignatureAlgorithmInfojelentést ad minden CMS-aláíró kivonatáról, aláírásáról, nyilvános kulcsáról és nevesített görbe OID-járól, valamint egymástól függetlenül kiértékelt algoritmus-házirendállapotáról - Az
InspectPadesSignatureAlgorithmés azEvaluatePadesSignatureAlgorithmfelismeri a P-256, P-384, P-521, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1, Ed25519 és Ed448 profilokat
Biztonság (Security)
- A PAdES-ellenőrzés mostantól elutasítja az elliptikus görbe és a kivonat eltérését, a CMS-kivonattal ellentétes ECDSA-aláírás OID-kat, a névtelen EC-paramétereket, az Ed25519-paramétereket és az 512 bitesnél eltérő Ed448 SHAKE256 kimenethosszakat
- A natív CMS-ellenőrzés továbbra is a kriptográfiai érvényesség forrása, miközben a nem elérhető algoritmusok és a fel nem ismert görbék
pcsUnsupportedstátusszal szerepelnek a jelentésben, ahelyett hogy érvénytelen aláírásként kezelnék őket - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.26.0 verziót jelentik
Version 3.25.0
Hozzáadva (Added)
- A
TPdf.ExportObjectGraphaz aktív klasszikus, xref-stream és object-stream objektumokat korlátozott, tipizált JSONként exportálja explicit szótárakkal, tömbökkel, karakterláncokkal, nevekkel, skalárértékekkel, indirekt hivatkozásokkal, stream-bájtszámokkal és opcionális SHA-256 stream-kivonatokkal - A
TPdf.SaveAsObjectGraphPatchedséma-ellenőrzött felső szintű szótárértékeket állít be vagy távolít el tipizált null, Boolean, egészszám, valós, név, szöveges karakterlánc és indirekt hivatkozás javítási értékekkel
Biztonság (Security)
- Az objektumgráf-export objektum-, rekurziós, karakterlánc- és kimenetibájt-költségvetéseket kényszerít ki, miközben a javítás minden műveletet ellenőriz a kézbesítés előtt, és elutasítja a lógó hivatkozásokat, a duplikált műveleteket, a titkosított bemeneteket, a védett stream-szűrő- vagy hosszmódosításokat, valamint az explicit engedély nélküli aláírt dokumentumokat
- Az objektumgráf-javítások inkrementális revízióként kerülnek előkészítésre, majd újra materializálják őket az xref-ellenőrzéshez, a PDFium-on keresztül szigorúan betöltik, és csak az összes ellenőrzés sikere után másolják vagy nevezik át atomikusan
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.25.0 verziót jelentik
Version 3.24.0
Hozzáadva (Added)
- A
TPdf.ValidatePadesTrustminden felderíthető leválasztott aláírást ellenőriz a pontos eredetiByteRangealapján, kiértékeli a signing-certificate-v2 kötést és a jelenlegi Windows-rendszermegbízhatóságot, valamint független aláírás-, lánc-, visszavonási és időbélyeg-állapotokat jelent - A
TPdf.ValidatePadesTrustAsyncaz eredeti betöltött forrás pillanatképét készíti el a küldés előtt, szakaszos előrehaladást jelent az elemzési, kriptográfiai, láncépítési, AIA-, OCSP-, CRL- és RFC 3161 időbélyegmunkákhoz, és támogatja a kooperatív megszakítást - A
TPadesTrustValidationOptionsoffline vagy online megbízhatóságot, opcionális visszavonás- és időbélyeg-ellenőrzést, korlátozott URL-lekérési időtúllépést, megszakítási tokent és előrehaladás-visszahívást választ
Biztonság (Security)
- Az aláírás időbélyeg- és Document Time-stamp tokenek mostantól a SHA-256 üzenetlenyomatot, a csatolt CMS-aláírást, a TSA-láncot és az opcionális visszavonási állapotot a szokásos dokumentum-aláírástól függetlenül érvényesítik
- A megbízhatóság-ellenőrzés soha nem hash-eli a PDFium által újramentett másolatot, alapértelmezetten csak offline gyorsítótáras tanúsítvány-letöltést használ, és nem támogatott vagy meghatározatlan állapotokat jelent, ahelyett hogy a nem elérhető natív megbízhatósági vagy visszavonási bizonyítékot érvényesként kezelné
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.24.0 verziót jelentik
Version 3.23.0
Hozzáadva (Added)
- A
TPdf.RenewPadesArchiveTimestampés aRenewPadesArchiveTimestampToStreamúj RFC 3161 Document Time-stamp-et fűz egy meglévő PAdES-aláírólánchoz a történeti bájtok módosítása nélkül - A
TPadesArchiveTimestampOptionsvezérli a TSA-hozzáférést, a nonce-ot, a fenntartott tokenkapacitást és az opcionális teljes DSS-frissítést, miközben aTPadesArchiveTimestampReportrögzíti a forrás- és eredményszinteket, a lánc- és bájthosszakat, valamint a visszaadott időbélyeg-identitást
Javítva (Fixed)
- Az új és megújított PAdES B-LTA kimenet ESIC ExtensionLevel 2-t deklarál, miközben a B-LT-ellenőrzés többé nem követeli meg a 2. szintet, hacsak nincs jelen Document Time-stamp
Biztonság (Security)
- A megújítás a pontos eredeti betöltött bájtokat hash-eli a kért DSS-frissítéssel együtt, elutasítja a titkosított vagy hiányos forrásokat, ellenőrzi a felderíthető B-LTA eredményt a kimenet írása előtt, és a fájlkimenetet a csere előtt előkészíti
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.23.0 verziót jelentik
Version 3.22.0
Hozzáadva (Added)
- A
TPdf.AnalyzeSignatureRevisionsrekonstruálja az eredeti inkrementális revízióláncot, és aláírásonként osztályozott objektumváltozásokat ad vissza a DocMDP és FieldMDP engedélyek alapján - A
TPadesRevisionAnalysisReportmegkülönbözteti az engedélyezett űrlap-, jegyzet-, aláírás- és ellenőrzési anyag frissítéseket a nem engedélyezett oldal- vagy dokumentummódosításoktól, a megoldatlan esetektől és a gyanús árnyékdefinícióktól
Biztonság (Security)
- A revízióelemzés észleli a hivatkozás nélküli objektumdefiníciókat, az aláírásobjektum-újradefiníciókat, az aktív tartalmat, a hibás formátumú revízióláncokat és a megoldatlan tömörített objektumokat, miközben korlátozott revízió-, objektum- és változási költségvetéseket kényszerít ki
- Az elemzés mindig az eredeti betöltött fájlt, memóriapuffert, egyéni streamet vagy befejezett progresszív forrást használja, nem a PDFium által újraírt bájtokat
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.22.0 verziót jelentik
Version 3.21.0
Hozzáadva (Added)
- A
TPdf.PreparePadesRemoteSignaturerögzített szélességű leválasztott aláírás-placeholdert hoz létre, és egy perzisztens kérést ad vissza, amely a SHA-256 dokumentumkivonatot, a pontosByteRange-et, a foglalási koordinátákat és az előkészített PDF ujjlenyomatát tartalmazza - A
TPdf.CompletePadesRemoteSignaturebefejezi a HSM-, felhő- vagy megszakított aláírási munkameneteket a perzisztens kérés és a visszaadott CMS ellenőrzése után - A
TPdf.SavePadesRemoteSigningRequestés aTPdf.LoadPadesRemoteSigningRequeststabil, verziózott bináris munkamenetformátumot biztosítanak folyamat- és géphatárokhoz
Biztonság (Security)
- A befejezés elutasítja a módosított előkészített PDF-eket, a megváltoztatott
ByteRange-koordinátákat, az újrahasznosított nem üres placeholdereket, a túlméretezett CMS-értékeket, a nem támogatott SignedData-alakokat, a hiányzó signing-certificate-v2 attribútumokat és az előkészített dokumentummal nem egyező CMS-üzenetkivonatokat - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.21.0 verziót jelentik
Version 3.20.0
Hozzáadva (Added)
- A
TPadesDssOptions.Vrisaláírásonként egy indirekt/Type /VRIszótárat ír, a teljes dekódolt/Contentsérték nagybetűs SHA-1-jével kulcsolva, a kitöltést is beleértve - A
TPadesDssVriellenőrzött indexeken keresztül választ tanúsítvány-, OCSP- és CRL-anyagot, miközben a PAdES B-LT és B-LTA aláírás mostantól automatikusan létrehozza az új aláírás VRI-jét
Módosítva (Changed)
- A DSS-tanúsítványok, OCSP-válaszok és CRL-ek tartalom-hash szerint deduplikálódnak stabil első előfordulási sorrenddel, pontos bájtos ütközésellenőrzéssel és VRI-hivatkozás-újrafeltérképezéssel, mielőtt bármilyen célbájt íródna
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.20.0 verziót jelentik
Version 3.19.0
Hozzáadva (Added)
- A
TPdf.GetStructuredTextaz aktuális oldalt újrahasznosítható blokk-, sor- és stílusozott span-rekordokká alakítja, megőrizve a forrás karakterindexeket, Unicode skalárokat, geometriát, betűtípusneveket, méreteket, vastagságokat és szövegszögeket - A
TPdfStructuredTextOptionstartalomstream- vagy fizikai elrendezési sorrendet, opcionális betűtípus- és szemantikai gazdagítást, valamint fail-closed maximális karakterköltségvetést választ - Tagged PDF és heurisztikus olvasható tartalomtöredékek gazdagítják a blokkokat szerkezettípussal, címsorszinttel, nyelvvel, forrással és szerkezeti elem-identitással, miközben a nem párosított Figure alternatív szövege is képviselteti magát
Módosítva (Changed)
- A fizikai elrendezésű kinyerés mostantól O(n log n) karakterrendezést, geometriailag növekvő sor- és spanpuffereket, sor- és oszlopklaszterezést, pufferelt Unicode-építést és szomszédos nem null szövegobjektum-betűtípus-gyorsítótárazást használ a kiszámítható nagyoldali teljesítményhez
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.19.0 verziót jelentik
Version 3.18.0
Biztonság (Security)
- A
TPdf.SaveAsRedactedminden/Redacttéglalapot egy elszigetelt dokumentumpillanatképre alkalmaz, eltávolít minden metsző felső szintű oldalobjektumot, és egy átlátszatlan helyettesítő téglalapot fest a betöltött dokumentum módosítása nélkül - A cenzúrázott kimenet eltávolítja a redakciós jegyzeteket, opcionálisan az egyéb metsző jegyzeteket, törli a natív beágyazott mellékleteket, és lecsupaszítja a katalógus
/AFbejegyzését, az aktív tartalmat, az űrlapokat, a metaadatokat és az elérhetetlen korábbi revíziós objektumokat - A
TPdfRedactionOptionsvezérli a helyettesítő színt, az átfedő jegyzetek eltávolítását és a fail-closed oldalobjektum-átvizsgálási költségvetést, miközben aTPdfRedactionReportminden eltávolítást és kimeneti metrikát rögzít - A
TPdfSanitiseOptions.StripAssociatedFilesmostantól alapértelmezetten eltávolítja a katalógusszintű társított fájlhivatkozásokat
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.18.0 verziót jelentik
Version 3.17.0
Hozzáadva (Added)
- A
TPdf.RenderPagesParallelpárhuzamosan rendereli az egyes alapú oldal kéréseket, miközben minden munka egy önállóan betöltött PDFium-modult, dokumentumot és oldalállapotot birtokol, amelyek egy rögzített dokumentumpillanatképből származnak - A
TPdfParallelRenderOptionsvezérli a DPI-t, a munkaszámot, a forgatást, a natív renderelési jelzőket, a háttérszínt, az oldalankénti pixellimiteket és az összesített megtartott kimenetlimiteket - A
TPdfParallelRenderReportmegőrzi a kéréssorrendet, és a hívó tulajdonában álló, fentről lefelé irányuló BGRA vagy RGBA puffereket ad vissza oldalankénti sikerrel, megszakítással, meghiúsulással, méretekkel, időzítéssel és diagnosztikai részletekkel - A progresszív munkás-renderelés a natív darabok között lekérdezi az
IPdfCancellationTokenmegszakítási tokent, miközben az érvénytelen kérések és a költségvetési hibák elkülönítve maradnak a megfelelő eredményeikben - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.17.0 verziót jelentik
Version 3.16.0
Hozzáadva (Added)
- A
TPdfEncryptionRevision.erR7ISO/TS 32003 AES-256-GCM kimenetet ad hozzá/V 6,/R 7,/CFM /AESV4és a szükséges PDF 2.0 fejlesztői bővítéssel - Minden titkosított karakterlánc és stream egyedi 96 bites IV-t, változatlan hosszúságú titkosított szöveget és 128 bites hitelesítési címkét kap, miközben az
EncryptMetadata = Falsemegőrzi a metaadat-stream bájtjait - A
DecryptAesGcmDocumentBytesellenőrzi a felhasználói vagy tulajdonosi jelszót, a titkosított engedélyeket, az opcionális önálló PDF MAC adatokat és minden GCM-címkét, mielőtt PDFium-kompatibilis nyílt szöveges bájtokat adna vissza - Az AESV4-kimenet kombinálható a
TPdfEncryptOptions.EnableIntegrityProtectionbeállítással, így az objektumonkénti GCM-hitelesítés és a teljes dokumentumra kiterjedő ISO/TS 32004 PDF MAC védelem együtt létezhet - A titkosítás mostantól érvényes klasszikus kereszthivatkozás-bejegyzéseket használ, ahelyett hogy a stream-adaton belüli objektum alakú szöveget indirekt objektumként értelmezné
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.16.0 verziót jelentik
Version 3.15.0
Hozzáadva (Added)
- A
TPdfEncryptOptions.EnableIntegrityProtectionISO/TS 32004 önálló PDF MAC hitelesítési kódokat ír az AES-256 Standard Security Handler 5-ös és 6-os revíziójú dokumentumokhoz - A
TPdf.ValidatePdfMacellenőrzi a pontos eredeti forrásbájtokat, a szigorú EOF-t lefedő/ByteRange-et, a CMSAuthenticatedData-t, a jelszóból származtatott fájlkulcsot, a hitelesített attribútumokat, a becsomagolt MAC-kulcsot és a HMAC-értéket - Az
FPdfHmacHMAC-SHA256-t és HKDF-SHA256-t ad hozzá, míg azFPdfAesRFC 3394 AES-256 Key Wrap és hitelesített kicsomagolási primitíveket - A
TPdfMacValidationResultmegkülönbözteti az érvényes, hiányzó, érvénytelen és nem támogatott hitelesítési kódokat diagnosztikai szöveggel - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.15.0 verziót jelentik
Version 3.14.0
Hozzáadva (Added)
- A
TPdf.ValidatePadesmostantól Windows alatt ellenőrzi a leválasztott CMS-aláírásokat a pontos eredeti/ByteRangeszegmensek alapján, az aláírt attribútumokat és az aláírás értékét is beleértve - A
TPadesValidationResultösszesített sértetlenségi állapotot és aláírásonkénti ByteRange-, CMS-,signing-certificate-v2, rendszermegbízhatósági, visszavonási és időbélyeg-állapotokat társít fel anélkül, hogy a nem támogatott vagy nem ellenőrzött bizonyítékot érvénytelen aláírással mosná össze - Az aláírói tanúsítványkötés SHA-256-tal ellenőrizhető, a tanúsítványláncok csak gyorsítótáras Windows rendszermegbízhatósági kiértékelést használnak, és a natív hibakódok továbbra is elérhetők maradnak a diagnosztikához
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.14.0 verziót jelentik
Version 3.13.1
Javítva (Fixed)
- A
TPdf.ValidatePadesmostantól az eredeti fájlt, a pufferelt memóriát vagy az egyéni stream bájtjait vizsgálja, nem a PDFium által újramentett másolatot, amely érvényteleníthette az eltolásokat vagy elvethette az aláírás-szótárakat - A PAdES
/ByteRange-ellenőrzések mostantól elfogadják az olyan aláírásokat, amelyek egy korábbi teljes PDF-revíziót fednek le, amit érvényes inkrementális frissítések követnek, és ellenőrzik a Document Time-stamp tartományokat is - A
TPadesValidationResult.SourceStatusmegkülönbözteti az eredeti forrás ellenőrzését a nem elérhető vagy hiányos progresszív bemenettől, és a megfelelőségi predikátumok elutasítják az eredeti bájtok nélküli eredményeket - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.13.1 verziót jelentik
Version 3.13.0
Hozzáadva (Added)
- Az
FPdfSha3függőségmentes SHA3-256, SHA3-384, SHA3-512 és SHAKE256 primitíveket biztosít az ISO/TS 32001-höz és a kapcsolódó PDF 2.x kriptográfiai munkákhoz - Az inkrementális kontextusok tetszőlegesen darabolt bemenetet nyelnek el, miközben a SHAKE256 támogatja az ismételt squeeze-hívásokat és a szivacs-sebességhatárokat átlépő kimenetet
- Az egyszeri bájttömb- és kisbetűs hexadecimális segédek kiegészítik a streaming API-t, explicit életciklus- és méretellenőrzéssel a Delphi, a C++Builder és a Lazarus platformokon
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.13.0 verziót jelentik
Version 3.12.0
Hozzáadva (Added)
- A
TPdf.ImportFDFFDF-űrlapadatokat importál fájlokból vagy streamekből, és az elemzett értékeket a meglévő widgetmező-útvonalon keresztül alkalmazza - Az
FdfImportFromStreamés azFdfImportFromFileközvetlen vagy indirekt hierarchikus mezőket, PDF literális és hexadecimális karakterláncokat, PDFDocEncodinget, Unicode-szöveget, névértékeket és explicit üres értékeket elemez korlátozott erőforrás-költségvetések mellett - Az FDF-export mostantól szabványnak megfelelő UTF-16BE szöveges karakterláncként írja a nem ASCII mezőneveket és értékeket, és biztonságosan escape-eli a forrásfájlneveket
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.12.0 verziót jelentik
Version 3.11.0
Hozzáadva (Added)
- A
TPdf.DetectPageSkewalacsony DPI-n rendereli az aktuális oldalt, és a ferdeségi szöget a sötét pixelek jelölt forgatási szögekre vetítésével észleli, visszaadva azt a szöget, amely a sorösszegek varianciáját (szövegsor-igazítás) maximalizálja kb. 0,1 fokos pontossággal - A
TPdfSkewReportfeltárja az észlelt szöget, a megbízhatóságot és a minta méreteit - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.11.0 verziót jelentik
Version 3.10.0
Hozzáadva (Added)
- A
TPdf.GetTextInReadingOrderaz aktuális oldal szövegét nyers tartalomstream-sorrendben vagy fizikai elrendezési sorrendben (fentről lefelé, balról jobbra) nyeri ki azFPDFText_GetCharBox+ pozíció szerint rendezett karakterkinyerésen keresztül, így a többhasábos és vizuálisan átrendezett szöveg természetesen olvasható - A
TPdfReadingOrderfelsorolás aroContentOrderés aroPhysicalLayoutközött választ - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.10.0 verziót jelentik
Version 3.09.0
Hozzáadva (Added)
- A
TPdfImageOptimizeOptions.PreserveBilevelkihagyja az 1 bites két szintű képeket (ImageMask / vonalas grafikai szkennelések) azOptimizeImagessorán, így a legközelebbi szomszéd szerinti lemintavételezés nem semmisíti meg éles éleiket - A
TPdfImageOptimizeOptions.MinDimensionkihagyja a küszöbnél kisebb képeket (jellemzően ikonokat vagy dekoratív elemeket, amelyek nem használnak a további csökkentésből) - A
TPdfImageOptimizeOptions.Defaulta javasolt kiindulópontot biztosítja (150 DPI cél, 1,5 arány, két szintű képek megőrzése, minimális méret 8) - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.09.0 verziót jelentik
Version 3.08.0
Hozzáadva (Added)
- A
TPdfTileCachea renderelt oldalcsempék korlátozott LRU-gyorsítótárát biztosítja dokumentumrevízió, oldal, nagyítás, forgatás, renderelési jelzők és eszköztéglalap szerint kulcsolva, így a változatlan csempék nem renderelődnek újra az újrarajzolásoknál, és a korábbi mentésből származó elavult csempék automatikusan kiszorulnak - A
TTileKeystatikusCreategyárral ésEqualsösszehasonlítóval tárja fel az összetett gyorsítótárkulcsot - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.08.0 verziót jelentik
Version 3.07.0
Hozzáadva (Added)
- A
TPdf.GetAnnotationFontColorés aTPdf.SetAnnotationFontColorbeburkolja a korábban kötött, de nem használtFPDFAnnot_GetFontColorésFPDFAnnot_SetFontColorfüggvényeket, feltárva a widgetszöveg-szín olvasását és írását űrlapmező-szerkesztéshez a jegyzetszótár közvetlen módosítása nélkül - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.07.0 verziót jelentik
Version 3.06.0
Hozzáadva (Added)
- A
TPdf.RenderPageBandedaz aktuális oldalt vízszintes sávokban rendereli visszahíváson keresztül, így plakátok és mérnöki oldalak exportálhatók a teljes célbitkép lefoglalása nélkül — minden sáv a kért sávmagasságú, újonnan létrehozottTBitmap-be renderelődik, és a visszahívás visszatérése után felszabadítódik - A
TPdfBandCallbacka sávankénti szerződést tárja fel (sávindex, felső y-eltolás, bitkép), egy logikai visszatérési értékkel, amellyel a hívók időben megszakíthatják a sávos renderelést - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.06.0 verziót jelentik
Version 3.05.0
Hozzáadva (Added)
- A
TPdf.RenderPageProgressiveWithColorSchemea natív progresszív renderelési ciklust vezérli gyengénlátó színsémával azFPDF_RenderPageBitmapWithColorScheme_Startsegítségével, lehetővé téve a hívóknak az útvonal-kitöltés / -körvonal és a szöveg-kitöltés / -körvonal színek felülírását az akadálymentesség érdekében, miközben megtartja a megszakítás-tudatos Continue ciklust - A
TPdfColorSchemea négyTColorfelülíró mezőt tárja fel egyDefaultbeállítással, amely a PDFium beépített színeire hagyatkozik, amikor minden mezőclDefault - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.05.0 verziót jelentik
Version 3.04.0
Hozzáadva (Added)
- A
TPdf.ExportFDFaz űrlapmező-értékeket FDF (ISO 32000-1 §12.7.11) dokumentumként szerializálja a meglévő XFDF-útvonal mellett, ugyanazt aTXfdfFieldadatmodellt újrahasznosítva, így a hívók egyszer gyűjtik össze a mezőket, és bármelyik formátumban kibocsáthatják - Az
FdfExportToStreamés azFdfExportToFileazFPdfXfdfegységben feltárja az alacsony szintű FDF-szerializálót azoknak a hívóknak, amelyek a mezőgyűjteményeket a betöltöttTPdf-től függetlenül építik fel - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.04.0 verziót jelentik
Version 3.03.0
Hozzáadva (Added)
- A
TPdf.SaveAsSanitisedtiszta, egyetlen revíziós másolatot ír, amely lecsupaszítja az aktív tartalmat a katalógusból (/OpenAction, katalógus/AA,/Names,/AcroForm,/Metadata), majd metszi vissza az elérhetetlen objektumokat, így az árva JavaScript-, művelet- és melléklettörzsek eltűnnek a fájl törzséből - A
TPdfSanitiseOptionsfüggetlen, vektoronkénti lecsupaszítási vezérlőket tár fel opcionális elérhetőségi visszametszési menettel; aTPdfSanitiseReportrögzíti a lecsupaszított bejegyzések számát, a visszametszett objektumok számát, a bájtszámokat és a hibákat - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.03.0 verziót jelentik
Version 3.02.0
Hozzáadva (Added)
- A
TPdf.SaveAsPageLabelledteljes PDF-másolatot ír, amelynek katalógus/PageLabelsszámfáját a megadott tartományok váltják fel, decimális, nagy/kisbetűs római és nagy/kisbetűs betűs számozási stílusokat alkalmazva opcionális előtagszöveg-karakterláncokkal és kezdőszámokkal az ISO 32000-1 §12.4.2 szerint - A
TPdfPageLabelRange, aTPdfPageLabelRanges, aTPdfPageLabelStyleés aTPdfPageLabelReportfeltárja a tartománymodellt, a stílusfelsorolást és a mentésenkénti bájt- és tartományszámokat - A meglévő katalógus
/PageLabelsbejegyzések észlelhetők és elutasításra kerülnek, hacsak nem adnak átReplaceExisting=Trueértéket, ebben az esetben a régi bejegyzés levágásra kerül, mielőtt az új tartományokat befecskendezik - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.02.0 verziót jelentik
Version 3.01.0
Hozzáadva (Added)
- A
TPdf.FlattenPageRotationminden oldal aktuális/Rotateértékét beégeti a tartalomstreambe, az oldalboxokba és a jegyzettéglalapokba, majd visszaállítja a/Rotateértéket 0-ra — beburkolva azFPDFPageObj_TransformF+FPDFAnnot_GetRect/SetRect+FPDFPage_SetMediaBox/SetCropBox+FPDFPage_SetRotationhívásokat, így a vizuális elrendezés megőrződik a forgatási megjelenítési tippre támaszkodás nélkül - A
TPdfFlattenRotationOptionsoldalankénti jegyzet-transzformációs, oldalbox-csere- és automatikus frissítési vezérlőket tár fel; aTPdfFlattenRotationReportrögzíti a feldolgozott, kihagyott és meghiúsult oldalakat, valamint az összes transzformált objektumot és jegyzetet - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.01.0 verziót jelentik
Version 3.00.0
Hozzáadva (Added)
- A
TPdf.StampPagesFromPdfegy forrásoldalt elhelyezett, skálázott, opcionálisan forgatott Form XObject átfedésként vagy aláfedésként pecsétel egy vagy több céloldalra, beburkolva aCreateXObjectFromPage+FPDFPageObj_SetMatrix+FPDFPageObj_SetBlendMode+FPDFPage_InsertObjectAtIndexhívásokat explicit oldalbox-, horgony-, margó-, skála-, forgatás-, keverés- és z-sorrend-házirendekkel - A
TPdfOverlayOptionsés aTPdfOverlayReportfeltárja az elhelyezési, transzformációs, keverési és z-sorrendű vezérlőket, valamint oldalankénti pecsételt, meghiúsult és kihagyott számokat - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 3.00.0 verziót jelentik
Version 2.99.0
Hozzáadva (Added)
- A
TPdf.RefreshAppearanceszelektíven regenerálja egyetlen widget megjelenési streamjét azFPDFAnnot_SetAP-on keresztül, elkerülve az oldal szintűNeedAppearancesújraépítést - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.99.0 verziót jelentik
Version 2.98.0
Hozzáadva (Added)
- A
TPdfView.MouseDownmostantól a jobb gombos eseményeket a natív űrlapkitöltő motorhoz irányítja aFORM_OnRButtonDown-on keresztül, lehetővé téve a helyi menüket és widget-interakciókat jobb kattintáskor - A 78. (link-jegyzet feltérképezés), 82. (widget-bemutatás) és 83. (szerkezeti attribútummodell) útvonaltérkép-elemek megerősítetten kész a meglévő infrastruktúrán keresztül
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.98.0 verziót jelentik
Version 2.97.0
Hozzáadva (Added)
- A
TPdf.SetDeterministicTimeés aTPdf.RestoreActualTimelehetővé teszi a teszteknek és a reprodukálható buildeknek rögzített létrehozási, módosítási és aktuális idő beszúrását a támogatott natív visszahívásokon keresztül - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.97.0 verziót jelentik
Version 2.96.0
Hozzáadva (Added)
- A
TPdf.GetWidgetAdditionalActionJavaScriptegy adott eseményindítóhoz olvassa a widget kiegészítő műveletéhez tartozó JavaScriptet azFPDFAnnot_GetFormAdditionalActionJavaScript-on keresztül, bármilyen szkript végrehajtása nélkül - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.96.0 verziót jelentik
Version 2.95.0
Hozzáadva (Added)
- A
TPdf.GetObjectTextegy szöveges oldalobjektum Unicode-szövegét nyeri ki azFPDFTextObj_GetText-en keresztül a pontos tartalomszerkesztéshez és kódolásdiagnosztikához - A
TPdf.GetObjectsByTypeegy kategóriához (szöveg, útvonal, kép, űrlap, árnyalás) illeszkedő összes oldalobjektum indexét adja vissza a szelektív kategóriakimenethez - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.95.0 verziót jelentik
Version 2.94.0
Hozzáadva (Added)
- A
TPdf.AttachmentHasKey, aGetAttachmentStringValueés aSetAttachmentStringValueolvassa, írja és teszteli az egyéni fájl-spec bővítésértékeket a beágyazott mellékleteken - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.94.0 verziót jelentik
Version 2.93.0
Hozzáadva (Added)
- A
TPdf.InsertObjectAtIndexoldalobjektumot szúr be egy kért verempozícióra azFPDFPage_InsertObjectAtIndex-en keresztül, ahelyett hogy mindig hozzáfűzne - A
TPdf.UpdateAnnotationObjectvéglegesíti a szerkesztett jegyzet-megjelenési objektumot azFPDFAnnot_UpdateObject-on keresztül, így a jegyzet tulajdonában lévő oldalobjektumok módosításai megbízhatóan megőrződnek - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.93.0 verziót jelentik
Version 2.92.0
Hozzáadva (Added)
- A
TPdf.InsertClipPathtéglalap alakú vágási útvonalat hoz létre, és beszúrja az aktuális oldalba a natívFPDF_CreateClipPathésFPDFPage_InsertClipPathútvonalakon keresztül, kiegészítve a meglévőPageObjectClipPathvizsgálót - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.92.0 verziót jelentik
Version 2.91.0
Hozzáadva (Added)
- A
TPdf.GetPageComplexityátvizsgálja az aktuális oldalt, és jelentést ad a kép-, útvonal- és szövegobjektumszámokról, valamint a teljes útvonalszegmensszámról, a teljes képpixelekről és az átlátszóság jelenlétéről a renderelési tervezéshez - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.91.0 verziót jelentik
Version 2.90.0
Hozzáadva (Added)
- A
TPdf.IsAnnotationSubtypeSupportedmegkérdezi a betöltött PDFium DLL-t, hogy mely jegyzet-altípusokat támogatja a szerkesztés előtt - A
TPdf.ChooseRenderFlagsnatív renderelési jelzőket választ (féltónus, korlátozott képgyorsítótár) a végső skálából és a célméretből az adaptív képi almintavételezéshez - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.90.0 verziót jelentik
Version 2.89.0
Hozzáadva (Added)
- A
TPdf.GetTextRenderModefeltárja egy szöveges oldalobjektum natív szövegrenderelési módját (kitöltés, körvonal, vágás) a szerkesztési diagnózisokhoz - A
TPdf.GetTextObjectRenderedBitmapegyetlen szövegobjektumot renderel elszigetelt bitképpé a natívFPDFTextObj_GetRenderedBitmapútvonalon keresztül - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.89.0 verziót jelentik
Version 2.88.0
Hozzáadva (Added)
- A
TPdf.GetThumbnailmostantól egy renderelt helyettesítőre esik vissza, amikor az oldalnak nincs beágyazott bélyegképe, megvalósítva a beágyazott bélyegkép előnyben részesítését - A
TPdf.LinkAtPointvisszaadja, hogy létezik-e natív hivatkozás egy oldaltér-koordinátán azFPDFLink_GetLinkAtPointhasználatával, nem pedig kizárólag téglalap-alapú átvizsgálással - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.88.0 verziót jelentik
Version 2.87.0
Hozzáadva (Added)
- A
TPdf.AuditActiveContentegyTPdfActiveContentAuditpillanatképet ad vissza a JavaScript-műveletszámról, a beágyazott fájlok számáról, az aláírások számáról, az XFA-űrlaptípusról és a dokumentumengedélyekről bármilyen szkript vagy művelet végrehajtása nélkül - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.87.0 verziót jelentik
Version 2.86.0
Hozzáadva (Added)
- A
TPdf.GetFeatureInventoryegyszer átvizsgálja az összes oldalt, és egységes rekordot ad vissza a szöveg-, útvonal-, kép-, Form XObject- és árnyalási objektumszámokról, valamint a melléklet-, aláírás-, űrlaptípus-, engedély- és PDF-verziótényekről - A
TPdfFeatureInventorya korábban külön tulajdonsághívásokat igénylő dokumentumszintű tényeket egyetlen pillanatképbe összesíti - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.86.0 verziót jelentik
Version 2.85.0
Hozzáadva (Added)
- A
TPdf.SaveAsReproducibleúgy írja újra a dokumentumot, hogy ugyanazon memóriabeli állapot két mentése bájtonként azonos kimenetet állítson elő - A nem determinisztikus
/Infoidőbélyegek (/CreationDate,/ModDate) levágásra kerülnek, és a forrás/ID(a falórától függő bájtokból származtatva) kimarad, miközben az objektumsorrend és a generáció stabil marad - A
TPdfReproducibleReportjelentést ad a megtartott és visszametszett objektumszámokról, valamint a levágott időbélyeg-bejegyzések számáról - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.85.0 verziót jelentik
Version 2.84.0
Hozzáadva (Added)
- A
TPdf.SaveAsInlineImagesExternalisedújraírja a dokumentumot, mindenBI/ID/EIinline képet újrahasznosítható kép-XObjectgé emelve ki, és az inline blokkot egy/ImN Dooperátorra cserélve - Az inline képszótár rövidítései (
/W,/H,/BPC,/CS,/F, színtér-értékek és szűrőértékek) kibővítésre kerülnek a teljes kép-XObject nevekre, így a kinyert objektum szabványkompatibilis - Az oldal
/Resources /XObjectszótára frissül az új XObject-hivatkozásokkal, és az újraírt tartalomstream Flate-tömörítést kap - A
TPdfInlineImageExternaliseReportjelentést ad az externalizált, kihagyott és meghiúsult számokról, valamint a létrehozott XObject-számról - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.84.0 verziót jelentik
Version 2.83.0
Hozzáadva (Added)
- A
TPdf.SaveAsFlateRecompressedújraírja a dokumentumot, és a jogosultFlateDecodestreameket maximális tömörítéssel kódolja újra, csak akkor cserélve egy streamet, amikor a mért bájtmegtakarítás meghaladja a hívó küszöbét - A
TPdfFlateRecompressOptionsminimális bájtmegtakarítást és minimális megtakarítási arányt választ, így a már optimális streamek érintetlenek maradnak - A
TPdfFlateRecompressReportjelentést ad az újrakódolt, kihagyott és meghiúsult streamek számáról, valamint az eredeti és újrakódolt stream bájttotálisokról - Az objektumszámok és generációk stabilak maradnak; csak az újrakódolt stream-tartalmak és közvetlen
/Lengthértékeik változnak, így minden megmaradó kereszthivatkozás érvényes marad - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.83.0 verziót jelentik
Version 2.82.0
Hozzáadva (Added)
- A
TPdf.OptimizeImagesbejárja az összes oldal képobjektumát, és lemintavételezi azokat, amelyek hatékony elhelyezési DPI-je meghaladja a hívó által kiválasztott célt, majd minden érintett oldalt véglegesít a natív tartalomgenerátoron keresztül - A
TPdfImageOptimizeOptionskiválasztja a cél DPI-t és egy minimális arányt, így csak a valóban túlmintavételezett képek kerülnek újrakódolásra - A
TPdfImageOptimizeReportjelentést ad az optimalizált, kihagyott és meghiúsult képek számáról strukturált hibaüzenettel együtt - A lemintavételezés egy legközelebbi szomszéd szerinti menetet használ a natív PDFium bitképpufferen, megőrizve a forrásformátumot, a sortávolságot és az alfa csatornát, az
FPDFImageObj_SetBitmappedig újrakódolja a megmaradt képet - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.82.0 verziót jelentik
Version 2.81.0
Hozzáadva (Added)
- A
TPdf.SaveAsDeduplicatedegyetlen tiszta revízióként írja újra a dokumentumot, amely a kompatibilis betűtípusokat, képeket és Form XObjecteket egy megosztott képviselőre vonja össze - Egy rekurzív tartalom-ujjlenyomat kombinálja az egyes erőforrás-szótárakat, a teljes elérhető részfájukat és a nyers stream-tartalmukat, így a duplikátumok csak akkor egyesülnek, amikor a teljes tartalmuk azonos
- Minden az egyesítéssel eltűnt duplikátumra mutató kereszthivatkozás a megmaradó képviselőre íródik újra, miközben az újraépített klasszikus kereszthivatkozás-tábla stabil objektumszámokat tart meg
- A
TPdfDedupReportjelentést ad a megtartott és visszametszett objektumszámokról, valamint kategóriánként az egyesített betűtípus-, kép- és Form XObject-számokról - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.81.0 verziót jelentik
Version 2.80.0
Hozzáadva (Added)
- A
TPdf.SaveAsReachableegyetlen tiszta revízióként írja újra a dokumentumot, amely csak a katalógusból és a trailer /Info szótárból elérhető indirekt objektumokat tartja meg - A
TPdfPruneReportjelentést ad a megtartott és visszametszett indirekt objektumszámokról a forrás- és kimeneti bájtméretekkel együtt, valamint strukturált hibaokokról titkosított vagy hibás formátumú bemenetnél - Az inkrementális frissítések, oldal-egyesítések vagy javított mentések által hátrahagyott elérhetetlen árva objektumok elsöprésre kerülnek, miközben az újraépített klasszikus kereszthivatkozás és trailer a
/Root,/Infoés/IDértékeket újrászámozás nélkül megőrzi - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.80.0 verziót jelentik
Version 2.79.0
Hozzáadva (Added)
- A
TPdf.CreateDocumentSearchelőre vagy hátra irányuló, dokumentumszintű keresést hoz létre, amely egyszerre egy találatot ad vissza teljes dokumentumra kiterjedő szövegindex felépítése nélkül - A
TPdfDocumentSearchResultjelentést ad az egyes alapú oldalról, a karaktertartományról, az illeszkedő szövegről és az oldaltér-téglalapokról minden eredményhez - A keresési munkamenetek elfogadják az
IPdfCancellationTokentokent, csak az aktuális PDFium-oldal- és szövegfogantyúkat tartják meg, és biztonságosan befejezetté válnak a dokumentum bezárásakor - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.79.0 verziót jelentik
Version 2.78.0
Módosítva (Changed)
- A
TPdfRangeRequestSchedulermostantól előli az átfedő, alacsonyabb prioritású átviteleket, így az oldalkritikus PDFium-tippek nem várnak a háttérletöltések mögött - A külsőleg elérhető ritka bájtok érvénytelenítik a redundáns aktív átviteleket, miközben a felváltott vagy duplikált szállítási visszahívások False értékkel térnek vissza elavult lefedettség közzététele nélkül
- A prioritás-emelés megőrzi a független újrapróbálkozási előzményeket, és a szállítási előzés többé nem fogyasztja az érintetlen tartományvégek újrapróbálkozási keretét
- A
TPdfRangeRequestStatistics.SupersededRequestCountjelentést ad a magasabb prioritású tippek vagy külsőleg szolgáltatott lefedettség által kiszorított szállítási munkáról - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.78.0 verziót jelentik
Version 2.77.0
Hozzáadva (Added)
- A
TPdf.SaveAsNormalizedContentszintaktikailag normalizált oldaltartalmat ír streambe vagy atomikusan cserélt fájlba, és jelentést ad a normalizált, kihagyott és egyesített oldalak számáról - A
NormalizePdfContentSequencekorlátozott, önálló token-normalizálást biztosít a dekódolt tartalomstream-szekvenciákhoz
Módosítva (Changed)
- Az oldal
/Contentstömbök mostantól egyetlen streammé egyesíthetők a karakterláncok, nevek, inline képtartalmak, ismeretlen operátorok és streamek közötti grafikus állapot megőrzése mellett - A hibás formátumú tokenek, a kiegyensúlyozatlan állapothatókörök, a nem támogatott szűrők, a titkosított bemenet és az aláírt dokumentumok újraírásai explicit házirendekkel és strukturált állapotjelentéssel rendelkeznek
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.77.0 verziót jelentik
Version 2.76.0
Hozzáadva (Added)
- A
TPdfStreamInspectortetszőleges fizikai PDF-stream-objektumokról készít leltárt, és jelentést ad az objektumeltolásokról, nyers hosszakról, szűrőláncokról, DecodeParmsekről, külső fájljelölőkről, titkosítási állapotról és natív kép- vagy mellékletútvonalakról - A
CopyRawDatateljes kódolt tartalmakat vagy ellenőrzött bájtablakokat másol, míg aDecodeDataASCIIHex, ASCII85, LZW, Flate, RunLength, TIFF 8 bites és PNG prediktorokat alkalmaz deklarált sorrendben - A
TPdfStreamInspectOptionskorlátozza a forrás-, nyers, dekódolt, szótár-, streamszám- és bővülési arány erőforrásokat, strukturált jelentésekkel a limitekről, hibás adatokról, nem támogatott kodekekről, titkosításról és írási hibákról
Módosítva (Changed)
- A streamhossz-feloldás mostantól pontos szakaszokat tár fel a közvetlen és indirekt
/Lengthértékekhez, beleértve a nulla hosszúságú streameket és a literálisendstreamszekvenciát tartalmazó adatokat - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.76.0 verziót jelentik
Version 2.75.0
Hozzáadva (Added)
- A
TPdfLoadOptionskompatibilis, szigorú és helyreállítási házirendeket ad a fájl-, memória-, bájttartomány- és egyéni stream-betöltéshez - A
TPdfLoadReportjelentést ad a natív helyreállítási útvonalról, xref-érvényességről, sérült eltolásokról, bejegyzésütközésekről, revíziószámokról, ellenőrzési keretekről és strukturált problémákról klasszikus, hibrid és xref-stream dokumentumokhoz - A
TPdf.SaveAsRepairedteljes, egyetlen revíziós másolatot hoz létre, és egymástól függetlenül szigorúan betölti, mielőtt az ellenőrzött streamet kézbesítené vagy atomikusan lecserélné a célfájlt
Módosítva (Changed)
- A meglévő betöltési túlterhelések kompatibilis viselkedést őriznek meg, és mostantól közzéteszik a natív xref-érvényességet és helyreállítási állapotot a
LastLoadReport-on keresztül - A szigorú betöltés elutasítja a natív xref-újraépítést igénylő vagy a szerkezeti ellenőrzésen megbukott dokumentumokat, miközben az aláírt javítási kimenet kifejezett hívói engedélyt igényel
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.75.0 verziót jelentik
Version 2.74.0
Hozzáadva (Added)
- A
TPdf.MergeFilesfájlalapú forráslistákat egyesít forrásonkénti oldaltartományokkal és jelszavakkal, miközben legfeljebb egy forrásdokumentumot tart nyitva - A
TPdfBatchMergeOptionshozzáadja a leállítás vagy kihagyás hibakezelést, a forrás-hatókörű vagy darabolt importokat, az űrlap- és vázlat-házirendeket, a beszúrásvezérlést, az előrehaladás-visszahívásokat, a megszakítást, a megjelenítési preferenciák másolását és a visszaállítás vezérlését - A
TPdfBatchMergeReportjelentést ad a véglegesített és visszaállított oldalakról, forráseredményekről, natív import hívásokról, legnagyobb kötegről, csúcson nyitott forrásokról, házirendészlelésekről, problémákról és a végállapotról
Módosítva (Changed)
- Az alapértelmezett kötegelt útvonal forrásonként egy natív oldalimportot hajt végre, hogy a PDFium újrahasznosíthassa a klónozott objektumokat az adott forráson belül, majd bezárja a forrást, mielőtt megnyitná a következő fájlt
- A darabolt mód finomabb megszakítási pontokat és kisebb natív kötegeket biztosít, miközben a meghiúsult részleges források és a leállítási vagy megszakítási kimenetek eltávolíthatják a művelet által beszúrt összes oldalt
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.74.0 verziót jelentik
Version 2.73.0
Hozzáadva (Added)
- A
TPdfRandomAccessStoreszálbiztos szekvenciális és pozicionált I/O-t biztosít, a kis tartalmakat korlátozott memóriában tartja, és egyszer, a hívó által választott plafonon magántárolóra önt - A
TPdf.SaveMemoryLimités aSaveTemporaryDirectorykonfigurálja a mentési előkészítést, míg aLastSaveSpillCountés aLastSaveLargestMemoryBuffermérhető, mentésenkénti diagnosztikát tár fel
Módosítva (Changed)
- A mentési, szabványátalakítási, ellenőrzési, titkosítási, DSS- és PAdES-előkészítési pufferek mostantól korlátozott munkatárolót osztanak meg kizárólagos bezáráskor törlődő kiöntési fájlokkal és memóriatisztítással
- Az egyéni PDFium-blokk-visszahívások sorba rendezik a szokásos stream-pozicionálásokat, és kurzorfüggetlen pozicionált olvasásokat használnak, amikor
TPdfRandomAccessStoretámasztja alá őket - A fájlalapú XFA-képességvizsgálat mostantól rögzített méretű, átfedő blokkokat olvas, ahelyett hogy a teljes PDF-et memóriába másolná
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.73.0 verziót jelentik
Version 2.72.0
Hozzáadva (Added)
- A
TPdf.BeginIncrementalSave, aCommitIncrementalSaveés azEndIncrementalSaverevíziós munkamenetet biztosít, amely csak a módosított vagy újonnan létrehozott indirekt objektumokat fűzi hozzá - A
TPdfIncrementalCommitInfojelentést ad a módosított objektumok számáról, hozzáfűzött bájtokról, teljes kimeneti bájtokról és a sikeres revíziók számáról minden véglegesítéshez
Módosítva (Changed)
- Minden piszkos véglegesítés a teljes korábbi kimenetet pontos bájtelőtagként őrzi meg, nem bocsát ki revíziót, amikor semmi sem változott, és folytatja a forrás klasszikus vagy xref-stream formátumát
- A natív xref-stream inkrementális kimenet a szükséges típussal, saját bejegyzéssel, hosszal, indexszel és objektumterminátorral javításra kerül a további feldolgozás előtt
- A titkosított dokumentumok a munkamenet elkezdése előtt elutasításra kerülnek, míg az aláírt dokumentumok kifejezett hívói engedélyt igényelnek, így az aláírási házirend nem kerülhet véletlen megkerülésre
- A fájl-túlterhelés egy testvérfájlt ideiglenesként fejez be, mielőtt atomikusan lecserélné a célt, és minden írási vagy cserehiba után visszaállítja a munkamenet-állapotot
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.72.0 verziót jelentik
Version 2.71.0
Hozzáadva (Added)
- A
TPdf.SaveAsObjectStreamPDF 1.5+ fájlokat ír korlátozott, tömörített objektumcsoportokkal és teljes 2-es típusú bejegyzéseket tartalmazó tiszta xref streammel - A
PackPdfObjectStreamskorszerűsítheti a klasszikus, hibrid, xref-stream és meglévő objektumstream-bemenetet az aktív revízió feloldása után
Módosítva (Changed)
- Az oldalhelyi objektumrendezés, az adaptív xref-mezőszélességek, a közvetlen katalógus-hozzáférés és a konfigurálható tag- és dekódolt bájt-plafonok kiegyensúlyozzák a fájlméretet a véletlenszerű hozzáférés teljesítményével
- A fájl-túlterhelés egy testvérfájlt ideiglenesként fejez be, mielőtt atomikusan lecserélné a célt, miközben az érvénytelen inkrementális, verzió- és csoportosítási beállítások a kimenet megkezdése előtt elutasításra kerülnek
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.71.0 verziót jelentik
Version 2.70.0
Hozzáadva (Added)
- A
TPdf.SaveAsLinearizedvalódi Fast Web View PDF-et ír streambe vagy fájlba első oldalas objektumcsoportosítást, két kereszthivatkozás-szakaszt és az Annex F oldal-eltolási és megosztott objektum tipp-táblázatokat használva - Az aktív objektumstream-tagok automatikusan materializálódnak, lehetővé téve, hogy az xref-stream és objektumstream-bemenetek tartománybarát kimenetté váljanak a látható oldaltartalom módosítása nélkül
Módosítva (Changed)
- A fájl-túlterhelés egy testvérfájlt ideiglenesként fejez be, mielőtt atomikusan lecserélné a célt, míg a stream-túlterhelés megtartja a normál PDFium mentési beállításokat és explicit verzióellenőrzéseket
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.70.0 verziót jelentik
Version 2.69.0
Hozzáadva (Added)
- A
TPdfRangeRequestSchedulera PDFium bájttartomány-tippeit priorizált, egyesített, méretkorlátos szállítási munkává alakítja összefüggő letöltés kényszerítése nélkül - A teljes és részleges befejezés, a korlátozott újrapróbálkozások, a ritka elérhetőség deduplikációja, a kérésstatisztikák és a generációbiztos megszakítás támogatják a HTTP Range és az egyéni szállítási folyamokat
- A
TPdfProgressiveDocument.RangeRequestsautomatikusan megkapja a dokumentum-, űrlap- és oldal-tippeket, csak az interaktív oldalt blokkoló pontos bájtokat léptetve előre
Módosítva (Changed)
- A
CancelProgressiveLoadmostantól megszakítja az aktív tartomány-munkát a natív elérhetőség és a stream lebontása előtt, és az elavult szállítási befejezések biztonságosan figyelmen kívül hagyódnak - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.69.0 verziót jelentik
Version 2.68.0
Hozzáadva (Added)
- A
TPdfProgressiveDocumentéletben tartja a PDFium elérhetőségi munkamenetét, miközben egy távoli vagy növekvő véletlen hozzáférésű stream megkapja a PDFium által kért bájttartományokat - A
CheckDocumentAvailability, aCheckFormAvailabilityés aLoadAvailablePageegyesítettTPdfDownloadRangetippeket adnak vissza, így a gazdaalkalmazás csak a linearizált oldal megnyitásához és megjelenítéséhez szükséges adatokat kérheti le - Az
AvailableByteCountmonoton összefüggő letöltéseket támogat, míg azOnDataAvailablea ritka és sorrenden kívüli tartomány-gyorsítótárakat
Módosítva (Changed)
- A linearizált fájlok a PDFium natív progresszív dokumentum-, űrlap- és oldal-kapuit használják; a nem linearizált fájlok automatikusan átváltanak a natív egyéni stream-betöltőre, miután a teljes fájl jelen van
- A
TPdfStreamAdapterolyan logikai végső méretet tárhat fel, amely eltér a jelenleg tárolt bájtoktól, miközben megőrzi a kifejezett 4 GiBFPDF_FILEACCESSkorlátot - A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.68.0 verziót jelentik
Version 2.67.0
Hozzáadva (Added)
- A
TPdfView.AllowFormEventskikapcsolja azokat az egér-, billentyűzet- és fókusz eseményeket, amelyeket a megjelenítő továbbít az űrlapkitöltési réteghez, egy csak olvasható megjelenítőhöz vagy egy olyan megjelenítőhöz, amely maga vezérli az űrlap-interakciót - Kikapcsolt állapotban az űrlapmezők továbbra is normálisan renderelődnek: az oldal betöltése és bezárása szándékosan nem kerül kapuk mögé, mivel ezek inicializálják az űrlapréteget, nem bemenetre reagálnak
- A kapcsoló csatlakozik a meglévő
AllowUserPageChangeésAllowUserTextSelectionkapcsolókhoz, és alapértelmezetten True, így a meglévő viselkedés változatlan marad
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.67.0 verziót jelentik
Version 2.66.0
Hozzáadva (Added)
- A dokumentum által kiváltott nevesített műveletek (ISO 32000-1 §12.6.4.11) mostantól elérnek a gazdaalkalmazáshoz az új
OnNamedActioneseményen keresztül; korábban mind elvetésre kerültek - Kezeletlenül hagyva a négy szabványos navigációs név —
NextPage,PrevPage,FirstPage,LastPage— mozgatja az oldalt, az első és utolsó oldalon rögzítve, ahelyett hogy körbe fordulna - A
TPdf.PerformNamedActionlehetővé teszi az alkalmazásnak, hogy közvetlenül ugyanezt a viselkedést váltsa ki, False értékkel térve vissza egy olyan névhez, amelyhez a könyvtár nem rendel jelentést
Javítva (Fixed)
- Egy titkosítási teszt az
endstream-től visszafelé átvizsgálva mérte a stream-törzset, ami időnként titkosított bájtot vélt sorvégnek, és időszakos hibát jelentett; a könyvtár végig helyes volt
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.66.0 verziót jelentik
Version 2.65.0
Hozzáadva (Added)
- A
BuildToUnicodeCMapelőállítja a ToUnicode CMap-et (ISO 32000-1 §9.10.3), amelyre egy CID-betűtípusnak szüksége van, hogy a szövege másolható, kereshető és a kisegítő technológiák által olvasható legyen — enélkül a szöveg helyesen renderelődik, de a kinyerése üres - A bejegyzések a szabvány által előírt blokkonkénti 100-as korláthoz darabolódnak, a duplikált glyphek egyszer íródnak ki, és a
.notdefkihagyásra kerül - A CMap a CID = GID konvenciót követi, így nincs szükség mellette
CIDToGIDMapstreamre
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.65.0 verziót jelentik
Version 2.64.0
Hozzáadva (Added)
- A tinta- és bélyegzőjegyzetek a saját oldalobjektumaikból rajzolják meg magukat, nem az oldal tartalomstreamjéből, és ezek az objektumok mostantól elérhetők: az
AnnotationObjectCountés azAnnotationObjectInfoolvassa őket, azAddPathToAnnotationátad a jegyzetnek egyCreatePath-tal épített útvonalat, és aRemoveAnnotationObjecttöröl egyet - A bélyegző megjelenésének felépítése többé nem igényel külső eszközt: hozza létre az útvonalat a szokásos módon, majd adja a jegyzetnek az oldal helyett
- A PDFium csak a tinta- és bélyegző altípusokon fogad el oldalobjektumokat, így minden más altípus elutasításra kerül, a korlátozást megnevező üzenettel, ahelyett hogy érthetetlenül hiúsulna meg
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.64.0 verziót jelentik
Version 2.63.0
Hozzáadva (Added)
- A
TPdf.AddStandardFontTexta 14 betűtípus egyikével rajzol szöveget, amelyet minden PDF-olvasónak kötelező biztosítania, egyáltalán nem ágyazva be betűtípusprogramot — az így keletkező fájl mérhetően kisebb, mint ugyanaz aAddText-tel rajzolt szöveg, amely beágyazza a megtalált rendszerbetűképet - Az új
TPdfStandardFontfelsorolás mind a 14 betűképet név szerint nevesíti, így a hívó nem gépelheti el egy alap betűtípus nevét; a PDFium pontosan illeszti ezeket a neveket, és egy elírás csendben nem adna betűtípust - A PDF/A és a PDF/X egyaránt megköveteli minden betűtípus beágyazását, így az ezekre a profilokra irányuló kimenet továbbra is az
AddText-et használja
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.63.0 verziót jelentik
Version 2.62.0
Hozzáadva (Added)
- A
TPdf.TextObjectGlyphOutlineegy szövegobjektum betűtípusának egyik glyphjének körvonalát adja vissza útvonalszegmensekként, szöveg vektorgrafikává alakításához vagy egy olyan glyph vizsgálatához, amelyet egy betűtípus-helyettesítés megváltoztathatott - Az eredmény a meglévő
TPdfPathSegmentstípust használja újra, így pontosan úgy olvasható, mint egy rajzolt útvonalobjektum körvonala - A koordináták a betűtípus saját tervezőterében vannak, normalizálva úgy, hogy egy em 1.0; a kért betűméret nem skálázza őket, így az eszközegységeket kívánó hívónak magának kell a pontmérettel szoroznia
- Az üres eredmény azt jelenti, hogy a betűtípus nem tár fel körvonalat az adott glyphhez, ami nem hiba; nem szöveges objektum glyphjének lekérése kivételt dob
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.62.0 verziót jelentik
Version 2.61.0
Hozzáadva (Added)
- A
TPdf.InspectAvailabilityjelentést ad arról, amit a PDFium egy PDF-ről dokumentumként való betöltés nélkül elmondhat: a fájl linearizált-e (“web optimalizált”), egy teljes elemzés sikeres lenne-e, hordoz-e űrlapadatokat, és melyik oldalt jelenítené meg először egy megjelenítő - Az új
TPdfAvailability,TPdfLinearizationésTPdfFormAvailabilitytípusok hordozzák a válaszokat; a stream olvasásra kerül, de nem őrződik meg, és a pozíciója a visszatéréskor visszaáll - Ez lezárja az
FPDFAvail_*család utolsó hiányosságát, amely kötésre és betöltésre került, de sehol sem volt hívója a könyvtárban - A Delphi, a Lazarus és a C++Builder egyaránt lefedi a jelentett tényeket, a streampozíció-garanciát és a nil stream elutasítását
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.61.0 verziót jelentik
Version 2.60.0
Hozzáadva (Added)
- A megjelölt tartalom (ISO 32000-1 §14.6) mostantól elérhető a magas szintű API-ból: a
PageObjectMarksminden BDC címkét és tulajdonságlistáját leolvassa egy oldalobjektumról, azAddPageObjectMarkír egyet, aRemovePageObjectMarktöröl egyet, és aPageObjectMarkedContentIDjelenti az MCID-t - Az új
TPdfContentMark,TPdfContentMarkParamésTPdfMarkParamKindtípusok a címke nevét és tipizált paramétereit (integer, float, string, blob) hordozzák, az értékfajtát a PDFiumtól feloldva, nem a sikeres getterből találgatva - A jelölő hozzáadása újraépíti az oldal tartalomstreamjét, így a címke túléli a mentést; ennek explicitnek kellett lennie, mert a
SaveAsönmagában nem regenerál tartalmat - A Delphi, a Lazarus és a C++Builder egyaránt hat esetet hordoz, beleértve egyet, amely feltölti a mentett tartalomstreamet, hogy megerősítse, a BDC operátor és tulajdonságlistája valóban bekerült
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.60.0 verziót jelentik
Version 2.59.0
Hozzáadva (Added)
- A
TPdfAnnotationmegkapja aHasLinkUriésLinkUritulajdonságokat, így aCreateAnnotationmostantól működő weblinket hozhat létre: a jegyzet egy/URIművelettel kerül mentésre, amely a megadott címre mutat - Link URI beállítása az
anLink-en kívüli bármely altípuson kivételt dob, mivel csak egy Link jegyzet hordoz műveleti szótárt - A mező egyelőre csak írható; egy linkcél visszolvasása a
FPDFLink_*családon keresztül történik, amely a dokumentum-fogantyút igényli - A Delphi, a Lazarus és a C++Builder egyaránt ellenőrzi, hogy a mentett bájtok a
/URIműveletet és a célcímet hordozzák
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.59.0 verziót jelentik
Version 2.58.12
Hozzáadva (Added)
- A PDF/X-ellenőrzés
pvxiTrimBoxWithArtBoxhibát jelent, amikor egy oldal egyszerre hordoz/TrimBoxés/ArtBoxbejegyzést; mindkettő a kész oldalt határozza meg, így egy RIP nem tudhatja, melyik a mértékadó (ISO 15930) - A PDF/X-ellenőrzés
pvxiPageBoxOutsideMediaBoxhibát jelent, amikor a/TrimBoxvagy a/BleedBoxa/MediaBox-on kívülre nyúlik, negatív origójú boxot is beleértve; a médiumon túli box nem képezhető le - A téglalapok normalizálásra kerülnek az összehasonlítás előtt, így bármely saroksorrend elfogadásra kerül, és a médiaélet pontosan érintő box is ellenőrzésre kerül érvényesként
- A preflight-jelentések mindkét problémát szerkezet alatt osztályozzák, és megnevezik a konkrét orvoslást
- A Delphi, a Lazarus és a C++Builder egyaránt lefedi a két elutasított esetet és a megfelelőt
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.12 verziót jelentik
Version 2.58.11
Hozzáadva (Added)
- A PDF/UA-ellenőrzés
pvuaiTociWithoutTochibát jelent, amikor egy dokumentum TOCI bejegyzéseket jelöl meg, de soha nem jelöli meg az azokhoz tartozó TOC konténert, ami a kisegítő technológiát tartalomjegyzék-elemek bejelentésére kényszeríti tartalomjegyzék nélkül (ISO 14289-1 §7.7) - A preflight-jelentések a problémát szerkezet alatt osztályozzák, és azt javasolják, hogy a bejegyzések TOC elembe kerüljenek
- A C++Builder megkapja az első PDF/UA tesztlefedettségét a Delphi és Lazarus esetek mellett
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.11 verziót jelentik
Version 2.58.10
Hozzáadva (Added)
- A PDF/A-ellenőrzés
pvaiSymbolicTrueTypeEncodinghibát jelent, amikor egy szimbolikus TrueType betűtípus/Encodingbejegyzést hordoz; az ISO 19005-1 §6.3.7 csak a betűtípus beépített cmapjét engedélyezi, így egy/Encodingellent mondana neki - A szimbolikus jelző a
/FontDescriptor-ból olvasásra kerül, akár inline a betűtípus-szótárban írva, akár indirekt módon hivatkozva; egy nem szimbolikus betűtípus megtartja a kötelező/WinAnsiEncodingvagy/MacRomanEncodingbejegyzést megjelölés nélkül - A preflight-jelentések a problémát tartalom alatt osztályozzák, és a bejegyzés eltávolítását javasolják
- A Delphi és a Lazarus lefedi a megjelölt esetet és mindkét elfogadott esetet; a C++Builder a megjelölt és a nem szimbolikus esetet fedi le
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.10 verziót jelentik
Version 2.58.9
Hozzáadva (Added)
- A PDF/A-ellenőrzés jelenti az ISO 19005-1 Annex C konténer-megvalósítási korlátait:
pvaiNameOverLimita 127 bájtnál hosszabb nevekhez,pvaiArrayOverLimita 8191 elemen túlra,pvaiDictOverLimita 4095 bejegyzésen túlra éspvaiNestingOverLimita 28 beágyazási szinten túlra - A korlátok inkluzívak, így a pontosan egy korláton ülő konténer is érvényesként ellenőrzésre kerül; a tesztek rögzítik minden határ elutasított és elfogadott oldalát
- A preflight-jelentések a négy problémát szerkezet alatt osztályozzák, és minden javaslatban megnevezik a konkrét korlátot
- A Delphi és a Lazarus mind a négy korlátot lefedi a határesetekkel együtt; a C++Builder a tömbkorlátot és a határt fedi le
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.9 verziót jelentik
Version 2.58.8
Hozzáadva (Added)
- A PDF/R-ellenőrzés
pvriPageImageMismatchhibát jelent, amikor a képszám nem egyezik meg az oldalszámmal; az ISO 23504-1 §6.5.1 szerint minden oldal pontosan egy sávkép, így a kép nélküli vagy több képes oldal nem megfelelő - A Delphi, a Lazarus és a C++Builder tesztek lefedik a kép nélküli oldalt, a két képes oldalt és a megfelelő egy képes esetet
Módosítva (Changed)
- A PDF/R jelölő-befecskendezési tesztek mostantól olyan forrásoldalról indulnak, amely már hordoz sávképet, mivel a jelölő-befecskendezés metaadatokat ad hozzá, és nem szolgáltathat oldaltartalmat
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.8 verziót jelentik
Version 2.58.7
Hozzáadva (Added)
- A PDF/R-ellenőrzés
pvriFontForbiddenhibát jelent, amikor egy oldal betűtípus-erőforrást nevesít; egy PDF/raster oldal a szkennelt képet és semmi mást nem hordoz (ISO 23504-1 §6.5.2) - A PDF/R-ellenőrzés
pvriForbiddenImageFilterhibát jelent a fehérlistán kívüli sáv-kódolásokra, így a/LZWDecode,/RunLengthDecode,/ASCII85Decode,/ASCIIHexDecode,/JBIG2Decodeés/Cryptelutasításra kerül, míg a/CCITTFaxDecode,/DCTDecode,/JPXDecodeés/FlateDecodeátmegy (ISO 23504-1 §6.6) - A preflight-jelentések mindkét problémát tartalom alatt osztályozzák, és a konkrét orvoslást javasolják
- A Delphi, a Lazarus és a C++Builder tesztek lefedik a betűtípus-erőforrást, az elutasított szűrőt és a csak fehérlistás kódolásokat használó oldalt
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.7 verziót jelentik
Version 2.58.6
Hozzáadva (Added)
- A PDF/E-ellenőrzés
pveiFontNotEmbeddedhibát jelent, amikor egy dokumentum betűtípus-használatot mutat, de nem hordoz beágyazott betűtípusprogramot, így a követelmény a DLL-mentes útvonalon és a PDFiumon keresztül is ellenőrzésre kerül - Egy műszaki rajznak évtizedekkel később is azonosan kell renderelődnie, így az ISO 24517-1 egyetlen szabványos 14 betűtípust sem mentesít; az ellenőrzés egyformán vonatkozik a
/Type1,/TrueType,/Type0és/MMType1betűtípusokra - A preflight-jelentések az új problémát tartalom alatt osztályozzák, és minden betűtípusprogram beágyazását javasolják
- A Delphi, a Lazarus és a C++Builder tesztek lefedik a program nélküli leírót, egy beágyazott
/FontFile2-t és egy olyan dokumentumot, amely egyáltalán nem használ betűtípust
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.6 verziót jelentik
Version 2.58.5
Hozzáadva (Added)
- Az
InjectPdfEMarkersmostantól megírja az ISO 24517-1 §6.2 által megkövetelt output intentet: egy beágyazott sRGB ICC célprofilt, egy azt megnevező/GTS_PDFE1output intentet és a katalógus/OutputIntentstömbjét, mindet ugyanazon inkrementális frissítés részeként - A profil stream a
/Nértékét az ICC fejlécből vezeti le, nem három komponenst feltételezve, így egy CMYK profil is helyesen kerülne leírásra - A PDF/E-ellenőrzés
pveiMissingOutputIntentéspveiMissingIccProfilehibát jelent, így a megadott színfeltétel nélküli jelölt többé nem kerül elfogadásra - A Delphi, a Lazarus és a C++Builder tesztek lefedik az elfogadott output intentet, a célprofil nélkülit és a teljesen output intent nélküli katalógust
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.5 verziót jelentik
Version 2.58.4
Hozzáadva (Added)
- A PDF/X-ellenőrzés mostantól bájtátvizsgálásból jelent
pvxiFontNotEmbeddedhibát, így a nem beágyazott betűtípus a DLL-mentes útvonalon is kiszúrásra kerül, nem csak a PDFium-alapú ellenőrzésen keresztül - A PDF/A-tól eltérően a szabványos 14 betűtípus nem mentesült a PDF/X-ben, így minden beágyazott betűtípusprogram nélküli betűtípus-használat jelentésre kerül
- Az ellenőrzés konzervatív marad: csak akkor váltódik ki, amikor a fájl betűtípus-használatot mutat, mégsem hordoz egyáltalán
/FontFile,/FontFile2vagy/FontFile3bejegyzést, mert a leírók programokkal szembeni megszámolása téves pozitívokat adna a megosztott leíróknál - A Delphi, a Lazarus és a C++Builder tesztek lefedik a program nélküli leírót, egy beágyazott programot és egy betűtípust nem használó dokumentumot
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.4 verziót jelentik
Version 2.58.3
Hozzáadva (Added)
- A PDF/X-ellenőrzés mostantól
pvxiColorSpaceForbiddenhibát jelent, amikor egy PDF/X-1a jelölt/DeviceRGB,/CalRGBvagy/Labszínteret hordoz, amelyeket az ISO 15930-1 §6.2 kizár a CMYK-cseréjéből - Az ellenőrzés csak a PDF/X-1a profilra van rákapcsolva, így a PDF/X-3 és a későbbiek továbbra is engedélyezik az RGB-t és az output intenthez párosított eszközfüggetlen színtereket
- Csak az egyértelmű színtér-név tokenek kerülnek tesztelésre; egy
ICCBasedstream a/Nértékének feloldására szorul, és az objektummodell-rétegnél marad - A Delphi, a Lazarus és a C++Builder tesztek lefedik a megjelölt RGB teret, a megjelölt Lab teret, az elfogadott CMYK és szürkeárnyalatos párt, valamint a PDF/X-3-on megengedett esetet
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.3 verziót jelentik
Version 2.58.2
Hozzáadva (Added)
- A PDF/X-ellenőrzés mostantól
pvxiTransparencyForbiddenhibát jelent átlátszósági csoportra vagy aktív soft maskra, amelyeket az ISO 15930-1 §6.2 (PDF/X-1a) és az ISO 15930-3 §6.3 (PDF/X-3) tilt - Az ellenőrzés az észlelt megfelelőségre van rákapcsolva, így a PDF/X-4 és a PDF/X-6 továbbra is engedélyezi az átlátszóságot, és egy olyan fájl, amelynek szintje nem azonosítható, sosem kerül megjelölésre olyan szabályért, amely esetleg nem vonatkozik rá
- A
/SMask /Nonebejegyzéssel explicit kikapcsolt soft mask nem tekintendő átlátszóságnak - A
PdfHasActiveSMaskazFPdfPdfa-ból azFPdfPdfCommoninterfészbe költözött, így minden validátor megoszthat egy soft mask szabályt - A Delphi, a Lazarus és a C++Builder tesztek lefedik a megjelölt csoportot X-1a-n, a megjelölt soft maskot X-3-on, a letiltott soft maskot és a megengedett esetet X-4-en
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.2 verziót jelentik
Version 2.58.1
Hozzáadva (Added)
- A PDF/X-ellenőrzés mostantól ellenőrzi az ISO 15930-7 §6.2.4 által megkövetelt output intent alakját: a
pvxiOutputIntentSchemeegy jelen lévő, de nem/GTS_PDFXaltípust jelent, apvxiOutputIntentMissingIdentifierpedig a hiányzó/OutputConditionIdentifierbejegyzést - Az altípus teljes név tokenként illeszkedik, így egy hosszabb név, mint a
/GTS_PDFXVersion, többé nem megy át, míg az ugyanazon név#xxescape-elt írásmódja továbbra is - Egyáltalán altípust nem hordozó output intent békén hagyásra kerül, mert hiányát már a jelölőszintű problémák jelentik
- A preflight-jelentések mindkét problémát az output intent kategória alatt rögzítik, és a javítást javasolják
- A Delphi, a Lazarus és a C++Builder tesztek lefedik az elfogadott altípust, egy PDF/A altípust, egy hosszabb név tokent, egy hiányzó altípust és egy hiányzó feltétel-azonosítót
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.58.1 verziót jelentik
Version 2.58.0
Módosítva (Changed)
- Mind a 35 visszahívás, amelyet a PDFium a saját C++ kereteiből meghív (űrlapkitöltés, XFA, JavaScript-platform, progresszív renderelési szünet valamint stream olvasás és írás), mostantól minden Pascal-kivételt a határon belül tart, és a dokumentált hibaértékkel tér vissza, ahelyett hogy a nyelvi határon át kitekerne
- Egy kivételt dobó eseménykezelő, egy meghiúsuló allokáció vagy egy váratlan hiba egy visszahíváson belül ezért többé nem döntheti le a folyamatot és nem hagyhatja a PDFiumot meghatározatlan állapotban
Javítva (Fixed)
- Az űrlap-időzítő regisztrálása akkor is a memóriában hagyta a bejegyzést, amikor az alapul szolgáló időzítő nem hozható létre
Hozzáadva (Added)
- A Delphi, a Lazarus és a C++Builder tesztek mostantól lefedik az írásokat visszautasító célstreambe való mentést, és azt állítják, hogy a dokumentum utána használható és menthető marad
Version 2.57.8
Javítva (Fixed)
- A régebbi Delphi kiadások (XE5 és korábbiak) az
E2003 Undeclared identifier: 'GetTickCount64'hibával abbahagyták a trial könyvtár fordítását azFPdfPades.pasfájlban, mert az ezekkel a fordítókkal szállított Windows egység nem exportálja a szimbólumot - Ugyanezek a fordítók megbuktak a
PDFium.pas-beliGetUserDefaultLocaleName-en és aGetXfaFormPackets-beliTBytestípusarray of Bytetípusra való hozzárendelésén is, így az XFA locale visszahívás és a csomag-pillanatkép mostantól ezeken a fordítókon is lefordul
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.8 verziót jelentik
Version 2.57.7
Módosítva (Changed)
- Minden mentési oldalú újraírás mostantól csonkolja a célstreamet az írás előtt, ahelyett hogy csak visszatekerné, így a hívó által adott, korábban hosszabb dokumentumot tartalmazó puffer nem őrizhet meg elavult farkot az új
%%EOFután - A Delphi, a Lazarus és a C++Builder tesztek mostantól lefedik az előre kitöltött streambe való mentést
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.7 verziót jelentik
Version 2.57.6
Javítva (Fixed)
- A titkosítást megelőző objektum-átvizsgálás tetszőleges hosszúságú számjegysorozatokat fogadott el, így egy hosszú szám bárhol a fájlban negatív vagy hamis objektumszámmá csavarodhatott, és fantom bejegyzést adhatott az újraépített kereszthivatkozás-táblához
- Az ISO 32000-1 Annex C korlát feletti objektumszámok és a 65535 feletti generációk mostantól objektumfejlécként elutasításra kerülnek csonkolás helyett
Hozzáadva (Added)
- A Delphi, a Lazarus és a C++Builder tesztek mostantól az újraépített tábla pontos, használatban lévő bejegyzésszámát állítják
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.6 verziót jelentik
Version 2.57.5
Javítva (Fixed)
- A
EncryptMetadata = Falsebeállítással való titkosítás/EncryptMetadata falseértéket írt az Encrypt szótárba, de továbbra is titkosította a dokumentum metaadat-streamjét, így az erre a deklarációra hagyatkozó olvasó olvashatatlan XMP-et talált - A
/Type /Metadatastream mostantól változatlanul másolódik, amikor a metaadat-titkosítás ki van kapcsolva, miközben minden más stream továbbra is titkosításra kerül
Hozzáadva (Added)
- Az
AnsiNameTokenMatchesKeymostantól azFPdfPdfCommoninterfész része elválasztó-tudatos név-összehasonlításhoz - A Delphi, a Lazarus és a C++Builder tesztek mostantól lefedik mindkét metaadat-titkosítási módot
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.5 verziót jelentik
Version 2.57.4
Javítva (Fixed)
- A titkosítás közben újraépített kereszthivatkozás-tábla kihagyta az ISO 32000-1 §7.5.4 által megkövetelt kötelező 0 objektumú szabadlista-fejet, így az első alszakasza egy objektummal később kezdődött
- Minden újraépített bejegyzés 0 generációt állított; a magasabb generációval írt objektumok mostantól megtartják azt, így a tábla egyetért azokkal az objektumfejlécekkel, amelyekre mutat
Hozzáadva (Added)
- A Delphi, a Lazarus és a C++Builder tesztek mostantól lefedik a szabadlista-fej bejegyzést és a generációmegőrzést az újraépített táblában
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.4 verziót jelentik
Version 2.57.3
Javítva (Fixed)
- A titkosított kimenet elhagyta minden stream-objektum
streamkulcsszavát, így a mentett fájl többé nem volt érvényes PDF-szintaxis, és a szigorú olvasók az oldaltartalmat sem streamként, sem streamek tömbjeként nem találták - A
/Lengthújraírás a/Length-et sima részkarakterláncként illesztette, így egy/Length1bejegyzést hordozó stream-szótár (bármely beágyazott betűtípus) kulcsneve megsérült, miközben a valódi hossz elavult maradt - A hosszát indirekt módon
/Length N 0 Rformában megadó stream objektumszáma felülírásra került az új hosszal; a bejegyzés mostantól a közvetlen titkosított hosszal helyettesítődik - Egyáltalán
/Lengthbejegyzést nem tartalmazó stream-szótár mostantól kap egyet, ahelyett hogy hossz nélkül hagyná az olvasót
Hozzáadva (Added)
- Az
AnsiFindDictKeyTokenmostantól azFPdfPdfCommoninterfész része felső szintű, elválasztó-tudatos szótárkulcs-keresésekhez - A Delphi, a Lazarus és a C++Builder tesztek mostantól lefedik a
/Length1megőrzését, az indirekt hossz helyettesítését és a stream-törzs méretegyezését
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.3 verziót jelentik
Version 2.57.2
Javítva (Fixed)
- A
SaveAsEncryptedés aSaveAsEncryptedToStreamRevision = erR6beállítással olyan dokumentumokat állított elő, amelyek nagyjából négy fájlból egyben elutasították a saját helyes jelszavukat, mert az ISO 32000-2 §7.6.4.3 2.B algoritmus körszámlálója eggyel alacsonyabban indult, és a plusz kör megváltoztatta a/U,/O,/UEés/OEértékeket - Az R6-tal titkosított dokumentumok mostantól bármely megfelelő olvasóban újranyithatók a felhasználói vagy tulajdonosi jelszóval, és továbbra is elutasítják a hibás jelszót
Hozzáadva (Added)
- A Lazarus és a C++Builder tesztkészletek olyan titkosítási lefedettséget kaptak, amely korábban Delphi-exkluzív volt: R6 kulcshosszak, Encrypt szótármezők, ismételt titkosítási és újranyitási oda-vissza út, valamint hibás jelszó elutasítása
Módosítva (Changed)
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.57.2 verziót jelentik
Version 2.57.1
Módosítva (Changed)
- Az űrlapmezőbe gépelés, a kurzor mozgatása és a jelölőnégyzetek átváltása mostantól csak azt a területet rajzolja újra, amelyet a PDFium sérültként jelent, a teljes megjelenítő helyett
- A sérüléstéglalapok a felfelé irányuló oldal Y tengelyhez normalizálódnak, egy pixellel kiszélesítve, hogy az élsimított widgetkeretek tiszták maradjanak, és a látható ügyfélterületre vágódnak
- A teljesen a nézetablakon kívül görgetett sérüléstéglalap többé nem ütemez újrarajzolást, míg egy inaktív nézet vagy le nem képezett oldal továbbra is teljes újrarajzolásra esik vissza
- A Delphi, a Lazarus és a C++Builder tesztek mostantól lefedik a korlátozott űrlap-érvénytelenítést, a tükrözött oldalboxokat, a képernyőn kívüli boxokat é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.57.1 verziót jelentik
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 a célállomások (destinations) mostantól feltárják 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 dokumentumvizsgálati pillanatképeket és engedélyleké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 feltárják a házirendet, a generálás időpontját és a nonce részleteit
Módosítva (Changed)
- A könyvjelző-, JavaScript-, metaadat-, célállomás- és bélyegkép-útvonalak érvényesített kétmenetes puffereket, geometrikus gyűjteménynövekedést és ciklusbiztos bejárást használnak
- A mentés utófeldolgozása az aktuális xref revízión keresztül oldja fel az aktív katalógust, az oldalfát és a nyitási műveletet, 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észszám-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 hozzá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 alapértelmezett nyitási művelet hozzáadásakor már nem választanak inaktív, duplikált katalógusokat vagy hibás formátumú hivatkozási utótagokat
- A hosszú formátumú DER-hosszakkal rendelkező időbélyeg-tokenek megőrzik a teljes kódolt tokent, miközben a hibás CMS opcionális mezősorrendek és az üres aláírókészletek elutasításra kerülnek
- A tiszta Delphi buildek mostantól igazítás-biztonságos bájtmásolásokon keresztül írják a PAdES nonce seed mezőket, és pontos natív mutatótípussal adják át az XFA válaszbájtokat
- A
TPdf.AboutInfo, a Lazarus csomag metaadatai és a telepítő metaadatai mostantól következetesen a Version 2.44.0 verziót jelentik
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 az elemzés után1..65535közé szorítja a portot; különben a túl nagy portérték aDWORDcsonkolása miatt átcsordulna, és akár érvényes portra is eshetne - Az XFDF
ParseFieldmostantól mélységparamétert fogad (alapértelmezetten 0, legfeljebb 64), és a határon üres mezőt ad vissza, így egy rosszindulatúan 100 000 szint mélyen egymásba ágyazott<field>lánc már nem tudja túlcsordítani a stacket
Javítva (Fixed)
- A TSA HTTP-kérés mostantól védekezik az üres kéréstörzs ellen, mielőtt a
@ReqDer[0]értéket átadná aWinHttpSendRequest-nek. A nulla hosszúságú dinamikus tömb dereferálása alap nélküli mutatót érne el; aBuildTimeStampReqmindig nem üres SEQUENCE-t ad vissza, de a hívási hely mostantól saját maga is megvédi ezt a szerződést
Megjegyzések (Notes)
- A
FPdfTsaWinfejlécben a HTTPS visszavonás-ellenőrzésről szóló megjegyzés javítva lett: a WinHttp alapértelmezés szerint ellenőrzi a kiszolgáló tanúsítványláncát, de nem végez CRL/OCSP visszavonás-ellenőrzést, hacsak azt kifejezetten nem engedélyezzük aWinHttpSetOptionsegítségével. A korábbi megfogalmazás azt állította, hogy a visszavonás-ellenőrzés “ingyen jár”, ami félrevezető volt
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 mostantól egyetlen közös keretbe foglalják a dokumentumkeresést, elfogadják azEnterésF3billentyűket a következő találatra, visszaállítják a keresési kontextust, ha az egyezési beállítások változnak, és azEsc-t a folyamatban lévő keresés vagy nyomtatási feladat megszakítására tartják fenn - A megjelenítők nyomtatása mostantól követi a megjelenítő aktuális forgatását, és ennek megfelelően választ álló vagy fekvő tájolást, így az eszköztárral beállított forgatás a kinyomtatott oldalakon is megjelenik
- Mindhárom
ViewerInteractionLabdemo támogatja aCtrl+A,Ctrl+C,Enter,F3ésEscgyorsbillentyűket anélkül, hogy elfogná a natív szerkesztővezérlők kijelölési és másolási parancsait
Javítva (Fixed)
- A C++Builder és Lazarus megjelenítők nyomtatásmegszakítása mostantól megszakítja a nyomtatófeladatot ahelyett, hogy benyújtaná a megszakítás előtt már kirajzolt oldalakat, a Lazarus pedig explicit módon kilép minden egymásba ágyazott másolat-, oldal- és szortírozási ciklusból
- A Delphi
MultiPageViewerMégse gombja mostantól csatlakozik a kezelőjéhez, a C++Builder/LazarusMultiPageViewerkeresőmezői pedig megtartják a natív nyíl-, Home- és End-billentyűs szerkesztést
Version 2.26.0
Módosítva (Changed)
- A
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnailés ezekTPdfViewmegfelelői mostantól a render lock birtokában hajtják végre aFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmaphívást, összhangban aRenderPage/RenderTilemetódusokkal. Ezek PDFium renderelői oldalú hívások, amelyek korábban lock nélkül futottak, és versenyezhettek ugyanazon dokumentum párhuzamosUnloadPage/ReloadPagehívásaival - A
TPdf.RenderPageThumbnailmostantól figyelembe veszi az oldal/Rotatebejegyzését:/Rotate 90vagy270oldalaknál az illesztést a forgatott méretekből számolja újra, így a bélyegkép képaránya azt tükrözi, amit a megjelenítő mutat, ahelyett hogy aFPDF_GetPageSizeByIndexáltal visszaadott belső (forgatatlan) méreteket használná
Javítva (Fixed)
- A
TPdfView.GetCharacterRectanglefigyelmen kívül hagyta aFPDFText_GetCharBoxvisszatérési értékét, és inicializálatlanTPdfRectangle-t adott át aPageToDevice-nek, ha a PDFium hibát jelzett. A négyszög mostantól nullákkal indul, a sikertelenGetCharBoxpedigRect(0,0,0,0)-t ad vissza - A
GetLinkAnnotationsURI-útvonalának és fájlelérési útjának pufferhossza eggyel eltért: a másodikFPDFAction_GetURIPath/GetFilePathhívás asizeértéket (amely tartalmazza a záró NUL-t) adta át pufferhosszként egysize-1méretre foglalt puffernek. A hívás mostantólsize-1-et ad át, így az olyan PDFium buildeknél sem írhat a lefoglalt területen túlra, amelyek nem clampelik le maguk a kimenetet
Version 2.25.0
Módosítva (Changed)
- A
TPdf.AddText,SetText,AddPathésInsertFormObjectFromXObjectmostantól érvényteleníti a gyorsítótárazott szövegoldalt és a linkannotációkat, mielőtt újragenerálja az oldal tartalmát, összhangban aSetTextPositionsésRemoveObjectmetódusokkal. Korábban az oldal szerkesztése utániGetText/GetWebLinks/FindFirsthívás a szerkesztés előtt rögzített, elavult szöveg- és linkadatokat adott vissza, és a megtartottFPDF_TEXTPAGEhandle a tartalom újragenerálása után is használatban maradt, ami nem definiált viselkedés - A
TPdfView.RenderPage(HDC, ...)mostantól megszerzi a render lockot, és azFPDF_RenderPagehívás körül maszkolja az FPU/SSE kivételeket, összhangban minden más renderelési belépési ponttal. A korábbi, közvetlen DC-re rajzoló overload versenyezhetett az ugyanazon dokumentumon párhuzamosan futóUnloadPage/ReloadPagehívásokkal, és a D12 előtti fordítókon maszkolatlanul hagyta az FPU kivételeket - A Delphi
PrintPDFdemo megszakításkor mostantólPrinter.Abort-ot hív ahelyett, hogy afinallyblokk elérné aPrinter.EndDoc-ot, ami benyújtotta a megszakítás előtt kirajzolt oldalakat. A Lazarus demo ezt már korábban is helyesen kezelte
Javítva (Fixed)
- A
TPdf.GetCharacter,TPdf.GetCharcodeés ezekTPdfViewmegfelelői az asztrális síkra eső kódpontokat (emoji, CJK Extension B) aFPDFText_GetUnicode-tólWideChar()-en keresztül az alsó 16 bitre csonkolták, ami magánosan álló helyettesítő karaktert (lone surrogate) eredményezett, és tönkretette a további szövegfeldolgozást. Az U+FFFF feletti karakterek mostantól U+FFFD-et (helyettesítő karakter) adnak vissza; az asztrális karakterek teljes UTF-16 kódolásához használja aGetTexthívást - A
GetWebLinksSetLength(Rectangles, FPDFLink_CountRects(...))-ot hívott anélkül, hogy a-1visszatérési érték ellen védekezett volna, ami hibás oldalonEOutOfMemorykivételt okozott. A negatív számot mostantól nullára szorítjuk le - A
TPdf.Destroymostantól a hivatkozásszámlált buffer felszabadítása előtt kitörli aPasswordsztringet a memóriából (UniqueString+FillCharsegítségével), így a jelszó a komponens megsemmisítése után nem marad olvashatóan a heapen
Version 2.24.0
Hozzáadva (Added)
- A
TPdf.DeletePage,GetAttachment,GetAttachmentName,GetAttachmentType,SetAttachmentésDeleteAttachmentmostantól ellenőrzi az oldal-/mellékletindexet, és tartományon kívüli érték eseténEPdfErrorkivételt vált ki, összhangban az annotáció-hozzáférők meglévő viselkedésével. Korábban a tartományon kívüli index egyenesen a PDFiumhoz került, és csendes no-op vagy nem definiált viselkedés lett az eredménye
Javítva (Fixed)
- Oldalobjektum-handle szivárgás hiba esetén a
TPdf.AddText,AddBitmapésAddJpegImagemetódusokban: ha aFPDFText_SetText,FPDFImageObj_SetBitmap,FPDFImageObj_SetMatrixvagyFPDFImageObj_LoadJpegFileInlinekivételt dobott, miután az objektum létrejött, de még mielőtt aFPDFPage_InsertObjectátadta volna az oldalnak, a natívFPDF_PAGEOBJECThandle szivárgott. Minden útvonal mostantól kivétel esetén megsemmisíti az objektumot, mielőtt újradobná a kivételt - A
TPdf.UnloadPageeldobta a folyamatban lévőFPathhandlet (amelyet aCreatePathállított be, de aAddPathmég nem vett át),nil-re állítva azt aFPDFPageObj_Destroymeghívása nélkül. A handle mostantól megsemmisül, így a létrehozott, majd eldobott (vagy oldalváltás által megszakított) útvonal nem szivárog többé - A
TPdf.InsertFormObjectFromXObjectkihagyta azUpdatePage(FPDFPage_GenerateContent) hívást, amelyet minden testvérbeszúrás (AddText/AddPath/AddBitmap/AddJpegImage/SetText/RemoveObject) elvégez, ezért az így beszúrt Form XObject eltűnt a következő újratöltéskor vagy mentéskor. AzUpdatePagemostantól a beszúrás után lefut
Version 2.23.0
Javítva (Fixed)
- Az opcionális tartalom
/BaseStateellenőrzése mostantól a/ONmellett elfogadja a/OFFértéket is (az ISO 32000-1 Table 8.70 mindkettőt megengedi). A korábbi ellenőrzés “malformed optional content” hibával utasította el a szabályos/OCProperties /D /BaseState /OFFkonfigurációkat, annak ellenére, hogy a fájl szabványkövető volt - Az opcionális tartalom
/Intentellenőrzése mostantól elfogadja a/Designértéket és az olyan névtömböket, mint a[/View /Design], nem csak a literális/Viewértéket. Az ISO 32000-1 Table 8.70 az/Intentértékét a/Viewés a/Designközül vett névként vagy névtömbként definiálja; a korábbi egyértékű ellenőrzés indokolatlanul sok szabványos szerkesztői kimenetet utasított el - A geospatial Measure szótár felismerése a PDF 1.7
/Extensions /ADBEExtensionLevel 3 kapunál mostantól nem követeli meg a/Type /Measurekulcsot, amelyet az ISO 32000-1 Table 254 opcionálisnak jelöl. A/Type-t elhagyó GeoPDF-generátorok (PDFBox, QGIS, FME) korábban kikerülték a kaput, és csendben nem szabványkövető PDF 1.7 kimenetet állítottak elő; a detektor mostantól önmagában a/Subtype /GEOpárosra illeszkedik
Version 2.22.0
Módosítva (Changed)
- A
TPdfViewfit zoom számításai (GetPageZoom,GetPageWidthZoom,GetPageHeightZoom) mostantól aClientWidth/ClientHeightértékeket használják az ablakWidth/Heighthelyett, így apfmFitPage/pfmFitWidth/pfmFitHeightmódok a látható viewport-hoz méretezik az oldalt a görgetősávokat és kereteket is tartalmazó külső ablakkeret helyett, ezzel megszüntetve azt a felesleges görgetősávot, amely akkor jelent meg, ha az illesztett oldal kicsivel nagyobb volt a kliensterületnél - Az
AddSignatureTimestampToCmsmostantól explicitExceptionkivételt dob, amely azonosítja az olvashatatlan CMS SignerInfo mezőt (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm), ahelyett hogy csendbenExit-tel kilépne, és a részleges értelmezés úgy folytatódna, mintha az teljes, aláírt CMS lenne; helyesbítésre került továbbá az opcionálissignedAttrs [0]ág körüli hiányzóbegin/endblokk is, amely miatt azR.Positionnem lépett előre
Javítva (Fixed)
- CNG privát kulcs handle szivárgás a
ResolveWinSigner-ben: ha aCryptAcquireCertificatePrivateKeysikerült, de a rákövetkező issuer/serial kinyerés vagy aTWinCmsSigner.Createkivételt dobott, aNCryptKeyHandlesoha nem szabadult fel, mert a tulajdonjoga csak a sikeres konstruktor esetén adódik át az aláírónak. A megszerzés utáni beállítás mostantól körbe van fogva, így bármilyen hiba esetén a handle előszörNCryptFreeObject-tel szabadul fel - Az
EcDsaP1363ToDermostantól elutasítja a csupa nullásrvagysfelet ahelyett, hogyINTEGER 0-t bocsátana ki; ar = 0vagys = 0értékű ECDSA aláírások érvénytelenek (az RFC 4754 §6 / FIPS 186-4 §6 szerint1 ≤ r, s ≤ n-1kell legyen), és egy megengedő ellenőrző egyébként hiteles aláírásként fogadná el őket
Version 2.21.12
Javítva (Fixed)
- Az explicit PDF 1.5–PDF 1.7 mentések mostantól elutasítják a hibás katalógus
/OCPropertiesstruktú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 típusú állapotbejegyzéseket
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)
- Az explicit PDF 1.3 mentések mostantól elutasítják az aktív metaadatfolyamokat, amelyek legalább PDF 1.4-et igényelnek, miközben megőrzik azokat a PDF 1.4–PDF 1.7 célok esetén
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)
- Minden Delphi, C++Builder és Lazarus megjelenítő példa megnyitja az első parancssori argumentumként átadott PDF-et, a C++Builder és Lazarus
MultiPageViewerpéldák pedig explicit mindent kijelöl és másol gyorsbillentyűket kapnak
Javítva (Fixed)
- A megjelenítő példák mostantól elutasítják az érvénytelen könyvjelző- és linkoldal-célokat, megőrzik a betöltési hibákat, következetesen ellenőrzik a kézi nagyítás bemenetét, a kért, űrlappal kitöltött oldalt nyomtatják a látható oldal ismételt kinyomtatása helyett, és a megszakított Delphi nyomtatási feladatokat leállítják a részleges kimenet benyújtása helyett
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)
- Az explicit PDF-verzió ellenőrzése mostantól követi az aktív klasszikus, hibrid vagy xref-folyam revízióláncot, a tömörített objektumbejegyzéseket is beleértve, így a felülírt, felszabadított és hivatkozás nélküli objektumok már nem okoznak téves funkcióverziós hibákat
Version 2.19.0
Módosítva (Changed)
- A C++Builder és Lazarus melléklet-, képkinyerési, szövegkinyerési, oldalátalakítási és felbontási példái mostantól dedikált kimeneti mappákat vagy biztonságosan lezárt fájlokat, stabil, nullákkal kiegészített neveket, reszponzív folyamatjelzéseket, valamint elemenkénti hibaszámokat is tartalmazó befejezési összefoglalókat használnak
Javítva (Fixed)
- A C++Builder
CJKTextLabmostantól az exportált PDFium szerkesztőfüggvényeken keresztül méri a szöveget, aMergePDFpedig elkerül egy félreérthető VCL üzenet-overloadot, amivel helyreálltak a tiszta RAD Studio 37 buildek
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 (Added)
- A
TPdf.ValidatePdfUamostantól a bájtszintű ellenőrzés fölé egy Pdfium objektummodell-alapú vizsgálati menetet épít, tükrözve a PDF/A round-7 architektúráját: minden oldal szövegobjektumain végigmegy aFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedúton (pvuaiPdfiumFontNotEmbedded, §7.21.4), és minden karaktert átvizsgál aFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) és aFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) segítségével — ez pontosabb, mint a bájtszintű heurisztikák, amelyek csak akkor lépnek működésbe, ha egyetlen fontprogram sincs jelen, vagy egyáltalán nem szerepel/ToUnicode. A bejárás három szinten rövidzár: az oldal-ciklus kilép, ha mindhárom Pdfium-rétegbeli probléma már be van állítva, az objektumonkénti ciklus az első nem beágyazott fontnál áll le, a karaktervizsgálat pedig kihagyja a.notdefmenetet, ha aUnicodeMapErrormár eltalált. A PDF/UA volt az utolsó PDF-szabvány-ellenőrző Pdfium objektummodell-réteg nélkül
Version 1.92.0
Hozzáadva (Added)
- Létrejött a
Tests.PdfR— az első tesztfájl a PDF/R-1 ellenőrzőhöz (FPdfPdfr), amely lefedi a fejléc ellenőrzését, az ObjStm tiltását, a raszterjelölők felismerését és egy tiszta fájlra vonatkozó, téves riasztást kizáró védelmet. Mind a hat PDF-szabvány tesztcsomag rendelkezik dedikált tesztfájllal: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = összesen 212 teszt
Version 1.91.0
Hozzáadva (Added)
- A
ValidatePdfEés aValidatePdfVTtartalomszintű ellenőrzéseket kapott, amelyek korábban csak a PDF/A, PDF/UA és PDF/X validátorokban érhetők el:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(csak PDF/E),pveiEmbeddedFilesForbidden(csak PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden. ATPdf.ValidatePdfEés aTPdf.ValidatePdfVTemellett egy Pdfium objektummodell-réteget is kap (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded), amely aFPDFFont_GetIsEmbeddedsegítségével járja be az oldal szövegobjektumait, és az első beágyazás nélküli fontnál leáll
Version 1.90.0
Hozzáadva (Added)
- A
TPdf.ValidatePdfXmostantól a bájtszintű vizsgáló fölé egy Pdfium objektummodellen alapuló menetet is ráilleszt: minden oldal szövegobjektumait aFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedlánc mentén járja be, és a beágyazás nélküli fontotpvxiPdfiumFontNotEmbeddedkóddal jelenti — ez pontosabb annál a bájtszintű heurisztikánál, amely csak akkor riaszt, ha egyetlen fontprogram sincs jelen. A bejárás az első megtalált beágyazás nélküli fontnál megáll
Módosítva (Changed)
TPdf.ValidatePdfUastruktúrfabejárás: az oldalankéntiValidatePdfUaPageContentTagginghívás (amely egy marked-content-ID állítástérképet épít, és minden szöveg-/képobjektumot keresztellenőriz) mostantól kimarad a további oldalakról, ha apvuaiUntaggedContentmár megtalálásra került — a struktúraelemeket továbbra is gyűjti a több oldalt átfogó ellenőrzésekhez (a Note egyedi azonosítója, a címsorok sorrendje), de a költséges oldalankénti tartalomcímkézési menet korán leáll
Version 1.89.0
Módosítva (Changed)
TPdf.ValidatePdfAPdfium objektummodell-rétegének teljesítménye: az oldal-/objektumbejárás mostantól három szinten is korán kilép — az oldalciklus akkor ér véget, ha az összes alkalmazható Pdfium-rétegbeli probléma már megvan, az objektumonkénti ciklus akkor, ha mindkét objektumonkénti probléma (font-beágyazás + átlátszóság) beállt, a szövegoldal karaktervizsgálata pedig kihagyja a.notdefmenetet, ha aUnicodeMapErrormár eltalálta. AzAssigned()API-elérhetőség-ellenőrzéseket és a konformancia-flaggeket a ciklus előtt egyszer lokális boolean változókba cache-eli a rendszer, ahelyett hogy minden oldalon/objektumnál/karakternél újra kiértékelnék őket. Egy nagy, nem konformáns dokumentum esetén a bejárás mostantól már az első oldal után leállhat az összes oldal átvizsgálása helyett; konformáns dokumentumnál az oldalankénti overhead kisebb (nincsenek ismétlődőAssignedhívások)
Version 1.88.0
Hozzáadva (Added)
- A
ValidatePdfXnyolc új tartalomszintűTPdfXValidationIssueértéket kapott, amelyek a PDF/X azon nyomtatási adatcsere-korlátozásait fedik le, amelyek a fájlformátum-jelzőkön túl is érvényesek:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(egyetlen oldalon sincs/TrimBox), valamintpvxiTrappedNotSet(a/Trappedhiányzik vagy/Unknown). A PDF/X validátor korábban csak az XMP/OutputIntent jelzőket vizsgálta; ez az első tartalomszintű menete. A közösPdfStructureBytes/PdfHasName/PdfCountNamesegédfüggvények azFPdfPdfCommonrészévé váltak, hogy minden konformancia-unit használhassa ő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 (Added)
- Új
TPdf.MeasureTextésTPdf.MeasureTextWidth: megmérik a szöveg kirajzolt szélességét és magasságát adott fontban és méretben, anélkül hogy tartalmat adnának az oldalhoz (PDF user unitban, ahol 1 unit = 1/72 inch), így layout-számítások és automatikus sortörés építhető azAddTextfölé; a különállóFPdfMeasureunit biztosítja, class helper formájában
Módosítva (Changed)
- A
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFésDemo\Lazarus\MergePDFmindhárom IDE-ben bővült: fájlankénti oldaltartomány-választás, opcionális kimeneti útvonal, duplikátumszűrés, futtatási napló, Mégse gomb és egyesítés-befejezés-összefoglaló került bele, a könyvjelzők és a metaadatok pedig importáláskor az első forrásról vihetők át - A
CreatePDFdemók mostantól mindhárom IDE-ben kínálnak egy “European Text” opciót ékezetes szöveg írásához cseh, francia, német, spanyol, portugál, lengyel és török nyelven, a fontválasztás és a Unicode-kezelés ellenőrzéséhez (a korábbiEuropeanTextpélda beolvadt) - Az
ExtractTextPagesésEuropeanTextpéldák eltávolításra kerültek: azExtractTextPagesoldalankénti szövegkimeneti képességét mostantól azExtractTextoldaltartomány- és oldal-elválasztó opciói fedik le; azEuropeanTexttöbbnyelvű szövegrenderelése aCreatePDF-be olvadt
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 PDFium Delphi Component 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 PDFium Delphi Component 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 (Added)
- A
ValidatePdfUamostantól az élő, megjelölt struktúrafát is bejárja, és három nagy biztonsággal azonosítható tartalomsértést jelent, amelyet a bájtszintű vizsgálat nem tud észlelni: olyanFigureelemet, amelynek nincs sem Alt bejegyzése, sem ActualText-je (ISO 14289-1, 7.3), olyanFormulaelemet, amelyből hiányzik az Alt attribútum (7.7), valamint olyanNoteelemet, amelynek nincs egyedi azonosítója (7.9). Mindezt három újTPdfUaValidationIssueérték jelzi:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltéspvuaiNoteMissingId. Címkézetlen dokumentumoknál a fabejárás kihagyásra kerül - Az új, publikus
ValidatePdfUaStructureElementssegédfüggvény ugyanezeket a struktúfafaszabályokat egy lapos elemlistára alkalmazza (olyanra, amilyet aTPdf.StructureElementsad vissza), így az ellenőrzések teljes dokumentum betöltése nélkül is futtathatók vagy unit-tesztelhető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
- PDF/VT (ISO 16612-2:2010) jelzőbeszúrás támogatása: a TPdf.SaveAsPdfVT az aktuális dokumentumot PDF/VT-1 vagy PDF/VT-2 konformáns fájllá emeli (a változó- és tranzakciónyomtatási PDF részhalmaza). A PDF/VT a PDF/X-4 tetején épül fel — az ISO 16612-2 §6.2.1 előírja, hogy minden PDF/VT-1 fájlnak a PDF/X-4-nek is meg kell felelnie — ezért a beszúró a teljes PDF/X-4 jelzőkészletet is kiírja (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)és/Trapped, a katalógusban/OutputIntents, amely beágyazott ICC profillal bíró OutputIntent szótárra hivatkozik) a PDF/VT-specifikus tulajdonságok mellett - A PDF/VT-specifikus beszúrás az XMP
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" vagy "PDF/VT-2", lásd §6.3 Table 2) és apdfvtid:GTS_PDFVTModDatemezőket fedi le (utóbbi azxmp:ModifyDateértékével szinkronban tartva, lásd §6.3 NOTE 1), plusz egy pdfaExtension:schemas leírás kerül be, amely deklarálja a pdfxid és a pdfvtid névteret is (NPES URI-k:http://www.npes.org/pdfx/ns/id/éshttp://www.npes.org/pdfvt/ns/id/). A trailer/IDtömböt kap - Új TPdf.SaveAsPdfVTToStream a memóriabeli PDF/VT kimenethez, továbbá egy alapbeállításokat használó rövidítés, a
TPdf.SaveAsPdfVT(FileName), amely PDF/VT-1-et állít elő a szállított sRGB IEC61966-2.1 OutputIntent profillal (3144 bytes, ugyanaz a profil, mint a SaveAsPdfA / SaveAsPdfX esetén) és/Trapped /Falseértékkel - Új TPdf.ValidatePdfVT: egy megnyitott PDF-en ellenőrzi a PDF/VT konformancia-jelzőket (XMP
pdfvtid:GTS_PDFVTVersionésGTS_PDFVTModDatemegléte, apdfvtid:GTS_PDFVTModDateés azxmp:ModifyDateegyezése, a mögöttespdfxid:GTS_PDFXVersionazonosító megléte, a katalógus/DPartRootelemének megléte a §6.5 szerint,/OutputIntents/DestOutputProfile-lal, trailer /ID, titkosítási állapot,xmp:CreateDate/ModifyDatemegléte), és TPdfVTValidationResult-t ad vissza a felismert konformanciaszinttel és a talált problémák halmazával - Új TPdf.PdfVTConformance property: az aktuálisan megnyitott dokumentum konformanciaszintjét adja vissza (pvc1, pvc2, pvcNone vagy pvcUnknown), anélkül hogy explicit módon meg kellene hívni a ValidatePdfVT-t
- Új típusok az új FPdfPdfvt unitban: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- A Document Part Hierarchy (a §6.5 szerinti
DPartRoot/DPartfa) alkalmazásszintű struktúra, amely a változóadat-nyomtatási munkafolyamat címzett-/oldaltartomány-leképezésétől függ. A SaveAsPdfVT NEM szintetizál DPart fát — a ValidatePdfVT a hiányzó/DPartRoot-tpvviMissingDPartRoot-ként jelzi, így a hívók a PDF/VT fájlokat egy külön DPart-építő lépésen vezethetik át. A tartalomszintű PDF/X-4 követelmények (font-beágyazás, átlátszóság, ICC-kezelt színek, OPI / JavaScript / Reference XObject tilalmak stb.) továbbra is a dokumentum szerzőjét és a PDFium renderelési futószalagját terhelik - A TPdf.AboutInfo sztring frissítve, hogy az aktuális termékváltozatot jelezze
Version 1.34.0
- PDF/R-1 (ISO 23504-1:2020) jelzőbeszúrás támogatása: a TPdf.SaveAsPdfR az aktuális dokumentumot PDF/R-1 konformáns fájllá emeli (a PDF szkennelt dokumentumokhoz használt raszterképes átviteli részhalmaza). A beszúrás azokra a fájlformátumszintű követelményekre terjed ki, amelyek utófeldolgozással csatolhatók — az egyedi
%PDF-raster-1.0verzióazonosító megjegyzésre, amelyet a trailer szótár és a startxref kulcsszó közé ír a program (§5), a §6.3 fehérlistára ritkított katalógus-szótárra (csak Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata marad), a §6.4.3 fehérlistára ritkított Document Information Dictionary-re (csak Creator / Producer / CreationDate / ModDate), a §6.4.4 Table 1 négy bejegyzését hordozó katalógus /Metadata XMP adatfolyamra (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate), valamint egy trailer /ID tömbre - Új TPdf.SaveAsPdfRToStream a memóriabeli PDF/R kimenethez, és egy alapbeállítású rövidítés, a
TPdf.SaveAsPdfR(FileName)a gyakori esetre - Új TPdf.ValidatePdfR: egy megnyitott PDF-en ellenőrzi a PDF/R-1 konformancia-jelzőket (a fájl végén álló
%PDF-raster-x.ymegjegyzés, fejléc-verzió, /Type /ObjStm hiánya, a katalógus fehérlista-megfelelése, az Info szótár fehérlista-megfelelése, XMP metaadat-adatfolyam megléte, trailer /ID), és TPdfRValidationResult-t ad vissza a felismert konformanciaszinttel és a talált problémák halmazával - Új TPdf.PdfRConformance property: az aktuálisan megnyitott dokumentum konformanciaszintjét adja vissza (prc1, prcNone vagy prcUnknown), anélkül hogy explicit módon meg kellene hívni a ValidatePdfR-t
- Új típusok az új FPdfPdfr unitban: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions. A
TPdfRSaveOptions.Defaulta StripInfoOptionalEntries és a StripCatalogOptionalEntries értékét True-ra állítja, így a beszúró alapból §6.3 / §6.4.3 szerint konformáns katalógust és Info szótárat ad; a hívók ezeket False-ra állítva megőrizhetik a forrásbejegyzéseket (a kimenet ilyenkor nem felel meg e PDF/R záradékoknak, de a többi jelző a helyén marad) - 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]alak (§6.5.3), szűrőkorlátozások (§6.2.2 — csak FlateDecode, CCITTFaxDecode bitonal, DCTDecode 8 bites gray/RGB), objektum-adatfolyamok hiánya (§6.2.4), valamint a §6.6 szerinti strip layout. Ezeket utófeldolgozással nem lehet kikényszeríteni — a PDF/R szerkezetileg jóval szigorúbb részhalmaz, mint a többi PDF/x szabvány, és megköveteli a forrásbájtok helyes előállítását. A ValidatePdfR azokat a fájlformátum-problémákat jelzi, amelyeket ez a unit észlelni tud; a teljes tartalomszintű ellenőrzéshez párosítsd egy TWAIN Working Group PDF/R validátorral - A TPdf.AboutInfo sztring frissítve, hogy az aktuális termékváltozatot jelezze
Version 1.33.0
- PDF/X (ISO 15930 család) jelzőbeszúrás támogatása: a TPdf.SaveAsPdfX az aktuális dokumentumot PDF/X-1a:2001, PDF/X-3:2002 vagy PDF/X-4 konformáns fájllá emeli, az alap PDF-et növekményes frissítéssel utófeldolgozva. A beszúrás azokra a fájlformátumszintű követelményekre terjed ki, amelyek utófeldolgozással csatolhatók — olyan XMP metaadat-adatfolyamra, amely a
pdfxid:GTS_PDFXVersion-t hordozza (PDF/X-1a / PDF/X-3 esetén apdfxid:GTS_PDFXConformance-t is), a hozzá tartozó pdfaExtension:schemas leírással, egy újraírt Document Information Dictionary-re/GTS_PDFXVersion,/GTS_PDFXConformanceés/Trappedbejegyzésekkel, egy frissített katalógusra/OutputIntents [N 0 R]hivatkozással, amely egy/S /GTS_PDFXtípusú, beágyazott ICC profillal bíró OutputIntent szótárra mutat, valamint egy trailer/IDtömbre - Új TPdf.SaveAsPdfXToStream a memóriabeli PDF/X kimenethez, és egy alapbeállítású rövidítés, a
TPdf.SaveAsPdfX(FileName), amely PDF/X-4-et állít elő a beépített sRGB IEC61966-2.1 OutputIntent profillal (3144 bytes, azonos a SaveAsPdfA által használt profillal) - Új TPdf.ValidatePdfX: egy megnyitott PDF-en ellenőrzi a PDF/X konformancia-jelzőket (XMP pdfxid azonosító és egyezése az Info szótárban tárolt értékkel, pdfxid kiterjesztésséma-leírás, /OutputIntents tömb /DestOutputProfile-fal, Title megléte, trailer /ID, titkosítási állapot, xmp:CreateDate / xmp:ModifyDate megléte), és TPdfXValidationResult-t ad vissza a felismert szinttel és a talált problémák halmazával
- Új TPdf.PdfXConformance property: az aktuálisan megnyitott dokumentum konformanciaszintjét adja vissza (pxc1a, pxc3, pxc4, pxcNone vagy pxcUnknown), anélkül hogy explicit módon meg kellene hívni a ValidatePdfX-t. A három konformanciaszint eldöntéséhez az XMP verziósztringet is értelmezi
- Új típusok az új FPdfPdfx unitban: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions. A
TPdfXSaveOptions.DefaultPDF/X-4-et céloz sRGB OutputIntenttel és/Trapped /Falseértékkel; aConformancefelülírható, kereskedelmi nyomdai munkafolyamatokhoz CMYKIccProfileDatablob adható, vagy azOutputCondition/OutputConditionIdentifier/RegistryNameértékekkel konkrét ICC karakterizációs registry-bejegyzés jelölhető ki (pl. FOGRA39, GRACoL2006_Coated1v2) - A tartalomszintű követelmények (minden font beágyazott, nincs JavaScript, nincsenek látható annotációk, OPI-tilalom, átlátszósági szabályok PDF/X-1a / PDF/X-3 esetén stb.) továbbra is a dokumentum szerzőjét és a PDFium renderelési futószalagját terhelik. A teljes konformancia-ellenőrzéshez párosítsd a ValidatePdfX-et egy preflight eszközzel, például a callas pdfaPilot-tal vagy a Ghent PDF Workgroup Output Suite-tal
- A TPdf.AboutInfo sztring frissítve, hogy az aktuális termékváltozatot jelezze
Version 1.32.0
- PDF/E-1 (ISO 24517-1:2008) jelzőbeszúrás támogatása: a TPdf.SaveAsPdfE az aktuális dokumentumot PDF/E-1 konformáns fájllá emeli, az alap PDF-et növekményes frissítéssel utófeldolgozva. A beszúrás azokra a fájlformátumszintű követelményekre terjed ki, amelyek utófeldolgozással csatolhatók — egy olyan XMP metaadat-adatfolyamra, amely a
pdfe:ISO_PDFEVersion = "PDF/E-1"értéket hordozza a hozzá tartozó pdfaExtension:schemas leírással, egy újraírt Document Information Dictionary-re az §5 által előírt kötelező/ISO_PDFEVersion (PDF/E-1)bejegyzéssel, az ISO 19005-1 §6.7-ből a §13.1 útján átvett Info-XMP összekötő blokkokra (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool), valamint a §6.2 által előírt trailer/IDtömbre - Új TPdf.SaveAsPdfEToStream a memóriabeli PDF/E kimenethez, és egy alapbeállítású rövidítés, a
TPdf.SaveAsPdfE(FileName)a gyakori esetre - Új TPdf.ValidatePdfE: egy megnyitott PDF-en ellenőrzi a PDF/E-1 konformancia-jelzőket (XMP pdfe:ISO_PDFEVersion megléte és egyezése az Info szótárban tárolt értékkel, pdfe kiterjesztésséma-leírás, Info-szótári /ISO_PDFEVersion bejegyzés, trailer /ID, xmp:CreateDate / xmp:ModifyDate megléte), és strukturált eredményt ad vissza a felismert konformanciaszinttel és a talált problémák halmazával
- Új TPdf.PdfEConformance property: az aktuálisan megnyitott dokumentum konformanciaszintjét adja vissza (pec1, pecNone vagy pecUnknown), anélkül hogy explicit módon meg kellene hívni a ValidatePdfE-t
- Új típusok az új FPdfPdfe unitban: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Az Info szótár újraírása a PDFium Delphi Component PDF/x utófeldolgozási útvonalán újdonságszámba megy — a meglévő Info objektumot ugyanazzal az objektumszámmal írja újra (így az xref alszakasz és a trailer /Info hivatkozása érvényes marad), és friss Info szótárat szintetizál, ha a forrás trailerében nincs /Info bejegyzés. A PDFium minden SaveAs kimenetbe tesz Info szótárat, így a tipikus eset az újraírási útvonal
- A tartalomszintű követelmények (font-beágyazás, ToUnicode CMap-ek, tiltott XObjectek / ExtGState kulcsok / XFA űrlapok stb.) továbbra is a dokumentum szerzőjét terhelik — a SaveAsPdfE a fájlformátum-jelzőket csatolja, de az oldal tartalmán nem változtat, és a tiltott funkciókat nem távolítja el
- A TPdf.AboutInfo sztring frissítve, hogy az aktuális termékváltozatot jelezze
Version 1.31.0
- PDF/UA-1 (ISO 14289-1:2014) jelzőbeszúrás támogatása: a TPdf.SaveAsPdfUa az aktuális dokumentumot PDF/UA-1 konformáns fájllá emeli, az alap PDF-et növekményes frissítéssel utófeldolgozva. A beszúrás azokra a fájlformátumszintű követelményekre terjed ki, amelyeket utófeldolgozással érvényesíteni lehet — egy olyan XMP metaadat-adatfolyamra, amely a
pdfuaid:part = 1értéket hordozza a hozzá tartozó pdfaExtension:schemas leírással, a köteleződc:title-re, a katalógus/MarkInfo << /Marked true /Suspects false >>és/ViewerPreferences << /DisplayDocTitle true >>bejegyzéseire (csak ha a forrásban egy sincs belőlük), a katalógus/Langelemére (ha a hívó BCP 47 taget ad meg), valamint egy trailer/IDtömbre - Új TPdf.SaveAsPdfUaToStream a memóriabeli PDF/UA kimenethez, és egy alapbeállítású rövidítés, a
TPdf.SaveAsPdfUa(FileName)a gyakori esetre - Új TPdf.ValidatePdfUa: egy megnyitott PDF-en ellenőrzi a PDF/UA-1 konformancia-jelzőket (StructTreeRoot létezése, /Lang, /MarkInfo /Marked true és /Suspects = false, /ViewerPreferences /DisplayDocTitle true, XMP pdfuaid:part azonosító, dc:title megléte, trailer /ID, titkosítási állapot), és strukturált eredményt ad vissza a felismert konformanciaszinttel és a talált problémák halmazával
- Új TPdf.PdfUaConformance property: az aktuálisan megnyitott dokumentum konformanciaszintjét adja vissza (puc1, pucNone vagy pucUnknown), anélkül hogy explicit módon meg kellene hívni a ValidatePdfUa-t
- Új típusok az új FPdfPdfua unitban: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- A TPdfUaSaveOptions-ban üresen hagyott Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language mezőket a FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage alapján automatikusan kitölti a rendszer, így a korábbi hívók egyetlen sorral menthetnek
- A tartalomszintű követelmények (a StructTreeRoot címkézés teljessége, a Figure Alt szövege, ToUnicode CMap-ek, font-beágyazás stb.) továbbra is a dokumentum szerzőjét terhelik — a SaveAsPdfUa a fájlformátum-jelzőket csatolja, de az oldal tartalmán nem változtat, és címkéket nem talál ki. A ValidatePdfUa a StructTreeRoot hiányát
pvuaiMissingStructTreeRoot-ként jelzi, így a címkézetlen dokumentumok egy külön címkézési futószalagon vezethetők át - A TPdf.AboutInfo sztring frissítve, hogy az aktuális termékváltozatot jelezze
Version 1.30.0
- A PDF/A-1b kimenet mostantól kielégíti az ISO 19005-1 (Cor.1:2007-nel) Document Information Dictionary / XMP egyenértékűségi követelményeit: minden Info szótári bejegyzést, amelyet a PDFium az alap PDF-be ír, tükröz az XMP csomagba, ideértve a Title (dc:title), Author (dc:creator), Subject (dc:description, Cor.1 szerint), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) és ModDate (xmp:ModifyDate) mezőket. Az xmp:MetadataDate is kiírásra kerül
- Egy PDF/A dokumentum trailerében mostantól mindig van /ID tömb (az ISO 19005-1 6.1.3 kemény követelménye). Ha a TPdf.SaveAsPdfA olyan dokumentumot dolgoz fel, amelynek forrásában már van fájlazonosító, a meglévő 16 bájtos permanens és változó ID-ket használja újra; egyébként determinisztikus 16 bájtos tartalék ID származtatása történik a forrásbájtokból
- A beszúrt XMP mostantól tartalmazza az ISO 19005-1 6.7.8 (amelyet a Cor.1 váltott fel) által előírt pdfaid kiterjesztésséma-leírást — a pdfaid az XMP Specification 2004-hez képest kiterjesztésként kezelt, ezért minden konformáns fájlnak deklarálnia kell a tulajdonságneveit, értéktípusait és kategóriáit a pdfaExtension:schemas konténerben
- A TPdfASaveOptions öt új opcionális mezőt kapott: Producer, CreationDate, ModDate (PDF dátumsztringek “D:YYYYMMDDHHmmSSOHH'mm'” formában), DocumentId és InstanceId (16 bájtos bájtsztringek a trailer /ID tömbjéhez). A TPdf.SaveAsPdfA / SaveAsPdfAToStream a hiányzó mezőket a FPDF_GetMetaText-ből és az FPDF_GetFileIdentifier-ből tölti ki automatikusan, így a korábbi hívók változtatás nélkül működnek tovább
- A TPdf.ValidatePdfA / TPdf.PdfAConformance mostantól három további problémát jelez: pvaiMissingTrailerId (nincs /ID a trailerben), pvaiMissingXmpDates (az xmp:CreateDate vagy az xmp:ModifyDate hiányzik) és pvaiMissingExtensionSchema (a pdfaid kiterjesztésséma-leírás hiányzik)
- A Title, Author, Subject, Keywords, Creator és Producer nem ASCII karaktereit az XMP csomag mostantól UTF-8ként kódolja (az XMP Specification UTF-8-at ír elő), így a többnyelvű metaadatok megőrződnek a SaveAsPdfA round-tripje során
- A TPdf.AboutInfo sztring frissítve, hogy az aktuális termékváltozatot jelezze
Version 1.29.0
- A szállított PDFium DLL-ek (Win32 és Win64, standard és V8 build egyaránt) frissültek a 2026-05-22-es upstream pillanatfelvételre, amivel megérkeznek a PDFium projekt FPDFText_SetText / FPDFText_SetCharcodes összeomlási útvonalakra vonatkozó javításai és különféle belső megerősítései
- A PDFium új FPDF_SUBSET_NEW_FONTS mentési flagje felületre került az FPdfPageOps.pas-ban, így az FPDF_SaveAsCopy hívók kérhetik az újonnan hozzáadott szövegobjektumok beágyazott fontfájljainak automatikus subsetelését. A meglévő FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL és FPDF_REMOVE_SECURITY konstansok mostantól az upstream bitshift formájában vannak definiálva (a korábbi 3-as numerikus érték bináris kompatibilitásból FPDF_REMOVE_SECURITY_DEPRECATED néven megmarad)
- Új FPDF_FONT_BACKEND_TYPE enum (FREETYPE / FONTATIONS) és a hozzá tartozó m_FontLibraryType mező az FPdfView.pas-beli FPDF_LIBRARY_CONFIG szerkezetén, így a PDFiumot a Skia rendererrel inicializáló alkalmazások mostantól indításkor választhatják ki a font backendet
- A TFPDFPage_InsertObject szignatúra frissült, hogy megfeleljen az upstreamnek: a C függvény mostantól FPDF_BOOL-t ad vissza void helyett (TRUE siker esetén, FALSE, ha a page_object NULL, vagy az ownership-átadás nem sikerül). A PDFium Delphi Component meglévő hívói változatlanul fordulnak tovább, mivel a Delphi / FPC megengedi a függvény visszatérési értékének figyelmen kívül hagyását
- A TPdf.AboutInfo sztring kijavítva, hogy az aktuális termékváltozatot jelezze (a v1.28.0-s, csak dokumentációs kiadás óta elavultan v1.27.0-t mutatott)
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
- PDF/A-1b előállítás támogatása: a TPdf.SaveAsPdfA bármilyen megnyitott dokumentumot PDF/A-1b konformáns fájlként ment el, az alap PDF-et egy olyan növekményes frissítéssel utófeldolgozva, amely egy XMP metaadat-adatfolyamot, egy sRGB ICC OutputIntentet és egy frissített dokumentumkatalógust szúr be — mindez extra DLL API-k nélkül. A PDFium Delphi Component által támogatott minden platformon működik
- Új TPdf.SaveAsPdfAToStream a memóriabeli PDF/A kimenethez
- Új TPdf.ValidatePdfA: egy megnyitott PDF-en ellenőrzi a PDF/A megfelelőséget (XMP pdfaid jelzők, beágyazott ICC profillal bíró OutputIntent, titkosítás), és strukturált eredményt ad vissza a felismert konformanciaszinttel és a konkrétan talált problémák halmazával
- Új TPdf.PdfAConformance property: az aktuálisan megnyitott dokumentum konformanciaszintjét adja vissza (pac1b, pac1a, pac2b, pac3b, pacNone vagy pacUnknown), anélkül hogy explicit módon meg kellene hívni a ValidatePdfA-t
- Új exportált típusok: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (az új FPdfPdfa.pas unitban)
- A SaveAsPdfA egyéni ICC profilt is elfogad a TPdfASaveOptions.IccProfileData mezőn keresztül; ha ez üresen marad, automatikusan a beépített sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes) profil kerül felhasználásra
- A monolitikus HTML referenciát átalakított webes súgórendszer váltotta fel: 302 különálló API-oldal (minden property, metódus, esemény és globális függvényhez egy-egy) a TPdf-et és a TPdfView-t fedve le, mindegyik teljes leírással, paramétertáblázattal, Delphi kódpéldával és See Also hivatkozásokkal
- Új Navigation.html: egy átfogó, egylapos API navigációs index, hat szakaszra rendezve (TPdf property/metódus/esemény, TPdfView property/metódus/esemény, globális függvények), 5 oszlopos flex griddel a gyors áttekintéshez
- A TPdf.html és a TPdfView.html kompakt komponensáttekintő oldalakként épült újra: megmaradtak a típusreferencia-szakaszok (Types, Constants, Global Variables), és minden tagnál az egyedi oldalakra linkelnek tovább
- Új, teljes szöveges keresés, amelyet a Search.js hajt, növekményes, kliensoldali illesztéssel mind a 312 indexelt oldalon
- Az összes navigációs sáv frissült, hogy a Navigation.html-ra mutasson
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
- A TPdf Form XObject alapú oldalújrahasznosítást kapott, amivel vízjeles, sablonráhelyetes és “egy oldal sok oldalra pecsételése” munkafolyamatok építhetők: a CreateXObjectFromPage bármely másik dokumentum oldalából gyárt újrahasznosítható handlert; az InsertFormObjectFromXObject a becsomagolt oldal EGY példányát szúrja be az aktuális oldalba. Visszaadja a beszúrt FPDF_PAGEOBJECT-et, így a hívó az FPDFPageObj_SetMatrix-szal és a v1.9.0-s TPdfMatrix segédekkel pozicionálhatja / méretezheti / forgathatja
- Az új TPdfXObject Pascal osztály becsomagolja a PDFium FPDF_XOBJECT handle-jét, és destruktorában automatikusan lezárja, így elhagyható a kézi FPDF_CloseXObject rutin
- A Delphi és a Lazarus regressziós csomagok egyaránt 147 esetre, a C++Builder csomag pedig 123 esetre bővültek; ezek lefedik a handle-létrehozás és az oldalobjektum-beszúrás kontraktusait
Version 1.24.0
- Új TPdf.RenderPageProgressive — a RenderPage megszakítható változata, amely a PDFium progresszív renderelési ciklusát hajtja, és az iterációk között lekérdezi a v1.7.0-s IPdfCancellationToken-t, így a hosszú, nagy DPI-s renderelések már az oldal közepén is megszakíthatók, ahelyett hogy a hívót a teljes befejezésig blokkolnák
- TPdfProgressiveStatus értékkel tér vissza: prsDone, prsCancelled vagy prsFailed. Ha AToken = nil-t adunk át, a renderelés megállás nélkül fut le a végéig (prsCancelled nem fordulhat elő)
- Ugyanazt a zero-copy gyorsutat használja, amelyet a v1.21.0 vezetett be — a PDFium közvetlenül a cél TBitmap DIB-jébe renderel. Ha a DIB-et nem lehet wrap-elni, ugyanaz a legacy fallback érvényesül, mint eddig
- A Delphi és Lazarus regressziós csomagok egyaránt 145, a C++Builder-csomag pedig 121 esetre bővült: nil token (befejeződik), előre megszakított token (prsCancelled), valamint pixelazonosság a szinkron RenderPage-pel élő token mellett
Version 1.23.0
- Hat új TPdfView metódus viszi az alkalmazásokhoz a PDFium form-widget szövegkijelölését és Undo/Redo működését: a GetSelectedFormText a fókuszban lévő form widgeten belül aktuálisan kijelölt szöveget adja vissza; a SelectAllFormText minden karaktert kijelöl; a FormUndo / FormRedo / FormCanUndo / FormCanRedo a fókuszban lévő widget szerkesztési előzményeit mozgatja. A mögöttes PDFium API-k már korábban is bekötve voltak, csak nem volt hozzájuk magas szintű belépési pont. Mind a hat metódus biztonságosan rövidzárlatol, ha a nézet inaktív, vagy a dokumentumban nincs fókuszban lévő AcroForm widget
- A Delphi és Lazarus regressziós csomagok egyaránt 142, a C++Builder-csomag pedig 119 esetre bővült, lefedve minden új metódus no-form-no-focus kontraktját
Version 1.22.0
- Oldalkomponáló wrapper-ek érkeztek a TPdf-be: az ImportPagesByIndex egy nulla alapú indexeket tartalmazó tömböt vesz át, és a forrásdokumentum adott oldalait másolja át; az ImportNPagesToOne egy vadon új TPdf-pel tér vissza, amelynek oldalai ennek a dokumentumnak N-up kompozitjai; a MovePages helyben rendezi át az oldalakat. A mögöttes PDFium API-k már korábban is bekötve voltak, nem létezett hozzájuk Pascal-barát belépési pont
- Az ImportPagesByIndex üres tömböt is elfogad, ilyenkor minden forráoldalt importál (C ABI szinten a nil átadásával egyenértékű)
- A Delphi és Lazarus regressziós csomagok egyaránt 136, a C++Builder-csomag pedig 115 esetre bővült: részhalmaz-import, teljes dokumentum importálása, oldalátrendezés és N-up kompozit
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
- Keresési találatok kiemelése érkezett a TPdfView-ba: a HighlightSearchText(Text, MatchCase, MatchWholeWord) átnézi az aktuális nézetoldalt, visszaadja a találatok számát, és minden újrarajzoláskor HighlightColor színű maszkot fest minden találatra. A ClearHighlight eltünteti a kiemeléseket; ha a nézet másik oldalra vált, automatikusan törlődnek, mert a találatok oldalhoz kötöttek
- A HighlightColor alapértelmezett értéke clYellow, és published tulajdonságként érhető el, így az alkalmazások a saját UI-palettájukhoz igazíthatják a kiemelés színét
- A Delphi és Lazarus regressziós csomagok egyaránt 129, a C++Builder-csomag pedig 109 esetre bővült: alapértelmezett szín, szín round-trip, “valódi fixture szavakra adott találatok” a sample.pdf stringen, valamint az “hiányzó szó nulla találatot ad” kontraktus
Version 1.19.0
- Új FitMode property a TPdfView-ban, négy értékkel: pfmNone (kézi nagyítás), pfmActualSize (100%), pfmFitPage (az egész oldal belefér a nézetablakba) és pfmFitWidth (az oldal szélessége egyezik a nézetablak szélességével). Az aktív illesztési mód Resize esetén és az aktuális oldal váltásakor automatikusan újraérvényesül, így a vegyes oldalméretű hosszú dokumentumok is tökéletesen keretezve maradnak
- A Zoom közvetlen beállítása feloldja az aktív illesztési módot (a FitMode visszaáll pfmNone-ra), ezzel követve a szabványos PDF-megjelenítők konvencióját, ahol zoomérték begépelésekor kilépünk a Fit Page / Fit Width módból
- Az alapértelmezett érték pfmNone, így a meglévő alkalmazások explicit nagyítási viselkedése változatlan marad
- A Delphi és Lazarus regressziós csomagok egyaránt 124, a C++Builder-csomag pedig 106 esetre bővült: alapértelmezett érték, mód round-trip, betöltött dokumentumon valódi zoomot adó fit-page, valamint a kézi zoom általi illesztési mód törlés
Version 1.18.0
- Új PageColor property a TPdfView-ban, amellyel a renderelt PDF-oldal háttere leválik a környező control Color beállításáról. Az alapértelmezett érték clWhite, így a PDF-oldalak mostantól papírfehérként renderelődnek, függetlenül a gazdaalkalmazás témájától. A sötét módban futó megjelenítők mostantól sötéten tarthatják a görgetési területet, miközben maga a PDF-oldal fehér (vagy bármilyen, az alkalmazás által választott) színű marad
- Viselkedésváltozás: aki eddig azért állította a TPdfView.Color-t, hogy átszínezze a PDF-oldalt, mostantól a PageColor-t állítsa helyette. A tipikus esetben (fehér oldalak témázott control háttereken) az alapélmény kódváltoztatás nélkül javul
- A Delphi és Lazarus regressziós csomagok egyaránt 120, a C++Builder-csomag pedig 103 esetre bővült: alapértelmezett érték és szín round-trip
Version 1.17.0
- Felhasználói bemenetet zároló kapcsolók érkeztek a TPdfView-ba, hogy a kioszkokba, előnézeti panelekbe vagy csak olvasható környezetbe épített megjelenítők subclassing nélkül is kikapcsolhassák a navigációs gesztusokat: az AllowUserPageChange az új PgUp / PgDn / Ctrl+Home / Ctrl+End gyorsbillentyűket vezérli; a ChangePageOnMouseScrolling az új, görgővel felfelé / lefelé való oldalugrást; az AllowUserTextSelection a jövőbeli, egérhúzásos szövegkijelölési útvonal számára van fenntartva. Mindhárom alapértéke True, így a meglévő alkalmazások viselkedésváltozás nélkül frissíthetnek
- Az egérgörgős oldalnavigáció kihagyja a Ctrl+görgőt, hogy az alkalmazások a Ctrl+görgőt továbbra is a nagyításnak tarthassák fenn
- A Delphi és Lazarus regressziós csomagok egyaránt 118, a C++Builder-csomag pedig 101 esetre bővült: alapértelmezett értékek és kapcsoló round-trip
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ítottuk a TPdfView linkkattintás-kezelését, így az automatikus annotáció- és weblink-műveletek a megjelenítő által éppen megjelenített oldalt használják, akkor is, ha a társított TPdf komponens épp egy másik oldalon áll
- A TPdfThumbnailView ellenállóbb lett a lógó (dangling) Pdf referenciákkal szemben, amikor a hozzákapcsolt TPdf komponens megsemmisül
- Új regressziós lefedettség a thumbnail-referencia élettartamára; a Delphi és Lazarus csomagok most egyaránt 113, a C++Builder pedig 98 esetet futtat
- A README, a tesztdokumentáció, a HTML Help keresési/index tartalma és a generált C++ csomagkimenetek szinkronizálva lettek 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
- Kattintásvezérelt linkkezelés érkezett a TPdfView-ba. Az új LinkOptions property a négy PDF linkakciótípus automatikus viselkedését vezérli: goto (oldalugrás), URI (ShellExecute), launch (ShellExecute) és a beágyazott GotoR (fenntartott). Alapértelmezetten a loAutoGoto és loAutoOpenURI engedélyezett; a loAutoLaunch és loAutoEmbeddedGoto kikapcsolva marad, hogy egy véletlen kattintás ne tudjon tetszőleges programot elindítani
- Új OnAnnotationLinkClick és OnWebLinkClick események, amelyek minden automatikus művelet előtt megszólalnak, és lehetővé teszik, hogy az alkalmazás megvizsgálja a linket, Handled-nek jelölje, vagy átirányítsa (például egy biztonsági figyelmeztetéshez)
- A linkkattintás észlelése csak akkor fut, ha a gesztus kattintás és nem húzás, és friss MouseDown horgonyt használ, így a panning gesztusok változatlanul a meglévő görgetési útvonalon folynak tovább
- A Delphi és Lazarus regressziós csomagok egyaránt 102, a C++Builder-csomag pedig 91 esetre bővült: alapértelmezett LinkOptions, halmaz round-trip és eseménykezelő-hozzárendelés
Version 1.11.0
- Vizuális csiszolás a TPdfView-on: a PageShadowSize, PageShadowColor és PageBorderColor property-k opcionális vetett árnyékot rajzolnak az oldaltéglalap alá, és egy pixel széles keretet körbe. Az alapértékek megtartják a korábbi lapos kinézetet (PageShadowSize = 0; a keret alapértelmezetten clBlack színnel rajzolódik, de beleolvad az alapértelmezett fehér háttérbe, amíg a hívó át nem állítja a színeket)
- Új SmoothScroll property, egy opt-in kapcsoló a jövőbeli, inkrementális görgetésanimációhoz; a property ma már round-tripel, és úgy van bekötve, hogy az alkalmazások el tudják menteni a beállítást, miközben a renderelési oldal továbbra is a meglévő, azonnali görgetést használja
- A Delphi és Lazarus regressziós csomagok egyaránt 98, a C++Builder-csomag pedig 89 esetre bővült: alapértelmezett értékek, property round-trip és a negatív árnyékméret clampelése
Version 1.10.0
- Közvetlen képbeszúrás az új TPdf.AddImage és TPdfView.AddImage overload-okon keresztül, amelyek fájlútvonalat vagy TBitmap-ot is elfogadnak, a meglévő, TPicture-alapú AddPicture mellett. Az AddImage(FileName) a VCL vagy LCL grafikus unitok által regisztrált bármely formátumot felismeri (BMP, PNG a PngImage uniton keresztül, JPG stb.), és ugyanarra a pipeline-ra fut, mint az AddPicture, így a viselkedés azonos
- Az AddImage(TBitmap) kihagyja a TPicture köztes réteget, ami leegyszerűsíti azoknak a hívóknak a dolgát, akik renderelésből vagy kötegelt generálásból már amúgy is TBitmap-ot tartanak a kézben
- A Delphi és Lazarus regressziós csomagok egyaránt 92, a C++Builder-csomag pedig 84 esetre bővült: bitmap beszúrás, page-object határok, nil bitmap elutasítása és BMP fájlbetöltés
Version 1.9.0
- Magas szintű transzformációs mátrix támogatás az új, FPdfMatrix unitban található TPdfMatrix osztály révén. A TPdfMatrix a PDFium FS_MATRIX-ját csomagolja OO API-ba Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew és Multiply metódusokkal, amelyekkel kényelmesen komponálhatók a transzformációk, mielőtt átadjuk őket az FPDFPageObj_SetMatrix és hasonló PDFium API-knak
- A TPdfMatrix.Multiply helyesen elmenti a hat mátrixelemet, mielőtt kiszámolná az új sorértékeket, ezzel javítva egy rejtett hibát, amelyben az alternatív Pascal-implementációk ugyanazon hívás során felülírják a korábbi elemeket, és a puszta translate-en túlmutató bármilyen kompozíciónál hibás eredményt adnak
- A Delphi és Lazarus regressziós csomagok egyaránt 88, a C++Builder-csomag pedig 81 esetre bővült: identitás, reset, translate / scale / flip, szorzás utáni kompozíciós sorrend, valamint a Multiply regressziós eset
Version 1.8.0
- Igény szerinti streambetöltés az új TPdf.LoadCustomDocument(AStream, AOwnsStream) metóduson és a TPdfStreamAdapter segédosztályon keresztül, amelyek a háttérben a PDFium FPDF_LoadCustomDocument-jára épülnek. A PDFium mostantól csak akkor olvas a megadott TStream-ből, amikor szüksége van rá, így a nagyon nagy vagy távoli PDF-ekhez már nem kell előre elkészíteni a memóriabeli másolatot
- Opcionális streamtulajdonlás: az AOwnsStream = True átadásával a TStream élettartama a TPdf-re száll át, amely az UnloadDocument lefutásakor felszabadítja
- A Delphi és Lazarus regressziós csomagok egyaránt 79, a C++Builder-csomag pedig 75 esetre bővült: streamelt betöltés TFileStream-mel, tulajdonolt stream takarítása, valamint annak kontraktusa, hogy a külső tulajdonlású stream túléli az unloadot
Version 1.7.0
- Kooperatív aszinkron megszakítási primitívek az új FPdfAsync unitban: elérhető az IPdfCancellationToken / IPdfCancellationTokenSource, valamint egy újrafelhasználható PdfNoCancellationToken singleton, hogy a hosszan futó renderelési és export munkafolyamatok támogathassák a tiszta, UI-ból indítható megszakítási szemantikát
- Egy könnyűsúlyú TPdfFuture<T> segéd is érkezett, amely workert futtat háttérszálon, és a TPdfFutureResult<T> borítékot visszajuttatja a főszálra, megkülönböztetve a sikert, a megszakítást és a hibát
- A Delphi és Lazarus regressziós csomagok egyaránt 76, a C++Builder-csomag pedig 73 esetre bővült, közös lefedettséggel a megszakítási állapot, az idempotens cancel, a callback fan-out és a cancel utáni regisztráció témakörén
Version 1.6.10
- Magas szintű TPdf.PrintPageRanges hozzáférés a PDF viewer preference nyomtatási oldaltartományához, amely az alkalmazáskód számára egy alapú indexelésű oldaltartományokat ad vissza
- Új TPdf.SetFormFieldFlags / SetFormFieldFlagsAt és a hozzájuk illő TPdfView segédek, hogy az alkalmazások a publikus API-n keresztül frissíthessék az AcroForm mezőinek flagjeit, a jelszó- és multi-select flag-ek lefedésével együtt
- Megszilárdult a PDFium binding ABI-lefedettsége a Windows-méretű FPDF_DWORD, az FPDF_FILEACCESS callback-ek és a V8 embedder slot mezők terén
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 PDFium Delphi Component 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