PDFium Delphi Component udgivelsesnoter
Versionshistorik for PDFium Delphi Component' brugervendte funktioner, rettelser, forbedringer af fremviseren, dokumentgenerering, PDF/A-output, rendering og dokumentationsopdateringer
Sidste udgivelse
- Sidste version: 3.117.0; Udgivelsesdato:
Version 3.117.0
Tilføjet (Added)
- Tabelgenkendelse læser kanter og skygge, der er tegnet som udfyldte rektangler: en udfyldt boks, der ikke er tykkere end den nye
MaxRulingThickness, bliver til en skillelinje, og en større udfyldt boks bidrager med sine kanter, så tabeller, der eksporteres fra Word, Google Docs og browsere, nu findes som linjegitter med flettede overskriftsrækker i stedet for whitespace-fragmenter.DetectFilledRulingsslår den adfærd fra - Skillelinjekoordinater snapper inden for
RulingSnapTolerance, før gitterne samles, hvilket forener kantstykker pr. celle, dobbelte kanter og skyggede celler, der er adskilt af et lille mellemrum, til én tabel - Skillelinjer inde i form XObjects tæller med i genkendelsen via de kombinerede objektmatricer, styret af
IncludeFormXObjects ExtractDocumentTableskæder continuation-fragmenter, der slutter, hvor sidens indhold slutter, og genoptages, hvor næste sides indhold starter (ikke kun fragmenter, der rører sidekanterne), og beholder en enkelt overløbsrække som en del af sin kæde- TableExtractionLab eksponerer
DetectFilledRulingsi sit indstillingspanel i Delphi-, Lazarus- og C++Builder-varianterne
Ændret (Changed)
- Whitespace-genkendelse ignorerer ord, der allerede hører til et linjegitter, og kræver, at hver kolonnegrænse er en korridor uden tekst hen over de rækker, den adskiller, så blokjusterede afsnit og punktlister ikke længere rapporteres som tabeller
- En continuation-kandidat, hvis første række er én celle over hele bredden, behandles som en ny tabel med overskrift i stedet for som resten af den forrige
MinRowsaccepterer 1 for linjegitter; whitespace-genkendelse beholder sit gulv på to rækker, og standardbudgettet forMaxRulingSegmentsstiger til 16384, fordi kantbokse pr. celle kommer i langt større antal end gitterlinjer tegnet som streger- Celletekst samles linje for linje ud fra overlappende word-bokse, så ord, hvis glyph-bokse har forskellig højde, beholder deres rækkefølge fra venstre mod højre
TPdf.AboutInfo, metadata for Lazarus-pakken og versionsmetadata i installationsprogrammet rapporterer 3.117.0
Version 3.116.4
Tilføjet (Added)
- TableExtractionLab får mappevis batchbehandling:
Batch folderkørerExtractDocumentTablesover alle PDF-filer i en valgt mappe, oplyser tabelantal pr. dokument, markerer dokumenter uden tekstlag til OCR og forhindrer, at beskadigede eller låste filer afbryder kørslen Export all CSVskriver hver fundne tabel som<document>-<n>-page<p>-t<i>.csv, ved batchkørsler under entables-undermappe og ved en enkelt fil ved siden af det indlæste dokument- En preset-vælger for detektion eksponerer tilpassede
TPdfTableExtractionOptions: Default, Compact columns (MinColumnGap4 medAlignmentTolerance5 til tætte eksporter fra tekstbehandling) og Compact + wide rows (MaxRowGapFactor6 til 1.5-2x linjeafstand) - Dokumenter, der ikke giver nogen tabel under Default-presettet, forsøges én gang ekstra med Compact columns, både ved ekstraktion af et enkelt dokument og i batch, og batch-rækkerne oplyser, hvilket preset der gav resultatet
Rettet (Fixed)
- Batch-ekstraktion åbner hvert dokument i sin egen
TPdf-instans i stedet for at genindlæse én delt komponent, hvilket fjerner stille indlæsningsfejl, der viste sig som fejl om inaktive komponenter midt i en mappekørsel
Ændret (Changed)
TPdf.AboutInfo, metadata for Lazarus-pakken og versionsmetadata i installationsprogrammet rapporterer 3.116.4
Version 3.116.3
Ændret (Changed)
- TableExtractionLab-demoen i alle tre toolchains skriver nu sit genererede eksempeldokument til
TableExtractionSample.pdfved siden af demoens eksekverbare fil i stedet for kun at holde det i hukommelsen; når mappen ikke er skrivbar, falder labbet tilbage til den tidligere in-memory-adfærd og rapporterer det i statuslinjen TPdf.AboutInfo, metadata for Lazarus-pakken og metadata i installationsprogrammet rapporterer 3.116.3
Version 3.116.2
Rettet (Fixed)
- Biblioteket holdt op med at kompilere på ældre Delphi-udgivelser. 64-bit tick-hjælperen og XML-codecene til trusted-list og production kaldte
GetTickCount64ogCP_UTF8fra RTL-units, som kun nyere compilere følger med, reflow HTML-writeren indlejrede en CSS-strengliteral ud over grænsen på 255 elementer, som disse compilere lægger på en enkelt literal, og XFA datasets-merge tildelte mellemTBytesog et almindeligt dynamisk array-felt, hvilket compilere før XE7 afviser. Ældre compilere binder nuGetTickCount64fra kernel32 og erklærerCP_UTF8lokalt, når RTL ikke gør det, stylesheetet leveres som sammensatte korte literaler, og packet-payload kopieres element for element
Ændret (Changed)
TPdf.AboutInfo, metadata for Lazarus-pakken og metadata i installationsprogrammet rapporterer 3.116.2
Version 3.116.1
Tilføjet (Added)
Demo\Delphi\TableExtractionLab,Demo\CBuilder\TableExtractionLabogDemo\Lazarus\TableExtractionLabgør tabelgenkendelse til én samlet arbejdsgang. Labbet bygger et eksempeldokument med en linjetabel med flettede overskriftsceller, en whitespace-justeret tabel uden linjer og en lang tabel, der bryder over en sidegrænse, kører derefterExtractTablesellerExtractDocumentTablesog oplyser rækker, kolonner, spans, overskriftsflag, detektionstilstand, confidence og continuation-grupper- Labbet eksporterer den valgte tabel via
TPdfTable.ToCsvogTPdfTable.ToJson, redigererDetectRuledTables,DetectWhitespaceTables,DetectContinuationsogMinConfidencefra indstillingspanelet og kopierer hele rapporten til udklipsholderen TPdf.AboutInfo, metadata for Lazarus-pakken og versionsmetadata i installationsprogrammet rapporterer 3.116.1
Version 3.114.21
Rettet (Fixed)
- PDF/A-validering rapporterede en ekstern filreference på alle dokumenter med en annotering. ISO 19005-1 §6.1.7 forbyder
/F,/FFilterog/FDecodeParmsi en stream-objektordbog, men kontrollen ledte efter disse navne i hele filen, og/Fer også annoteringsflagnøglen, som §6.5.3 kræver, at alle annoteringer bærer. Kontrollen ser nu kun inde i stream-objektordbøger
Version 3.114.20
Rettet (Fixed)
- RSASSA-PSS-signaturer bar fejldannede algoritmeparametre i alle tre signeringsbackends. RFC 4055 tagger alle fire felter i RSASSA-PSS-params; saltlængden blev skrevet som et bart heltal, som en parser læser som begyndelsen på et andet felt, og trailer-feltet blev skrevet med, selv om dets værdi svarer til den standardværdi, DER kræver udeladt. En verifikator kunne enten ikke parse parametrene eller faldt tilbage til standardsalten på 20 bytes, mens signaturen brugte 32, så PSS-signaturer blev afvist. PKCS#1 v1.5- og ECDSA-signaturer var ikke berørt
Version 3.114.19
Rettet (Fixed)
- Anmodning om et tidsstempel under et andet digest end SHA-256 byggede en request, der deklarede den pågældende algoritme, men bar et SHA-256-digest, hvilket en timestamp authority enten afviser eller, værre, tidsstempler, som det er. Der beregnes kun SHA-256, så enhver anden identifikator afvises nu kategorisk; en tom identifikator vælger stadig SHA-256 som standard. PDF Viewer-demoen til Lazarus og C++Builder bundtog også en bookmark-udvidelseshandler, som dens formularfil navngiver, men som koden ikke definerede, hvilket fejler, når formularen indlæses; handleren er porteret fra Delphi-demoen
Version 3.114.18
Rettet (Fixed)
- XFA Lab- og XFDF Lab-demoerne til Delphi samt XFA Lab-demoen til Lazarus fejlede ved opstart. Hver af dem bygger sine kontroller fra formularens create-handler, men formularressourcen hverken var til stede eller blev linket, så oprettelse af hovedformularen udløste en resource-not-found-fejl, og handleren blev aldrig kørt. Alle tre har nu formularfilen og det direktiv, der indlejrer den
Version 3.114.17
Rettet (Fixed)
- To native ressourcer blev håndteret forkert, når en operation fejlede undervejs. En fejlende thumbnail-rendering frigav mål-bitmappen, før den native rendering blev lukket, og når renderingen tegnede direkte i bitmappens egne pixels, læste nedtagningen derefter hukommelse, der allerede var frigivet. En fejlende bitmap-allokering i
AddBitmapefterlod det lige oprettede billedobjekt uden ejer og uden mulighed for at nå det igen
Version 3.114.16
Rettet (Fixed)
- Læsning af FDF-tekst gav de forkerte tegn over
0x7E. PDFDocEncoding-tabellen i ISO 32000-1 Annex D.2 begynder ved0x80med bullet-tegnet, men mappingen startede den ved0x7F, så hele blokken op til0x9Fvar forskudt én plads: et dolk-tegn blev læst som en bullet, en lang tankestreg som udeladelsespunkter og så videre ned til zcaron, som faldt helt ud af tabellen. Euroen ved0xA0manglede også og kom tilbage som et no-break space. Feltnavne og -værdier i importeret FDF afkodes nu korrekt
Version 3.114.15
Rettet (Fixed)
- Validering af trust på et dokument, hvis trailer eller katalog ikke kan læses, skrev forbi enden af et array. Compliance-gennemløbet opgiver i det tilfælde uden at registrere nogen signaturer, mens collectoren, der kører bagefter, arbejder direkte på byte-strømmen og stadig kan finde signaturordbøger, så der blev skrevet et element pr. fundet ordbog ind i et array uden plads til nogen. Antallet begrænses nu til, hvad compliance-gennemløbet leverede
Version 3.114.14
Rettet (Fixed)
- Udførelse af en PDF/A-reparationsplan anvendte trin, som planlæggeren havde blokeret. Et trin er blokeret, når dokumentet bærer signaturer, trinnet ville invalidere dem, og kalderen ikke tillod det; eksekveren testede kun trinnets sikkerhedsniveau, hvilket ikke udtrykker betingelsen, så et signeret dokument kunne få sine signaturer invalideret af en automatisk reparation, som planen allerede havde afvist. Blokerede trin springes nu over og tælles som sprunget over
Version 3.114.13
Rettet (Fixed)
- Tilføjelse af et signaturtidsstempel til en CMS-værdi, hvis certifikatsæt var større end 127 bytes - hvilket er alle rigtige certifikater - ødelagde resultatet. Hjælperen, der finder begyndelsen af en indlejret struktur, gik baglæns over længde-oktetterne og forvekslede den sidste med den første, så det udsnit, den skar, begyndte langt før den efterspurgte struktur. Header-længden udledes nu af indholdslængden, hvilket DER angiver utvetydigt. Selvtjekene overså det, fordi deres fixture-certifikater var små nok til at bruge kortformen
Version 3.114.12
Rettet (Fixed)
- Signerede attributter blev udsendt i den rækkefølge, de blev bygget i, i stedet for sorteret efter deres indkodninger, hvilket X.690 §11.6 kræver for en DER SET OF. En verifikator, der genindkoder attributsættet, før det digester - som både OpenSSL og BouncyCastle gør - beregnede derfor et andet digest og rapporterede en sund PAdES-signatur som ugyldig. Signaturer, som dette bibliotek producerer, verificeres nu i de stacks; validering gennem Windows-laget var ikke berørt, fordi den digester bytes, som de modtages
Version 3.114.11
Rettet (Fixed)
- En negativ DER INTEGER bredere end to indholdsbytes blev indkodet med forkert værdi. Skriveren emulerer et aritmetisk skift ved at genindsætte fortegnet efter et logisk skift, men masken, den brugte, satte alle bit over lav-byte i stedet for kun den byte, skiftet havde forladt, så størrelsen, som stadig lå i de resterende bytes, blev overskrevet. Værdien -100000 blev f.eks. indkodet som -34464. Noncer i timestamp-requests og alle andre fortegnstastede heltal af den størrelse indkodes nu korrekt
Version 3.114.10
Rettet (Fixed)
- PDF/A-validering rapporterede aldrig den konstante alpha-del af gennemsigtighedsreglen i ISO 19005-1 §6.4. Hjælperen bygger sin søgenøgle ved at sætte en solidus foran, og kalderen gav også en med, så den ledte efter
//CAog matchede intet. Begge alpha-kontroller accepterede kun teksterne1og1.0bogstaveligt, hvilket flaggede en helt uigennemsigtig/CA 1.00som en overtrædelse; en værdi på én genkendes nu uanset hvordan den er skrevet
Version 3.114.9
Rettet (Fixed)
- URI-handlingen på sideniveau returnerede ødelagt tekst. Stien kommer tilbage fra native-laget som UTF-8-bytes og blev skrevet direkte ind i en bred streng, som parer bytes til 16-bit kodeenheder og efterlader resten af bufferen med det hukommelsesindhold, der tilfældigvis var der.
GetPageActionURIafkoder nu bytes på samme måde, som handlingsstien på dokumentniveau allerede gjorde
Version 3.114.8
Sikkerhed (Security)
- På andre målplatforme end Windows kom de tilfældige bytes bag hver krypteringsnøgle, salt og initialiseringsvektor fra runtime-PRNG'en, hvis seed er en konstant, medmindre programmet kalder
Randomize. Hver proces producerede derfor den samme filkrypteringsnøgle, de samme/UE- og/OE-salte, de samme/Perms-bytes og de samme AES-GCM-noncer, hvilket gør krypteret output fra et Free Pascal-build på Linux eller macOS trivielt genopretteligt og gentager en GCM-nonce under en fast nøgle. Bytes kommer nu fra/dev/urandom, og en utilgængelig kernel-pool udløser en fejl i stedet for at falde tilbage, ligesom en utilgængeligCryptGenRandomallerede gjorde på Windows
Version 3.114.7
Rettet (Fixed)
- En misdannet object stream kunne få komprimerings- og reparationsindgangspunkterne til at læse forbi slutningen af den afkodede buffer. De medlemsforskydninger, en stream deklarerer, kontrolleres nu for interval og stigende rækkefølge, så snart headeren er parset, et deklareret antal medlemmer større end headeren kan rumme afvises, før der reserveres hukommelse, og hver medlems byte-interval valideres, før dets afsluttende whitespace beskæres frem for efter
Version 3.114.6
Rettet (Fixed)
- Eksternalisering af inline-billeder producerede et ubrugeligt image XObject. Ordbogen blev skrevet med en løs solidus før sin første nøgle, hvilket åbnede et tomt navn og flyttede hver nøgle over på den forrige nøgles værdi, og tabellen over inline-forkortelser mappede Decode til
Gi stedet forD, så et/D-array blev kastet væk, og DeviceGray-værdiforkortelsen blev taget for en nøgle. Billeder, der løftes ud af en content stream, har nu en velformet ordbog og beholder deres Decode-array
Version 3.114.5
Rettet (Fixed)
- HarfBuzz-shaperen tildelte cluster-længder til de forkerte glyffer i højre-mod-venstre-forløb og gav glyffer, der deler et cluster - såsom diakritiske tegn og ligaturkomponenter - længden ét. Hver glyfs
ClusterLengthspænder nu fra sit cluster-startpunkt til det næste cluster i logisk rækkefølge, i begge retninger, så tegn-til-glyf-mapping for arabisk og hebraisk tekst matcher, hvad Uniscribe-backenden rapporterer
Version 3.114.4
Rettet (Fixed)
- libcurl-tidsstempeltransporten gav sine numeriske indstillinger og læste HTTP-statuskoden som 32-bit-værdier, mens libcurl tager og returnerer en C
long, som er 64 bit på Linux og macOS. Statusforespørgslen kunne overskrive de fire bytes ved siden af sit mål på stakken, og indstillingsværdierne afhang af, hvad den øverste halvdel af registeret tilfældigt indeholdt. Begge bruger nu platformenslong-bredde, såFPdfTsaFpcer sund på LP64-mål
Version 3.114.3
Rettet (Fixed)
- PKCS#11-backenden kopierede de rå bytes af et token-objektlabel direkte ind i en streng, hvilket i Delphi lander UTF-8-bytes på UTF-16-kodeenheder. Et certifikat valgt gennem
TPdfPkcs11Options.CertificateLabelkunne derfor aldrig matche, ogEnumerateCertificatesrapporterede forvrængetLabelText. Labels afkodes nu som den UTF-8, standarden definerer, og den PIN, der gives tilC_Login, indkodes som UTF-8 i stedet for at blive snævret gennem værtens codepage, så en ikke-ASCII PIN når tokenet intakt
Version 3.114.2
Rettet (Fixed)
- macOS Keychain-signeren spurgte
SecKeyIsAlgorithmSupportedom den forkerte operation, når den skulle afgøre, om en nøgle accepterer RSASSA-PSS: forespørgslen nævnte decrypt-operationen i stedet for sign, så svaret var altid nej, og hver RSA-signatur faldt lydløst tilbage til PKCS#1 v1.5. En nøgle, der understøtter PSS, signerer nu med PSS, somTPadesSignerOptions.PaddingSchemeanmoder om, og operationsargumentet sendes med den bredde, frameworket deklarerer
Version 3.114.1
Rettet (Fixed)
- Indlejrede parentespar i højre-mod-venstre-tekst blev resolved til den forkerte retning. UAX #9-reglen BD16 behandler par i den rækkefølge, deres åbningsparenteser optræder i, og et par, der resolves af N0, bliver den foregående stærke kontekst for et par, der åbner bagefter; parrene blev i stedet behandlet i den rækkefølge, deres lukkeparenteser afsluttede dem, så et indre par kunne følge det bogstav, det omslutter, frem for den kontekst, det ydre par etablerede. Tekst som en arabisk eller hebraisk sætning med en parentetisk indsats med indlejret parentes layoutes nu, som en læser forventer
Version 3.114.0
Tilføjet (Added)
FPdfCryptoSslverificerer PDF-signaturer og tidsstempel-tokens gennem OpenSSL, hvilket lukker den sidste platformsgab i signaturvalidering: Linux havde slet ingen CMS-verifikationsbackend.ConfigureSslCmsVerifierinstallerer den, libcrypto resolves ved navn ved runtime, så intet linkes mod den, og både 1.1- og 3.x-serierne binder- Signaturen og certifikatkæden evalueres i separate gennemløb, så en sund signatur under en kæde, der ikke når en trust anchor, rapporteres som en gyldig signatur med ugyldig trust frem for som en brudt signatur
ConfigureSslTrustAnchorstilføjer DER trust anchors til systemlageret, ogConfigureSslCrlsleverer de CRL'er, en tilbagekaldskontrol kan konsultere. Tilbagekald tælles kun som kontrolleret, når en CRL faktisk er til stede, fordi OpenSSL selv henter ingen; uden nogen leveret rapporterer resultatet unsupported i stedet for at lade en ukontrolleret kæde passereSslAvailable,SslMissingSymbols,SslLibraryPath,SslLibraryVersionogSslAbiLayoutrapporterer, hvad der bundt og hvad der ikke gjorde, ogConfigureSslLibraryPathpeger backenden på et specifikt bibliotek, når platformens standarder ikke finder et
Version 3.113.0
Tilføjet (Added)
TPdfKeychainCmsVerifierverificerer PDF-signaturer og tidsstempel-tokens på macOS gennemCMSDecoderog SecTrust, så signaturvalidering ikke længere kun er for Windows.ConfigureKeychainCmsVerifierinstallerer den, og samme unit dækker nu begge halvdele af macOS-understøttelsen, ligesomFPdfCryptoWingør for Windows- Tilbagekaldskontrol honorereres: når det anmodes, kobles en tilbagekaldspolitik til den grundlæggende X.509-politik, og slukning af online-hentning begrænser evalueringen til cachede svar. Fremskridtskontrolpunkter udløses for signatur-, kæde-, online-hentnings- og tilbagekaldsfaserne præcis, som Windows-backenden rapporterer dem
KeychainVerificationAvailablerapporterer verifikationsunderstøttelse separat fra signering, da de to kræver forskellige framework-symboler, og den ene kan være til stede uden den anden
Version 3.112.0
Tilføjet (Added)
FPdfCryptoMacsignerer PAdES med en macOS Keychain-identitet, modstykket til Windows' certifikatlager: certifikatet og dets private nøgle kommer fra Keychain, og signaturen produceres afSecKeyCreateSignature, så nøglen aldrig forlader systemets keystore.ConfigureKeychainSignerProviderinstallerer den, og intet modul skal deployeres sammen med applikationen, som en PKCS#11-token-backend ville kræve- Signeren følger certifikatet: en EC-nøgle signerer ECDSA, en RSA-nøgle signerer RSASSA-PSS, og hvor PSS ikke er tilgængelig - et ældre macOS eller en nøgle, der ikke accepterer det - falder padding tilbage til PKCS#1 v1.5, og den udsendte AlgorithmIdentifier angiver det i stedet for at hævde PSS
KeychainMissingSymbolslister alle framework-symboler, der ikke kunne resolves, så en deployment, der rapporterer backenden utilgængelig, kan skelne et manglende framework fra et navn, denne binding har fået forkert
Version 3.111.0
Tilføjet (Added)
ConfigurePadesCmsVerifierinstallerer den CMS-verifikationsbackend, som PAdES-validatoren bruger, så signatur- og tidsstempelverifikation ikke længere er bundet til Windows.IPdfCmsVerifierdeklarerer de to operationer, en backend besvarer - detached for en PDF-signatur, attached for et tidsstempel-token - ogPadesCmsVerificationAvailablerapporterer, om nogen backend er til stede
Ændret (Changed)
- Verifikationsresultat- og option-records flyttede til
FPdfCryptosomTPdfCmsVerify*. NavneneTWinCmsVerify*består som aliasser, så eksisterende kode fortsætter med at virke, og en tilsluttet backend taler samme typer som Windows-udgaven - Windows-opførsel er uændret: uden installeret verifikator bruger den stadig CryptoAPI, og fremskridtskontrolpunkterne, tilbagekaldsindstillingerne og de native fejlkoder er de samme. Hvor ingen backend svarer, rapporterer hver kendelse unsupported i stedet for at efterlade noget ukontrolleret
Version 3.110.0
Tilføjet (Added)
FPdfPkcs11signerer PAdES med en nøgle, der bliver inde i et PKCS#11-token.ConfigurePkcs11SignerProviderinstallerer den som signeringsbackend, modulet indlæses ved runtime efter sti, så intet linkes, og samme kode betjener Windows, Linux og macOS. Den token-enumeration, som interfacetIPdfPkcs11SignerProviderdeklarerer, er implementeret ved siden af: slots, tokens og de certifikater, hver enkelt rummer- Signering uden for Windows kræver ikke længere en vært-leveret provider i det almindelige tilfælde: et token-modul plus
TPdfPkcs11Optionser nok. RSA PKCS#1 v1.5, RSASSA-PSS og ECDSA produceres alle gennem tokenet FPdfSha1tilføjer SHA-1 til ét formål: at matche et certifikat ud fra det thumbprint,TPadesSignerOptionsbærer. Windows resolvede det inde i certifikatlageret; et token giver certifikat-bytes tilbage og lader matchningen være op til kalderen. Det er ikke et signeringsdigest, og PAdES-stakken fortsætter med at signere SHA-256 hele vejen
Ændret (Changed)
- Certifikat-DER-hjælperne, der læser en public-key-algoritmes OID, udtrækker issuer og serienummer og genindpakker en rå ECDSA-signatur, flyttede fra Windows-backenden til
FPdfCms, hvor alle signeringsbackends kan nå dem
Version 3.109.0
Ændret (Changed)
- Den native biblioteksindlæser er ikke længere kun til Windows.
LibraryNameer som standardpdfium.dll,libpdfium.soellerlibpdfium.dylibafhængigt af målet, V8-buildet søges under det matchende navn, og indlæsning og symbolbinding går gennem den portable loader på Free Pascal. Windows-opførslen er uændret, herunder Win32- og Win64-deployment-layoutet og arkitektur-mismatch-diagnostikken - Deploymentsmapper på andre mål følger
<cpu>-<os>-stavemåden, som de kompilerede units allerede bruger, såDLLs/x86_64-linux/libpdfium.soligger ved siden afLib/FPC/x86_64-linux. Faldet tilbage på systemmappen forbliver kun til Windows; andre steder dækker loaderens søgesti det
Version 3.108.0
Tilføjet (Added)
TPdfHarfBuzzTextShapershaper tovejs- og kompleks-skrift-tekst på Free Pascal-mål, der ikke har Uniscribe. Den resolver embedding-niveauerne medFPdfBidi, segmenterer runs efter script, shaper hvert run med libharfbuzz og placerer runsene i visuel rækkefølge. Installer den medConfigureTextShaper; libharfbuzz findes ved runtime, ogHarfBuzzAvailablerapporterer ærligt, når den mangler- Shaperen enumererer ikke skrifttyper. Uniscribe læser fontens binærfil ud af en device context, som ikke har nogen portabel ækvivalent, så værten giver en
TPdfFontDataResolvermed, der mapper et skrifttypenavn til fontfilens bytes og holder den politik, hvor den hører hjemme
Version 3.107.0
Tilføjet (Added)
FPdfBidiimplementerer Unicode Bidirectional Algorithm (UAX #9) i ren Pascal:PdfResolveBidiLevelsreturnerer ét embedding-niveau pr. UTF-16-kodeenhed,PdfBidiVisualOrderanvender L2-omsorteringen, ogPdfBidiClassOfeksponerer Bidi_Class for et kodepunkt. Reglerne P2-P3, X1-X10, W1-W7, N0-N2, I1-I2 og L1-L2 er dækket, herunder isolate-initiatorer og BD16-parentespar- Uniten er compiler- og platformsnøutral, hvilket er det, der gør det muligt at layoute tovejstekst, hvor Uniscribe ikke er tilgængelig. En shaping-motor resolver glyffer for et run, hvis retning allerede er kendt, så det er dette stykke, der først skal beslutte retningen
Version 3.106.0
Tilføjet (Added)
ConfigureTextShaperinstallerer den tekst-shaping-backend, som hele biblioteket ruter gennem, medActiveTextShaper,ActiveTextShaperNameogClearTextShaperved siden af. BådeShapePdfTextogTPdf.AddShapedTextbruger nu den installerede shaper i stedet for at oprette en Uniscribe direkte, så en vært kan levere sin egen motor, og en test kan levere en deterministisk
Ændret (Changed)
FPdfTextShapingkompilerer på andre mål end Windows: Uniscribe-backenden er nu platformens standard frem for den eneste implementering, og den er begrænset til Windows-buildet. Hvor ingen backend er tilgængelig, rapporterer shaping-indgangspunkterne det i stedet for at fejle i kompilering
Version 3.105.1
Sikkerhed (Security)
- Et tidsstempelsvar er nu begrænset til 4 MB på begge transports. En TSA, der blev ved med at sende, kunne tidligere lade modtagebufferen vokse uden grænse og gøre et signeringskald til ubegrænset hukommelsesvækst
Version 3.105.0
Tilføjet (Added)
- RFC 3161-tidsstempling virker på Free Pascal-mål ud over Windows: den nye libcurl-backend poster TimeStampReq og læser TimeStampResp, så
PadesTsaAvailablerapporterer True, og PAdES B-T, B-LT og B-LTA kan hente tokens der. libcurl resolves ved runtime og er ikke en build-tidsafhængighed; når den mangler, rapporterer backenden unavailable præcis som WinHttp-udgaven. Windows fortsætter med at bruge WinHttp og er ikke berørt - Signering på disse mål kræver stadig nøglemateriale, som biblioteket ikke ejer: giv det gennem
ConfigurePadesSignerProvidermed enIPadesSignerProvider(ellerIPdfPkcs11SignerProvidertil token-baserede nøgler), daFPdfCryptoWinkun er til Windows
Version 3.104.1
Tilføjet (Added)
- XFA-inspektionslab-demoen er nu også tilgængelig til Lazarus, så XFA-kapabilitetsproberne, packet-listing, packet-eksport og
OnXfaRuntimeMissing-faldet tilbage kan afprøves fra LCL-buildet
Version 3.104.0
Ændret (Changed)
- Biblioteket kompilerer rent for undgåelige diagnostikker på Free Pascal 3.2: intern timing læser millisekund-tikken fra
GetTickCount64i stedet for det forældede 32-bit-kald, de forældede SSE control-word-accessors er erstattet afGetMXCSRogSetMXCSR, indholdsfingeraftrykkets offset-basis er typet eksplicit, så den ikke længere udløser en compile-time range check, og scanline-adresser sammenlignes som unsigned pointere, når en bitmap kontrolleres for top-down-layout
Version 3.103.1
Rettet (Fixed)
- Dokumentmetadata, der bæres ind i XMP, bevarer sine ikke-ASCII-tegn på Free Pascal: titler, forfattere, emner, nøgleord og skabernavne, der når
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRogSaveAsPdfVT, konverteres nu gennem strengens codepage i stedet for at blive kopieret byte for byte, så metadatapakken forbliver gyldig UTF-8, som ISO 19005-1 6.7.2 kræver, selv når værtsprogrammet ikke kører på en UTF-8-codepage - XFDF-eksport, round-trips af produktionsmetadata og parsing af trusted-list-XML bruger samme codepage-korrekte konvertering, så tekst, der bevæger sig mellem
TBytesogstring, ikke længere afhænger af værtens codepage
Version 3.103.0
Tilføjet (Added)
TPdfEuropeanTrustedListparser autentificerede europæiske trusted lists, genindlæser checksummede caches gennem samme autentifikator, accepterer kalder-leverede opdateringskilder, eksponerer aktuelle trust anchors og evaluerer kvalificerede signaturtjenester på et ønsket valideringstidspunktTPadesTrustValidationOptions.QualifiedTrustEvaluatoranvender en offline kvalificeret trust-politik på hver valideret signerer uden at tilføje netværksadgang til PAdES-validatoren
Version 3.102.0
Tilføjet (Added)
BeginIncrementalSaveogCommitIncrementalSavetilføjer nu autentificerede revisioner til AES-256-krypterede dokumenter, mens den oprindelige/Encrypt-reference, sikkerhedsparametrene, de præcise objektgenerationer og de tidligere bytes bevares
Ændret (Changed)
- Fil-commit-overloadet flusher nu holdbart og genåbner strengt en sidefil i samme mappe, verificerer dens revisionsgrænse og erstatter målet atomisk, mens sessionen rulles tilbage efter enhver fejl
Version 3.101.0
Ændret (Changed)
SaveAsRedactedbevarer nu sikre portioner af delvist krydsende tekst, rektangulære paths og akse-justerede billeder og fjerner derefter ressourcenavne, der ikke længere refereres af side-, Form XObject-, pattern-, appearance- og indlejrede resource-scopes
Version 3.100.0
Ændret (Changed)
OptimizeImagesvælger nu box-, bilinear-, bicubic-, Lanczos- eller bilevel-resampling ud fra skala, indholdsklasse, målt detaljeniveau og den kvalitet, kalderen beder om, med alpha-orienteret filtrering og et stramt budget for arbejdshukommelsen
Version 3.99.0
Tilføjet (Added)
GraftPdfAcroFormimporterer hierarkiske AcroForm-felter, widgets, appearances, beregningsrækkefølge, standardressourcer, handlinger og værdier gennem eksplicitte sidemappings og kollisionspolitikkerTPdfCrossDocumentGraftMapgenbruger importerede indirekte objekter ud fra kildeidentitet, mens cykler, delte referencer, præcise kildegenerationer og transaktionel fejlsementik bevares
Version 3.98.0
Tilføjet (Added)
TPdfOutlineEditoropretter, flytter, sletter, styler, udvider og retargeter outline-punkter, remapper eksplicitte destinationer gennem page-plan-resultater og tilføjer en uafhængigt verificeret inkrementel revision
Version 3.97.0
Tilføjet (Added)
TPdfTreeEditorlæser, validerer, opdaterer, balancerer, splitter, fusionerer, serialiserer og gemmer inkrementelt vilkårlige PDF NameTree- og NumberTree-strukturer, mens genbrugelige indirekte referencer og rå entry-værdier bevares
Version 3.96.0
Tilføjet (Added)
TPdfParserResourceBudgetleverer én trådsikker procespolitik for rekursion, tokens, objekter, afkodede bytes, ekspansionsforhold, allokering og deadlines på tværs af brugerdefinerede PDF-parsere, med uforanderlige snapshots pr. operation og konfigurerbare standarder
Version 3.95.0
Ændret (Changed)
ValidatePdfXvaliderer nu aktive PDF/X-ordbøger, metadata, output intents, skrifttyper, forbudte features, transparens, farverum og sidebokse gennem begrænsede sparse-læsninger på ukrypterede dokumenter med gyldig xref
Version 3.94.0
Ændret (Changed)
ValidatePdfRvaliderer nu aktive PDF/R-ordbøger, sider, billedfiltre, metadata og sidefodsmarkører gennem begrænsede sparse- og windowed-læsninger på ukrypterede dokumenter med gyldig xref
Version 3.93.0
Ændret (Changed)
ValidatePdfEvaliderer nu aktive PDF/E-ordbøger, metadata, output intents, formularer og forbudte features gennem begrænsede sparse-læsninger på dokumenter med gyldig xref
Version 3.92.0
Ændret (Changed)
ValidatePdfVTudfører nu avanceret analyse af recurring-XObject-scope, synlighed, indkapsling og indlejret Form-anvendelse gennem begrænsede sparse-læsninger på dokumenter med gyldig xref
Version 3.91.0
Tilføjet (Added)
TPdfSparseDictionaryReaderkan resolve et objekts aktive generation og afkode en direkte stream under en kalder-leveret bytegrænse
Ændret (Changed)
ValidatePdfVTbruger nu begrænsede sparse-læsninger til PDF/VT-metadata samt DPart-, OutputIntent-, Info-, side- og almindelige ordbogskontroller på den normale sti med gyldig xref
Version 3.90.0
Tilføjet (Added)
TPdfSparseDictionaryReaderholder ét sparse xref- og object-stream-indeks åbent for gentagne begrænsede læsninger af indirekte objektordbøger
Ændret (Changed)
InjectPdfVTMarkersvaliderer og bevarer nu et eksisterende PDF/VT DPart-hierarki med begrænsede kildelæsninger, mens misdannede hierarkier fortsætter gennem genopbygningsfallbacken
Version 3.89.0
Tilføjet (Added)
ReadPdfSparsePageDictionariesreturnerer sideobjekt-identiteter og begrænsede ordbogsbytes i page-tree-rækkefølge gennem det sparse objektindeks
Ændret (Changed)
InjectPdfVTMarkerssyntetiserer nu PDF/VT DPart-hierarkiet og tilføjer markørobjekter med begrænsede kildelæsninger, når den gemte PDF ikke allerede indeholder et DPart-hierarki
Version 3.88.0
Tilføjet (Added)
ReadPdfSparseCatalogSubDictlæser en direkte eller indirekte katalog-underordbog gennem det sparse objektindeks og bruges af PDF/UA-markørinjektion tilMarkInfoogViewerPreferences
Ændret (Changed)
InjectPdfUaMarkersresolver nu katalogetsMarkInfoogViewerPreferencesgennem sparse-opslag og tilføjer PDF/UA-revisionen med begrænsede kildelæsninger på den normale xref-sti
Version 3.87.0
Tilføjet (Added)
AppendPdfSparseUpdatestreamer én sparse revision ind på en gemt PDF: kildebytes ordret, kalder-leverede objektlegemer på registrerede forskydninger og en enkelt inkrementel xref/trailer-blok, der kædes gennem/PrevNormalizePageViewRectnormaliserer to mappede hjørner i siderum til det side-klemte synlige rektangel eller rapporterer, at intet af siden er synligt- PDF/E-markørinjektion syntetiserer et friskt Info-objekt med
/ISO_PDFEVersion, når kildedokumentet ikke har nogen Info-ordbog
Ændret (Changed)
- PDF/E-, PDF/X- og PDF/R-markørinjektion resolver nu katalog, Info og trailer gennem sparse-opslag og tilføjer revisioner gennem
AppendPdfSparseUpdatemed begrænsede kildelæsninger på den normale xref-sti - Form-fill-callbacken
FFI_GetPageViewRectrapporterer nu den del af siden, der faktisk er synlig i den tilknyttedeTPdfView, i stedet for altid hele sideboksen, med fald tilbage til sidedimensionerne for headless-dokumenter TPdf.AboutInfo, Lazarus-pakke-metadata og installer-metadata rapporterer nu konsistent Version 3.87.0
Rettet (Fixed)
- Kontrolpunkter for path-segmenter, som har været eksponeret siden
FPDFPath_GetBezierControlPoints-bindingen, blev aldrig udfyldt: den native eksport svarer kun for endpoint-indekset af hver kubik med tre indgange, så forespørgslen sker nu én gang pr. kurve, og alle tre indgange bærer kurvens kontrolpunkter
Version 3.86.0
Tilføjet (Added)
ReadPdfSparseRevisionInfoeksponerer begrænsede fakta om seneste revision, katalog, kryptering, dokument-ID og tagget struktur til stream-postprocessorerComposePdfSparseUpdateIdbevarer eller udleder dokumentidentifikatorer for inkrementelle opdateringer uden at materialisere den komplette kilde-PDF
Ændret (Changed)
InjectPdfAMarkersresolver nu kataloget og traileren gennem sparse-opslag, kopierer store input i begrænsede bidder og tilføjer PDF/A-revisionen uden at allokere et kildestort byte-array på den normale xref-sti- PDF/A-markørinjektion bevarer klassisk eller xref-stream-outputstil, katalog- og Info-generationer, trailer-identifikatorer, adfærd ved krypteringsnægtelse og Level A-nedgraderingsregler
Version 3.85.0
Tilføjet (Added)
SanitiseActiveContentPdfStreamaccepterer et kalder-ejet prune-workspace til brugerdefineret begrænset eller disk-baseret lager
Ændret (Changed)
- Sanitering af aktivt indhold opdaterer nu kataloget og traileren gennem sparse-opslag, begrænsede parser-vinduer og kopiering i fast størrelse i stedet for at læse den komplette PDF ind i ét byte-array på den normale xref-sti
TPdf.SaveAsSanitisedanvenderSaveMemoryLimitogSaveTemporaryDirectorypå sit prune-workspace og rapporterer dets spill-diagnostik
Rettet (Fixed)
StripMetadata=Truefjerner nu en trailer-/Info-reference, selv når kataloget ikke har nogen/Metadata-indgang
Version 3.84.0
Ændret (Changed)
TPdf.PdfVersiongenbruger nu PDFium parser-tilstand gennemFPDF_GetFileVersioni stedet for at reparsere den komplette kilde-PDF- Versionsforespørgsler læser højst den otte byte store PDF-header for at forhindre, at en misdannet katalogdeklaration nedgraderer den effektive version
Version 3.83.0
Ændret (Changed)
PageLabelledPdfStreamresolver og opdaterer nu kataloget gennem begrænsede stream-vinduer og det sparse lazy objektindeks- Page-label-output kopierer store kilde-PDF'er i intervaller af fast størrelse i stedet for at allokere et komplet dokument-byte-array på den normale xref-sti
Version 3.82.0
Ændret (Changed)
ApplyDefaultOpenActionlæser nu klassiske, xref-stream-, hybrid- og object-stream-revisioner gennem et sparse lazy objektindeks, herunder dokumenter med meget høje objektnumre- Behandling af default open action bruger vinduer i fast størrelse og begrænset interval-kopiering i stedet for at indlæse den komplette PDF i ét byte-array
Version 3.81.0
Tilføjet (Added)
PostProcessSavedPdfaccepterer tre kalder-ejede seekable workspaces til brugerdefinerede hukommelseslofter og disk-baseret behandling
Ændret (Changed)
TPdf.SaveAsanvenderSaveMemoryLimitogSaveTemporaryDirectorypå alle workspaces til post-processing af gemte PDF'er og medtager deres spills i diagnostikken- Native inkrementel xref-stream-reparation bruger hale- og ordbogsvinduer i fast størrelse med begrænset interval-kopiering i stedet for byte-arrays for hele filen og gentagne reallokeringer af hele filen
Version 3.80.0
Tilføjet (Added)
ReadAttachmentMetadataindfanger vedhæftningsnavne, beskrivelser, MIME-subtypes, afkodede størrelser og læsbarhed i én begrænset native enumerationExtractAttachmentsToStreamsskriver en batch til kalder-ejede streams med grænser pr. fil og samlede bytegrænser, konfigurerbare skrivechunks, annulering og resultater pr. element
Ændret (Changed)
- Batch-udtrækning beholder højst én afkodet vedhæftning i PDFiumPas-hukommelsen i stedet for at materialisere hver payload i batchen
Version 3.79.0
Tilføjet (Added)
TPdfCacheGovernor,TPdf.CacheBudgetBytes, forbrugsforespørgsler pr. kind og telemetri koordinerer tilbageholdt cache-hukommelse gennem ét trådsikkert globalt LRU-bytebudgetTPdfTileCacheog den procesvide systemskrifttype-cache kan tilsluttes en kalder-valgt governor med præcist regnskab for bitmap- og fontbytes
Ændret (Changed)
- Parsede page scenes, thumbnails, strukturerdata, tekst-snapshots og sideobjekt-snapshots konkurrerer nu under et standardbudget på 256 MiB i
TPdf, mens deres eksisterende grænser for antal entries bevares - Aktive page scenes forbliver fastgjort, indtil renderingen er fuldført, og uigennemsigtige native page scenes bruger en eksplicit estimeret belastning, fordi PDFium ikke eksponerer nogen konfigurerbar total-cache-byte-API
Version 3.78.0
Tilføjet (Added)
TPdfLayoutPagedPlan,TPdfLayoutDocument.BuildPagedPlanogTPdf.GeneratePagedLayoutstreamer layout-kommandoer ud i kalder-valgt seekable lager og materialiserer én side ad gangen
Ændret (Changed)
- Store genererede layouts kan spilde kommandoer ud i midlertidigt lager, holde en konfigurerbar LRU-sidecache, genoprette ikke-sammenhængende sidehoved- og sidefodsegmenter og frigive ombrydt tekst efter hvert flow-element
Version 3.77.0
Tilføjet (Added)
TPdfLayoutTable, rækker, celler og tabelindstillinger tilføjer tabeller på tværs af sider med resolvede gitterspor, billedtekster, gentagne hovedrækker, delbare brødtekstrækker, links og konfigurerbare kanter
Ændret (Changed)
- Genererede taggede tabeller bevarer én sammenhængende Table / TR / TH / TD-struktur på tværs af sider, holder række-spænde grupper atomare og knytter dataceller automatisk til hoved-ID'er
Version 3.76.0
Tilføjet (Added)
TPdfLayoutConstraintsogSetLastItemConstraintstilføjer keep-together, keep-with-next, fysisk page-break-before / after og konfigurerbar kontrol af widow / orphan-linjer til genererede layouts
Ændret (Changed)
BuildPlangenbruger hvert ombrydningstekstresultat til sideopdelingsforudsigelse og kommandoudsendelse, så keep-with-next ikke gentager tekstmålingen
Version 3.75.0
Tilføjet (Added)
TPdf.InspectPdfUaUnicodeCoveragerapporterer begrænsede beviser på objektniveau for direkte Unicode-mappings,ActualText-erstatninger, mappingsfejl, manglende Unicode-værdier og uoplossede kildeobjekter
Ændret (Changed)
TPdf.ValidatePdfUagenbruger nu én objekt-scopet tegnscanning, der ekskluderer Artifact- og genererede tegn og forhindrer, at ét tekstobjektsActualTextmaskerer tilstødende indhold
Version 3.74.0
Ændret (Changed)
ValidatePdfUaPageContentTaggingogTPdf.ValidatePdfUarapporterer nupvuaiArtifactInStructureTree, når et Artifact-sideobjekt gøres krav på af en strukturtræs-MCID, herunder path-baserede pagineringsartefakter- PDF/UA-scanning af sideindhold short-circuiter nu først, efter at både utagget ægte indhold og ugyldig Artifact-indeslutning er påvist, og bevarer dermed dækning på tværs af sider uden at gentage fuldførte kontroller
Version 3.73.0
Tilføjet (Added)
TPdf.InspectPdfUaLanguageCoveragerapporterer begrænsede sideobjekt- og strukturstreng-beviser for naturlige sprogspænd, herunder effektivt sprog, deklarationskilde, MCID, strukturindeks og tekstuddragResolvePdfUaEffectiveLanguageresolver marked-content-, nærmeste strukturforfader- og katalogsprogdeklarationer med eksplicitte gyldighedsbeviser
Ændret (Changed)
TPdf.ValidatePdfUarapporterer nupvuaiNaturalLanguageUncovered, når ikke-artefakt-tekst eller tilgængelighedsstrenge ikke har nogen gyldig effektiv/Lang-deklaration
Version 3.72.0
Tilføjet (Added)
TPdf.InspectPdfAMetadatarapporterer typede ækvivalensbeviser pr. felt for alle otte ISO 19005-1 Info-til-XMP-mappings, herunder eksplicitte tomme værdier og fejlede datoparsingerTPdf.NormalizePdfAMetadatareparerer kun mismatchede mappede XMP-egenskaber, mens urelaterede namespaces og ikke-standard sprogalternativer bevares
Ændret (Changed)
TPdf.ValidatePdfArapporterer nupvaiInfoXmpValueMismatch, når PDFium-afkodede Info-værdier adskiller sig fra korrekt typede XMP-værdier efter Unicode- eller tidszonebevidst datosammenligning
Version 3.71.0
Tilføjet (Added)
InspectPdfVT2sStreamreturnerer beviser for trykforhold for hver PDF/VT MIME-del, herunder OutputIntent-identitet, indlejret eller MIME-profiloprindelse, ICC-hashes og header-fakta samt DPart-side- og postantalFPdfIccProfileleverer begrænset ICC-header- og tagtabel-inspektion med understøttelse af MD5, SHA-256, farverum, version, device class, profil-ID og flersproget profilbeskrivelse
Ændret (Changed)
- PDF/VT-2s-validering resolver nu tidligere ICC MIME-vedhæftninger gennem
DestOutputProfileRef-URL-filspecifikationer og validererCheckSum,ICCVersion,ProfileCS,ProfileName, device class og tilladte procesfarverum - Alle PDF/VT-dele kræver nu én autoritativ
GTS_PDFXOutputIntent, indlejret eller ekstern profelpakning, der passer til PDF/X-basen, og samme karakteriserede tryktilstand, mens kun-PDF/X-vedhæftninger forbliver uden for PDF/VT-sammenligningerne - Validering af enkeltfils PDF/VT-2 genkender nu
DestOutputProfileRefsom en ekstern destinationsprofil i stedet for at rapportere den som manglende
Version 3.70.0
Ændret (Changed)
- PDF/VT-validering kontrollerer nu
GTS_Scope,GTS_XID,GTS_EnvogGTS_Encapsulateddirekte på hver XObject i stedet for at lade nærliggende eller indlejrede ordbøger tilfredsstille hint-kravene Record-scopet resolver nuRecordLevelfra den indirekteDPartRoot-ordbog, mensStream-scope afvises i PDF/VT-1-filer- Afkodede side- og Form XObject-content streams validerer nu
Do-ressourcesynlighed,SingleUse-forekomsttal og modtagerpost-ejerskab gennem effektive nedarvede ressourcer og DPart-hierarkiet - Indkapslede XObjects validerer nu boolsk form, anbefalet scope, Image-
Intent, isolerede transparensgrupper, blending-farverum og direkte eller indlejrede optional-content-afhængigheder
Version 3.69.0
Ændret (Changed)
- PAdES-validering afviser nu duplikerede
Contents-,ByteRange-,SubFilter-,Filter- ogType-indgange i stedet for at acceptere parserens valgte værdi - Signaturopdagelse bruger nu en stream-bevidst lineær ordbogsscanning, genkender escapede PDF-navne-tokens og kan ikke omdirigeres af en lukket indlejret ordbog, der er placeret før den rigtige
ByteRange - Validering af signaturens
ByteRangekræver nu, at det ekskluderede gap matcher det direkte hexadecimaleContents-token præcist, mens senere inkrementelle revisioner stadig tillades - Signaturordbøger kræver nu én navneværdi-
Filterog håndhæver konsistente kombinationer afSig- ellerDocTimeStamp-type og subfilter
Version 3.68.0
Tilføjet (Added)
TPdf.BuildPadesEvidenceReportkorrelerer PDFium-signaturfakta, CMS-politik, trust- og tidsstempelstatus, certifikatsti-hashes, DSS/VRI-dækning og senere revisionsbeslutninger for hver signaturTPadesEvidenceReporteksporterer begrænsede multi-signatur-beviser som JSON eller CSV og rapporterer kilde-, signatur-, DSS-, revisions- og afkortningstelemetri
Ændret (Changed)
- PAdES trust-validering registrerer nu SHA-256-identiteter for signeringscertifikatet og den ordnede Windows-certifikatsti, mens offline validering som standard bevares
- Bevisgenerering genbruger én tilbageholdt kildebyte-optagelse på tværs af compliance-, trust-, DSS- og revisionsanalyse i stedet for at kopiere den originale PDF ind i en ny stream for hver fase
Version 3.67.0
Tilføjet (Added)
TPadesSignatureFieldOptionsopretter konfigurerbare signaturfeltnavne, påkrævede seed-værdier, lister over årsager og juridiske attesteringer, acceptable signeringscertifikater og feltlåse- Lokal og fjernsignering kan udforme godkendelses- eller certificeringssignaturer med ISO 32000-1
FieldMDP- ogDocMDP-transformationer
Ændret (Changed)
- Certificeringssignaturer bevarer eksisterende katalogtilladelser, mens den nye signatur registreres gennem
/Perms /DocMDP
Version 3.66.0
Tilføjet (Added)
RenderPageBandedToStreamskriver PNG- eller TIFF-output direkte til en kalder-stream med konfigurerbar båndhøjde, PNG-komprimering og output-bytegrænserRenderPageBandedToEncoderføder sekventielle sidebånd til kalder-definerede codecs og returnerer bånd-, række-, hukommelses-, fuldførelses- og output-telemetri
Rettet (Fixed)
RenderPageBandedbevarer nu geometrien ved rendering af hele siden og beskærer hvert ønskede bånd i stedet for at omskalere hele siden ind i hvert bånd
Version 3.65.0
Tilføjet (Added)
TPdfParallelRenderReportrapporterer nu kildestørrelse, maksimal indfanget hukommelse, lagerbackend og delt backing-type
Ændret (Changed)
RenderPagesParalleldeler den indfangede kilde gennem uforanderlig hukommelse, en skrivebeskyttet fil-mapping ellerFPDF_LoadCustomDocumentrandom access i stedet for at allokere et ekstra byte-array i fulldokumentstørrelse- Spillede parallel-renderingskilder forbliver under
SaveMemoryLimitog kræver ikke længere, at den komplette PDF genindlæses i adresérbar proceshukommelse
Version 3.64.0
Tilføjet (Added)
ImportImposedhar nu en overload, der returnererTPdfImpositionExecutionReportmed native import, unikke kilder, tomme pladser, XObject-skabeloner, formularobjekter, indholdsgenerering og antal output-sider
Ændret (Changed)
- Imposition med nul-geometri sender hver ordnet kildeside gennem ét
FPDF_ImportPagesByIndex-kald, før tomme sider indsættes og native N-up-komposition køres - Imposition med brugerdefineret geometri genbruger én native XObject-skabelon pr. unik kildeside, læser cachede sidemålinger uden at ændre kildesiden og præallokerer præcist plan-lager
Version 3.63.0
Tilføjet (Added)
BeginPageObjectEditTransaction,CommitPageObjectEditTransactionogRollbackPageObjectEditTransactiongrupperer native sideobjekt-mutationer i en atomær, side-scopet batch med valideret snapshot-rollbackPageObjectEditTransactionStatusrapporterer den bundne side, dirty-tilstand, antal succesfulde mutationer og antal indholdsgenereringer
Ændret (Changed)
- Committede objektbatches kalder nu
FPDFPage_GenerateContentén gang i stedet for én gang pr. insert-, remove-, transform-, property-, mark-, annoteringsobjekt- eller appearance-mutation - Gemning, sideændringer, sletning af sider, indlejrede redigeringstransaktioner og fejlede native insert- eller annoteringsopdateringer afvises, før udskudt indhold kan gå tabt
Version 3.62.0
Tilføjet (Added)
ReadPageObjectsSnapshotindfanger kalder-ejede sideobjekt-fakta med objekt-, path-, clip-, mark-, tekst-, streng- og deadline-budgetterPageObjectsSnapshotleverer revisionsbevidst LRU-genbrug med konfigurerbar kapacitet samt occupancy-, hit- og miss-telemetri
Ændret (Changed)
PageComplexitygenbruger nu det uforanderlige sideobjekt-snapshot i stedet for at gentage native objekt-enumeration samt transparens-, path- og billedforespørgsler
Version 3.61.0
Tilføjet (Added)
TPdfeksponerer nu en samlet thumbnail-LRU for indlejrede og rendererede forhåndsvisninger med konfigurerbare entry- og byte-lofter plus hit-, miss-, eviction-, occupancy- og revisionstelemetriRenderPageThumbnailaccepterer rotation, renderingsindstillinger, baggrundsfarve ogTPdfColorScheme, mens kontrakten om kalder-ejet bitmap bevares
Ændret (Changed)
- Gentagen thumbnail-udtrækning og -rendering genbruger native PDFium-resultater gennem revisions-, side-, kilde-, størrelses-, rotations-, flags-, baggrunds- og farveskemanøgler, herunder cached fravær af valgfrie indlejrede thumbnails
TPdfThumbnailViewsynkroniserer sin bitmap-cache for den synlige side med dokumentets thumbnail-revisioner, så redigeringer ikke kan efterlade forældede forhåndsvisninger
Version 3.60.0
Tilføjet (Added)
ReadTextPageSnapshotindfanger Unicode, UTF-16-mappings, tegngeometri og -stil samt normaliseret tekstobjekt-metadata i ét gennemløb med eksplicitte tegn-, objekt-, skrifttypenavn- og deadline-budgetterTextPageSnapshotleverer dybe kalder-ejede kopier gennem en konfigurerbar, revisionsbevidst LRU med kapacitets-, antal-, hit- og miss-telemetri
Ændret (Changed)
GetStructuredTextogGetTextInReadingOrdermed fysisk layout genbruger nu det samme tekst-snapshot og anvender O(n log n) geometrisortering
Rettet (Fixed)
- Små tekst- og struktur-snapshot-caches evicter nu den ældste side, mens nye data gemmes under det ønskede sideindeks, hvilket forhindrer cross-page cache-aliasing
Version 3.59.0
Tilføjet (Added)
LifecycleActionPolicyvælger deaktiveret, kun-eksplicit eller kompatibel automatisk udførelse af PDF-dokument- og sidelivscyklushandlingerExecuteDocumentLifecycleActioneksponerer dokument-JavaScript-, open-, close-, save- og print-handlinger, mensExecutePageLifecycleActionkører side-open- og side-close-handlinger uden at ændrePageNumber
Ændret (Changed)
- Headless-sideindlæsninger modtager nu de samme automatiske side-open- og side-close-handlinger som viewer-drevne indlæsninger, med midlertidige sider genbrugt eller frigivet under render-låsen
Version 3.58.0
Tilføjet (Added)
ReadStructureElementsogVisitStructureElementsleverer iterativ gennemgang af tagget struktur med eksplicitte dybde-, element-, attribut- og tidsbudgetter plus detaljeret fuldførelsesstatusStructureElementsForPageeksponerer ét-baserede sidesnapshots uden at ændrePageNumber, bakket op af en konfigurerbar, revisionsbevidst LRU-cache med hit-, miss- og antalstelemetri
Ændret (Changed)
- Tilgængeligheds-, reflow-, validerings- og viewer-forbrugere genbruger nu kalder-ejede struktursnapshots, indtil en relevant dokument- eller sideredigering invaliderer dem
Version 3.57.0
Tilføjet (Added)
- Komplette native formularværts-callbacks leverer nu lifetime-sikre lazy side-handles, interaction-view cursor-routing, notifikation ved værdiændring, rektangler for markeret tekst, URI-hændelser og GoTo-destinationshændelser
FormHostCallbacksCompleterapporterer callback-klarhed, mensFormSelectionRectsogClearFormSelectionRectseksponerer begrænset markeringsgeometri i siderum
Rettet (Fixed)
- XFA current-page-callbacks oversætter nu korrekt mellem PDFiums nul-baserede sideindekser og komponentens ét-baserede
PageNumber - AcroForm- og XFA URI-callbacks bevarer nu rå URI-bytes og kræver eksplicit godkendelse fra værten før enhver ekstern opstart
Version 3.56.0
Tilføjet (Added)
- Indekserede
PageMetrics-snapshots eksponerer en sides dimensioner, rotation, label, transparens og fem standard sidebokse uden at ændre den aktive side
Ændret (Changed)
- Gentagne læsninger af sidemetadata genbruger en automatisk invalideret native snapshot-cache, hvilket reducerer sideåbninger i thumbnail-, preflight- og dokumentanalyse-arbejdsbelastninger
Version 3.55.0
Tilføjet (Added)
- Path-inspektion eksponerer præcise kubiske Bézier-kontrolpunkter, når det indlæste PDFium-build leverer
FPDFPath_GetBezierControlPoints, med en valgfri kapabilitetsprobe til ældre DLL'er FormFieldTypeAtPoint,TPdfView.FormFieldTypeAtog indekseredeFontFlags-egenskaber eksponerer native formular- og skrifttypefakta uden rå handlesTPdf.Signaturesreturnerer alt indhold af native signaturer, ByteRanges, subfiltre, årsager, tidspunkter og tilladelser i ét kalder-ejet snapshot
Ændret (Changed)
- Kontroller af formularfelts tilstedeværelse bruger nu direkte native punkt-hit-testing i stedet for at åbne og lukke annoteringshandles
Rettet (Fixed)
- PDF/E-1-validering tillader nu almindelige AcroForm-felter, indlejrede filer og FileAttachment-annoteringer, mens top-niveau AcroForm
/XFAog/NeedAppearances truerapporteres præcist, herunder indirekte og object-stream-værdier
Version 3.54.0
Tilføjet (Added)
FPdfProductiontilføjer målt valg af billeder på tværs af codecs, backends til farve- og skrifttypebehandling, SVG-stier, stylede erstatningsplaner, transaktionelle XFA-pakkeopdateringer, stregkodevektorer, Portfolio-modeller og sikker RichMedia-udtrækningFPdfStandardsExecutiontilføjer målings- og GeoPDF-konvertering, transaktionel PDF/A-reparation, PDF/UA-2-planer, eksterne multifarve-profiler, historiske DSS- og VRI-beviser, DPart-forespørgsler, dybdegående PDF/E-fakta og PDF/R-striber med fast hukommelseTPdf.ImportImposedkomponerer afgrænsede N-up- og hæfteplaner gennem native N-up- eller side-XObject-stier med præcis gutter-, bleed- og creep-geometri, mensTPdf.CompareWithrapporterer semantiske, geometriske og tolerante pixelforskelle- PAdES-signering understøtter nu indstiksbare sti-validatorer og HSM-providers, PDF MAC vedhæftet signaturen,
cms-algorithm-protectionog offline signaturpolitik-dokumenter
Ændret (Changed)
- Layoutmotoren accepterer afgrænset HTML og Markdown, flyder på tværs af kolonner og resolver faste, automatiske og fraktionelle gitterspor
- XFDF-rundture bevarer nu multiværdi- og rich-text-felter, popups, handlinger, destinationer, udseende-overlays, brugerdefinerede namespaces og eksplicit tilstandsstatus
Version 3.53.0
Tilføjet (Added)
ConfigurePdfLibraryleverer uforanderlig native konfiguration af renderer, skrifttype, V8, Brotli, bruger-skrifttypesti og sandbox før den første PDFium-indlæsning- Native strukturattributter, annoteringsrelationer, annoteringsfilvedhæftninger, typede ordbogsværdier, fokuspolitikker, link- og formular-z-orden-forespørgsler samt standard TTF-mapping-diagnostik er tilgængelige gennem afgrænsede high-level API'er
TPdfView.ReplaceFormTextAndKeepSelectionbevarer den aktive markering på tværs af gentagne redigeringer, og release-hændelser fra højre knap når nu den native formulamotor
Ændret (Changed)
- Deterministisk dokumenttid bruger nu en stabil UTC-kalenderkonvertering ud over den faste epoke og producerer de samme metadata i alle værtstidszoner
- Skrivning af vedhæftningsstrenge validerer det native resultat og koder ordbogsnøgler som UTF-8
Version 3.52.0
Tilføjet (Added)
TPdf.GetImageObjectRenderedBitmapreturnerer et billedobjekts renderede resultat med dets aktuelle matrix, farverum, masker og renderingstilstand anvendtTPdf.TextObjectGlyphWidth,TPdf.TextObjectFontSizeogTPdf.SetTextObjectFontSizeeksponerer native glyf-måling og præcis redigering af tekstobjektets skriftstørrelseTPdf.TransformPageObjectClipPath,TPdf.DetachFormObjectChild,TPdf.SharePageObjectMarkogTPdf.IsAnnotationObjectSubtypeSupportedtilføjer præcis redigering af indholdsobjekter og kapabilitetsinspektion
Version 3.51.0
Rettet (Fixed)
- Otte
TPdf-medlemmer, som tidligere udgivelsesnoter annoncerede, var erklæret i den private sektion og kunne ikke kaldes uden forPDFium-enheden; de er nu offentlige som dokumenteret:LinkAtPoint,GetTextRenderMode,GetTextObjectRenderedBitmap,IsAnnotationSubtypeSupported,ChooseRenderFlags,AttachmentHasKey,GetAttachmentStringValueogSetAttachmentStringValue
Ændret (Changed)
- Den engelske referencedokumentation dækker nu alle offentlige medlemmer af
TPdfogTPdfView: 88 medlemmer, der ikke havde nogen referenceside, har fået en, og klassesiderne, navigationsindekset og API-referencen viser dem alle - Referencesider, der tidligere pegede på en delt side, linker nu til siden for selve medlemmet, så et søgeresultat åbner beskrivelsen af den API, der blev søgt efter
- API-referencen dokumenterer de enums og records, der kan nås fra offentlige signaturer, herunder indlæsnings- og streamrapportering, tekst-, skrifttype- og OCR-typer, layoutbygger-typer, PAdES-valideringstyper, batch- og valideringstyper samt parallelle renderingstyper
Version 3.50.0
Tilføjet (Added)
- Hver GUI-demo åbner nu med klar-til-brug indhold i stedet for en tom formular: viewer- og lab-demoer indlæser et genereret eksempeldokument, rapport-demoer producerer en færdig rapport ved opstart, og processor-demoer forgenererer eksempelinput, så hovedhandlingen kører med ét klik
MultiPageViewer,SplitViewogFontPropertiesgenererer eksempeldokumenter i hukommelsen ved opstart (en seks siders præsentation, to side-om-side sammenligningsdokumenter og en side med flere skrifttyper til klik-og-undersøg)- Processor-demoer såsom
MergePDF,BatchExport,SplitPDF,ExtractText,PDFtoJpg,PrintPDFogPrintPreferencesforgenererer eksempel-PDF'er ved siden af den eksekverbare fil og forudfylder deres inputkontroller, med idempotent regenerering der aldrig overskriver eksisterende filer FormFillogExtractImagesindlæser automatisk de eksempelfiler der følger med deres demo-mapper,ImageToPDFgenererer to eksempel-bitmaps,WatermarkStampforudbygger sine stempel-eksempler, ogXfdfLabåbner på et genereret dokument med tekst- og fremhævelsesannotationer
Ændret (Changed)
CreatePDFgenererer nuSample.pdfved siden af den eksekverbare fil ved opstart uden at vise en dialog, så dokumentet findes i det øjeblik demoet åbnerTPdf.AboutInfoog installationsmetadata rapporterer nu ensartet Version 3.50.0
Version 3.49.0
Tilføjet (Added)
FORM_GetTextDirectionogFORM_SetTextDirectionfra de opdaterede PDFium-binære filer er nu bundet, hvilket holder det dynamiske bindingslag på fuld dækning af alle 472 PDFium-eksporterTPdf.FocusedFormFieldTextDirectionogTPdf.SetFocusedFormFieldTextDirectioneksponerer den fokuserede widgets tekstretning i hukommelsen gennem den nyeTPdfFormTextDirection-enum (ftdUnknown,ftdAuto,ftdLTR,ftdRTL), medTPdfView-modstykker der gentegner sidescenen efter en retningsændring
Ændret (Changed)
FPDF_LIBRARY_CONFIGafspejler nu upstream version 6-layoutet med det eksperimentellem_BrotliEnabled-felt til binære filer bygget medPDF_ENABLE_BROTLITPdf.AboutInfo, Lazarus-pakkemetadata og installationsmetadata rapporterer nu ensartet Version 3.49.0
Version 3.48.0
Tilføjet (Added)
PDFViewer-demoet genererer nu et seks siders præsentationsdokument i hukommelsen ved opstart ved hjælp af creations-API'et, så fremviseren åbner med renderet indhold og ingen eksempelfil på disken- Et miniaturepanel bygget på
TPdfThumbnailViewgiver sideforhåndsvisninger med klik-navigation ved siden af bogmærketræet i alle tre demoporte - Fremviserens søgning fremhæver nu hvert enkelt resultat på den aktuelle side via
HighlightSearchTexti stedet for et enkelt resultatrektangel, og antallet af resultater vises i statuslinjen - Værktøjslinjeknapperne
Nightog2-Upslår med ét klik natt-duotone-renderingstilstanden og visningstilstanden med to side om side liggende sider til og fra
Ændret (Changed)
- Tekstmarkeringen i fremviseren bruger nu den indbyggede markeringsmotor i
TPdfViewmed ordmarkering ved dobbeltklik, trækmarkering og udklipsholder-genveje, som erstatter den håndskrevne markeringskode - Siderne renderes nu med slagskygge og blød rulning for en moderne læseoplevelse
TPdf.AboutInfoog installationsmetadata rapporterer nu ensartet Version 3.48.0
Version 3.47.0
Tilføjet (Added)
FPdfBenchmarkkører afgrænsede PDF-korpora med konfigurerbar opvarmning og målte gennemløb, side- og pixelgrænser, kooperativ annullering samt status bestået, fejlet eller sprunget over pr. tilfældeTPdfBenchmarkReportregistrerer byte-størrelser for input og gemte filer, læsnings- og første-side-latens, renderingsgennemløb, timing for gemning og genåbning, samplet spidsbelastning af arbejdssættet, semantiske og pixelbaserede SHA-256-hash, stabilitet ved gentagne kørsler, forventede hash-porte og uafhængig genåbningsækvivalens- Benchmark-rapporter eksporterer formelsikker CSV og struktureret JSON til CI, udgivelseskvalifikation og langsigtet performance-sporing
GetSkiaRenderCapabilities,RenderPageSkiaogRenderPageSkiaByIndexeksponerer valgfri indbygget Skia-rendering af sider og formularer med genbrug af den parsede side-cache og uden hårdt krav om DLL-eksporter- En versioneret, kapabilitetsstyret print-output-ABI eksponerer præcis spotplade-nummerering, plade-rendering, overprint-detektering og overprint-forhåndsvisning, når den indlæste PDFium-modul leverer dem
Rettet (Fixed)
- PDFium-builds uden
PDF_USE_SKIAindlæses nu normalt i stedet for at fejle, fordi eksperimentelle Skia-eksporter mangler
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.47.0
Version 3.46.0
Tilføjet (Added)
ValidatePdfRkontrollerer nu udelukkende rasterbaseret sideindhold, strigeometri, farvemodeller, effektiv opløsning, kompressionsparametre, påkrævede metadata og krypterede PDF 2.0-profiler gennem konfigurerbare valideringstilvalgBuildPdfARepairPlanomsætter valideringsbeviser til afhængighedsordnede udbedringstrin med sikkerhedsklasser, signaturpåvirkningsværn og JSON-outputBuildPdfXProductionPreflightrapporterer sidebokse, indlejrede skrifttyper, output intents, farvelægningsfarver, transparens, overprint, separationer, billedopløsning og produktionsklarhed uden at afkode billedpayloads- PDF/UA-2-strukturvalidering kontrollerer nu ejerskab af tilknyttede filer, læserækkefølge, beskrivelser, relationer og findbarhed
Ændret (Changed)
TAssociateFile.Description,TPdf.ImageInfoogTPdf.PageComplexityeksponerer de metadata, som arbejdsprocesser til tilknyttede filer og produktions-preflight skal brugeTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.46.0
Version 3.45.0
Tilføjet (Added)
TPdfXmpPacketparser, redigerer, kloner og serialiserer navnerumsbevidst XMP med ukendte navnerum, typede RDF-containere, URI- og ressourceværdier, kvalifikatorer, sprogalternativer, packet-wrappers og bevaret paddingTPdf.ReadXmpPacketogSaveAsWithXmpPacketeksponerer metadata-læsning på højt niveau og atomisk output, hvor ændringer af signerede dokumenter kræver eksplicit godkendelse
Sikkerhed (Security)
- Den afgrænsede XML-læser afviser DTD'er og eksterne entiteter og begrænser packet-bytes, indlejring, knuder, attributter og numeriske tegnreferencer
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.45.0
Version 3.44.0
Tilføjet (Added)
TPdfValidationRuleRegistryregistrerer profilparagraffer med alvorlighed, afhængigheder, reparationsvejledning, beviser samt indbyggede eller brugerdefinerede prædikaterTPdfValidationBudgetogTPdfValidationExecutionContextafgrænser regler, fejl, objekter, rekursion, UTF-8-beviser, reserveret hukommelse, forløbet tid, hurtig fejl og kooperativ annulleringValidatePdfFilesParallelvaliderer filer gennem isolerede arbejderdokumenter, mens inputrækkefølgen bevares og fordelinger af problemer, timing, fejl, annulleringer og læsningsfejl samles
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.44.0
Version 3.43.0
Tilføjet (Added)
TPdfStructureElementbærer nu fakta om navnerum, rollemapping i navnerum, referencer, tilknyttede filer, annoteringer, widgets, etiketter og udseender til semantisk PDF/UA-2-valideringValidatePdfUa2StructureElementsog dens fokuserede validatorer kontrollerer ISO/TS 32005-navnerum og -indeslutning, afgrænsede tabelgitre, annoteringer, formularer, Formula/MathML-associationer, tilknyttede filer, dokumentrødder, FENote, lister, TOC-referencer, titler og billedtekster uden at indlæsepdfium.dllClassifyPdfUaNamespaceidentificerer struktur-navnerummene PDF 1.7, PDF 2.0, MathML, ARIA, DPUB, brugerdefineret og manglendePdfUa2StructureHasIssuegiver en C++Builder-sikker forespørgsel på et enkelt problem uden at returnere et Pascal-set som værdi
Ændret (Changed)
ValidatePdfUaStructureElementsanvender automatisk det nye semantiske regelsæt forpuc2, mens PDF/UA-1-reglestien bevaresTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.43.0
Version 3.42.0
Tilføjet (Added)
TPdfUaSaveOptions.PdfUa2skaber PDF/UA-2-output medpdfuaid:part2,pdfuaid:rev2024 og en effektiv PDF 2.0-katalogversionValidatePdfUadetektererpuc2og rapporterer manglende revisionsmetadata, filer der ikke er PDF 2.0, unavngivne optional-content-konfigurationer, forældede annoteringer og generiske H-overskrifter
Ændret (Changed)
- PDF/UA-validering vælger nu profilespecifikke regler for tabulatorrækkefølge, XFA og overskrifter for PDF/UA-1 og PDF/UA-2
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.42.0
Version 3.41.0
Tilføjet (Added)
SetPageObjectMarkParamtilføjer eller erstatter én heltals-, reeltals-, streng- eller blob-parameter på en eksisterende marked-content-post uden at erstatte selve mærketRemovePageObjectMarkParamfjerner én valgt egenskab, mens mærkenavnet og alle urelaterede egenskaber bevares
Ændret (Changed)
- Ikke-heltallige marked-content-tal gennemløber nu som
pmpFloati stedet for at blive trunkeret til heltals-øjebliksbilleder - Mislykket parametervalidering under
AddPageObjectMarkfjerner det delvist oprettede native mærke TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.41.0
Version 3.40.0
Tilføjet (Added)
ConfigureSystemFontProviderinstallerer en applikationsfont-mapper, før PDFium starter, og leverer validerede TrueType- eller OpenType-bytes for manglende eller erstattede dokumentskrifttyperTPdfSystemFontPolicystyrer face-erstatning, nativ fallback, bytegrænser pr. skrifttype og afgrænset caching af forespørgslerGetSystemFontProviderStatisticsrapporterer aktivitet inden for mapping, cache, fallback, afvisning, datatabeller og aktive handles
Ændret (Changed)
- Provider-callbacks eksponerer PDFiums anmodte face, vægt, stil, tegnsæt og pitch, mens callback-fejl holdes inden for den native grænse
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.40.0
Version 3.39.0
Tilføjet (Added)
AddCidType2Textindlejrer TrueType-data leveret af kalderen med eksplicit CID-til-GID-geometri pr. glyf og CID-til-Unicode-mappingsTPdfCidFontOptionsvælger fuld indlejring, foretrukket subsetting med fallback eller påkrævet subsetting og konfigurerer afgrænsede budgetter for skrifttype, glyffer og UnicodeTPdfCidFontReportrapporterer subset-beslutninger, byte-størrelser, unikke glyffer, indlejringsstatus, forventet tekst, udtrukket tekst og udtræksintegritet
Ændret (Changed)
- TrueType-subsetting bevarer anmodte glyf-identifikatorer, afviser usikkert output og ruller alle indsatte sideobjekter tilbage, hvis mapping- eller udtræksverifikation fejler
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.39.0
Version 3.38.0
Tilføjet (Added)
BuildReflowDocumentskaber et afgrænset, genanvendeligt semantisk knudetræ fra Tagged PDF-struktur eller fysisk layout-inferens over et valgt sideintervalTPdfReflowDocument.ToHtmludsender escaped responsive overskrifter, afsnit, lister, figurer, billedtekster, sidesektioner og tabeller med header- og span-semantikTPdfReflowOptionsstyrer tabeldetektering, sidesektioner, geometri, CSS, linjeskift, sideinterval, annullering og ressourcebudgetter
Ændret (Changed)
- Tabelindhold erstatter overlappende afsnitsblokke under reflow, og aktiv side-tilstand gendannes efter succes, fejl eller annullering
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.38.0
Version 3.37.0
Tilføjet (Added)
ApplyOcrSearchLayerrenderer valgte sider gennem PDFium og sender afgrænsede top-down BGRA-pixels til enIPdfOcrProviderleveret af kalderenTPdfOcrWordbærer Unicode-tekst, konfidens og firkanter i pixelrummet, der gennem nativ sidegeometri mappes til usynlig søgbar tekstTPdfOcrReportregistrerer fuldførelse pr. side, oversprunget pga. eksisterende tekst, fejl, annullering, renderede pixels samt accepterede eller afviste ord
Ændret (Changed)
- OCR-indsættelse bevarer originale skanningbilled-strømme, filtrerer misdannede eller lavkonfidensresultater, committer én gang pr. side og gendanner den aktive side
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.37.0
Version 3.36.0
Tilføjet (Added)
ExtractTablesdetekterer linjerede og whitespace-justerede tabeller fra nativ ordgeometri og transformerede streglinjerTPdfTablerapporterer rækker, kolonner, sammenlagte spans, sidegrænser, header-celler, detekteringstilstand, konfidens og direkte CSV- eller JSON-outputExtractDocumentTablesscanner alle sider under delte budgetter og markerer matchende tabeller, der fortsætter på tværs af sidegrænser
Ændret (Changed)
- Tabeludtrækning håndhæver konfigurerbare grænser for ord, linjer, celler og tabeller og gendanner den aktive side efter scanninger på dokumentniveau
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.36.0
Version 3.35.0
Tilføjet (Added)
GenerateTaggedLayoutskaber et nyt semantisk layoutdokument med nativt marked content, et Document-strukturtræ, ParentTree- og IDTree-mappings samt dokumentmetadata for sprogTPdfLayoutSemanticsmodellerer overskrifter, sektioner, lister, figurer, billedtekster, tabeller, header-associationer, spans, alternativ tekst, faktisk tekst, sprog og element-ID'erTPdfLayoutDocument.AddLinkudsender URI Link-annoteringer og tilknytter hver annotering til sit Link-strukturelement gennem OBJR- og StructParent-mappings
Ændret (Changed)
- Layout-tekst har som standard afsnitssemantik, mens headers, sidefødder, skillelinjer, billeder og genanvendelige formularer som standard er artefakter, medmindre de eksplicit mærkes
- Semantisk planvalidering afviser duplikerede ID'er, manglende forældre, cyklusser, ugyldig liste- eller tabelindeslutning, figurer uden erstatningstekst og uopløste tabel-header-ID'er, før dokumentet udsendes
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.35.0
Version 3.34.0
Tilføjet (Added)
TPdf.AddShapedTextskriver RTL-, bidi-, kontekstuelle og ligatur-glyfkørsler gennem nativ systemshaping og PDFiums CID Type 2-skrifttype-API'erShapePdfTextogTPdfUniscribeTextShapereksponerer positionerede glyf-ID'er, advances, offsets, kildeclustre, visuelle kørselspositioner og bidi-niveauer uden at ændre et dokument
Ændret (Changed)
- Genererede ToUnicode-maps dækker hver formet glyf, mens
ActualTextgemmer den oprindelige logiske Unicode-streng til konforme udtræks- og tilgængelighedsforbrugere - Marked-content-strenge med UTF-16 byte-order marks afkodes nu korrekt gennem
PageObjectMarks TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.34.0
Version 3.33.0
Tilføjet (Added)
TPdfLayoutCachedNodebygger subclassed layout-indhold ved første brug og understøtter gentagne skalerede placeringer gennemAddCachedNodeTPdfLayoutPlanrapporterer cache-træffere og -missere for målinger, placeringer af cachede knuder og genanvendte native XObjects
Ændret (Changed)
BuildPlangenbruger matchende planer efter komplette sidebegrænsninger samt identiteter for indhold, skrifttype, stil, kilde og måler uden at gentage tekstmålingGenerateLayoutkonverterer hver unikke cachet knude til én destinationsbundet XObject og opretter letvægts Form-objekter for hver placeringTPdf.AboutInfo, pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.33.0
Version 3.32.0
Tilføjet (Added)
TPdfLayoutDocumentbygger ombrudt tekst, spacers, skillelinjer, billeder, genanvendelige side-XObjects, eksplicitte sideskift, headers og sidefødder ind i en målt sideplanGenerateLayoutpaginerer det komplette layout, før der atomisk tilføjes native sider og sideobjekter, med stabile{page}- og{pages}-referencer
Ændret (Changed)
TPdf.AboutInfo, pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.32.0
Version 3.31.0
Tilføjet (Added)
TPdfPagePlan-builders beskriver slette-, flytte-, indsætte-, opdelings- og fletteoperationer for sider uden at anvende demValidatePagePlanreturnerer det præcise kort fra gamle til nye sider og opgør berørte bogmærker, navngivne destinationer, sideetiketter, formularfelter, taggede sider, importerede funktioner og signaturer
Sikkerhed (Security)
- Planer, der ville efterlade hængende navigationsmål eller ændre signeret indhold uden eksplicit godkendelse, afvises, før nogen nativ sideoperation køres
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.31.0
Version 3.30.0
Tilføjet (Added)
SaveRecoverySnapshotskriver en checksummet, størrelsesafgrænset gendannelsespakke indeholdende kilde-fingerprintet og den verificerede dokumentredigerings-journalRestoreRecoverySnapshotafspiller kun en gendannelsespakke, når dens checksum, journalkæde, kilde-fingerprint og gendannede fingerprint alle matcherEnableRecoveryAutosavegenopfrisker atomisk en eksplicit gendannelsesfil efter hver ændret commit, undo eller redo uden at genskrive kilde-PDF'en
Ændret (Changed)
InspectRecoverySnapshotrapporterer gendannelseskilde, fingerprints, postantal, position og afgrænset lagerplads uden at anvende pakkenImportEditJournalog gendannelses-restore kræver nu eksplicitAllowSignedDocument-godkendelse, før redigeringer anvendes på en signeret PDF- Lagerplads til gendannelsespakker bruger det konfigurerede afgrænsede random-access-lager og write-through-erstatning i samme mappe til store journals og crash-sikre autosave-opdateringer
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.30.0
Version 3.29.0
Tilføjet (Added)
BeginEditTransaction,CommitEditTransactionogRollbackEditTransactiongrupperer vilkårlige native dokumentredigeringer i atomiske transaktionerUndoEditogRedoEditanvender SHA-256-verificerede omvendte og fremadrettede deltas på tværs af side-, objekt-, annoterings-, vedhæftnings- og metadataændringerExportEditJournalogImportEditJournalgemmer afgrænsede portable deltas med kilde-fingerprint- og digest-kædevalidering til senere afspilning
Ændret (Changed)
- Transaktions-øjebliksbilleder bruger reproducerbart nativt output, så uændrede commits forbliver tomme, selv når almindelige PDFium-gemninger indeholder ikke-deterministiske identifikatorer eller tidsstempler
- Mislykkede commits og ugyldig journalafspilning gendanner atomisk det tidligere indlæsbare dokument, mens postantal, gemte bytes og øjebliksbilledstørrelse forbliver under kalderkonfigurerede grænser
- Signerede PDF'er kræver eksplicit
AllowSignedDocument-godkendelse, før en dokumentredigerings-transaktion begynder TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.29.0
Version 3.28.0
Tilføjet (Added)
TPdf.InspectOptionalContentnummererer OCG-lag, standard- og alternative konfigurationer, View/Print/Export-brugstilstande, zoom- og sprogmetadata, låste lag, ordenarrays, radiogrupper, OCMD-politikker, synlighedsudtryk og effektiv renderingstilstandTPdf.SaveAsOptionalContentConfiguredskriver en strengt verificeret kopi med kalkervalgte lagtilstande for en valgt brug og konfiguration
Ændret (Changed)
- Lagtilstands-output opdaterer nu både konfigurationens
/ON- og/OFF-arrays og OCG Usage-tilstandsordbøger, så PDFium anvender den anmodte synlighed gennem sin native rendering-kontekst - Konfigurationsskrivninger afviser ukendte grupper, ændringer af låste lag, radiogruppekonflikter, krypterede stagede filer og signerede filer uden eksplicit godkendelse og fjerner som standard automatiske tilstandsregler for at holde det valgte resultat deterministisk
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.28.0
Version 3.27.0
Tilføjet (Added)
TPdf.RenderPageByIndexrenderer enhver en-baseret side i en præcis pixelstørrelse uden at ændre den aktive redigeringsside eller udløse sideændringshændelserPageSceneCacheCapacity,PageSceneCacheCountogClearPageSceneCacheeksponerer afgrænset styring og diagnostik af scene-cachen
Ændret (Changed)
- Indekserede side-renderinger, renderede miniaturer og udtrækning af indlejrede miniaturer genbruger nu parsede PDFium-sidetilstande gennem en LRU-cache med otte poster som standard
- Scene-poster invalideres ved sideaktivering, redigering, ændringer i side-træet, form-tilstands-callbacks, eksplicit rydning og dokumentnedrivning, mens igangværende renderinger opbevares sikkert indtil frigivelse
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.27.0
Version 3.26.0
Tilføjet (Added)
TPadesSignatureAlgorithmInforapporterer hver CMS-signers digest-, signatur-, public-key- og named-curve-OID sammen med dens uafhængigt evaluerede algoritmepolitik-tilstandInspectPadesSignatureAlgorithmogEvaluatePadesSignatureAlgorithmgenkender profilerne P-256, P-384, P-521, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1, Ed25519 og Ed448
Sikkerhed (Security)
- PAdES-validering afviser nu uoverensstemmelser i elliptiske kurver og digests, ECDSA-signatur-OID'er der er i uoverensstemmelse med CMS-digesten, unavngivne EC-parametre, Ed25519-parametre og Ed448 SHAKE256-outputlængder andre end 512 bit
- Nativ CMS-verifikation forbliver kilden til kryptografisk gyldighed, mens utilgængelige algoritmer og ukendte kurver rapporteres som
pcsUnsupportedi stedet for at blive behandlet som ugyldige signaturer TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.26.0
Version 3.25.0
Tilføjet (Added)
TPdf.ExportObjectGrapheksporterer aktive klassiske, xref-stream- og object-stream-objekter som afgrænset typet JSON med eksplicitte ordbøger, arrays, strenge, navne, skalarværdier, indirekte referencer, stream-byte-antal og valgfrie SHA-256-stream-digestsTPdf.SaveAsObjectGraphPatchedsætter eller fjerner skemakontrollerede ordbogsværdier på topniveau gennem typede patch-værdier for null, Boolean, heltal, reeltal, navn, tekststreng og indirekte reference
Sikkerhed (Security)
- Objektgraf-eksport håndhæver budgetter for objekter, rekursion, strenge og output-bytes, mens patching validerer hver operation inden levering og afviser hængende referencer, duplikerede operationer, krypterede inputs, beskyttede ændringer af stream-filter eller -længde samt signerede dokumenter, medmindre det eksplicit er godkendt
- Objektgraf-patches stages som en inkrementel revision, materialiseres igen til xref-verifikation, strict-indlæses gennem PDFium og kopieres eller omdøbes atomisk først, når alle kontroller lykkes
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.25.0
Version 3.24.0
Tilføjet (Added)
TPdf.ValidatePadesTrustverificerer hver fundbare frakoblede signatur mod den præcise originaleByteRange, evaluerer signing-certificate-v2-binding og aktuel Windows-systemtillid og rapporterer uafhængige signatur-, kæde-, tilbagekaldelses- og tidsstempeltilstandeTPdf.ValidatePadesTrustAsynctager øjebliksbillede af den oprindelige indlæste kilde før afsendelse, rapporterer stadievis fremdrift for parsing, kryptografi, kædeopbygning, AIA, OCSP, CRL og RFC 3161-tidsstempelarbejde og understøtter kooperativ annulleringTPadesTrustValidationOptionsvælger offline- eller online-tillid, valgfri tilbagekaldelses- og tidsstempelverifikation, en afgrænset timeout for URL-hentning, et annulleringstoken og en fremdrifts-callback
Sikkerhed (Security)
- Signaturtidsstempel- og Document Time-stamp-tokens validerer nu deres SHA-256-message imprint, vedhæftede CMS-signatur, TSA-kæde og valgfri tilbagekaldelsestilstand uafhængigt af den almindelige dokumentsignatur
- Tillidsvalidering hasher aldrig en kopi, som PDFium har gemt på ny, har som standard offline cache-only-certifikathentning og rapporterer ikke-understøttede eller ubestemte tilstande i stedet for at behandle utilgængelige native tillids- eller tilbagekaldelsesbeviser som gyldige
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.24.0
Version 3.23.0
Tilføjet (Added)
TPdf.RenewPadesArchiveTimestampogRenewPadesArchiveTimestampToStreamføjer et nyt RFC 3161 Document Time-stamp til en eksisterende PAdES-signaturkæde uden at ændre nogen historiske bytesTPadesArchiveTimestampOptionsstyrer TSA-adgang, nonce, reserveret token-kapacitet og en valgfri komplet DSS-opdatering, mensTPadesArchiveTimestampReportregistrerer kilde- og resulttniveauer, kædelængder, bytelængder og returneret tidsstempelidentitet
Rettet (Fixed)
- Nyt og fornyet PAdES B-LTA-output deklarerer ESIC ExtensionLevel 2, mens B-LT-validering ikke længere kræver Level 2, medmindre et Document Time-stamp er til stede
Sikkerhed (Security)
- Fornyelse hasher de præcise originale indlæste bytes plus enhver anmodet DSS-opdatering, afviser krypterede eller ufuldstændige kilder, validerer det fundbare B-LTA-resultat, før output skrives, og stages filoutput inden erstatning
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.23.0
Version 3.22.0
Tilføjet (Added)
TPdf.AnalyzeSignatureRevisionsrekonstruerer den oprindelige inkrementelle revisionskæde og returnerer objektændringer pr. signatur, klassificeret mod DocMDP- og FieldMDP-tilladelserTPadesRevisionAnalysisReportskelner tilladte formular-, annoterings-, signatur- og valideringsmateriale-opdateringer fra ikke-tilladte side- eller dokumentændringer, uopløste tilfælde og mistænkelige skyggedefinitioner
Sikkerhed (Security)
- Revisionsanalyse detekterer urefererede objektdefinitioner, redefinitioner af signaturobjekter, aktivt indhold, misdannede revisionskæder og uopløste komprimerede objekter, mens afgrænsede budgetter for revisioner, objekter og ændringer håndhæves
- Analysen bruger altid den originale indlæste fil, hukommelsesbuffer, brugerdefinerede strøm eller fuldførte progressive kilde i stedet for bytes omskrevet af PDFium
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.22.0
Version 3.21.0
Tilføjet (Added)
TPdf.PreparePadesRemoteSignatureskaber en fixed-width-placeholder til frakoblet signatur og returnerer en vedvarende anmodning indeholdende SHA-256-dokumentdigesten, den præciseByteRange, reservationskoordinater og fingerprint på den forberedte PDFTPdf.CompletePadesRemoteSignatureafslutter HSM-, cloud- eller afbrudte signerings sessioner efter validering af den vedvarende anmodning og den returnerede CMSTPdf.SavePadesRemoteSigningRequestogTPdf.LoadPadesRemoteSigningRequestgiver et stabilt versioneret binært sessionsformat på tværs af proces- og maskingrænser
Sikkerhed (Security)
- Fuldførelse afviser ændrede forberedte PDF'er, ændrede
ByteRange-koordinater, genbrugte ikke-tomme placeholders, for store CMS-værdier, ikke-understøttede SignedData-former, manglende signing-certificate-v2-attributter og CMS-message-digests, der ikke matcher det forberedte dokument TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.21.0
Version 3.20.0
Tilføjet (Added)
TPadesDssOptions.Vrisskriver én indirekte/Type /VRI-ordbog pr. signatur, nøglet af SHA-1 med store bogstaver af den komplette afkodede/Contents-værdi inklusive paddingTPadesDssVrivælger certifikat-, OCSP- og CRL-materiale gennem validerede indekser, mens PAdES B-LT- og B-LTA-signering nu automatisk opretter den nye signaturs VRI
Ændret (Changed)
- DSS-certifikater, OCSP-svar og CRL'er deduplikeres på indholdshash med stabil første-forekomst-orden, kollisionkontrol af præcise bytes og VRI-referenceremapping, før der skrives destinationsbytes
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.20.0
Version 3.19.0
Tilføjet (Added)
TPdf.GetStructuredTextkonverterer den aktuelle side til genanvendelige blok-, linje- og stylede-span-poster, mens kilde-tegnindekser, Unicode-skalarer, geometri, skrifttypenavne, størrelser, vægte og tekstvinkler bevaresTPdfStructuredTextOptionsvælger content-stream- eller fysisk layout-orden, valgfri berigelse med skrifttyper og semantik samt et fail-closed maksimalt tegnbudget- Tagged PDF- og heuristiske læsbare indholdsfragmenter beriger blokke med strukturart, overskriftsniveau, sprog, kilde og strukturelement-identitet, mens uovertrufne Figure-alternativtekster forbliver repræsenteret
Ændret (Changed)
- Fysisk layout-udtrækning bruger nu O(n log n)-tegnorden, geometrisk voksende linje- og span-buffere, linje- og kolonneklyngedannelse, bufferet Unicode-konstruktion og caching af skrifttyper for tilstødende ikke-null tekstobjekter til forudsigelig performance på store sider
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.19.0
Version 3.18.0
Sikkerhed (Security)
TPdf.SaveAsRedactedanvender hvert/Redact-rektangel på et isoleret dokument-øjebliksbillede, fjerner hvert skærende sideobjekt på topniveau og tegner et uigennemsigtigt erstatningsrektangel uden at ændre det indlæste dokument- Redakteret output fjerner redaktion-annoteringer, fjerner valgfrit andre skærende annoteringer, sletter native indlejrede vedhæftninger og stripper katalog-
/AF, aktivt indhold, formularer, metadata og utilgængelige objekter fra tidligere revisioner TPdfRedactionOptionsstyrer erstatningsfarve, fjernelse af overlappende annoteringer og et fail-closed scanningbudget for sideobjekter, mensTPdfRedactionReportregistrerer hver fjernelse og outputmetrikTPdfSanitiseOptions.StripAssociatedFilesfjerner nu som standard katalogniveau-referencer til tilknyttede filer
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.18.0
Version 3.17.0
Tilføjet (Added)
TPdf.RenderPagesParallelrenderer en-baserede sideanmodninger samtidigt, mens hver arbejder ejer et uafhængigt indlæst PDFium-modul samt dokument- og sidetilstand taget fra ét opsamlet dokument-øjebliksbilledeTPdfParallelRenderOptionsstyrer DPI, antal arbejdere, rotation, native render-flags, baggrundsfarve, pixelgrænser pr. side og samlede grænser for tilbageholdt outputTPdfParallelRenderReportbevarer anmodningsordenen og returnerer kalder-ejede top-down BGRA- eller RGBA-buffere med succes, annullering, fejl, dimensioner, timing og diagnostiske detaljer pr. side- Progressiv arbejder-rendering poller
IPdfCancellationTokenmellem native chunks, mens ugyldige anmodninger og budgetfejl forbliver isoleret til deres tilsvarende resultater TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.17.0
Version 3.16.0
Tilføjet (Added)
TPdfEncryptionRevision.erR7tilføjer ISO/TS 32003 AES-256-GCM-output med/V 6,/R 7,/CFM /AESV4og den påkrævede PDF 2.0-udvidelse til udviklere- Hver krypteret streng og strøm får en unik 96-bit IV, uændret længde på ciphertexten og en 128-bit autentificeringstag, mens
EncryptMetadata = Falsebevarer metadata-strømmens bytes DecryptAesGcmDocumentBytesvaliderer bruger- eller ejerskodeord, krypterede tilladelser, valgfri selvstændig PDF MAC-data og hver GCM-tag, før PDFium-kompatible plaintext-bytes returneres- AESV4-output kan kombineres med
TPdfEncryptOptions.EnableIntegrityProtection, så GCM-autentificering pr. objekt og ISO/TS 32004 PDF MAC-beskyttelse af hele dokumentet sameksisterer - Kryptering bruger nu gyldige klassiske cross-reference-poster i stedet for at fortolke objektformet tekst inde i streamdata som indirekte objekter
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.16.0
Version 3.15.0
Tilføjet (Added)
TPdfEncryptOptions.EnableIntegrityProtectionskriver ISO/TS 32004-selvstændige PDF MAC-autentificeringskoder til AES-256 Standard Security Handler-dokumenter i revision 5 og 6TPdf.ValidatePdfMacverificerer de præcise originale kildebytes, den strenge EOF-dækkende/ByteRange, CMSAuthenticatedData, den adgangskodeafledte filnøgle, autentificerede attributter, den wrappede MAC-nøgle og HMAC-værdienFPdfHmactilføjer HMAC-SHA256 og HKDF-SHA256, mensFPdfAestilføjer RFC 3394 AES-256 Key Wrap- og autentificerede unwrap-primitiverTPdfMacValidationResultskelner mellem gyldige, fraværende, ugyldige og ikke-understøttede autentificeringskoder med diagnostisk tekstTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.15.0
Version 3.14.0
Tilføjet (Added)
TPdf.ValidatePadesverificerer nu frakoblede CMS-signaturer mod de præcise originale/ByteRange-segmenter på Windows, herunder signerede attributter og signaturværdienTPadesValidationResulteksponerer samlet integritetsstatus og tilstande pr. signatur for ByteRange, CMS,signing-certificate-v2, systemtillid, tilbagekaldelse og tidsstempel uden at blande ikke-understøttede eller ukontrollerede beviser sammen med en ugyldig signatur- Signercertifikat-binding kontrolleres med SHA-256, certifikatkæder bruger cache-only-vurdering af Windows-systemtillid, og native fejlkoder forbliver tilgængelige til diagnostik
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.14.0
Version 3.13.1
Rettet (Fixed)
TPdf.ValidatePadesinspicerer nu den originale fil, den bufferede hukommelse eller de brugerdefinerede stream-bytes i stedet for en kopi, som PDFium har gemt på ny, og som kunne ugyldiggøre offsets eller kassere signaturordbøger- PAdES-
/ByteRange-kontroller accepterer nu signaturer, der dækker en tidligere komplet PDF-revision efterfulgt af gyldige inkrementelle opdateringer, og validerer også Document Time-stamp-områder TPadesValidationResult.SourceStatusskelner validering af original kilde fra utilgængelig eller ufuldstændig progressiv input, og compliance-prædikater afviser resultater uden originale bytesTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.13.1
Version 3.13.0
Tilføjet (Added)
FPdfSha3giver afhængighedsfri SHA3-256-, SHA3-384-, SHA3-512- og SHAKE256-primitiver til ISO/TS 32001 og relateret PDF 2.x-kryptografisk arbejde- Inkrementelle kontekster absorberer vilkårligt opdelt input, mens SHAKE256 understøtter gentagne squeeze-kald og output, der krydser sponge-rate-grænser
- One-shot-hjælpere til byte-arrays og hexadecimal med små bogstaver supplerer streaming-API'en med eksplicit livscyklus- og størrelsesvalidering på tværs af Delphi, C++Builder og Lazarus
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.13.0
Version 3.12.0
Tilføjet (Added)
TPdf.ImportFDFimporterer FDF-formulardata fra filer eller strømme og anvender parsede værdier gennem den eksisterende widget-feltstiFdfImportFromStreamogFdfImportFromFileparser direkte eller indirekte hierarkiske felter, PDF-literal- og hexadecimale strenge, PDFDocEncoding, Unicode-tekst, navneværdier og eksplicitte tomme værdier under afgrænsede ressourcebudgetter- FDF-eksport skriver nu ikke-ASCII-feltnavne og -værdier som standardoverensstemmende UTF-16BE-tekststrenge og escaper sikkert kildefilnavne
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.12.0
Version 3.11.0
Tilføjet (Added)
TPdf.DetectPageSkewrenderer den aktuelle side ved lav DPI og detekterer skævvinklen ved at projicere mørke pixels på kandidat-rotationsvinkler og returnerer den vinkel, der maksimerer række-sum-variansen (tekstlinjejustering), med en nøjagtighed på ca. 0,1 gradTPdfSkewReporteksponerer den detekterede vinkel, konfidens og prøvedimensionerTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.11.0
Version 3.10.0
Tilføjet (Added)
TPdf.GetTextInReadingOrderudtrækker den aktuelle sidetekst i rå content-stream-orden eller fysisk layout-orden (oppefra og ned, venstre mod højre) gennemFPDFText_GetCharBox+ positionssorteret tegnudtrækning, så tekst i flere kolonner og visuelt omordnet tekst læses naturligtTPdfReadingOrder-enummen vælger mellemroContentOrderogroPhysicalLayoutTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.10.0
Version 3.09.0
Tilføjet (Added)
TPdfImageOptimizeOptions.PreserveBilevelspringer 1-bit bilevel-billeder over (ImageMask-/line-art-scanninger) underOptimizeImages, så nearest-neighbour-nedskalering ikke ødelægger deres skarpe kanterTPdfImageOptimizeOptions.MinDimensionspringer billeder mindre end tærsklen over (typisk ikoner eller dekorative elementer, der ikke får gavn af yderligere reduktion)TPdfImageOptimizeOptions.Defaultgiver det anbefalede udgangspunkt (150 DPI-mål, 1.5-forhold, bilevel bevaret, minimumsdimension 8)TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.09.0
Version 3.08.0
Tilføjet (Added)
TPdfTileCachegiver en afgrænset LRU-cache af renderede side-tiles, nøglet af dokumentrevision, side, zoom, rotation, render-flags og enhedsrektangel, så uændrede tiles ikke gentegnes ved repaints, og forældede tiles fra en tidligere gemning automatisk fjernesTTileKeyeksponerer den sammensatte cachenøgle med en statiskCreate-fabrik og enEquals-komparatorTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.08.0
Version 3.07.0
Tilføjet (Added)
TPdf.GetAnnotationFontColorogTPdf.SetAnnotationFontColoromslutter de tidligere bundne, men ubrugteFPDFAnnot_GetFontColorogFPDFAnnot_SetFontColorog eksponerer læsning og skrivning af widget-tekstfarve til formularfeltredigering uden at røre annoteringsordbogen direkteTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.07.0
Version 3.06.0
Tilføjet (Added)
TPdf.RenderPageBandedrenderer den aktuelle side i vandrette bånd via en callback, så plakater og tekniske sider kan eksporteres uden nogensinde at allokere en fuld destinationsbitmap — hvert bånd renderes ind i en nyoprettetTBitmapmed den anmodede båndhøjde og frigives, efter callback'en returnererTPdfBandCallbackeksponerer kontrakten pr. bånd (båndindeks, top-y-offset, bitmap) med en boolesk returværdi, der lader kaldere annullere bånd-renderingen tidligtTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.06.0
Version 3.05.0
Tilføjet (Added)
TPdf.RenderPageProgressiveWithColorSchemekører den native progressive render-løkke med et farveskema til nedsat syn gennemFPDF_RenderPageBitmapWithColorScheme_Start, så kaldere kan tilsidesætte udfyldnings- og stregfarver for stier og tekst til tilgængelighed, mens den annulleringsbevidste Continue-løkke bevaresTPdfColorSchemeeksponerer de fireTColor-tilsidesættelsesfelter med enDefault, der delegerer til PDFiums indbyggede farver, når alle felter erclDefaultTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.05.0
Version 3.04.0
Tilføjet (Added)
TPdf.ExportFDFserialiserer formularfeltværdier som et FDF-dokument (ISO 32000-1 §12.7.11) ved siden af den eksisterende XFDF-sti og genbruger den sammeTXfdfField-datamodel, så kaldere samler felterne én gang og udsender enten formatFdfExportToStreamogFdfExportToFileiFPdfXfdfeksponerer FDF-serialiseringen på lavt niveau til kaldere, der bygger feltsamlinger uafhængigt af en indlæstTPdfTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.04.0
Version 3.03.0
Tilføjet (Added)
TPdf.SaveAsSanitisedskriver en ren kopi med én revision, der stripper aktivt indhold fra kataloget (/OpenAction, katalog-/AA,/Names,/AcroForm,/Metadata), og derefter beskærer utilgængelige objekter, så de forældreløse JavaScript-, handlings- og vedhæftningskroppe forsvinder fra filkroppenTPdfSanitiseOptionseksponerer uafhængige strip-styringer pr. vektor plus et valgfrit tilgængeligheds-beskæringsgennemløb;TPdfSanitiseReportregistrerer antal strippede poster, antal beskærede objekter, byte-antal og eventuelle fejlTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.03.0
Version 3.02.0
Tilføjet (Added)
TPdf.SaveAsPageLabelledskriver en komplet PDF-kopi, hvis katalogs/PageLabels-nummertræ erstattes med de leverede intervaller, og anvender decimal- samt romerske (store/små bogstaver) og bogstavnumreringsstile (store/små bogstaver) med valgfrie præfikstekststrenge og starttal pr. ISO 32000-1 §12.4.2TPdfPageLabelRange,TPdfPageLabelRanges,TPdfPageLabelStyleogTPdfPageLabelReporteksponerer intervalmodellen, stil-enummen og byte-/intervalantal pr. gemning- Eksisterende katalog-
/PageLabels-poster detekteres og afvises, medmindreReplaceExisting=Trueoverføres, i hvilket tilfælde den gamle post strippes, før de nye intervaller injiceres TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.02.0
Version 3.01.0
Tilføjet (Added)
TPdf.FlattenPageRotationbager hver sides aktuelle/Rotateind i content-streamen, sideboksene og annoteringsrektanglerne og nulstiller derefter/Rotatetil 0 — omslutterFPDFPageObj_TransformF+FPDFAnnot_GetRect/SetRect+FPDFPage_SetMediaBox/SetCropBox+FPDFPage_SetRotation, så det visuelle layout bevares uden at stole på rotationsvisnings-hintetTPdfFlattenRotationOptionseksponerer annoteringstransformering, sideboks-ombytning og auto-opdateringsstyring pr. side;TPdfFlattenRotationReportregistrerer behandlede, oversprunge og fejlede sider samt samlet antal transformerede objekter og annoteringerTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.01.0
Version 3.00.0
Tilføjet (Added)
TPdf.StampPagesFromPdfstempler en kildeside som en positioneret, skaleret, valgfrit roteret Form XObject-overlay eller -underlay på tværs af en eller flere målsider og omslutterCreateXObjectFromPage+FPDFPageObj_SetMatrix+FPDFPageObj_SetBlendMode+FPDFPage_InsertObjectAtIndexmed eksplicitte politikker for sideboks, anker, margin, skalering, rotation, blend og z-ordenTPdfOverlayOptionsogTPdfOverlayReporteksponerer styringerne for placering, transformering, blend og z-orden samt antal stemplede, fejlede og oversprunge pr. sideTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 3.00.0
Version 2.99.0
Tilføjet (Added)
TPdf.RefreshAppearanceregenererer selektivt en enkelt widgets udseende-strøm gennemFPDFAnnot_SetAPog undgår enNeedAppearances-genopbygning af hele sidenTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.99.0
Version 2.98.0
Tilføjet (Added)
TPdfView.MouseDowndirigerer nu højre-knap-hændelser til den native form fill-motor gennemFORM_OnRButtonDown, hvilket aktiverer kontekstmenuer og widget-interaktioner ved højreklik- Rutekort-punkterne 78 (link-annotering-mapping), 82 (widget-præsentation) og 83 (strukturattributmodel) bekræftet som allerede fuldført gennem eksisterende infrastruktur
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.98.0
Version 2.97.0
Tilføjet (Added)
TPdf.SetDeterministicTimeogTPdf.RestoreActualTimelader test og reproducerbare builds injicere en fast oprettelses-, ændrings- og aktuelle tid gennem understøttede native callbacksTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.97.0
Version 2.96.0
Tilføjet (Added)
TPdf.GetWidgetAdditionalActionJavaScriptlæser widget-additional-action-JavaScript for en given hændelsesudløser gennemFPDFAnnot_GetFormAdditionalActionJavaScriptuden at udføre noget scriptTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.96.0
Version 2.95.0
Tilføjet (Added)
TPdf.GetObjectTextudtrækker Unicode-teksten fra et tekst-sideobjekt gennemFPDFTextObj_GetTexttil præcis indholdsredigering og kodningsdiagnostikTPdf.GetObjectsByTypereturnerer indeksene for alle sideobjekter, der matcher en kategori (tekst, sti, billede, formular, shading), til selektiv kategori-outputTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.95.0
Version 2.94.0
Tilføjet (Added)
TPdf.AttachmentHasKey,GetAttachmentStringValueogSetAttachmentStringValuelæser, skriver og undersøger brugerdefinerede file-spec-udvidelsesværdier på indlejrede vedhæftningerTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.94.0
Version 2.93.0
Tilføjet (Added)
TPdf.InsertObjectAtIndexindsætter et sideobjekt på en anmodet stakposition viaFPDFPage_InsertObjectAtIndexi stedet for altid at tilføje til sidstTPdf.UpdateAnnotationObjectcommitter et redigeret annoterings-udseende-objekt gennemFPDFAnnot_UpdateObject, så ændringer af annoteringsejede sideobjekter bevares pålideligtTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.93.0
Version 2.92.0
Tilføjet (Added)
TPdf.InsertClipPathskaber en rektangulær klippesti og indsætter den i den aktuelle side gennem de nativeFPDF_CreateClipPath- ogFPDFPage_InsertClipPath-stier som supplement til den eksisterendePageObjectClipPath-inspektørTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.92.0
Version 2.91.0
Tilføjet (Added)
TPdf.GetPageComplexityscanner den aktuelle side og rapporterer antal billed-, sti- og tekstobjekter samt samlede stisegmenter, samlede billedpixels og tilstedeværelse af transparens til renderingsplanlægningTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.91.0
Version 2.90.0
Tilføjet (Added)
TPdf.IsAnnotationSubtypeSupportedspørger den indlæste PDFium-DLL, hvilke annoteringsundertyper den understøtter, før der redigeresTPdf.ChooseRenderFlagsvælger native render-flags (halftone, begrænset billedcache) ud fra endelig skalering og destinationsstørrelse til adaptiv billed-subsamplingTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.90.0
Version 2.89.0
Tilføjet (Added)
TPdf.GetTextRenderModeeksponerer den native tekstrendering-tilstand (fill, stroke, clip) for et tekst-sideobjekt til redigeringsdiagnostikTPdf.GetTextObjectRenderedBitmaprenderer et enkelt tekstobjekt til en isoleret bitmap gennem den nativeFPDFTextObj_GetRenderedBitmap-stiTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.89.0
Version 2.88.0
Tilføjet (Added)
TPdf.GetThumbnailfalder nu tilbage til at rendre en erstatning, når siden ikke har en indlejret miniature, og implementerer dermed præferencen indlejret-miniature-førstTPdf.LinkAtPointreturnerer, om der findes et nativt link ved et givet sidekoordinat, ved brug afFPDFLink_GetLinkAtPointi stedet for rektangel-only-scanningerTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.88.0
Version 2.87.0
Tilføjet (Added)
TPdf.AuditActiveContentreturnerer etTPdfActiveContentAudit-øjebliksbillede af antal JavaScript-handlinger, antal indlejrede filer, antal signaturer, XFA-formulartype og dokumenttilladelser uden at udføre noget script eller nogen handlingTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.87.0
Version 2.86.0
Tilføjet (Added)
TPdf.GetFeatureInventoryscanner alle sider én gang og returnerer en samlet post med antal tekst-, sti-, billed-, form XObject- og shading-objekter ved siden af fakta om vedhæftninger, signaturer, formulartype, tilladelser og PDF-versionTPdfFeatureInventorysamler dokumentbrede fakta, der tidligere krævede separate egenskabskald, i ét øjebliksbilledeTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.86.0
Version 2.85.0
Tilføjet (Added)
TPdf.SaveAsReproducibleomskriver dokumentet, så to gemninger af samme hukommelsestilstand producerer byte-identisk output- Ikke-deterministiske
/Info-tidsstempler (/CreationDate,/ModDate) strippes, og kilde-/ID(afledt af vægur-afhængige bytes) udelades, mens objektorden og -generation forbliver stabile TPdfReproducibleReportrapporterer antal bevarede og beskærede objekter samt antal strippede tidsstempelposterTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.85.0
Version 2.84.0
Tilføjet (Added)
TPdf.SaveAsInlineImagesExternalisedomskriver dokumentet ved at udtrække hvertBI/ID/EI-inline-billede til et genanvendeligt billed-XObject og erstatte inline-blokken med en/ImN Do-operator- Inline-billed-ordbogsforkortelser (
/W,/H,/BPC,/CS,/F, farverumsværdier og filterværdier) udvides til deres fulde billed-XObject-navne, så det udtrukne objekt er standardoverensstemmende - Sidens
/Resources /XObject-ordbog opdateres med de nye XObject-referencer, og den omskrevne content stream komprimeres med Flate TPdfInlineImageExternaliseReportrapporterer antal eksternaliserede, oversprunge og fejlede samt antal oprettede XObjectsTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.84.0
Version 2.83.0
Tilføjet (Added)
TPdf.SaveAsFlateRecompressedomskriver dokumentet og genkoder kvalificeredeFlateDecode-strømme ved maksimal komprimering og erstatter kun en strøm, når den målte byte-besparelse overstiger en kalkertærskelTPdfFlateRecompressOptionsvælger en minimumsbesparelse i bytes og et minimumsbesparelsesforhold, så allerede optimale strømme forbliver urørteTPdfFlateRecompressReportrapporterer antal rekomprimerede, oversprunge og fejlede strømme sammen med de originale og rekomprimerede samlede stream-bytes- Objektnumre og -generationer forbliver stabile; kun de rekomprimerede stream-payloads og deres direkte
/Length-værdier ændres, så alle bevarede cross-references forbliver gyldige TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.83.0
Version 2.82.0
Tilføjet (Added)
TPdf.OptimizeImagesgennemgår hvert sidebilledobjekt og nedskalerer dem, hvis effektive placerings-DPI overstiger et kalkervalgt mål, og committer derefter hver berørt side gennem den native indholdsgeneratorTPdfImageOptimizeOptionsvælger mål-DPI og et minimumsforhold, så kun billeder, der reelt er over-samplede, genkodesTPdfImageOptimizeReportrapporterer antal optimerede, oversprunge og fejlede billeder sammen med en struktureret fejlmeddelelse- Nedskalering bruger et nearest-neighbour-gennemløb over den native PDFium-bitmapbuffer og bevarer kildeformatet, striden og alfakanalen, og
FPDFImageObj_SetBitmapgenkoder overlevende TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.82.0
Version 2.81.0
Tilføjet (Added)
TPdf.SaveAsDeduplicatedomskriver dokumentet som én ren revision, der kollapser kompatible skrifttyper, billeder og form XObjects ned på én delt repræsentant- Et rekursivt indholdsfingerprint kombinerer hver ressourceordbog, dens fuldt tilgængelige subgraf og dens rå stream-payload, så dubletter kun flettes, når hele deres indhold er identisk
- Hver cross-reference til en fjernet dublet omskrives til den overlevende repræsentant, mens den genopbyggede klassiske cross-reference-tabel holder objektnumrene stabile
TPdfDedupReportrapporterer antal bevarede og beskærede objekter samt sammenlagte antal skrifttyper, billeder og form XObjects pr. kategoriTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.81.0
Version 2.80.0
Tilføjet (Added)
TPdf.SaveAsReachableomskriver dokumentet som én ren revision, der kun bevarer de indirekte objekter, der kan nås fra kataloget og trailerens /Info-ordbogTPdfPruneReportrapporterer antal bevarede og beskærede indirekte objekter sammen med kilde- og output-byte-størrelser samt strukturerede fejlårsager for krypteret eller misdannet input- Utilgængelige forældreløse objekter efterladt af inkrementelle opdateringer, sidefletninger eller reparerende gemninger fejges væk, mens den genopbyggede klassiske cross-reference og trailer bevarer
/Root,/Infoog/IDuden omnummerering TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.80.0
Version 2.79.0
Tilføjet (Added)
TPdf.CreateDocumentSearchskaber en fremad- eller bagudrettet dokumentomfattende søgning, der returnerer ét match ad gangen uden at bygge et tekstindeks for hele dokumentetTPdfDocumentSearchResultrapporterer den en-baserede side, tegninterval, matchet tekst og side-rum-rektangler for hvert resultat- Søgningssessioner accepterer
IPdfCancellationToken, bevarer kun de aktuelle PDFium-side- og teksthandles og afsluttes sikkert, når dokumentet lukkes TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.79.0
Version 2.78.0
Ændret (Changed)
TPdfRangeRequestSchedulerpreemter nu overlappende overførsler med lavere prioritet, så sidekritiske PDFium-hints ikke venter bag baggrundsdownloads- Eksternt tilgængelige sparse-bytes annullerer redundante aktive overførsler, mens forældede eller duplikerede transport-callbacks returnerer False uden at publicere forældet dækning
- Prioritetsforfremmelse bevarer uafhængige genforsøgshistorikker, og transport-preemption forbruger ikke længere genforsøgsbudgettet for uuberørte interval-ender
TPdfRangeRequestStatistics.SupersededRequestCountrapporterer transportarbejde, der er fortrængt af hints med højere prioritet eller eksternt leveret dækningTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.78.0
Version 2.77.0
Tilføjet (Added)
TPdf.SaveAsNormalizedContentskriver syntaksnormaliseret sideindhold til en strøm eller en atomisk erstattet fil og rapporterer antal normaliserede, oversprunge og sammenlagte siderNormalizePdfContentSequencegiver afgrænset selvstændig token-normalisering for afkodede content-stream-sekvenser
Ændret (Changed)
- Side-
/Contents-arrays kan nu sammenlægges til én strøm, mens strenge, navne, inline-billed-payloads, ukendte operatorer og grafiktilstand på tværs af strømme bevares - Misdannede tokens, ubalancerede tilstandsområder, ikke-understøttede filtre, krypteret input og omskrivninger af signerede dokumenter har eksplicitte politikker og struktureret statusrapportering
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.77.0
Version 2.76.0
Tilføjet (Added)
TPdfStreamInspectoropgør vilkårlige fysiske PDF-stream-objekter og rapporterer objekt-offsets, rå længder, filterkæder, DecodeParms, eksterne filmarkører, krypteringstilstand samt native billed- eller vedhæftningsstierCopyRawDatakopierer komplette kodede payloads eller validerede bytevinduer, mensDecodeDataanvender ASCIIHex-, ASCII85-, LZW-, Flate-, RunLength-, TIFF 8-bit- og PNG-prediktorer i deklareret rækkefølgeTPdfStreamInspectOptionsafgrænser ressourcer for kilde, rå data, afkodede data, ordbøger, stream-antal og udvidelsesforhold med strukturerede rapporter for grænser, misdannede data, ikke-understøttede codecs, kryptering og skrivefejl
Ændret (Changed)
- Strømlængde-opløsning eksponerer nu præcise spænd for direkte og indirekte
/Length-værdier, herunder nul-længde-strømme og payloads, der indeholder den bogstaveligeendstream-sekvens TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.76.0
Version 2.75.0
Tilføjet (Added)
TPdfLoadOptionstilføjer kompatible, strenge og gendannelsespolitikker til indlæsning af filer, hukommelse, byte-intervaller og brugerdefinerede strømmeTPdfLoadReportrapporterer den native gendannelsesrute, xref-gyldighed, beskadigede offsets, postkonflikter, revisionsantal, revisionsbudgetter og strukturerede problemer for klassiske, hybride og xref-stream-dokumenterTPdf.SaveAsRepairedskaber en komplet kopi med én revision og strict-indlæser den uafhængigt, før den verificerede strøm leveres eller en målfil atomisk erstattes
Ændret (Changed)
- Eksisterende load-overloads bevarer kompatibel adfærd og publicerer nu nativ xref-gyldighed og gendannelsesstatus gennem
LastLoadReport - Strikt indlæsning afviser dokumenter, der krævede nativ xref-genopbygning eller fejlede strukturrevision, mens signeret reparationsoutput kræver eksplicit kalkergodkendelse
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.75.0
Version 2.74.0
Tilføjet (Added)
TPdf.MergeFilesfletter filbaserede kildelister med sideintervaller og adgangskoder pr. kilde, mens højst ét kildedokument holdes åbentTPdfBatchMergeOptionstilføjer stop- eller skip-fejlhåndtering, kildescoped eller chunked import, formular- og disposition-politikker, indsætningsstyring, fremdrifts-callbacks, annullering, kopiering af fremviserpræferencer og rollback-styringTPdfBatchMergeReportrapporterer committrede og rullet-tilbage-sider, kildeudfald, native importkald, største batch, spidsbelastning af åbne kilder, politikdetekteringer, problemer og slutstatussen
Ændret (Changed)
- Standard-batchstien udfører én nativ sideimport pr. kilde, så PDFium kan genbruge klonede objekter på tværs af den kilde, og lukker derefter kilden, før den næste fil åbnes
- Chunked tilstand giver finere annulleringspunkter og mindre native batches, mens delvist fejlede kilder samt stop- eller annulleringsresultater kan fjerne alle sider, der er indsat af operationen
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.74.0
Version 2.73.0
Tilføjet (Added)
TPdfRandomAccessStoregiver trådsikker sekventiel og positioneret I/O, holder små indhold i afgrænset hukommelse og overløber én gang til privat midlertidigt lager ved et kalkervalgt loftTPdf.SaveMemoryLimitogSaveTemporaryDirectorykonfigurerer gemnings-staging, mensLastSaveSpillCountogLastSaveLargestMemoryBuffereksponerer målbare diagnoser pr. gemning
Ændret (Changed)
- Staging-buffere til gemning, standardkonvertering, validering, kryptering, DSS og PAdES deler nu afgrænset arbejdslagring med eksklusive delete-on-close-spill-filer og hukommelsesskrubning
- Brugerdefinerede PDFium-blok-callbacks serialiserer almindelige strømsøgninger og bruger markør-uafhængige positionerede læsninger, når de understøttes af
TPdfRandomAccessStore - Den filbaserede XFA-kapabilitetsscanning læser nu faste overlappende blokke i stedet for at kopiere hele PDF'en ind i hukommelsen
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.73.0
Version 2.72.0
Tilføjet (Added)
TPdf.BeginIncrementalSave,CommitIncrementalSaveogEndIncrementalSavegiver en revisionssession, der kun tilføjer ændrede eller nyoprettede indirekte objekterTPdfIncrementalCommitInforapporterer antal ændrede objekter, tilføjede bytes, samlede output-bytes og antal succesfulde revisioner for hver commit
Ændret (Changed)
- Hver ændret commit bevarer det komplette tidligere output som et præcist byte-præfiks, udsender ingen revision, når intet ændredes, og fortsætter kildens klassiske eller xref-stream-format
- Nativt xref-stream inkrementelt output repareres med sin påkrævede type, selv-post, længde, indeks og objektterminator før videre behandling
- Krypterede dokumenter afvises, før en session begynder, mens signerede dokumenter kræver eksplicit kalkertilladelse, så signaturpolitikken ikke kan omgås ved et uheld
- Fil-overloaden fuldfører en søskende-midlertidig fil, før destinationen atomisk erstattes, og ruller sessionstilstanden tilbage efter enhver skrive- eller erstatningsfejl
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.72.0
Version 2.71.0
Tilføjet (Added)
TPdf.SaveAsObjectStreamskriver PDF 1.5+-filer med afgrænsede komprimerede objektgrupper og en ren xref-stream indeholdende komplette type-2-posterPackPdfObjectStreamskan modernisere klassisk, hybrid, xref-stream og eksisterende object-stream-input efter at have opløst den aktive revision
Ændret (Changed)
- Side-lokal objektorden, adaptive xref-feltbredder, direkte katalogadgang og konfigurerbare lofter for medlemmer og afkodede bytes balancerer filstørrelse med random-access-performance
- Fil-overloaden fuldfører en søskende-midlertidig fil, før destinationen atomisk erstattes, mens ugyldige inkrementelle, versions- og grupperingstilvalg afvises, før output begynder
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.71.0
Version 2.70.0
Tilføjet (Added)
TPdf.SaveAsLinearizedskriver en ægte Fast Web View-PDF til en strøm eller fil ved brug af førsteside-objektgruppering, to cross-reference-sektioner og Annex F-side-offset- og shared-object-hinttabeller- Aktive object-stream-medlemmer materialiseres automatisk, så xref-stream- og object-stream-inputs kan blive intervalvenligt output uden at ændre synligt sideindhold
Ændret (Changed)
- Fil-overloaden fuldfører en søskende-midlertidig fil, før destinationen atomisk erstattes, mens strøm-overloaden bevarer de normale PDFium-gemningstilvalg og eksplicitte versionskontroller
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.70.0
Version 2.69.0
Tilføjet (Added)
TPdfRangeRequestSchedulerkonverterer PDFium byte-interval-hints til prioriteret, sammenlagt, størrelsesafgrænset transportarbejde uden at tvinge en sammenhængende download igennem- Fuld og delvis fuldførelse, afgrænsede genforsøg, sparse-tilgængeligheds-deduplikering, anmodningsstatistik og generationsikker annullering understøtter HTTP Range- og brugerdefinerede transportpipelines
TPdfProgressiveDocument.RangeRequestsmodtager automatisk dokument-, formular- og side-hints og forfremmer kun de præcise bytes, der blokerer en interaktiv side
Ændret (Changed)
CancelProgressiveLoadannullerer nu aktivt intervalarbejde før nativ tilgængeligheds- og strøm-nedrivning, og forældede transport-fuldførelser ignoreres sikkertTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.69.0
Version 2.68.0
Tilføjet (Added)
TPdfProgressiveDocumentholder PDFiums tilgængelighedssession i live, mens en fjern- eller voksende random-access-strøm modtager de byte-intervaller, PDFium anmoder omCheckDocumentAvailability,CheckFormAvailabilityogLoadAvailablePagereturnerer sammenlagteTPdfDownloadRange-hints, så en vært kun kan hente de data, der skal bruges for at åbne og vise en lineariseret sideAvailableByteCountunderstøtter monotone sammenhængende downloads, mensOnDataAvailableunderstøtter sparse- og ude-af-rækkefølge-interval-caches
Ændret (Changed)
- Lineariserede filer bruger PDFiums native progressive dokument-, formular- og side-porte; ikke-lineariserede filer skifter automatisk til den native brugerdefinerede strøm-loader, efter den komplette fil er til stede
TPdfStreamAdapterkan eksponere en logisk endelig størrelse, der adskiller sig fra de aktuelt gemte bytes, samtidig med at den eksplicitte 4 GiBFPDF_FILEACCESS-grænse bevaresTPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.68.0
Version 2.67.0
Tilføjet (Added)
TPdfView.AllowFormEventsslår de mus-, tastatur- og fokushændelser fra, som fremviseren videresender til form-fill-laget, til en skrivebeskyttet fremviser eller en, der selv styrer formularinteraktionen- Formularfelter renderes stadig normalt, når den er slået fra: sideindlæsning og -lukning er bevidst efterladt uden port, da de initialiserer formularlaget frem for at reagere på input
- Skifteren føjes til de eksisterende
AllowUserPageChange- ogAllowUserTextSelection-toggles og er som standard True, så eksisterende adfærd er uændret
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.67.0
Version 2.66.0
Tilføjet (Added)
- Navngivne handlinger, som et dokument rejser (ISO 32000-1 §12.6.4.11), når nu værten gennem den nye
OnNamedAction-hændelse; tidligere blev hver eneste af dem kasseret - Hvis de ikke håndteres, flytter de fire standardnavne til navigation —
NextPage,PrevPage,FirstPage,LastPage— siden og låser ved første og sidste side i stedet for at wrappe rundt TPdf.PerformNamedActionlader en applikation udløse samme adfærd direkte og returnerer False for et navn, der ikke har nogen biblioteksleveret betydning
Rettet (Fixed)
- En krypteringstest målte en stream-krop ved at scanne baglæns fra
endstream, hvilket lejlighedsvist mistolkede en ciphertext-byte som et linjeterminator-tegn og rapporterede en periodisk fejl; biblioteket var korrekt hele vejen igennem
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.66.0
Version 2.65.0
Tilføjet (Added)
BuildToUnicodeCMapgenererer den ToUnicode CMap (ISO 32000-1 §9.10.3), en CID-skrifttype skal bruge, så dens tekst kan kopieres, søges og læses af assisterende teknologi — uden én renderes teksten korrekt, men udtrækkes som ingenting- Poster opdeles i bidder ved grænsen på 100 pr. blok, som specifikationen fastsætter, duplikerede glyffer skrives én gang, og
.notdefspringes over - CMap'en følger konventionen CID = GID, så der kræves ingen
CIDToGIDMap-strøm ved siden af den
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.65.0
Version 2.64.0
Tilføjet (Added)
- Ink- og stempelannoteringer tegner sig selv fra deres egne sideobjekter frem for fra sidens content stream, og disse objekter er nu tilgængelige:
AnnotationObjectCountogAnnotationObjectInfolæser dem,AddPathToAnnotationgiver annoteringen en sti bygget medCreatePath, ogRemoveAnnotationObjectsletter ét - At opbygge et stempls udseende kræver ikke længere et eksternt værktøj: opret stien som sædvanlig, og giv den derefter til annoteringen i stedet for til siden
- PDFium accepterer kun sideobjekter på ink- og stempelundertyper, så enhver anden undertype afvises med en meddelelse, der nævner begrænsningen, i stedet for at fejle uigennemskueligt
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.64.0
Version 2.63.0
Tilføjet (Added)
TPdf.AddStandardFontTexttegner tekst med en af de 14 skrifttyper, som enhver PDF-læser skal levere, uden at indlejre noget skrifttypeprogram overhovedet — den resulterende fil er målbart mindre end den samme tekst tegnet medAddText, som indlejrer den system-face, den finder- Den nye
TPdfStandardFont-enum navngiver alle 14 faces, så en kalder ikke kan stave et basis-skrifttypenavn forkert; PDFium matcher disse navne præcist, og en tastefejl ville tavst give ingen skrifttype - PDF/A og PDF/X kræver begge alle skrifttyper indlejret, så output rettet mod disse profiler bør fortsætte med at bruge
AddText
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.63.0
Version 2.62.0
Tilføjet (Added)
TPdf.TextObjectGlyphOutlinereturnerer konturen af én glyf i et tekstobjekts skrifttype som stisegmenter, til at konvertere tekst til vektorgrafik eller inspicere en glyf, som en skrifttypeerstatning kan have ændret- Resultatet genbruger den eksisterende
TPdfPathSegments-type, så det læses præcis som konturen af et tegnet stiobjekt - Koordinaterne ligger i skrifttypens eget designrum, normaliseret så én em er 1.0; den anmodede skriftstørrelse skalerer dem ikke, så en kalder, der ønsker enhedsenheder, ganger selv med punktstørrelsen
- Et tomt resultat betyder, at skrifttypen ikke eksponerer nogen kontur for den glyf, hvilket ikke er en fejl; at anmode om en glyf for et ikke-tekstobjekt rejser en fejl
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.62.0
Version 2.61.0
Tilføjet (Added)
TPdf.InspectAvailabilityrapporterer, hvad PDFium kan sige om en PDF uden at indlæse den som dokument: om filen er lineariseret (“web optimeret”), om en fuld parsing ville lykkes, om den indeholder formulardata, og hvilken side en fremviser ville vise først- De nye typer
TPdfAvailability,TPdfLinearizationogTPdfFormAvailabilitybærer svarene; strømmen læses, men tilbageholdes ikke, og dens position gendannes ved retur - Dette lukker det sidste hul i
FPDFAvail_*-familien, som var bundet og indlæst, men ikke havde nogen kalder noget sted i biblioteket - Delphi, Lazarus og C++Builder dækker hver de rapporterede fakta, garantien for strømpositionen og afvisningen af nil-strømme
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.61.0
Version 2.60.0
Tilføjet (Added)
- Marked content (ISO 32000-1 §14.6) kan nu nås fra high-level-API'en:
PageObjectMarkslæser hvert BDC-tag og dets egenskabsliste fra et sideobjekt,AddPageObjectMarkskriver ét,RemovePageObjectMarksletter ét, ogPageObjectMarkedContentIDrapporterer MCID'en - De nye typer
TPdfContentMark,TPdfContentMarkParamogTPdfMarkParamKindbærer tagnavnet og dets typede parametre (heltal, float, string, blob), med værditypen opløst fra PDFium frem for gættet fra den getter, der lykkes - At tilføje et mærke genopbygger sidens content stream, så tagget overlever en gemning; dette skulle være eksplicit, fordi
SaveAsikke selv regenererer indhold - Delphi, Lazarus og C++Builder bærer hver seks tilfælde, herunder ét, der udpakker den gemte content stream for at bekræfte, at BDC-operatoren og dens egenskabsliste reelt landede
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.60.0
Version 2.59.0
Tilføjet (Added)
TPdfAnnotationfårHasLinkUriogLinkUri, såCreateAnnotationnu kan producere et fungerende weblink: annoteringen gemmes med en/URI-handling, der peger på den givne adresse- At sætte et link-URI på en anden undertype end
anLinkrejser en fejl, da kun en Link-annotering bærer en handlingsordbog - Feltet er indtil videre write-only; at læse et linkmål tilbage går gennem
FPDFLink_*-familien, som skal bruge dokument-handle'et - Delphi, Lazarus og C++Builder verificerer alle, at de gemte bytes bærer
/URI-handlingen og måladressen
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.59.0
Version 2.58.12
Tilføjet (Added)
- PDF/X-validering rapporterer
pvxiTrimBoxWithArtBox, når en side bærer/TrimBoxog/ArtBoxsammen; begge angiver den færdige side, så en RIP har ingen mulighed for at vide, hvilken der er autoritativ (ISO 15930) - PDF/X-validering rapporterer
pvxiPageBoxOutsideMediaBox, når/TrimBoxeller/BleedBoxrækker uden for/MediaBox, inklusive en boks med negativt udgangspunkt; en boks uden for mediet kan ikke afbildes - Rektangler normaliseres før sammenligning, så begge hjørneordener accepteres, og en boks, der rammer mediekanten præcist, validerer stadig
- Preflight-rapporter klassificerer begge problemer under struktur og nævner den konkrete løsning
- Delphi, Lazarus og C++Builder dækker alle de to afviste tilfælde og det konforme
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.12
Version 2.58.11
Tilføjet (Added)
- PDF/UA-validering rapporterer
pvuaiTociWithoutToc, når et dokument tagger TOCI-poster, men aldrig tagger TOC-containeren, de hører til, hvilket efterlader assisterende teknologi med at oplæse indholdsfortegnelseselementer uden nogen indholdsfortegnelse (ISO 14289-1 §7.7) - Preflight-rapporter klassificerer problemet under struktur og anbefaler at wrappe posterne i et TOC-element
- C++Builder får sin første PDF/UA-testdækning ved siden af Delphi- og Lazarus-tilfældene
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.11
Version 2.58.10
Tilføjet (Added)
- PDF/A-validering rapporterer
pvaiSymbolicTrueTypeEncoding, når en symbolsk TrueType-skrifttype bærer en/Encoding-post; ISO 19005-1 §6.3.7 tillader kun skrifttypens indbyggede cmap, så en/Encodingville stride imod den - Det symbolske flag læses fra
/FontDescriptor, uanset om det skrives inline i skrifttypeordbogen eller refereres indirekte; en ikke-symbolsk skrifttype bevarer sin påkrævede/WinAnsiEncodingeller/MacRomanEncodinguden at blive flaget - Preflight-rapporter klassificerer problemet under indhold og anbefaler at fjerne posten
- Delphi og Lazarus dækker det flaggede tilfælde plus begge accepterede tilfælde; C++Builder dækker det flaggede og det ikke-symbolske tilfælde
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.10
Version 2.58.9
Tilføjet (Added)
- PDF/A-validering rapporterer container-implementeringsgrænserne i ISO 19005-1 Annex C:
pvaiNameOverLimitfor navne længere end 127 bytes,pvaiArrayOverLimitud over 8191 elementer,pvaiDictOverLimitud over 4095 poster ogpvaiNestingOverLimitud over 28 indlejringsniveauer - Grænserne er inklusive, så en container, der ligger præcist på én, validerer stadig; test fastgør både den afviste og den accepterede side af hver grænse
- Preflight-rapporter klassificerer de fire problemer under struktur og nævner den konkrete grænse i hver anbefaling
- Delphi og Lazarus dækker alle fire grænser plus grænsetilfældene; C++Builder dækker array-grænsen og grænsen
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.9
Version 2.58.8
Tilføjet (Added)
- PDF/R-validering rapporterer
pvriPageImageMismatch, når billedeantallet ikke matcher sideantallet; ISO 23504-1 §6.5.1 gør hver side til præcis ét stripbillede, så en side uden eller med flere er ikke konform - Delphi-, Lazarus- og C++Builder-test dækker en side uden billede, en side med to og det konforme tilfælde med ét billede
Ændret (Changed)
- PDF/R-marker-injektionstestene starter nu fra en kildeside, der allerede bærer et stripbillede, da markerinjektion tilføjer metadata og ikke kan levere sideindhold
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.8
Version 2.58.7
Tilføjet (Added)
- PDF/R-validering rapporterer
pvriFontForbidden, når en side navngiver en skrifttyperessource; en PDF/raster-side bærer det scannede billede og intet andet (ISO 23504-1 §6.5.2) - PDF/R-validering rapporterer
pvriForbiddenImageFilterfor stripkodninger uden for den hvide liste, så/LZWDecode,/RunLengthDecode,/ASCII85Decode,/ASCIIHexDecode,/JBIG2Decodeog/Cryptafvises, mens/CCITTFaxDecode,/DCTDecode,/JPXDecodeog/FlateDecodebestår (ISO 23504-1 §6.6) - Preflight-rapporter klassificerer begge problemer under indhold og anbefaler den konkrete løsning
- Delphi-, Lazarus- og C++Builder-test dækker en skrifttyperessource, et afvist filter og en side, der kun bruger kodninger på den hvide liste
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.7
Version 2.58.6
Tilføjet (Added)
- PDF/E-validering rapporterer
pveiFontNotEmbedded, når et dokument viser skrifttypebrug, men ikke bærer noget indlejret skrifttypeprogram, så kravet kontrolleres på DLL-fri-stien lige så vel som gennem PDFium - En teknisk tegning skal renderes identisk årtier senere, så ISO 24517-1 fritager ingen af de 14 standardskrifttyper; kontrollen gælder lige meget
/Type1,/TrueType,/Type0og/MMType1 - Preflight-rapporter klassificerer det nye problem under indhold og anbefaler at indlejre alle skrifttypeprogrammer
- Delphi-, Lazarus- og C++Builder-test dækker en deskriptor uden program, en indlejret
/FontFile2og et dokument, der slet ikke bruger skrifttyper
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.6
Version 2.58.5
Tilføjet (Added)
InjectPdfEMarkersskriver nu den output intent, ISO 24517-1 §6.2 kræver: en indlejret sRGB ICC-destinationsprofil, en/GTS_PDFE1-output intent der navngiver den, og katalogets/OutputIntents-array, alt sammen som del af samme inkrementelle opdatering- Profilstrømmen afleder sit
/Nfra ICC-headeren i stedet for at antage tre komponenter, så en CMYK-profil ville blive beskrevet korrekt - PDF/E-validering rapporterer
pveiMissingOutputIntentogpveiMissingIccProfile, så en kandidat uden en angivet farvebetingelse accepteres ikke længere - Delphi-, Lazarus- og C++Builder-test dækker en accepteret output intent, én uden destinationsprofil og et katalog helt uden output intent
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.5
Version 2.58.4
Tilføjet (Added)
- PDF/X-validering rapporterer nu
pvxiFontNotEmbeddedfra en byte-scanning, så en ikke-indlejret skrifttype fanges på DLL-fri-stien i stedet for kun gennem PDFium-understøttede kontrol - I modsætning til PDF/A er de 14 standardskrifttyper ikke fritaget i PDF/X, så enhver skrifttypebrug uden et indlejret skrifttypeprogram rapporteres
- Kontrollen forbliver konservativ: den udløses kun, når filen viser skrifttypebrug, men slet ikke bærer nogen
/FontFile,/FontFile2eller/FontFile3, fordi at tælle deskriptorer op mod programmer giver falske positiver ved delte deskriptorer - Delphi-, Lazarus- og C++Builder-test dækker en deskriptor uden program, et indlejret program og et dokument, der ikke bruger skrifttyper
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.4
Version 2.58.3
Tilføjet (Added)
- PDF/X-validering rapporterer nu
pvxiColorSpaceForbidden, når en PDF/X-1a-kandidat bærer/DeviceRGB,/CalRGBeller/Lab, hvilket ISO 15930-1 §6.2 udelukker fra sin CMYK-udveksling - Kontrollen er kun bundet til PDF/X-1a, så PDF/X-3 og senere tillader fortsat RGB og de enhedsuafhængige farverum, de parerer med output intenten
- Kun entydige farverumsnavne-tokens testes; en
ICCBased-strøm skal have sit/Nopløst og forbliver i objektmodel-laget - Delphi-, Lazarus- og C++Builder-test dækker et flaget RGB-farverum, et flaget Lab-farverum, et accepteret CMYK- og gråtonepar samt det tilladte tilfælde på PDF/X-3
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.3
Version 2.58.2
Tilføjet (Added)
- PDF/X-validering rapporterer nu
pvxiTransparencyForbiddenfor en transparensgruppe eller en aktiv soft mask, hvilket ISO 15930-1 §6.2 (PDF/X-1a) og ISO 15930-3 §6.3 (PDF/X-3) forbyder - Kontrollen er bundet til den detekterede overensstemmelse, så PDF/X-4 og PDF/X-6 tillader fortsat transparens, og en fil, hvis niveau ikke kunne identificeres, flages aldrig for en regel, der måske ikke gælder for den
- En soft mask, der er eksplicit slået fra med
/SMask /None, behandles ikke som transparens PdfHasActiveSMasker flyttet fraFPdfPdfatilFPdfPdfCommon-interfacet, så alle validatorer kan dele én soft-mask-regel- Delphi-, Lazarus- og C++Builder-test dækker en flaget gruppe på X-1a, en flaget soft mask på X-3, en deaktiveret soft mask og det tilladte tilfælde på X-4
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.2
Version 2.58.1
Tilføjet (Added)
- PDF/X-validering kontrollerer nu formen af den output intent, ISO 15930-7 §6.2.4 kræver:
pvxiOutputIntentSchemerapporterer en undertype, der er til stede, men ikke er/GTS_PDFX, ogpvxiOutputIntentMissingIdentifierrapporterer en manglende/OutputConditionIdentifier - Undertypen matches som et helt navne-token, så et længere navn som
/GTS_PDFXVersionbestår ikke længere, mens en#xx-escaped stavemåde af samme navn stadig gør - En output intent, der slet ikke bærer nogen undertype, efterlates urørt, fordi dens fravær allerede rapporteres af marker-niveau-problemerne
- Preflight-rapporter anbringer begge problemer under output intent-kategorien og foreslår løsningen
- Delphi-, Lazarus- og C++Builder-test dækker den accepterede undertype, en PDF/A-undertype, et længere navne-token, en fraværende undertype og en manglende betingelsesidentifikator
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.58.1
Version 2.58.0
Ændret (Changed)
- Alle 35 callbacks, som PDFium aktiverer fra sine egne C++-frames (form fill, XFA, JavaScript-platform, progressiv render-pause samt strømlæsning og -skrivning), indeholder nu enhver Pascal-undtagelse og returnerer den dokumenterede fejlværdi i stedet for at folde ud på tværs af sproggrænsen
- En hændelseshandler, der rejser, en fejlende allokering eller en uventet fejl inde i en callback kan derfor ikke længere tage processen ned eller efterlade PDFium i en udefineret tilstand
Rettet (Fixed)
- Registrering af en formular-timer lakkede sin post, når den underliggende timer ikke kunne oprettes
Tilføjet (Added)
- Delphi-, Lazarus- og C++Builder-test dækker nu gemning til en destinationsstrøm, der afviser skrivninger, og fastslår, at dokumentet forbliver brugbart og gembart bagefter
Version 2.57.8
Rettet (Fixed)
- Ældre Delphi-udgivelser (XE5 og tidligere) standsede kompileringen af trial-biblioteket med
E2003 Undeclared identifier: 'GetTickCount64'iFPdfPades.pas, fordi Windows-enheden leveret med de kompilatorer ikke eksporterer symbolet - De samme kompilatorer fejlede også på
GetUserDefaultLocaleNameiPDFium.pasog påTBytes-til-array of Byte-tildelingen iGetXfaFormPackets, så XFA-locale-callbacken og packet-øjebliksbilledet nu også bygger på de kompilatorer
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.8
Version 2.57.7
Ændret (Changed)
- Hver gemningssides omskrivning trunkerer nu destinationsstrømmen før skrivning i stedet for kun at spole den tilbage, så en kalderleveret buffer, der allerede indeholdt et længere dokument, ikke kan beholde en forældet hale efter det nye
%%EOF - Delphi-, Lazarus- og C++Builder-test dækker nu gemning til en præ-udfyldt strøm
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.7
Version 2.57.6
Rettet (Fixed)
- Objektscanningen, der går forud for kryptering, accepterede ciferrækker af enhver længde, så et langt tal hvor som helst i filen kunne wrappe til et negativt eller falsk objektnummer og tilføje en fantompost til den genopbyggede cross-reference-tabel
- Objektnumre over ISO 32000-1 Annex C-grænsen og generationer over 65535 afvises nu som objekt-headere i stedet for at blive trunkeret
Tilføjet (Added)
- Delphi-, Lazarus- og C++Builder-test fastslår nu det præcise antal i-brug-poster i den genopbyggede tabel
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.6
Version 2.57.5
Rettet (Fixed)
- Kryptering med
EncryptMetadata = Falseskrev/EncryptMetadata falseind i Encrypt-ordbogen, men krypterede stadig dokumentets metadata-strøm, så en læser, der fulgte den deklaration, fandt ulæselig XMP - En
/Type /Metadata-strøm kopieres nu uændret, når metadatakryptering er slået fra, mens enhver anden strøm stadig krypteres
Tilføjet (Added)
AnsiNameTokenMatchesKeyer nu del afFPdfPdfCommon-interfacet til delimiter-bevidste navnesammenligninger- Delphi-, Lazarus- og C++Builder-test dækker nu begge metadatakrypteringstilstande
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.5
Version 2.57.4
Rettet (Fixed)
- Den cross-reference-tabel, der blev genopbygget under kryptering, udelod det obligatoriske objekt-0-fri-liste-hoved, som ISO 32000-1 §7.5.4 kræver, så dens første undersektion startede ét objekt for sent
- Hver genopbygget post hævdede generation 0; objekter skrevet med en højere generation bevarer den nu, så tabellen stemmer overens med de objekt-headere, den peger på
Tilføjet (Added)
- Delphi-, Lazarus- og C++Builder-test dækker nu fri-liste-hoved-posten og bevarelse af generation i den genopbyggede tabel
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.4
Version 2.57.3
Rettet (Fixed)
- Krypteret output tabte nøgleordet
streamfra hvert stream-objekt, så den gemte fil ikke længere var gyldig PDF-syntaks, og strenge læsere rapporterede sideindholdet som hverken en strøm eller et array af strømme /Length-omskrivningen matchede/Lengthsom en almindelig delstreng, så en stream-ordbog med/Length1(enhver indlejret skrifttype) fik sit nøglenavn ødelagt, mens den reelle længde forblev forældet- En strøm, der angiver sin længde indirekte som
/Length N 0 R, fik objektnummeret overskrevet med den nye længde; posten erstattes nu af den direkte krypterede længde - En stream-ordbog helt uden
/Lengthmodtager nu én i stedet for at efterlade læseren uden en længde
Tilføjet (Added)
AnsiFindDictKeyTokener nu del afFPdfPdfCommon-interfacet til delimiter-bevidste ordbogsnøgle-opslag på topniveau- Delphi-, Lazarus- og C++Builder-test dækker nu bevarelse af
/Length1, erstatning af indirekte længder og overensstemmelse af stream-kropsstørrelsen
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.3
Version 2.57.2
Rettet (Fixed)
SaveAsEncryptedogSaveAsEncryptedToStreammedRevision = erR6producerede dokumenter, der afviste deres egen korrekte adgangskode i cirka én ud af fire filer, fordi ISO 32000-2 §7.6.4.3-algoritme 2.B's rundetæller startede én runde for lavt, og den ekstra runde ændrede værdierne/U,/O,/UEog/OE- R6-krypterede dokumenter genåbnes nu med bruger- eller ejerskodeord i enhver konform læser og afviser stadig en forkert adgangskode
Tilføjet (Added)
- Lazarus- og C++Builder-testsuiter fik krypteringsdækning, der tidligere kun fandtes i Delphi: R6-nøglelængder, Encrypt-ordbogsfelter, en gentagen krypter-og-genåbn-roundtrip og afvisning af forkert adgangskode
Ændret (Changed)
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.2
Version 2.57.1
Ændret (Changed)
- Indtastning i et formularfelt, flytning af tekstmarkøren og til- og frakobling af afkrydsningsfelter gentegner nu kun det område, PDFium rapporterer som beskadiget, i stedet for hele fremviseren
- Beskadigelsesbokse normaliseres for sidens opadgående Y-akse, udvides med én pixel, så anti-aliased widget-kanter forbliver rene, og klippes til det synlige klientområde
- En beskadigelsesboks, der er scrollet helt ud af viewporten, planlægger ikke længere en gentegning, mens en inaktiv visning eller en umappet side stadig falder tilbage til en fuld gentegning
- Delphi-, Lazarus- og C++Builder-test dækker nu afgrænset form-invalidering, vendte sidebokse, off-screen-bokse og sikkerhed ved inaktiv visning
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.1
Version 2.57.0
Tilføjet (Added)
TPdfThumbnailView.Orientationunderstøtter vertikale og horisontale miniaturelayout, mens den eksisterende vertikale standard bevaresFirstVisiblePageIndex,LastVisiblePageIndexogEnsureCurrentPageVisibleeksponerer og styrer miniaturevisningen med et-baserede sideindekser
Ændret (Changed)
- Ændring af
CurrentPageIndexruller nu den valgte miniature ind i visningen i begge orienteringer - Delphi-, Lazarus- og C++Builder-test dækker nu orienteringsstandarder, skift, synlige intervaller og valgt-side-synlighed
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.57.0
Version 2.56.2
Ændret (Changed)
HighlightSearchText,AddSearchTextHighlightogClearHighlightinvaliderer nu kun de rektangler for søgeområder, der blev tilføjet eller fjernet, i stedet for at gentegne hele fremviseren- Erstatning af fremhævninger med de samme match eller tilføjelse af dublet-match planlægger ikke længere en unødvendig gentegning
- Delphi-, Lazarus- og C++Builder-test dækker nu afgrænset invalidation, idempotente opdateringer, rydning og sikkerhed ved inaktiv visning
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.56.2
Version 2.56.1
Ændret (Changed)
TPdfThumbnailViewgenbruger nu renderede bitmaps for sider, der forbliver synlige på tværs af gentegninger og tilstødende rullepositioner- Cachen bevarer kun det aktuelle synlige sideområde og frigiver poster præcist, når sider forlader dette område, det tildelte dokument ændres, eller miniaturedimensioner ændres
- Delphi-, Lazarus- og C++Builder-test dækker nu genbrug af cache, beskæring af viewport, størrelsesinvalidation, dokumentudskiftning og komponentødelæggelse
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.56.1
Version 2.56.0
Tilføjet (Added)
TPdfView.CutSelectedFormTextToClipboardogTPdfView.PasteFormTextFromClipboardtilbyder Unicode-udklipsholderredigering for den fokuserede redigerbare form-widget
Ændret (Changed)
- Fokuserede form-redigerere håndterer nu standard copy-, cut-, paste- og select-all-tastaturgenveje, før tekstinput videresendes til PDFium
- Cut og paste afviser skrivebeskyttede felter og sessioner uden form-udfyldnings- eller ændringstilladelse, mens cut kopierer med succes før fjernelse af valgt tekst
- Delphi-, Lazarus- og C++Builder-test dækker nu ingen-fokus, retur-genvejs- og skrivebeskyttet-afvisningsadfærd
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.56.0
Version 2.55.0
Tilføjet (Added)
TPdfView.AddSearchTextHighlighttilføjer unikke match for endnu en søgeterm til det aktuelle sideoverlay, hvilket tillader flere forespørgsler at forblive fremhævet sammen
Ændret (Changed)
HighlightSearchTextforbliver erstatningsindgangspunktet og deler nu den additive scanner, mens duplikerende tegnområder ignoreres ogClearHighlightfjerner det komplette akkumulerede sæt- Delphi-, Lazarus- og C++Builder-test dækker nu akkumulering af forskellige forespørgsler og undertrykkelse af duplikerende områder
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.55.0
Version 2.54.0
Tilføjet (Added)
TPdfeksponerer nu komplette sideobjekt-øjebliksbilleder, grupperede stilopdateringer, affine objekttransformeringer, stisegmenter, klippestier og Form XObject-børn- Tegningsinspektion omfatter nu fyld- og stregfarver, skrifttypenavn og -flag, løse glyf-grænser, effektive matricer, tekstobjekt-håndtag og tegn-til-tekst-indekskonvertering
- Annoteringer round-trip nu kantgeometri og normale, rollover- og down-udseende-strømme
- Nye rå og afkodede miniature-accessors, sideindholds- og annoteringstransformeringer samt
RenderPageWithMatrixtilbyder direkte avancerede renderings- og redigeringsstier
Ændret (Changed)
- Sideobjekt-stilændringer kan nu commit'es som én batch, så PDFium kun regenererer sideindhold én gang
- Matrix-rendering bruger den eksisterende zero-copy bitmap-sti, når destinationsbitmap-layoutet er kompatibelt
Version 2.53.1
Løst (Fixed)
- Den indbyggede kinesiske Copy-menu-caption bruger nu kodningsuafhængige Unicode-kodepunkter og vises korrekt i Lazarus-builds
- Ældre Delphi-toolchains kan kompilere
FPdfAsync, når deresWinapi.Windows-enhed udeladerGetTickCount64-erklæringen
Version 2.53.0
Tilføjet (Added)
- Ny
Tests.ApiCoverage-testfixture, der dækker offentlige TPdf-API'er, som tidligere havde nul end-to-end-testdækning:GetPageBox/SetPageBox(MediaBox/CropBox læse/skrive, manglende-boks-fejl og gem round-trip),FlattenPage/FlattenAllPages(returværdi og bevarelse af sideantal),GenerateFormAppearances(no-op på ikke-form-dokumenter),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 med adgangskode round-trip — verificerer at den krypterede fil nægter at åbne uden adgangskoden og åbner med den),DeletePage-grænsevalidering (side 0 og uden for intervallet rejserEPdfError) ogHasContents/HasAuthor-annotering-sentinel-værdierne introduceret i v2.38.0 (verificerer atDefault(TPdfAnnotation)lader dem væreFalse)
Version 2.52.0
Tilføjet (Added)
TPdfView.CopySelectedFormTextToClipboardkopierer tekstmarkeringen inde i den fokuserede AcroForm-widget til Windows-udklipsholderen somCF_UNICODETEXT
Ændret (Changed)
- Side-tekst- og fokuseret-form-kopieringsoperationer deler nu den samme defensive Unicode-udklipsholderskriver og lader udklipsholderen uændret, når deres markering er tom
- Delphi-, Lazarus- og C++Builder-test dækker nu inaktive eller ufokuserede form-kopieringskald og en fokuseret form-markerings round-trip gennem Windows-udklipsholderen
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.52.0
Version 2.51.0
Tilføjet (Added)
TPdfView.SelectLineAtvælger den visuelle tekstlinje, der indeholder en et-baseret side og et nul-baseret tegnindeks, uden at der kræves musinput
Ændret (Changed)
- Programmatisk linjevalg, trippel-klik-valg og
Shift+HomeellerShift+Enddeler nu én tegn-boks-linjegrænsesmodel - Delphi-, Lazarus- og C++Builder-test dækker nu stabilt linjevalg og ugyldige side- eller tegnindekser
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.51.0
Version 2.50.0
Tilføjet (Added)
TPdf.LoadDocumentaccepterer nu et nul-baseretIndex- ogCount-vindue ind i enTBytes-buffer, hvilket tillader indlejrede PDF'er at indlæse uden at allokere et midlertidigt byte-array-slice
Ændret (Changed)
- Byte-område-indlæsning afviser negative eller uden-for-område-vinduer, før dokumenttilstanden ændres, og bevarer de eksisterende bufferede og lånte-buffer-levetidsmuligheder
- Delphi-, Lazarus- og C++Builder-test dækker nu indlejrede PDF-vinduer og ugyldige byte-område-argumenter
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.50.0
Version 2.49.1
Tilføjet (Added)
TPdfView.FitModeunderstøtter nupfmFitHeighttil at tilpasse den aktuelle side til den synlige viewport-højde med horisontal rulning efter behov
Løst (Fixed)
- Tilpasningstilstande konvergerer nu efter at en rullelistændring ændrer klientområdet, hvilket holder fit-page-, fit-width- og fit-height-resultater konsistente mellem VCL og LCL
- Delphi-, Lazarus- og C++Builder-fremvisertest dækker nu
pfmFitHeight-valg og optællings-returture TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.49.1
Version 2.49.0
Tilføjet (Added)
- Den offentlige PDFium-bindingsflade dækker nu alle 470 eksporterede funktioner i de gennemgåede headers, herunder adgang til vedhæftningsbeskrivelser via
FPDFAttachment_SetDescriptionogFPDFAttachment_GetDescription TPdfeksponerer nu vedhæftningsbeskrivelser, krydsreference-gyldighed, trailer-slut-offsets, security-handler-revision, 64-bit hukommelsesindlæsning, signaturbyteområder, weblink-tekstområder og udvidede billeddata-, filter-, metadata- og ICC-profil-snapshots- Formularassistenter understøtter nu indbygget feltfokus, forespørgsler og opdateringer af fokuserede valgmuligheder, musehjuls-videresendelse, skrivbare blækstreger og formularoverlejringer efter progressiv rendering
Ændret (Changed)
FormFieldCount, formularfelt-indekser og tabulatorrækkefølge beskriver nu kun widget-annotationer i stedet for at inkludere urelaterede side-annotationer- Headless
TPdf-sider går nu ind i og forlader formular-udfyldning-sidelivscyklussen så indbygget fokus og fokuserede felt-API'er fungerer uden enTPdfView - Vedhæftningsbeskrivelses-eksporter er kapacitetsbegrænsede så programmer, der bruger en ældre PDFium-build, stadig kan indlæse biblioteket og opdage den utilgængelige funktion
Løst (Fixed)
- Progressiv siderendering tegner nu formular-kontrolelementer når formularudfyldning er aktiveret
- Delphi-, Lazarus- og C++Builder-test dækker nu den nye dokumentdiagnostik, vedhæftningsbeskrivelser, blækstier, formularadfærd, signaturbyteområder, weblinkområder og billedmetadata
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.49.0
Version 2.48.0
Tilføjet (Added)
TPdfMatrixeksponerer nu fabrikker, kloning og tildeling, endelig-tilstand- og invertibilitetsdiagnostik, tolerancebaseret sammenligning, translationsadgang, determinantrapportering og affin dekomponering- Prepend-komposition, pivot-bevidst rotation, skalering, skævvridning og spejlvendinger, plus stretch-, contain- og cover-rektangel-mapping understøtter lokalt-rum- og tilpasset-layout-arbejdsprocesser uden manuel koefficientaritmetik
- Ikke-muterende invers adgang, invers punkt-mapping, vektor- og firkant-transformationer, dynamiske punkt- og rektangel-batcher, in-place-varianter og enpas-transformerede grænser udvider den genanvendelige geometriflade
Ændret (Changed)
- Translation, skalering og akse-spejlvendinger opdaterer nu kun de berørte koefficienter i stedet for at rute gennem generel affin multiplikation
- Rektangeltransformation normaliserer sit input én gang, bruger en specialiseret eksakt akse-justeret sti hvor muligt og beregner generelle roterede grænser uden midlertidige punktposter
- Punkt- og rektangel-batchtransformationer allokerer ét resultat-array eller genbruger kalder-lagring, mens transformerede punktgrænser akkumuleres i ét pas uden et mellem-array
Løst (Fixed)
- Rektangel-mapping afviser nul-størrelse, ikke-endelige og
Single-overflydende resultater før offentliggørelse af en ubrugelig matrix - Delphi-, Lazarus- og C++Builder-test verificerer nu kompositionsrækkefølge, pivot-invarianter, inverse returture, tilpassede rektangler, dekomponering og masse-geometriadfærd
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.48.0
Version 2.47.0
Tilføjet (Added)
FPdfAsyncleverer nu strukturerede annulleringsårsager og -meddelelser, fjernbare tilbagekaldsregistreringer, timeout-baserede kilder, annulleringsventen og atomiske try-cancel-operationer gennem udvidede grænseflader, der bevarer den oprindelige APITPdfFuture<T>.RunExtilføjer konfigurerbar svar-afsendelse og worker-prioritet, mens resultat-konvolutter eksponerer operations-ID'er, værdigyldighed, undtagelsesklassenavne, fuldførelsestidstagning og genanvendelige fuldførelses-hjælpereTPdfAsyncExecutortilføjer en genanvendelig fast worker-pool med fire FIFO-prioritetsbaner, valgfri begrænset-kø-backpressure, annullerbare opgavehåndtag, timeout-bevidst venten, opgave-snapshots, aggregeret statistik og yndefuld nedlukning
Ændret (Changed)
- Gentagne asynkrone job kan genbruge worker-tråde og O(1)-kø-operationer i stedet for at oprette en tråd pr. opgave, mens synkroniseret fuldførelse forbliver tilgængelig for UI-værter
- Executor- og future-fejl bevarer undtagelsesklasse- og meddelelsesdiagnostik, annullering bevarer sin oprindelige årsag, og tilbagekaldsundtagelser forbliver isoleret fra worker-livscyklus og nedlukning
- Delphi-, Lazarus- og C++Builder-test dækker nu den udvidede annullerings-, future-metadata-, opgavekontrol-, backpressure-, prioriteringsordnet-, statistik-, fejl- og nedlukningsflade
Løst (Fixed)
- Samtidige annulleringsejere modtager nu et deterministisk første-skriver-resultat i stedet for at stole på en separat observations- og annulleringssekvens
- Hovedtråds-lediggangsventen behandler synkroniserede opgavesvar, hvilket forhindrer at en fuldført worker lader executoren blive permanent ikke-ledig under koordineret nedlukning
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.47.0
Version 2.46.0
Tilføjet (Added)
FPdfAsn1eksponerer nu identifikatorklasser, 64-bit højt-tag-nummer-kodning og -afkodning, parsede TLV-poster, nul-kopiering-barn-læser-vinduer, typede primitive afkodere og indholds- eller kodet-værdi-slices- DER-skrivere understøtter nu det fulde usignerede 64-bit INTEGER-interval, valideret vilkårligt INTEGER-indhold, ENUMERATED, automatisk UTCTime- eller GeneralizedTime-valg, application- og private-tags, multi-værdi-SEQUENCE og kanonisk sorteret SET OF-output
ValidateDerreturnerer offset-bevidste valideringsfejl mens den håndhæver konfigurerbare indlejring-, knudeantal-, indholdslængde-, fejlantal-, rod- og valgfri SET-sorteringsgrænser
Ændret (Changed)
- DER-sammenkædning og multi-værdi-komposition bruger én outputallokering, writer-buffere eksponerer reserve-, count-, capacity- og ejerskifs-operationer, og SET OF-sortering bruger nu
O(n log n)flettesortering - BOOLEAN-, INTEGER-, BIT STRING-, OBJECT IDENTIFIER-, NULL-, UTF8String-, PrintableString-, IA5String-, UTCTime- og GeneralizedTime-værdier modtager kanoniske form-tjek under kodning, typet afkodning eller validering
- Lazarus-runtime-pakken eksporterer nu
FPdfAsn1, og Delphi-, Lazarus- og C++Builder-test-suites øver den samme offentlige DER-flade
Løst (Fixed)
- Kontekstspecifikke tag-numre større end 30 afkortes ikke længere til de lave fem identifikator-bits
- Fejlagtige højt-tag-identifikatorer, ikke-minimale bestemte længder, ugyldig UTF-8, ikke-nul BIT STRING-padding, ugyldige tidsfelter, efterstillede rødder og ressourcegrænse-overtrædelser afvises deterministisk
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.46.0
Version 2.45.0
Tilføjet (Added)
FPdfPreflightReporttildeler nu Info-, Warning- eller Error-alvorlighed til hvert problem og eksponerer pr.-standard- og rapportniveau-alvorligheds-, status-, kategori-, problemkode-, opslags-, søge-, udfladnings- og filtrerings-API'er- Preflight-rapporter eksporterer nu SARIF 2.1.0, JUnit XML, NDJSON og oprindelig XML via matchende
To*- ogSave*ToFile-metoder til CI-, automations- og streaming-pipelines - Stabile SHA-256-rapport-fingeraftryk identificerer ækvivalente valideringsresultater uafhængigt af kildestier og genereringstidsstempler
Ændret (Changed)
- JSON-, CSV-, tekst-, Markdown- og HTML-rapporter inkluderer nu alvorlighed og udvidede status-sammendrag; HTML tilføjer tilgængelige tabeltekster og et statussammendrag
- Problem- og standard-samlingskonstruktion bruger geometrisk kapacitetsvækst, forespørgselsresultater er foruddimensioneret, JSON-escaping skriver til én begrænset output-buffer, og alle rapportfiler bruger én direkte UTF-8-writer
- Problem-kategori-sammendrag bruger deterministisk rækkefølge, tidsstempler inkluderer millisekunder, JSON bærer
formatVersion: 2, og CSV-celler neutraliserer regnearksformler
Løst (Fixed)
- JSON-eksport bevarer nu gyldige supplerende Unicode-par og erstatter isolerede UTF-16-surrogat-kodenheder i stedet for at udsende fejlbehæftede skalar-data
- HTML-eksport escaper nu apostroffer, og filtrerede rapportvisninger ejer uafhængige problem-arrays i stedet for at dele muterbar resultatlagring
TPdf.AboutInfo, Lazarus-pakke-metadata og installationsmetadata rapporterer nu ensartet Version 2.45.0
Version 2.44.0
Tilføjet (Added)
- Bogmærker og destinationer eksponerer åben tilstand, antal efterkommere, handlingsmål, destinationsvisningstilstande og op til fire visningsparametre
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissionogUserHasPermissiontilbyder typede dokumentinspektionssnapshots og rettighedsforespørgslerExtractThumbnail(PageNumber)renderer en anmodet side uden at ændre den aktive side, og RFC 3161-tidsstempelresultater eksponerer politik, genereringstidspunkt og nonce-detaljer
Ændret (Changed)
- Bogmærke-, JavaScript-, metadata-, destinations- og thumbnail-stier bruger validerede to-pass-buffere, geometrisk samlingsvækst og cyklussikker gennemløb
- Gem-postbehandling opløser den aktive katalog, sidetræ og åben handling gennem den nuværende xref-revision, cacher afkodede objektstreams og scanner PDF-ordbøger med leksikale grænser
- Delt PDF-parsing håndhæver nu nøjagtige objekthoveder, generationer, ordbogsnøgler, streamlængder, predictor-geometri, heltalsintervaller samt kommentar-, literal-streng- og heksadecimal-streng-grænser
- RFC 3161-svarvalidering binder nu både nonce og SHA-256-
messageImprint, kræver en strukturelt gyldig underskriver og anvender strenge DER-længde-, OID-, INTEGER- og GeneralizedTime-regler
Rettet (Fixed)
- Inkrementelle dokumenter vælger ikke længere inaktive duplikerede kataloger eller fejlbehæftede referencesuffikser, når en standard åben-handling tilføjes
- Tidsstempeltokens med long-form-DER-længder bevarer det komplette kodede token, mens fejlbehæftet CMS-valgfelt-rækkefølge og tomme underskridersæt afvises
- Rene Delphi-builds skriver nu PAdES-nonce-seed-felter gennem aligning-sikre bytekopier og videregiver XFA-svarbytes med den nøjagtige native pegeertype
TPdf.AboutInfo, Lazarus-pakkemetadata og installationsmetadata rapporterer nu ensartet Version 2.44.0
Version 2.43.0
Tilføjet (Added)
- XFDF-felt- og annotationsposter eksponerer nu tilstedeværelsesflag, der skelner mellem en udeladt XML-værdi og en eksplicit tom værdi
Ændret (Changed)
- XFDF-import accepterer navnerums-præfikserede elementer og attributter, blandet tekst- og CDATA-indhold, entitetsreferencer og mellemrumssignifikante værdier, mens ugyldige Unicode-skalarreferencer afvises
- XFDF-import og -eksport bruger indekseret feltmatchning og afgrænsede geometriske buffere, hvilket forbedrer gennemløb og spidsallokeringsadfærd for dybt indlejrede formularer, store annotationssamlinger, ink-lister, hjørner og markup-firkant-områder
- PDF/A- og PDF/UA-validering bruger afgrænset vækst for store side-, stream-, strukturnavn- og RoleMap-samlinger; PDF/UA-RoleMap-opløsning følger nu direkte arrays og eksakte indirekte navne- eller array-objekter
Rettet (Fixed)
- XFDF-roundtrips bevarer nu dybt indlejrede feltstier, eksplicitte tomme feltværdier, eksplicit tomt annotationsindhold og forskellen mellem manglende og tomt indhold
- Ugyldige indlæsninger af hukommelsesbuffere og sidetildelinger uden for området afvises uden at efterlade delvis dokument- eller sidestatus, og en mislykket native sidegenindlæsning bevarer den tidligere aktive side
- Store marked-content-identifikatorer og signatur-metadatabuffere afgrænses og valideres før allokering eller native adgang
Version 2.42.0
Tilføjet (Added)
TPdfMatrixtilbyder nuInvert,TryInvert,TransformPointogTransformRecttil koordinatafbildning, hit-testing, normaliserede grænser og eksplicit singular-matrix-håndteringTPdf.WrapTexthar fået enBreakLongWords-overload, der opdeler CJK- og anden tekst uden mellemrum, mens gyldige UTF-16-surrogatpar holdes sammenTPdfAnnotation.AttachmentPointSetseksponerer enhver firkant i flerlinjede markup-annotationer, mens det eksisterendeAttachmentPoints-felt forbliver et alias for det første sæt
Ændret (Changed)
- Tekstudtrækning, opbygning af læsbart indhold, ordopslag og spoken-text-offset-kortlægning bruger nu afgrænset allokering og binære opslagsstier, hvilket reducerer gentagne allokeringer og lineære scanninger på store sider
- ASN.1-serialisering og krypteret PDF-generering bruger nu geometriske outputbuffere; sortering af krypterede objekter bruger
O(n log n)-sortering, og xref-rækker skrives direkte til den endelige buffer WrapTextbevarer CR-, LF- og CRLF-linjegrænser og genbruger ét native målingsobjekt til hele operationen- XFDF-import og -eksport bevarer enhver markup-firkant; import anvender også RGB-/interne farver og analyserer decimal-koordinater uafhængigt af processens locale
Rettet (Fixed)
- Legacy-kaldere kan igen opdatere annotationsindhold og forfatter ved at tildele ikke-tomme strenge uden at indstille de nyere
HasContents- ogHasAuthor-sentineler - Eksplicit tomme annotationsstrenge bruger nu en gyldig nul-termineret native buffer, så sletning af
/Contents,/Tog andre valgfrie tekstnøgler ikke længere sender en nil-pointer til PDFium
Version 2.41.0
Ændret (Changed)
- Preflight-rapporten
SaveJsonToFile,SaveMarkdownToFileogSaveTextToFileskriver nu UTF-8 på Delphi (svarende til den eksisterendeSaveHtmlToFile) i stedet for systemets ANSI-tegntabel; tegn uden for ASCII-området i filstier, anbefalinger og omfangsbemærkninger blev forvrænget på Delphi, når de blev gemt via disse metoder SaveCsvToFileskriver nu UTF-8 med et BOM-præfiks, så Excel til Windows automatisk registrerer kodningen; uden BOM behandler Excel en UTF-8 CSV som tegntabel 1252 og forvrænger eventuelle tegn uden for ASCII-området
Rettet (Fixed)
ExtractImages-demoen lækkede de cachelagredeTBitmap-objekter iFExtractedImages, når formularen blev lukket uden først at rydde dem eksplicit; formularen tilsidesætter nuDestroyfor at kaldeClearExtractedImages, hvilket frigiver alle cachelagrede bitmaps
Version 2.40.0
Ændret (Changed)
TPdf.RenderPage(HDC, ...)maskerer nu FPU/SSE-undtagelser omkringFPDF_RenderPage-kaldet, hvilket matcherTPdfView.RenderPage(HDC)(rettet i v2.25.0) og alle bitmap-returnerende renderingspunkter; den direkte-til-DC-overload påTPdf-niveau efterlod tidligere FPU-undtagelser umaskeret på compilere før D12
Rettet (Fixed)
ColorToARGBreturnerer nu en fuldt gennemsigtig pixel (alfa 0) forclNoneogclDefaulti stedet for at behandle sentinel-værdien som en bogstavelig RGB-farve; den tidligere adfærd gav en mørk, næsten uigennemsigtig udfyldning, når en kalder angivclNoneog forventede “ingen farve”
Version 2.39.1
Rettet (Fixed)
- Eksplicitte PDF 1.3-gemninger fjerner nu posterne
/SMask /None,/AIS falseog/TK true, som kun gentager den oprindelige grafikstatus, mens de fortsætter med at afvise ikke-standardiserede gennemsigtighedsstatusser
Version 2.39.0
Ændret (Changed)
CreatePDFogImageToPDFbruger nu bekræftede gemme-destinationer og rapporterer succes, nårSaveAser fuldførtBatchExport,PDFtoJpgogSplitPDFallokerer nu unikke outputmapper, så gentagne kørsler og input med samme navn bevarer tidligere resultaterSplitViewomslutter nu søgningen én gang uden at efterlade skjult sidestatus efter annullering eller manglende match, og afbryder ufuldstændige udskriftsjob i stedet for at sende delvist output
Rettet (Fixed)
MergePDFafviser nu fejlformaterede sidetalstokens og kildeoverskrivende outputstier, tæller de faktisk importerede sider og nægter at gemme et tomt resultat- Delphi- og C++Builder-
Attachment-demoerne gemmer nu på samme sti via en rollback-sikker filudskiftning, så et mislykket omdøb ikke kan fjerne den originale PDF
Version 2.38.0
Ændret (Changed)
SetAnnotationDatabeskytter nu skrivning af/Contentsog/AuthorbagHasContents/HasAuthor-sentinels påTPdfAnnotation, hvilket matcher det eksisterendeHasName/HasSubject/HasIcon-mønster; tidligere blev disse to felter skrevet betingelsesløst, så tildeling af enDefault(TPdfAnnotation)-record for kun at opdatere farve eller flag stiltiende overskrev annotationens eksisterende indhold og forfatter med tomme strenge;GetPageAnnotationsætter nu disse sentinels, så en læs-rediger-skriv-cyklus bevarer de oprindelige værdier
Rettet (Fixed)
GenerateFormAppearanceslæser nu værdien af afkrydsningsfeltet/radioknappen viaFPDFAnnot_GetFormFieldValue(som navigerer to overordnet feltordbog i henhold til ISO 32000-1 §12.7.5) i stedet forFPDFAnnot_GetStringValue(Annot, 'V', ...)(som læser widget-ordbogen); widgetten indeholder normalt ikke/V, så/ASblev aldrig synkroniseret med den markerede tilstand, og et fladgjort afkrydsningsfelt/radioknap blev vist som ikke-markeret
Version 2.37.0
Ændret (Changed)
ParseTsaUrlbegrænser nu porten til1..65535efter parsing; en for stor portværdi ville ellers blive afkortet viaDWORD-truncering og kunne ende på en gyldig port- XFDF
ParseFieldaccepterer nu en dybdeparameter (standard 0, begrænset til 64) og returnerer et tomt felt ved grænsen, så en ondsindet indlejret<field>-kæde med en dybde på 100.000 ikke længere kan forårsage stakoverløb
Rettet (Fixed)
- TSA HTTP-anmodning beskytter nu mod en tom anmodningskrop før overførsel af
@ReqDer[0]tilWinHttpSendRequest; en dereferering af et dynamisk array med længden nul ville tilgå en ugyldig pointer;BuildTimeStampReqreturnerer altid en ikke-tom SEQUENCE, men kaldestedet beskytter nu kontrakten
Bemærkninger (Notes)
FPdfTsaWin-headerkommentaren om HTTPS-tilbagekaldelseskontrol er blevet rettet: WinHttp validerer servercertifikatkæden som standard, men udfører ikke CRL/OCSP-tilbagekaldelseskontrol, medmindre det udtrykkeligt er aktiveret viaWinHttpSetOption; den tidligere formulering påstod, at tilbagekaldelseskontrol “er inkluderet uden beregning”, hvilket var misvisende
Version 2.36.0
Ændret (Changed)
- TSA HTTP-anmodninger sender nu en eksplicit
Content-Length-header ud overContent-Type- ogAccept-headere; WinHttp danner den ud fra den samlede længde, men nogle RFC 3161-proxyer kræver en eksplicit header og afviser anmodningen med411 Length Requireduden den - XFDF-eksport dropper nu C0-styretegn (bortset fra TAB/LF/CR, som allerede er undviget) i stedet for at udsende en ugyldig backslash-hex-sekvens; den tidligere
\-01F-undvigelse var ikke gyldig XML (backslash har ingen speciel betydning i XML), så enhver kompatibel læser ville have afvist dokumentet som fejlbehæftet InjectAssociatedFilesskriver nu/Subtypei EmbeddedFile-strømordbogen, når kalderen levererTAssociateFile.MIMEType; feltet var erklæret og dokumenteret, men injektoren hårdkodede tidligere/Type /EmbeddedFileog ignorerede det (ISO 32000-2 §7.11.4 tillader/Subtypepå strømmen)
Rettet (Fixed)
- XFDF-import sprang det første indholdsbyte over efter en UTF-8 BOM og det første byte, når der ikke var nogen BOM:
BytesToAnsi(Bytes, 4, ...)(BOM) ogBytesToAnsi(Bytes, 1, ...)(uden BOM) brugte start-offsets, der var forskudt med én, fordiBytesToAnsitager et 0-baseret array-indeks; kaldene bruger nu3og0 ExtractSignatureValuehavde to indrykningsfejl med dinglendeif, hvorR.Position:= CNkørte betingelsesløst for de valgfriecertificates [0]- ogsignedAttrs [0]-forgreninger; forgreningerne are nu omsluttet afbegin/end, så positionen kun rykkes frem, når den valgfrie TLV faktisk blev læst (samme type fejl blev rettet iAddSignatureTimestampToCmsi v2.22.0)
Version 2.35.0
Ændret (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailogTFPDFAvail_IsFormAvailtager nuhints: PFX_DOWNLOADHINTSi stedet forvar hints: FX_DOWNLOADHINTS, så den dokumenteredenullptrkun-forespørgsel-tilstand (kontroller nuværende tilgængelighed uden at anmode om flere data) kan nås fra Delphi; PDFium-headeren tillader udtrykkeligt, athintser null; den tidligerevar-binding gjorde dette umuligtTFPDF_SetSystemFontInfotager nupFontInfo: PFPDF_SYSFONTINFOi stedet forvar pFontInfo: FPDF_SYSFONTINFO, så kaldere kan sendenilfor at bede PDFium om at stoppe med at bruge en tidligere registreret systemskrifttypegrænseflade (den dokumenterede deaktiveringssti)TPdfThumbnailView.Paintberegner nuVisibleRowsmed samme formel somUpdateScrollBarRange(ClientHeight div RowHeight), så antallet af tegnede rækker matcher rullepanelets sidestørrelse; den tidligere formel kun til tegning ((ClientHeight - FMarginY) div RowHeight + 1) kunne afvige med én række ved grænsehøjder, hvilket spildte en rendering på en række uden for siden eller klippede den sidste synlige række
Version 2.34.0
Tilføjet (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— højniveaus-API, der gemmer dokumentet og derefter krypterer det med PDF 2.0 AES-256-CBC (V=5/R=5/R=6); tager enTPdfEncryptOptionsmed bruger-/ejeradgangskode, tilladelser og revision; delegerer tilEncryptDocumentBytes- StrF-kryptering af bogstavelige strenge:
EncryptDocumentByteskrypterer nu bogstavelige strenge(...)i ikke-strøm-objekter (Info-ordbog osv.) til AES-256-CBC hex-strenge, hvilket matcher formatet for strømkryptering (16-byte IV + PKCS7-ciphertekst); hex-strenge<...>efterlades uændret
Version 2.33.0
Tilføjet (Added)
- Fuld-dokument AES-256-CBC krypteringsinjektor i
FPdfEncrypt.pas;EncryptDocumentBytestager en klartekst-PDF og en adgangskode, krypterer ethvert indirekte strømobjekt (16-byte IV + AES-256-CBC PKCS7 under filnøglen), retter/Length, tilføjer/Encrypt-ordbogsobjektet og genopbygger en komplet klassisk krydsreferencetabel + trailer med/Encryptog/ID; fuldender PDF 2.0-krypteringsstakken (AES-blok + GCM + SHA-512/384 + R6-nøgleudledning + ordbog + dokumentskanning) EncryptStreamPayload-hjælper — PDF 2.0 AES-256-strømformatet (IV foranstillet AES-CBC-PKCS7-ciphertekst), som kan genbruges af kaldere, der administrerer deres eget objektlayout
Version 2.32.0
Tilføjet (Added)
- SHA-512 / SHA-384-hash (FIPS 180-4) i den nye
FPdfSha512.pas-unit; Pure-Pascal, overført fra HotPDF; påkrævet af PDF 2.0 R6 adgangskode-hash-iterationen, som forgrener sig på en 128-bit mod-3-værdi for at vælge SHA-256/384/512 i hver runde; bekræftet med kendte svar ifølge FIPS-180-4 B.1 - PDF 2.0-krypteringsnøgleudledning og Encrypt-ordbogsbygger i den nye
FPdfEncrypt.pas-unit; implementerer ISO 32000-2 §7.6.4.3-algoritme 2.B (R6-hash-dans: AES-128-CBC + iterativt SHA-256/384/512-valg), udleder den 32-byte filkrypteringsnøgle samt posterne/O,/U,/OE,/UE,/Permsog bygger V=5/R=5/R=6 Encrypt-ordbogen med/CFM /AESV3; overført fra PDFlibPas, tilpasset til TBytes-stil
Version 2.31.0
Tilføjet (Added)
- AES-blokkrypteringsprimitiver (FIPS 197) i den nye
FPdfAes.pas-unit; Pure-Pascal AES-128- og AES-256-blokkryptering plus CBC-tilstandshjælpere og en CSPRNG-backend, overført fra HotPDF; test med kendte svar i FIPS-197 Appendix C.2 / C.3 bekræfter korrektheden; dette er det kryptografiske fundament for PDF 2.0-krypteringsstakken - AES-GCM godkendt kryptering (NIST SP 800-38D) i den nye
FPdfAesGcm.pas-unit; implementerer GHASH (GF(2^128)-multiplikation), GCTR og GCM AEAD-konstruktionen oven på AES-blokprimitiverne; NIST GCM-testtilfælde 1 og 3 (AES-128) matcher den autoritative ciphertekst og tag nøjagtigt; testtilfælde 13 (AES-256) kører fejlfrit begge veje; GCM er ISO/TS 32003-tilstanden for PDF 2.0 - Integritetsvalidering af PDF/A Level A ParentTree og ClassMap (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingflager en StructTreeRoot uden /ParentTree-nummertræet;pvaiClassMapUnresolvedflager en /C-klasse-reference uden et /ClassMap
Version 2.30.0
Tilføjet (Added)
- Injektion af associerede filer (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); den nyeFPdfAssocFiles-unit tilknytter/AF-arrays af filspecifikationsreferencer til kataloget eller enhver sideordbog, hvilket dækker alle otte ISO 32000-2 Table 45/AFRelationship-værdier; genbruger det mønster for trinvis opdatering, der blev afprøvet afInjectPadesDssMarkers - Understøttelse af PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancetilføjerpxc6; injektoren og validatoren fører det igennem identifikation afpdfxid:GTS_PDFXVersion; PDF/X-6 is den PDF 2.0-baserede efterfølger til PDF/X-4 til komplet udveksling - PDF/A forbyder
/Thread-handlingen (ISO 19005-1 §6.6.1 whitelist-hul); listen over forbudte handlinger dækker nu Thread sammen med Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition og Hide
Rettet (Fixed)
- PDF/A-4e-valideringsstien overholder nu de samme kontroller af tagget struktur, MarkInfo og orddeling som Level A; v2.29.0-gemmenedgraderingen dækkede
PdfAIsLevelE, men treValidatePdfACompliance-porte kontrollerede udelukkendePdfAIsLevelA, så et PDF/A-4e-dokument, der manglede tagget struktur, slap stiltiende igennem - OCG
/BaseStatetestafvigelse: v2.28.0 PostProcess-kørslen udvidede korrekt accepten til/ONeller/OFF(ISO 32000-1 Table 8.70), men Delphi- og C++-testene forventede stadig, at/OFFblev afvist; testene bruger nu en helt ugyldig værdi (/Undefined), og en ny positiv test låser accepten af/OFF - Geospatiel
/Subtype /GEOovermatching:ContainsDictionarySubtype('GEO')matchede enhver ordbog, der bar tokenet, inklusive urelaterede som en tilfældig/ViewerPreferences << /Subtype /GEO >>; den nyeContainsMeasureDictionarySubtypekræver desuden/Type /Measureeller en Measure-eksklusiv søskendenøgle, så ordbøger, der ikke er Measure, ikke længere udløser ADBE ExtensionLevel 3-kravet
Version 2.29.0
Tilføjet (Added)
- Understøttelse af PDF/A-4 (ISO 19005-4:2020) på tværs af validator, XMP-injektor og Pdfium-objektmodellaget;
TPdfAConformancetilføjerpac4base,pac4fogpac4e; basisniveauet er PDF 2.0 (ISO 32000-2) og erstatter de ældre A/B/U-niveauer med basis + F (formular) + E (tilgængelighed);ValidatePdfAlæser enpdfaid:part=4XMP-pakke (basis udelader overensstemmelseselementet),SaveAsPdfAudsender den, ogSignPadesWithPdfAacceptererpac4basesom en langsigtet arkivcontainer - Binding af
FPDFBookmark_GetColor— den sidste ubundne PDFium offentlige eksport (469/469);TBookmarkfårHasColor- ogColor-felter udfyldt fra bogmærkets/C-array (ISO 32000-1 §12.3.3); bindingen bruger tolerant indlæsning, så ældre DLLs, der ligger forud for eksporten, fortsat fungerer - PDF/E-1 (ISO 24517-1 §5) headerversionskontrol
pveiBadPdfVersion— PDF/E-1 er baseret på PDF 1.6, og en ikke-1.6 header flages nu - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— kryptering er kun tilladt på en%PDF-2.0-header; en 1.x krop, der indeholder/Encrypt, flages nu (tidligere en no-op erklæring) - PDF/R-1
pvriBadMediaBox— hver sidesMediaBoxskal være[0 0 w h];PdfRHasNonZeroMediaBoxOriginis en sproguafhængig ASCII-scanner, som springer MediaBoxes med indirekte referencer over - PDF/A Level A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — et tilstedeværende, men ufuldstændigt RoleMap, der efterlader brugerdefinerede/S-strukturtyper uafbildede, flages nu, hvilket lukker hullet fra den eksisterendepvaiRoleMapMissing-kontrol, der kun tjekkede for tilstedeværelse
Rettet (Fixed)
PdfVersionToName(20)returnerede"1.0"i stedet for"2.0", hvilket korrumperede katalogets/Version-post og validatorbeskeder for enhver PDF 2.0-gemning; formateringen opdeler nu eksplicit major.minor for versionskoder>= 20FPdfAsn1.pasnegativ-INTEGER-koderen kunne ikke kompilere under Delphi 12 (E2015påInteger(-(V<0))), hvilket blokerede hele testprojektet; rettet ved at brugeInt64(-Ord(V<0))til fortegnsudvidelsesmasken- Listen over forbudte annotationer i PDF/A inkluderer nu
/RichMediapå tværs af alle dele (blev tidligere overset; ISO 32000-1 §12.5.6.35 forbyder det i PDF/A)
Version 2.28.0
Tilføjet (Added)
TPdfVersioninkluderer nupv20for PDF 2.0 (ISO 32000-2);DecodePdfVersion(20)returnererpv20i stedet forpvUnknown, ogEncodePdfVersion(pv20)udsender 20, så en PDF 2.0-dokuments version ikke længere går tabt ved genindlæsning og kan skrives eksplicit
Ændret (Changed)
DecodeDateparser nu PDF-datostrenge med valgfrie efterfølgende felter i henhold til PDF Reference 3.8.3, i stedet for at kræve den fulde 23-tegns formD:YYYYMMDDHHmmSSOHH'mm'; kompatible afkortede datoer såsomD:20260712,D:20260712153000ogD:20260712153000Zaccepteres nu; tidligere blev de afvist af en hårdLength=23-kontrol; tidszone-timeskift valideres nu i forhold til det virkelige område UTC-12..UTC+14 i stedet for> 23FPdfMeasure.MeasureTextkoder nu skrifttypenavnet som FPCAnsiString/ DelphiUTF8Encode, hvilket matcher bibliotekets andre FPDF_BYTESTRING-kaldesteder, i stedet for en renAnsiString-typekonvertering, der forvrængede ikke-ASCII-familienavne gennem den aktuelle tegntabel
Rettet (Fixed)
TDerWriter.Integer-vejen til negative værdier gik ned eller dannede fejlbehæftet DER: løkkenwhile V <> -1 do V := V shr 8efterlodInnertom forValue = -1(områdefejl på den efterfølgendeInner[Length(Inner)-1]) og overproducerede bytes for andre negative værdier; koderen udtrækker nu to-komplement-bytes med fortegnsudvidende skift og stopper korrekt, når resten er ren fortegnsudvidelse; CMS/PAdES INTEGER-felter er positive, så dette påvirker kun kaldere, der sender negative værdier, men vejen er nu korrektTPdf.GetCharacterOriginogTPdfView.GetCharacterOriginignorerede returværdien forFPDFText_GetCharOriginog returnerede et ikke-initialiseret punkt ved fejl; resultatet is nu nul-initialiseret, og en mislykket læsning returnerer udgangspunktet (hvilket matcher kontrakten forGetCharacterRectangle)
Version 2.27.0
Ændret (Changed)
- Delphi, C++Builder og Lazarus
PDFViewer- ogMultiPageViewer-demoer håndterer nu dokumentsøgning én gang, acceptererEnterogF3til næste resultat, nulstiller søgekonteksten når matchindstillingerne ændres, og reservererEsctil at annullere en aktiv søgning eller et udskriftsjob - Udskrivning i fremviseren følger nu den aktuelle fremviserrotation og vælger stående eller liggende papir derefter, så rotationen på værktøjslinjen afspejles i de udskrevne sider
- Alle tre
ViewerInteractionLab-demoer understøtter nuCtrl+A,Ctrl+C,Enter,F3ogEsc-genveje uden at opsnappe native redigeringskontrols markering og kopikommandoer
Rettet (Fixed)
- Annullering af udskrivning i C++Builder- og Lazarus-fremviseren afbryder nu printerjobbet i stedet for at aflevere de sider, der blev renderet før annulleringen, og Lazarus forlader eksplicit hver indlejret kopi-, side- og sammenlægningsløkke
- Delphi
MultiPageViewer-demoets Cancel-knap er nu forbundet til sin handler, og C++Builder/LazarusMultiPageViewer-søgefelter bevarer native pil-, Home- og End-tasteredigering
Version 2.26.0
Ændret (Changed)
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnailog deresTPdfView-modstykker anskaffer nu render-låsen omkringFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmap-kaldet, i lighed medRenderPage/RenderTile. Disse er PDFium-rendering-sidekald, der tidligere kørte uden låsen og kunne kappes mod et samtidigtUnloadPage/ReloadPagepå det samme dokumentTPdf.RenderPageThumbnailrespekterer nu sidens/Rotate-post: tilpasningen genberegnes ud fra de roterede dimensioner for/Rotate 90- eller270-sider, så miniatureformatforholdet matcher det, fremviseren viser, i stedet for de iboende (uroterede) dimensioner, somFPDF_GetPageSizeByIndexreturnerer
Rettet (Fixed)
TPdfView.GetCharacterRectangleignorerede returværdien fraFPDFText_GetCharBoxog sendte et ikke-initialiseretTPdfRectangletilPageToDevice, når PDFium meldte fejl. Rektanglet nul-initialiseres nu, og et mislykketGetCharBoxreturnererRect(0,0,0,0)GetLinkAnnotations-URI-sti- og filsti-bufferlængden var én for kort: det andetFPDFAction_GetURIPath/GetFilePath-kald sendtesize(som inkluderer den afsluttende NUL) som bufferlængde til en buffer, der var allokeret somsize-1. Kaldet sender nusize-1, så det ikke kan skrive forbi allokeringen på et PDFium-build, der ikke selv begrænser
Version 2.25.0
Ændret (Changed)
TPdf.AddText,SetText,AddPathogInsertFormObjectFromXObjectugyldiggør nu den cachelagrede tekstside og linkannotationer før regenerering af sideindhold, i lighed medSetTextPositionsogRemoveObject. Tidligere returnerede etGetText/GetWebLinks/FindFirst-kald efter redigering af siden forældede tekst- og linkdata, der blev fanget før redigeringen, og det beholdteFPDF_TEXTPAGE-handle blev brugt efter indholdsregenerering med udefineret adfærdTPdfView.RenderPage(HDC, ...)anskaffer nu render-låsen og maskerer FPU/SSE-undtagelser omkringFPDF_RenderPage-kaldet, i lighed med alle andre rendering-indgangspunkter. Den tidligere direkte-til-DC-overload kunne kappes mod et samtidigtUnloadPage/ReloadPagepå det samme dokument og efterlod FPU-undtagelser umaskerede på compilere før D12- Delphi
PrintPDF-demoet kalder nuPrinter.Abortved annullering i stedet for at ladefinally-blokken nåPrinter.EndDoc, hvilket afleverede de sider, der blev renderet før annulleringen. Lazarus-demoet håndterede allerede dette korrekt
Rettet (Fixed)
TPdf.GetCharacter,TPdf.GetCharcodeog deresTPdfView-modstykker trunkerede astral-plan-kodepunkter (emoji, CJK Extension B), somFPDFText_GetUnicodereturnerede, til de lave 16 bit viaWideChar(), hvilket producerede en ensom surrogat, der ødelagde nedstrøms tekstbehandling. Tegn over U+FFFF returnerer nu U+FFFD (erstatningstegn); brugGetTexttil at hente den fulde UTF-16-kodning af astraltegnGetWebLinkskaldteSetLength(Rectangles, FPDFLink_CountRects(...))uden at beskytte mod et-1-retur, hvilket rejste enEOutOfMemorypå en fejlbehæftet side. Et negativt antal begrænses nu til nulTPdf.Destroyskrubber nuPassword-strengen fra hukommelsen (viaUniqueString+FillChar), før den reference-tællede buffer frigives, så kodeordet ikke efterlades læsbart på heapen, efter komponenten er destrueret
Version 2.24.0
Tilføjet (Added)
TPdf.DeletePage,GetAttachment,GetAttachmentName,GetAttachmentType,SetAttachmentogDeleteAttachmentvaliderer nu side-/vedhæftningsindekset og rejserEPdfErrorved en værdi uden for området, i lighed med den eksisterende adfærd for annotation-adgang. Tidligere blev et indeks uden for området sendt direkte til PDFium og producerede en tavs no-op eller udefineret adfærd
Rettet (Fixed)
- Sideobjekt-handle-læk ved fejl i
TPdf.AddText,AddBitmapogAddJpegImage: nårFPDFText_SetText,FPDFImageObj_SetBitmap,FPDFImageObj_SetMatrixellerFPDFImageObj_LoadJpegFileInlinerejste efter objektet var oprettet, men førFPDFPage_InsertObjectoverdrog det til siden, blev det nativeFPDF_PAGEOBJECT-handle lækket. Hver sti destruerer nu objektet ved undtagelsen, før den re-raises TPdf.UnloadPagekasserede et igangværendeFPath-handle (sat afCreatePathmen endnu ikke forbrugt afAddPath) ved at sætte det tilniluden at kaldeFPDFPageObj_Destroy. Handlet destrueres nu, så en sti, der oprettes og derefter forlades (eller afbrydes af et sideskift), ikke længere lækkerTPdf.InsertFormObjectFromXObjectudelodUpdatePage-kaldet (FPDFPage_GenerateContent), som hver søskendeindsættelse (AddText/AddPath/AddBitmap/AddJpegImage/SetText/RemoveObject) udfører, så et Form XObject, der blev indsat på denne måde, forsvandt ved næste genindlæsning eller gemning.UpdatePagekaldes nu efter indsættelsen
Version 2.23.0
Rettet (Fixed)
- Validering af optional-content
/BaseStateaccepterer nu/OFFud over/ON(ISO 32000-1 Table 8.70 tillader begge). Den tidligere kontrol afviste legitime/OCProperties /D /BaseState /OFF-konfigurationer med en “fejlbehæftet optional content”-fejl, selv om filen var konform - Validering af optional-content
/Intentaccepterer nu/Designog navnearrays som[/View /Design], ikke kun det bogstavelige/View. ISO 32000-1 Table 8.70 definerer/Intentsom et navn eller et array af navne hentet fra/Viewog/Design; den tidligere enkeltværdikontrol overafviste standardforfatteroutput - Geospatial Measure-ordbogsdetektion for PDF 1.7
/Extensions /ADBEExtensionLevel 3-porten kræver ikke længere/Type /Measure, som ISO 32000-1 Table 254 markerer som valgfri. GeoPDF-producenter, der udelader/Type(PDFBox, QGIS, FME), omgik tidligere porten og producerede tavst ikke-konform PDF 1.7-output; detektoren matcher nu/Subtype /GEOalene
Version 2.22.0
Ændret (Changed)
TPdfView-fit-zoom-beregninger (GetPageZoom,GetPageWidthZoom,GetPageHeightZoom) bruger nuClientWidth/ClientHeighti stedet for vinduetsWidth/Height, såpfmFitPage/pfmFitWidth/pfmFitHeightstørrelsesindstiller siden til det synlige viewport i stedet for den ydre ramme inklusive rullebjælker og kanter, hvilket fjerner den overflødige rullebjælke, der optrådte, når den tilpassede side var en smule større end klientområdetAddSignatureTimestampToCmsrejser nu en eksplicitException, der identificerer det ulæselige CMS SignerInfo-felt (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm) i stedet for tavst atExit'e og lade en delvis parse flyde videre, som om det var en komplet signeret CMS; en manglendebegin/end-blok omkring den valgfriesignedAttrs [0]-gren, der efterlodR.Positionuafsluttet, er også rettet
Rettet (Fixed)
- CNG-privatnøgle-handle-læk i
ResolveWinSigner: nårCryptAcquireCertificatePrivateKeylykkedes, men den efterfølgende udsteder-/serienummerekstraktion ellerTWinCmsSigner.Createrejste, blevNCryptKeyHandlealdrig frigivet, fordi ejerskabet kun overføres til underskriveren ved en vellykket konstruktør. Post-acquire-opsætningen er nu pakket ind, så handlet frigives viaNCryptFreeObjectved ethvert fejl først EcDsaP1363ToDerafviser nu en nul-halvdelrellersi stedet for at udsende etINTEGER 0; ECDSA-signaturer medr = 0ellers = 0er ugyldige (RFC 4754 §6 / FIPS 186-4 §6 kræver1 ≤ r, s ≤ n-1) og ville ellers blive accepteret som ægte af en lempelig verificerer
Version 2.21.12
Rettet (Fixed)
- Eksplicitte PDF 1.5 til PDF 1.7-gem afviser nu fejlformaterede katalog-
/OCProperties-strukturer, inklusive manglende påkrævede/OCGs- eller/D-poster, ugyldige standardkonfigurationsværdier og ikke-array-tilstandsposter
Version 2.21.11
Rettet (Fixed)
- Eksplicitte PDF-version-gem afviser nu direkte eller indirekte side-
/Annots-poster, hvis annotationsordbøger udelader den påkrævede/Subtype- eller/Rect-post
Version 2.21.10
Rettet (Fixed)
- Eksplicitte PDF 1.7-gem kræver nu, at geospatiale
/Type /Measure /Subtype /GEO-ordbøger og Projection-annotationer erklærer/Extensions /ADBEmed/BaseVersion /1.7og/ExtensionLevel 3eller nyere
Version 2.21.9
Rettet (Fixed)
- Eksplicitte PDF 1.7-gem kræver nu, at RichMedia-annotationer og
RichMediaExecute-handlinger erklærer/Extensions /ADBEmed/BaseVersion /1.7og/ExtensionLevel 3eller nyere
Version 2.21.8
Rettet (Fixed)
- Eksplicitte PDF 1.7-gem kræver nu, at PRC 3D-streams erklærer
/Extensions /ADBEmed/BaseVersion /1.7og/ExtensionLevel 1eller nyere, i stedet for at behandle PRC som en kerne PDF 1.7-funktion
Version 2.21.7
Rettet (Fixed)
- Eksplicitte PDF 1.4 og ældre gem afviser nu billede-XObject
/SMaskInData-poster, inklusive en eksplicit værdi på0, fordi indlejrede JPEG 2000-bløde maskekanaler kræver PDF 1.5 eller nyere
Version 2.21.6
Rettet (Fixed)
- Eksplicitte PDF 1.4 og ældre gem afviser nu 16-bit billede-XObjects, der kræver PDF 1.5 eller nyere, mens PDF 1.5 til PDF 1.7-mål bevarer deres
/BitsPerComponent 16billeddata
Version 2.21.5
Rettet (Fixed)
- Eksplicitte PDF 1.4 og ældre gem afviser nu dokumentkatalog-
/PageLayout /TwoPageLeftog/TwoPageRight-værdier, der kræver PDF 1.5 eller nyere, mens PDF 1.5 til PDF 1.7-mål bevarer det ønskede tositers layout
Version 2.21.4
Rettet (Fixed)
- Eksplicitte PDF 1.3-gem afviser nu dokumentkatalog
/Lang-poster, der kræver PDF 1.4 eller nyere, mens PDF 1.4 til PDF 1.7-mål bevarer sprogidentifikatoren
Version 2.21.3
Rettet (Fixed)
- Eksplicitte PDF 1.3-gem afviser nu dokumentets
/EmbeddedFiles-navnetræer, der kræver PDF 1.4 eller nyere, uden at afvise indlejrede filstrømme refereret via ældre filspecifikationer
Version 2.21.2
Rettet (Fixed)
- Seneste version: 2.21.2; Udgivelsesdato:
Version 2.21.1
Rettet (Fixed)
- Hybrid-referenceverificering anvender nu supplerende
/XRefStm-poster før klassiske xref-pladsholdere fra samme revision, så komprimerede annoteringer og andre versionsbegrænsede objekter ikke længere overses, når kompatibilitetstabellen markerer dem som frie
Version 2.21.0
Ændret (Changed)
- Alle Delphi-, C++Builder- og Lazarus-visningseksempler kan nu åbne en PDF, der gives som første kommandolinjeargument, og C++Builder- og Lazarus-
MultiPageViewer-eksemplerne giver eksplicitte genveje til vælg-alle og kopiér
Rettet (Fixed)
- Seneste version: 2.21.3; Udgivelsesdato:
Version 2.20.0
Ændret (Changed)
- Alle Delphi-, C++Builder- og Lazarus-visningseksempler giver nu konsistente genveje til åbning, søgning, gemning, udskrivning, zoom og sidenavigation, mens alle
ViewerInteractionLab-varianter også understøtter sideskift, valideret 10–60 % manuel zoom, vedvarende interaktionslogger og klik-koordinat-rundturkontroller
Version 2.19.1
Rettet (Fixed)
- Seneste version: 2.21.4; Udgivelsesdato:
Version 2.19.0
Ændret (Changed)
- Seneste version: 2.21.12; Udgivelsesdato:
Rettet (Fixed)
- C++Builder-
CJKTextLabmåler nu tekst via de eksporterede PDFium-redigeringsfunktioner, ogMergePDFundgår en flertydigt VCL-besked-overload, hvilket gendanner rene RAD Studio 37-builds
Version 2.18.3
Rettet (Fixed)
- PAdES B-LTA Document Time-stamp er nu registreret som et synligt signaturfeltet — en usynlig Widget, der kan nås via første sides
/Annotsog AcroForm/Fields(ETSI EN 319 142-1 §5.4.3) — i stedet for et utilgængeligt forældreobjekt, som signaturfelts-opregne validatorer ikke kunne finde; eksisterende annotationer og felter bevares
Version 2.18.2
Rettet (Fixed)
- PAdES-signering og klassisk krydsreference-skrivning giver nu en tydelig fejl, når en byte-offset overskrider den faste 10-cifrede feltbredde (~9,3 GB), i stedet for stiltiende at efterlade
/ByteRange-pladsholdere uskrevet (hvilket producerer en ugyldig signatur) eller overløbe den 20-byte xref-linje (ISO 32000-1 §7.5.4); krydsreference-stream-output bruger 8-byte binære felter og er upåvirket
Version 2.18.1
Rettet (Fixed)
- PAdES-signering løser nu indirekte første-sides
/Annots-,/AcroForm- og/Fields-referencer ved hele objekthovedet (ISO 32000-1 §7.5.3) og ved referencens faktiske generations-nummer; en simpel delstreng-søgning matchede tidligere et objektnummer inde i et længere (og løste5 0 Rtil15 0 obj), og et hardkodet generationsnummer gik glip afgen>0-objekter, hvilket korrupterede signaturfelts-arrays eller afviste gyldige dokumenter - Når kataloget, første side,
/Annots,/AcroFormeller/Fieldsbefinder sig inde i en objekt-stream, forsøger signeringen nu at signere en udvidet kopi inden den fejler i stedet for at afvise dokumentet direkte
Version 2.18.0
Tilføjet (Added)
ReadPdfVersionInforapporterer headerversionen, den effektive kerneversion, katalogtilsidesættelsen og Adobe-udviklerudvidelsesniveauet fra en PDF-stream
Ændret (Changed)
- Eksplicitte PDF 1.3–1.7-lagringer validerer nu katalog-, sidereressource-, XFA-, redaktions- og udviklerudvidelsesstrukturer i deres ejende objekt-kontekst; krypteret eksplicit-version-output og PDF 1.3 inkrementel normalisering afvises for at bevare dokumentintegriteten
- Fil-sti-lagringer skriver nu til en søsterfil og erstatter kun destinationen efter alle komprimerings-, normalerings- og versionskontroller er gennemført
Rettet (Fixed)
- PDF 1.3-output bærer nu den påkrævede fulde
/ProcSet-ressource og fjerner PDF 1.4-transparensnøgler, når de kun gentager PDF 1.3-standardværdierne for grafiktilstand - Hybrid-reference-, xref-stream- og objekt-stream-filer omskrives ikke længere af den klassiske xref-kompressor, hvilket forhindrer at komprimerede objektindgange droppes
- Navne der ligner transparens- eller katalog-funktionsnøgler inde i strenge, kommentarer eller ikke-relaterede ressourcemaps forårsager ikke længere falske mål-version-fejl
Version 2.17.0
Tilføjet (Added)
- PAdES-signaturer er nu registreret som usynlige Widget-annotationer i første sides
/Annots-array og i AcroForm/Fields-array, hvilket bevarer eksisterende annotationer og formularfelter
Ændret (Changed)
- Inkrementelle PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/UA-, PDF/VT- og PAdES-opdateringer bevarer nu kildedokumentets krydsreference-repræsentation: xref-stream-dokumenter modtager en xref-stream-opdatering som krævet af ISO 32000-1 §7.5.8.1, mens klassiske dokumenter fortsat modtager en xref-tabel
- Krydsreference-offsets,
startxref,/Prev, PAdES ByteRange-værdier og SHA-256 rækkevidde-behandling bruger nu 64-bit positioner med chunked hashing, hvilket muliggør filer større end 2 GB i 64-bit builds - Genererede skrivbare XMP-pakker reserverer nu 2048 bytes polstring før den afsluttende pakke-instruktion
Version 2.16.10
Rettet (Fixed)
- Objekt-stream-udvidelse genopvækker ikke længere forældede kopier af objekter, som en inkrementel opdatering har migreret ud af objekt-streamen til en almindelig definition (ISO 32000-1 §7.5.7); overensstemmelsestjek og markørinjicering løste tidligere det forældede katalog eller metadata-ordbog på sådanne filer
Version 2.16.9
Rettet (Fixed)
- På Free Pascal udvides tekststrenge, hvis input ikke er gyldigt UTF-8, byte-for-byte som Latin-1 og skrives som UTF-16BE hex-strenge; de rå høje bytes lækkede tidligere ind i en bogstavelig streng, hvilket ikke er en lovlig PDF 1.7-tekststreng-kodning
- Stream-dekodning genkender nu rå deflate-data uden RFC 1950 zlib-indpakning (en almindelig defekt hos dårlige skribenter) og dekomprimerer den i råtilstand, så overensstemmelsesscans ikke længere er blindt tavsende på sådanne streams
Version 2.16.8
Rettet (Fixed)
- Inkrementelle opdateringer skrevet af lagringens efterbehandlingssti opdaterer nu det andet (ændrende) trailer-
/ID-element som krævet af ISO 32000-1 §14.4; begge elementer kopieres tidligere ordret, så caching- og synkroniseringsværktøjer så et uændret identifikator efter hver opdatering
Version 2.16.7
Rettet (Fixed)
- Stream-kroppen blanking brugt af overensstemmelsesscans kræver nu, at
stream-nøgleordet efterfølges af et linjeskift (ISO 32000-1 §7.3.8.1); ordet inde i en bogstavelig streng såsom(downstream)blankede tidligere al efterfølgende struktur op til det næsteendstream, hvilket skjulte reelle overtrædelser for byte-niveau-kontrollerne - PDF/X- og PDF/E-forbudne-funktions-scans blanker desuden bogstavelige strenge og kommentarer (§7.2.2), så en værdi som
/Title (see /JavaScript docs)eller et kommenteret token ikke længere producerer et falskJavaScript-,AcroForm- ellerLZWDecode-fund
Version 2.16.6
Rettet (Fixed)
- PDF/VT DPM-indgange valideres nu ved skrivetidspunktet som dokumenteret: nøglenavne der overtræder ISO 16612-2 §6.6 NMTOKEN-reglen eller Annex E-registrant-præfiks-reglen, og duplikatnavne, afvises i stedet for at blive skrevet ind i DPart-ordbogen — et navn der indeholder et mellemrum opdelte sig tidligere i et falsk nøgle/værdi-par og korrupterede ordbogen
Version 2.16.5
Rettet (Fixed)
- Fjernelse af en ordbogindgang, hvis værdi er en hex-streng (som
/Check <...>), fjerner nu hele indgangen; injektorerne efterlod tidligere en forældet hex-værdi, hvilket producerede en syntaktisk ødelagt ordbog - Fjernelse af en indgang, hvis indirekte reference bruger linjeskift mellem tokens (ISO 32000-1 §7.3.10 tillader ethvert whitespace), efterlader ikke længere generationsnummeret og
R-nøgleordet
Version 2.16.4
Rettet (Fixed)
- Maksimal-objekt-nummer-scanningen kræver ikke længere, at objekthoveder starter en linje (ISO 32000-1 §7.5.3 tillader ethvert whitespace eller afgrænsning før dem), så injektorer ikke kan allokere et objektnummer der kolliderer med et inline
N G obj-hoved og stiltiende korrumperer filen; objektnumre er begrænset af Annex C-loftet - Streams hvis
/Lengther en indirekte reference løser nu det refererede heltalsobjekt og bruger dets værdi, når det stemmer overens med det afsluttendeendstream; sådanne streams var tidligere begrænset af en mønster-søgning, som afkortede kroppe der lovligt indeholdtendstream-byte-sekvensen — typisk for indlejrede PDF-vedhæftninger
Version 2.16.3
Rettet (Fixed)
- Stream-komprimering passerer krydsreference-stream-dokumenter (PDF 1.5+-filer uden et klassisk
trailer-nøgleord) uændret; genopbygningsstien fejlparsede tidligerestartxrefsom tabelplacering og syntetiserede en gættet trailer, der kunne producere en uåbnelig fil - Kompressoren springer XMP-metadata-streams over, så et PDF/A-dokument beholder sin obligatoriske ufiltrerede metadata-stream (ISO 19005-1 §6.7.2), og lader eksterne fil-streams (
/Fmed/FFilter) urørte - Den genopbyggede krydsreferencetabel scanner en stream-afskrabet kopi af dokumentet, så binært stream-indhold ikke kan simulere objekthoveder eller oppuste tabellen; den genopbyggede trailers
/Sizeafspejler nu den faktiske tabel, og objektnumre er begrænset til Annex C-loftet - Lokalisering af den originale krydsreferencetabel accepterer CR-kun linjeskift (ISO 32000-1 §7.5.1) og kan ikke længere matche
xref-bogstaverne inde istartxref; stream-nøgleordsscanningen har fået den sammeendstream-hale-vagt der bruges andre steder, og rykker nu frem forbi skippede stream-kroppe
Version 2.16.2
Rettet (Fixed)
- Heltals-parsing på tværs af byte-niveau PDF-læserne accepterer nu det eksplicitte
+-tegn tilladt af ISO 32000-1 §7.3.3 og afviser cifre-løb der ville overløbe, så fjendtlige eller korrupte dokumenter ikke længere kan wrape parsede længder og offsets til vildledende værdier
Version 2.16.1
Rettet (Fixed)
- PDF/UA-injektor skriver katalog-
/Lang-værdien som en korrekt PDF-tekststreng; den kørte tidligere værdien gennem XML-escaperen, så et sprog-tag der indeholdt&eller parenteser producerede en korrupt indgang, og ikke-ASCII-input blev skrevet som rå UTF-8 - PDF/E
/ISO_PDFEVersionInfo-indgangen bruger den delte tekststreng-encoder, hvilket holder ikke-ASCII-værdier lovlige i PDF 1.7 - XML-escaping til XMP-pakker dropper kontroltegn der er ulovlige i XML 1.0, så metadata kopieret fra et skadet kildedokument ikke længere kan gøre hele metadata-streamen fejlformet
- PDF-til-XMP dato-konvertering validerer at datofelter er numeriske og polstrer et manglende minut-felt, hvilket forhindrer misdannede ISO 8601-datoer i genereret XMP; på ikke-Windows-platforme inkluderer reservetidsstemplet nu tidspunktet på dagen i stedet for den bare dato
Version 2.16.0
Tilføjet (Added)
- Stream-dekodning rekonstruerer nu
/DecodeParms-prædiktorer (PNG-prædiktorer 10–15 og TIFF-prædiktor 2, ISO 32000-1 §7.4.4.4) efter FlateDecode, med respekt for/Colors,/BitsPerComponentog/Columns; objekt-streams komprimeret med en prædiktor — et almindeligt PDF 1.5+-skrivevalg — viste tidligere differentierede bytes, så de objekter de bærer var stiltiende usynlige for overensstemmelsesscans og markørinjicering
Rettet (Fixed)
- FlateDecode-detektion parser nu
/Filter-værdien som et navn eller array i stedet for en delstreng-match, så kaskaderede filter-kæder og forekomster af ordet inde i ikke-relaterede værdier ikke længere udløser en falsk inflate; ikke-understøttede kæder falder tilbage til de rå bytes som før
Version 2.15.1
Rettet (Fixed)
- Ordbog-scanneren springer nu bogstavelige strenge, hex-strenge og kommentarer over, mens den balancerer
<</>>(ISO 32000-1 §7.2.2), så ordbøger der indeholder værdier som(A >> B)eller en hex-streng der støder op til den afsluttende afgrænsning, ikke længere afkortes under trailer-, katalog- og overensstemmelses-scan-parsing - Bogstavelig streng-udtrækning dekoder nu det fulde §7.3.4.2 Tabel 3 escape-sæt —
\n \r \t \b \f, oktal\ddd, linjekontinuationer og ikke-escaped EOL-normalisering — i stedet for at kopiere escape-bogstavet ordret, og gendanner korrekte/Producer-,/GTS_PDFXVersion- og/ISO_PDFEVersion-sammenligninger for skribenter der bruger oktale escapes - Bogstavelige strenge skrevet af markørinjektorerne escaper nu CR, LF og andre kontroltegn, så værdier overlever læsersidens linjeskift-normalisering byte-for-byte
Version 2.15.0
Rettet (Fixed)
- Inkrementelle opdateringer skrevet af PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/UA- og PDF/VT-markørinjektorerne og af PAdES-signeringen og DSS-stierne bevarer nu kildedokumentets permanente fil-identifikator: det første trailer-
/ID-element bæres over ordret som krævet af ISO 32000-1 §14.4, og kun det andet (ændrende) element opdateres; tidligere blev begge elementer regenereret, så eksterne referencer og langtidsvaliderings-workflows så en forskellig dokumentidentitet efter hver lagring - PAdES-signaturer, DSS-injicering og B-LTA Document Time-stamps bærer nu kildtrailerens
/Info-reference fremad (ISO 32000-1 §7.5.6), så dokumentegenskaber ikke længere forsvinder fra læserpaneler efter signering; Document Time-stamp-traileren får også/ID-array - Trailer-
/Info-reserven for krydsreference-stream-dokumenter finder nu XRef-stream-ordbogen korrekt og bevarer referencens generations-nummer; den matchede tidligere aldrig på overensstemmende PDF 1.5+-filer og droppede stiltiende/Info
Version 2.14.4
Rettet (Fixed)
- Signaturordbogens
/M-dato skrevet afTPdf.SignPadesogSignPadesBytesbærer nu det obligatoriskeD:-præfiks ogZUTC-offset-markøren krævet af ISO 32000-1 §7.9.4; strenge validatorer afviste tidligere signeringstidspunktet som en misdannet datostreng
Version 2.14.3
Rettet (Fixed)
- Ordbognøgle-opslag i den delte PDF-læser matcher nu hele navn-tokens (ISO 32000-1 §7.3.5); tidligere blev en stream, hvis ordbog listede
/Length1før/Length(typisk for FontFile-streams), afkortet til det forkerte byte-antal og blinde PDF/A-, PDF/UA- og andre overensstemmelsesscans der læser fonte-, CMap- eller metadata-streams stiltiende /Encrypt-,/Root-,/Size- og/Info-trailer-opslag matcher ikke længere længere nøgler der deler det samme præfiks (som/EncryptMetadata)- Objekt-stream-udvidelse stoler ikke længere på en korrupt eller fjendtlig
/N-værdi: ikke-heltalsværdier giver nu 0 i stedet for et uinitialiseret nummer, og en øvre grænse afledt fra/Firstforhindrer oversized allokeringer under scanning af misdannede dokumenter
Version 2.14.2
Rettet (Fixed)
- PDF/X-, PDF/VT-, PDF/UA-, PDF/E- og PDF/R-markørinjektorerne kopierer nu krypterede kildedokumenter uændret i stedet for at tilføje klartekst-opdateringsafsnit; den tidligere adfærd producerede filer, hvis seneste trailer mistede
/Encrypt-indgangen (ISO 32000-1 §7.5.6), så overensstemmende læsere fejllæste den krypterede krop som klartekst TPdf.SignPades,SignPadesBytesogInjectPadesDssMarkerskaster nuEPadesCrypto, når kildedokumentet er krypteret, i stedet for stiltiende at udsende en korrupt eller ikke-verificerbar fil; fjern kryptering inden signering eller indlejring af DSS-materiale
Version 2.14.1
Rettet (Fixed)
TPdf.SignPadesogSignPadesBytesudfylder nu alle fire/ByteRange-felter i signaturordbogen; tidligere forblev de tre sidste felter ved deres nul-pladsholdere, så producerede signaturer deklarerede et tomt byte-interval og fejlede verificering i overensstemmende validatorer- PAdES B-LTA Document Time-stamp-ordbøger modtager den samme
/ByteRange-tilbagefylde-rettelse ValidatePadesComplianceaccepterer nu det standardsignatur-layout, hvor byte-interval-hullet indeholder hex-/Contents-værdien, og kontrollerer at det andet intervals segment slutter nøjagtigt ved filens afslutning; tidligere bestod kun gapless intervaller dæknings-tjekket
Version 2.14.0
Tilføjet (Added)
TPdf.ExportXFDFserialiserer alle formularfelt-værdier og annotationer på tværs af alle sider til et XFDF-dokument (ISO 19444-1), og udsender<fields>til hierarkiske formularværdier og<annots>til alle understøttede annotations-undertyper (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact)TPdf.ImportXFDFlæser et XFDF-dokument tilbage i den indlæste PDF og genopretter annotationer på de matchende sider og anvender feltværdier på deres widget-annotationerTPdfAnnotation-posten fikName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), linje-endepunkter, polygon/polyline-hjørner og ink-liste-gestus-felter, så XFDF-rundture bevarer den fulde annotations-metadata- Nyt
XfdfLab-eksempel i Delphi-, C++Builder- og Lazarus-demo-sæt demonstrerer eksport/import-rundturen
Version 2.13.6
Rettet (Fixed)
ValidatePdfAbehandler nu katalog-/Metadata-streams uden/Type /Metadataeller/Subtype /XMLsom manglende XMP-metadata viapvaiMissingXmpMetadata- PDF/A preflight-rapporter klassificerer nu
pvaiMissingXmpMetadatasom Metadata og anbefaler en katalog-/Metadata-stream med/Type /Metadata,/Subtype /XML, ufiltreret XMP ogpdfaid-markører
Version 2.13.5
Rettet (Fixed)
ValidatePdfArapporterer nu Widget-annotationer uden en udseende-ordbog og PDF/A-2 / PDF/A-3-annotationer der kræver men mangler/APviapvaiAnnotationApDictViolation- PDF/A preflight-rapporter kategoriserer nu
pvaiAnnotationApDictViolationsom indhold, som markørinjicering ikke kan reparere
Version 2.13.4
Rettet (Fixed)
ValidatePdfArapporterer nu PDF/A-2 og PDF/A-3 inline-billeder, hvis/I- eller/Interpolate-værdi ertrue, viapvaiImageDictionaryViolation, hvilket matcher den eksisterende Image XObject-ordbogsækning- PDF/A preflight-rapporter kategoriserer nu
pvaiImageDictionaryViolationsom indhold, som markørinjicering ikke kan reparere
Version 2.13.3
Rettet (Fixed)
ValidatePdfArapporterer nu PDF/A-1 inline-billeder der bruger/LZWDecodeeller forkortet/LZW-filtre inde i indholdsstrøm viapvaiInlineImageLzwForbidden, hvilket matcher den eksisterende PDF/A-2 og PDF/A-3 inline-billed-dækning- Inline-billed-filter-scanneren rykker nu forbi indledende ressourcenavne som
/GS1, og undgår stalemates under scanning af bredere PDF/A-1-indholdsstrøm
Version 2.13.2
Tilføjet (Added)
TPdf.SetFocusedFormFieldTextskriver tekst ind i det aktuelt fokuserede formularfelts redigeringsbuffer viaFORM_ReplaceSelection, symmetrisk tilFocusedFormFieldText. For AcroForm-tekst/combo-felter bekræftes værdien til/Vved fokustab og bevares; for XFA-tekstfelter lander skrivningen kun i hukommelsesbufferen (PDFium eksponerer ingen offentlig API til at afstemme XFA-værdier tilbage til datasets-pakken, så det bevares ikke på tværs af lagringer)- JavaScript-værtplatformen tilknyttes nu, når V8-motoren er tilgængelig, uanset om dokumentet er XFA — så indlejret AcroForm JavaScript (dok-niveau-scripts, felt-beregninger,
app.alert) kan udføres. Tidligere varm_pJsPlatformkun konfigureret for XFA-dokumenter, hvilket efterlod AcroForm JS stiltiende deaktiveret
Ændret (Changed)
- JavaScript-platform-tilknytning er nu uafhængig af XFA-beslutningen i
InitializeFormFill—m_pJsPlatform-tabellen bygges, nårV8FeaturesAvailableer sand, og anvendes efter XFA-version/callback-konfigurationen frem for indlejret inden i den
Version 2.13.1
Tilføjet (Added)
- Nye værtshændelser viser information, som v2.13.0 formularfylde-callbacks tidligere slugte:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Alle hændelser bruger den eksisterende no-op-adfærd som standard, når de er utildelt, så eksisterende værter er upåvirkede TPdf.XfaFormPacketsskrivebeskyttet egenskab returnerer et engangs-snapshot af alle XFA-pakker (TXfaPacketList), og opfylder deTXfaPacket/TXfaPacketList-typer der tidligere var deklareret men ubrugte- XFA-specifikke PDFium-fejlkoder
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTer nu bundet og overflades viaLastPdfError, og erstatter den generiske “Unknown error” ved XFA load/layout-fejl
Ændret (Changed)
FFI_DoURIActionWithKeyboardModifierkonsulterer nuOnXfaUriAction, inden den shell-udfører en URI fra et XFA-felt, og giver værten en vetoret (sikkerhed: et ondsindet XFA-felt kunne tidligere starte vilkårlige URL'er ubetinget). Utildelte handlere bevarer den tidligereShellExecuteW-standardDecodeFormFieldTyperuter nu XFA-felttyper viaIsXfaFormFieldfrem for en eksplicit 8-grenet case, og holder enum-en justeret medFPDF_FORMFIELD_XFA_*ved ordinals-offset
Rettet (Fixed)
ValidatePdfArapporterer nu PDF/A-1-krav der bruger PDF 1.5 krydsreference-streams eller objekt-streams med den nyepvaiPdfA1Pdf15Structure-problemet, mens objekt-streams fortsat tillades for PDF/A-2 og PDF/A-3
Version 2.13.0
Tilføjet (Added)
- Fuld XFA (XML Forms Architecture) runtime-understøttelse:
TPdf.InitializeFormFillkonfigurerer nu alle 14 version-2FPDF_FORMFILLINFO-callbacks (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) og tilknytter enIPDF_JsPlatform, så en XFA-aktiveretpdfium.dllkan rendere og scripte dynamiske XFA-formularer - Ny
Lib\FPdfXfa.pas-enhed der deklarerer XFA-konstanterne (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) ogTXfaPacket/TXfaSaveFormat-typerne der tidligere kun var refereret i kommentarer - XFA statisk pakkelæser på
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplusGetXfaTemplate/GetXfaDatasets/GetXfaConfigudtrækker XFAtemplate-,datasets- ogconfig-pakkerne som rå XML uden at kræve en XFA-aktiveret runtime — nyttigt til overensstemmelsesrevision og datamigrering - Kapacitets-sonder: global
XfaFeaturesAvailable, og per-dokumentTPdf.XfaRuntimeAvailable(omFPDF_LoadXFAfaktisk lykkedes) ogTPdf.XfaStaticReadable(om pakkelæser-eksporterne løses) TPdfFormFieldTypeudvidet medfiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, medDecodeFormFieldTypeder mapper de nyeFPDF_FORMFIELD_XFA_*-værdier- JavaScript-værtshændelser på
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrlogOnXfaRuntimeMissinglader værten tilpasse JS-dialoger og XFA-navigation, eller reagere når et XFA-dokument ikke kan køre motoren - Nyt
XfaLabDelphi-eksempel der demonstrerer XFA-detektion, pakkudtræk, kapacitets-sondning og runtime-manglende reservesti
Ændret (Changed)
TPdf.LoadDocumentforscanner nu inputtet for XFA-markører (/XFAi AcroForm-ordbogen eller katalog-/NeedsRendering) og vælger automatiskpdfium.v8.dllved at sætteEnableV8Engine := True, inden singleton-biblioteket indlæses første gang, når de findes; når en plainpdfium.dllallerede er indlæst, kan processen ikke skifte, såOnXfaRuntimeMissingsignalerer den tilfældeTPdf.GetPageCountafspejler nu det sideantal, XFA-motoren rapporterer viaFFI_PageEventefter dynamisk ompaginering, frem for kun det statiske PDF-sidetræ- Når et XFA-dokument åbnes men runtime er utilgængeligt, fastnåler
InitializeFormFillnuversion=1ogxfa_disabled=1i stedet for at anmode om version 2 med utildelte callbacks, hvilket tidligere riskerede en dårlig callback-pointer-dereference
Version 2.12.2
Rettet (Fixed)
ValidatePdfACompliancerapporterer nu brugte tilpassede XMP-navnerum udenpdfaExtension:schemas, mens den stadig accepterer standardpdfaid-metadata uden udvidelsesdeklarationer- PDF/A-3 indlejret fil-validering kræver nu både
/Fog/UFtop-niveau-indgange på filspec-ordbøger og ignorerer indlejrede/EF-stream-nøgler ved kontrol af disse navne
Version 2.12.1
Rettet (Fixed)
ValidatePdfACompliancedekoder nu escaped PDF-navn-tokens inden matching af JavaScript, LZWDecode, Type1 og relaterede forbudte navne, så forvirrede men semantisk identiske navne rapporteres korrekt- PDF/A inline-billed-tjek afviser nu
/Filter- og/F-værdier der bruger/LZWDecode, forkortet/LZWeller/Crypt, herunder array- og escaped-navn-former - PDF/A-validering rapporterer nu metadata-streams med forbudte stream-filtre, OutputIntent ICC-profiler hvis
/N-komponentantal mangler eller er inkonsistent, og PDF/A-3 indlejrede filspecs med manglende eller ugyldige/AFRelationship
Version 2.12.0
Tilføjet (Added)
- TSA HTTP-anmodninger sætter nu eksplicitte 30 s timeouts for hver fase (resolve/connect/send/receive) via
WinHttpSetTimeouts, så en langsom eller ikke-tilgængelig timestamp-autoritet ikke kan hænge signeringstråden på ubestemt tid i stedet for at stole på WinHttp's implicitte standardindstillinger - Per-anmodning nonce-afledning for PAdES B-T / B-LTA timestamp-anmodninger, når den der ringer udelader
TPadesSignOptions.Nonce: en SHA-256-fold af monoton tæller + ur +GetTickCount64+ proces-id erstatter den tidligere faste$100000000-reserve, så to anmodninger udstedt i det samme millisekund ikke længere genbruger den samme anti-replay-nonce PdfInflatebegrænser nu dekomprimeret output til 256 MiB for at stoppe en zlib-komprimeret stream fra at udtømme hukommelse på et fjendtligt eller korrupt input (en “zlib-bombe”); grænsen er generøs for enhver rigtig PDF-stream
Ændret (Changed)
TPdfView-overlejring-blending (søgehøjdepunkt, tekstvalg, læseord, spread-valg) bruger ikke længere per-pixelGetPixel/SetPixelV; rektanglet blandes nu via et 32-bpp off-screenTBitmapogScanLinei et enkelt gennemløb, hvilket eliminerer tusindvis af GDI-kernal-krydsninger pr. maling og gør store valg responsiveFPdfAsn1.TDerReader.ReadIntegerafviser nu INTEGER-felter længere end 8 bytes (og 8-byte negativer hvis sign-bit ville kræveshl >= 64), og returnerer 0 i stedet for at beregne en forkert værdi gennem udefineret-skift-adfærd på CMS/PAdES ASN.1-inputParseTimeStampRespekkoer ikke længere anmodnings-nonce tilbage somTPadesTimestamp.Nonce; indtil TSTInfo-walkeren der verificerer den returnerede nonce lander, forbliver feltet 0 for at signalere “ikke verificeret” frem for at give opkaldere falsk tillid til at timestamp-svaret er frisk
Rettet (Fixed)
PointsToPixelsreturnerede sit input uændret for enhver DPI: divisoren varPointsPerInch(72-konstanten) i stedet for det bogstavelige 72, og kollapsede formlen tilResult := Points. Enhver ekstern opkalder der laver point→enheds-pixel-størrelsessætning via denne hjælper, får nu den korrektePoints × PixelsPerInch / 72PdfMaxObjNumunderkullede på dokumenter der bruger objekt-streams (PDF 1.5+ ObjStm): objekter komprimeret inde i en/ObjStmbærer ingenN 0 obj-markør, så den rå-byte-scan missede dem, og injektorer der allokererMaxObj+1til nye objekter ville kollidere med skjulte ObjStm-medlemmer og stiltiende korruptere filen. Scannen udvider nu objekt-streams først, så alle objektnumre er synligeInjectPdfAMarkersforfalder ikke længere et PDF/A-overensstemmelseskrav på et krypteret dokument: PDF/A (ISO 19005-1 §7.1) forbyder kryptering, og injektoren kopierede tidligere kilden med markørerne, selvom den næste validering ville afvise det. NårHasEncrypter sat, passes kilden nu uændret. Den normaleTPdf.SaveAsPdfA-sti fjerner allerede kryptering (saRemoveSecurity) inden injicering, så dette påvirker kun direkte opkalderePdfReadStreamBytesafviser nu en/Lengthder er større end hele filen inden allokering af resultatbufferen, og lukker en tidlig allokerings-sti på en korrupt eller fjendtlig indirekte længde
Version 2.11.0
Tilføjet (Added)
- PDFium
FPDF_FILEHANDLER-posten deklarerer nu sine seks callbacks (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) som rigtige felter i stedet for kommentarer, svarende til C-header-layoutet. XFA FFI-fil-overførsels-callbacks (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL), der returnerer eller forbrugerPFPDF_FILEHANDLER, er stadig ikke implementeret i Pascal-formularfylde-laget, men typen er nu strukturelt korrekt for en eventuel fremtidig XFA-indsend/upload-sti - PDFium-biblioteksindlæsning og -aflæsning (
LoadLibrary/UnloadLibrary) er nu serialiseret af en processglobal kritisk sektion, så toTPdfFuture<T>-arbejdertråde (eller en arbejder der konkurrerer med hovedtråden) ikke begge kan observerePDFiumLibrary=0og dobbelt-binde, eller frigøre DLL'en, mens en anden tråd er midt i binding - En
initialization/finalization-sektion kalder nuUnloadLibraryved enheds-aflæsning, hvilket sikrer atFPDF_DestroyLibrarykører (arbejdertråd-samling, V8-isolat-bortskaffelse, skrift/cache-nedrivning) i stedet for at stole på OS'et til at genvinde DLL'en
Ændret (Changed)
TPdf.SetActivesluger nu enhver undtagelse under indlæsning (tidligere kunEPdfError), så en stream-fejl eller adgangsfejl under formular/side-opsætning efterladerActive=Falsei stedet for en delvist-indlæst komponent med ubestemt tilstand- Konsistent tegnkodning til PDFium metadata-nøgleargumenter:
TPdf.GetMetaTextbruger nu den samme FPCAnsiString/ DelphiUTF8Encode-opdeling somGetViewerPreferenceog indlæsningstierne, i stedet for en simpelAnsiString(Tag)-cast - Deduplikerede
BytesToAnsi-,AnsiToBytes-,WriteBytes- ogWriteStr-hjælperne:FPdfCompressimporterer dem nu fraFPdfPdfCommon(detsWriteBytesToStream/WriteAnsiToStream-aliaser afvikles) og den overflødige tre-argumentBytesToAnsi-overload iFPdfPdfafjernes.FPdfAsn1beholder sin lokale kopi med vilje for at holde kryptografilaget fri for overensstemmelseslagets enhed
Rettet (Fixed)
- Ressourcelæk i
TPdf.LoadDocument(fil, hukommelse,TBytes,TMemoryStream, tilpasset stream) ogTPdf.CreateDocument: hvisInitializeFormFillellerReloadPagekastede efterFPDF_LoadDocument/FPDF_CreateNewDocumentlykkedes, blev det nativeFPDF_DOCUMENT-handle lækket, fordiFActivestadig var False på det tidspunkt. Hvert sti omslutter nu post-load-opsætningen itry/exceptog lukker dokumentet ved fejl, og efterlader komponenten rent inaktiv - Venligere PDFium DLL-indlæsningsdiagnostik:
CheckLoadLibraryregistrererERROR_BAD_EXE_FORMAT(193) og rapporterer en 32/64-bit arkitektur-mismatch der peger på den matchendeDLLs/Win32ellerDLLs/Win64build, i stedet for kun at videresende den generiske OS-fejl.CheckGetProcAddressangiver nu at den deployeredepdfium.dller ældre end bindingen, når en krævet eksport mangler, frem for den bare OS “procedure not found”-tekst
Version 2.10.1
Rettet (Fixed)
- PAdES SignerInfo sid-standardisering: signeridentifikatoren bruger nu RFC 5652 §5.3
issuerAndSerialNumber-formen (issuer Name + serialNumber, begge udtrukket ordret fra underskrivercertifikatets DER), som erstatter den tidligere ikke-standardiseredesubjectKeyIdentifier+ fuld-cert SHA-256 pladsholder, som Adobe Acrobat og andre overholdende validatorer afviste. En ny TbsCertificate DER-walker (ExtractIssuerAndSerial) læser issuer SEQUENCE og serial INTEGER som rå TLV-bytes — serienumre overskrider ofteInt64-området, så rå TLV er obligatorisk.subjectKeyIdentifier-formen forbliver kun som en reserve, når cert-DER-parsing fejler
Ændret (Changed)
TCmsSignerId.SerialNumber: Int64er erstattet afSerialDer: TBytes(den rå serialNumber TLV). CMS-byggeren indlejrer den udskårede TLV ordret iIssuerAndSerialNumber, hvilket undgårInt64-overflow ved 20-byte CA-serienumre (RFC 5280 §4.1.2.2 øvre grænse)
Version 2.10.0
Tilføjet (Added)
- PAdES B-LT langtidsvalidering: når
TPadesSignOptions.Level >= plB_LT, tilføjerSignPadesBytesen inkrementel opdatering, der indeholder en/DSS-ordbog med underskrivercertifikatet og den fulde mellemliggende kæde (det selvsignerede root udelukkes ifølge RFC 5652 §10.2.3), samt/Extensions /ESICLevel 1-markøren (EN 319 142-1 §5.4.2) - PAdES B-LTA arkivtidsstempel: når
Level >= plB_LTAogTsaUrler angivet, tilføjes en Document Time-stamp signaturordbog (/SubFilter /ETSI.RFC3161), hvis/ByteRangedækker hele filen; ESIC-markøren forfremmes til Level 2. Dette fuldender de fire PAdES baseline-niveauer (B-B, B-T, B-LT, B-LTA) - Certifikatkædeindsamling:
ResolveWinSignerkalder nuCertGetCertificateChainog udfylderTPadesResolvedSigner.ChainCertDermed de mellemliggende CA-certifikater, så B-LT/DSS /Certsindeholder hvert certifikat, der kræves for at validere signaturen uden eksterne opslag.CertFreeCertificateContexter nu bundet, hvilket lukker den én-kontekst-pr-underskrift-lækage, der blev bemærket i v2.8.0 - PDF/A-integrationsarbejdsgang:
TPdf.SignPadesWithPdfAkonverterer dokumentet til PDF/A først (det højeste niveau, biblioteket i dag udsender) og anvender derefter den anmodede PAdES-signatur — det langtidsarkiv-beholdermønster, EN 319 142-1 Annex A.7 anbefaler
Version 2.9.0
Tilføjet (Added)
- PAdES B-T betroet tidsstempel:
TPadesSignOptionsfår felterneLevel,TsaUrlogNonce. NårLevel >= plB_TogTsaUrler angivet, udtrækkerSignPadesBytessignaturværdien fra den byggede CMS, anmoder om et RFC 3161-tidsstempel over den og indlejrer det returnerede TimeStampToken som SignerInfo- attributten uden signatursignature-time-stamp— B-T-trinnet for betroet tid (EN 319 142-1 §6.3 req o) FPdfTsa: platformuafhængig RFC 3161-klient —BuildTimeStampReq(version 1, SHA-256 messageImprint over signaturværdien, nonce, certReq=true),ParseTimeStampResp(accepterer PKIStatus 0/1, afviser 2+, udtrækker TimeStampToken ContentInfo ordret) ogRequestTimestamp(one-shot byg+POST+fortolk).PadesTsaAvailablestyrer funktionen på platforme uden en HTTP-backendFPdfTsaWin: Windows WinHttp-backend, dynamisk bundet fra winhttp.dll (nul nye kompileringstidsafhængigheder; HTTPS forhandles af Windows certifikatlageret). SpejlerFPdfCryptoWin-mønsteret for dynamisk bindingFPdfCms:ExtractSignatureValuegennemgår en bygget CMS for at gendanne de rå signaturoktetter (TSA-hash-input), ogAddSignatureTimestampToCmsgenopbygger ContentInfo med en nyunsignedAttrs [1](0xA1), der bærer tidsstempel-attributten. Valideringsfasen-1-genkender resultatet som en B-T-signatur
Version 2.8.0
Tilføjet (Added)
- PAdES B-B-underskriftsstak: fire nye pure-Pascal/platformuafhængige byggeklodser (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) samt en Windows CNG-backend (FPdfCryptoWin) laderTPdf.SignPades/SignPadesToStreamproducere en PAdES B-B-signatur fra ende til anden. Underskrivercertifikatet løses ud fra SHA-1-aftryk fra Current User “MY”-lageret; RSA-PSS (anbefalet), RSA PKCS#1 v1.5 og ECDSA understøttes alle viaNCryptSignHash FPdfSha256: selvstændig FIPS 180-4 SHA-256 (Init/Update/Final + one-shot-hjælpere). FPC 3.2.2 leveres uden en SHA-2-enhed, så biblioteket ejer en for at holde alle CMS-kodestier på en enkeltTSHA256Digest-type uden RTL-greningFPdfAsn1: DER-encoder (TDerWriter) og -læser (TDerReader), der dækker SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontekstspecifikke tags, med den definitiv-længde-kodning og IMPLICIT-tag-håndtering, CMS kræverFPdfCms: CAdES SignedData-bygger (BuildSignedData), der udsender de content-type-, message-digest- og signing-certificate-v2-signerede attributter, PAdES-baseline påbyder, med valgfri signing-time og commitment-type-indication. SignedAttrs-digest beregnes over den SET-taggede (0x31) form og genudsendes med IMPLICIT [0] (0xA0)-tagget i overensstemmelse med RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: kryptografisk-backend-abstraktion medPadesCryptoAvailable/ResolvePadesSigner, og Windows-implementeringen, der binder crypt32.dll / ncrypt.dll dynamisk (ingen ny kompileringstids-DLL-afhængighed). ECDSA-signaturer omkodes fra Windows IEEE P1363 r¦s-formen til DEN DERECDSA-Sig-Value-form, CMS kræverSignPadesBytes: byte-niveau signaturinjektion — reserverer en fast bredde/Contents-hex-slot, beregner den dækkende/ByteRange, fordøjer dokumentet, bygger og indlejrer CMS, og tilføjer den inkrementelle opdatering. Validatoren (v2.7.0) genkender outputtet som en PAdES B-B-signatur
Version 2.7.0
Tilføjet (Added)
- PAdES strukturel validator (ETSI EN 319 142-1 V1.2.1): den nye
FPdfPades-enhed ogTPdf.ValidatePades-metode inspicerer signaturværdiordbøger, der kan nås fra/ByteRange, går CMSSignedDatainde i/Contentslangt nok til at bekræfte CAdES-detached-formen, og opdager de fire baseline-niveauer (B-B, B-T, B-LT, B-LTA) samt Document Time-stamp-ordbøger (/SubFilter /ETSI.RFC3161) - PAdES klausulniveau-problemsæt: 26
ppei*-enums dækker/SubFilter-acceptabilitet (adbe.pkcs7.sha1ogadbe.x509.rsa_sha1markeret som forbudte),/ByteRange-fildækning,/Cert-forbud, CMSSignedData-form (enkelt underskriver, detached eContent, versionsområde), de krævede signerede attributter (content-type,message-digest,signing-certificate/v2), forbudte digest (MD5, SHA-1),/Reasonvscommitment-type-indicationgensidig udelukkelse (req d), B-T-kravet om betroet tid, B-LT/DSS+/Certs+ ESIC Level 1-markør og B-LTA Document Time-stamp + ESIC Level 2-markør - DSS-injektor:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreamtilføjer en inkrementel opdatering, der bærer en/DSS-ordbog (med/Certs-,/OCSPs-,/CRLs-stream-arrays) og/Extensions /ESIC-markøren (Level 1 eller 2) på en kopi af dokumentet, og bevarer de oprindelige bytes — B-LT/B-LTA-valideringsmateriale-indlejringstrinnet (klausul 5.4.2) - Platformuafhængigt, nulafhængigt trin: validatoren og injektoren er pure-Pascal og virker på alle understøttede IDE'er (Delphi, Lazarus, FPC, C++Builder); ingen kryptografisk backend kræves til denne udgivelse, og ingen ny DLL-afhængighed introduceres
Version 2.6.0
Ændret (Changed)
- Kryds-standard-deduplikering: syv flere duplikerede hjælpefunktioner (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) er blevet fjernet fra de enkelte standardenheder og konsolideret i
FPdfPdfCommon, hvilket reducerer ~300 linjers copy-paste-vedligeholdelsesbyrde - PreflightReport-kvalitet: PDF/X- og PDF/E-indholdsklasseproblemer, der tidligere faldt igennem til den generiske “missing marker”-kategori, bærer nu præcise Content/Metadata/Security-kategorier og klausulspecifikke anbefalinger (~15 enums på tværs af begge standarder)
- PDF/E- og PDF/R-testdækning: seks flere enums med nul dækning har fået positive test (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Lazarus-byggefiks:
Tests.PdfVT(en Delphi-only DUnitX-enhed tilføjet i v2.5.x) er nu udeladt fra Lazarus-projektet for at genskabe kompilering
Version 2.5.3
Tilføjet (Added)
- OutputIntent-fuldstændighed (PDF/X-4 §6.2.4):
pvviOutputIntentSchememarkerer en OutputIntent, hvis/Sikke er/GTS_PDFX;pvviOutputIntentMissingIdentifiermarkerer en manglende/OutputConditionIdentifier - PDF/VT-2 Reference XObject-fritagelse (§6.2.2):
pvviReferenceXObjectForbiddenudløses ikke længere for enPDF/VT-2-fil, som lovligt må bruge Reference XObjects på en X-5g/5pg-base - MIME-grænsetegn-validering (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharmarkerer en grænse, hvis tegn falder uden for bchars-sættet, eller hvis længden overstiger 70
Rettet (Fixed)
InjectPdfVTMarkersskriver nu Info/CreationDateog/ModDatefra gemmevalgene, så den fremstillede fil rundtur-ValidatePdfVTComplianceuden en falskpvviInfoModDateMismatch(injektoren omskrev tidligere XMP-datoerne, men efterlod Info-ordbogens datoer forældede)
Version 2.5.2
Tilføjet (Added)
- Info
/ModDate-konsistens (§6.3 NOTE 2, PDF/X-4-base):pvviInfoModDateMismatchmarkerer en Info-ordbog/ModDate, der efter PDF-dato-til-XMP-dato-normalisering ikke er lig medxmp:ModifyDate - PDF/VT-2s inline chunk-overholdelse (Annex A.2): MIME-validatoren kører nu
ValidatePdfVTCompliancepå hver inlineapplication/pdf-del og markerer en ikke-PDF/VT-krop viavtmviInlinePdfNotPdfVT
Version 2.5.1
Tilføjet (Added)
- DParts-chunking-validering (ISO 16612-2 §6.5 Tabel 4):
pvviDPartsBadChunkingmarkerer et/DParts-array, hvis ikke-endelige underarrays ikke har præcis 8192 poster, eller hvis det sidste underarray falder uden for 1..8192 - RecordLevel-kryds-stream-konsistens (Annex A.2): PDF/VT-2s MIME-validatoren udtrækker nu hver inline PDF's
/RecordLevelog markerer uenighed viavtmviRecordLevelMismatch, hvilket supplerer den eksisterende NodeNameList-kontrol - Tilbagevendende grafiske objekt-hints (§6.7):
pvviGtsScopeInvalidValuemarkerer en/GTS_Scopeuden for {SingleUse, Record, File, Stream, Global, Unknown};pvviGtsScopeRecordWithoutRecordLevelmarkerer/Recorduden en/RecordLevel;pvviGtsXidNotUuidmarkerer en/GTS_XID, der ikke er et RFC 4122 uuid: URI;pvviGtsEnvMissingmarkerer en manglende/GTS_Env, når/GTS_Scopeer Stream eller Global (§6.7.4) - MIME-forward-reference-detektion (Annex A.2):
vtmviForwardReferencemarkerer en inline PDF, der citerer et filnavn (via/EF /F), der ikke er introduceret af en tidligere vedhæftningsdel i streamen
Rettet (Fixed)
ExtractNodeNameListFromPdfogExtractRecordLevelFromPdfiFPdfPdfvtMimeløste en tilbagevendende off-by-one, hvor den 1-baserede forskydning, der returneres afAnsiFindKey, blev behandlet som en absolut byte-forskydning i den udvidede PDF
Version 2.5.0
Tilføjet (Added)
- PDF/VT Document Part Metadata (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionsfikDpmEntriesogDpmTarget, så en skribent kan vedhæfte en/DPM-ordbog til den syntetiserede DPart-node, med nøglenavns-validering mod Annex E second-class-prefix-reglen og §6.6 NMTOKEN- / unikheds- /GTS_Managed-form-reglerne på validatorsiden - PDF/VT-2s streaming-udveksling (Annex A): den nye
FPdfPdfvtMime-enhed levererBuildPdfVT2sStreamogValidatePdfVT2sStreamtilmultipart/mixed-MIME-kuverten, der bærer inline PDF/VT-chunks plus vedhæftede ICC-profiler, medX-PDFVT-Stream-version: 1-header-ordeningsreglen og kryds-streamNodeNameList-konsistenskontrol TPdf.ValidatePdfVTudfører nu en autoritativ JavaScript-acttion-tælling viaFPDFDoc_GetJavaScriptActionCount, hvilket supplerer byte-niveau/JavaScript-navnescanningen
Rettet (Fixed)
- PDF/VT
Trapped-korrekthed på PDF/X-4-basen:ptvUnknown-enumværdien er fjernet (PDF/X-4 forbyder/Unknown),ptvUnspecifiednormaliseres til/Falseved skrivning (en manglende/Trappeder også forbudt), og et nytpvviTrappedInvalid-problem markerer en fraværende ellerUnknown-værdi ValidatePdfVTComplianceudvider nu objektstreams (PdfExpandObjectStreams) før scanning, så et katalog-, OutputIntent- eller Metadata-ordbog lagret inde i en komprimeret ObjStm (PDF 1.5+, typisk for PDF/X-4-producenter) kan nås af byte-niveau-opslag
Ændret (Changed)
- PDF/VT-1 arver nu de fulde PDF/X-4-indholdsforbud:
pvviAcroFormForbidden(/AcroFormeller/XFA),pvviAdditionalActionsForbidden(katalog/AA),pvviMissingTrimBoxogpvviReferenceXObjectForbidden(Reference XObject, kun X-5g/5pg) - Kryds-standard-deduplikering:
BuildDictObj,IccComponentCount, den indbyggede sRGB ICC-profil (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumogPdfExpandObjectStreamsblev forfremmet fra tredoblede lokale kopier iFPdfPdfa/FPdfPdfx/FPdfPdfvttil en enkelt kanonisk hjem iFPdfPdfCommon; den 3144-byte ICC-literal findes nu nøjagtigt én gang i kodebasen
Version 2.4.0
Rettet (Fixed)
InjectPdfUaMarkerstaber ikke længere trailerens/Info-reference på en cross-reference-stream base: den lokaleSourceTrailerInfoRef(som manglede xref-stream fallback) er blevet erstattet af den fællesPdfSourceTrailerInfoRef(forfremmet fra PDF/A-kopien, som har haft denne fallback siden v2.0.0)- Den fælles
PdfReadStreamBytesunderstøtter nu indirekte/Length N G R-referencer (porteret fra den lokale PDF/A-kopi), så PDF/VT-, PDF/R- og PDF/E-validatorer ikke længere læser forkert eller springer XMP-metadatastrømme over, som er oprettet af værktøjer, der bruger indirect Length (Acrobat, Ghostscript)
Ændret (Changed)
- Deduplikering på tværs af standarder: de lokale kopier af
PdfReadTraileriFPdfPdfaogFPdfPdfx, de lokale kopier afSourceTrailerInfoRefiFPdfPdfaogFPdfPdfuasamt den lokalePdfReadStreamBytesiFPdfPdfaer blevet slettet — de fællesFPdfPdfCommon-versioner gælder nu overalt; dette fjerner ca 330 linjer duplikeret kode og eliminerer vedligeholdelsesbyrden ved at holde kopier synkroniseret - Lukning af PDF/X test-gæld: syv content-class enums, som tidligere havde nul dækning, har fået positive test (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Ændret (Changed)
- Lukning af PDF/A test-gæld fortsætter: yderligere tre enums med nul dækning har fået positive test;
pvaiForbiddenRenderingIntent(§6.2.9) markerer et ikke-standardiseret rendering-intent navn i en content stream;pvaiJpeg2000Violation(§6.2.2) markerer et JPXDecode-billede med/NumComponentsuden for {1,3,4} i Part 2;pvaiInlineImageLzwForbidden(§6.1.10) markerer et integreret billede, der bruger LZW-filteret i Part 2
Version 2.2.0
Ændret
- Regresstest for krydsreference-stream: den eksisterende
Validate_XrefStreamTrailer_DetectsConformanceverificerer nu også, at katalogets/Metadata-reference løses, og at XMPpdfaid:partlæses på en xref-stream-base (ikke kun/Root+/ID); en nyInjectPdfA_XrefStreamBase_RoundTrips-test beskytter injektorens xref-stream-sti tilføjet i v2.0.0; to tværstandard-test (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) verificerer, at PDF/E- og PDF/R-validatorerne ikke længere afviser xref-stream-PDF'er som uanalyserbare - Afvikling af PDF/A-testgæld:
Validate_MinimalPdf_FlagsRequiredMarkersfastslår, at en helt minimal PDF udløserpvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataogpvaiMissingXmpDates— hvilket lukker symmetrigabet med PDF/E- og PDF/X-validatorerne, som allerede havde tilsvarende test; yderligere to enums med nul dækning fik positive test:pvaiUnembeddedFontogpvaiSubsetMissingCidSet
Version 2.1.0
Rettet
- PDF/E blev utilsigtet udeladt af rettelsen af krydsreference-stream i v2.0.0: både
InjectPdfEMarkersogValidatePdfECompliancekaldte stadigPdfReadTrailerudenAcceptXrefStream, hvilket medførte, at PDF/E-injektoren fejlede lydløst på PDF 1.5+-output (pdfiums standardindstilling forSaveAsCopy); begge kaldesteder overfører nuTrue - Den delte
PdfReadTrailerkrydsreference-stream-fallback indeholder nu/Type /XRef-beskyttelsen, som de lokale kopier af PDF/A og PDF/X allerede havde, så et beskadigetstartxref-offset, der peger på en urelateret ordbog, fejler rent i stedet for at blive fejlfortolket som traileren - Løseren for indirekte referencer af
/LangiValidatePdfUaCompliance(v2.0.0) var utilgængelig:PdfFindObjDictfinder kun<<-ordbøger, men et/Lang-strengobjekt er(...)eller<...>uden nogen ordbog; erstattet med en direkte scanning af objektets krop, der lokaliserer streng-tokenet
Ændret
- Syv redundante skygge-hjælpefunktioner (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj), som var byte-identiske kopier af de delte versioner i
FPdfPdfCommon, er blevet fjernet fraFPdfPdfaogFPdfPdfua— de delte versioner gælder nu overalt viauses
Version 2.0.0
Rettet
- Lydløs fejl på tværs af standarder: den delte hjælpefunktion
PdfReadTrailer(der bruges af markørinjektorer og -validatorer for PDF/UA, PDF/X, PDF/VT og PDF/R) accepterer nu enAcceptXrefStream-parameter og falder tilbage på objektordbogen for krydsreference-stream, når intettrailer-nøgleord er til stede (PDF 1.5+); tidligere medførte pdfiumsSaveAsCopy-output (som bruger en krydsreference-stream), at enhver markørinjektor fejlede lydløst — kildebytene blev kopieret uændret igennem, og kaldet returnerede stadig succes; PDF/R-1.0-valideringen (hvis PDF 2.0-base altid er en krydsreference-stream) var reelt uden virkning, og PDF/A-validatorens modne implementering blev porteret til den delte hjælpefunktion, så alle standarder drager fordel af det - Scanning af trailer-ordbogen i
InjectPdfUaMarkersogInjectPdfAMarkersbruger nu den dybdebevidstePdfDictEndi stedet for en simpel søgning efter>>, så en trailer, der indeholder en indlejret ordbog (f.eks./Encrypt << ... >>), ikke længere afkortes før en efterfølgende/Info-post
Ændret
TPdf.ValidatePdfUaundertrykker nu den grovepvuaiFontNotEmbeddedpå byteniveau, når den præcisepvuaiPdfiumFontNotEmbeddedfra Pdfium-objektmodellen allerede er udløst, så preflight-rapporten ikke længere indeholder to næsten identiske "indlejr dine skrifttyper"-rækker for den samme fejlpvuaiLangInvalidFormat(§7.2) løser nu en indirekte reference af/Lang(N 0 R) til dens strengobjekt og validerer indholdet, så et sprogtag med indirekte reference ikke længere er en blind vinkel
Version 1.99.0
Rettet
pvuaiLangInvalidFormat(§7.2) lader ikke længere hex-kodede/Lang-strenge slippe igennem uden validering: UTF-16BE-par (med enFE FFBOM) og rene ASCII-hexstrenge afkodes nu og køres gennem den samme BCP 47-grammatikkontrol som bogstavelige(...)-strenge, så en fejlbehæftet hex-/Langfanges, mens en overensstemmende (f.eks. en UTF-16BEen-US) ikke længere risikerer at blive flaget
Ændret
pvuaiFontMissingToUnicode(§7.21.7) fritager nu/MacExpertEncodingsammen med/WinAnsiEncodingog/MacRomanEncoding, hvilket matcher de fire fritagelsesbetingelser, klausulen opregner
Version 1.98.0
Tilføjet
pvuaiNeedAppearancesTrue(§7.18.4) markerer en AcroForm, hvis/NeedAppearances-flag er sandt, så widget-udseender ikke låses pålideligt, og hjælpemiddelteknologi ikke kan associere dem med strukturtræet; porteret fra PDF/A-valideringen og begrænset til tilstedeværelsen af/AcroFormfor at indsnævre scanningsområdet
Ændret
- veraPDF-korpusregression: forbandt §7.20 Reference-XObject pass+fail-parret og §7.21.4.2 subset CharSet/CIDSet pass+fail-parrene til
Live_Corpus_ValidatePdfUaMatchesConformance; §7.21.7 ToUnicode-forbidden-value og §7.18.6.2 media-clip pass-eksemplerne blev også forbundet som beskyttelse mod falske positive (deres fail-eksempler bruger ordbogslayouts, som scanningen på byteniveau ikke fanger, så kun pass-siden er forbundet) - Korpus-pass-path-assertionslisten fik 15 nye beskyttelser mod falske positive, så enhver aktiv
pvuai*-kontrol på byteniveau og strukturniveau nu afprøves mod overensstemmende eksempler (tidligere var kun ~30 af de 60 active problemer beskyttet);pvuaiLangInvalidFormat-beskyttelsen blev bevidst udeladt, fordi kontrolenheden på byteniveau konservativt markerer hex-kodede/Lang-strenge, som den ikke kan afkode
Version 1.97.0
Rettet
- Hærdning af
ValidatePdfUaStructureElements:EnclosingTable-forældrekædegennemløbet har nu en hop-tæller (begrænset af elementantallet), så en fejlbehæftetParentIndex-cyklus på et syntetisk strukturelement-array ikke længere kan hænge kalderen;ValidatePdfUaPageContentTagging-allokeringen af mærket-indhold-ID-arrayet er nu begrænset til maksimalt en million poster, hvilket forhindrer en multi-GB-allokering ved en fejlbehæftet/ondsindetMarkedContentID
Ændret
- Dokumentationskommentaren til
pvuaiOrderedListMissingListNumbering-enum'en beskriver nu præcist, hvad kontrollen gør: den markerer etL-element, hvisListNumbering-værdi ligger uden for ISO 32000-1 Tabel 347-sættet (et manglende attribut markeres ikke); den tidligere kommentar antydede, at den også registrerede ordnede lister, der manglede attributtet, hvilket implementeringen ikke gør - De to
7.21.3.3-t02WMode-mismatch korpus-fail-eksempler er nu forbundet tilLive_Corpus_ValidatePdfUaMatchesConformance— siden v1.95.0 er CMap-streamen FlateDecode-dekomprimeret, så ordbogs- mod indholdssammenligningen nu kører på en læsbar side; den forældede kommentar om "ikke forbundet" blev fjernet
Version 1.96.0
Tilføjet
- Konsistens på tværs af standarder:
TPdf.ValidatePdfUafår to kontroller porteret fra PDF/A-valideringen;pvuaiAnnotationFlagsViolation(§7.18.1) markerer en ikke-fritaget annotation, der bærer flaget Hidden / Invisible / NoView flag, hvilket afbryder læsestrømmen for hjælpemiddelteknologi;pvuaiActionTargetMissing(§7.18.5) markerer en GoToR / URI / SubmitForm-handling, der mangler sin krævede målnøgle (/F+/D, /URI, /F), hvilket gør linket ubrugeligt for hjælpemiddelteknologi
Rettet
- Strukturtræ-sammenfletning på tværs af sider:
AllElems-akkumuleringsløkken iTPdf.ValidatePdfUagenberegner nu hvert elementsParentIndexfra det side-lokale array to det sammenflettede array; uden dette beholdt side 2's underordnede elementer et side-lokalt indeks, der pegede ind i side 1's del, hvilket lydløst korrumperede enhver ParentIndex-afhængig kontrol (tabel/listestruktur, §7.4.4 H-underordnede antal, EnclosingTable) - RoleMap-parsing:
PdfReadRoleMapPairsafbryder ikke længere hele nøgle/værdi-scanningen, når en værdi er en indirekte reference (N 0 R) eller et array ([...]) — begge er gyldige RoleMap-former i henhold til ISO 32000-1 14.8.5.1; den springer nu blot den post over (Continue) i stedet for at afbryde (Break), hvilket eliminerer falske positive forpvuaiRoleMapUnresolvedpå typer, der er tilknyttet efter en indirekte post eller et array
Ændret
FPdfPreflightReport: 18 aktiveTPdfUaValidationIssue-værdier, som tidligere faldt igennem til opsamlingskategorien "manglende markør" og anbefaling, bærer nu nøjagtige kategorier (Structure / Content / Metadata / Security) og klausulspecifikke anbefalinger; rettede også stavefejlenpuaNone / pua1→pucNone / puc1iPDFSpecComplianceMatrix.md
Version 1.95.0
Ændret
- Gennemgang af
TPdf.ValidatePdfUa-præcision: §7.21.3.3-kontrollenpvuaiCMapWModeMismatchog §7.21.7-kontrollenpvuaiToUnicodeForbiddenValuedekomprimerer nuFlateDecode-komprimerede CMap / ToUnicode-streams før scanning (tidligere blev kun ukomprimerede streams vurderet, hvilket var en kendt falsk negativ); de deltePdfInflate/PdfReadAndDecodeStream-hjælpere blev flyttet op fraFPdfPdfa/FPdfPdfxtilFPdfPdfCommon, så alle overensstemmelsesenheder deler samme kopi
Tilføjet
pvuaiSubsetCharSetEmpty(§7.21.4.2) markerer en Type 1-undergruppe-FontDescriptor, der bærer en/CharSet-nøgle, hvis strengværdi er tom — den eksisterendepvuaiSubsetMissingCharSetfangede kun en manglende nøgle; en tom/CIDSetmarkeres ikke, da en skrifttype uden CID'er legitimt kan bære et tomt bitmap
Version 1.94.0
Tilføjet
- Anden gennemgang af
TPdf.ValidatePdfUalukkede seks ISO 14289-1-huller, der blev afdækket ved en gennemgang klausul for klausul og en genscanning af oprindelige Pdfium-API'er, der allerede var pakket ind, men ubenyttede af PDF/UA-stien;pvuaiHeadingFormatInvalid(§7.4.3) markerer brugerdefinerede overskriftsmærker, der starter med H, men indeholder separatorer, mellemrum eller romertal i stedet for rene arabiske tal;pvuaiMissingDocumentOutline(§7.17, bør) markerer et flersidet dokument, der ikke indeholder et bogmærkeomrids (enkeltsidede dokumenter er fritaget);pvuaiStructElementLangInvalid(§7.2) markerer en strukturelement-/Lang-værdi, der ikke er et gyldigt BCP 47-mærke;pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) markerer et Widget-strukturelement, der mangler attribut-ejeren PrintField;pvuaiLinkNotInStructureTree(§7.18.5) markerer et dokument, hvis/Subtype /Link-annotationer ikke er eksponeret som Link-strukturelementer;pvuaiPdfiumAnnotationMissingContentsogpvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) tilføjer en præcis Pdfium-objektmodelannotationsscanning, som fritager skjulte, Popup-, Widget- og annotationer uden for CropBox — hvilket eliminerer falske positive fra heuristikken på byteniveau, som ikke kan læse/F-flag eller/Rect
Version 1.93.0
Tilføjet
TPdf.ValidatePdfUalægger nu et lag med en Pdfium-objektmodelgennemgang oven på kontrollen på byteniveau, hvilket afspejler arkitekturen fra PDF/A runde 7: det gennemløber hver sides tekstobjekter viaFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) og scanner hvert tegn viaFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) ogFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — mere præcist end heuristikken på byteniveau, som kun udløses, når der ikke findes nogen skrifttypeprogrammer, eller der slet ikke optræder/ToUnicode; gennemløbet afbrydes på tre niveauer: sideløkken afsluttes, når alle tre problemer i Pdfium-laget allerede er fundet, løkken per objekt afsluttes ved den første ikke-indlejrede skrifttype, og tegnscanningen springer.notdef-gennemgangen over, nårUnicodeMapErrorallerede er ramt; PDF/UA var den sidste PDF-standardvalidering uden et Pdfium-objektmodellag
Version 1.92.0
Tilføjet
- Oprettede
Tests.PdfR— den første testfil til PDF/R-1-valideringen (FPdfPdfr), som dækker header-validering, forbud mod ObjStm, raster-markør-detektering og en beskyttelse mod falske positive i rene filer; alle seks PDF-standardtestsuiter har nu dedikerede testfiler: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = i alt 212 tests
Version 1.91.0
Tilføjet
ValidatePdfEogValidatePdfVTfik kontroller på indholdsniveau, som tidligere kun var tilgængelige i PDF/A-, PDF/UA- og PDF/X-valideringerne:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(kun PDF/E),pveiEmbeddedFilesForbidden(kun PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden;TPdf.ValidatePdfEogTPdf.ValidatePdfVTfår også et Pdfium-objektmodellag (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded), der gennemløber sidetekstobjekter viaFPDFFont_GetIsEmbeddedog afbrydes ved den første ikke-indlejrede skrifttype
Version 1.90.0
Tilføjet
TPdf.ValidatePdfXlægger nu et lag med en Pdfium-objektmodelgennemgang oven på kontrollen på byteniveau: det gennemløber hver sides tekstobjekter viaFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedog rapporterer en ikke-indlejret skrifttype sompvxiPdfiumFontNotEmbedded— mere præcist end heuristikken på byteniveau, som kun udløses, når der ikke findes nogen skrifttypeprogrammer; gennemløbet afbrydes ved den første fundne ikke-indlejrede skrifttype
Ændret
- Gennemløb af strukturtræ i
TPdf.ValidatePdfUa: det sidevise kaldValidatePdfUaPageContentTagging(som opbygger et kort over mærket-indhold-ID-krav og krydskontrollerer ethvert tekst/billedobjekt) springes nu over på efterfølgende sider, når førstpvuaiUntaggedContenter fundet — strukturelementer indsamles stadig til kontrol på tværs af sider (entydigt note-ID, overskriftssekvens), men det dyre sidevise indholdstaggingsgennemløb stopper tidligt
Version 1.89.0
Ændret
- Ydeevne for
TPdf.ValidatePdfA-hjælpens Pdfium-objektmodellag: gennemløbet af side/objekt afbrydes nu på tre niveauer — sideløkken afsluttes, når alle relevante problemer i Pdfium-laget allerede er fundet, løkken per objekt afsluttes, når begge problemer per objekt (skrifttypeindlejring + gennemsigtighed) er sat, og tegnscanningen på tekstsiden springer.notdef-gennemgangen over, nårUnicodeMapErrorallerede er ramt;Assigned()-kontroller af API-tilgængelighed og overensstemmelsesflag caches i lokale booleans én gang før løkken i stedet for at blive evalueret for hver side/objekt/tegn; på et stort ikke-overensstemmende dokument kan gennemløbet nu stoppe efter første side i stedet for scanning af alle sider; på et overensstemmende dokument er belastningen per side lavere (ingen gentagneAssigned-kald)
Version 1.88.0
Tilføjet
ValidatePdfXfik otte nyeTPdfXValidationIssue-værdier på indholdsniveau, der dækker print-udvekslingsrestriktioner, som PDF/X pålægger ud over filformatmarkører:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(ingen/TrimBoxpå nogen side) ogpvxiTrappedNotSet(/Trappedmangler eller er/Unknown); PDF/X-valideringen kontrollerede tidligere kun XMP/OutputIntent-markører; dette er dens første gennemløb på indholdsniveau; de delte hjælperePdfStructureBytes/PdfHasName/PdfCountNameblev tilføjet tilFPdfPdfCommon, så alle overensstemmelsesenheder kan bruge dem
Version 1.87.0
Tilføjet
- PDF/UA-validering dækker nu ISO 14289-1 §7.21.3's regler for sammensatte skrifttyper:
pvuaiCidSystemInfoMismatchmarkerer Type0-skrifttyper, hvis indlejrede CMap og den afledte CIDFont er uenige omRegistry/Ordering, eller hvis CIDFontensSupplementoverstiger CMap'ens,pvuaiCMapNotEmbeddedmarkerer CMap'er, der er refereret ved navn (somEncodingellerUseCMap), og som ikke er foruddefinerede CMap'er ifølge ISO 32000-1 Tabel 118, ogpvuaiCMapWModeMismatchmarkerer indlejrede CMap'er, hvis ordbogs-WModeafviger fra WMode i deres strømindhold
Rettet
- §7.21.3.2-kontrollen
pvuaiCidFontMissingCidToGidMapgik glip af CIDFontType2-ordbøger, hvis nøgle/værdi-par forSubtypeer adskilt af et linjeskift, og markerer nu også enCIDToGIDMap-navneværdi, der ikke erIdentity
Version 1.86.0
Tilføjet
- PDF/UA-validering dækker nu ISO 14289-1 §7.21.6's kodningsregler for TrueType:
pvuaiTrueTypeEncodingInvalidmarkerer ikke-symbolske TrueType-skrifttyper, hvisEncodingmangler eller hverken erMacRomanEncodingellerWinAnsiEncoding(direkte eller viaBaseEncoding), ogpvuaiSymbolicTrueTypeEncodingmarkerer symbolske TrueType-skrifttyper med et ikke-standardEncoding-navn
Version 1.85.1
Ændret
- ISO 14289-1 §7.18.3's fane-rækkefølge-kontrol
pvuaiMissingTabsOrderkører nu per side: enhver side med annotationer skal angive/Tabs /Si sin egen sideordbog, så en side, der overholder kravene, ikke længere kan skjule en side uden
Version 1.85.0
Tilføjet
- PDF/UA-validering skelner nu mellem dynamiske og statiske XFA-formularer i henhold til ISO 14289-1 §7.15:
pvuaiXfaDynamicmarkerer formularer, hvis XFA-konfiguration sætterdynamicRendertilrequired
Ændret
- Det tidligere generelle XFA-kandidat-flag
pvuaiXfaPresentudgår og udløses ikke længere (statisk XFA overholder §7.15); enum-værdien bevares af hensyn til API-kompatibilitet
Version 1.84.0
Tilføjet
- PDF/UA-validering registrerer nu umærket reelt indhold, som krævet af ISO 14289-1 §7.1:
pvuaiUntaggedContentmarkerer renderede tekst- og bildeobjekter, der hverken er inkluderet i sidens strukturtræ (via deres mærket-indhold-ID'er) eller markeret som et Artifact - Nye sideniveau-hjælpere
GetPageContentMarkInfosogValidatePdfUaPageContentTaggingmedTPdfPageContentMarkInfo-recorden til direkte brug
Version 1.83.0
Tilføjet
- PDF/UA-validering håndhæver nu ISO 14289-1 §7.4.4's overskriftsmodel:
pvuaiHeadingModelMixedmarkerer dokumenter, der blander det generiskeH-tag med nummereredeH1..Hn-overskrifter, ogpvuaiHeadingMultipleInNodemarkerer strukturnoder med mere end én underordnetH-overskrift
Version 1.82.0
Tilføjet
- PDF/UA-validering løser nu det RoleMap, der kræves af ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardmarkerer RoleMap-poster, der omdefinerer en standard strukturtype, ogpvuaiRoleMapUnresolvedmarkerer anvendte ikke-standard strukturtyper, hvis RoleMap-kæde er manglende, brudt eller cirkulær — indirekte kæder, der når en standard type, accepteres, og ubrugte RoleMap-poster bedømmes aldrig - Nye hjælpere
PdfUaIsStandardStructType,PdfReadRoleMapPairs(med PDF-navne-#hh-escape-afkodning) ogValidatePdfUaRoleMapUsagetil direkte brug
Version 1.81.0
Tilføjet
- PDF/UA-validering dækker nu den ISO 32000-1-listemærkning, der kræves af ISO 14289-1 §7.6:
pvuaiListStructureInvalidmarkerer LI-elementer uden for en L-container og Lbl/LBody-dele uden for et LI-element, mens indlejrede lister og den legitime Lbl-brug inden i Note- og BibEntry-elementer accepteres
Version 1.80.0
Tilføjet
- PDF/UA-validering dækker nu den ISO 32000-1-tabelmærkning, der kræves af ISO 14289-1 §7.5:
pvuaiTableStructureInvalidmarkerer TH/TD-celler uden for en TR-række og rækker eller rækkegrupper uden for deres Table-container,pvuaiTableHeaderMissingScopemarkerer headerceller, hvis relation hverken kan bestemmes via et Scope-attribut eller en Headers/ID-tilknytning, ogpvuaiTableHeadersUndefinedIdmarkerer Headers-referencer i dokumenter, der ikke definerer nogen struktur-element-ID'er TPdfStructureElementeksponerer tabelattributterneScope,HasHeaders,HeadersIds,ColSpanogRowSpan, der løses under struktur-træ-gennemgangen
Ændret
- Struktur-træ-gennemgangen læser nu alle layout- og tabelattributter i et enkelt gennemløb over hvert elements attributordbøger i stedet for én scanning per attribut
Version 1.79.1
Tilføjelser
- Porterede
AnnotationsLab-eksemplet til Lazarus og C++Builder, så det tilslutter sig det eksisterende Delphi-konsoleksempel
Rettelser
TPdf.CreateAnnotationkunne udløse “Cannot set attachment points” for markup-annotationer, der bruger quad-punkter (Highlight, Underline, StrikeOut, Squiggly), fordi den nye annotation endnu ikke havde nogen quad-slot at erstatte; den tilføjer nu den første quad i stedet
Version 1.79.0
Tilføjelser
- Nyt
AnnotationsLabDelphi-konsoleksempel: opretter Text, Highlight, Square og Circle annotationer, skriver dem til en PDF, genindlæser derefter filen og opregner sidens annotationsliste
Version 1.78.0
Tilføjelser
- Nyt
TPdf.MeasureTextogTPdf.MeasureTextWidth: måler den renderede bredde og højde af en streng for en given skrifttype og størrelse (PDF brugerenheder, 1 enhed = 1/72 tomme) uden at tilføje indhold til en side. Dette gør layout- og ordombrydningslogik mulig oven påAddText; leveres af det selvstændigeFPdfMeasuremodul som en klasse-hjælper - Nyt
TPdf.WrapText: grådig ordombrydning bygget påMeasureTextWidth, der deler tekst ved mellemrum og pakker ord i linjer, der ikke er bredere end en given bredde (PDF brugerenheder); et for langt enkeltord får sin egen linje (ingen orddeling inde i selve ordet), og returnerer de ombrudte linjer som et array
Version 1.77.0
Tilføjelser
ValidatePdfAfik tre nyeTPdfAValidationIssue-værdier, der dækker klausuler, som tidligere var klassificeret som “NEJ” eller “læseradfærd” i den tidligere gap-revision (tilføjede ordenstal, eksisterende værdier er uændrede):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — et tegn, der løses til Unicode 0 uden en mapningsfejl, kørselssymptomet for en.notdef-glyfreference; detekteres via Pdfiums objektmodel-lag),pvaiWordBreakMissing(Level A 6.8.3.2 — en indholdsstrøm-show-streng længere end 20 tegn uden mellemrum, en sandsynlig overtrædelse af flettede ord; grov heuristik, der undgår CJK falske positiver), ogpvaiLinkActionMissingTarget(6.6.3 — en GoToR/URI/SubmitForm handling mangler sin visnings-målnøgle, så en læser ikke kan præsentere den)
Version 1.76.0
Tilføjet (Added)
ValidatePdfAfik tre nyeTPdfAValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 — et/BaseFont- eller/FontName-token, der indeholder bytes ≥ 0x80, som ikke danner gyldig UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — et inline-billede i en sideindholdsstrøm bruger LZW- eller Crypt-filteret) ogpvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — en ikke-symbolsk TrueType-skrifttype, hvis Encoding-ordbog bærer/Differences)
Version 1.75.0
Tilføjet (Added)
ValidatePdfAfik tre nyeTPdfAValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — en numerisk token, der overskrider den 32-bit signed integer-grænse på 2.147.483.647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — en/BM-værdi uden for standardsættet for blend-modes ifølge ISO 32000-1 §11.3.5; supplerer PDF/A-1pvaiTransparentColorSpace, som kun tillader Normal/Compatible), ogpvaiHexStringOddDigits(6.1.6 — en<...>hex-streng med et ulige antal hex-cifre)
Version 1.74.0
Tilføjet (Added)
ValidatePdfAfik tre nyeTPdfAValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvaiPermissionsViolation(6.1.12 — en/Perms-ordbog, der bærer/DigestLocation,/DigestMethodeller/DigestValuesammen med/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — en Trans-overgangshandling, fundet via/S /Transaction-dict-mønsteret for at undgå falsk matchning af/Transparency), ogpvaiPdfiumObjectTransparency(PDF/A-1 6.4 — et sideobjekt har ægte gennemsigtighed ifølgeFPDFPageObj_HasTransparency, hvilket udvider det Pdfium-objektmodellag, der blev introduceret i v1.73.0 for at fange blend-mode/soft-mask-effekter, som byteniveau-navnescanningen kan gå glip af)
Version 1.73.0
Tilføjet (Added)
TPdf.ValidatePdfAlægger nu et Pdfium-objektmodellag oven på inspektøren på byteniveau: den gennemgår hver sides tekstobjekter viaFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedog rapporterer en ikke-indlejret renderet skrifttype sompvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4), og indlæser hver tekstside for at scanneFPDFText_HasUnicodeMapErrorog rapporterer en ødelagt Unicode-mapning sompvaiPdfiumUnicodeMapError(6.3.8). Dette er kontroller, som inspektøren på byteniveau ikke kan udføre — den ser kun navne-tokens, ikke opløste skrifttypehåndtag eller mapningstilstand pr. tegn — og disse flettes ind i resultatet fra byteniveauet. Den selvstændige funktion på byteniveauValidatePdfAComplianceforbliver uændret
Version 1.72.0
Tilføjet (Added)
ValidatePdfAfik fem nyeTPdfAValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — kataloget må ikke bære/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — en OutputIntent må ikke bære/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — en filspecifikation med/EFskal også bære/UF),pvaiXmpPacketBytesAttr(6.7.5 — XMP-pakkeheaderen må ikke bære den forældede attributbytes=ellerencoding=), ogpvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — annotationens/FToggleNoView-bit, værdi 512, er forbudt)
Version 1.71.0
Ændret
ValidatePdfUaudløser nupvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): strukturtræsgennemløberen løserListNumbering-layoutattributten på hvertL-element via Pdfium-attribut-API'en og markerer enhver værdi uden for ISO 32000-1 tabel 347-sættet (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). En fraværende attribut markeres ikke, da listen kan være uordnet; dette lukker den sidste resterende ISO 14289-1-kløft, der blev registreret i slutningen af runde 5
Version 1.70.0
Tilføjet
ValidatePdfUafik fire nyeTPdfUaValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — en CID-undergruppeFontDescriptorskal deklarere/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — et ToUnicode CMap må ikke mappe nogen kode tilU+FEFFellerU+FFFE; ukomprimerede strømme scannes for<FEFF>/<FFFE>-outputformerne),pvuaiLangInvalidFormat(7.2 —/Langskal være et gyldigt RFC 1766 / BCP 47-tag; en overbærende grammatik acceptereren,en-US,zh-Hans,es-419og markerer tydeligt ikke-overensstemmende værdier) ogpvuaiOrderedListMissingListNumbering(7.6 — bibeholdt for API-fuldstændighed; endnu ikke udløst af validatoren, fordi pålidelig skelnen mellem ordnede og uordnede lister kræverListNumbering-attributværdien, som strukturtræsgennemløberen ikke eksponerer)
Version 1.69.0
Tilføjet
ValidatePdfUafik to nyeTPdfUaValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — et Widget-strukturelement skal indlejres i etForm-element; strukturtræsgennemløberen verificerer nu hver Widgets direkte overordnede type) ogpvuaiSubsetMissingCharSet(7.21.4.2 — en Type 1-undergruppeFontDescriptorskal deklarere/CharSet, identificeret ved præfikset med seks bogstaver og+for undergruppenavn på/FontName)
Version 1.68.0
Tilføjet
ValidatePdfUafik to nyeTPdfUaValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — en URI-handlingsordbog må ikke bære/IsMapmed værdientrue, da det deaktiverer det tilgængelige linkmål) ogpvuaiHeadingSequenceViolation(7.4.2 — nummererede overskrifter skal starte vedH1, og en faldende rækkefølge må ikke springe et mellemliggende niveau over, f.eks. erH1→H3en overtrædelse). Overskriftskontrollen er den første PDF/UA-regel på strukturtræsniveau i validatoren:ValidatePdfUaStructureElementsgennemgår nu listen med typede elementer og verificererH1…H6(ogH7+ifølge 7.4.3)-rækkefølgen i dokumentrækkefølge
Version 1.67.0
Tilføjet
ValidatePdfUafik fem nyeTPdfUaValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — en Link-annotation skal bære en alternativ beskrivelse via/Contents),pvuaiAnnotationMissingContents(7.18.1 — enhver ikke-undtaget annotation uden/Contentsskal have en alternativ beskrivelse; Popup og Widget er undtaget),pvuaiEmbeddedFileMissingName(7.11 — en filspecifikationsordbog skal indeholde/Fog/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — en medieklipdataordbog skal indeholde/CTog/Alt), ogpvuaiCidFontMissingCidToGidMap(7.21.3.2 — en indlejret Type 2 CIDFont skal indeholde/CIDToGIDMap)
Version 1.66.0
Tilføjet
ValidatePdfUafik fem nyeTPdfUaValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvuaiRoleMapMissing(ISO 14289-1 7.1 — et tagget dokument med ikke-standardstrukturtyper skal bære et/RoleMap),pvuaiOptionalContentAsKey(7.10 — en ordbog til konfiguration af valgfrit indhold må ikke bære/ASauto-state-nøglen),pvuaiXfaPresent(7.15 — en AcroForm/XFA-tilstedeværelse markeres, da dynamisk XFA er forbudt),pvuaiTrapNetAnnotation(7.18.2 —/TrapNet-annotationer er forbudt), ogpvuaiReferenceXObject(7.20 — Reference XObjects, baseret på/Ref-markøren, er forbudt)
Rettet
ValidatePdfUagiver ikke længere falsk positivepvuaiEncryptionPresentpå hver krypteret fil: PDF/UA tillader kryptering, så længe krypteringsordbogens/P-nøgle har bitposition 10 (værdi 1024) sat, hvilket giver adgang for hjælpemiddelteknologi (7.16). Den præcise overtrædelse rapporteres nu via den nyepvuaiEncryptionPBitMissing;pvuaiEncryptionPresentbibeholdes i enum'en for API-kompatibilitet, men udløses ikke længere af validatoren på byteniveau
Version 1.65.0
Tilføjet
ValidatePdfAfik fem nyeTPdfAValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — en indlejret Type 2 CIDFont skal bære/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — en Type 1-undergruppeFontDescriptorskal bære/CharSet),pvaiSubsetMissingCidSet(6.3.5 — en CID-undergruppeFontDescriptorskal bære/CIDSet),pvaiWidgetActionForbidden(6.6.1 — en Widget-annotation må ikke bære/Aeller/AA), ogpvaiOptionalContentAsKey(ISO 19005-2 6.9 — en ordbog til konfiguration af valgfrit indhold må ikke bære/ASauto-state-nøglen, hvilket er ny relevant, fordi PDF/A-2 tillader valgfrit indhold)
Version 1.64.0
Tilføjet
ValidatePdfAfik otte nyeTPdfAValidationIssue-værdier (tilføjede ordenstal, eksisterende værdier uændrede):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 —%PDF-x.y-headeren skal efterfølges af en%-kommentar med mindst fire bytes større end 127),pvaiExternalStreamRef(6.1.7 — en strømordbog må ikke bære/F,/FFiltereller/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntent/Sskal være/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDateskal også fremgå somxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — Niveau A kræver/MarkInfomed/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — annotationens/AP-ordbog må kun indeholde/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Annex E.2 — hver tilknyttet filspecifikation skal bære/AFRelationship), ogpvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — et JPEG2000-billede skal deklarere 1, 3 eller 4 komponenter)
Rettet
ValidatePdfAgiver ikke længere falsk positivepvaiAnnotationFlagsViolationpå dokumenter, der bruger et ressourcenavn på ét bogstav til skrifttype såsom/Font << /F 5 0 R >>; scanningen af/F-flaget er nu betinget af en annotationskontekst (/Subtypeaf en annotationstype), hvilket matcher den dokumenterede adfærd (6.5.3)ValidatePdfArapporterer nu kravet om PDF/A-3 tilknyttet fil pr. fil: et dokument markeres kun, når en indlejret/Type /Filespec, der refererer til en indlejret strøm via/EF, mangler/AFRelationship, i stedet for den tidligere alt-eller-intet-kontrol af hele dokumentet (ISO 19005-3 bilag E.2)- Tilføjede den udfasede
/SetState-handling til sættet af forbudte handlinger sammen med/SetOCGState, så navnet på PDF-referencehandlingen fanges direkte (6.6.1)
Version 1.63.0
Tilføjet (Tilføjet)
- Tilføjet
TPdf.MeasureTextogTPdf.MeasureTextWidth: måler den renderede bredde og højde af tekst med en given skrifttype og størrelse uden at tilføje indhold til siden (i PDF-brugerenheder, 1 enhed = 1/72 tomme), hvilket muliggør layoutberegninger og automatisk linjeskift oven påAddText; leveret af den selvstændige enhedFPdfMeasuresom class helper
Ændret (Ændret)
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFogDemo\Lazarus\MergePDFforbedret for alle tre IDE: sideintervalvalg pr. fil, valgfri outputsti, deduplicering, kørselslog, annulleringsknap og fletningsoversigt; bogmærker og metadata importeres fra den første kildeCreatePDF-demoer for alle tre IDE inkluderer nu en mulighed for europæisk tekst til at skrive accenttegn på tjekkisk, fransk, tysk, spansk, portugisisk, polsk og tyrkisk for at verificere skrifttypevalg og Unicode-håndtering (det tidligereEuropeanText-eksempel er integreret)- Fjernede eksemplerne
ExtractTextPagesogEuropeanText: side-for-side-tekstudtrækningsfunktionen iExtractTextPageser nu dækket af sideinterval- og sideadskillelsesmulighederne iExtractText; den flersprogede rendering afEuropeanTexter integreret iCreatePDF
Version 1.62.2
Rettet (Rettet)
- Gengenererede C++Builder-headerne (
.hpp) for hver RAD Studio-version og platform (Win32/Win64/Win64x); de var kommet ud af sync med Pascal-kilderne og efterlod forældede funktionssignaturer og manglende units, som nåede C++Builder-brugere via kildedistributionen
Version 1.62.1
Rettet (Rettet)
- Gendannede kildekompilering i RAD Studio 12 Athens og tidligere: en
TArray<Byte>-tildeling i PDF/UA-valideringsstien brugte en implicit array-konvertering, der kun findes i Delphi 13, og som ikke kunne kompileres i ældre IDEer
Version 1.62.0
Tilføjet (Tilføjet)
TPdf.RenderPageThumbnailrenderer enhver side efter indeks til et bitmap med tilpasset billedformat uden at ændre dokumentets aktuelle side, den indlæste side eller udløseOnPageChange
Rettet (Rettet)
TPdfThumbnailViewstyrer ikke længere værtsdokumentetsPageNumberunder tegning; tidligere genindlæste hver genoptegning sider, udløsteOnPageChangeog kasserede tekstsiden, hvilket kunne forstyrre en tilknyttetTPdfViewog udløse genoptegningssløjfer. Miniaturer renderes nu viaRenderPageThumbnailuden disse bivirkninger- PDF/X-overensstemmelsesvalidering inspicerer nu dokumenter med cross-reference streams (PDF 1.6, typisk for PDF/X-4) og objekter gemt i komprimerede object streams, i stedet for at rapportere sådanne filer samlet som ikke-overensstemmende; markøren
GTS_PDFXVersionlæses både fra elementform og RDF-attributform i XMP - PDF/R-validering rapporterer nu
pvriInfoXmpMismatch, når Info dictionary og XMP er uenige om Producer eller Creator; problemet var tidligere deklareret, men blev aldrig rejst - Form-fill-timere spores pr. anmodning, så et dokument, der kører flere timere på én gang (for eksempel et JavaScript-interval sammen med feltmarkørens blink), bevarer dem alle i stedet for at miste alle undtagen den seneste
TPdfView-tegning og de offentlige metoderRenderPage/RenderTileholder nu dokumentets renderlås og serialiserer mod worker-thread-rendering af sammeTPdf(PDFium er ikke thread-safe)- Ikke-ASCII-tekst skrevet til PDF/X-, PDF/R- og PDF/VT-metadata (OutputIntent-betingelsesnavne, Creator, Producer) kodes nu som en UTF-16BE-streng efter ISO 32000-1 §7.9.2.2 i stedet for rå UTF-8, som overensstemmende læsere ville læse forkert
- Overensstemmelseshjælpere læser indlejrede metadatastreams, hvor
/Lengther en indirekte reference, korrekt, indlæser kildebytes medReadBuffer(så en kort læsning fejler rent) og afviser et negativtstartxref-offset i stedet for at risikere læsning uden for området
Version 1.61.0
Ændret (Ændret)
- Rettelser af FFI/ABI-deklarationer, som kan kræve genkompilering af kode, der implementerede de berørte callbacks: form-fill-callbacken
FFI_OpenFilebruger nucdecl(Win32 stack convention), og parameterenvalueiFPDFAnnot_SetStringValueogFPDFAttachment_SetStringValueer nuFPDF_WIDESTRING(UTF-16LE), så den matcher PDFium-headerne - Progressive-load-callbacks
FX_FILEAVAIL.IsDataAvailogFX_DOWNLOADHINTS.AddSegmenttager nusize_t-offsets, ogsize_thar pointer-bredde på Free Pascal / Lazarus Win64 (tidligere afkortet til 32-bit), hvilket retter data-availability ogoutsize_tAPI-kald på FPC Win64
Rettet (Rettet)
- Hukommelsessikkerhed: en use-after-free af form-fill-timeren ved destruktion af en
TPdfmed aktiv AcroForm-markør; et dobbeltFPDF_CloseDocumentpå fejlstien iImportNPagesToOne; Pascal-exceptions, der slap ud gennemFPDF_FILEWRITE/FPDF_FILEACCESS-callbacks over C-grænsen under gemning og JPEG-indsættelse; samt et heltalsoverløb i tekstudtræk ved læsning fra et startindeks til sidens slutning TPdfFuture<T>leverer nu pålideligt sit resultat-callback; svaret blev tidligere næsten altid tabt (og kunne røre en frigivet thread), fordi workeren frigav sig selv, før det kølagte svar kørte- PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/VT- og PDF/UA-output skriver nu cross-reference-poster, der er præcis 20 bytes, som krævet af ISO 32000-1 §7.5.4
- Indsættelse af standardmarkører ødelægger ikke længere en dictionary, når den fjernede nøgle (for eksempel
/Trapped) var sidste post, hvilket tidligere slugte den afsluttende>>og producerede et misdannet objekt - OutputIntent ICC profile streams deklarerer nu det krævede
/N-komponentantal for PDF/X og PDF/VT (allerede til stede for PDF/A); krypterede kildedokumenter dekrypteres, før PDF/X-, PDF/E-, PDF/R-, PDF/VT- og PDF/UA-markører indsættes, så outputtet er gyldigt i stedet for stille at blive beskadiget - UTF-8 xpacket BOM'en i genereret XMP udsendes som nøjagtige bytes, hvilket retter beskadigelse på Delphi-installationer, hvor ANSI-kodesiden ikke er Latin-1; trailers for trinvis opdatering bevarer nu dokumentets
/Info-reference SaveAsmed komprimering afkorter ikke længere streams, hvis/Lengther en indirekte reference, og genopbyggede cross-reference-tabeller bruger nu 20-byte-poster, rigtige generation numbers og fjerner den forældede/Prev-pointer- Conformance-validering læser XMP-versionsmarkører i attributform for PDF/E og PDF/X (så attribut-serialiserede PDF/X-4-filer genkendes), kræver den præcise
PDF/E-1-identifikator, læser metadata streams med indirekte/Lengthkorrekt og laver ikke længere falske matches på et structure elements/ID- eller/StructTreeRoot-nøgle ved kontrol af PDF/UA-traileren; et misdannetstartxref-offset udløser ikke længere en range error TPdfThumbnailView: den sidste side kan nu nås med rullepanelet, værtsdokumentets aktuelle side gendannes efter miniaturetegning, og standard mouse-leave-håndtering sendes igen- Gråtone-bitmaps for sider og billeder renderes ikke længere med forkert palet;
TPdfViewefterlades ikke længere med en dangling reference, når detsTPdffrigives først - Preflight-rapporter: HTML gemmes som UTF-8, så det matcher det deklarerede charset, og JSON-string-escaping producerer korrekte
\u-sekvenser for ikke-ASCII-tegn på Free Pascal - Trial builds: dialogen med trial-påmindelsen vises nu i stedet for at blive undertrykt, før den kunne nå at vises
TPdfStreamAdapterafviser nu streams større end 4 GiB med en klar fejl i stedet for stille at afkorte længden, der sendes til PDFium
Version 1.60.1
Ændret (Ændret)
- AccessibilityReader-demoerne til Delphi, Lazarus og C++Builder kører nu oplæsning på
TPdfReadingSession: hver side samles til ét talt stykke medBuildSpokenTextFromWords, SAPI-ordpositioner føderFeedSpokenPosition, og sessionen avancerer siderne og styrer visningens ordmarkør, hvilket erstatter den håndskrevne orkestrering som hvert demo tidligere bar rundt på - Ordniveau-karaokesporing i demoerne virker nu også, når NVDA er talemotoren:
EstimatePacingstyrer læsemarkøren efter forløbet taletid, hvor NVDA tidligere læste højt helt uden ordsporing - Pause og Resume i demoerne virker nu også med NVDA:
ResumeRestartsChunkgenoplæser den aktuelle side fra begyndelsen ved Resume, mens SAPI bevarer sin indbyggede pause og genoptagelse på stedet
Version 1.60.0
Tilføjet (Tilføjet)
- Live gengivelse til svagsynede på
TPdfView: de nyereInvert- ogreNightDuotone-renderingsindstillinger omfarver hver gengivet sideflise (fuld farveinversion eller en nat-duotonpalet), før søge-, markerings-, læse- og ordmarkør-overlays tegnes, så de eksisterende bitmap-farvetransformationer føres ind i den interaktive fremviser for både enkelt- og opslagslayout; skift af indstillingerne genmaler med det samme NightDuotoneInkogNightDuotonePaperkonfigurerer natpaletten, med standardværdi rav-tekst på en sort side;reInvertvinder, når begge indstillinger er sat
Version 1.59.0
Tilføjet (Tilføjet)
TPdfReadingSession: en tale-motor-neutral læs-højt-Orkestrerings-komponent. Den holder chunk-markøren, ordmarkøren og afspilningstilstanden (Play/PlayFrom/Pause/Resume/Stop), rykker gennem de indlæsteTPdfSpokenText-chunks, efterhånden som værten rapporterer motoren inaktiv viaTick, oversætter spoken-tekst-offsets tilbage til side-tegn og driver automatisk en ordmarkør på en tilknyttetTPdfView; værten forbinder en vilkårlig tale-motor viaOnSpeakog anmodningshændelserne for annuller / pause / genoptag, så biblioteket selv ikke linker nogen speech-APIFeedSpokenPositionbruger motorens ordpositioner (såsom SAPIStatus.InputWordPosition);EstimatePacingmedEstimatedWordsPerMinutestyrer motorer uden positionssignal;ResumeRestartsChunkgenoplæser den aktuelle blok for motorer uden indbygget pauseOnChunkChange,OnWordChangeogOnFinishedudløses kun ved reelle ændringer, og en frigivet tilknyttet visning kobler sig automatisk fra, så værtskoden forbliver flimmerfri og nedbrudssikker
Version 1.58.0
Tilføjet (Tilføjet)
EstimateSpokenWordIndexanslår, hvilket ord en talemotor er i gang med at udtale ud fra den forløbne tid og en ord-per-minut-hastighed, giver længere ord forholdsmæssigt mere tid, så motorer, der ikke rapporterer nogen ordposition (såsom NVDA controller-klienten), stadig kan styre læsemarkøren på ordniveau; kalderen leverer den forløbne tid, så rutinen forbliver uden eget ur og kan enhedstestes
Version 1.57.0
Tilføjet (Tilføjet)
- Spoken-tekst assembly with two-domain mapping for read-aloud tracking:
BuildSpokenTextFromWordsandSpokenTextAppendbygger strengen, der gives til en tekst-til-tale-motor, ud fra sidens ordbokse, mens en span-tabel registreres, ogSpokenToPageChartranslates an engine-reported spoken offset (such as SAPIStatus.InputWordPosition) back to the side character index, so word-level highlight tracking stays correct when the spoken tekst is not the whole side tekst (skipped regions, per-unit reading, pronunciation overrides) TPdfSpokenText- ogTPdfSpokenSpan-typer bærer den talte streng plus de kildeside-intervaller, den blev bygget fra; offsets på indsatte separatorer løses til det næste kortlagte ord, og offsets forbi de kortlagte kørsler rapporterer intet match
Version 1.56.9
Tilføjet
Demo\Delphi\PreflightReporttilføjer en Action Plan-forhåndsvisning, der kondenserer standarder, som ikke består, samt prioriteter, næste handlinger, problemkoder og anbefalinger til en afhjælpningschecklisteDemo\Delphi\PreflightReportCliacceptsplan/actionplansom et outputformat for enkeltfil- og batchkørsler og skriver den samme afhjælpningscheckliste til en tekstfil
Ændret
- Begge Delphi PreflightReport-demoer viser nu statusantal for pass / action / review sammen med det samlede antal standarder og problemer
Version 1.56.8
Ændret
ViewerInteractionLabindeholder nu kontroller til sidespring, manuelle zoomkontroller, klikbaseretDeviceToPage/PageToDevice-koordinatlogning og en tydeligere interaktionslog til kontrol af markering, søgning, rotation og navigationViewerInteractionLab-readme-siderne dokumenterer nu den tilføjede interaktionsarbejdsgang på tværs af det lokaliserede demo-readme-sæt
Version 1.56.7
Tilføjet
AccessibilityWorkbenchCliknytter hvert udløst fund til dets WCAG 2.1 Success Criteria og ISO 14289-1 (PDF/UA-1)-klausulområde og viser en standarddækningssektion i rapporterneAccessibilityWorkbenchCliberegner en dokumenteret 0-100 tilgængelighedsscore med en offentliggjort straf-rubrik og et excellent / good / needs work / poor-bånd, præsenteret pr. fil og som et batch-gennemsnitAccessibilityWorkbenchCliacceptererfailscore=Nfor at fejle kørslen (exit code 2), når en fil scorer under NAccessibilityWorkbenchCliskriver en SARIF 2.1.0-log, når batchoversigtsnavnet slutter på.sarif, med én regel pr. fundtype, der bærer dens WCAG 2.1- og PDF/UA-tags til CI- og code-scanning-indlæsningAccessibilityWorkbenchClitilføjer enversion-kommando, der udskriver den linkede PDFium Delphi Component-version
Version 1.56.6
Tilføjet
IntakeWorkbenchCliberegner en SHA-256-forensisk hash for hver inputfil (nedgraderet tilunavailablepå compilere udenSystem.Hash) og rapporterer den i alle formaterIntakeWorkbenchCliacceptererpasswords=file.txtfor at prøve-låse op for adgangskode-krævende dokumenter fra en kandidatliste og registrerer det matchende kandidat-indeks uden nogensinde at logge adgangskodetekstenIntakeWorkbenchCliaccepterercopyto=dirfor at dirigere hver auditeret fil til en undermappe pr. risikoniveau og gøre auditøren til en intake-sortererIntakeWorkbenchCliskriver en SARIF 2.1.0-log, når batchoversigtsnavnet slutter på.sarif, med én regel pr. risikoindikator og ét resultat pr. markeret fil til CI- og code-scanning-indlæsningIntakeWorkbenchClitilføjer enversion-kommando, der udskriver den linkede PDFium Delphi Component-version
Version 1.56.5
Tilføjet
IntakeWorkbenchCliudleder nu anbefalede handlinger efter intake såsom accept, request-password, manual-review, quarantine og deduplicate og viser handlingstal i batchoversigterAccessibilityWorkbenchCliudleder nu anbefalede afhjælpningshandlinger såsom pass-through, remediate-tags, run-ocr, remediate-semantics og manual-review med tilsvarende batch-handlingstal
Ændret
- Begge CLI-demoer i værktøjsklasse viser den anbefalede handling i konsol-, tekst-, HTML-, JSON- og CSV-output, så batchoperatører kan dirigere filer uden efterbehandling af risiko- eller statusfelter
Version 1.56.4
Rettet
- Aflæsning af annotationer, bogmærker eller link-annotationer i en løkke lækker ikke længere det forrige elements tekststrenge:
TPdfAnnotation-,TBookmark- ogTLinkAnnotation-resultatposter ryddes nu med managed-type-bevidst initialisering i stedet for rå hukommelses-nulstilling, så dokumenter med meget store antal tekstbærende annotationer ikke længere oppustert proces-hukommelsen i applikationens levetid - Destruktion af en
TPdf, der havde registreret enOnUnsupportedFeature-handler, løsriver den nu fra den proces-globale PDFium-tilbagekaldelse, så en senere dokumentindlæsning fra en andenTPdf-instans uden sin egen handler ikke længere kan dispatche ind i den frigivne komponent (use-after-free)
Version 1.56.3
Rettet
AccessibilityWorkbenchClitæller ikke længere blanke sider som heuristiske læserækkefølge-sider, så tagged dokumenter med tomme separator-sider bevarer deres korrekte tilgængelighedsstatus; sider uden læsbart indhold rapporteres nu separatAccessibilityWorkbenchClitilskriver ikke længere en ydre tabelTH-celler, der hører til en indlejret tabel, og navne på formularfelter og skrifttyper matches nu med forskel på store og små bogstaver, så forskellige felter ikke flettes sammenIntakeWorkbenchClifjerner nu userinfo-, query- og fragmentdele fra URL-værtsinventarer, så et konstrueret link somtrusted.example@evil.exampletilskrives den rigtige vært, ogmailto:-mål bidrager med deres domæne i stedet for at være usynligeIntakeWorkbenchCli-Markdown-rapporter escaper backticks i angrebs-kontrollerede stier, værter og vedhæftningsnavne, så rapportformatering ikke kan brydes indefra et dokument
Ændret
AccessibilityWorkbenchClirapporterer fejl i font-scan og form-field-scan som separate tællere, markerer ikke-indlejrede skrifttyper, der også har indlejrede forekomster, og afkorter lange skrifttypelister med en eksplicit trunkeringsmarkørIntakeWorkbenchCli-batchoversigter tilføjer en vedhæftnings-annotation-antalskolonne, og annotationstællingen pr. side er begrænset til 20000 annotationer pr. side med grænsen rapporteret i hvert format
Version 1.56.2
Tilføjet
AccessibilityWorkbenchCliauditerer nu skrifttypeindlejring, formularfelt-tooltips, læserækkefølge-kilde, dokument-omriss, tabel- og listestruktur, mistænkelig alternativ tekst og rigere per-side-gennemgangsdetaljer, så tilgængeligheds-batchrapporter identificerer flere remedieringsmålIntakeWorkbenchClirapporterer nu grænser for sidescanning, launch- og remote-go-to-handlinger, URI-værtsinventarer, annotationsantal, ikke-understøttede PDFium-funktioner, duplikerede dokumentidentifikatorer og udvidede risikoindikatorer til automatiseret intake-gennemgang
Ændret
IntakeWorkbenchCliaccepterermaxpages=Ni enkeltfil- og batchtilstand for at begrænse sidescanning pr. dokument, mens metadata-, vedhæftnings-, script-, XFA-, signatur- og risikorapportering stadig fuldføres
Version 1.56.1
Rettet
- Indlæsning af en ældre
pdfium.dll, som mangler en nyere eksport, fejler nu rent: fejlstien nulstiller hvert bundet API-indgangspunkt, såAssigned()-kontroller (for eksempel påFPDF_GetLastErrorellerFPDF_GetSecurityHandlerRevision) rapporterer biblioteket som ikke indlæst i stedet for at kalde ind i det allerede frigivne modul og crashe med en access violation UnloadLibrarynulstiller nu alle PDFium API-bindinger i stedet for kun de valgfrie V8-hjælpere, så ingen forældede funktionspointere overlever, efter DLL'en er frigivet
Version 1.56.0
Tilføjet
- Ordniveau-karaokemarkør på
TPdfView:TrackReadingWordAtmapper en tekst-til-tale-motors aktuelle ords tegnforskydning (såsom SAPIStatus.InputWordPosition) over på sidens ordbokse, fremhæver ordet, der indeholder den, som et særskilt overlay over læseblokken, ruller det ind i visning og returnerer ordindekset, så det talte ord lyser op, mens stemmen bevæger sig fremad SetReadingWordogClearReadingWordsætter eller rydder det fremhævede ord direkte fra enTPdfWordBox; at sætte det samme ord igen er et no-op, så sporing pr. ord aldrig får visningen til at flimreReadingWordColorogReadingWordFollowstyrer ordmarkørens farve og om visningen automatisk ruller det oplæste ord ind i synsfeltet
Version 1.55.2
Rettet
- ViewerInteractionLab giver nu værktøjslinjerækkerne mere lodret plads, så Open PDF, Create Sample, navigation, søgning og markeringskontroller ikke længere overlapper under skalerede skrifttyper
Version 1.55.1
Rettet
- ViewerInteractionLab placerer nu Prev, Next og Rotate på den anden værktøjslinjerække, så opstarts-overlap med Open PDF og Create Sample undgås
Version 1.55.0
Tilføjet
- Ord-til-markering-bro til læsning med "read it, select it":
TPdfView.SelectWordBoxogSelectWordSpanmarkerer en enkelt ordboks eller et same-side-interval af ordbokse (fraPageWordBoxes) efter deres tegnintervaller, så det ord eller den linje, der læses nu, også kan markeres og kopieres WordBoxIndexAtCharIndexmapper et tegnindeks tilbage til den ordboks, der indeholder det, og driver ord-for-ord-fremhævning, mens en TTS-læsemarkør avancerer
Version 1.54.0
Tilføjet
- Stemmeadgangsmetoder til formularudfyldning, der læser det fokuserede felt direkte fra den logiske markør:
FocusedFormFieldValue,FocusedFormFieldNameogFocusedFormFieldDetailspåTPdfogTPdfViewrapporterer det aktuelle felts værdi, menneskeligt læsbare navn (/TU-tooltip med fallback til/T) og heleTPdfFormFieldInfo(type, flags, options) — alt hvad en stemme-UI skal annoncere, når den går gennem en formular
Rettet
FocusedFormFieldValuelæser feltet viaFocusedFormFieldIndexi stedet for pdfium interaktivt fokus, så en stemmestyret formularudfylder får den rigtige værdi selv uden en synlig caret på skærmen (den eksisterendeFocusedFormFieldTextafspejler stadig pdfium-fokus og er uændret)
Version 1.53.0
Tilføjet
- Ord-niveau fremhævningsunderstøttelse:
TPdf.PageWordBoxesogTPdfView.PageWordBoxesopdeler en side iTPdfWordBox-poster, der hver bærer ordteksten, dens tegn-interval og et side-rum afgrænsningsrektangel, så en tilgængelighedslæser kan fremhæve hvert talt ord i træk ("karaoke"-læsning) ved at videregive rektanglet tilSetReadingHighlight BuildWordBoxeseksponerer tokenizer-trinnet selvstændigt og omdanner sidetekst til ord-bokse med tegn-intervaller
Version 1.52.0
Tilføjet
- Low-vision-rendering-hjælpere
InvertPdfBitmap,GrayscalePdfBitmapogDuotonePdfBitmapanvender in-place farve-transformationer på en rendered 32-bit bitmap, så en tilgængelighedslæser kan præsentere sider inverted / dark-mode, gråtoner eller i et brugerdefineret to-farve-skema (for eksempel en mørk baggrund med lys tekst) for low-vision-brugere - Transformationerne kører pr. pixel og opfører sig identisk på VCL og Lazarus/LCL, uden at ændre bitmapdimensionerne
Version 1.51.0
Tilføjet
- Sætnings-niveau læseenheder for assistiv lyttelæsning:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsogTPdfView.ReadingUnitslineariserer den læsbare indholdsstrøm til ordnede, sætnings-storeTPdfReadingUnit-poster — hver bærer teksten, der skal tales, plus dens semantiske type, side, fremhævningsrektangler og sprogtag, så en skærmlæser-app kan træde gennem en side eller hele dokumentet én talt enhed ad gangen - Semantisk navigation med
NextReadingUnitOfKind, så en stemme-UI kan hoppe til næste eller forrige overskrift, figur, listeelement eller tabelcelle uden at gennemgå strømmen manuelt BuildReadingUnitskonverterer enhverTPdfContentFragmentsdirekte til læseenheder: overskrifter og figur-/alt-beskrivelser forbliver hele, mens afsnit deles ved sætningsgrænser, decimalpunkter bevares, og læsemarkøren er et almindeligt kalder-ejet indeks
Version 1.50.0
Tilføjet
ValidatePdfAcan now inspect PDF 1.5+ documents that store the catalog, OutputIntent or other dictionaries inside compressed object streams (/Type /ObjStm). Objektstrømmene udpakkes, og de objekter, de indeholder, opløses, så sådanne dokumenter valideres ud fra deres eget indhold i stedet for at blive rapporteret som manglende deres PDF/A-markører
Version 1.49.5
Rettet
ValidatePdfArapporterer ikke længere en manglendepdfaExtension:schemas-beskrivelse som et problem. PDF/A-identifikatorskemaet (pdfaid) er velkendt, så hverken veraPDF eller PDF/A-2/-3 kræver en beskrivelse af udvidelsesskemaet for det, og markering af dets fravær fejlrapporterede alle konforme tredjeparts-PDF/A. Dokumenter, som biblioteket selv producerer, indeholder stadig beskrivelsen
Version 1.49.4
Rettet
ValidatePdfAregistrerer nu overensstemmelsesniveauet, når PDF/A-identifikatoren er skrevet som XML-attributter (pdfaid:part="2") i stedet for underordnede elementer, so attribute-form dokuments are no longer reported with an unknown level. This also corrects a cascade in which an undetected level made the part-specific checks fall back to the strict PDF/A-1 rules and wrongly flag embedded files and transparency that PDF/A-2 and PDF/A-3 permit
Version 1.49.3
Rettet
ValidatePdfAinspicerer nu PDF 1.5+-dokumenter, hvis krydsreference-data er en krydsreferencestream (filer, der ikke har nogentrailerkeyword). The conformance level, trailer/IDog de øvrige markører læses fra krydsreferencestream-dictionaryen, så sådanne dokumenter valideres på deres eget grundlag i stedet for at blive rapporteret som helt ikke-overensstemmende
Version 1.49.2
Rettet
ValidatePdfArapporterer ikke længere et falsk ikke-indlejret-skrifttype-problem på dokumenter, der indlejrer alle deres skrifttyper. Den tidligere heuristik sammenlignede antallet af/FontDescriptor-tokens mod indlejrede skrifttypeprogrammer, men hver indlejret skrifttype bidrager med to/FontDescriptor-tokens (skrifttype-ordbogsreferencen plus deskriptor-objektet), så hver indlejret-skrifttype-fil blev fejlagtigt markeret. Kontrollen rapporterer nu kun et dokument, der refererer skrifttyper, men slet ikke indlejrer noget skrifttypeprogram, hvilket matcher den tilsvarendeValidatePdfUa-rettelse
Version 1.49.1
Rettet
- PDF/A-output validerer nu som konform PDF/A-1b og PDF/A-1a med veraPDF: den indlejrede sRGB OutputIntent ICC-profilstream (refereret af
/DestOutputProfile) angiver nu det påkrævede/N-komponentantal (3 for den indbyggede RGB-profil), som krævet af ISO 19005-1 6.2.3.2. Dokumenter produceret afSaveAsPdfAfejlede tidligere streng PDF/A-1-validering, fordi destinationsprofilstreamen udelod/N; værdien udledes af ICC-profilhovedet, så en kalderleveret CMYK- eller Gray-profil også får det korrekte antal
Version 1.49.0
Rettet
ValidatePdfUarapporterer ikke længere falsk manglende XMP-identifikation på overensstemmende taggede PDF-filer — PDF/UA-identifikatoren (pdfuaid:part),dc:title, XMP-datoerne og trailerens/IDlæses nu fra de oprindelige dokumentbytes i stedet for den igen gemte kopi, som udelader/Metadata-XMP-streamen og, for krydsreference-stream-filer, trailerens/IDValidatePdfUa-skrifttypeindlejringskontrollen rettet, så et dokument, der indlejrer alle sine skrifttyper, ikke længere rapporteres som havende ikke-indlejrede skrifttyper; den markerer nu kun et dokument, der refererer skrifttyper, men slet ikke indlejrer noget skrifttypeprogramValidatePdfUaaccepterer nu etFormula-strukturelement, hvis alternative tekst leveres viaActualTextsnarere end enAlt-post (ISO 14289-1 §7.7), i overensstemmelse med den eksisterendeFigure-regel
Version 1.48.0
Tilføjet
- Programmatisk tekstmarkering på
TPdfView:SelectTextRange(efter side og tegn-interval) ogSetSelection(efter eksplicitte per-side-intervaller) vælger tekst fra kode — for eksempel for at læse og fremhævne et afsnit; begge gentegner og udløserOnSelectionChange, når markeringen ændres.SelectionRangeslæser den nuværende markering som per-side tegn-intervaller, ogSelectionRectanglesreturnerer sine rektangler i sidekoordinater til brugerdefineret fremhævning eller scroll-til
Version 1.47.0
Tilføjet
- Formfeltnavigation til stemmestyret formularudfyldning, både i
TPdfogTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusogFocusedFormFieldText. Disse flytter en logisk feltmarkør over sidens widgetfelter i tabrækkefølge (med ombrydning i enderne), så en hjælpelæser kan gennemgå formularen, annoncere hvert felt viaFormFieldInfo[Index].AlternateName(tooltippet /TU) og udfylde det viaFormField[Index] TPdfView.OnFormFieldFocusChangehændelse, der udløses, når feltmarkøren flytter sig (og medbringer det nye feltindeks eller -1, når den ryddes)
Version 1.46.0
Tilføjet
- Assistiv lyttelæsnings-indholdsstrøm:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentogTPdfView.ReadableContentreturnerer en ordnet liste af semantiskeTPdfContentFragment-elementer, der hver bærer den talte tekst (rigtige glyphs ellerActualText/Alt for figurer), en fragment-type (overskrift med niveau, afsnit, figur, listeelement, tabelcelle, link, almindelig), sprog, 1-baseret side samt blok- og per-linje fremhævningsrektangler. Tagged PDF'er lineariseres i logisk læserækkefølge fra strukturelt; untagged sider falder tilbage på render-rækkefølge, så ethvert dokument kan læses højt - Synkroniseret læsehøjlysning på
TPdfView:SetReadingHighlight,ClearReadingHighlightog den publiceredeReadingHighlightColorfremhæver den blok, der læses lige nu, oven på søge- og markerings-overlays - Nye offentlige typer
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindogTPdfReadingOrderSource, samt den nye hjælperClassifyStructType
Version 1.45.0
Tilføjet
ValidatePdfUagennemløber nu også det live tagged strukturtræ og rapporterer tre høj-sikkerheds indholdsovertrædelser, som byteniveau-scanning ikke kan detektere: etFigure-element uden hverken en Alt-post eller ActualText (ISO 14289-1, 7.3), etFormula-element uden en Alt-attribut (7.7) og etNote-element, der mangler et unikt ID (7.9). Tre nyeTPdfUaValidationIssue-værdier præsenterer disse:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltogpvuaiNoteMissingId. Trægennemløb springes over for untagged dokumenter- Ny offentlig hjælper
ValidatePdfUaStructureElementsanvender disse strukturtræ-regler på en flad elementliste (som returneret afTPdf.StructureElements), så kontrollerne kan køres eller unit-testes uden at indlæse et fuldt dokument
Version 1.44.5
Rettet
ValidatePdfA-skrifttypeindlejringskontrollen (pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) registrerer nu også ikke-indlejrede simple skrifttyper, der ikke har nogen/FontDescriptor, vigtigst de 14 standard-Type 1-skrifttyper (Helvetica, Times, Courier og så videre), som PDF/A kræver indlejret uden fritagelse. Tidligere slap en sådan skrifttype ubemærket igennem; kontrollen tæller nu også simple-font-ordbøger (/Type1,/TrueType,/MMType1) mod de indlejrede skrifttypeprogrammer, hvilket spejler PDF/UA-rettelsen i 1.44.3
Version 1.44.4
Rettet
ValidatePdfVTafviser nu fejlbehæftede ISO 16612-2 §6.5 DPart-træer, hvor/DPartser et fladt reference-array i stedet for det krævede array af arrays, eller hvor en blad-DPart gentager sin/Start-side som/End, selvom området kun indeholder én sideValidatePdfVTvaliderer nu/NodeNameList-navne som XML-NMTOKEN-værdier efter udfoldelse af PDF-navne-#xx-escape, så ugyldige hierarkiniveau-navne rapporteres viapvviMissingDPartRooti stedet for at blive accepteret som brugbar DPart-struktur
Version 1.44.3
Rettet
ValidatePdfUa-skrifttypeindlejringskontrollen (pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) registrerer nu også ikke-indlejrede simple skrifttyper, der ikke har nogen/FontDescriptor, vigtigst de 14 standard-Type 1-skrifttyper (Helvetica, Times, Courier og så videre), for hvilke PDF/UA ikke giver nogen indlejringsfritagelse. Tidligere slap en sådan skrifttype ubemærket igennem, og et dokument, der brugte den, kunne rapporteres som overholdende; kontrollen tæller nu også simple-font-ordbøger (/Type1,/TrueType,/MMType1) mod de indlejrede skrifttypeprogrammer
Version 1.44.2
Rettet
ValidatePdfVTnow leaves a present but unrecognizedpdfvtid:GTS_PDFVTVersionmarker aspvcUnknowninstead of downgrading it topvcNone. This keeps invalid file-level strings such asPDF/VT-2skan skelnes fra dokumenter, der ikke bærer nogen PDF/VT-markør; PDF/VT-2 identificeres af MIME-streamheaderen i ISO 16612-2 Annex A, ikke af en PDF-fils XMP-markør- The
/DPartRootcheck now validates the ISO 16612-2 §6.5 tree semantics more tightly:/DPartRootNodeand/NodeNameListmust describe the actual DPart depth, DPart parent links must form a tree,/Startand/DPartsare mutually exclusive, and each side/DPartskal pege på den dækkende blad-DPart i samme depth-first-rækkefølge som sidetræet
Version 1.44.1
Rettet
SaveAsPdfVTskriver nu et minimalt ISO 16612-2 §6.5 Document Part Hierarchy, når kilde-PDF'en mangler et brugbart/DPartRoot. Det genererede træ forbinder hver side via/DPart, bevarer et eksisterende gyldigt hierarki og efterlader rigere modtager-/DPM-metadata til den kaldende arbejdsgangValidatePdfVTvaliderer nu den brugbare DPart-struktur, læser PDF/VT XMP-værdier fra både RDF-attributter og elementtekst og håndhæver den præcise PDF/VT-til-PDF/X-basekobling: PDF/VT-1 kræver PDF/X-4, mens PDF/VT-2 kræver PDF/X-4p, PDF/X-5g eller PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2skriver ikke længere ugyldige single-file PDF/VT-2-markører. Single-file-skriveren normaliserer output til PDF/VT-1, fordi PDF/VT-2 kræver filsæt-semantik
Version 1.44.0
Tilføjet
ValidatePdfUanow also reports byte-checkable content-level PDF/UA violations in addition to the file-format markers: a font program that is not embedded (ISO 14289-1, 7.21.4), a font that lacks a/ToUnicodeCMap, når der ikke findes nogen undtaget enkel-skrifttypekodning (7.21.7), og et dokument, der bærer annotationer men erklærer ingen side/Tabs /Stab order (7.18.3)- Tre nye
TPdfUaValidationIssue-værdier —pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeogpvuaiMissingTabsOrder— præsenteres afValidatePdfUaog i preflight-rapporten. De er grove heuristikker beregnet som preflight-hints snarere end en fuld ISO 14289-1-verifikation
Version 1.43.1
Rettet
SaveAsPdfUanow enforces the ISO 14289-1, 7.1 mandatory/ViewerPreferences/DisplayDocTitle trueand/MarkInfo/Marked true/Suspects falsekatalogposter, selv når kildedokumentet allerede leverer disse dictionaries med manglende eller modstridende værdier. Tidligere blev markørerne kun indsat, når dictionaries var helt fraværende, så en kilde, der for eksempel bar en/ViewerPreferenceswithoutDisplayDocTitleor a/MarkInfowith/Marked falseround-tripped to a non-conforming file- Existing keys in a pre-existing
/ViewerPreferencesor/MarkInfodictionary bevares, og en dictionary leveret som en indirekte reference opløses, før de obligatoriske nøgler anvendes
Version 1.43.0
Tilføjet
ValidatePdfAanvender nu PDF/A-2 / PDF/A-3-reglerne for indlejrede og associerede filer samt for Level U-tekst. Indlejrede filer afvises stadig for PDF/A-1; for PDF/A-3 afvises en indlejret fil, der mangler den krævede/AFRelationshipnøgle (ISO 19005-3 Annex E) markeres, mens PDF/A-2-vedhæftninger er tilladt (deres egen overensstemmelse valideres ikke rekursivt). En nypvaiUnicodeMappingMissingissue reports a PDF/A-2u or PDF/A-3u document whose fonts carry no/ToUnicodemapping (ISO 19005-2 6.2.11.7). Transparency and optional content remain flagged only for PDF/A-1
Version 1.42.0
Tilføjet
- PDF/A-2 (ISO 19005-2) og PDF/A-3 (ISO 19005-3) understøttes nu på alle tre overensstemmelsesniveauer — a, b og u — af
SaveAsPdfA,ValidatePdfAog egenskabenPdfAConformance. EnumerationenTPdfAConformancefårpac2a,pac2u,pac3aogpac3u(PDF/A-1 har intet Level u). Gemning skriver det matchendepdfaid:part(2 eller 3) ogpdfaid:conformance(A, B eller U), samtidig med atGTS_PDFA1OutputIntent-under-typen bevares, som ISO 19005-2 kræver af hensyn til kompatibilitet. En Level A-anmodning nedgraderes stadig til det tilsvarende Level B (for enhver del), når dokumentet mangler den taggede struktur, som niveauet kræver
Version 1.41.0
Tilføjet
ValidatePdfAnow detects content-level PDF/A violations that marker injection cannot repair, on top of the structural markers it already reported: JavaScript and other forbidden actions, additional-actions (/AA), embedded files,LZWDecode, transparency (soft masks and transparency groups), optional content (/OCProperties), forbidden annotation subtypes (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances trueand/XFA, skrifttyper hvis deskriptorer mangler et indlejret skrifttypeprogram, og et Level A-krav fremsat uden den taggede struktur, som kræves af ISO 19005-1 6.8. Gennemsigtigheds-, valgfrit indhold- og indlejret-fil-kontrollerne gælder kun for PDF/A-1 (disse funktioner er tilladt i PDF/A-2 og PDF/A-3). NyTPdfAValidationIssuevalues surface each case; the existing values are unchanged
Version 1.40.3
Rettet
SaveAsPdfAfjerner nu al kildedokument-kryptering, før PDF/A-output produceres. ISO 19005-1 6.1.3 forbyder trailer-/Encrypt-nøglen, men gemstien bevarede tidligere kildens sikkerhedshandler, så gem af et krypteret dokument som PDF/A fremstillede en krypteret, ikke-overholdende fil. PDF/A-gemmet dekrypterer nu dokumentet først. Ukrypterede dokumenter er upåvirkede
Version 1.40.2
Rettet
- Stoppede
SaveAsPdfAfra at udsende en falsk PDF/A Level A-overholdelsespåstand. Når Level A (pac1a) anmodes om, men kildedokumentet mangler de tagged-structure-markører, der kræves af ISO 19005-1 6.8 — en/StructTreeRooti kataloget og en/MarkInfo-ordbog med/Marked true— identificeres den gemte fil nu som det tilsvarende Level B (pdfaid:conformance=B) i stedet for at hævde Level A. Rent visuelt PDF/A-1b-output er upåvirket
Version 1.40.1
Rettet
- Strammede PDF-versions-overholdelses-valideringen, så
SetOCGState-handlingen (set-optional-content-group-state) genkendes som en PDF 1.5-funktion. Gemning til et PDF 1.2-, 1.3- eller 1.4-mål, der indeholder enSetOCGState-handling, afvises nu for at matche ISO 32000-1 (Tabel 198); tidligere kunne en sådan handling slippe igennem til lavere-versions-output. Den adskilte, forældede PDF 1.2-SetState-handling accepteres stadig fra PDF 1.2 og frem
Version 1.40.0
Tilføjet
- Bandt den opstrøms
FPDFPageObj_AddExistingMark()-API, som vedhæfter et eksisterende indholdsmærke til et side-objekt. Når fortløbende side-objekter deler det samme mærke, kollapser den gemte PDF dem til et enkelt mærke, der spænder over dem alle; ikke-fortløbende objekter modtager separate kopier - Bandt den opstrøms
FPDFTextObj_SetFontSize()-API til at ændre punktstørrelsen for et eksisterende tekstobjekt som supplement til den eksisterendeFPDFTextObj_GetFontSize()-binding
Ændret
- Opdaterede de medfølgende PDFium-runtime-DLL'er (Win32 og Win64, standard- og V8-builds) til upstream-snapshotet fra 2026-06-02
Version 1.39.53
Ændret
- Ændrede Delphi-
PDFViewer-,SplitView- ogMultiPageViewer-demoerne til at åbne dokumenter iZoom to Page-tilstand som standard - Den indledende gengivelse tilpasser nu hele siden til visningsfladen, før brugeren vælger et manuelt zoomniveau
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.53
Version 1.39.52
Ændret
- Forbedrede
Demo\Lazarus\CreatePDF, så den indledende prøve nu genererer en to-siders PDF med vektorstier, tabelindhold, et indlejret billede, en tekstannotation, roteret tekst og en klarere gennemgang af dokumentopbygning - Tilføjede polerede
README.html-sider for hver Delphi-, C++Builder- og Lazarus-demomappe og erstattede de resterende tekst- kun demo-README'er med en browserlæsbar guide - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.52
Version 1.39.51
- Forbedrede
Demo\Delphi\PreflightReportCli-batchoversigter med standardstatustotaler for Pass, Action required og Review-resultater på tværs af de valgte standarder - Per-fil-rækker indeholder nu action-required- og review-antal i TXT-/HTML-/JSON-/CSV-oversigter, hvilket gør CI-artefakter lettere at inspicere uden at åbne hver genereret rapport
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.51
Version 1.39.50
- Forbedrede
Demo\Delphi\PreflightReportCli-mappe-batchtilstand, såbatchdir=folderindsamler fundne PDF-stier, sorterer dem og derefter genererer rapporter i en stabil rækkefølge - Rekursive mappescanninger producerer nu reproducerbar rapportrækkefølge og oversigtsrækker, mens eksplicit
batch=list.txt-behandling fortsat bevarer liste filens rækkefølge - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.50
Version 1.39.49
- Forbedrede
Demo\Delphi\PreflightReportCli-batchoversigter til at registrere kørselsindstillinger: kildetype, kildesti, rekursiv tilstand, outputmappe, rapportformat, valgte standarder ogfailon=-tilstand - JSON summaries now include a
runobjekt, viser TXT- og HTML-opsummeringer en kørselsindstillingssektion, og CSV-rækker gentager de samme revisionskolonner til regneark- og CI-pipelines - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.49
Version 1.39.48
- Forbedrede
Demo\Delphi\PreflightReportCli-batchoutputnavngivning, så duplikerede inputfilnavne, der deler énoutdir=, ikke længere overskriver hinandens genererede rapporter - Batchkørsler tilføjer nu
-2,-3og senere suffikser, når en genereret rapportsti allerede er tildelt i samme kørsel, og oversigter registrerer den endelige kollisions-sikre rapportsti - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.48
Version 1.39.47
- Forbedrede
Demo\Delphi\PreflightReportCli-batchoversigter, så TXT- og JSON-output nu inkluderer samlede totaler for samlede filer, behandlede filer, fejlende filer, problemer ogfailon=-match - CSV-opsummeringer forbliver en ren rækketabel for eksisterende forbrugere, mens HTML-opsummeringer fortsat viser de samme samlede målinger i dashboardets header
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.47
Version 1.39.46
- Forbedrede
Demo\Delphi\PreflightReportClimedsummary=batch.html/.htm, så batchkørsler kan udsende et browserlæsbart dashboard ved siden af TXT-/CSV-/JSON-manifester - HTML-oversigter viser samlede, behandlede, fejlende, problem- og
failon=-match-metrikker og oplister derefter hvert input med rapportlinks, status, antal og fejltekst - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.46
Version 1.39.45
- Forbedrede
Demo\Delphi\PreflightReportClimedbatchdir=folderogrecursive, så scripts kan scanne PDF-mapper direkte uden først at skrive en listefil - Directory batch mode reuses
outdir=,summary=,standards=, andfailon=adfærd fra listebaseret batchtilstand, mens ikke-rekursive scanninger kun gennemløber den valgte mappe ogrecursiveincludes subfolders - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.45
Version 1.39.44
- Forbedrede
Demo\Delphi\PreflightReportClimedsummary=batch.csv|json|txt, så batchkørsler kan udsende et maskinlæsbart manifest ved siden af per-fil-rapporterne - Batchoversigter inkluderer hver inputsti, rapportsti, status, standardantal, bestået-antal, problemantal,
failon=-matchtilstand og fejltekst til CI-jobs og eksterne scripts - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.44
Version 1.39.43
- Forbedrede
Demo\Delphi\PreflightReportClimedbatch=list.txtogoutdir=reports, så scripts kan generere preflight-rapporter for en liste af PDF-filer i én kørsel - Batchtilstand springer tomme og
#-kommentarlinjer over, afleder hvert.preflight.<ext>-rapportnavn fra input-PDF'en, fortsætter efter per-fil-fejl og opsummerer behandlede og fejlende filer før returnering - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.43
Version 1.39.42
- Forbedrede
Demo\Delphi\PreflightReportClimedfailon=none|issues|action|review, så CI-jobs kan omdanne genererede preflight-resultater til deterministiske exitkoder - CLI'en returnerer nu exitkode 2, når en valgt
failon=-regel matcher, efter at rapportfilen og den valgfri vedhæftede rapport-PDF er genereret, mens kørselsfejl fortsat returnerer exitkode 1 - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.42
Version 1.39.41
- Forbedrede
Demo\Delphi\PreflightReportClimedattach=output.pdf, så en genereret preflight-rapport kan indlejres som en dokumentniveau-vedhæftning i en ny PDF-kopi - CLI'en beholder den genererede TXT-/HTML-/Markdown-/JSON-/CSV-rapportfil på disken og nægter at vedhæfte tilbage til den oprindelige input-PDF-sti, hvilket reducerer risikoen for utilsigtet overskrivning
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.41
Version 1.39.40
- Tilføjede
Demo\Delphi\PreflightReportCli, en Delphi-konsol-ledsager til script-barFPdfPreflightReport-generering uden at åbne en fremviser - CLI'en understøtter prøveoprettelse uden argumenter plus input-/output-argumenter, valgfri adgangskode,
text-/html-/md-/json-/csv-outputformater ogstandards=-filtrering for PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R og PDF/VT - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.40
Version 1.39.39
- Forbedrede
FPdfPreflightReportmedTPdfPreflightReport.ToMarkdownogSaveMarkdownToFile, så preflight-rapporter kan eksporteres som issue-tracker-venlig Markdown - Opdaterede Delphi-, C++Builder- og Lazarus-
PreflightReport-prøverne med Markdown-forhåndsvisningsskift og Save MD-handlinger ved siden af den eksisterende TXT-/HTML-/JSON-/CSV-arbejdsgang - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.39
Version 1.39.38
- Forbedrede Delphi-, C++Builder- og Lazarus-
SecurityAudit-prøverne med JSON-auditrapporteksport ved siden af den eksisterende TXT-gemme-/kopi-arbejdsgang - JSON-rapporten indeholder
format,generatedAt,summary,findingCountog struktureredefindings-rækker med severity-, area- og detail-felter - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.38
Version 1.39.37
- Forbedrede
FPdfPreflightReportmedTPdfPreflightReport.ToCsvogSaveCsvToFile, så preflight-rapporter kan eksporteres som regnearksvenlig CSV - Opdaterede Delphi-, C++Builder- og Lazarus-
PreflightReport-prøverne med CSV-forhåndsvisningsskift og Save CSV-handlinger ved siden af den eksisterende TXT-/HTML-/JSON-arbejdsgang - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.37
Version 1.39.36
- Forbedrede
FPdfPreflightReportmedTPdfPreflightReport.IssueCategoryCountssamt genanvendeligeTPdfPreflightIssueCategoryCount- ogTPdfPreflightIssueCategoryCounts-typer til at aggregere markørniveau-problemer efter kategori - Opdaterede
TPdfPreflightReport.ToText,ToHtmlogToJson, så genereret PreflightReport-output inkluderer problemkategoriantal-oversigter ved siden af per-standard-rækker og detaljerede problem-anbefalinger - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.36
Version 1.39.35
- Omdøbte den udvidede
PrintDialog-prøve tilPrintPreferencespå tværs af Delphi, C++Builder og Lazarus, så demonavnet nu matcher dens PDF-forfatter-udskriftsindstillinger, N-up-udskrivning, lige-/ulige-filtrering, gråtoner, cellekant og duplex-afbildningsarbejdsgang - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.35
Version 1.39.34
- Forbedrede
Demo\Delphi\PrintPDFmed drag-and-drop PDF-indlæsning og dokumenterede den eksisterendeDemo\CBuilder\PrintPDF-arbejdsgang ved siden af Delphi- og Lazarus-PrintPDF-prøverne - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.34
Version 1.39.33
- Tilføjede
Demo\CBuilder\SplitView, hvilket fuldender SplitView-prøve-matricen på tværs af Delphi, C++Builder og Lazarus - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.33
Version 1.39.32
- Tilføjede
Demo\Lazarus\SplitView, hvilket bringer side-om-side PDF-sammenligning til Lazarus med to- eller tre-rude-layouts, aktiv-vis-navigation, synkroniserede kommandoer, zoom-presets og rotation - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.32
Version 1.39.31
- Tilføjede
Demo\Lazarus\PrintPDF, hvilket bringer den almindelige PDF-udskrifts-arbejdsgang til Lazarus med forhåndsvisnings-navigation, side-intervaller, kopier, collate-tilstand, fremgang og annullering - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.31
Version 1.39.30
- Tilføjede
Demo\Lazarus\FontProperties, hvilket fuldender FontProperties-prøve-matricen på tværs af Delphi, C++Builder og Lazarus - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.30
Version 1.39.29
- Tilføjede
Demo\CBuilder\FontProperties, hvilket bringer indekseret tegn- og skrifttype-metadata-inspektion til C++Builder ved siden af Delphi-prøven - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.29
Version 1.39.28
- Tilføjede
Demo\Delphi\ExtractTextPages, hvilket fuldender per-side tekst-udtræknings-prøve-matricen på tværs af Delphi, C++Builder og Lazarus - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.28
Version 1.39.27
- Tilføjede
Demo\Lazarus\PrintDialog, hvilket fuldender PrintDialog-prøve-matricen på tværs af Delphi, C++Builder og Lazarus - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.27
Version 1.39.26
- Tilføjede
Demo\CBuilder\PrintDialog, hvilket bringer N-up-udskrivnings- og PDF-forfatter-udskriftsindstillings-arbejdsgangen til C++Builder ved siden af Delphi-prøven - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.26
Version 1.39.25
- Tilføjede
Demo\CBuilder\ViewerInteractionLab, hvilket fuldender ViewerInteractionLab-eksempelsættet på tværs af Delphi, C++Builder og Lazarus - Opdaterede bibliotekets bygge-arbejdsgang og Win64 C++Builder-pakkeoutput, så
TPdfView-fremviser-interaktionsmetoder linker korrekt i Win64-demoer - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.25
Version 1.39.24
- Tilføjede
Demo\Lazarus\ViewerInteractionLab, som bringer den fokuserede fremviser-interaktionsarbejdsgang til Lazarus sammen med Delphi-eksemplet - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.24
Version 1.39.23
- Tilføjede
Demo\Lazarus\SearchAndSelect, hvilket fuldender SearchAndSelect-prøve-matricen på tværs af Delphi, C++Builder og Lazarus - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.23
Version 1.39.22
- Tilføjede
Demo\CBuilder\ContentExtractionLabogDemo\Lazarus\ContentExtractionLab, hvilket bringer multi-kategori-indholdsudtræknings-arbejdsgangen til alle understøttede demo-IDE'er - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.22
Version 1.39.21
- Forbedrede
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportogDemo\CBuilder\PreflightReportmed en forhåndsvisningsformat-vælger, så brugere kan inspicere tekst- eller JSON-output, før rapporter gemmes - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.21
Version 1.39.20
- Tilføjede JSON-eksport til
FPdfPreflightReportviaTPdfPreflightReport.ToJsonogSaveJsonToFile, hvilket producerer maskinlæsbare oversigter, per-standard-status / prioritet, næste-handlinger og problem-detaljer - Opdaterede
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportogDemo\CBuilder\PreflightReportmed Save JSON-handlinger ved siden af TXT-/HTML-eksport - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.20
Version 1.39.19
- Forbedrede
FPdfPreflightReportmedTPdfPreflightStatus, problemkategorier, per-standard-prioritet og næste-handling-vejledning i TXT-/HTML-rapporter - Opdaterede
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportogDemo\CBuilder\PreflightReportfor at vise status, prioritet, antallet af problemer og næste handling i oversigtsgitteret - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.19
Version 1.39.18
- Tilføjet
Demo\Lazarus\SecurityAudit, og fuldender dermed demo-matricen for Delphi, C++Builder og Lazarus til den skrivebeskyttede PDF-risikooverflade-revisionsarbejdsgang - Lazarus-prøven optæller rettigheder, vedhæftninger, JavaScript-handlinger, URI-/Launch-link-annotationer, weblinks, signaturer, XFA-tilstand, V8-/XFA-hjælper-tilgængelighed og utilstøttet-funktion-tilbagekald og gemmer eller kopierer derefter fund-listen som en TXT-rapport
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.18
Version 1.39.17
- Tilføjede
Demo\CBuilder\SecurityAudit, hvilket bringer den skrivebeskyttede PDF-risiko-overflade-audit-arbejdsgang til C++Builder ved siden af den eksisterende Delphi-prøve - C++Builder-prøven optæller rettigheder, vedhæftninger, JavaScript-handlinger, URI-/Launch-link-annotationer, weblinks, signaturer, XFA-tilstand, V8-/XFA-hjælper-tilgængelighed og utilstøttet-funktion-tilbagekald og gemmer eller kopierer derefter fund-listen som en TXT-rapport
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.17
Version 1.39.16
- Tilføjede
Demo\CBuilder\SearchAndSelect, hvilket bringer den selvstændige SearchAndSelect-fremviser-arbejdsgang til C++Builder ved siden af den eksisterende Delphi-prøve - C++Builder-eksemplet opretter eller åbner PDF-filer, viser alle sides træffere med forhåndsvisninger af side- / tegnindeks, understøtter Previous / Next og navigation med dobbeltklik og fremhæver træffere på den aktuelle side med
HighlightSearchText - Den eksponerer også
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangeog spread-DisplayMode-indstillinger; versionsmetadata rapporterer nu 1.39.16
Version 1.39.15
- Tilføjede
Demo\CBuilder\WatermarkStamp, hvilket fuldender Delphi-, Lazarus- og C++Builder-demo-matricen for genanvendelige Form XObject-vandmærke- og stempel-arbejdsgange - C++Builder-prøven opretter mål- og stempel-PDF'er, genbruger stempel-siden via
CreateXObjectFromPage, anvenderTPdfMatrix-transformationer og gemmer centrererede vandmærker, hjørne-stemple og sidenummer-labels - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.15
Version 1.39.14
- Tilføjede
Demo\Lazarus\WatermarkStamp, hvilket bringer den genanvendelige Form XObject-vandmærke- og stempel-arbejdsgang til Lazarus - Lazarus-prøven opretter mål- og stempel-PDF'er, genbruger stempel-siden via
CreateXObjectFromPage, anvenderTPdfMatrix-transformationer og gemmer centrererede vandmærker, hjørne-stemple og sidenummer-labels - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.14
Version 1.39.13
- Tilføjede
Demo\CBuilder\PreflightReport, hvilket fuldender Delphi-, Lazarus- og C++Builder-demo-matricen for den genanvendeligeFPdfPreflightReport-arbejdsgang - C++Builder-prøven bruger
FPdfPreflightReport.hpptil at generere standardoversigter, TXT-rapport-forhåndsvisninger, TXT-/HTML-rapportfiler og Åbn seneste rapport-adfærd - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.13
Version 1.39.12
- Tilføjede
Demo\Lazarus\PreflightReport, hvilket bringer PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- og PDF/VT-preflight-rapport-arbejdsgangen til Lazarus - Lazarus-prøven kan åbne eller oprette en PDF, vælge målstandarder, forhåndsvise oversigtsrækker og TXT-rapport-output, gemme TXT-/HTML-rapporter og åbne den senest gemte rapport
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.12
Version 1.39.11
- Forbedrede
Demo\Delphi\SearchAndSelectmed en alle-sider-søgnings-resultatliste, der registrerer sidenummer, tegn-indeks og forhåndsvisningstekst - Tilføjede Previous / Next match-navigation og dobbeltklik-resultat-hopning, mens nuværende-side
HighlightSearchText-adfærd bevares - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.11
Version 1.39.10
- Enhanced
Demo\Delphi\SecurityAuditmed handlingerne Save Report og Copy Report, som eksporterer den aktuelle opsummering og fundrækker som en TXT-revisionsrapport - Demon rydder nu rapport-eksporttilstand, når audit-panelet nulstilles, hvilket holder kopierede eller gemte rapporter på linje med de synlige fund
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.10
Version 1.39.9
- Forbedrede
Demo\Delphi\ContentExtractionLabmed kilde-PDF-gemning, rapport-kopiér-til-udklipsholder og alle-/ingen-kategorivalg-handlinger - Demon ugyldiggør nu den aktuelle rapport, når kategorivalg ændres, så TXT-/JSON-eksport afspejler det synlige udtrækningsomfang
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.9
Version 1.39.8
- Tilføjede
Demo\Delphi\ContentExtractionLab, en samlet indholdsudtræknings-arbejdsgangs-prøve for dokument-metadata, sidetekst, side-objekter, billeder, vedhæftninger, links, annotationer, bogmærker og skrifttype- / tegn-metrik - Prøven kan åbne en eksisterende PDF eller oprette en syntetisk PDF med tekst-, billede-, vedhæftnings- og annotationsindhold og derefter generere oversigtsrækker og detaljerede TXT-/JSON-rapporter
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.8
Version 1.39.7
- Tilføjede
Lib\FPdfPreflightReport.pas, en genanvendelig rapport-hjælper, der indpakkerValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRogValidatePdfVTi étTPdfPreflightReport-objekt - Tilføjede
Demo\Delphi\PreflightReport, en arbejdsgangs-prøve, der åbner eller opretter en PDF, vælger målstandarder, forhåndsviser oversigtsrækker og problem-anbefalinger og gemmer TXT- eller HTML-rapporter - De genererede rapporter beskriver eksplicit den indbyggede markørniveau-valideringsgrænse, så applikationer kan parre dem med dedikerede indholdsniveau-preflight-værktøjer, når det kræves
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata, pakkeprojektlister og installatør-versionsmetadata til at rapportere 1.39.7
Version 1.39.6
- Tilføjede
Demo\Delphi\SearchAndSelect, en fokuseret fremviser-arbejdsgangs-prøve for søgnings-fremhævning, tekst-markering, valgt-tekst-forhåndsvisning, kopier, ryd og spread-visningstilstande - Prøven demonstrerer
HighlightSearchText, match-case-/whole-word-søgningsindstillinger,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardogClearSelectionuden at tilføje ny biblioteks-API - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.6
Version 1.39.5
- Udvidede
Demo\Delphi\ViewerInteractionLabtil et SearchAndSelect-lignende viewer-UX-eksempel medHighlightSearchText, match-case / whole-word-indstillinger, preview af markeret tekst og de eksisterende markerings- og udklipsholderkontroller - Udvidede
Demo\Delphi\PrintDialogtil at inspicere PDF-forfatter-udskriftsindstillinger:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingog synligSetPdfPrintPaperHandlingDevMode-duplex-afbildning - Tilføjede
Demo\Delphi\SecurityAudit, en skrivebeskyttet risiko-overflade-prøve, der oplister rettigheder, vedhæftninger, dokument-JavaScript, URI-/Launch-links, weblinks, signaturer, XFA-tilstand og V8-/XFA-hjælper-tilgængelighed - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.5
Version 1.39.4
- Tilføjede
Demo\CBuilder\ImageToPDFogDemo\Lazarus\ImageToPDF, hvilket fuldender ImageToPDF-prøve-matricen på tværs af Delphi, C++Builder og Lazarus - De nye prøver demonstrerer multi-billede-valg, valgt-billede-forhåndsvisning, én PDF-side pr. billede, A4-portræt-/landskab-sidestørrelse, centreret billedskalering, per-billede-fremgang og åbning af den genererede PDF efter gemning
- Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.4
Version 1.39.3
- Tilføjet
Demo\CBuilder\BatchExport, og bringer arbejdsgangen for eksport af flere PDF-filer til JPG til C++Builder sammen med de eksisterende Delphi- og Lazarus-eksempler - Prøven demonstrerer
LoadCustomDocument,IPdfCancellationTokenSource, streaming-TFileStream-input, per-fil- og per-side-fremgang, annulleringshåndtering, DPI-/kvalitet-/adgangskode-input og outputmappe-åbning efter fuldførelse - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.3
Version 1.39.2
- Tilføjede
Demo\Delphi\WatermarkStamp, en kørbar Form XObject-arbejdsgangs-prøve, der opretter en mål-PDF og en genanvendelig stempel-PDF og derefter anvender centrererede vandmærker, øverst-højre stempler og sidenummer-labels på tværs af hver side - Prøven demonstrerer
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixogFPDFPageObj_SetMatrixuden at tilføje ny biblioteks-API - Opdaterede
Docs\en-us\Examples.htmltil at bruge det aktuelleTPdfMatrix.Handle-mønster, når matricer videregives tilFPDFPageObj_SetMatrix - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.2
Version 1.39.1
- Tilføjede
Demo\Delphi\ViewerInteractionLab, et fokuseretTPdfView-eksempel til visningstilstande, tilpasningstilstande, sidefarver, rotation, brugertekstmarkering, udklipsholderhandlinger ogDeviceToPage-koordinatfeedback - Tilføjede
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLab, så Lazarus-brugere kan køre PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- og PDF/VT-validerings- og markør-output-arbejdsgangen - Oplistede standard-enhederne i
Lib\37.0\PDFiumPas.dprojogLib\FPC\PDFiumLaz.lpkog rettede Delphi-SplitView-demobygget ved at fjerne en duplikeretWinapi.ShellAPI-import - Rettet Delphi-demo-batch-bygge-blokkeringer i
BatchExport,PDFViewer,MultiPageViewerogSplitViewuden at ændre deres kørselstids-adfærd - Rettet C++Builder-demo-batch-bygge-kompatibilitet i
PDFViewerogMultiPageViewerved at erstattenullptrmedNULLfor den nuværende projekttilstand - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.1
Version 1.39.0
- Tilføjede
Demo\Delphi\StandardsLab, en kørbar standarder-arbejdsgangs-prøve, der indlæser eller opretter en PDF, kørerValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRogValidatePdfVTog viser detekteret overholdelse, pass/fail-status og problem-antal i ét gitter - StandardsLab-gem-knapperne kalder
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRogSaveAsPdfVT, hvilket gør PDF-standarder-markør-output synligt uden at skrive en brugerdefineret hjælper - Opdaterede
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versionsmetadata til at rapportere 1.39.0
Version 1.38.0
TPdfView-søgnings- og tekst-markerings-overlays bruger nu rigtig alpha-blending i stedet for logisk maske-maling, hvilket bevarer sideindhold under fremhævninger- Tilføjet
SetPdfPrintPaperHandlingDevModeto mapTPrintPaperHandlinginto WindowsDEVMODE.dmDuplexvalues:DMDUP_SIMPLEX,DMDUP_HORIZONTAL, andDMDUP_VERTICAL TPdfView.SmoothScrollanimerer nu linje-/side-rullebjælke-kommandoer i timer-drevne segmenter; thumb-sporing forbliver øjeblikkelig- Opdaterede
TPdf.AboutInfoog installatør-versionsmetadata til at rapportere 1.38.0
Version 1.37.0
TPdfejer nu en per-instans render-lås, der serialisererRenderPage,RenderTile,RenderPageProgressive, side-genindlæsning og dokument-udlæsningsstier. Worker-drevet rendering via en delt komponent er nu praktisk, mens applikationer fortsat koordinerer dokumentmutation og livstid- Rettet zero-copy-bitmap-ombryderen til at afvise bottom-up
TBitmap-DIB-layouts og falde tilbage på en PDFium-ejet buffer før udkopiering, hvilket eliminerer stride-korruption-/access-violation-fejl i VCL-render-tests - Strammet
TPdfView-markeringsadfærd:AllowUserTextSelectionstyrer kun brugerinput, kode-niveau markerings-API'er tegner stadig, ogSelectAllfølger det faktiske synlige spred, så coversiden ikke længere markerer side 2. Delphi-, Lazarus- og C++Builder-tests blev udvidet tilsvarende - Opdaterede
TPdf.AboutInfoog installatør-versionsmetadata til at rapportere 1.37.0
Version 1.36.0
- Aktiverede slutbruger-tekstmarkering i
TPdfView— egenskabenAllowUserTextSelection, reserveret i v1.17.0, driver nu en komplet træk-vælg-pipeline. Venstreklik på et tekst-tegn går i vælg-tilstand (hit-test auto); venstreklik på et blankt område fortsætter med at panorere som før. Form-fill-widgetten bevarer prioritet, så klik på et formularfelt stadig fokuserer feltet snarere end at starte en markering - Dobbeltklik markerer ordet, trippelklik markerer linjen,
Ctrl+Amarkerer den aktuelle side (begge sider i spread-visningstilstande), ogCtrl+Ckopierer markeringen til Windows-udklipsholderen somCF_UNICODETEXT Shift+Left/Shift+Rightudvider markeringen ét tegn ad gangen (overskridende til den tilstødende side i spread-tilstand);Shift+Home/Shift+Endudvider til den visuelle linjekant ved hjælp af seed-tegnets boks-højde som linje-cluster-tolerancen, så linjer med blandede skriftstørrelser forbliver korrekt clusteret- Svæven over tekst ændrer markøren til
crIBeam; svæven væk fra tekst gendanner standardmarkøren. Mens et tekst-markerings-træk er i gang, auto-scroller et træk ind i en 20-pixel død zone ved en vilkårlig fremviserkant siden (50 ms tick, 16 px / tick, begrænset til de samme grænser, pan-stien bruger), så markeringen kan udvide sig forbi den nuværende viewport uden først at slippe musen - Cross-side selection works in spread display modes (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): et træk, der starter i venstre side og slutter i højre side, vælger det sammenhængende interval, der spænder over beggeSelectedTextjoins the per-page slices with CR/LF so the round-tripped text reads like normal multi-line content - Ny publiceret egenskab
SelectionColor(standardclHighlight, Windows-system-markeringsfarven) — uafhængig afHighlightColor, som farver søgeresultater gule. Søgnings-fremhævninger og en live træk-markering kan vises på skærmen samtidigt uden farvekonflikt - Ny publiceret hændelse
OnSelectionChangeudløses, når markeringens materialiserede intervaller faktisk muterer — aldrig ved identisk genanvendelse, så værtsapplikationer kan koble den direkte til statuslinje-tekst eller knap-aktiveret tilstand uden debouncing - Ny offentlig API på
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Disse er kode-niveau indgangspunkter og virker altid uansetAllowUserTextSelection— flaget styrer kun brugerinput (mus, Ctrl+C, Ctrl+A, Shift+pile), så kiosk-værter kan deaktivere brugerdrevet markering, mens de stadig bygger "Select All / Copy"-værktøjslinjeknapper, der driver den samme API - En standard højreklik
Copy/复制-popup-menu vedhæftes automatisk, når værten ikke har tildelt sin egenPopupMenu— standard "vælg tekst, højreklik, kopier" virker out of the box. Teksten vælges mellem engelsk og kinesisk viaSysLocale.PriLangID; værter, der har brug for fuld lokalisering (eller en rigere menu), tildeler blot deres egenPopupMenu, og standarden undertrykkes - Markering ryddes automatisk ved
SetPdf-,SetPageNumber-,SetActive(False)- ogDisplayMode-overgange, hvorOnSelectionChangeudløses præcis én gang, når den forrige markering var ikke-tom. Form-fill-undersystemet bevarer prioritet — mens et formularfelt redigeres, udskyder alle markerings-tastatur-genveje, så feltet modtagerCtrl+C/Ctrl+A/Shift+piletil sin egen markering - Udvidede Delphi- og Lazarus-regressionssuiterne til 202 tilfælde hver og C++Builder-suitten til 159 tilfælde, der dækker standardværdier, round-trip, offentlig API-adfærd, tilstandsændrings-rydninger, muse-træk (hit-tekst / hit-blank), klik vs træk, IBeam-markør-skift, dobbeltklik-ord, trippelklik-linje, tastatur-genveje, standard-popup-vedhæft / udskyd / tekst og spread tværs-side-markering — inklusive en udklipsholder-CR/LF-round-trip-kontrol
Version 1.35.0
- Tilføjet understøttelse af markørindsprøjtning for PDF/VT (ISO 16612-2:2010): TPdf.SaveAsPdfVT promoverer det aktuelle dokument til en PDF/VT-1- eller PDF/VT-2-kompatibel fil (det variable og transaktionelle udskrivnings-PDF-underformat). PDF/VT bygger oven på PDF/X-4 — ISO 16612-2 §6.2.1 kræver, at hver PDF/VT-1-fil også overholder PDF/X-4 — så injektoren skriver hele PDF/X-4-markørsættet (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)og/Trapped, katalog/OutputIntentsmed henvisning til en OutputIntent-dictionary med indlejret ICC-profil) sammen med de PDF/VT-specifikke egenskaber - Den PDF/VT-specifikke injektion dækker XMP-
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" eller "PDF/VT-2" pr. §6.3 Tabel 2) ogpdfvtid:GTS_PDFVTModDate(holdt synkroniseret medxmp:ModifyDatepr. §6.3 NOTE 1), plus en pdfaExtension:schemas-beskrivelse, der deklarerer både pdfxid- og pdfvtid-navnerum (NPES-URI'erhttp://www.npes.org/pdfx/ns/id/oghttp://www.npes.org/pdfvt/ns/id/). Traileren bærer et/ID-array - Tilføjet TPdf.SaveAsPdfVTToStream for in-memory PDF/VT output, and a default-options shorthand
TPdf.SaveAsPdfVT(FileName)der producerer PDF/VT-1 med den medfølgende sRGB IEC61966-2.1 OutputIntent (3144 bytes, samme profil som SaveAsPdfA / SaveAsPdfX) og/Trapped /False - Tilføjede TPdf.ValidatePdfVT: kontrollerer en åben PDF for PDF/VT-overholdelsesmarkører (XMP-
pdfvtid:GTS_PDFVTVersion- ogGTS_PDFVTModDate-tilstedeværelse, lighed mellempdfvtid:GTS_PDFVTModDateogxmp:ModifyDate, tilstedeværelse af den underliggendepdfxid:GTS_PDFXVersion-identifikator, katalog-/DPartRoot-tilstedeværelse pr. §6.5,/OutputIntentsmed/DestOutputProfile, trailer-/ID, krypteringsstatus,xmp:CreateDate/ModifyDate-tilstedeværelse) og returnerer TPdfVTValidationResult med det detekterede overholdelses-niveau og det fundne sæt af problemer - Tilføjet egenskaben TPdf.PdfVTConformance: returnerer overensstemmelsesniveauet for det aktuelt åbne dokument (pvc1, pvc2, pvcNone eller pvcUnknown) uden at skulle kalde ValidatePdfVT eksplicit
- Nye typer eksporteret i den nye enhed FPdfPdfvt: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Document Part Hierarchy (
DPartRoot/DPart-træ pr. §6.5) er applikationsniveau-struktur, der afhænger af det variable-data-udskrifts-arbejdsgangs modtager-/side-interval-afbildning. SaveAsPdfVT syntetiserer IKKE et DPart-træ — ValidatePdfVT præsenterer en manglende/DPartRootsompvviMissingDPartRoot, så kaldere kan rutere PDF/VT-filer gennem et separat DPart-opbygnings-trin. Indholdsniveau-PDF/X-4-krav (skrifttypeindlejring, gennemsigtighed, ICC-styret farve, OPI-/JavaScript-/Reference-XObject-forbud osv.) forbliver dokumentforfatterens og PDFiums rendering-pipelines ansvar - Opdaterede TPdf.AboutInfo-strengen til at rapportere den aktuelle produktversion
Version 1.34.0
- Tilføjet understøttelse af markørindsprøjtning for PDF/R-1 (ISO 23504-1:2020): TPdf.SaveAsPdfR promoverer det aktuelle dokument til en PDF/R-1-kompatibel fil (det rasterbillede-transportunderformat af PDF, der bruges til scannede dokumenter). Indsprøjtningen dækker de filformatkrav, der kan tilføjes ved efterbehandling — den unikke
%PDF-raster-1.0version-identifikationskommentar skrevet mellem trailer-dictionaryen og nøgleordet startxref (§5), katalogdictionaries begrænset til §6.3-whitelistet (kun Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata overlever), Document Information Dictionary begrænset til §6.4.3-whitelistet (kun Creator / Producer / CreationDate / ModDate), en katalog /Metadata XMP-stream, der bærer de fire poster i §6.4.4 Table 1 (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate), samt en trailer /ID-array - Tilføjede TPdf.SaveAsPdfRToStream til in-memory PDF/R-output og en standard-indstillings-forkortelse
TPdf.SaveAsPdfR(FileName)til det almindelige tilfælde - Tilføjede TPdf.ValidatePdfR: kontrollerer en åben PDF for PDF/R-1-overholdelsesmarkører (fodbundskommentaren
%PDF-raster-x.y, hovedversion, /Type /ObjStm-fravær, katalog-white-list-overholdelse, Info-ordbogs-white-list-overholdelse, XMP-metadata-stream-tilstedeværelse, trailer-/ID) og returnerer TPdfRValidationResult med det detekterede overholdelses-niveau og det fundne sæt af problemer - Tilføjet egenskaben TPdf.PdfRConformance: returnerer overensstemmelsesniveauet for det aktuelt åbne dokument (prc1, prcNone eller prcUnknown) uden at skulle kalde ValidatePdfR eksplicit
- Nye typer eksporteret i den nye enhed FPdfPdfr: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions.
TPdfRSaveOptions.Defaultsætter StripInfoOptionalEntries og StripCatalogOptionalEntries til True, så injektoren som standard producerer et §6.3- / §6.4.3-kompatibelt katalog og Info-ordbog; kaldere kan sætte disse til False for at bevare kildens poster (output opfylder så ikke disse PDF/R-bestemmelser, men andre markører forbliver vedhæftet) - Indholdsniveau-krav forbliver kilde-PDF'ens ansvar: per-side Contents-struktur (§6.5.1), MediaBox
[0 0 w h]-form (§6.5.3), filter-begrænsninger (§6.2.2 — kun FlateDecode, CCITTFaxDecode bitonal, DCTDecode 8-bit gray/RGB), fravær af objekt-streams (§6.2.4) og strip-layout pr. §6.6. Disse kan ikke håndhæves ved post-behandling — PDF/R er strukturelt et meget strengere delsæt end de andre PDF/x-standarder og kræver generering af kildebytene korrekt. ValidatePdfR præsenterer de filformat-problemer, denne enhed kan detektere; par med en TWAIN Working Group PDF/R-validator til fulde indholdsniveau-kontroller - Opdaterede TPdf.AboutInfo-strengen til at rapportere den aktuelle produktversion
Version 1.33.0
- Tilføjet understøttelse af markørindsprøjtning for PDF/X (ISO 15930-familien): TPdf.SaveAsPdfX promoverer det aktuelle dokument til en PDF/X-1a:2001-, PDF/X-3:2002- eller PDF/X-4-kompatibel fil ved at efterbehandle basis-PDF’en med en inkrementel opdatering. Indsprøjtningen dækker de filformatkrav, der kan tilføjes ved efterbehandling — en XMP-metadata-stream, der bærer
pdfxid:GTS_PDFXVersion(ogpdfxid:GTS_PDFXConformancefor PDF/X-1a / PDF/X-3) plus den matchende beskrivelse af pdfaExtension:schemas, en omskrevet Document Information Dictionary med posterne/GTS_PDFXVersion,/GTS_PDFXConformanceog/Trapped, et opdateret katalog med/OutputIntents [N 0 R], der henviser til en OutputIntent-dictionary med/S /GTS_PDFXog en indlejret ICC-profil, samt en trailer/ID-array - Tilføjet TPdf.SaveAsPdfXToStream for in-memory PDF/X output, and a default-options shorthand
TPdf.SaveAsPdfX(FileName)der producerer PDF/X-4 med den indbyggede sRGB IEC61966-2.1 OutputIntent (3144 bytes, identisk med profilen brugt af SaveAsPdfA) - Tilføjet TPdf.ValidatePdfX: kontrollerer en åben PDF for PDF/X-overensstemmelsesmarkører (XMP pdfxid-identifikator og lighed med Info-dictionary-værdien, pdfxid-udvidelsesschemabeskrivelse, /OutputIntents-array med /DestOutputProfile, tilstedeværelse af Title, trailer /ID, krypteringsstatus, xmp:CreateDate / xmp:ModifyDate-tilstedeværelse) og returnerer TPdfXValidationResult med det registrerede niveau og sættet af fundne problemer
- Tilføjet egenskaben TPdf.PdfXConformance: returnerer overensstemmelsesniveauet for det aktuelt åbne dokument (pxc1a, pxc3, pxc4, pxcNone eller pxcUnknown) uden at skulle kalde ValidatePdfX eksplicit. XMP-versionsstrengen parses for at skelne mellem de tre overensstemmelsesniveauer
- Nye typer eksporteret i den nye enhed FPdfPdfx: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions.
TPdfXSaveOptions.Defaultmålretter PDF/X-4 med sRGB-OutputIntent og/Trapped /False; kaldere kan tilsidesætteConformance, levere en CMYKIccProfileData-blob til kommercielle tryk-arbejdsgange eller ændreOutputCondition/OutputConditionIdentifier/RegistryNametil at pege på en specifik ICC-karakteriserings-registerpost (f.eks. FOGRA39, GRACoL2006_Coated1v2) - Indholdsniveau-krav (alle skrifttyper indlejret, ingen JavaScript, ingen synlige annotationer, OPI-forbud, gennemsigheds-regler for PDF/X-1a / PDF/X-3 osv.) forbliver dokumentforfatterens og PDFiums rendering-pipelines ansvar. Par ValidatePdfX med et preflight-værktøj såsom callas pdfaPilot eller Ghent PDF Workgroup Output Suite til komplet overholdelsesverifikation
- Opdaterede TPdf.AboutInfo-strengen til at rapportere den aktuelle produktversion
Version 1.32.0
- Tilføjet støtte til markørinjektion for PDF/E-1 (ISO 24517-1:2008): TPdf.SaveAsPdfE promoverer det aktuelle dokument til en PDF/E-1-kompatibel fil ved at efterbehandle basen-PDF'en med en inkrementel opdatering. Injektionen dækker de filformatniveau-krav, der kan tilføjes ved efterbehandling — en XMP-metadata-strøm med
pdfe:ISO_PDFEVersion = "PDF/E-1"plus den matchende pdfaExtension:schemas-beskrivelse, en omskrevet Document Information Dictionary med den obligatoriske/ISO_PDFEVersion (PDF/E-1)-post krævet af §5, Info-XMP-broblokkene arvet fra ISO 19005-1 §6.7 via §13.1 (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool), og en trailer/ID-array krævet af §6.2 - Tilføjede TPdf.SaveAsPdfEToStream til in-memory PDF/E-output og en standard-indstillings-forkortelse
TPdf.SaveAsPdfE(FileName)til det almindelige tilfælde - Tilføjet TPdf.ValidatePdfE: kontrollerer en åben PDF for PDF/E-1-overensstemmelsesmarkører (tilstedeværelse af XMP pdfe:ISO_PDFEVersion og lighed med Info-dictionary-værdien, pdfe-udvidelsesschemabeskrivelse, Info-dictionary /ISO_PDFEVersion-indgang, trailer /ID, xmp:CreateDate / xmp:ModifyDate-tilstedeværelse) og returnerer et struktureret resultat med det registrerede overensstemmelsesniveau og sættet af fundne problemer
- Tilføjet egenskaben TPdf.PdfEConformance: returnerer overensstemmelsesniveauet for det aktuelt åbne dokument (pec1, pecNone eller pecUnknown) uden at skulle kalde ValidatePdfE eksplicit
- Nye typer eksporteret i den nye enhed FPdfPdfe: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Info-ordbogs-omskrivningen er en første for PDFium Delphi Component' PDF/x-post-behandlings-sti — den omskriver det eksisterende Info-objekt med det samme objektnummer (så xref-undersektion-/trailer-/Info-reference forbliver gyldig) og syntetiserer en frisk Info-ordbog, når kilde-traileren ikke har nogen /Info-post. PDFium selv udsender en Info-ordbog i hvert SaveAs-output, så det almindelige tilfælde er omskrivnings-stien
- Indholdsniveau-krav (skrifttypeindlejring, ToUnicode CMaps, forbudte XObjects / ExtGState-nøgler / XFA-formularer osv.) forbliver dokumentforfatterens ansvar — SaveAsPdfE vedhæfter filformat-markørerne, men ændrer ikke sideindhold eller fjerner forbudte funktioner
- Opdaterede TPdf.AboutInfo-strengen til at rapportere den aktuelle produktversion
Version 1.31.0
- Tilføjet støtte til markørinjektion for PDF/UA-1 (ISO 14289-1:2014): TPdf.SaveAsPdfUa promoverer det aktuelle dokument til en PDF/UA-1-kompatibel fil ved at efterbehandle basen-PDF'en med en inkrementel opdatering. Injektionen dækker de filformatniveau-krav, der kan håndhæves ved efterbehandling — en XMP-metadata-strøm med
pdfuaid:part = 1plus den matchende pdfaExtension:schemas-beskrivelse, obligatoriskdc:title, katalogets/MarkInfo << /Marked true /Suspects false >>og/ViewerPreferences << /DisplayDocTitle true >>(kun når kilden ikke har nogen), katalogets/Lang(når kaldende kode leverer en BCP 47-tag) og en trailer/ID-array - Tilføjede TPdf.SaveAsPdfUaToStream til in-memory PDF/UA-output og en standard-indstillings-forkortelse
TPdf.SaveAsPdfUa(FileName)til det almindelige tilfælde - Tilføjede TPdf.ValidatePdfUa: kontrollerer en åben PDF for PDF/UA-1-overholdelsesmarkører (StructTreeRoot-eksistens, /Lang, /MarkInfo /Marked true med /Suspects = false, /ViewerPreferences /DisplayDocTitle true, XMP-pdfuaid:part-identifikator, dc:title-tilstedeværelse, trailer-/ID, krypteringsstatus) og returnerer et struktureret resultat med det detekterede overholdelses-niveau og det fundne sæt af problemer
- Tilføjet egenskaben TPdf.PdfUaConformance: returnerer overensstemmelsesniveauet for det aktuelt åbne dokument (puc1, pucNone eller pucUnknown) uden at skulle kalde ValidatePdfUa eksplicit
- Nye typer eksporteret i den nye enhed FPdfPdfua: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- Felterne Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language, der efterlades tomme i TPdfUaSaveOptions, udfyldes automatisk fra FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, så eksisterende kaldere kan gemme med én linje
- Indholdsniveau-krav (StructTreeRoot-tagging-fuldstændighed, Figure Alt-tekst, ToUnicode CMaps, skrifttypeindlejring osv.) forbliver dokumentforfatterens ansvar — SaveAsPdfUa vedhæfter filformat-markørerne, men ændrer ikke sideindhold eller opfinder tags. ValidatePdfUa præsenterer fraværet af StructTreeRoot som
pvuaiMissingStructTreeRoot, så kaldere kan rutere untagged dokumenter gennem en separat tagging-pipeline - Opdaterede TPdf.AboutInfo-strengen til at rapportere den aktuelle produktversion
Version 1.30.0
- PDF/A-1b-output opfylder nu ISO 19005-1 (med Cor.1:2007)-kravene for Document Information Dictionary-/XMP-ækvivalens: hver Info-ordbogspost, PDFium skriver ind i basis-PDF'en, spejles ind i XMP-pakken, inklusive Title (dc:title), Author (dc:creator), Subject (dc:description pr. Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) og ModDate (xmp:ModifyDate). xmp:MetadataDate udsendes også
- Trailer af et PDF/A-dokument indeholder nu altid et /ID-array (ISO 19005-1 6.1.3 hårdt krav). Når TPdf.SaveAsPdfA behandler et dokument, hvis kilde allerede har en filidentifikator, genbruges de eksisterende 16-byte permanente og skiftende ID'er; ellers afledes et deterministisk 16-byte-fallback-ID fra kildebytene
- Den injicerede XMP indlejrer nu den pdfaid-udvidelsesskema-beskrivelse, der kræves af ISO 19005-1 6.7.8 ( erstattet af Cor.1) — pdfaid behandles som et udvidelsesskema relativt til XMP Specification 2004, så alle overholdende filer skal deklarere dens egenskabsnavne, værdityper og kategorier i pdfaExtension:schemas-containeren
- TPdfASaveOptions fik fem nye valgfrie felter: Producer, CreationDate, ModDate (PDF-dato-strenge i “D:YYYYMMDDHHmmSSOHH'mm'”-form), DocumentId og InstanceId (16-byte byte-strenge til trailer-/ID-arrayet). TPdf.SaveAsPdfA / SaveAsPdfAToStream auto-populerer de manglende felter fra FPDF_GetMetaText og FPDF_GetFileIdentifier, så eksisterende kaldere fortsætter med at virke uden ændringer
- TPdf.ValidatePdfA / TPdf.PdfAConformance rapporterer nu tre yderligere problemer: pvaiMissingTrailerId (ingen /ID i traileren), pvaiMissingXmpDates (xmp:CreateDate eller xmp:ModifyDate mangler) og pvaiMissingExtensionSchema (pdfaid-udvidelsesskema-beskrivelse fraværende)
- Ikke-ASCII-tegn i Title, Author, Subject, Keywords, Creator og Producer kodes nu som UTF-8 i XMP-pakken (XMP Specification kræver UTF-8), hvilket bevarer flersproget metadata-rundtur gennem SaveAsPdfA
- Opdaterede TPdf.AboutInfo-strengen til at rapportere den aktuelle produktversion
Version 1.29.0
- Opdaterede de medfølgende PDFium-DLL'er (Win32 og Win64, både standard- og V8-builds) til upstream-snapshotet fra 2026-05-22 og hentede upstream-rettelser til FPDFText_SetText / FPDFText_SetCharcodes-nedbrudsforløb samt diverse intern hærdning fra PDFium-projektet
- Eksponerede PDFiums nye FPDF_SUBSET_NEW_FONTS-gem-flag i FPdfPageOps.pas, hvilket tillader FPDF_SaveAsCopy-kaldere at anmode om automatisk subsetting af indlejrede skrifttypefiler til nytilføjede tekst-objekter. De eksisterende FPDF_INCREMENTAL-, FPDF_NO_INCREMENTAL- og FPDF_REMOVE_SECURITY-konstanter er nu defineret ved hjælp af den opstrøms bit-skift-form (den forældede numeriske værdi 3 bevares som FPDF_REMOVE_SECURITY_DEPRECATED for binær kompatibilitet)
- Tilføjet enumen FPDF_FONT_BACKEND_TYPE (FREETYPE / FONTATIONS) og det tilsvarende felt m_FontLibraryType på FPDF_LIBRARY_CONFIG i FPdfView.pas, så applikationer, der initialiserer PDFium med Skia-rendereren, nu kan vælge skrifttype-backend ved opstart
- Opdateret signaturen for TFPDFPage_InsertObject, så den matcher upstream: C-funktionen returnerer nu FPDF_BOOL (TRUE ved succes, FALSE hvis side_object er NULL, eller ejerskift mislykkes) i stedet for void. Eksisterende PDFium Delphi Component-kaldere fortsætter med at kompilere uændret, da Delphi / FPC tillader at ignorere en funktions returværdi
- Korrigerede TPdf.AboutInfo-strengen, så den rapporterer den aktuelle produktversion (var forældet på v1.27.0 siden dokumentations-only-udgivelsen v1.28.0)
Version 1.28.0
- Væsentligt udvidet dokumentationen i siderne på tværs af hele API-referencen: hver egenskab, metode, hændelse og global funktion har nu en 3-afsnits Beskrivelse, en Bemærkninger-liste, et flerlinje Delphi Eksempel og en rigere Se også-blok — det dækker 200+ tidligere tynde sider, inklusive alle TPdf-tællere, metadata-læsere, font- og tegnadgange, sideegenskaber, indekserede records, dokumentmetoder og hele TPdfViews tilstands-, visnings- og hændelsesflade
- Finjusterede hjælpelayoutet, så det matcher den losLab visuelle basislinje, der bruges i HotXLS-reference: tilpassede h1/h2-størrelser, samlede API-navigationsgitterets stilarter i det fælles StyleSheet og fjernede de sidevise inline CSS-overstyringer på Navigation.html
- Dokumentationen leveres nu med et hjælpe-script (Docs\Build-Expand-Entries.ps1), der regenererer indgangsside-berigelsen fra en enkelt datatabel til gentagelig vedligeholdelse
Version 1.27.0
- Tilføjede PDF/A-1b-oprettelses-understøttelse: TPdf.SaveAsPdfA gemmer ethvert åbent dokument som en PDF/A-1b-overholdende fil ved at post-behandle basis-PDF'en med en inkrementel opdatering, der injicerer en XMP-metadata-stream, en sRGB ICC-OutputIntent og et opdateret dokument-katalog — alt sammen uden at kræve ekstra DLL-API'er. Virker på enhver platform, der understøttes af PDFium Delphi Component
- Tilføjede TPdf.SaveAsPdfAToStream til in-memory PDF/A-output
- Tilføjet TPdf.ValidatePdfA: kontrollerer en åben PDF for PDF/A-overensstemmelse (XMP pdfaid-markører, OutputIntent med indlejret ICC-profil, kryptering) og returnerer et struktureret resultat med det registrerede overensstemmelsesniveau og et sæt konkrete fundne problemer
- Tilføjet egenskaben TPdf.PdfAConformance: returnerer overensstemmelsesniveauet for det aktuelt åbne dokument (pac1b, pac1a, pac2b, pac3b, pacNone eller pacUnknown) uden at skulle kalde ValidatePdfA eksplicit
- Nye typer eksporteret: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (i ny enhed FPdfPdfa.pas)
- SaveAsPdfA understøtter en tilpasset ICC-profil via TPdfASaveOptions.IccProfileData; når den efterlades tom, bruges den indbyggede sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes)-profil automatisk
- Udskiftede den monolitiske HTML-reference med et omstruktureret webhjælpesystem: 302 individuelle API-entrysider (én pr. egenskab, metode, hændelse og global funktion), der dækker TPdf og TPdfView, hver med fuld beskrivelse, parametertabel, Delphi-kodeeksempel og See Also-links
- Tilføjede Navigation.html: et omfattende ét-sides API-navigations-index organiseret i seks sektioner (TPdf-egenskaber/metoder/hændelser, TPdfView-egenskaber/metoder/hændelser, globale funktioner) med et 5-kolonne flex-gitter til hurtig scanning
- Genopbyggede TPdf.html og TPdfView.html som kompakte komponentoversigtssider, der bevarer type-referenceafsnittene (Types, Constants, Global Variables) og linker videre til de individuelle entrysider for alle medlemmer
- Tilføjede fuldtekst-søgning drevet af Search.js med inkrementel klient-side-matching på tværs af alle 312 indekserede sider
- Opdaterede alle navigationslinjer på hele webstedet til at pege på Navigation.html
Version 1.26.0
- Tilføjede Demo/Lazarus/BatchExport, LCL-porten af v1.14.0 Delphi-BatchExport-demoen. Samme funktionssæt: multi-fil PDF -> JPG-eksport med per-fil overordnet fremgang, per-side nuværende fremgang, DPI-/kvalitet-/adgangskode-input og en kooperativt-annullerbar batch bakket af IPdfCancellationToken. Outputmappen åbnes i platformens filhåndtering, når udtrækning afsluttes med succes
Version 1.25.0
- Tilføjede Form XObject-side-genbrug til TPdf, hvilket muliggør vandmærke-, skabelon-overlay- og “stempl én side på mange”-arbejdsgange: CreateXObjectFromPage fremstiller en genanvendelig handle fra en vilkårlig side af et andet dokument; InsertFormObjectFromXObject indsætter ÉN kopi af den ombundne side i den nuværende side. Returnerer det indsatte FPDF_PAGEOBJECT, så kaldere kan positionere / skalere / rotere det med FPDFPageObj_SetMatrix og v1.9.0-TPdfMatrix-hjælperne
- Den nye TPdfXObject Pascal-klasse indpakker PDFiums FPDF_XOBJECT-handle og lukker den automatisk i sin destruktor, hvilket eliminerer den manuelle FPDF_CloseXObject-ceremoni
- Udvidede regression-suiterne for Delphi og Lazarus til 147 cases hver og C++Builder-suiten til 123 cases, med dækning af håndtagsskabning og kontrakter for indsættelse af sideobjekter
Version 1.24.0
- Tilføjede TPdf.RenderPageProgressive — en annullerbar variant af RenderPage, der driver PDFiums progressive rendering-løkke og poller en v1.7.0 IPdfCancellationToken mellem iterationer, så lange high-DPI-renders kan afbryde midt-side i stedet for at blokere kaldere indtil fuldførelse
- Returnerer en TPdfProgressiveStatus-værdi: prsDone, prsCancelled eller prsFailed. Send AToken = nil for at rendere færdigt uden nogensinde at pause (ingen mulighed for prsCancelled)
- Bruger den samme zero-copy fast path, der blev indført i v1.21.0 — PDFium render direkte ind i destinations-TBitmap'ens DIB. Den samme legacy fallback gælder, når DIB'en ikke kan indpakkes
- Udvidede regression-suiterne for Delphi og Lazarus til 145 cases hver og C++Builder-suiten til 121 cases, med dækning af nil-token (fuldfører), præannulleret token (prsCancelled) og pixelækvivalens med synkron RenderPage på en levende token
Version 1.23.0
- Tilføjede seks nye TPdfView-metoder, der eksponerer PDFiums form-widget-tekstmarkering og Undo/Redo til applikationer: GetSelectedFormText returnerer den aktuelt markerede tekst inde i den fokuserede form-widget; SelectAllFormText markerer hvert tegn; FormUndo / FormRedo / FormCanUndo / FormCanRedo driver den fokuserede widgets redigeringshistorik. De underliggende PDFium-API'er var allerede bundet, men havde intet højt-niveau indgangspunkt. Alle seks short-circuiter sikkert, når visningen er inaktiv, eller dokumentet har ingen fokuseret AcroForm-widget
- Udvidede regression-suiterne for Delphi og Lazarus til 142 cases hver og C++Builder-suiten til 119 cases, med dækning af no-form-no-focus-kontrakten for hver ny metode
Version 1.22.0
- Tilføjede side-sammensætnings-ombudere til TPdf: ImportPagesByIndex tager et nul-baseret indeks-array til at kopiere specifikke sider fra et kildedokument; ImportNPagesToOne returnerer en helt ny TPdf, hvis sider er N-up-kompositter af dette dokument; MovePages genordner sider på plads. De underliggende PDFium-API'er var allerede bundet, men havde intet Pascal-venligt indgangspunkt
- ImportPagesByIndex accepterer en tom array for at importere hver sides i kilden (svarende til at sende nil på C ABI-niveau)
- Udvidede Delphi- og Lazarus-regressionssuiterne til 136 tilfælde hver og C++Builder-suitten til 115 tilfælde, der dækker delmængde-import, helt-dokument-import, side-omordning og N-up-komposit
Version 1.21.0
- Forbedrede rendering-ydeevne ved at skifte TPdf.RenderPage / TPdf.RenderTile (og de tilsvarende TPdfView-hjælpere) til en zero-copy-output-sti. PDFium skriver nu direkte ind i destinations-TBitmap'ens DIB-buffer i stedet for ind i en intern buffer, der derefter blev kopieret række for række, hvilket sparer én bredde x højde x 4 byte hukommelseskopi pr. render. Forbedringen er mest mærkbar ved high DPI (thumbnail-paneler, trykkvalitet-eksport, batch-eksport)
- Den gamle per-scanline-sti bevares som en sikkerheds-fallback for det usandsynlige tilfælde, hvor destinations-DIB'en ikke kan ombrydes (ekstreme dimensioner, usædvanlig stride, OOM). Adfærden er byte-identisk mellem de to stier, blot langsommere i fallback'en
- Udvidede Delphi- og Lazarus-regressionssuiterne til 132 tilfælde hver og C++Builder-suitten til 112 tilfælde, der dækker caller-bitmap pf32bit-opgradering, dimensions-round-trip og en stor-bitmap-stride-sanity-test
Version 1.20.0
- Tilføjede søgeresultat-fremhævning til TPdfView: HighlightSearchText(Text, MatchCase, MatchWholeWord) scanner den nuværende visningsside og returnerer antallet af fundne match, maler en HighlightColor-maske over hvert match ved hver genoptegning. ClearHighlight fjerner fremhævningerne; skift af visningen til en anden side rydder dem automatisk, da match er side-specifikke
- HighlightColor har standardværdien clYellow og er publiceret, så programmer kan tematisere markeringen, så den matcher deres UI-palet
- Udvidede Delphi- og Lazarus-regressionssuiterne til 129 tilfælde hver og C++Builder-suitten til 109 tilfælde, der dækker standardfarve, farve-round-trip, “real fixture word matches” mod sample.pdf-strengen og “missing word returns zero matches”-kontrakten
Version 1.19.0
- Tilføjede FitMode-egenskab til TPdfView med fire værdier: pfmNone (manuel zoom), pfmActualSize (100%), pfmFitPage (hele siden passer i viewporten) og pfmFitWidth (sidebredde matcher viewport-bredde). Den aktive fit-tilstand genanvendes automatisk ved Resize og når den nuværende side ændres, så lange dokumenter med blandede sidestørrelser forbliver perfekt indrammet
- Indstilling af Zoom direkte annullerer den aktive fit-tilstand (FitMode falder tilbage til pfmNone), hvilket matcher den almindelige PDF-fremviser-konvention, hvor indtastning af en zoom-værdi forlader Fit Page / Fit Width
- Standard er pfmNone, så eksisterende applikationer bevarer deres eksplicitte-zoom-adfærd
- Udvidede Delphi- og Lazarus-regressionssuiterne til 124 tilfælde hver og C++Builder-suitten til 106 tilfælde, der dækker standardværdi, tilstands-round-trip, fit-side, der producerer en reel zoom på et indlæst dokument, og manual-zoom-annullerer-fit-tilstand
Version 1.18.0
- Tilføjede PageColor-egenskab til TPdfView, hvilket afkobler den renderede PDF-side-baggrund fra den omsluttende kontrolls Color. Standard er clWhite, så PDF-sider renderer nu som papir-hvide uanset værtsapplikationens tema. Dark-mode-fremvisere kan nu holde rulleområdet mørkt, mens den faktiske PDF-side forbliver hvid (eller en vilkårlig farve, applikationen vælger)
- Adfærdsændring: applikationer, der plejede at indstille TPdfView.Color for at omfarve PDF-siden, bør i stedet indstille PageColor. Standardoplevelsen forbedres for det almindelige tilfælde (hvide sider på tematiserede kontrol-baggrunde) uden nogen kodeændring
- Udvidede regression-suiterne for Delphi og Lazarus til 120 cases hver og C++Builder-suiten til 103 cases, med dækning af standardværdi og farve-roundtrip
Version 1.17.0
- Tilføjede bruger-input-lock-down-toggles til TPdfView, så applikationer, der indlejrer fremviseren i kiosker, forhåndsvisningsruder eller skrivebeskyttede kontekster, kan deaktivere navigations-gestusser uden subclassing: AllowUserPageChange styrer de nye PgUp / PgDn / Ctrl+Home / Ctrl+End-tastatur-genveje; ChangePageOnMouseScrolling styrer de nye hjul-op / hjul-ned side-hop; AllowUserTextSelection er reserveret til den fremtidige muse-træk tekst-markerings-sti. Alle tre har standardværdien True, så eksisterende applikationer opgraderer uden adfærdsændring
- Musehjuls-side-navigation springer Ctrl+hjul over, så applikationer kan holde Ctrl+hjul reserveret til zoom
- Udvidede regression-suiterne for Delphi og Lazarus til 118 cases hver og C++Builder-suiten til 101 cases, med dækning af standardværdier og toggle-roundtrip
Version 1.16.2
- Udvidede TPdfView-regressionsdækningen for klik på annotationslinks, når visningens side er forskellig fra den tilknyttede TPdf-side, ved at bruge en reel headless musekliksti på tværs af Delphi, Lazarus og C++Builder
- Delphi- og Lazarus-suiterne kører nu 114 tilfælde hver, og C++Builder kører nu 99 tilfælde
Version 1.16.1
- Fikset håndteringen af linkklik i TPdfView, så automatiske annotation- og weblink-handlinger bruger den side, der aktuelt vises i visningen, også når den tilknyttede TPdf-komponent står på en anden side
- Hærdede TPdfThumbnailView mod dangling Pdf-referencer, når den tilknyttede TPdf-komponent destrueres
- Tilføjede thumbnail-reference-livstids-regressionsdækning; Delphi- og Lazarus-suiterne kører nu 113 tilfælde hver, og C++Builder kører nu 98 tilfælde
- Synkroniserede README, testdokumentation, HTML Help-søge-/indholdsindhold og genererede C++-pakkeoutput med v1.7.0- til v1.16.0-integrationsopdateringerne
Version 1.16.0
- Tilføjede en ny Delphi PrintDialog-demo (Demo/Delphi/PrintDialog), der fokuserer på N-up-udskrivning (1 / 2 / 4 / 9 sider pr. ark) med lige / ulige side-filtrering, gråtone-rendering og valgfrie 1-pixel cellekanter. Den er en bevidst lille ledsager til den eksisterende PrintPDF-demo, der allerede dækker forhåndsvisning, seneste filer, zoom og skalering
Version 1.15.0
- Tilføjet en ny TPdfThumbnailView-komponent (FPdfThumbnail-unit), der gengiver én sides miniature pr. række i et scrollbar sidepanel med hover- og markeringsfremhævning samt navigation ved klik. Designet til at stå ved siden af en TPdfView, så slutbrugere kan gennemse et langt dokument side for side
- Komponenten er registreret på losLab-palettet sammen med TPdf og TPdfView; nøgleegenskaber: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor og hændelsen OnPageClick
- Udvidede regression-suiterne for Delphi og Lazarus til 112 cases hver og C++Builder-suiten til 97 cases, med dækning af standardindstillinger, thumbnailstørrelse-roundtrip, afgrænsning af ekstreme værdier, farve-roundtrip og tildeling af hændelseshandlere
Version 1.14.0
- Tilføjede en ny Delphi BatchExport-demo (Demo/Delphi/BatchExport), der viser, hvordan man konverterer mange PDF-filer til JPG i én gennemkørsel ved hjælp af TPdf.LoadCustomDocument til streaming-indlæsning, IPdfCancellationToken til kooperativ annullering og per-fil overordnede + per-side fremgangslinjer. Demoen bruger én TPdf-instans pr. fil (PDFium selv er ikke tråd-sikker) og åbner outputmappen i Explorer, når udtrækning afsluttes med succes
Version 1.13.0
- Tilføjede et async-rendering-UI-overlay til TPdfView via tre nye egenskaber: AsyncRendering, LoadingText og LoadingColor. Når AsyncRendering er True, tegner den enkelt-side male-sti en lille “Loading...”-indikator over den renderede side, så applikationer, der bruger deres egen worker til lange renders, deler et konsistent visuelt hjælpemiddel
- Standardindstillinger bevarer den eksisterende adfærd: AsyncRendering er False, så programmer, der ikke tilvælger det, ser ingen visuel ændring
- Dokumentationen præciserer, at PDFium selv ikke er tråd-sikker — at delege renderingen til en worker kræver faktisk, at kaldere holder én TPdf pr. worker; den kommende batch-eksport-demo viser det mønster
- Udvidede regression-suiterne for Delphi og Lazarus til 106 cases hver og C++Builder-suiten til 93 cases, med dækning af standardværdier og roundtrip for de tre egenskaber
Version 1.12.0
- Tilføjede klik-drevet link-håndtering til TPdfView. Den nye LinkOptions-egenskab styrer automatisk adfærd for de fire PDF-link-handlingstyper: goto (side-hop), URI (ShellExecute), launch (ShellExecute) og indlejret GotoR (reserveret). Standarder aktiverer loAutoGoto og loAutoOpenURI; loAutoLaunch og loAutoEmbeddedGoto forbliver slukket, så et forvildet klik ikke kan køre et vilkårligt program
- Tilføjet hændelserne OnAnnotationLinkClick og OnWebLinkClick, som udløses før enhver automatisk handling og lader programmer inspicere linket, markere det som Handled eller omdirigere det (for eksempel til en sikkerhedsprompt)
- Link-klik-detektion kører kun, når gestussen er et klik snarere end et træk, ved hjælp af en frisk MouseDown-anker, så panoreringsgestusser stadig flyder gennem den eksisterende rulle-sti uændret
- Udvidede regression-suiterne for Delphi og Lazarus til 102 cases hver og C++Builder-suiten til 91 cases, med dækning af standard LinkOptions, set-roundtrip og tildeling af hændelseshandlere
Version 1.11.0
- Tilføjede visuel polering til TPdfView: PageShadowSize-, PageShadowColor- og PageBorderColor-egenskaber maler en valgfri drop-shadow under side-rektanglet og en én-pixel kant omkring det. Standarder bevarer det forrige flade look (PageShadowSize = 0; kant tegnes i standard clBlack, men blander sig ind i den standard hvide baggrund, indtil kaldere ændrer farverne)
- Tilføjet egenskaben SmoothScroll som et tilvalg til fremtidig trinvise rulleanimationer; egenskaben roundtripper i dag og er koblet op, så programmer kan gemme præferencen, mens gengivelsessiden stadig bruger den eksisterende øjeblikkelige rulleadfærd
- Udvidede regression-suiterne for Delphi og Lazarus til 98 cases hver og C++Builder-suiten til 89 cases, med dækning af standardværdier, roundtrip for egenskaben og afgrænsning af den negative skyggestørrelse
Version 1.10.0
- Tilføjet direkte billedeindsættelse gennem nye TPdf.AddImage- og TPdfView.AddImage-overloads, der tager enten en filsti eller en TBitmap, ud over den eksisterende TPicture-baserede AddPicture. AddImage(FileName) genkender ethvert format, der er registreret med VCL- eller LCL-grafikenhederne (BMP, PNG via PngImage-unit, JPG osv.) og går gennem samme pipeline som AddPicture, så adfærden er identisk
- AddImage(TBitmap) springer TPicture-mellemlæddet over, hvilket forenkler kaldere, der allerede holder en TBitmap fra rendering- eller batchgenereringsarbejde
- Udvidede Delphi- og Lazarus-regressionssuiterne til 92 cases hver og C++Builder-suiten til 84 cases, med dækning af bitmapindsættelse, sideobjektgrænser, afvisning af nil-bitmaps og indlæsning af BMP-filer
Version 1.9.0
- Tilføjede støtte til højniveau-transformationsmatricer gennem den nye TPdfMatrix-klasse i FPdfMatrix-enheden. TPdfMatrix indpakker PDFium's FS_MATRIX med en OO-API til Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew og Multiply, egnet til at sammensætte transformationer, før de gives videre til FPDFPageObj_SetMatrix og lignende PDFium-API'er
- TPdfMatrix.Multiply snapshotter korrekt de seks matrix-elementer, før de nye rækkeværdier beregnes, hvilket retter et latent problem, hvor de alternative Pascal-implementeringer overskriver tidligere elementer under det samme kald og producerer forkerte resultater for enhver sammensætning ud over ren translation
- Udvidede Delphi- og Lazarus-regressionssuiterne til 88 tilfælde hver og C++Builder-suitten til 81 tilfælde, der dækker identitet, nulstilling, translate-/scale-/flip, post-multiplicativ sammensætningsrækkefølge og Multiply-regressionstilfældet
Version 1.8.0
- Tilføjede on-demand streamindlæsning gennem den nye metode TPdf.LoadCustomDocument(AStream, AOwnsStream) og hjælpeklassen TPdfStreamAdapter, understøttet af PDFium's FPDF_LoadCustomDocument. PDFium læser nu blokke fra den leverede TStream kun når det er nødvendigt, så meget store eller eksterne PDFs ikke længere kræver en forudgående kopi i hukommelsen
- Tilføjede valgfri stream-ejerskab: at videregive AOwnsStream = True overdrager TStream'ens livstid til TPdf, som frigør den, når UnloadDocument kører
- Udvidede Delphi- og Lazarus-regressionssuiterne til 79 tilfælde hver og C++Builder-suitten til 75 tilfælde, der dækker streaming-indlæsning via TFileStream, owned-stream-oprydning og eksternt-ejet-stream-overlever-udlæsning-kontrakten
Version 1.7.0
- Tilføjede kooperative async-annullerings-primitiver i den nye FPdfAsync-enhed, der eksponerer IPdfCancellationToken / IPdfCancellationTokenSource og en genanvendelig PdfNoCancellationToken-singleton, så længerevarende rendering- og eksport-arbejdsgange kan understøtte ren cancel-from-UI-semantik
- Tilføjede en letvægts TPdfFuture<T>-hjælper, der kører en worker på en baggrundstråd og poster TPdfFutureResult<T>-konvolutten tilbage til hovedtråden, der skelner mellem succes-, annullerings- og fejl-tilfælde
- Udvidede Delphi- og Lazarus-regressionssuiterne til 76 cases hver og C++Builder-suiten til 73 cases med delt dækning af annulleringsstatus, idempotent annullering, callback-fordeling og registrering efter annullering
Version 1.6.10
- Tilføjet højniveauadgang med TPdf.PrintPageRanges til PDF-viewerens præference for udskriftsider, som returnerer en-baserede sideintervaller til programkode
- Tilføjede TPdf.SetFormFieldFlags / SetFormFieldFlagsAt og matchende TPdfView-hjælpere, så applikationer kan opdatere AcroForm-felt-flag via den offentlige API, inklusive adgangskode- og multi-select-flag-dækning
- Hærdede PDFium-binding-ABI-dækning for Windows-størrelse FPDF_DWORD, FPDF_FILEACCESS-tilbagekald og V8-embedder-slot-felter
Version 1.6.9
- Tilføjet lave niveauer af Skia-gengivelsesbindinger til de nyligt eksporterede FPDF_RenderPageSkia- og FPDF_FFLDrawSkia-API'er i de medfølgende standard- og V8-PDFium-DLL'er
- Udvidede de offentlige binding-dækningskontroller, så standard- og V8-DLL-indlæsning nu verificerer Skia-render-entry-points ved siden af de eksisterende V8/XFA-capability-probes
Version 1.6.8
- Tilføjede TPdf.SetTextPositions og TPdfSingleArray til at sætte per-tegn-positioner på eksisterende tekst-objekter via den ny-eksporterede FPDFText_SetPositions-API
- FPDFText_SetPositions er nu en påkrævet binding for de aktuelle medfølgende PDFium-DLL'er, samtidig med at det bekræftes, at Skia-gengivelsesindgangspunkterne fortsat ikke er tilgængelige, fordi DLL'erne stadig ikke eksporterer dem
- Udvidede Delphi-, C++Builder- og Lazarus-regressionssuiterne til 65 tilfælde hver med tekst-position-dækning
Version 1.6.7
- Tilføjede højt-niveau TPdf-adgang til dokument-JavaScript-name-tree-handlinger, der returnerer handlingsnavne og scripts via JavaScriptAction og JavaScriptActions
- Tilføjede TPdf.FileIdentifier til at læse permanente og skiftende trailer-ID'er som binære TBytes uden PDFium-terminator-byten
- Tilføjet TPdf.PageBox, GetPageBox og SetPageBox for MediaBox, CropBox, BleedBox, TrimBox og ArtBox på den aktuelle side
- Bekræftet at de aktuelle medfølgende PDFium-DLL'er kun efterlader Skia-gengivelsesindgangspunkterne utilgængelige ved kørsel, fordi disse exports ikke findes
- Udvidede regression-suiterne for Delphi, C++Builder og Lazarus til 64 cases hver med dækning af dokument-JavaScript, trailer-ID og sideboks
Version 1.6.6
- Tilføjet understøttelse ved kørsel for den medfølgende V8-aktiverede PDFium-DLL. Når EnableV8Engine sættes før indlæsning, vælges nu pdfium.v8.dll fra DLLs\Win32- eller DLLs\Win64-træet, og V8/XFA-only bindinger eksponeres, når den indlæste DLL stiller dem til rådighed
- Tilføjet V8FunktionerAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags og lave niveauer af valgfrie bindinger til FPDF_BStr_*, FPDF_GetRecommendedV8Flags og FPDF_GetArrayBufferAllocatorSharedInstance
- Gjorde FPDFText_SetPositions valgfri, så PDFium Delphi Component fortsætter med at indlæse med PDFium-DLL'er, der ikke eksporterer den eksperimentelle tekstposition-indstiller
- Udvidede regression-suiterne for Delphi, C++Builder og Lazarus til 61 cases hver med dækning af funktioner fra standard-DLL og V8-DLL