PDFiumPas Versjonsnotater
Versjonshistorikk for brukersynlige funksjoner, feilrettinger, forbedringer av visningen, dokumentgenerering, PDF/A-utdata, rendering og dokumentasjonsoppdateringer i PDFiumPas
Siste utgivelse
- Siste versjon: 2.57.0; Utgivelsesdato:
Version 2.57.0
Lagt til (Added)
TPdfThumbnailView.Orientationstøtter vertikale og horisontale miniatyropsett og bevarer samtidig eksisterende vertikale standardFirstVisiblePageIndex,LastVisiblePageIndexogEnsureCurrentPageVisibleeksponerer og styrer miniatyrvisningsporten med én-baserte sideindekser
Endret (Changed)
- Endring av
CurrentPageIndexruller nå valgt miniatyr inn i synlig område i begge retninger - Delphi-, Lazarus- og C++Builder-tester dekker nå standarder for orientering, bytte, synlige områder og valgt-side-synlighet
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.57.0
Version 2.56.2
Endret (Changed)
HighlightSearchText,AddSearchTextHighlightogClearHighlightinvaliderer nå kun de enhetsrektanglene for søkeområdene som ble lagt til eller fjernet, i stedet for å male hele visningen på nytt- Erstatting av uthevinger med samme treff eller tilføying av duplikatte treff planlegger ikke lenger unødvendig ny maling
- Delphi-, Lazarus- og C++Builder-tester dekker nå avgrenset invalidasjon, idempotente oppdateringer, tømming og sikkerhet for inaktive visninger
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.56.2
Version 2.56.1
Endret (Changed)
TPdfThumbnailViewgjenbruker nå renderte bitmaps for sider som forblir synlige på tvers av ommaling og tilstøtende rulleposisjoner- Hurtiglageret beholder kun det gjeldende synlige sideområdet og frigjør oppføringer nøyaktig når sider forlater dette området, det tilordnede dokumentet endres, eller miniatyrdimensjonene endres
- Delphi-, Lazarus- og C++Builder-tester dekker nå gjenbruk av hurtiglager, beskjæring av visningsport, størrelses-invalidasjon, dokumentbytte og komponentødeleggelse
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.56.1
Version 2.56.0
Lagt til (Added)
TPdfView.CutSelectedFormTextToClipboardogTPdfView.PasteFormTextFromClipboardtilbyr Unicode-utklippstavle-redigering for det fokuserte redigerbare skjemawidgetet
Endret (Changed)
- Fokuserte skjemaredigerere håndterer nå standard copy-, cut-, paste- og select-all-tastatursnarveier før tekstinnsendelse videresendes til PDFium
- Cut og paste avviser skrivebeskyttede felt og økter uten skjemafyll- eller endringstillatelse, mens cut kopierer vellykket før valgt tekst fjernes
- Delphi-, Lazarus- og C++Builder-tester dekker nå oppførsel for ingen-fokus, snarvei-retur og avvisning av skrivebeskyttet
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.56.0
Version 2.55.0
Lagt til (Added)
TPdfView.AddSearchTextHighlighttilføyer unike treff for et annet søkeord til det gjeldende sideoverlegget, slik at flere spørringer kan forbli uthevet sammen
Endret (Changed)
HighlightSearchTextforblir inngangspunktet for erstatning og deler nå den additive skanneren, mens duplikatte tegnområder ignoreres ogClearHighlightfjerner hele den akkumulerte mengden- Delphi-, Lazarus- og C++Builder-tester dekker nå akkumulering av distinkte spørringer og undertrykkelse av duplikatte områder
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.55.0
Version 2.54.0
Lagt til (Added)
TPdfeksponerer nå komplette sideobjekt-øyeblikksbilder, samlede stiloppdateringer, affine objekttransformasjoner, bantsegmenter, klippbaner og Form-XObject-barn- Tegninspeksjon inkluderer nå fyll- og strekfarger, skrifttype-navn og -flagg, løse glyf-grenser, effektive matriser, tekstobjekt-håndtak og konvertering fra tegn- til tekst-indeks
- Kommentarer rundtrer nå kantgeometri og normal-, rollover- og down-utseendestrømmer
- Nye rå og dekodede miniatyrtilgangere, sideinnholds- og kommentar-transformasjoner, og
RenderPageWithMatrixtilbyr direkte avanserte renderings- og redigeringsbaner
Endret (Changed)
- Stilendringer for sideobjekter kan nå commit-es som én samling, slik at PDFium regenererer sideinnhold kun én gang
- Matrise-rendering bruker den eksisterende zero-copy bitmap-banen når destinasjons-bitmapoppsettet er kompatibelt
Version 2.53.1
Løst (Fixed)
- Den innebygde kinesiske Copy-menyteksten bruker nå kodingsuavhengige Unicode-kodepunkter og vises riktig i Lazarus-bygg
- Eldre Delphi-verktøykjeder kan nå kompilere
FPdfAsyncnår deresWinapi.Windows-enhet utelaterGetTickCount64-deklarasjonen
Version 2.53.0
Lagt til (Added)
- Ny
Tests.ApiCoverage-testoppsett som dekker offentlige TPdf-API-er som tidligere hadde null ende-til-ende-testdekning:GetPageBox/SetPageBox(MediaBox/CropBox les/skriv, feil for manglende boks og lagrings-rundtur),FlattenPage/FlattenAllPages(returverdi og bevaring av sideantall),GenerateFormAppearances(no-op på ikke-skjema-dokumenter),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 med passord-rundtur — bekrefter at den krypterte filen nekter å åpne uten passordet og åpnes med det),DeletePage-grensevalidering (side 0 og utenfor området heverEPdfError), ogHasContents/HasAuthor-kommentarvaktene introdusert i v2.38.0 (bekrefter atDefault(TPdfAnnotation)etterlater demFalse)
Version 2.52.0
Lagt til (Added)
TPdfView.CopySelectedFormTextToClipboardkopierer tekstvalget inni det fokuserte AcroForm-widgetet til Windows-utklippstavlen somCF_UNICODETEXT
Endret (Changed)
- Sidetekst- og fokuserte skjema-kopieringsoperasjoner deler nå samme defensive Unicode-utklippstavle-skriver og etterlater utklippstavlen uendret når valget deres er tomt
- Delphi-, Lazarus- og C++Builder-tester dekker nå inaktive eller ufokuserte skjema-kopieringskall og en fokusert skjemavalgs-rundtur gjennom Windows-utklippstavlen
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.52.0
Version 2.51.0
Lagt til (Added)
TPdfView.SelectLineAtvelger den visuelle tekstlinjen som inneholder en én-basert side- og null-basert tegn-indeks uten å kreve muse-inndata
Endret (Changed)
- Programmatisk linjevalg, trippel-klikk-valg og
Shift+HomeellerShift+Enddeler nå én tegn-boks linjegrense-modell - Delphi-, Lazarus- og C++Builder-tester dekker nå stabilt linjevalg og ugyldige side- eller tegn-indekser
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.51.0
Version 2.50.0
Lagt til (Added)
TPdf.LoadDocumentaksepterer nå et null-basertIndex- ogCount-vindu inn i enTBytes-buffer, slik at innebygde PDF-er kan lastes uten å allokere en midlertidig byte-array-slice
Endret (Changed)
- Byte-område-lasting avviser negative eller utenfor-område-vinduer før dokumenttilstand endres og bevarer eksisterende alternativer for bufret og lånt-buffer-levetid
- Delphi-, Lazarus- og C++Builder-tester dekker nå innebygde PDF-vinduer og ugyldige byte-område-argumenter
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.50.0
Version 2.49.1
Lagt til (Added)
TPdfView.FitModestøtter nåpfmFitHeightfor å tilpasse gjeldende side til synelig visningsporthøyde med horisontal rulling ved behov
Løst (Fixed)
- Tilpasningsmoduser konvergerer nå etter at rullefeltets synlighet endrer klientområdet, og holder fit-page-, fit-width- og fit-height-resultater konsistente mellom VCL og LCL
- Delphi-, Lazarus- og C++Builder-visningstester dekker nå
pfmFitHeight-valg og enum-returreturer TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.49.1
Version 2.49.0
Lagt til (Added)
- Den offentlige PDFium-bindingsflaten dekker nå alle 470 eksporterte funksjoner i de gjennomgåtte hodene, inkludert tilgang til vedleggsbeskrivelser via
FPDFAttachment_SetDescriptionogFPDFAttachment_GetDescription TPdfeksponerer nå vedleggsbeskrivelser, kryssreferanse-gyldighet, trailer-sluttforskyvninger, security-handler-revisjon, 64-bits minnelasting, signatur-byteområder, weblenke-tekstområder og utvidede bildedata-, filter-, metadata- og ICC-profil-øyeblikksbilder- Skjemaassistenter støtter nå nativ feltfokus, forespørsler og oppdateringer av fokuserte valgalternativer, musehjul-videresending, skrivbare blekkstreker og skjemaoverlegg etter progressiv rendering
Endret (Changed)
FormFieldCount, skjemafelt-indekser og tabulatorrekkefølge beskriver nå bare widget-annotasjoner i stedet for å inkludere urelaterte sideannotasjoner- Headless
TPdf-sider går nå inn i og forlater skjema-utfylling-sidelivssyklusen slik at nativ fokus og fokuserte felt-API-er fungerer uten enTPdfView - Eksport av vedleggsbeskrivelser er portstyrte slik at applikasjoner som bruker en eldre PDFium-build fortsatt kan laste biblioteket og oppdage den utilgjengelige funksjonen
Løst (Fixed)
- Progressiv siderendering tegner nå skjemakontroller når skjemautfylling er aktivert
- Delphi-, Lazarus- og C++Builder-tester dekker nå den nye dokumentdiagnostikken, vedleggsbeskrivelser, blekkveier, skjemaoppførsel, signatur-byteområder, weblenke-områder og bildemetadata
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.49.0
Version 2.48.0
Lagt til (Added)
TPdfMatrixeksponerer nå fabrikker, kloning og tildeling, endelig-tilstand- og invertibilitetsdiagnostikk, toleransebasert sammenligning, translasjonstilgang, determinant-rapportering og affin dekomponering- Prepend-komposisjon, pivot-bevisst rotasjon, skalering, skjevhet og speilvendinger, pluss stretch-, contain- og cover-rektangel-mapping støtter lokalt-rom- og tilpasset-layout-arbeidsflyter uten manuell koeffisient-aritmetikk
- Ikke-muterende invers tilgang, invers punktmapping, vektor- og firkant-transformasjoner, dynamiske punkt- og rektangel-batcher, in-place-varianter og én-pass-transformerte grenser utvider den gjenbrukbare geometriflaten
Endret (Changed)
- Translasjon, skalering og akse-speilvendinger oppdaterer nå bare de berørte koeffisientene i stedet for å rute gjennom generell affin multiplikasjon
- Rektangeltransformasjon normaliserer sitt input én gang, bruker en spesialisert nøyaktig akse-justert sti der det er mulig, og beregner generelle roterte grenser uten midlertidige punktposter
- Punkt- og rektangel-batch-transformasjoner tildeler én resultat-array eller gjenbruker oppringer-lagring, mens transformerte punkt-grenser akkumuleres i ett pass uten en mellomliggende array
Løst (Fixed)
- Rektangel-mapping avviser null-størrelse, ikke-endelige og
Single-overflow-resultater før publisering av en ubrukelig matrise - Delphi-, Lazarus- og C++Builder-tester verifiserer nå komposisjonsrekkefølge, pivot-invarianter, inverse returreturer, tilpassede rektangler, dekomponering og masse-geometrioppførsel
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.48.0
Version 2.47.0
Lagt til (Added)
FPdfAsyncgir nå strukturerte avbruddsårsaker og -meldinger, fjernbare tilbakeringingsregistreringer, tidsavbrudds-baserte kilder, avbrudds-venting og atomiske try-cancel-operasjoner gjennom utvidede grensesnitt som bevarer den opprinnelige API-enTPdfFuture<T>.RunExlegger til konfigurerbar svar-ekspedering og arbeiderprioritet mens resultat-konvolutter eksponerer operasjons-ID-er, verdi-gyldighet, unntaks-klassenavn, fullføringstidsmåling og gjenbrukbare fullførings-hjelpereTPdfAsyncExecutorlegger til en gjenbrukbar fast arbeider-pool med fire FIFO-prioritetsbaner, valgfri begrenset-kø-backpressure, kansellerbare oppgavehåndtak, tidsavbrudds-bevisst venting, oppgave-øyeblikksbilder, aggregert statistikk og graceful nedstenging
Endret (Changed)
- Gjentatte asynkrone jobber kan gjenbruke arbeider-tråder og O(1)-kø-operasjoner i stedet for å opprette en tråd for hver oppgave, mens synkronisert fullføring forblir tilgjengelig for UI-verter
- Executor- og future-feil bevarer unntaks-klasse- og meldingsdiagnostikk, avbrudd beholder sin opprinnelige årsak, og tilbakeringingsunntak forblir isolert fra arbeider-livssyklus og nedstenging
- Delphi-, Lazarus- og C++Builder-tester dekker nå den utvidede avbrudds-, future-metadata-, oppgavekontroll-, backpressure-, prioriteringsordnings-, statistikk-, feil- og nedstengingsflaten
Løst (Fixed)
- Samtidige avbruddseiere mottar nå et deterministisk første-skriver-resultat i stedet for å stole på en separat observasjons- og avbruddssekvens
- Hovedtråds-lediggangs-venting behandler synkroniserte oppgavesvar, og forhindrer at en fullført arbeider etterlater executoren permanent ikke-ledig under koordinert nedstenging
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.47.0
Version 2.46.0
Lagt til (Added)
FPdfAsn1eksponerer nå identifikator-klasser, 64-bits high-tag-nummer-koding og -dekoding, analyserte TLV-poster, null-kopi-barn-leser-vinduer, typede primitive dekodere og innholds- eller kodet-verdi-slices- DER-skrivere støtter nå det fulle usignerte 64-bits INTEGER-området, validert vilkårlig INTEGER-innhold, ENUMERATED, automatisk UTCTime- eller GeneralizedTime-valg, application- og private-tagger, multi-verdi-SEQUENCE og kanonisk sortert SET OF-utdata
ValidateDerreturnerer forskyvnings-bevisste valideringsfeil mens den håndhever konfigurerbare nesting-, nodeantall-, innholdslengde-, feilantall-, root- og valgfrie SET-sorteringsgrenser
Endret (Changed)
- DER-konkatenering og multi-verdi-komposisjon bruker én utdata-allokering, skriver-buffere eksponerer reserve-, count-, capacity- og eierskaps-overføringsoperasjoner, og SET OF-sortering bruker nå
O(n log n)flettesortering - BOOLEAN-, INTEGER-, BIT STRING-, OBJECT IDENTIFIER-, NULL-, UTF8String-, PrintableString-, IA5String-, UTCTime- og GeneralizedTime-verdier mottar kanoniske form-sjekker under koding, typet dekoding eller validering
- Lazarus-runtime-pakken eksporterer nå
FPdfAsn1, og Delphi-, Lazarus- og C++Builder-test-suiter øver den samme offentlige DER-flaten
Løst (Fixed)
- Kontekst-spesifikke tag-numre større enn 30 er ikke lenger avkortet til de lave fem identifikator-bitene
- Malformerte high-tag-identifikatorer, ikke-minimale bestemte lengder, ugyldig UTF-8, ikke-null BIT STRING-padding, ugyldige tidsfelt, etterfølgende røtter og ressursgrense-brudd avvises deterministisk
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.46.0
Version 2.45.0
Lagt til (Added)
FPdfPreflightReporttilordner nå Info-, Warning- eller Error-alvorlighet til hvert problem og eksponerer per-standard- og rapportnivå-alvorlighets-, status-, kategori-, problemkode-, oppslags-, søke-, flatings- og filtrerings-API-er- Preflight-rapporter eksporterer nå SARIF 2.1.0, JUnit XML, NDJSON og innebygd XML gjennom matchende
To*- ogSave*ToFile-metoder for CI-, automasjons- og strømme-pipelines - Stabile SHA-256-rapport-fingeravtrykk identifiserer ekvivalente valideringsresultater uavhengig av kilde-stier og genererings-tidsstempler
Endret (Changed)
- JSON-, CSV-, text-, Markdown- og HTML-rapporter inkluderer nå alvorlighet og utvidede status-sammendrag; HTML legger til tilgjengelige tabell-tekster og et status-sammendrag
- Problem- og standard-samlings-konstruksjon bruker geometrisk kapasitet-vekst, spørringsresultater er forhånds-dimensjonert, JSON-escaping skriver til én begrenset utdata-buffer, og alle rapportfiler bruker én direkte UTF-8-skriver
- Problem-kategori-sammendrag bruker deterministisk sortering, tidsstempler inkluderer millisekunder, JSON bærer
formatVersion: 2, og CSV-celler nøytraliserer regneark-formler
Løst (Fixed)
- JSON-eksport bevarer nå gyldige supplerende Unicode-par og erstatter isolerte UTF-16-surrogat-kodeenheter i stedet for å sende ut malformerte skalare data
- HTML-eksport unnslipper nå apostrofer, og filtrerte rapportvisninger eier uavhengige problem-arrays i stedet for å dele mutbart resultat-lagring
TPdf.AboutInfo, Lazarus-pakke-metadata og installasjonsmetadata rapporterer nå konsekvent Version 2.45.0
Version 2.44.0
Lagt til (Added)
- Bokmerker og destinasjoner viser åpen tilstand, etterkommer-tellinger, handlingsmål, destinasjonsvisningsmoduser og opptil fire visningsparametere
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissionogUserHasPermissiongir typede dokumentinspeksjons-øyeblikksbilder og tillatelsesspørringerExtractThumbnail(PageNumber)opptegner en forespurt side uten å endre den aktive siden, og RFC 3161-tidsstempelresultater viser policy, genereringstid og detaljer om nonce
Endret (Changed)
- Bokmerke-, JavaScript-, metadata-, destinasjons- og miniatyr-stier bruker validerte to-pass-buffere, geometrisk samlingsvekst og sykkel-sikker gjennomgang
- Lagrings-etterbehandling løser den aktive katalogen, sidetreet og åpne-handlingen gjennom den gjeldende xref-revisjonen, mellomlagrer dekodede objektstrømmer og skanner PDF-ordbøker med leksikalske grenser
- Delt PDF-parsing håndhever nå nøyaktige objekthoder, generasjoner, ordboknøkler, strømlengder, prediktorgeometri, heltallsområder og kommentar-, litteral-streng- og heksadesimal-streng-grenser
- RFC 3161-svar-validering binder nå både nonce og SHA-256-
messageImprint, krever en strukturelt gyldig signerer og anvender strenge DER-lengde-, OID-, INTEGER- og GeneralizedTime-regler
Rettet (Fixed)
- Inkrementelle dokumenter velger ikke lenger inaktive duplikate kataloger eller feilutformede referanse-suffikser når en standard åpne-handling legges til
- Tidsstempel-tokens med langform-DER-lengder beholder det fullstendige kodede tokenet, mens feilordnet valgfritt CMS-felt-rekkefølge og tomme signatursett avvises
- Rene Delphi-bygg skriver nå PAdES-nonce-seed-felt gjennom justeringssikre bytekopier og sender XFA-svar-byter med den nøyaktige innfødte peker-typen
Version 2.43.0
Lagt til (Added)
- XFDF-felt- og merknadsposter viser nå tilstedeværelsesflagg som skiller en utelatt XML-verdi fra en eksplisitt tom verdi
Endret (Changed)
- XFDF-import godtar navneromsprefikserte elementer og attributter, blandet tekst- og CDATA-innhold, entitetsreferanser og mellomromsbetydelige verdier, samtidig som den avviser ugyldige Unicode-skalarreferanser
- XFDF-import og -eksport bruker indeksert feltmatching og begrensede geometriske buffere, noe som forbedrer gjennomstrømming og topp-allokeringsatferd for dypt nestede skjemaer, store merknadssamlinger, blekklister, hjørner og markering-firkanter
- PDF/A- og PDF/UA-validering bruker begrenset vekst for store side-, strøm-, strukturnavn- og RoleMap-samlinger; PDF/UA RoleMap-oppløsning følger nå direkte matriser og indirekte navn- eller matriseobjekter med nøyaktig generasjon
Rettet (Fixed)
- XFDF-rundturer bevarer nå dypt nestede feltstier, eksplisitte tomme feltverdier, eksplisitte tomme merknadsinnhold og skillet mellom fraværende og tomt innhold
- Ugyldige minnebuffer-laster og side-tildelinger utenfor området avvises uten å etterlate delvis dokument- eller sidetilstand, og en mislykket oppdatering av en innfødt side bevarer den tidligere aktive siden
- Store merket-innhold-identifikatorer og signaturmetadata-buffere er begrenset og validert før tildeling eller innfødt tilgang
Version 2.42.0
Lagt til (Added)
TPdfMatrixtilbyr nåInvert,TryInvert,TransformPointogTransformRectfor koordinatavbildning, treff-testing, normaliserte grenser og eksplisitt håndtering av singulær matriseTPdf.WrapTextfikk enBreakLongWords-overbelastning som deler CJK og annen tekst uten mellomrom, samtidig som gyldige UTF-16 surrogatpar holdes sammenTPdfAnnotation.AttachmentPointSetsviser hver firkant i flerlinje markering-merknader, mens det eksisterendeAttachmentPoints-feltet forblir et alias for det første settet
Endret (Changed)
- Tekstuttrekk, konstruksjon av lesbart innhold, oppslagsord og forskyvningsavbildning for opplest tekst bruker nå begrenset tildeling og binære oppslagsstier, noe som reduserer gjentatte tildelinger og lineære skanninger på store sider
- ASN.1-serialisering og generering av kryptert PDF bruker nå geometriske utdatabuffere; kryptert-objekt-rekkefølge bruker
O(n log n)-sortering og xref-rader skrives direkte til den endelige bufferen WrapTextbevarer CR-, LF- og CRLF-linjegrenser og gjenbruker ett innfødt måleobjekt for hele operasjonen- XFDF-import og -eksport bevarer hver markering-firkant; import anvender også RGB-/interiørfarger og tolker desimalkoordinater uavhengig av prosessens nasjonale innstilling
Rettet (Fixed)
- Eldre kallere kan igjen oppdatere merknadsinnhold og forfatter ved å tildele ikke-tomme strenger uten å sette de nyere
HasContents- ogHasAuthor-vaktpostene - Eksplisitt tomme merknadsstrenger bruker nå en gyldig null-terminert innfødt buffer, slik at tømming av
/Contents,/Tog andre valgfrie tekstnøkler ikke lenger sender en nil-peker til PDFium
Version 2.41.0
Endret (Changed)
- Preflight-rapportene
SaveJsonToFile,SaveMarkdownToFileogSaveTextToFileskriver nå UTF-8 på Delphi (tilsvarer eksisterendeSaveHtmlToFile) i stedet for systemets ANSI-tegnside; ikke-ASCII-tegn i filbaner, anbefalinger og omfangsnotater ble skadet på Delphi når de ble lagret med disse metodene SaveCsvToFileskriver nå UTF-8 med et BOM-prefiks, slik at Excel for Windows automatisk gjenkjenner kodingen; uten BOM vil Excel behandle en UTF-8-CSV som tegnside 1252 og skade eventuelle ikke-ASCII-tegn
Rettet (Fixed)
- Demoen
ExtractImageslekket de bufredeTBitmap-objektene iFExtractedImagesnår skjemaet ble lukket uten å fjerne dem eksplisitt først; skjemaet overstyrer nåDestroyfor å kalleClearExtractedImages, noe som frigjør alle bufrede bitmapelementer
Version 2.40.0
Endret (Changed)
TPdf.RenderPage(HDC, ...)maskerer nå FPU/SSE-unntak rundt kalletFPDF_RenderPage, som samsvarer medTPdfView.RenderPage(HDC)(rettet i v2.25.0) og alle renderingsinngangspunkter som returnerer bitmapelementer; overbelastningen direkte-til-DC påTPdf-nivå etterlot tidligere FPU-unntak umaskert på kompilatorer før D12
Rettet (Fixed)
ColorToARGBreturnerer nå en avmerket eller gjennomsiktig piksel (alfa 0) forclNoneogclDefaulti stedet for å behandle vaktpostverdien som en bokstavelig RGB-farge; den tidligere oppførselen ga en mørk, nesten ugjennomsiktig fylling når et kall sendteclNoneog forventet “no colour”
Version 2.39.1
Rettet (Fixed)
- Eksplisitt PDF 1.3-lagring fjerner nå oppføringene
/SMask /None,/AIS falseog/TK truesom bare gjentar den opprinnelige grafikktilstanden, mens den fortsetter å avvise ikke-standard gjennomsiktighetstilstand
Version 2.39.0
Endret (Changed)
CreatePDFogImageToPDFbruker nå bekreftede lagringsdestinasjoner og rapporterer suksess bare nårSaveAsfullføres vellykketBatchExport,PDFtoJpgogSplitPDFtildeler nå unike utdatakataloger slik at gjentatte kjøringer og inndata med samme navn bevarer tidligere resultaterSplitViewomslutter nå søk én gang uten å etterlate skjult sidetilstand etter avbrytelse eller ingen treff, og avbryter ufullstendige utskriftsjobber i stedet for å sende delvis utdata
Rettet (Fixed)
MergePDFavviser nå feilaktige sideintervalltokener og utdatabanaler som overskriver kilden, teller sidene som faktisk ble importert, og nekter å lagre et tomt resultat- Delphi- og C++Builder-demoene for
Attachmentutfører nå lagringer på samme bane via tilbakerullingssikker filerstatning, slik at et mislykket navnebytte ikke kan slette den opprinnelige PDF-filen
Version 2.38.0
Endret (Changed)
SetAnnotationDatabeskytter nå skriving til/Contentsog/AuthorbakHasContents/HasAuthor-vaktposter påTPdfAnnotation, i samsvar med det eksisterende mønsteretHasName/HasSubject/HasIcon; tidligere ble disse to feltene skrevet ubetinget, slik at tildeling av enDefault(TPdfAnnotation)-post for kun å oppdatere farge eller flagg lydløst overskrev merknadens eksisterende innhold og forfatter med tomme strenger;GetPageAnnotationsetter nå vaktpostene slik at en lese-endre-skrive-syklus bevarer de opprinnelige verdiene
Rettet (Fixed)
GenerateFormAppearancesleser nå verdien for avmerkingsboks/radioknapp viaFPDFAnnot_GetFormFieldValue(som navigerer til overordnet feltordbok i henhold til ISO 32000-1 §12.7.5) i stedet forFPDFAnnot_GetStringValue(Annot, 'V', ...)(som leser kontrollordboken); kontrollen inneholder vanligvis ikke/V, så/ASble aldri synkronisert med den avmerkede tilstanden, og en flatet avmerkingsboks/radioknapp ble tegnet som uavmerket
Version 2.37.0
Endret (Changed)
ParseTsaUrlbegrenser nå porten til1..65535etter parsing; en for stor portverdi ville ellers bli avkortet viaDWORD-avrunding og kunne havne på en gyldig port- XFDF
ParseFieldgodtar nå en dybdeparameter (standard 0, begrenset til 64) og returnerer et tomt felt ved grensen, slik at en ondsinnet nestet 100 000-dyp<field>-kjede ikke lenger kan overløpe stakken
Rettet (Fixed)
- TSA-HTTP-forespørsel beskytter nå mot en tom forespørselskropp før
@ReqDer[0]sendes tilWinHttpSendRequest; en dereferering av en dynamisk tabell med null lengde ville aksessert en ugyldig peker;BuildTimeStampReqreturnerer alltid en ikke-tom SEQUENCE, men kallstedet forsvarer nå kontrakten
Merknader (Notes)
- Topptekstkommentaren i
FPdfTsaWinom HTTPS-tilbakekallingskontroll er rettet: WinHttp validerer serversertifikatkjeden som standard, men utfører ikke CRL/OCSP-tilbakekallingskontroll med mindre det er eksplisitt aktivert viaWinHttpSetOption; den tidligere ordlyden hevdet at tilbakekallingskontroll “comes for free”, noe som var misvisende
Version 2.36.0
Endret (Changed)
- TSA-HTTP-forespørsler sender nå et eksplisitt
Content-Length-hode i tillegg tilContent-Type- ogAccept-hodene; WinHttp bygger dette fra den totale lengden, men noen RFC 3161-mellomservere krever et eksplisitt hode og avviser forespørselen med411 Length Requireduten det - XFDF-eksport dropper nå C0-kontrolltegn (bortsett fra TAB/LF/CR som allerede er unngått) i stedet for å sende ut en ugyldig omvendt skråstrek-heksadesimal sekvens; den tidligere
\-01F-unngåelsen er ikke gyldig XML (omvendt skråstrek har ingen spesiell betydning i XML), så enhver samsvarende leser ville ha avvist dokumentet som feilaktig InjectAssociatedFilesskriver nå/Subtypepå EmbeddedFile-strømordboken når kallet levererTAssociateFile.MIMEType; feltet var deklarert og dokumentert, men injektoren hardkodet tidligere/Type /EmbeddedFileog ignorerte det (ISO 32000-2 §7.11.4 tillater/Subtypepå strømmen)
Rettet (Fixed)
- XFDF-import hoppet over den første innholdsbyten etter en UTF-8 BOM og den første byten når ingen BOM var til stede:
BytesToAnsi(Bytes, 4, ...)(BOM) ogBytesToAnsi(Bytes, 1, ...)(uten BOM) brukte startposisjoner som var forskjøvet med én fordiBytesToAnsitar en 0-basert tabellindeks; kallene bruker nå3og0 ExtractSignatureValuehadde to innrykkfeil med hengendeifderR.Position:= CNkjørte ubetinget for de valgfrie grenenecertificates [0]ogsignedAttrs [0]; grenene are nå pakket inn ibegin/endslik at posisjonen bare flyttes frem når den valgfrie TLV-en faktisk ble lest (samme klasse av feil ble rettet iAddSignatureTimestampToCmsi v2.22.0)
Version 2.35.0
Endret (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailogTFPDFAvail_IsFormAvailtar nåhints: PFX_DOWNLOADHINTSi stedet forvar hints: FX_DOWNLOADHINTS, slik at den dokumenterte bare-spørring-modusnullptr(kontroller gjeldende tilgjengelighet uten å be om mer data) er tilgjengelig fra Delphi; PDFium-toppteksten tillater eksplisitt athintskan være null; den forrigevar-bindingen gjorde dette umuligTFPDF_SetSystemFontInfotar nåpFontInfo: PFPDF_SYSFONTINFOi stedet forvar pFontInfo: FPDF_SYSFONTINFO, slik at kallere kan sendenilfor å be PDFium slutte å bruke et tidligere registrert systemskriftgrensesnitt (den dokumenterte deaktiveringsbanen)TPdfThumbnailView.Paintberegner nåVisibleRowsmed samme formel somUpdateScrollBarRange(ClientHeight div RowHeight), slik at antall tegnede rader samsvarer med rullefeltets sidestørrelse; den forrige bare-tegne-formelen ((ClientHeight - FMarginY) div RowHeight + 1) kunne avvike med én rad ved grensehøyder, noe som kastet bort en rendering på en rad utenfor siden eller førte til at man mistet den siste synlige raden
Version 2.34.0
Lagt til (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— høynivå-API som lagrer dokumentet og deretter krypterer det med PDF 2.0 AES-256-CBC (V=5/R=5/R=6); tar enTPdfEncryptOptionsmed bruker-/eierpassord, tillatelser og revisjon; delegerer tilEncryptDocumentBytes- StrF bokstavelig streng-kryptering:
EncryptDocumentByteskrypterer nå bokstavelige strenger(...)i ikke-strømobjekter (Info-ordbok osv.) til heksadesimale AES-256-CBC-strenger, som samsvarer med krypteringsformatet for strømmer (16-byte IV + PKCS7-chiffertekst); heksadesimale strenger<...>forblir uberørte
Version 2.33.0
Lagt til (Added)
- Krypteringsinjektor for hele dokumentet med AES-256-CBC i
FPdfEncrypt.pas;EncryptDocumentBytestar en klartekst-PDF og et passord, krypterer hvert indirekte strømobjekt (16-byte IV + AES-256-CBC PKCS7 under filnøkkelen), korrigerer/Length, legger til ordbokobjektet/Encrypt, og bygger opp igjen en komplett klassisk kryssreferansetabell + trailer med/Encryptog/ID; fullfører krypteringsstakken for PDF 2.0 (AES-blokk + GCM + SHA-512/384 + R6-nøkkelutledning + ordbok + dokumentsøk) - Hjelpefunksjonen
EncryptStreamPayload— strømformatet for PDF 2.0 AES-256 (IV foran AES-CBC-PKCS7-chiffertekst), gjenbrukbar av kallere som administrerer sitt eget objektoppsett
Version 2.32.0
Lagt til (Added)
- SHA-512 / SHA-384-hash (FIPS 180-4) i den nye enheten
FPdfSha512.pas; ren Pascal, portert fra HotPDF; kreves av passord-hash-iterasjonen i PDF 2.0 R6, som forgrener seg på en 128-bit mod-3-verdi for å velge SHA-256/384/512 i hver runde; bekreftet i henhold til testtilfellene i FIPS-180-4 B.1 - Utledning av krypteringsnøkkel for PDF 2.0 og bygging av Encrypt-ordbok i den nye enheten
FPdfEncrypt.pas; implementerer ISO 32000-2 §7.6.4.3 algoritme 2.B (R6-hash-dans: AES-128-CBC + iterativt SHA-256/384/512-valg), utleder den 32-byte filkrypteringsnøkkelen pluss oppføringene/O,/U,/OE,/UEog/Perms, og bygger V=5/R=5/R=6 Encrypt-ordboken med/CFM /AESV3; portert fra PDFlibPas, tilpasset til TBytes-stil
Version 2.31.0
Lagt til (Added)
- AES-blokkchifferprimitiver (FIPS 197) i den nye enheten
FPdfAes.pas; ren Pascal AES-128- og AES-256-blokkchiffere pluss CBC-modus-hjelpere og en CSPRNG-bakende, portert fra HotPDF; FIPS-197 Appendix C.2 / C.3 tester med kjente svar bekrefter korrekthet; dette er det kryptografiske fundamentet for krypteringsstakken i PDF 2.0 - AES-GCM-autentisert kryptering (NIST SP 800-38D) i den nye enheten
FPdfAesGcm.pas; implementerer GHASH (GF(2^128)-multiplikasjon), GCTR og GCM AEAD-konstruksjonen på toppen av AES-blokkprimitiver; NIST GCM testtilfelle 1 og 3 (AES-128) samsvarer nøyaktig med den autoritative chifferteksten og taggen; testtilfelle 13 (AES-256) fungerer begge veier; GCM er ISO/TS 32003-modusen for PDF 2.0 - PDF/A Level A ParentTree- og ClassMap-integritetsvalidering (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingflagger en StructTreeRoot uten /ParentTree-nummertreet;pvaiClassMapUnresolvedflagger en /C-klasse-referanse uten en /ClassMap
Version 2.30.0
Lagt til (Added)
- Injisering av tilknyttede filer (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); den nye enhetenFPdfAssocFilesknytter/AF-tabeller av filspesifikasjonsreferanser til katalogen eller en hvilken som helst sideordbok, og dekker alle åtte ISO 32000-2 Tabell 45/AFRelationship-verdier; gjenbruker mønsteret for trinnvis oppdatering som ble bevist avInjectPadesDssMarkers - Støtte for PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancelegger tilpxc6; injektoren og validatoren trer den gjennom identifikasjonenpdfxid:GTS_PDFXVersion; PDF/X-6 er den PDF 2.0-baserte etterfølgeren til PDF/X-4 for fullstendig utveksling - PDF/A forbyr handlingen
/Thread(ISO 19005-1 §6.6.1-hvitelistsmuttkull); listen over forbudte handlinger dekker nå Thread sammen med Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition og Hide
Rettet (Fixed)
- Valideringsbanen for PDF/A-4e respekterer nå de samme kontrollene for tagget struktur, MarkInfo og ordhåndtering som Level A; v2.29.0-nedgraderingen på lagringssiden dekket
PdfAIsLevelE, men treValidatePdfACompliance-porter kontrollerte kunPdfAIsLevelA, slik at et PDF/A-4e-dokument som manglet tagget struktur, ble godkjent uten feilmeldinger - OCG
/BaseState-testdrift: v2.28.0 PostProcess-gjennomgangen utvidet godkjenningen korrekt til/ONeller/OFF(ISO 32000-1 Tabell 8.70), men Delphi- og C++-testene forventet fortsatt at/OFFskulle avvises; testene bruker nå en virkelig ugyldig verdi (/Undefined) og en ny positiv test låser godkjenningen av/OFF - Overmatching av geospatiale
/Subtype /GEO:ContainsDictionarySubtype('GEO')matchet enhver ordbok som inneholdt tokenet, inkludert urelaterte som en tilfeldig/ViewerPreferences << /Subtype /GEO >>; den nyeContainsMeasureDictionarySubtypekrever i tillegg/Type /Measureeller en Measure-eksklusiv søskennøkkel, slik at ordbøker som ikke er for mål, ikke lenger utløser kravet for ADBE ExtensionLevel 3
Version 2.29.0
Lagt til (Added)
- Støtte for PDF/A-4 (ISO 19005-4:2020) på tvers av validatoren, XMP-injektoren og Pdfium-objektmodellaget;
TPdfAConformancelegger tilpac4base,pac4fogpac4e; basenivået er PDF 2.0 (ISO 32000-2) og erstatter de eldre A/B/U-nivåene med base + F (skjema) + E (tilgjengelighet);ValidatePdfAleser enpdfaid:part=4XMP-pakke (basen utelater samsvarselementet),SaveAsPdfAsender den ut, ogSignPadesWithPdfAgodtarpac4basesom en langsiktig arkivbeholder - Binding for
FPDFBookmark_GetColor— den siste ubundne offentlige eksporten fra PDFium (469/469);TBookmarkfår felteneHasColorogColorutfylt fra bokmerkets/C-tabell (ISO 32000-1 §12.3.3); bindingen bruker tolerant lasting slik at eldre DLL-er som ble utgitt før eksporten, fortsetter å fungere - Versjonskontroll for PDF/E-1 (ISO 24517-1 §5) i topptekst
pveiBadPdfVersion— PDF/E-1 er basert på PDF 1.6, og en topptekst som ikke er 1.6 blir nå flagget - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— kryptering er kun tillatt på en%PDF-2.0-topptekst; en 1.x-kropp som inneholder/Encryptblir nå flagget (tidligere en operasjon uten virkning) - PDF/R-1
pvriBadMediaBox— hver sidesMediaBoxskal være[0 0 w h];PdfRHasNonZeroMediaBoxOriginer en stedsavhengig ASCII-skanner som hopper over MediaBoxer med indirekte referanser - PDF/A Level A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — en tilstedeværende, men ufullstendig RoleMap som etterlater tilpassede/S-strukturtyper uavbildet blir nå flagget, noe som lukker smutthullet fra den eksisterendepvaiRoleMapMissing-kontrollen (som kun sjekker tilstedeværelse)
Rettet (Fixed)
PdfVersionToName(20)returnerte"1.0"i stedet for"2.0", noe som ødela katalogoppføringen `/Version` og validatormeldingene for hver PDF 2.0-lagring; formatereren deler nå hoved- og underversjon eksplisitt for versjonskoder>= 20- Den negative-INTEGER-koderen i
FPdfAsn1.pasfeilet ved kompilering under Delphi 12 (E2015påInteger(-(V<0))), noe som blokkerte hele testprosjektet; rettet ved å brukeInt64(-Ord(V<0))for fortegnsutvidelsesmasken - Listen over forbudte merknader for PDF/A inkluderer nå
/RichMediapå tvers av alle deler (tidligere utelatt; ISO 32000-1 §12.5.6.35 forbyr det i PDF/A)
Version 2.28.0
Lagt til (Added)
TPdfVersioninkluderer nåpv20for PDF 2.0 (ISO 32000-2);DecodePdfVersion(20)returnererpv20i stedet forpvUnknown, ogEncodePdfVersion(pv20)sender ut 20 slik at versjonen til et PDF 2.0-dokument ikke lenger går tapt ved lesing og kan skrives eksplisitt
Endret (Changed)
DecodeDatetolker nå PDF-datostrenger med valgfrie etterfølgende felt i henhold til PDF Reference 3.8.3, i stedet for å kreve den fulle 23-tegn formenD:YYYYMMDDHHmmSSOHH'mm'; samsvarende avkortede datoer somD:20260712,D:20260712153000ogD:20260712153000Zblir nå godtatt; tidligere ble de avvist av en strengLength=23-sperre; tidssoneforskyvning i timer blir nå validert mot det reelle området UTC-12..UTC+14 i stedet for> 23FPdfMeasure.MeasureTextkoder nå skriftnavnet som FPCAnsiString/ DelphiUTF8Encode, i samsvar med bibliotekets andre FPDF_BYTESTRING-kallsteder, i stedet for en ren typekonvertering tilAnsiStringsom skadet ikke-ASCII-familienavn via den gjeldende tegnkodingen
Rettet (Fixed)
- Den negative verdibanen i
TDerWriter.Integerkrasjet eller produserte feilaktig DER: løkkenwhile V <> -1 do V := V shr 8etterlotInnertom forValue = -1(områdefeil på påfølgendeInner[Length(Inner)-1]) og overproduserte byte for andre negative verdier; koderen trekker nå ut toerkomplement-byte med fortegnsutvidende skift og stopper riktig når resten er ren fortegnsutvidelse; CMS/PAdES INTEGER-felt er positive, så dette påvirker bare kallere som sender negative verdier, men banen er nå riktig TPdf.GetCharacterOriginogTPdfView.GetCharacterOriginignorerte returverdien fraFPDFText_GetCharOriginog returnerte et uinitialisert punkt ved feil; resultatet er nå nullinitialisert, og en mislykket lesing returnerer origo (i samsvar med kontrakten tilGetCharacterRectangle)
Version 2.27.0
Endret (Changed)
- Viewer-demoene håndterer søk,
Enter/F3ogEsc-avbryt - Utskrift følger visningsrotasjonen
Rettet (Fixed)
- Avbrutt utskrift stopper skriverjobben
Version 2.26.0
Endret (Changed)
- Bitmap-metoder bruker render lock rundt PDFium-kall
RenderPageThumbnailrespekterer/Rotate
Rettet (Fixed)
GetCharacterRectanglereturnererRect(0,0,0,0)ved feil
Version 2.25.0
Endret (Changed)
- Redigeringsmetoder ugyldiggjør tekst- og linkcache
RenderPage(HDC, ...)bruker lock og maskerer FPU/SSE
Rettet (Fixed)
- Kodepunkter over U+FFFF returnerer U+FFFD
TPdf.DestroysletterPassword
Version 2.24.0
Lagt til (Added)
- Indekser valideres og gir
EPdfErrorutenfor området
Rettet (Fixed)
- Page-object-lekkasjer og manglende
UpdatePageer rettet
Version 2.23.0
Rettet (Fixed)
/BaseStateog/Intent-validering godtar tillatte verdier- Geospatial Measure krever ikke lenger
/Type /Measure
Version 2.22.0
Endret (Changed)
- Fit zoom bruker
ClientWidth/ClientHeight AddSignatureTimestampToCmsgir eksplisittException
Rettet (Fixed)
- CNG-håndtak frigjøres med
NCryptFreeObject EcDsaP1363ToDeravviser nullr/s
Rettet (Fixed)
- Eksplisitte PDF 1.5 til PDF 1.7-lagringer avviser nå feil formaterte katalog-
/OCProperties-strukturer, inkludert manglende nødvendige/OCGs- eller/D-oppføringer, ugyldige standardkonfigurasjonsverdier og ikke-array tilstandsoppføringer
Version 2.21.12
Rettet (Fixed)
- PDF 1.5 til PDF 1.7-lagring avviser nå feilaktige
/OCProperties-strukturer
Version 2.21.11
Rettet (Fixed)
- Eksplisitte PDF-versjon-lagringer avviser nå direkte eller indirekte side-
/Annots-oppføringer hvis merknadsordbøker utelater den nødvendige/Subtype- eller/Rect-oppføringen
Version 2.21.10
Rettet (Fixed)
- Eksplisitte PDF 1.7-lagringer krever nå at geospatiale
/Type /Measure /Subtype /GEO-ordbøker og Projection-merknader erklærer/Extensions /ADBEmed/BaseVersion /1.7og/ExtensionLevel 3eller nyere
Version 2.21.9
Rettet (Fixed)
- Eksplisitte PDF 1.7-lagringer krever nå at RichMedia-merknader og
RichMediaExecute-handlinger erklærer/Extensions /ADBEmed/BaseVersion /1.7og/ExtensionLevel 3eller nyere
Version 2.21.8
Rettet (Fixed)
- Eksplisitte PDF 1.7-lagringer krever nå at PRC 3D-strømmer erklærer
/Extensions /ADBEmed/BaseVersion /1.7og/ExtensionLevel 1eller nyere, i stedet for å behandle PRC som en kjerne-PDF 1.7-funksjon
Version 2.21.7
Rettet (Fixed)
- Eksplisitte PDF 1.4 og eldre lagringer avviser nå bilde-XObject
/SMaskInData-oppføringer, inkludert en eksplisitt verdi på0, fordi innebygde JPEG 2000-mykmaskekanalene krever PDF 1.5 eller nyere
Version 2.21.6
Rettet (Fixed)
- Eksplisitte PDF 1.4 og eldre lagringer avviser nå 16-bits bilde-XObjects som krever PDF 1.5 eller nyere, mens PDF 1.5 til PDF 1.7-mål bevarer
/BitsPerComponent 16-bildedataene sine
Version 2.21.5
Rettet (Fixed)
- Eksplisitte PDF 1.4 og eldre lagringer avviser nå dokumentkatalog-
/PageLayout /TwoPageLeft- og/TwoPageRight-verdier som krever PDF 1.5 eller nyere, mens PDF 1.5 til PDF 1.7-mål bevarer det ønskede tosiders oppsettet
Version 2.21.4
Rettet (Fixed)
- Eksplisitte PDF 1.3-lagringer avviser nå dokumentkatalog-
/Lang-oppføringer som krever PDF 1.4 eller nyere, mens PDF 1.4 til PDF 1.7-mål bevarer språkidentifikatoren
Version 2.21.3
Rettet (Fixed)
- Eksplisitte PDF 1.3-lagringer avviser nå dokumentets
/EmbeddedFiles-navnetræer som krever PDF 1.4 eller nyere, uten å avvise innebygde filstrømmer referert gjennom eldre filspesifikasjoner
Version 2.21.2
Rettet (Fixed)
- Siste versjon: 2.21.2; Utgivelsesdato:
Version 2.21.1
Rettet (Fixed)
- Hybridreferansevalidering bruker nå supplerende
/XRefStm-oppføringer før klassiske xref-plassholderoppføringer fra samme revisjon, slik at komprimerte merknader og andre versjonsbegrensede objekter ikke lenger overses
Version 2.21.0
Endret (Changed)
- Alle Delphi-, C++Builder- og Lazarus-visningseksempler kan nå åpne en PDF som er sendt som første kommandolinjeargument, og C++Builder- og Lazarus-
MultiPageViewer-eksemplene gir eksplisitte snarveier for velg-alle og kopiér
Rettet (Fixed)
- Siste versjon: 2.21.3; Utgivelsesdato:
Version 2.20.0
Endret (Changed)
- Alle Delphi-, C++Builder- og Lazarus-visningseksempler gir nå konsistente snarveier for åpning, søk, lagring, utskrift, zoom og sidenavigasjon, mens alle
ViewerInteractionLab-varianter også støtter sidehop, validert manuell zoom 10–60 %, vedvarende interaksjonslogger og klik-koordinat-tur-retur-sjekker
Version 2.19.1
Rettet (Fixed)
- Siste versjon: 2.21.4; Utgivelsesdato:
Version 2.19.0
Endret (Changed)
- Siste versjon: 2.21.12; Utgivelsesdato:
Rettet (Fixed)
- C++Builder-eksempelet
CJKTextLabmåler nå tekst via de eksporterte PDFium-redigeringsfunksjonene, ogMergePDFunngår en tvetydig VCL-meldingsoverbelastning, noe som gjenoppretter rene RAD Studio 37-bygg
Version 2.18.3
Rettet (Fixed)
- PAdES B-LTA Document Time-stamp er nå registrert som et oppdagbart signaturfelt — et usynlig Widget tilgjengelig via første sides
/Annotsog AcroForm/Fields(ETSI EN 319 142-1 §5.4.3) — i stedet for et utilgjengelig foreldreløst objekt som validatorer som teller signaturfelt ikke kunne finne; eksisterende merknader og felt bevares
Version 2.18.2
Rettet (Fixed)
- PAdES-signering og klassisk kryssreferanseskrivning gir nå en tydelig feil når en byteforskyvning overskrider den faste 10-siffers feltbredden (~9,3 GB), i stedet for å la
/ByteRange-plassholderen stå uferdig (noe som produserer en ugyldig signatur) eller overskride den 20 byte lange xref-linjen (ISO 32000-1 §7.5.4); kryssreferansestrøm-utdata bruker 8-byte binære felt og påvirkes ikke
Version 2.18.1
Rettet (Fixed)
- PAdES-signering løser nå opp indirekte første-side
/Annots-,/AcroForm- og/Fields-referanser via hele objektoverskriften (ISO 32000-1 §7.5.3) og via referansens faktiske generasjonsnummer; et enkelt delstreng-søk matchet tidligere et objektnummer inni et lengre (og løste5 0 Rtil15 0 obj), og en hardkodet generasjon mistetgen>0-objekter, noe som korrumperte signaturfeltarrayene eller avviste gyldige dokumenter - Når katalogen, første side,
/Annots,/AcroFormeller/Fieldsbefinner seg inne i en objektstrøm, prøver signering nå på nytt på en utvidet kopi før den mislykkes, i stedet for å avvise dokumentet umiddelbart
Version 2.18.0
Lagt til (Added)
ReadPdfVersionInforapporterer overskriftsversjonen, effektiv kjerneversjon, katalogoverskriding og Adobe-utviklernivå fra en PDF-strøm
Endret (Changed)
- Eksplisitte PDF 1.3–1.7-lagringer validerer nå katalog-, sidressurs-, XFA-, redaksjons- og utviklerutvidelsesstrukturer i sitt eiende objektkontekst; kryptert eksplisitt-versjon-utdata og PDF 1.3 inkrementell normalisering avvises for å bevare dokumentintegritet
- Lagringer via filbane skriver nå til en midlertidig søskenfil og erstatter destinasjonen først etter at all komprimering, normalisering og versjonssjekker er fullført
Rettet (Fixed)
- PDF 1.3-utdata inneholder nå den nødvendige fulle
/ProcSet-ressursen og fjerner PDF 1.4-transparensnøkler når de kun gjentar PDF 1.3-initialgrafikktilstandsverdiene - Hybridreferanse-, xref-strøm- og objektstrøm-filer skrives ikke lenger om av den klassiske xref-kompressoren, noe som forhindrer at komprimerte objektoppføringer faller bort
- Navn som ligner transparens- eller katalogfunksjonsnøkler inne i strenger, kommentarer eller urelaterte ressurskart forårsaker ikke lenger falske målversjonsfeil
Version 2.17.0
Lagt til (Added)
- PAdES-signaturer registreres nå som usynlige Widget-merknader i første sides
/Annots-array og i AcroForm/Fields-array, og bevarer eksisterende merknader og skjemafelt
Endret (Changed)
- Inkrementelle PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/UA-, PDF/VT- og PAdES-oppdateringer bevarer nå kildens kryssreferanserepresentasjon: xref-strømdokumenter mottar en xref-strøm-oppdatering som påkrevd av ISO 32000-1 §7.5.8.1, mens klassiske dokumenter fortsetter å motta en xref-tabell
- Kryssreferanseforskyvninger,
startxref,/Prev, PAdES ByteRange-verdier og SHA-256-rekkeviddebehandling bruker nå 64-bits posisjoner med delt hashing, noe som muliggjør filer større enn 2 GB i 64-bits bygg - Genererte skrivbare XMP-pakker reserverer nå 2048 byte med polstring før den avsluttende pakkeinstruksjonen
Version 2.16.10
Rettet (Fixed)
- Utvidelse av objektstrømmer gjenoppliver ikke lenger foreldede kopier av objekter som en inkrementell oppdatering har migrert ut av objektstrømmen til en vanlig definisjon (ISO 32000-1 §7.5.7); samsvarssjekker og markørinjeksjon løste tidligere den utdaterte katalogen eller metadataordboken i slike filer
Version 2.16.9
Rettet (Fixed)
- I Free Pascal utvides tekststrenger med ugyldig UTF-8-inndata nå byte for byte som Latin-1 og skrives som UTF-16BE hex-strenger; de rå høye bytene lekket tidligere inn i en bokstavelig streng, noe som ikke er en lovlig PDF 1.7-tekststrengkoding
- Strømdekoding gjenkjenner nå rå deflate-data uten RFC 1950 zlib-innpakning (en vanlig defekt i ødelagte skrivere) og dekomprimerer den i rå modus, slik at samsvarskanninger ikke lenger er stille blinde på slike strømmer
Version 2.16.8
Rettet (Fixed)
- Inkrementelle oppdateringer skrevet av etterbehandlingsbanen oppdaterer nå det andre (endrende) trailer-
/ID-elementet som påkrevd av ISO 32000-1 §14.4; begge elementene ble tidligere kopiert ordrett, slik at buffer- og synkroniseringsverktøy så en uendret identifikator etter hver oppdatering
Version 2.16.7
Rettet (Fixed)
- Strømkropps-blankeringen som brukes av samsvarskanninger krever nå at
stream-nøkkelordet etterfølges av linjeskift (ISO 32000-1 §7.3.8.1); ordet inne i en bokstavelig streng som(downstream)blanket tidligere all etterfølgende struktur frem til nesteendstream, og skjulte reelle brudd for byte-nivåsjekker - PDF/X- og PDF/E-forbudte-funksjon-kanningene blanker i tillegg bokstavelige strenger og kommentarer (§7.2.2), slik at en verdi som
/Title (see /JavaScript docs)eller et kommentert token ikke lenger gir et falsktJavaScript-,AcroForm- ellerLZWDecode-funn
Version 2.16.6
Rettet (Fixed)
- PDF/VT DPM-oppføringer valideres nå ved skrivetidspunkt som dokumentert: nøkkelnavn som bryter NMTOKEN-regelen i ISO 16612-2 §6.6 eller registrant-prefiksregelen i vedlegg E, og duplikate navn, avvises i stedet for å skrives inn i DPart-ordboken — et navn med mellomrom ble tidligere delt i et falskt nøkkel/verdi-par og korrumperte ordboken
Version 2.16.5
Rettet (Fixed)
- Fjerning av en ordbokoppføring der verdien er en hex-streng (som
/Check <...>) fjerner nå hele oppføringen; injektorene etterlot tidligere en foreldreløs hex-verdi, noe som ga en syntaktisk ødelagt ordbok - Fjerning av en oppføring der den indirekte referansen bruker linjeskift mellom tokenene (ISO 32000-1 §7.3.10 tillater all mellomrom) etterlater ikke lenger generasjonsnummeret og
R-nøkkelordet
Version 2.16.4
Rettet (Fixed)
- Skanningen for maksimalt objektnummer krever ikke lenger at objektoverskrifter starter en linje (ISO 32000-1 §7.5.3 tillater mellomrom eller skilletegn foran dem), slik at injektorer ikke lenger kan tildele et objektnummer som kolliderer med en innebygd
N G obj-overskrift og stille korrumpere filen; objektnumre er begrenset av Annex C-taket - Strømmer hvis
/Lengther en indirekte referanse løser nå opp det refererte heltallsobjektet og bruker verdien når det samsvarer med det avsluttendeendstream; tidligere ble slike strømmer avgrenset av et mønster-søk, som trunkerte kropper som lovlig inneholdtendstream-bytesekvensen — typisk for innebygde PDF-vedlegg
Version 2.16.3
Rettet (Fixed)
- Strøm-kompresjonspasser sender kryssreferansestrøm-dokumenter (PDF 1.5+-filer uten klassisk
trailer-nøkkelord) gjennom uendret; gjenoppbyggingsbanen tolket tidligerestartxreffeil som tabellplasseringen og syntetiserte en gjettet trailer, noe som kunne produsere en fil som ikke kunne åpnes - Kompressoren hopper over XMP-metadatastrømmer slik at et PDF/A-dokument beholder sin obligatoriske ufiltrerte metadatastrøm (ISO 19005-1 §6.7.2), og lar eksterne filstrømmer (
/Fmed/FFilter) være uberørt - Den gjenoppbygde kryssreferansetabellen skanner en strøm-stripert kopi av dokumentet, slik at binært strøminnhold ikke lenger kan forfalske objektoverskrifter eller oppblåse tabellen; den gjenoppbygde trailerens
/Sizegjenspeiler nå den faktiske tabellen og objektnumre er begrenset av Annex C-taket - Lokalisering av den opprinnelige kryssreferansetabellen aksepterer CR-bare linjeavslutninger (ISO 32000-1 §7.5.1) og kan ikke lenger matche
xref-bokstavene inne istartxref; strømnøkkelordskanning fikk den sammeendstream-halevokt som brukes andre steder og går nå forbi hoppede strømkropper
Version 2.16.2
Rettet (Fixed)
- Heltallsparsing i de byte-nivå PDF-leserne aksepterer nå det eksplisitte
+-tegnet tillatt av ISO 32000-1 §7.3.3 og avviser sifferrekker som ville overflyte, slik at fiendtlige eller korrupte dokumenter ikke lenger kan pakke parsede lengder og forflytninger inn i villedende verdier
Version 2.16.1
Rettet (Fixed)
- PDF/UA-injektoren skriver katalog-
/Lang-verdien som en riktig PDF-tekststreng; den kjørte tidligere verdien gjennom XML-escaperen, slik at en språktag med&eller parenteser ga en korrumpert oppføring, og ikke-ASCII-inndata ble skrevet som rå UTF-8 - PDF/E
/ISO_PDFEVersionInfo-oppføringen bruker den delte tekststrengkoderen, noe som holder ikke-ASCII-verdier lovlige i PDF 1.7 - XML-escaping for XMP-pakker slipper kontrolltegn som er ulovlige i XML 1.0, slik at metadata kopiert fra et skadet kildedokument ikke lenger kan gjøre hele metadatastrømmen ikke-velformet
- PDF-til-XMP-datokonvertering validerer at datofelt er numeriske og polstrer et manglende minuttfelt, noe som forhindrer malformede ISO 8601-datoer i generert XMP; på ikke-Windows-plattformer inkluderer reservetidsstempelet nå tid på dagen i stedet for bare datoen
Version 2.16.0
Lagt til (Added)
- Strømdekoding rekonstruerer nå
/DecodeParms-prediktorer (PNG-prediktorer 10–15 og TIFF-prediktor 2, ISO 32000-1 §7.4.4.4) etter FlateDecode, med hensyn til/Colors,/BitsPerComponentog/Columns; objektstrømmer komprimert med en prediktor — et vanlig PDF 1.5+-skrivervalg — fremviste tidligere differensierte byte, slik at objektene de inneholder var stille usynlige for samsvarskanninger og markørinjeksjon
Rettet (Fixed)
- FlateDecode-deteksjonen parser nå
/Filter-verdien som et navn eller en array i stedet for en delstreng-matching, slik at kaskaderte filterkjeder og forekomster av ordet i urelaterte verdier ikke lenger utløser en falsk inflate; ikke-støttede kjeder faller tilbake til de rå bytene som tidligere
Version 2.15.1
Rettet (Fixed)
- Ordbokskanneren hopper nå over bokstavelige strenger, hex-strenger og kommentarer mens den balanserer
<</>>(ISO 32000-1 §7.2.2), slik at ordbøker med verdier som(A >> B)eller en hex-streng inntil det avsluttende skilletegnet ikke lenger trunkeres under trailer-, katalog- og samsvarskan-parsing - Uttrekking av bokstavelige strenger dekoder nå hele §7.3.4.2 Tabell 3-escape-settet —
\n \r \t \b \f, oktal\ddd, linjekontinuasjoner og normalisering av uescapede linjeskift — i stedet for å kopiere escape-bokstaven ordrett, noe som gjenoppretter korrekte/Producer-,/GTS_PDFXVersion- og/ISO_PDFEVersion-sammenligninger for skrivere som bruker oktale escape - Bokstavelige strenger skrevet av markørinjektorene escaper nå CR, LF og andre kontrolltegn slik at verdier overlever lesersidens linjeavslutningsnormalisering byte for byte
Version 2.15.0
Rettet (Fixed)
- Inkrementelle oppdateringer skrevet av PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/UA- og PDF/VT-markørinjektorene og av PAdES-signering og DSS-baner bevarer nå kildedokumentets permanente filidentifikator: det første trailer-
/ID-elementet overføres ordrett som påkrevd av ISO 32000-1 §14.4, og kun det andre (endrende) elementet oppdateres; tidligere ble begge elementene regenerert, slik at eksterne referanser og langsiktige valideringsarbeidsflyter så en annen dokumentidentitet etter hver lagring - PAdES-signaturer, DSS-injeksjon og B-LTA Document Time-stamps bærer nå kildetrailerens
/Info-referanse fremover (ISO 32000-1 §7.5.6), slik at dokumentegenskaper ikke lenger forsvinner fra leserpaneler etter signering; Document Time-stamp-traileren får også/ID-arrayen - Trailer-
/Info-reserveveien for kryssreferansestrøm-dokumenter lokaliserer nå XRef-strømordboken korrekt og bevarer referansens generasjonsnummer; den matchet tidligere aldri på konformerende PDF 1.5+-filer, noe som stille droppet/Info
Version 2.14.4
Rettet (Fixed)
- Signatururdbokens
/M-dato skrevet avTPdf.SignPadesogSignPadesBytesinneholder nå det obligatoriskeD:-prefikset ogZUTC-offset-markøren påkrevd av ISO 32000-1 §7.9.4; strenge validatorer avviste tidligere signeringstiden som en malformet datostreng
Version 2.14.3
Rettet (Fixed)
- Ordboksnøkkeloppslag i den delte PDF-leseren matcher nå hele navnetokener (ISO 32000-1 §7.3.5); tidligere ble en strøm hvis ordbok listet
/Length1før/Length(typisk for FontFile-strømmer) trunkert til feil byteantall, noe som stille blinde PDF/A-, PDF/UA- og andre samsvarskanninger som leser font-, CMap- eller metadatastrømmer /Encrypt-,/Root-,/Size- og/Info-traileroppslagene matcher ikke lenger lengre nøkler med samme prefiks (som/EncryptMetadata)- Utvidelse av objektstrømmer stoler ikke lenger på en korrupt eller fiendtlig
/N-verdi: ikke-heltallsverdier gir nå 0 i stedet for et uinitialisert tall, og en øvre grense avledet fra/Firstforhindrer overstorede allokeringer under skanning av malformede dokumenter
Version 2.14.2
Rettet (Fixed)
- PDF/X-, PDF/VT-, PDF/UA-, PDF/E- og PDF/R-markørinjektorene kopierer nå krypterte kildedokumenter gjennom uendret i stedet for å legge til klartekstoppdateringsavsnitt; den tidligere atferden produserte filer der den siste traileren mistet
/Encrypt-oppføringen (ISO 32000-1 §7.5.6), slik at konformerende lesere leste den krypterte kroppen som klartekst TPdf.SignPades,SignPadesBytesogInjectPadesDssMarkersutløser nåEPadesCryptonår kildedokumentet er kryptert, i stedet for å stille sende ut en korrumpert eller ubekreftbar fil; fjern kryptering før signering eller innbygging av DSS-materiale
Version 2.14.1
Rettet (Fixed)
TPdf.SignPadesogSignPadesBytesfyller nå tilbake alle fire/ByteRange-feltene i signaturordboken; tidligere ble de tre siste feltene stående som nullplassholdere, slik at produserte signaturer erklærte et tomt byteomfang og mislyktes i verifisering i konformerende validatorer- PAdES B-LTA Document Time-stamp-ordbøker mottar den samme
/ByteRange-tilbakefyllingskorreksjonen ValidatePadesComplianceaksepterer nå standard signaturoppsettet der byteomfangsgapet inneholder hex-/Contents-verdien, og kontrollerer at det andre omfangssegmentet slutter nøyaktig ved slutten av filen; tidligere var det kun gapfrie omfang som bestod dekksjekken
Version 2.14.0
Lagt til (Added)
TPdf.ExportXFDFserialiserer alle skjemafeltsverdier og merknader på tvers av alle sider til et XFDF-dokument (ISO 19444-1), og sender ut<fields>for hierarkiske skjemaverdier og<annots>for alle støttede merknadsundertyper (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact)TPdf.ImportXFDFleser et XFDF-dokument tilbake i den lastede PDF-filen, gjenskaper merknader på de matchende sidene og anvender feltverdier på sine widget-merknaderTPdfAnnotation-posten fikkName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), linjepunkter, polygon/polylinje-hjørner og ink-liste-gesturfelt slik at XFDF-rundturer bevarer full merknadsmetadata- Nytt
XfdfLab-eksempel i Delphi-, C++Builder- og Lazarus-demo-settene demonstrerer eksport/import-rundturen
Version 2.13.6
Rettet (Fixed)
ValidatePdfAbehandler nå katalog-/Metadata-strømmer uten/Type /Metadataeller/Subtype /XMLsom manglende XMP-metadata viapvaiMissingXmpMetadata- PDF/A-forhåndssjekksrapporter klassifiserer nå
pvaiMissingXmpMetadatasom Metadata og anbefaler en katalog-/Metadata-strøm med/Type /Metadata,/Subtype /XML, ufiltrert XMP ogpdfaid-markører
Version 2.13.5
Rettet (Fixed)
ValidatePdfArapporterer nå Widget-merknader uten en utseendeordbok og PDF/A-2 / PDF/A-3-merknader som krever men mangler/APviapvaiAnnotationApDictViolation- PDF/A-forhåndssjekksrapporter kategoriserer nå
pvaiAnnotationApDictViolationsom innhold som markørinjeksjon ikke kan reparere
Version 2.13.4
Rettet (Fixed)
ValidatePdfArapporterer nå PDF/A-2 og PDF/A-3 innebygde bilder hvis/I- eller/Interpolate-verdi ertrueviapvaiImageDictionaryViolation, noe som matcher eksisterende Image XObject-ordbokdekning- PDF/A-forhåndssjekksrapporter kategoriserer nå
pvaiImageDictionaryViolationsom innhold som markørinjeksjon ikke kan reparere
Version 2.13.3
Rettet (Fixed)
ValidatePdfArapporterer nå PDF/A-1 innebygde bilder som bruker/LZWDecode- eller forkortede/LZW-filtre inne i innholdsstrømmer viapvaiInlineImageLzwForbidden, noe som matcher eksisterende PDF/A-2 og PDF/A-3 innebygd-bilde-dekning- Den innebygde bildefilter-skanneren går nå forbi ledende ressursnavn som
/GS1, noe som unngår stopp under skanning av bredere PDF/A-1-innholdsstrømmer
Version 2.13.2
Lagt til (Added)
TPdf.SetFocusedFormFieldTextskriver tekst inn i det fokuserte skjemafeltets redigeringsbuffer viaFORM_ReplaceSelection, symmetrisk medFocusedFormFieldText. For AcroForm-tekst/kombinasjons-felt forpliktes verdien til/Vved fokusmistet og bevares; for XFA-tekstfelt lander skrivingen kun i in-memory-bufferen (PDFium eksponerer ingen offentlig API for å forene XFA-verdier tilbake til datasets-pakken, så den bevares ikke på tvers av lagringer)- JavaScript-vertsplattformen kobles nå til når V8-motoren er tilgjengelig, uavhengig av om dokumentet er XFA — slik at innebygd AcroForm JavaScript (doc-nivå-skript, feltberegninger,
app.alert) også kan kjøres. Tidligere blem_pJsPlatformkun koblet til for XFA-dokumenter, noe som lot AcroForm JS være stille deaktivert
Endret (Changed)
- JavaScript-plattformtilkobling er nå uavhengig av XFA-beslutningen i
InitializeFormFill—m_pJsPlatform-tabellen bygges opp nårV8FeaturesAvailableer true, brukt etter XFA-versjon/tilbakeringing-koblingen i stedet for nestet inne i den
Version 2.13.1
Lagt til (Added)
- Nye vertshendelser fremviser informasjon som v2.13.0 form-fill-tilbakekallingene tidligere svelget:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Hver hendelse standardiseres til eksisterende no-op-atferd når den ikke er tildelt, slik at eksisterende verter er upåvirket TPdf.XfaFormPacketsskrivebeskyttet egenskap returnerer et engangssnapshot av alle XFA-pakker (TXfaPacketList), og oppfyllerTXfaPacket/TXfaPacketList-typene som tidligere var erklært men ubrukt- XFA-spesifikke PDFium-feilkoder
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTer nå bundet og fremvises gjennomLastPdfError, og erstatter den generiske "Unknown error" for XFA-last-/layout-feil
Endret (Changed)
FFI_DoURIActionWithKeyboardModifierkonsulterer nåOnXfaUriActionfør den shell-kjører en URI fra et XFA-felt, og gir verten en veto (sikkerhet: et skadelig XFA-felt kunne tidligere starte vilkårlige URL-er betingelsesløst). Ikke-tilordnede behandlere bevarer den tidligereShellExecuteW-standardenDecodeFormFieldTyperuter nå XFA-felttyper gjennomIsXfaFormFieldi stedet for en eksplisitt 8-gren-case, og holder enum justert medFPDF_FORMFIELD_XFA_*ved ordinert forflytning
Rettet (Fixed)
ValidatePdfArapporterer nå PDF/A-1-krav som bruker PDF 1.5 kryssreferansestrømmer eller objektstrømmer med det nyepvaiPdfA1Pdf15Structure-problemet, mens det fortsatt tillater objektstrømmer for PDF/A-2 og PDF/A-3
Version 2.13.0
Lagt til (Added)
- Full XFA (XML Forms Architecture) kjøretidsstøtte:
TPdf.InitializeFormFillkobler nå alle 14 versjon-2FPDF_FORMFILLINFO-tilbakekallinger (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 knytter til enIPDF_JsPlatformslik at en XFA-aktivertpdfium.dllkan rendre og skripte dynamiske XFA-skjemaer - Ny
Lib\FPdfXfa.pas-enhet som erklærer XFA-konstantene (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) ogTXfaPacket/TXfaSaveFormat-typene som tidligere kun ble referert til i kommentarer - XFA statisk pakkeleser på
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplussGetXfaTemplate/GetXfaDatasets/GetXfaConfigtrekker ut XFAtemplate-,datasets- ogconfig-pakker som rå XML uten å trenge et XFA-aktivert kjøretidssystem — nyttig for samsvarsrevisjon og datamigrering - Kapasitetssondering: global
XfaFeaturesAvailable, og per-dokumentTPdf.XfaRuntimeAvailable(omFPDF_LoadXFAfaktisk lyktes) ogTPdf.XfaStaticReadable(om pakkelesereksportene løser seg) TPdfFormFieldTypeutvidet medfiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, medDecodeFormFieldTypesom mapper de nyeFPDF_FORMFIELD_XFA_*-verdiene- JavaScript-vertshendelser på
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrlogOnXfaRuntimeMissinglar verten tilpasse JS-dialoger og XFA-navigasjon, eller reagere når et XFA-dokument ikke kan kjøre motoren - Nytt
XfaLabDelphi-eksempel som demonstrerer XFA-deteksjon, pakkeuttrekk, kapasitetssonde og kjøretids-manglende reserveveien
Endret (Changed)
TPdf.LoadDocumentforhåndsskanner nå inndataene for XFA-markører (/XFAi AcroForm-ordboken, eller katalog-/NeedsRendering) og, når de finnes, auto-velgerpdfium.v8.dllved å setteEnableV8Engine := Truefør singleton-biblioteket lastes for første gang; når en vanligpdfium.dller lastet kan prosessen ikke bytte, såOnXfaRuntimeMissingsignaliserer det tilfelletTPdf.GetPageCountgjenspeiler nå sideantallet XFA-motoren rapporterer viaFFI_PageEventetter dynamisk ompaginering, i stedet for kun det statiske PDF-sidetreet- Når et XFA-dokument åpnes men kjøretidssystemet er utilgjengelig, setter
InitializeFormFillnåversion=1ogxfa_disabled=1i stedet for å be om versjon 2 med ikke-tilordnede tilbakekallinger, noe som tidligere risikerte en dårlig tilbakeringing-peker-dereference
Version 2.12.2
Rettet (Fixed)
ValidatePdfACompliancerapporterer nå brukte egendefinerte XMP-navnerom utenpdfaExtension:schemasmens den fortsatt aksepterer standardpdfaid-metadata uten utvidelsesdeklarasjoner- PDF/A-3 innebygd fil-validering krever nå både toppnivå-
/F- og/UF-oppføringer på filspesifikasjons-ordbøker og ignorerer nestede/EF-strømnøkler ved kontroll av disse navnene
Version 2.12.1
Rettet (Fixed)
ValidatePdfACompliancedekoder nå escapede PDF-navnetokener før matching av JavaScript, LZWDecode, Type1 og relaterte forbudte navn, slik at obfuskerte men semantisk identiske navn rapporteres korrekt- PDF/A inline-bilde-sjekker avviser nå
/Filter- og/F-verdier som bruker/LZWDecode, forkortede/LZWeller/Crypt, inkludert array- og escaped-navn-former - PDF/A-validering rapporterer nå metadatastrømmer med forbudte strømfiltre, OutputIntent ICC-profiler hvis
/N-komponentantall mangler eller er inkonsistent, og PDF/A-3 innebygde filspesifikasjoner med manglende eller ugyldig/AFRelationship
Version 2.12.0
Lagt til (Added)
- TSA HTTP-forespørsler setter nå eksplisitte 30 s tidsavbrudd for hver fase (resolve/connect/send/receive) via
WinHttpSetTimeouts, slik at en treg eller utilgjengelig tidsstempel-myndighet ikke kan henge signeringsprosessen på ubestemt tid i stedet for å stole på WinHttp sine implisitte standarder - Per-forespørsel nonce-derivasjon for PAdES B-T / B-LTA tidsstempel-forespørsler når den som kaller utelater
TPadesSignOptions.Nonce: en SHA-256-fold av monoton teller + veggklokke +GetTickCount64+ prosess-ID erstatter den tidligere faste$100000000-reserven, slik at to forespørsler utstedt i samme millisekund ikke lenger gjenbruker den samme anti-replay nonce PdfInflatebegrenser nå dekomprimert utdata til 256 MiB for å stoppe en zlib-komprimert strøm fra å tømme minnet på et fiendtlig eller korrupt inndata (en “zlib-bombe”); grensen er romslig for enhver reell PDF-strøm
Endret (Changed)
TPdfView-overlegg-blending (søkeutheving, tekstvalg, lesord, spredningsvalg) bruker ikke lenger per-pikselGetPixel/SetPixelV; rektangelet blandes nå gjennom et 32-bpp off-screenTBitmapogScanLinei ett pass, noe som eliminerer tusenvis av GDI-kjernekryssinger per tegning og gjør store valg responsiveFPdfAsn1.TDerReader.ReadIntegeravviser nå INTEGER-felt lengre enn 8 byte (og 8-byte negativer hvis fortegnbit ville kreveshl >= 64), og returnerer 0 i stedet for å beregne en feil verdi gjennom udefinert-skift-atferd på CMS/PAdES ASN.1-inndataParseTimeStampRespekkoer ikke lenger forespørsels-nonce tilbake somTPadesTimestamp.Nonce; inntil TSTInfo-traverseren som verifiserer den returnerte nonce lander, forblir feltet 0 for å signalisere “ikke verifisert” i stedet for å gi kallere falsk tillit til at tidsstempelsvaret er ferskt
Rettet (Fixed)
PointsToPixelsreturnerte inndataene uendret for alle DPI: divisoren varPointsPerInch(72-konstanten) i stedet for det bokstavelige 72, noe som kollapset formelen tilResult := Points. Enhver ekstern kaller som utfører punkt-→enhets-piksel-størrelse via denne hjelperen får nå den korrektePoints × PixelsPerInch / 72PdfMaxObjNumundertalte på dokumenter som bruker objektstrømmer (PDF 1.5+ ObjStm): objekter komprimert inne i en/ObjStmbærer ingenN 0 obj-markør, så rå-byte-skanningen gikk glipp av dem, og injektorer som allokererMaxObj+1for nye objekter ville kollidere med skjulte ObjStm-medlemmer og stille korrumpere filen. Skanningen utvider nå objektstrømmer først slik at alle objektnumre er synligeInjectPdfAMarkersforfalker ikke lenger et PDF/A-samsvars-krav på et kryptert dokument: PDF/A (ISO 19005-1 §7.1) forbyr kryptering, og injektoren kopierte tidligere kilden gjennom med markørene selv om den meget neste validering ville avvise den. NårHasEncrypter satt, sendes kilden nå gjennom uendret. Den normaleTPdf.SaveAsPdfA-banen fjerner allerede kryptering (saRemoveSecurity) før injeksjon, så dette påvirker kun direkte kallerePdfReadStreamBytesnekter nå en/Lengthstørre enn hele filen før resultbufferen allokeres, noe som lukker en tidlig allokeringsbane på en korrupt eller fiendtlig indirekte lengde
Version 2.11.0
Lagt til (Added)
- PDFium
FPDF_FILEHANDLER-posten erklærer nå sine seks tilbakekallinger (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) som ekte felt i stedet for kommentarer, i samsvar med C-overskriftsoppsettet. XFA FFI-filtransfer-tilbakekallingene (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL) som returnerer eller forbrukerPFPDF_FILEHANDLERer fortsatt uimplementert i Pascal form-fill-laget, men typen er nå strukturelt korrekt for enhver fremtidig XFA submit/upload-bane - PDFium-bibliotekslasting og -lossing (
LoadLibrary/UnloadLibrary) serialiseres nå av en prosess-global kritisk seksjon, slik at toTPdfFuture<T>-arbeidstråder (eller en arbeider som løper mot hovedtråden) ikke begge kan observerePDFiumLibrary=0og dobbel-binde, eller frigjøre DLL-en mens en annen tråd er midt i binding - En
initialization/finalization-seksjon kaller nåUnloadLibraryved enhetslossing, noe som sikrer atFPDF_DestroyLibrarykjører (arbeidstråd-join, V8-isolat-avhending, font/cache-nedrivning) i stedet for å stole på at OS-et gjenvinner DLL-en
Endret (Changed)
TPdf.SetActivesvelger nå ethvert unntak under lasting (tidligere kunEPdfError), slik at en strømfeil eller tilgangsbrudd under skjema/side-oppsett etterlaterActive=Falsei stedet for en delvis-lastet komponent med ubestemt tilstand- Konsistent tegnkoding for PDFium-metadatanøkkelargumenter:
TPdf.GetMetaTextbruker nå den samme FPCAnsiString/ DelphiUTF8Encode-delingen somGetViewerPreferenceog lastbanene, i stedet for et bareAnsiString(Tag)-kast - Dedupliserte
BytesToAnsi-,AnsiToBytes-,WriteBytes- ogWriteStr-hjelperne:FPdfCompressimporterer dem nå fraFPdfPdfCommon(densWriteBytesToStream/WriteAnsiToStream-aliaser er pensjonert) og den overflødige tre-argumentsBytesToAnsi-overlastingen iFPdfPdfaer fjernet.FPdfAsn1beholder sin lokale kopi ved design for å holde kryptografiplaget fri for samsvarslagets enhet
Rettet (Fixed)
- Ressurslekkasje i
TPdf.LoadDocument(fil, minne,TBytes,TMemoryStream, egendefinert strøm) ogTPdf.CreateDocument: hvisInitializeFormFillellerReloadPageutløste etter atFPDF_LoadDocument/FPDF_CreateNewDocumentlyktes, ble det nativeFPDF_DOCUMENT-håndtaket lekket fordiFActivefortsatt var False på det tidspunktet. Hver bane pakker nå post-last-oppsettet itry/exceptog lukker dokumentet ved feil, noe som lar komponenten være rent inaktiv - Mer brukervennlig PDFium DLL-lastdiagnostikk:
CheckLoadLibraryoppdagerERROR_BAD_EXE_FORMAT(193) og rapporterer et 32/64-bits arkitektur-misforhold som peker på den matchendeDLLs/Win32- ellerDLLs/Win64-bygget, i stedet for kun å videresende den generiske OS-feilen.CheckGetProcAddressangir nå at den distribuertepdfium.dller eldre enn bindingen når en nødvendig eksport mangler, i stedet for den bare OS-teksten "procedure not found"
Version 2.10.1
Fikset (Fixed)
- PAdES SignerInfo sid-standardisering: signeridentifikatoren bruker nå RFC 5652 §5.3
issuerAndSerialNumber-formen (issuer Name + serialNumber, begge trukket ut ordrett fra underskriver Sertifikatets DER), som erstatter den tidligere ikke-standardisertesubjectKeyIdentifier+ full-cert SHA-256-plassholderen som Adobe Acrobat og andre samsvarende validatorer avviste. En ny TbsCertificate DER-gjennomganger (ExtractIssuerAndSerial) leser issuer SEQUENCE og serial INTEGER som rå TLV-bytes — serienumre overskrider ofteInt64-området, så rå TLV er obligatorisk.subjectKeyIdentifier-formen gjenstår kun som et fallback når cert DER-parsing feiler
Endret (Changed)
TCmsSignerId.SerialNumber: Int64er erstattet medSerialDer: TBytes(den rå serialNumber TLV). CMS-byggeren bygger inn den oppdelte TLV-en ordrett iIssuerAndSerialNumber, og unngårInt64-overflow på 20-byte CA-serienumre (RFC 5280 §4.1.2.2 øvre grense)
Version 2.10.0
Lagt til (Added)
- PAdES B-LT langtidsvalidering: når
TPadesSignOptions.Level >= plB_LT, leggerSignPadesBytestil en inkrementell oppdatering som bærer en/DSS-ordbok med underskriver sertifikatet og den fulle mellomliggende kjeden (det selvsignerte root utelukkes i henhold til RFC 5652 §10.2.3), pluss/Extensions /ESICLevel 1-markøren (EN 319 142-1 §5.4.2) - PAdES B-LTA arkiv-tidsstempel: når
Level >= plB_LTAogTsaUrler satt, legges en Document Time-stamp signaturordbok (/SubFilter /ETSI.RFC3161) til, hvis/ByteRangedekker hele filen; ESIC-markøren forfremmes til Level 2. Dette fullfører de fire PAdES baseline-nivåene (B-B, B-T, B-LT, B-LTA) - Sertifikatkjede-innsamling:
ResolveWinSignerkaller nåCertGetCertificateChainog fyller utTPadesResolvedSigner.ChainCertDermed de mellomliggende CA-sertifikatene, slik at B-LT/DSS /Certsbærer hvert sertifikat som trengs for å validere signaturen uten eksterne oppslag.CertFreeCertificateContexter nå bundet, noe som lukker lekkasjen med én kontekst per underskrift bemerket i v2.8.0 - PDF/A-integrasjonsarbeidsflyt:
TPdf.SignPadesWithPdfAkonverterer dokumentet til PDF/A først (det høyeste nivået biblioteket sender ut i dag) og anvender deretter den forespurte PAdES-signaturen — det langtidsarkiv-beholdermønsteret EN 319 142-1 Annex A.7 anbefaler
Version 2.9.0
Lagt til (Added)
- PAdES B-T tiltrodd tidsstempel:
TPadesSignOptionsfår felteneLevel,TsaUrlogNonce. NårLevel >= plB_TogTsaUrler satt, trekkerSignPadesBytesut signaturverdien fra den bygde CMS, ber om et RFC 3161-tidsstempel over den, og bygger inn det returnerte TimeStampToken som SignerInfo usignert attributtsignature-time-stamp— B-T-trinnet for tiltrodd tid (EN 319 142-1 §6.3 req o) FPdfTsa: plattformuavhengig RFC 3161-klient —BuildTimeStampReq(versjon 1, SHA-256 messageImprint over signaturverdien, nonce, certReq=true),ParseTimeStampResp(aksepterer PKIStatus 0/1, avviser 2+, trekker ut TimeStampToken ContentInfo ordrett), ogRequestTimestamp(one-shot bygge+POST+tolke).PadesTsaAvailablestyrer funksjonen på plattformer uten en HTTP-backendFPdfTsaWin: Windows WinHttp-backend, dynamisk bundet fra winhttp.dll (null nye kompileringstidsavhengigheter; HTTPS forhandles av Windows' sertifikatlager). SpeilerFPdfCryptoWin-mønsteret for dynamisk bindingFPdfCms:ExtractSignatureValuegår gjennom en bygget CMS for å hente tilbake de rå signatur-oktettene (TSA-hash-inndata), ogAddSignatureTimestampToCmsbygger opp ContentInfo på nytt med en nyunsignedAttrs [1](0xA1) som bærer tidsstempel-attributten. Fase-1-validatoren gjenkjenner resultatet som en B-T-signatur
Version 2.8.0
Lagt til (Added)
- PAdES B-B-signaturstak: fire nye pure-Pascal/plattformuavhengige byggeklosser (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) pluss en Windows CNG-backend (FPdfCryptoWin) larTPdf.SignPades/SignPadesToStreamprodusere en PAdES B-B-signatur ende-til-ende. Underskriver sertifikatet løses ved SHA-1-fingeravtrykk fra Current User “MY”-lageret; RSA-PSS (anbefalt), RSA PKCS#1 v1.5 og ECDSA støttes alle viaNCryptSignHash FPdfSha256: selvstendig FIPS 180-4 SHA-256 (Init/Update/Final + one-shot-hjelpere). FPC 3.2.2 leveres uten en SHA-2-enhet, så biblioteket eier en for å holde hver CMS-kodestil på en enkeltTSHA256Digest-type uten RTL-greningFPdfAsn1: DER-encoder (TDerWriter) og -leser (TDerReader) som dekker SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontekstspesifikke tags, med den bestemt-lengde-kodingen og IMPLICIT-tag-håndteringen CMS kreverFPdfCms: CAdES SignedData-bygger (BuildSignedData) som sender ut de content-type-, message-digest- og signing-certificate-v2-signerte attributtene PAdES baseline påbyder, med valgfri signing-time og commitment-type-indication. SignedAttrs-digest beregnes over den SET-taggede (0x31) formen og sendes ut på nytt med IMPLICIT [0] (0xA0)-taggen i henhold til RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: kryptografisk-backend-abstraksjon medPadesCryptoAvailable/ResolvePadesSigner, og Windows-implementeringen som binder crypt32.dll / ncrypt.dll dynamisk (ingen ny kompileringstids-DLL-avhengighet). ECDSA-signaturer re-kodes fra Windows IEEE P1363 r¦s-formen til DENECDSA-Sig-Value-formen CMS kreverSignPadesBytes: byte-nivå signaturinjeksjon — reserverer en fast-bredde/Contents-hex-slot, beregner den dekkende/ByteRange, fordøyer dokumentet, bygger og bygger inn CMS, og legger til den inkrementelle oppdateringen. Validatoren (v2.7.0) gjenkjenner utdataene som en PAdES B-B-signatur
Version 2.7.0
Lagt til (Added)
- PAdES strukturell validator (ETSI EN 319 142-1 V1.2.1): den nye
FPdfPades-enheten ogTPdf.ValidatePades-metoden inspiserer signaturverdi-ordbøker som kan nås fra/ByteRange, går gjennom CMSSignedDatainne i/Contentslangt nok til å bekrefte CAdES-detached-formen, og oppdager de fire baseline-nivåene (B-B, B-T, B-LT, B-LTA) pluss Document Time-stamp-ordbøker (/SubFilter /ETSI.RFC3161) - PAdES klausulnivå-problemsett: 26
ppei*-enums dekker/SubFilter-akseptabilitet (adbe.pkcs7.sha1ogadbe.x509.rsa_sha1flagget som forbudt),/ByteRange-fildekning,/Cert-forbud, CMSSignedData-form (enkel underskriver, detached eContent, versjonsområde), de påkrevde signerte attributtene (content-type,message-digest,signing-certificate/v2), forbudte digest-er (MD5, SHA-1),/Reasonvscommitment-type-indicationgjensidig utelukkelse (req d), B-T-kravet om tiltrodd 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/SaveAsPadesDssToStreamlegger til en inkrementell oppdatering som bærer en/DSS-ordbok (med/Certs-,/OCSPs-,/CRLs-strøm-arrays) og/Extensions /ESIC-markøren (Level 1 eller 2) på en kopi av dokumentet, og bevarer de opprinnelige bytene — B-LT/B-LTA-valideringsmateriale-innbyggingssteget (klausul 5.4.2) - Plattformuavhengig, nullavhengig fase: validatoren og injektoren er pure-Pascal og fungerer på alle støttede IDE-er (Delphi, Lazarus, FPC, C++Builder); ingen kryptografisk backend kreves for denne utgivelsen, og ingen ny DLL-avhengighet introduseres
Version 2.6.0
Endret (Changed)
- Kryss-standard deduplisering: syv flere dupliserte hjelpefunksjoner (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) er fjernet fra de enkelte standardenhetene og konsolidert i
FPdfPdfCommon, noe som reduserer ~300 linjers copy-paste-vedlikeholdsbyrde - PreflightReport-kvalitet: PDF/X- og PDF/E-innholdsklasse-problemer som tidligere falt gjennom til den generelle “missing marker”-kategorien, har nå nøyaktige Content/Metadata/Security-kategorier og klausulspesifikke anbefalinger (~15 enums på tvers av begge standarder)
- PDF/E- og PDF/R-testdekning: seks flere enums med null dekning har fått positive tester (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Lazarus-byggefiks:
Tests.PdfVT(en Delphi-only DUnitX-enhet lagt til i v2.5.x) er nå utelatt fra Lazarus-prosjektet for å gjenopprette kompilering
Version 2.5.3
Lagt til (Added)
- OutputIntent-fullstendighet (PDF/X-4 §6.2.4):
pvviOutputIntentSchemeflagger en OutputIntent hvis/Sikke er/GTS_PDFX;pvviOutputIntentMissingIdentifierflagger en manglende/OutputConditionIdentifier - PDF/VT-2 Reference XObject-fritak (§6.2.2):
pvviReferenceXObjectForbiddenutløses ikke lenger for enPDF/VT-2-fil, som lovlig kan bruke Reference XObjects på en X-5g/5pg-base - MIME-grensetegn-validering (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharflagger en grense hvis tegn faller utenfor bchars-settet, eller hvis lengden overskrider 70
Fikset (Fixed)
InjectPdfVTMarkersskriver nå Info/CreationDateog/ModDatefra lagringsvalgene, slik at den produserte filen rundturerValidatePdfVTComplianceuten en falskpvviInfoModDateMismatch(injektoren skrev tidligere om XMP-datoene, men etterlot Info-ordbokens datoer foreldet)
Version 2.5.2
Lagt til (Added)
- Info
/ModDate-konsistens (§6.3 NOTE 2, PDF/X-4-base):pvviInfoModDateMismatchflagger en Info-ordbok/ModDatesom, etter PDF-dato-til-XMP-dato-normalisering, ikke er likxmp:ModifyDate - PDF/VT-2s inline chunk-overensstemmelse (Annex A.2): MIME-validatoren kjører nå
ValidatePdfVTCompliancepå hver inlineapplication/pdf-del og flagger en ikke-PDF/VT-kropp viavtmviInlinePdfNotPdfVT
Version 2.5.1
Lagt til (Added)
- DParts-chunking-validering (ISO 16612-2 §6.5 Tabell 4):
pvviDPartsBadChunkingflagger et/DParts-array hvis ikke-endelige underarrays ikke har nøyaktig 8192 oppføringer, eller hvis det siste underarrayet faller utenfor 1..8192 - RecordLevel-kryss-strøm-konsistens (Annex A.2): PDF/VT-2s MIME-validatoren trekker nå ut hver inline PDFs
/RecordLevelog flagger uenighet viavtmviRecordLevelMismatch, noe som utfyller den eksisterende NodeNameList-kontrollen - Gjentakende grafisk objekt-hints (§6.7):
pvviGtsScopeInvalidValueflagger en/GTS_Scopeutenfor {SingleUse, Record, File, Stream, Global, Unknown};pvviGtsScopeRecordWithoutRecordLevelflagger/Recorduten en/RecordLevel;pvviGtsXidNotUuidflagger en/GTS_XIDsom ikke er en RFC 4122 uuid: URI;pvviGtsEnvMissingflagger en manglende/GTS_Envnår/GTS_Scopeer Stream eller Global (§6.7.4) - MIME-forward-referanse-deteksjon (Annex A.2):
vtmviForwardReferenceflagger en inline PDF som siterer et filnavn (via/EF /F) som ikke er introdusert av en tidligere vedleggsdel i strømmen
Fikset (Fixed)
ExtractNodeNameListFromPdfogExtractRecordLevelFromPdfiFPdfPdfvtMimeløste en gjentakende off-by-one der den 1-baserte forskyvningen returnert avAnsiFindKeyble behandlet som en absolutt byte-forskyvning inn i den utvidede PDF-en
Version 2.5.0
Lagt til (Added)
- PDF/VT Document Part Metadata (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionsfikkDpmEntriesogDpmTarget, slik at en forfatter kan legge ved en/DPM-ordbok til den syntetiserte DPart-noden, med nøkkelnavn-validering mot Annex E second-class-prefix-regelen og §6.6 NMTOKEN- / unikhets- /GTS_Managed-form-reglene på validatorsiden - PDF/VT-2s strømmeutveksling (Annex A): den nye
FPdfPdfvtMime-enheten tilbyrBuildPdfVT2sStreamogValidatePdfVT2sStreamformultipart/mixed-MIME-konvolutten som bærer inline PDF/VT-chunks pluss vedlagte ICC-profiler, medX-PDFVT-Stream-version: 1-header-rekkeføleregelen og kryss-strømNodeNameList-konsistenskontroll TPdf.ValidatePdfVTutfører nå en autoritativ JavaScript-action-telling viaFPDFDoc_GetJavaScriptActionCount, noe som utfyller byte-nivå/JavaScript-navneskanningen
Fikset (Fixed)
- PDF/VT
Trapped-korrekthet på PDF/X-4-basen:ptvUnknown-enumverdien er fjernet (PDF/X-4 forbyr/Unknown),ptvUnspecifiednormaliseres til/Falseved skrivetid (en manglende/Trappeder også forbudt), og et nyttpvviTrappedInvalid-problem flagger en fraværende ellerUnknown-verdi ValidatePdfVTComplianceutvider nå objektstrømmer (PdfExpandObjectStreams) før skanning, slik at en katalog-, OutputIntent- eller Metadata-ordbok lagret inne i en komprimert ObjStm (PDF 1.5+, typisk for PDF/X-4-produsenter) kan nås av byte-nivå-oppslag
Endret (Changed)
- PDF/VT-1 arver nå de fulle PDF/X-4-innholdsforbudene:
pvviAcroFormForbidden(/AcroFormeller/XFA),pvviAdditionalActionsForbidden(katalog/AA),pvviMissingTrimBoxogpvviReferenceXObjectForbidden(Reference XObject, kun X-5g/5pg) - Kryss-standard deduplisering:
BuildDictObj,IccComponentCount, den innebygde sRGB ICC-profilen (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumogPdfExpandObjectStreamsble forfremmet fra tredoblede lokale kopier iFPdfPdfa/FPdfPdfx/FPdfPdfvttil en enkelt kanonisk hjem iFPdfPdfCommon; den 3144-byte ICC-literale finnes nå nøyaktig én gang i kodebasen
Version 2.4.0
Fikset (Fixed)
InjectPdfUaMarkersdropper ikke lenger traileren sin/Info-referanse på en kryssreferansestrøm-base (cross-reference-stream): den lokalSourceTrailerInfoRef(som manglet xref-stream-fallback) har blitt erstattet av den deltePdfSourceTrailerInfoRef(hentet fra PDF/A-kopien som har hatt fallback siden v2.0.0)- Den delte
PdfReadStreamByteshåndterer nå indirekte/Length N G R-referanser (portert fra den lokale PDF/A-kopien), slik at PDF/VT-, PDF/R- og PDF/E-validatorene ikke lenger feilleser eller hopper over XMP-metadatastrømmer opprettet av verktøy som bruker indirekte Length (Acrobat, Ghostscript)
Endret (Changed)
- Kryss-standard deduplisering: de lokale
PdfReadTrailer-kopiene iFPdfPdfaogFPdfPdfx, de lokaleSourceTrailerInfoRef-kopiene iFPdfPdfaogFPdfPdfua, og den lokalePdfReadStreamBytesiFPdfPdfahar alle blitt slettet — de delteFPdfPdfCommon-versjonene gjelder nå overalt, noe som fjerner omtrent ~330 linjer med duplisert kode og eliminerer vedlikeholdsbyrden med å holde kopier synkronisert - PDF/X testdekning-forbedring: syv innholdsklasse-enums med tidligere null dekning har fått positive tester (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Endret (Changed)
- PDF/A testdekning-forbedring fortsetter: ytterligere tre enums med null dekning har fått positive tester;
pvaiForbiddenRenderingIntent(§6.2.9) flagger et ikke-standard rendering-intent-navn i en innholdsstrøm;pvaiJpeg2000Violation(§6.2.2) flagger et JPXDecode-bilde med/NumComponentsutenfor {1,3,4} ved Part 2;pvaiInlineImageLzwForbidden(§6.1.10) flagger et innebygd bilde som bruker LZW-filteret ved Part 2
Version 2.2.0
Endret (Changed)
- Regresjonstester for kryssreferansestrøm: den eksisterende
Validate_XrefStreamTrailer_DetectsConformanceverifiserer nå også at katalogreferansen/Metadatablir løst og at XMP-enpdfaid:partleses på en xref-stream-base (ikke bare/Root+/ID) — en nyInjectPdfA_XrefStreamBase_RoundTrips-test beskytter injektorens xref-stream-bane som ble lagt til i v2.0.0, og to tverrstandardtester (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) verifiserer at PDF/E- og PDF/R-validatorer ikke lenger avviser xref-stream-PDF-er som utolkbare - Lukking av PDF/A-testgjeld:
Validate_MinimalPdf_FlagsRequiredMarkersbekrefter at en helt minimal PDF utløserpvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataogpvaiMissingXmpDates— noe som lukker symmetrigapet mot PDF/E- og PDF/X-validatorer som allerede hadde tilsvarende tester, og ytterligere to enumer med null dekning har fått positive tester:pvaiUnembeddedFontogpvaiSubsetMissingCidSet
Version 2.1.0
Rettet (Fixed)
- PDF/E ble ved en feiltakelse utelatt fra rettelsen for kryssreferansestrøm i v2.0.0: både
InjectPdfEMarkersogValidatePdfECompliancekalte fremdelesPdfReadTrailerutenAcceptXrefStream, slik at PDF/E-injektoren feilet i det stille på PDF 1.5+-utdata (pdfiums standardinnstilling forSaveAsCopy), og begge kallstedene sender nåTrue - Det delte fallback-alternativet for kryssreferansestrøm i
PdfReadTrailerhar nå/Type /XRef-vakten som de lokale kopiene for PDF/A og PDF/X allerede hadde, slik at en korruptstartxref-forskyvning som peker på en urelatert ordbok feiler rent i stedet for å bli feiltolket som traileren - Den indirekte referanse-resolveren for
/LangiValidatePdfUaCompliance(v2.0.0) var utilgjengelig:PdfFindObjDictfinner bare<<-ordbøker, mens et/Lang-strengobjekt er(...)eller<...>uten noen ordbok, og ble erstattet med en direkte skanning av objektkroppen som lokaliserer streng-tokenet
Endret (Changed)
- Syv ubrukte skygge-duplikater (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj) som var byte-identiske kopier av de delte versjonene i
FPdfPdfCommon, har blitt fjernet fraFPdfPdfaogFPdfPdfua— de delte versjonene gjelder nå overalt viauses
Version 2.0.0
Rettet (Fixed)
- Stille feil på tvers av standarder: den delte hjelpefunksjonen
PdfReadTrailer(brukt av PDF/UA-, PDF/X-, PDF/VT- og PDF/R-markørinjektorer og -validatorer) godtar nå enAcceptXrefStream-parameter og faller tilbake til kryssreferansestrømmens objektordbok når ingentrailer-nøkkelord er til stede (PDF 1.5+), der utdata fra pdfiumsSaveAsCopy(som bruker en kryssreferansestrøm) tidligere førte til at hver markørinjektor feilet i det stille — kildebytene ble kopiert uendret og kallet returnerte likevel suksess, mens PDF/R-1.0-validatoren (hvis PDF 2.0-base alltid er en kryssreferansestrøm) i praksis var en no-op, og den modne implementasjonen av PDF/A-validatoren ble portert til den delte hjelpefunksjonen slik at alle standarder drar nytte av den - Skanning av trailer-ordbøker i
InjectPdfUaMarkersogInjectPdfAMarkersbruker nå den dybdebevisstePdfDictEndi stedet for et enkelt søk etter>>, slik at en trailer som inneholder en nestet ordbok (f.eks./Encrypt << ... >>) ikke lenger blir avbrutt for tidlig før en etterfølgende/Info-oppføring
Endret (Changed)
TPdf.ValidatePdfUaundertrykker nå den grovepvuaiFontNotEmbeddedpå byte-nivå når den presise Pdfium-objektmodellenpvuaiPdfiumFontNotEmbeddedallerede har blitt utløst, slik at forhåndskontrollrapporten ikke lenger inneholder to nesten identiske “embed your fonts”-rader for den samme feilenpvuaiLangInvalidFormat(§7.2) løser nå opp en indirekte referanse/Lang(N 0 R) til dens strengobjekt og validerer innholdet, slik at en indirekte referert språktagg ikke lenger er en blindsone
Version 1.99.0
Rettet
pvuaiLangInvalidFormat(§7.2) gir ikke lenger heksadesimalt kodede/Lang-strenger fritak: UTF-16BE-par (med enFE FFBOM) og rene ASCII-heksadesimalstrenger blir nå dekodet og kjørt gjennom den samme BCP 47-grammatikkontrollen som litterale(...)-strenger, slik at en feilaktig heksadesimal/Langblir fanget opp, mens en samsvarende (f.eks. en UTF-16BEen-US) ikke lenger risikerer å bli flagget
Endret
pvuaiFontMissingToUnicode(§7.21.7) fritar nå/MacExpertEncodingi tillegg til/WinAnsiEncodingog/MacRomanEncoding, noe som samsvarer med de fire unntaksbetingelsene klausulen lister opp
Version 1.98.0
Lagt til
pvuaiNeedAppearancesTrue(§7.18.4) flagger en AcroForm der flagget/NeedAppearanceser true, slik at widget-utseendet ikke låses pålitelig og hjelpeteknologi ikke kan knytte dem til strukturtreet, portert fra PDF/A-valideringen og begrenset av tilstedeværelsen av/AcroFormfor å redusere skanneoverflaten
Endret
- veraPDF-korpusregresjon: koblet pass+fail-paret for §7.20 Reference-XObject og pass+fail-parene for §7.21.4.2 subset CharSet/CIDSet inn i
Live_Corpus_ValidatePdfUaMatchesConformance, der pass-prøvene for §7.21.7 ToUnicode-forbidden-value og §7.18.6.2 media-clip også ble koblet som vakt mot falske positive (fail-prøvene deres bruker ordbokoppsett som byte-skanningen ikke fanger opp, så bare pass-siden er koblet) - Korpusets pass-sti-assert-liste fikk 15 nye vakter mot falske positive, slik at hver aktive
pvuai*byte- og strukturkontroll nå testes mot samsvarende prøver (tidligere var bare ~30 av de 60 aktive problemene dekket), derpvuaiLangInvalidFormat-vakten ble bevisst utelatt fordi byte-kontrollen flagger heksadesimalt kodede/Lang-strenger den ikke kan dekode konservativt
Version 1.97.0
Rettet
- Herding av
ValidatePdfUaStructureElements: foreldrekjedegjennomgangen forEnclosingTablehar nå en hoppteller (begrenset av antall elementer), slik at en feilaktigParentIndex-syklus på en syntetisk strukturelement-tabell ikke lenger kan henge kaller, og minneallokeringen for marked-content-ID iValidatePdfUaPageContentTagginger nå begrenset til maksimalt én million oppføringer for å forhindre en allokering på flere gigabyte ved en feilaktig eller ondsinnetMarkedContentID
Endret
- Dokumentasjonskommentaren for
pvuaiOrderedListMissingListNumbering-enumen beskriver nå nøyaktig hva kontrollen gjør: den flagger etL-element der verdien forListNumberinger utenfor settet i ISO 32000-1 Tabell 347 (et manglende attributt flagges ikke), mens den tidligere kommentaren antydet at den også oppdaget ordnede lister som manglet attributtet, noe implementasjonen ikke gjør - De to
7.21.3.3-t02-fail-korpusprøvene for WMode-uoverensstemmelse er nå koblet inn iLive_Corpus_ValidatePdfUaMatchesConformance— siden v1.95.0 er CMap-strømmen FlateDecode-dekomprimert, slik at sammenligningen mellom ordbok og innhold nå kjører på en lesbar side, og den foreldede kommentaren “not wired” er fjernet
Version 1.96.0
Lagt til
- Konsistens på tvers av standarder:
TPdf.ValidatePdfUafår to kontroller portert fra PDF/A-valideringen, derpvuaiAnnotationFlagsViolation(§7.18.1) flagger en ikke-fritatt annotering som har flagget Hidden / Invisible / NoView, noe som forstyrrer leseflyten for hjelpeteknologi, ogpvuaiActionTargetMissing(§7.18.5) flagger en GoToR / URI / SubmitForm-handling som mangler den påkrevde målnøkkelen (/F+/D, /URI, /F), noe som gjør koblingen ubrukelig for hjelpeteknologi
Rettet
- Sammenslåing av strukturtaksering over flere sider: akkumuleringsløkken
AllElemsiTPdf.ValidatePdfUarebaserer nå hvert elementsParentIndexfra den side-lokale tabellen til den sammenslåtte tabellen, da barneelementene på side 2 uten dette beholdt en side-lokal indeks som pekte inn i segmentet for side 1, noe som stille korrumperte alle ParentIndex-avhengige kontroller (tabell/listestruktur, §7.4.4 H-barnantall, EnclosingTable) - RoleMap-tolking:
PdfReadRoleMapPairsavbryter ikke lenger hele nøkkel/verdi-skanningen når en verdi er en indirekte referanse (N 0 R) eller en array ([...]) — begge gyldige former for RoleMap i henhold til ISO 32000-1 14.8.5.1, men hopper nå bare over den oppføringen (Continue) i stedet forBreak, noe som eliminerer falske positive forpvuaiRoleMapUnresolvedpå typer kartlagt etter en indirekte- eller array-oppføring
Endret
FPdfPreflightReport: 18 aktiveTPdfUaValidationIssue-verdier som tidligere falt inn under sekkekategorien for manglende markør og tilhørende anbefaling, har nå nøyaktige kategorier (Structure / Content / Metadata / Security) og klausulspesifikke anbefalinger, og rettet skrivefeilenpuaNone / pua1→pucNone / puc1iPDFSpecComplianceMatrix.md
Version 1.95.0
Endret
- Gjennomgang av pålitelighet for
TPdf.ValidatePdfUa: kontrollenpvuaiCMapWModeMismatch(§7.21.3.3) og kontrollenpvuaiToUnicodeForbiddenValue(§7.21.7) dekomprimerer nåFlateDecode-komprimerte CMap / ToUnicode-strømmer før skanning (tidligere ble bare ukomprimerte strømmer vurdert, som var en kjent falsk negativ), og de delte hjelpefunksjonenePdfInflate/PdfReadAndDecodeStreamble flyttet fraFPdfPdfa/FPdfPdfxtilFPdfPdfCommonslik at alle samsvarsenheter deler samme kode
Lagt til
pvuaiSubsetCharSetEmpty(§7.21.4.2) flagger en Type 1 subset-FontDescriptorsom inneholder en/CharSet-nøkkel der strengverdien er tom — den eksisterendepvuaiSubsetMissingCharSetfanget bare opp manglende nøkkel, og en tom/CIDSetflagges ikke, da en skrift uten CIDs legitimt kan ha et tomt punktgrafikkbilde
Version 1.94.0
Lagt til
- Andre revisjon av
TPdf.ValidatePdfUalukket seks hull i ISO 14289-1 avdekket av en gjennomgang klausul for klausul, samt skanning av eksisterende Pdfium-API-er som er pakket inn men ubrukt i PDF/UA-stien, derpvuaiHeadingFormatInvalid(§7.4.3) flagger brukerdefinerte overskrifter som starter med H, men inneholder separatorer, mellomrom eller romertall i stedet for bare arabiske tall,pvuaiMissingDocumentOutline(§7.17, bør) flagger et flersidig dokument som mangler disposisjon (ensidige dokumenter er unntatt),pvuaiStructElementLangInvalid(§7.2) flagger et strukturelements/Lang-verdi som ikke er en gyldig BCP 47-tagg,pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) flagger et Widget-strukturelement som mangler attributteieren PrintField,pvuaiLinkNotInStructureTree(§7.18.5) flagger et dokument der/Subtype /Link-annoteringer ikke er eksponert som Link-strukturelementer, ogpvuaiPdfiumAnnotationMissingContentssamtpvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) legger til en nøyaktig annoteringsskanning via Pdfium-objektmodellen som fritar skjulte annoteringer, annoteringer utenfor crop-box, Popup og Widget — noe som eliminerer falske positive fra byte-heuristikken som ikke kan lese/F-flaggene eller/Rect
Version 1.93.0
Lagt til
TPdf.ValidatePdfUalegger nå til et lag med Pdfium-objektmodellskanning på toppen av byte-kontrollen, noe som gjenspeiler arkitekturen fra PDF/A-valideringen: den går gjennom tekstobjektene på hver side viaFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) og skanner hvert tegn viaFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) ogFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — som er mer presist enn byte-heuristikkene som bare utløses når ingen fontprogrammer finnes eller ingen/ToUnicodeoppgis i det hele tatt, der gjennomgangen avbrytes på tre nivåer: sideløkken avsluttes når alle tre Pdfium-problemer er satt, objektløkken avsluttes ved første ikke-innebygde skrift, og tegnskanningen hopper over.notdef-sjekken nårUnicodeMapErrorallerede har inntruffet, og PDF/UA var den siste PDF-standardvalideringen som manglet et Pdfium-objektmodell-lag
Version 1.92.0
Lagt til
- Opprettet
Tests.PdfR— den første testfilen for PDF/R-1-valideringen (FPdfPdfr), som dekker overskriftsvalidering, forbud mot ObjStm, deteksjon av rastermarkører og en feilfri filbeskyttelse mot falske positive, der alle de seks testpakkene for PDF-standarder nå har dedikerte testfiler: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = totalt 212 tester
Version 1.91.0
Lagt til
ValidatePdfEogValidatePdfVThar fått innholdsnivåkontroller som tidligere bare var tilgjengelige i PDF/A-, PDF/UA- og PDF/X-valideringene:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(kun PDF/E),pveiEmbeddedFilesForbidden(kun PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden, derTPdf.ValidatePdfEogTPdf.ValidatePdfVTdessuten får et Pdfium-objektmodell-lag (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded) som går gjennom tekstobjektene på siden viaFPDFFont_GetIsEmbeddedog avbryter ved første ikke-innebygde skrift
Version 1.90.0
Lagt til
TPdf.ValidatePdfXlegger nå til et lag med Pdfium-objektmodellskanning på toppen av byte-kontrollen: den går gjennom tekstobjektene på hver side viaFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedog rapporterer en ikke-innebygd skrift sompvxiPdfiumFontNotEmbedded— noe som er mer presist enn byte-heuristikken som bare utløses når ingen fontprogrammer er til stede, og denne gjennomgangen avbrytes ved første ikke-innebygde skrift som blir funnet
Endret
- Gjennomgang av strukturtreet i
TPdf.ValidatePdfUa: kallet tilValidatePdfUaPageContentTaggingper side (som bygger et marked-content-ID-kart og kryssjekker hvert tekst/bildeobjekt) hoppes nå over på påfølgende sider nårpvuaiUntaggedContentallerede er funnet — strukturelementer samles fortsatt inn for kontroller på tvers av sider (Note unique ID, heading sequence), men den ressurskrevende innholdstaggingskontrollen per side stopper tidlig
Version 1.89.0
Endret
- Ytelse for Pdfium-objektmodell-laget i
TPdf.ValidatePdfA: gjennomgangen av sider/objekter avbrytes nå på tre nivåer — sideløkken avsluttes når alle relevante Pdfium-problemer allerede er funnet, objektløkken avsluttes når begge objektproblemene (skriftinnbygging + transparens) er satt, og tegnskanningen hopper over.notdef-sjekken nårUnicodeMapErrorallerede har inntruffet, der API-tilgjengelighetskontroller forAssigned()og samsvarsflagg bufres til lokale boolske verdier én gang før løkken i stedet for å evalueres på nytt for hver side/objekt/tegn, slik at gjennomgangen på et stort ikke-samsvarende dokument nå kan stoppe etter første side i stedet for å skanne alle, og på et samsvarende dokument er tidsbruken per side lavere da gjentatte kall tilAssignedunngås
Version 1.88.0
Lagt til
ValidatePdfXfikk åtte nyeTPdfXValidationIssue-verdier på innholdsnivå som dekker restriksjoner for utskriftsutveksling som PDF/X pålegger utover filformatmarkørene:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(ingen/TrimBoxpå noen side) ogpvxiTrappedNotSet(/Trappedmangler eller er/Unknown), der PDF/X-valideringen tidligere bare sjekket XMP/OutputIntent-markører, så dette er dens første innholdsnivåkontroll, og de delte hjelpefunksjonenePdfStructureBytes/PdfHasName/PdfCountNameble lagt til iFPdfPdfCommonslik at alle samsvarsenheter kan bruke dem
Version 1.87.0
Lagt til
- PDF/UA-validering dekker nå ISO 14289-1 §7.21.3 sammensatte skriftregler:
pvuaiCidSystemInfoMismatchflagger Type0-skrifter der den innebygde CMap og CIDFont-descendanten er uenige omRegistry/Ordering, eller der CIDFont-en sittSupplementoverstiger CMap-ens,pvuaiCMapNotEmbeddedflagger CMaps som refereres ved navn (somEncodingellerUseCMap) og ikke er forhåndsdefinerte CMaps fra ISO 32000-1 Tabell 118, ogpvuaiCMapWModeMismatchflagger innebygde CMaps der ordbok-WModeavviker fra WMode i strømmens innhold
Rettet
- §7.21.3.2-kontrollen
pvuaiCidFontMissingCidToGidMapgikk glipp av CIDFontType2-ordbøker der nøkkel/verdi-paretSubtypeer atskilt av et linjeskift, og flagger nå dessuten enCIDToGIDMap-navneverdi som ikke erIdentity
Version 1.86.0
Lagt til
- PDF/UA-validering dekker nå ISO 14289-1 §7.21.6 TrueType-kodingregler:
pvuaiTrueTypeEncodingInvalidflagger ikke-symbolske TrueType-skrifter derEncodingmangler eller verken erMacRomanEncodingellerWinAnsiEncoding(direkte eller viaBaseEncoding), ogpvuaiSymbolicTrueTypeEncodingflagger symbolske TrueType-skrifter som bærer et ikke-standardEncoding-navn
Version 1.85.1
Endret
- ISO 14289-1 §7.18.3 tabulatorrekkefølge-kontrollen
pvuaiMissingTabsOrderkjøres nå per side: enhver side som inneholder annoteringer, må deklarere/Tabs /Si sin egen sideordbok, slik at en samsvarende søskenside ikke lenger skjuler en side uten
Version 1.85.0
Lagt til
- PDF/UA-validering skiller nå mellom dynamiske og statiske XFA-skjemaer etter ISO 14289-1 §7.15:
pvuaiXfaDynamicflagger skjemaer der XFA-konfigurasjonen setterdynamicRendertilrequired
Endret
- Det tidligere generelle XFA-kandidatflagget
pvuaiXfaPresenter avviklet og utløses ikke lenger (statisk XFA samsvarer med §7.15); enum-verdien beholdes for API-kompatibilitet
Version 1.84.0
Lagt til
- PDF/UA-validering oppdager nå utagget reelt innhold som kreves av ISO 14289-1 §7.1:
pvuaiUntaggedContentflagger gjengitte tekst- og bildeobjekter som verken er tilknyttet sidens strukturtre (via sine marked-content-ID-er) eller merket som Artifact - Nye side-nivå-hjelpere
GetPageContentMarkInfosogValidatePdfUaPageContentTaggingmedTPdfPageContentMarkInfo-posten for direkte bruk
Version 1.83.0
Lagt til
- PDF/UA-validering håndhever nå ISO 14289-1 §7.4.4 overskriftsmodellen:
pvuaiHeadingModelMixedflagger dokumenter som blander den generiskeH-taggen med nummererteH1..Hn-overskrifter, ogpvuaiHeadingMultipleInNodeflagger strukturnoder som bærer mer enn én barn-H-overskrift
Version 1.82.0
Lagt til
- PDF/UA-validering løser nå opp RoleMap som kreves av ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardflagger RoleMap-oppføringer som omdefinerer en standard strukturtype, ogpvuaiRoleMapUnresolvedflagger brukte ikke-standard strukturtyper hvis RoleMap-kjede er manglende, dinglende eller syklisk — indirekte kjeder som når en standard type, godtas, og ubrukte RoleMap-oppføringer dømmes aldri - Nye hjelpere
PdfUaIsStandardStructType,PdfReadRoleMapPairs(med PDF-navn#hh-escape-dekoding) ogValidatePdfUaRoleMapUsagefor direkte bruk
Version 1.81.0
Lagt til
- PDF/UA-validering dekker nå ISO 32000-1 listetagging som kreves av ISO 14289-1 §7.6:
pvuaiListStructureInvalidflagger LI-elementer utenfor en L-beholder og Lbl/LBody-deler utenfor et LI-element, og aksepterer nestede lister og den legitime Lbl-bruken inne i Note- og BibEntry-elementer
Version 1.80.0
Lagt til
- PDF/UA-validering dekker nå ISO 32000-1 tabelltagging som kreves av ISO 14289-1 §7.5:
pvuaiTableStructureInvalidflagger TH/TD-celler utenfor en TR-rad og rader eller radgrupper utenfor sin Tabell-beholder,pvuaiTableHeaderMissingScopeflagger overskriftsceller hvis relasjon ikke kan bestemmes verken via et Scope-attributt eller en Headers/ID-tilknytning, ogpvuaiTableHeadersUndefinedIdflagger Headers-referanser i dokumenter som ikke definerer noen strukturelement-ID-er TPdfStructureElementeksponerer tabellattributteneScope,HasHeaders,HeadersIds,ColSpanogRowSpan, løst under strukturtre-vandringen
Endret
- Strukturtre-vandringen leser nå alle layout- og tabellattributter i ett enkelt pass over hvert elements attributtordbøker i stedet for ett søk per attributt
Version 1.79.1
Lagt til
- Portert
AnnotationsLab-eksemplet til Lazarus og C++Builder, som nå slutter seg til det eksisterende Delphi-konsolleksemplet
Feilrettinger
TPdf.CreateAnnotationkunne utløse “Cannot set attachment points” for markup-annotasjoner som bruker firepunktskoordinater (Highlight, Underline, StrikeOut, Squiggly) fordi den nye annotasjonen foreløpig ikke hadde noe spor å erstatte; den legger nå til det første firepunktskoordinatet i stedet
Version 1.79.0
Lagt til
- Nytt
AnnotationsLabDelphi-konsolleksempel: oppretter Text-, Highlight-, Square- og Circle-annotasjoner, skriver dem til en PDF, laster deretter filen på nytt og lister opp sidens annotasjonsliste
Version 1.78.0
Lagt til
- Nye
TPdf.MeasureTextogTPdf.MeasureTextWidth: måler den tegnede bredden og høyden av en tekststreng for en gitt skrifttype og størrelse (PDF brukerenheter, 1 enhet = 1/72 tomme) uten å legge til innhold på en side, noe som muliggjør oppsett og orddelingslogikk på toppen avAddText; levert av den frittståendeFPdfMeasure-enheten som en klasse-hjelper - Ny
TPdf.WrapText: grådig ordbryting bygget påMeasureTextWidthsom deler tekst på mellomrom og pakker ord inn i linjer som ikke er bredere enn en gitt bredde (PDF brukerenheter); et for langt enkeltord får sin egen linje (ingen orddeling innad i ord), og returnerer de brutte linjene som en matrise
Version 1.77.0
Lagt til
ValidatePdfAfikk tre nyeTPdfAValidationIssue-verdier som dekker klausuler tidligere vurdert som “NO” eller “reader behaviour” av den tidligere gapanalysen (vedlagte ordenstall, eksisterende verdier uendret):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — et tegn som løses til Unicode 0 uten en kartleggingsfeil, kjøretidssymptomet på en.notdef-glyfreferanse; oppdaget via Pdfium objektmodell-laget),pvaiWordBreakMissing(Nivå A 6.8.3.2 — en content-stream visningsstreng lengre enn 20 tegn uten mellomrom, et sannsynlig brudd på sammenslåtte ord; grov heuristikk som unngår CJK-falske positiver), ogpvaiLinkActionMissingTarget(6.6.3 — en GoToR/URI/SubmitForm-handling mangler sin visningsmålnøkkel slik at en leser ikke kan presentere den)
Version 1.76.0
Lagt til (Added)
ValidatePdfAfikk tre nyeTPdfAValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier uendret):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 — et/BaseFont- eller/FontName-token som inneholder byte ≥ 0x80 som ikke utgjør gyldig UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — et innebygd bilde i en sides innholdsstrøm bruker LZW- eller Crypt-filteret) ogpvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — en ikke-symbolsk TrueType-skrift der Encoding-ordboken inneholder/Differences)
Version 1.75.0
Lagt til (Added)
ValidatePdfAhar fått tre nyeTPdfAValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier uendret):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — et numerisk token som overskrider grensen for en 32-biters signert integer på 2 147 483 647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — en/BM-verdi utenfor ISO 32000-1 §11.3.5-standardens blend-mode-sett; utfyller PDF/A-1pvaiTransparentColorSpacesom kun tillater Normal/Compatible), ogpvaiHexStringOddDigits(6.1.6 — en<...>heksadesimal streng med et odde antall heksadesimale sifre)
Version 1.74.0
Lagt til (Added)
ValidatePdfAhar fått tre nyeTPdfAValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier uendret):pvaiPermissionsViolation(6.1.12 — en/Perms-ordbok (dictionary) som inneholder/DigestLocation,/DigestMethodeller/DigestValuei tillegg til/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — en Trans overgangshandling, oppdaget via mønsteret/S /Transaction-dict for å unngå feilaktig matching av/Transparency), ogpvaiPdfiumObjectTransparency(PDF/A-1 6.4 — et sideobjekt inneholder reell transparens i henhold tilFPDFPageObj_HasTransparency, som utvider Pdfiums objektmodellag introdusert i v1.73.0 for å fange opp effekter av blend-mode/soft-mask som søk på bytenivå etter navn kan gå glipp av)
Version 1.73.0
Lagt til (Added)
TPdf.ValidatePdfAlegger nå et Pdfium objektmodellag på toppen av inspeksjonen på bytenivå: den går gjennom tekstobjektene på hver side viaFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedog rapporterer en ikke-innbakt rendret skrift sompvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4), og laster hver tekstside for å skanneFPDFText_HasUnicodeMapErrorog rapporterer en ødelagt Unicode-kartlegging sompvaiPdfiumUnicodeMapError(6.3.8). Dette er kontroller som inspektøren på bytenivå ikke kan gjøre — den ser kun navnesymboler (name tokens), ikke oppløste skrifthåndtak (font handles) eller tilstander for tilordning av individuelle tegn — og er slått sammen med resultatet på bytenivå. Den frittstående funksjonenValidatePdfACompliancepå bytenivå er uendret
Version 1.72.0
Lagt til (Added)
ValidatePdfAhar fått fem nyeTPdfAValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier uendret):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalogen (catalog) skal ikke inneholde/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — en OutputIntent skal ikke inneholde/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — en filspesifikasjon med/EFskal også inneholde/UF),pvaiXmpPacketBytesAttr(6.7.5 — XMP-pakkeheaderen skal ikke inneholde den avviklede attributtenbytes=ellerencoding=), ogpvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — annoteringens/FToggleNoView-bit, verdi 512, er forbudt)
Version 1.71.0
Endret
ValidatePdfUautløser nåpvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): strukturtre-vandreren løser oppListNumberinglayout-attributtet på hvertLelement via Pdfium-attributt-API-et og flagger enhver verdi utenfor ISO 32000-1 Tabell 347-settet (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Et fraværende attributt blir ikke flagget, ettersom listen kan være uordnet; dette lukker det siste gjenværende ISO 14289-1-avviket som ble registrert på slutten av runde 5
Version 1.70.0
Lagt til
ValidatePdfUafikk fire nyeTPdfUaValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — et CID-delsettFontDescriptorskal deklarere/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — et ToUnicode CMap skal ikke tilordne noen kode tilU+FEFFellerU+FFFE; ukomprimerte strømmer skannes for<FEFF>/<FFFE>-utdataformatene),pvuaiLangInvalidFormat(7.2 —/Langskal være en gyldig RFC 1766 / BCP 47-tag; en tillatende grammatikk akseptereren,en-US,zh-Hans,es-419og flagger klart ikke-samsvarende verdier), ogpvuaiOrderedListMissingListNumbering(7.6 — beholdt for API-kompletthet; ennå ikke utløst av validatoren fordi pålitelig skille mellom ordnede og uordnede lister kreverListNumberingattributtverdien, som strukturtre-vandreren ikke eksponerer)
Version 1.69.0
Lagt til
ValidatePdfUafikk to nyeTPdfUaValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — et Widget-strukturelement skal nøstes i etForm-element; strukturtre-vandreren verifiserer nå den direkte foreldertypen til hver Widget) ogpvuaiSubsetMissingCharSet(7.21.4.2 — et Type 1-delsettFontDescriptorskal deklarere/CharSet, identifisert av det seks-bokstavs+-delsett-navneprefikset på/FontName)
Version 1.68.0
Lagt til
ValidatePdfUafikk to nyeTPdfUaValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — en URI-handlingsordbok skal ikke bære/IsMapmed verdientrue, siden den deaktiverer det tilgjengelige lenkemålet) ogpvuaiHeadingSequenceViolation(7.4.2 — nummererte overskrifter skal starte påH1og en synkende sekvens skal ikke hoppe over et mellomliggende nivå, f.eks.H1→H3er et brudd). Overskriftskontrollen er den første PDF/UA-regelen på strukturtre-nivå i validatoren:ValidatePdfUaStructureElementsgår nå gjennom den typede elementlisten og verifisererH1…H6-sekvensen (ogH7+ifølge 7.4.3) i dokumentrekkefølge
Version 1.67.0
Lagt til
ValidatePdfUafikk fem nyeTPdfUaValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — en Link-annotering skal bære en alternativ beskrivelse via/Contents),pvuaiAnnotationMissingContents(7.18.1 — enhver ikke-unntatt annotering uten/Contentsskal ha en alternativ beskrivelse; Popup og Widget er unntatt),pvuaiEmbeddedFileMissingName(7.11 — en filspesifikasjonsordbok skal inneholde/Fog/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — en dataklipp-ordbok for medier skal inneholde/CTog/Alt), ogpvuaiCidFontMissingCidToGidMap(7.21.3.2 — en innebygd Type 2 CIDFont skal inneholde/CIDToGIDMap)
Version 1.66.0
Lagt til
ValidatePdfUafikk fem nyeTPdfUaValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvuaiRoleMapMissing(ISO 14289-1 7.1 — et tagget dokument med ikke-standard strukturtyper skal bære et/RoleMap),pvuaiOptionalContentAsKey(7.10 — en konfigurasjonsordbok for valgfritt innhold skal ikke bære/AS-autotilstandsnøkkelen),pvuaiXfaPresent(7.15 — tilstedeværelse av AcroForm/XFAflagges siden dynamisk XFA er forbudt),pvuaiTrapNetAnnotation(7.18.2 —/TrapNet-annoteringer er forbudt), ogpvuaiReferenceXObject(7.20 — Reference XObjects, nøklet fra/Ref-markøren, er forbudt)
Fikset
ValidatePdfUagir ikke lenger falske positiver forpvuaiEncryptionPresentpå hver kryptert fil: PDF/UA tillater kryptering så lenge krypteringsordboken sin/P-nøkkel har bitposisjon 10 (verdi 1024) satt, som gir tilgang for hjelpeteknologi (7.16). Det nøyaktige bruddet rapporteres nå via den nyepvuaiEncryptionPBitMissing;pvuaiEncryptionPresentbeholdes i enum for API-kompatibilitet, men utløses ikke lenger av byte-nivå-validatoren
Version 1.65.0
Lagt til
ValidatePdfAfikk fem nyeTPdfAValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — en innebygd Type 2 CIDFont skal bære/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — et Type 1-delsettFontDescriptorskal bære/CharSet),pvaiSubsetMissingCidSet(6.3.5 — et CID-delsettFontDescriptorskal bære/CIDSet),pvaiWidgetActionForbidden(6.6.1 — en Widget-annotering skal ikke bære/Aeller/AA), ogpvaiOptionalContentAsKey(ISO 19005-2 6.9 — en konfigurasjonsordbok for valgfritt innhold skal ikke bære/AS-autotilstandsnøkkelen, nylig relevant fordi PDF/A-2 tillater valgfritt innhold)
Version 1.64.0
Lagt til
ValidatePdfAfikk åtte nyeTPdfAValidationIssue-verdier (tilføyde ordenstall, eksisterende verdier er uendret):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 —%PDF-x.y-overskriften må etterfølges av en%-kommentar med minst fire byte større enn 127),pvaiExternalStreamRef(6.1.7 — en strømordbok skal ikke bære/F,/FFiltereller/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntent/Sskal være/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDateskal også vises somxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — Nivå A krever/MarkInfomed/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — annoteringens/AP-ordbok skal kun inneholde/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Vedlegg E.2 — hver tilknyttede filspesifikasjon skal bære/AFRelationship), ogpvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — et JPEG2000-bilde skal deklarere 1, 3 eller 4 komponenter)
Fikset
ValidatePdfAgir ikke lenger falske positiver forpvaiAnnotationFlagsViolationpå dokumenter som bruker et en-bokstavs skrifttype-ressursnavn som/Font << /F 5 0 R >>;/F-flaggskanningen er nå begrenset til en annoteringskontekst (/Subtypeav en annoteringstype), som samsvarer med den dokumenterte atferden (6.5.3)ValidatePdfArapporterer nå PDF/A-3-kravet til tilknyttede filer per fil: et dokument blir kun flagget når en innebygd/Type /Filespecsom refererer til en innebygd strøm via/EFmangler/AFRelationship, i stedet for den tidligere 'noen eller ingen'-kontrollen for hele dokumentet (ISO 19005-3 Vedlegg E.2)- La til den utfasede
/SetState-handlingen i settet med forbudte handlinger sammen med/SetOCGState, slik at handlingsnavnet fra PDF-referansen fanges opp direkte (6.6.1)
Version 1.63.0
Lagt til (Lagt til)
- La til
TPdf.MeasureTextogTPdf.MeasureTextWidth: måler gjengitt bredde og høyde for tekst med angitt skrifttype og størrelse uten å legge til innhold på siden (i PDF-brukerenheter, 1 enhet = 1/72 tomme), noe som muliggjør layoutberegninger og automatisk linjebryting overAddText; levert av den selvstendige enhetenFPdfMeasuresom class helper
Endret (Endret)
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFogDemo\Lazarus\MergePDFforbedret for alle tre IDE-er: områdevalg per fil, valgfri utdatasti, deduplicering, kjøreblogg, avbryt-knapp og sammendrag for sammenslåing; bokmerker og metadata importeres fra første kildeCreatePDF-demoer for alle tre IDE-er inneholder nå et europeisk tekst-alternativ for å skrive aksenter på tsjekkisk, fransk, tysk, spansk, portugisisk, polsk og tyrkisk for å verifisere skrifttypevalg og Unicode-behandling (tidligereEuropeanText-eksempel er integrert)- Fjernet eksemplene
ExtractTextPagesogEuropeanText: side-for-side-tekstutvinning iExtractTextPagesdekkes nå av område- og sideseparatoralternativene iExtractText; flerspråklig gjengivelse avEuropeanTexter integrert iCreatePDF
Version 1.62.2
Rettet (Fikset)
- Regenererte C++Builder-headerne (
.hpp) for hver RAD Studio-versjon og plattform (Win32/Win64/Win64x); de hadde kommet ut av takt med Pascal-kildene og etterlot foreldede funksjonssignaturer og manglende units som nådde C++Builder-brukere gjennom kildedistribusjonen
Version 1.62.1
Rettet (Fikset)
- Gjenopprettet kildekompilering i RAD Studio 12 Athens og tidligere: en
TArray<Byte>-tildeling i PDF/UA-valideringsstien brukte en implicit array-konvertering som bare finnes i Delphi 13, og som ikke kompilerte i eldre IDE-er
Version 1.62.0
Lagt til (Lagt til)
TPdf.RenderPageThumbnailrenderer en hvilken som helst side etter indeks til et bitmap tilpasset sideforholdet uten å endre dokumentets gjeldende side, innlastede side eller utløseOnPageChange
Rettet (Fikset)
TPdfThumbnailViewstyrer ikke lenger vertsdokumentetsPageNumberunder tegning; tidligere lastet hver nytegning sidene på nytt, utløsteOnPageChangeog forkastet tekstsiden, noe som kunne forstyrre en tilkobletTPdfViewog utløse nytegningssløyfer. Miniatyrbilder rendres nå viaRenderPageThumbnailuten slike bivirkninger- PDF/X-samsvarsvalidering inspiserer nå dokumenter med cross-reference streams (PDF 1.6, typisk for PDF/X-4) og objekter lagret i komprimerte object streams, i stedet for å rapportere slike filer samlet som ikke-samsvarende; markøren
GTS_PDFXVersionleses både fra elementform og RDF-attributtform i XMP - PDF/R-validering rapporterer nå
pvriInfoXmpMismatchnår Info dictionary og XMP er uenige om Producer eller Creator; problemet var tidligere deklarert, men ble aldri rapportert - Form-fill-timere spores per forespørsel, slik at et dokument som kjører flere timere samtidig (for eksempel et JavaScript interval sammen med blinkingen i field caret), beholder dem alle i stedet for å miste alle bortsett fra den nyeste
TPdfView-tegning og de offentlige metodeneRenderPage/RenderTileholder nå dokumentets renderlås og serialiserer mot worker-thread-rendering av sammeTPdf(PDFium er ikke thread-safe)- Ikke-ASCII-tekst skrevet til PDF/X-, PDF/R- og PDF/VT-metadata (OutputIntent-betingelsesnavn, Creator, Producer) kodes nå som en UTF-16BE-streng etter ISO 32000-1 §7.9.2.2 i stedet for rå UTF-8, som samsvarende lesere ville tolke feil
- Samsvarshjelpere leser embedded metadata streams der
/Lengther en indirect reference korrekt, laster kildebyte medReadBuffer(slik at en kort lesing feiler rent) og avviser en negativstartxref-offset i stedet for å risikere lesing utenfor området
Version 1.61.0
Endret (Endret)
- Rettelser i FFI/ABI-deklarasjoner som kan kreve rekompilering av kode som implementerte de berørte callbackene: form-fill-callbacken
FFI_OpenFilehar nåcdecl(Win32 stack convention), og parameterenvalueiFPDFAnnot_SetStringValueogFPDFAttachment_SetStringValueer nåFPDF_WIDESTRING(UTF-16LE), slik at den samsvarer med PDFium-headerne - Progressive-load-callbackene
FX_FILEAVAIL.IsDataAvailogFX_DOWNLOADHINTS.AddSegmenttar nåsize_t-offsets, ogsize_thar pointer-bredde på Free Pascal / Lazarus Win64 (tidligere avkortet til 32-bit), noe som retter data-availability ogoutsize_tAPI-kall på FPC Win64
Rettet (Fikset)
- Minnesikkerhet: use-after-free av form-fill-timeren ved ødeleggelse av en
TPdfmed aktiv AcroForm-caret; et dobbeltFPDF_CloseDocumenti feilstien tilImportNPagesToOne; Pascal-unntak som slapp ut gjennomFPDF_FILEWRITE/FPDF_FILEACCESS-callbackene over C-grensen under lagring og JPEG-innsetting; og integer overflow i tekstuttrekk ved lesing fra en startindeks til slutten av siden TPdfFuture<T>leverer nå resultat-callbacken sin pålitelig; svaret ble tidligere nesten alltid mistet (og kunne berøre en frigitt thread) fordi workeren frigjorde seg selv før det kølagte svaret kjørte- PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/VT- og PDF/UA-output skriver nå cross-reference entries som er nøyaktig 20 bytes, slik ISO 32000-1 §7.5.4 krever
- Innsetting av standards marker ødelegger ikke lenger en dictionary når den fjernede nøkkelen (for eksempel
/Trapped) var siste entry; tidligere slukte dette avsluttende>>og produserte et malformed object - OutputIntent ICC profile streams deklarerer nå nødvendig
/N-component count for PDF/X og PDF/VT (allerede til stede for PDF/A); krypterte kildedokumenter dekrypteres før PDF/X-, PDF/E-, PDF/R-, PDF/VT- og PDF/UA-markører injiseres, slik at output er gyldig i stedet for stille korrupt - UTF-8 xpacket BOM i generert XMP sendes nå som eksakte bytes, noe som retter korrupt data på Delphi-installasjoner der ANSI code page ikke er Latin-1; incremental-update-trailere beholder nå dokumentets
/Info-referanse SaveAsmed komprimering avkorter ikke lenger streams der/Lengther en indirekte referanse, og gjenoppbygde cross-reference tables bruker nå 20-byte entries, ekte generation numbers og fjerner den foreldede/Prev-pointeren- Conformance validation leser attribute-form XMP version markers for PDF/E og PDF/X (slik at attribute-serialised PDF/X-4-filer gjenkjennes), krever den eksakte
PDF/E-1-identifikatoren, leser metadata streams med indirect-/Lengthkorrekt og false-matcher ikke lenger en structure elements/ID- eller/StructTreeRoot-nøkkel når PDF/UA-traileren kontrolleres; en malformedstartxref-offset gir ikke lenger range error TPdfThumbnailView: siste side kan nå nås med rullefeltet, vertsdokumentets gjeldende side gjenopprettes etter at miniatyrer er tegnet, og standard mouse-leave-håndtering sendes igjen- Gråtone-bitmaps for sider og bilder renderes ikke lenger med feil palette;
TPdfViewblir ikke lenger stående med en dangling reference når detsTPdffrigjøres først - Preflight-rapporter: HTML lagres som UTF-8 for å samsvare med deklarert charset, og JSON string escaping produserer korrekte
\u-sekvenser for ikke-ASCII-tegn på Free Pascal - Trial builds: trial-påminnelsesdialogen vises nå i stedet for å bli undertrykt før den rakk å vises
TPdfStreamAdapteravviser nå streams større enn 4 GiB med en tydelig feil i stedet for å avkorte lengden som sendes til PDFium i det stille
Version 1.60.1
Endret (Endret)
- AccessibilityReader-demoene for Delphi, Lazarus og C++Builder kjører nå høytlesing på
TPdfReadingSession: hver side settes sammen til én opplest blokk medBuildSpokenTextFromWords, SAPI-ordposisjoner mates inn iFeedSpokenPosition, og sesjonen går videre mellom sider og styrer visningens ordmarkør, noe som erstatter den håndskrevne orkestreringen hver demo tidligere hadde - Karaokesporing på ordnivå i demoene fungerer nå også når NVDA er talemotoren:
EstimatePacingstyrer lesemarkøren etter medgått taletid, der NVDA tidligere leste høyt uten ordsporing i det hele tatt - Pause og Resume i demoene fungerer nå også med NVDA:
ResumeRestartsChunkleser opp gjeldende side på nytt fra starten ved Resume, mens SAPI beholder sin innebygde pause og gjenopptakelse
Version 1.60.0
Lagt til (Lagt til)
- Direkte lavsynsrendering i
TPdfView: de nye rendringsvalgenereInvertogreNightDuotonefargelegger hver rendret sideflis på nytt (full fargeinvertering eller en nattlig duotonepalett) før overleggene for søk, markering, lesing og ordmarkør tegnes, og bringer de eksisterende bitmap-fargetransformasjonene inn i den interaktive visningen for både enkeltside- og oppslagoppsett; når valgene slås av eller på, tegnes visningen umiddelbart på nytt NightDuotoneInkogNightDuotonePaperkonfigurerer nattpaletten, som som standard bruker ravfarget tekst på en svart side;reInverthar forrang når begge valgene er satt
Version 1.59.0
Lagt til (Lagt til)
TPdfReadingSession: en høytlesingsorkestreringskomponent som er uavhengig av talemotor. Den holder blokkmarkøren, ordmarkøren og avspillingstilstanden (Play/PlayFrom/Pause/Resume/Stop), går gjennom de innlastedeTPdfSpokenText-blokkene etter hvert som verten rapporterer motoren som ledig viaTick, oversetter offseter i opplest tekst tilbake til sidetegn og styrer automatisk ordmarkøren i en tilkobletTPdfView; verten kobler til valgfri talemotor viaOnSpeakog hendelsene for cancel / pause / resume-forespørsler, slik at biblioteket ikke lenker noe tale-API selvFeedSpokenPositiontar imot ordposisjoner fra motoren (for eksempel SAPIStatus.InputWordPosition);EstimatePacingsammen medEstimatedWordsPerMinutestyrer motorer uten posisjonssignal;ResumeRestartsChunkleser opp den gjeldende blokken på nytt for motorer uten innebygd pauseOnChunkChange,OnWordChangeogOnFinishedutløses bare ved reelle endringer, og en frigitt tilkoblet visning kobler seg automatisk fra, slik at vertskoden holder seg uten flimring og uten krasj
Version 1.58.0
Lagt til (Lagt til)
EstimateSpokenWordIndexestimerer hvilket ord en talemotor uttaler ut fra medgått tid og en ord-per-minutt-rate, gir lengre ord proporsjonalt mer tid, slik at motorer som ikke rapporterer ordposisjon (som NVDA controller client) likevel kan drive lesemarkøren på ordnivå; kalleren leverer den medgåtte tiden, slik at rutinen forblir klokkeuavhengig og enhetstestbar
Version 1.57.0
Lagt til (Lagt til)
- Sammensetting av opplest tekst med todomenekartlegging for høytlesingssporing:
BuildSpokenTextFromWordsogSpokenTextAppendbygger strengen som sendes til en tekst-til-tale-motor fra ordblokker på siden samtidig som de registrerer en span-tabell, ogSpokenToPageCharoversetter en motorrapportert opplest offset (for eksempel SAPIStatus.InputWordPosition) tilbake til tegnindeksen på siden, slik at sporing av fremheving på ordnivå forblir korrekt når den oppleste teksten ikke er hele sideteksten (utelatte regioner, lesing per enhet, uttaleoverstyringer) - Typene
TPdfSpokenTextogTPdfSpokenSpanbærer den oppleste strengen sammen med kildesideområdene den ble bygget fra; offseter på innsatte skilletegn løses til neste kartlagte ord, og offseter etter de kartlagte løpene rapporterer ingen treff
Version 1.56.9
Lagt til
Demo\Delphi\PreflightReportlegger til en Action Plan-forhåndsvisning som kondenserer standarder som ikke består, prioriteringer, neste handlinger, problemkoder og anbefalinger til en utbedringssjekklisteDemo\Delphi\PreflightReportCligodtarplan/actionplansom et utdataformat for enkeltfil- og batchkjøringer, og skriver den samme utbedringssjekklisten til en tekstfil
Endret
- Begge Delphi PreflightReport-demoene viser nå antall pass / action / review-statuser sammen med totalt antall standarder og problemer
Version 1.56.8
Endret
ViewerInteractionLabinkluderer nå kontroller for sidehopp, manuell zoom, klikkbasert koordinatlogging forDeviceToPage/PageToDeviceog en tydeligere interaksjonslogg for kontroller av markering, søk, rotasjon og navigasjon- Readme-sidene for
ViewerInteractionLabdokumenterer nå den utvidede arbeidsflyten for interaksjon på tvers av det lokaliserte demo-readme-settet
Version 1.56.7
Lagt til
AccessibilityWorkbenchCliknytter hvert utløst funn til dets WCAG 2.1 Success Criteria og klausulområde i ISO 14289-1 (PDF/UA-1), og viser en standarddekningsseksjon i rapporteneAccessibilityWorkbenchCliberegner en dokumentert tilgjengelighetsscore fra 0 til 100 med en publisert strafferubric og et excellent / good / needs work / poor-bånd, vist per fil og som batchgjennomsnittAccessibilityWorkbenchCligodtarfailscore=Nfor å feile kjøringen (exit code 2) når en fil får lavere poengsum enn NAccessibilityWorkbenchCliskriver en SARIF 2.1.0-logg når batchoppsummeringsnavnet slutter på.sarif, med én regel per funntype som bærer WCAG 2.1- og PDF/UA-taggene for innlesing i CI og code scanningAccessibilityWorkbenchClilegger til enversion-kommando som skriver ut den koblede PDFiumPas-versjonen
Version 1.56.6
Lagt til
IntakeWorkbenchCliberegner en SHA-256-forensisk hash for hver inndatafil (nedgradert tilunavailablepå kompilatorer utenSystem.Hash) og rapporterer den i alle formaterIntakeWorkbenchCligodtarpasswords=file.txtfor å prøveopplåse passordkrevende dokumenter fra en kandidatliste, og registrerer den samsvarende kandidatindeksen uten noen gang å logge selve passordtekstenIntakeWorkbenchCligodtarcopyto=dirfor å rute hver reviderte fil inn i en undermappe per risikonivå, og gjør kontrolløren om til en mottakssortererIntakeWorkbenchCliskriver en SARIF 2.1.0-logg når batchoppsummeringsnavnet slutter på.sarif, med én regel per risikoflagg og ett resultat per flagget fil for innlesing i CI og code scanningIntakeWorkbenchClilegger til enversion-kommando som skriver ut den koblede PDFiumPas-versjonen
Version 1.56.5
Lagt til
IntakeWorkbenchCliutleder nå anbefalte handlinger etter mottak som accept, request-password, manual-review, quarantine og deduplicate, og eksponerer handlingstall i batchoppsummeringerAccessibilityWorkbenchCliutleder nå anbefalte utbedringstiltak som pass-through, remediate-tags, run-ocr, remediate-semantics og manual-review, med tilsvarende handlingstall i batch
Endret
- Begge de verktøyrettede CLI-demoene viser nå den anbefalte handlingen i konsoll-, tekst-, HTML-, JSON- og CSV-utdata, slik at batchoperatører kan rute filer uten å etterbehandle risk- eller statusfelter
Version 1.56.4
Fikset
- Lesing av annotasjoner, bokmerker eller lenkeannotasjoner i en løkke lekker ikke lenger tekststrengene til det forrige elementet: resultatpostene
TPdfAnnotation,TBookmarkogTLinkAnnotationtømmes nå med initialisering som er bevisst på håndterte typer i stedet for rå nullstilling av minne, slik at dokumenter med svært store mengder tekstbærende annotasjoner ikke lenger blåser opp prosessminnet så lenge programmet kjører - Destruksjon av en
TPdfsom hadde registrert enOnUnsupportedFeature-handler kobler den nå fra den prosessglobale PDFium-callbacken, slik at en senere dokumentinnlasting fra en annenTPdf-instans uten egen handler ikke lenger kan dispatch-e inn i den frigjorte komponenten (use-after-free)
Version 1.56.3
Fikset
AccessibilityWorkbenchCliteller ikke lenger tomme sider som heuristiske sider for leserekkefølge, slik at taggede dokumenter med tomme skillesider beholder riktig tilgjengelighetsstatus; sider uten lesbart innhold rapporteres nå separatAccessibilityWorkbenchClitilskriver ikke lenger en ytre tabellTH-celler som tilhører en nestet tabell, og navn på skjemafelt og fonter matches med skille mellom store og små bokstaver slik at ulike felt ikke slås sammenIntakeWorkbenchClifjerner nå userinfo-, query- og fragmentdeler fra URL-vertsinventarer, slik at en konstruert lenke somtrusted.example@evil.exampletilskrives den virkelige verten, ogmailto:-mål bidrar med domenet sitt i stedet for å være usynligeIntakeWorkbenchCliescaper backticks i stier, verter og vedleggsnavn som kontrolleres av angriperen, slik at rapportformatering ikke kan brytes fra innsiden av et dokument
Endret
AccessibilityWorkbenchClirapporterer feil i fontskanning og skjemafeltskanning som separate tellere, markerer ikke-innbakte fonter som også har innbakte instanser, og avkorter lange fontlister med en eksplisitt avkortingsmarkørIntakeWorkbenchClilegger til en kolonne for antall vedleggsannotasjoner i batchoppsummeringer, og folketellingen av annotasjoner per side er begrenset til 20000 annotasjoner per side med grensen rapportert i alle formater
Version 1.56.2
Lagt til
AccessibilityWorkbenchClireviderer nå fontinnbygging, verktøytips for skjemafelt, kilde for leserekkefølge, dokumentdisposisjoner, tabell- og listestruktur, mistenkelig alternativ tekst og rikere vurderingsdetaljer per side, slik at tilgjengelighetsrapporter i batch identifiserer flere utbedringsmålIntakeWorkbenchClirapporterer nå grenser for sideskanning, launch- og remote-go-to-handlinger, URI-vertsinventarer, annotasjonstall, unsupported PDFium features, dupliserte dokumentidentifikatorer og utvidede risikoflagg for automatisert mottaksrevisjon
Endret
IntakeWorkbenchCligodtarmaxpages=Ni enkeltfil- og batchmodus for å sette et tak på dokumentskanning per side samtidig som metadata-, vedleggs-, script-, XFA-, signatur- og risikorapportering fullføres
Version 1.56.1
Fikset
- Innlasting av en eldre
pdfium.dllsom mangler en nyere eksport feiler nå ryddig: feilbanen nullstiller hvert bundet API-inngangspunkt, slik atAssigned()-kontroller (for eksempel påFPDF_GetLastErrorellerFPDF_GetSecurityHandlerRevision) rapporterer biblioteket som ikke lastet i stedet for å kalle inn i modulen som allerede er avlastet og krasje med en access violation UnloadLibrarytømmer nå alle PDFium API-bindinger i stedet for bare de valgfrie V8-hjelperne, slik at ingen foreldede funksjonspekere overlever etter at DLL-en er frigitt
Version 1.56.0
Lagt til
- Karaoke-lesemarkør på ordnivå i
TPdfView:TrackReadingWordAtmapper en tekst-til-tale-motors tegnforskyvning for gjeldende ord (for eksempel SAPIStatus.InputWordPosition) til ordboksene på siden, fremhever ordet som inneholder den som et eget overlegg over leseblokken, ruller det inn i visningen og returnerer ordindeksen, slik at det oppleste ordet lyser opp mens stemmen går fremover SetReadingWordogClearReadingWordsetter eller fjerner det fremhevede ordet direkte fra enTPdfWordBox; å sette det samme ordet på nytt er en no-op, slik at sporing per ord aldri får visningen til å flimreReadingWordColorogReadingWordFollowstyrer fargen på ordmarkøren og om visningen automatisk ruller det oppleste ordet inn i synsfeltet
Version 1.55.2
Fikset
- ViewerInteractionLab gir nå verktøylinjeradene mer vertikal plass, slik at Open PDF, Create Sample, navigasjon, søk og markeringskontroller ikke lenger overlapper under skalerte skrifter
Version 1.55.1
Fikset
- ViewerInteractionLab plasserer nå Prev, Next og Rotate på den andre verktøylinjeraden, og unngår oppstartsoverlappingen med Open PDF og Create Sample
Version 1.55.0
Lagt til
- Bro fra ord til markering for "read it, select it"-lesing:
TPdfView.SelectWordBoxogSelectWordSpanmarkerer én enkelt ordboks eller et spenn av ordbokser på samme side (fraPageWordBoxes) etter tegnområdene deres, slik at ordet eller linjen som leses akkurat nå også kan markeres og kopieres WordBoxIndexAtCharIndexmapper en tegnindeks tilbake til ordboksen som inneholder den, og driver fremhevingen ord for ord mens en TTS-lesemarkør går fremover
Version 1.54.0
Lagt til
- Tilgangsmetoder for stemmestyrt skjemautfylling som leser det fokuserte feltet rett fra den logiske markøren:
FocusedFormFieldValue,FocusedFormFieldNameogFocusedFormFieldDetailspåTPdfogTPdfViewrapporterer verdien i gjeldende felt, et menneskelesbart navn (verktøytipset/TU, med tilbakefall til/T) og fullTPdfFormFieldInfo(type, flagg, valg), altså alt en voice UI trenger å annonsere mens den går gjennom et skjema
Fikset
FocusedFormFieldValueleser feltet viaFocusedFormFieldIndexi stedet for pdfium interactive focus, slik at en voice-driven skjemautfyller får riktig verdi selv uten noen synlig markør på skjermen (den eksisterendeFocusedFormFieldTextgjenspeiler fortsatt pdfium focus og er uendret)
Version 1.53.0
Lagt til
- Støtte for fremheving på ordnivå:
TPdf.PageWordBoxesogTPdfView.PageWordBoxesdeler en side opp iTPdfWordBox-poster, der hver post bærer ordteksten, tegnområdet og et avgrensningsrektangel i siderommet, slik at en tilgjengelighetsleser kan fremheve hvert opplest ord etter tur ("karaoke"-lesing) ved å sende rektangelet tilSetReadingHighlight BuildWordBoxeseksponerer tokenizer-steget for seg selv og gjør sidetekst om til ordbokser med tegnområder
Version 1.52.0
Lagt til
- Lavsynshjelperne for rendering
InvertPdfBitmap,GrayscalePdfBitmapogDuotonePdfBitmapbruker fargetransformasjoner på stedet på et rendret 32-bit-bitmap, slik at en tilgjengelighetsleser kan vise sider invertert / i dark mode, i gråtoner eller i et tilpasset tofargeskjema (for eksempel mørk bakgrunn med lys tekst) for brukere med nedsatt syn - Transformasjonene kjøres per piksel og oppfører seg identisk på VCL og Lazarus/LCL, uten å endre dimensjonene til bitmapet
Version 1.51.0
Lagt til
- Lesenenheter på setningsnivå for assistert lyttelesing:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsogTPdfView.ReadingUnitslineariserer den lesbare innholdsstrømmen til ordnedeTPdfReadingUnit-poster på setningsnivå, der hver post bærer teksten som skal leses opp samt semantisk type, side, fremhevingsrektangler og språktagg, slik at en skjermleserapp kan gå gjennom en side eller hele dokumentet én opplest enhet om gangen - Semantisk navigasjon med
NextReadingUnitOfKind, som lar en voice UI hoppe til neste eller forrige overskrift, figur, listeelement eller tabellcelle uten å skanne strømmen for hånd BuildReadingUnitskonverterer vilkårligeTPdfContentFragmentsdirekte til lesenenheter: overskrifter og figur-/alt-beskrivelser holdes samlet, mens avsnitt deles ved setningsgrenser, desimalpunkt bevares og lesemarkøren er en enkel indeks eid av kalleren
Version 1.50.0
Lagt til
ValidatePdfAkan nå inspisere PDF 1.5+-dokumenter som lagrer katalogen, OutputIntent eller andre dictionary-objekter inne i komprimerte object streams (/Type /ObjStm). Object streams pakkes ut og objektene de bærer løses opp, slik at slike dokumenter valideres etter sitt faktiske innhold i stedet for å bli rapportert som om de manglet PDF/A-markørene sine
Version 1.49.5
Fikset
ValidatePdfArapporterer ikke lenger en manglendepdfaExtension:schemas-beskrivelse som et problem. PDF/A-identifikatorskjemaet (pdfaid) er velkjent, så verken veraPDF eller PDF/A-2/-3 krever en extension-schema-beskrivelse for det, og å flagge fraværet ga feilrapportering for alle samsvarende tredjeparts PDF/A-filer. Dokumenter som biblioteket selv produserer inkluderer fortsatt beskrivelsen
Version 1.49.4
Fikset
ValidatePdfAoppdager nå samsvarsnivået når PDF/A-identifikatoren er skrevet som XML-attributter (pdfaid:part="2") i stedet for som underelementer, slik at dokumenter i attributtform ikke lenger rapporteres med ukjent nivå. Dette retter også en følgefeil der et uoppdaget nivå fikk de delspesifikke kontrollene til å falle tilbake til de strenge PDF/A-1-reglene og feilaktig flagge embedded files og transparens som PDF/A-2 og PDF/A-3 tillater
Version 1.49.3
Fikset
ValidatePdfAinspiserer nå PDF 1.5+-dokumenter der cross-reference-dataene ligger i en cross-reference stream (filer som ikke har nøkkelordettrailer). Samsvarsnivået, trailer-/IDog de andre markørene leses fra dictionary-en til cross-reference stream, slik at slike dokumenter valideres etter sitt faktiske innhold i stedet for å bli rapportert som helt ikke-samsvarende
Version 1.49.2
Fikset
ValidatePdfArapporterer ikke lenger et falskt problem med ikke-innbakte fonter i dokumenter som bygger inn alle fontene sine. Den tidligere heuristikken sammenlignet antallet/FontDescriptor-tokener med innbakte fontprogrammer, men hver innbakt font bidrar med to/FontDescriptor-tokener (font dictionary-referansen pluss descriptor-objektet), slik at hver fil med innbakte fonter ble feilaktig flagget. Kontrollen rapporterer nå bare dokumenter som refererer til fonter uten å bygge inn noe fontprogram i det hele tatt, i tråd med den tilsvarendeValidatePdfUa-rettelsen
Version 1.49.1
Fikset
- PDF/A-utdata valideres nå som samsvarende PDF/A-1b og PDF/A-1a med veraPDF: den innebygde sRGB OutputIntent ICC-profilstrømmen (referert av
/DestOutputProfile) deklarerer nå det påkrevde antallet/N-komponenter (3 for den innebygde RGB-profilen), slik ISO 19005-1 6.2.3.2 krever. Dokumenter produsert avSaveAsPdfAfeilet tidligere streng PDF/A-1-validering fordi måldestinasjonsprofilstrømmen utelot/N; verdien avledes fra ICC-profilhodet, slik at en CMYK- eller Gray-profil levert av kalleren også får riktig antall
Version 1.49.0
Fikset
ValidatePdfUarapporterer ikke lenger falskt manglende XMP-identifikasjon i samsvarende taggede PDF-er; PDF/UA-identifikatoren (pdfuaid:part),dc:title, XMP-datoene og trailer-/IDleses nå fra de opprinnelige dokumentbytene i stedet for fra den nylagrede kopien, som utelater/Metadata-XMP-strømmen og, for cross-reference-stream-filer, trailer-/ID- Kontrollen for fontinnbygging i
ValidatePdfUaer rettet slik at et dokument som bygger inn alle fontene sine ikke lenger rapporteres som om det har ikke-innbakte fonter; den flagger nå bare dokumenter som refererer til fonter uten å bygge inn noe fontprogram i det hele tatt ValidatePdfUagodtar nå etFormula-strukturelement der alternativ tekst leveres viaActualTexti stedet for enAlt-oppføring (ISO 14289-1 §7.7), i tråd med den eksisterendeFigure-regelen
Version 1.48.0
Lagt til
- Programmatic text selection on
TPdfView:SelectTextRange(by page and character range) andSetSelection(med eksplisitte sidevise områder) velg tekst fra kode — for eksempel for å lese og markere et avsnitt; begge tegner på nytt og utløserOnSelectionChangewhen the selection changesSelectionRangesleser gjeldende markering som tegnområder per side, ogSelectionRectanglesreturnerer rektanglene i sidekoordinater for egendefinert markering eller scroll-to
Version 1.47.0
Lagt til
- Navigasjon mellom skjemafelt for stemmestyrt utfylling, både på
TPdfogTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusogFocusedFormFieldText. Disse flytter en logisk feltmarkør over sidens widget-felt i tabulatorrekkefølge (med omløp i endene), slik at en hjelpeleseapp kan gå gjennom skjemaet, kunngjøre hvert felt viaFormFieldInfo[Index].AlternateName(verktøytipset /TU) og fylle det viaFormField[Index] TPdfView.OnFormFieldFocusChangehendelse, utløst når feltmarkøren flytter seg (med den nye feltindeksen, eller -1 når den er fjernet)
Version 1.46.0
Lagt til
- Innholdsstrøm for assistiv lytte-lesing:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentogTPdfView.ReadableContentreturnerer en ordnet liste med semantiskeTPdfContentFragment-elementer, der hvert element bærer den oppleste teksten (ekte glyffer, ellerActualText/Alt for figurer), en fragment-type (overskrift med nivå, avsnitt, figur, listeelement, tabellcelle, lenke, ren), språk, 1-basert side, og blokk- samt per-linje uthevingsrektangler. Taggede PDF-er er linearisert i logisk lese-rekkefølge fra strukturetreet; utaggede sider faller tilbake til opptegnings-rekkefølge slik at ethvert dokument kan leses opp - Synced reading highlight on
TPdfView:SetReadingHighlight,ClearReadingHighlightand the publishedReadingHighlightColormarkere blokken som leses akkurat nå, oppå søke- og markeringsoverleggene - Nye offentlige typer
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindogTPdfReadingOrderSource, samt det nye hjelpeverktøyetClassifyStructType
Version 1.45.0
Lagt til
ValidatePdfUagår nå også gjennom det aktive taggede strukturtreet og rapporterer tre innholdsbrudd med høy sikkerhet som skanning på byte-nivå ikke kan oppdage: etFigure-element uten verken Alt-oppføring eller ActualText (ISO 14289-1, 7.3), etFormula-element uten Alt-attributt (7.7) og etNote-element som mangler en unik ID (7.9). Tre nyeTPdfUaValidationIssue-verdier viser disse:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltogpvuaiNoteMissingId. Tregjennomgangen hoppes over for utaggede dokumenter- Det nye offentlige hjelpeverktøyet
ValidatePdfUaStructureElementsanvender disse strukturtre-reglene på en flat elementliste (slik den returneres avTPdf.StructureElements), slik at kontrollene kan kjøres eller enhetstestes uten å laste et helt dokument
Version 1.44.5
Fikset
- Kontrollen for fontinnbygging i
ValidatePdfA(pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) oppdager nå også enkle fonter som ikke er innbakt og som ikke har noen/FontDescriptor, viktigst av alt de 14 standard Type 1-fontene (Helvetica, Times, Courier og så videre) som PDF/A krever innbakt uten unntak. Tidligere gikk en slik font ubemerket hen; kontrollen teller nå også simple-font-dictionary-er (/Type1,/TrueType,/MMType1) opp mot de innbakte fontprogrammene, i tråd med PDF/UA-rettelsen i 1.44.3
Version 1.44.4
Fikset
- ValidatePdfVT avviser nå feilutformede ISO 16612-2 §6.5 DPart-trær der /DParts er en flat referanse-matrise i stedet for den påkrevde matrisen av matriser, eller der en blad-DPart gjentar sin /Start-side som /End selv når området bare inneholder én side
ValidatePdfVTvaliderer nå/NodeNameList-navn som XML NMTOKEN-verdier etter utvidelse av PDF-navn#xx-unngåelser, slik at ugyldige hierarkinivå-navn rapporteres gjennompvviMissingDPartRooti stedet for å bli godtatt som brukbar DPart-struktur
Version 1.44.3
Fikset
- Kontrollen for fontinnbygging i
ValidatePdfUa(pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) oppdager nå også enkle fonter som ikke er innbakt og som ikke har noen/FontDescriptor, viktigst av alt de 14 standard Type 1-fontene (Helvetica, Times, Courier og så videre) som PDF/UA ikke gir noe innbyggingsunntak for. Tidligere gikk en slik font ubemerket hen, og et dokument som brukte den kunne bli rapportert som samsvarende; kontrollen teller nå også simple-font-dictionary-er (/Type1,/TrueType,/MMType1) opp mot de innbakte fontprogrammene
Version 1.44.2
Fikset
ValidatePdfVTnow leaves a present but unrecognizedpdfvtid:GTS_PDFVTVersionmarker aspvcUnknowninstead of downgrading it topvcNone. This keeps invalid file-level strings such asPDF/VT-2skan skilles fra dokumenter som ikke har noen PDF/VT-markør; PDF/VT-2 identifiseres av MIME-strømhodet i ISO 16612-2 Annex A, ikke av en PDF-fils XMP-markør- Kontrollen av
/DPartRootvaliderer nå ISO 16612-2 §6.5-tre-semantikken strengere:/DPartRootNodeog/NodeNameListmå beskrive den faktiske DPart-dybden, DPart-forelder-lenker må danne et tre,/Startog/DPartser gjensidig utelukkende, og hver sides/DPartmå peke til den dekkende blad-DParten i samme dybde-først-rekkefølge som sidetreet
Version 1.44.1
Fikset
SaveAsPdfVTskriver nå et minimalt ISO 16612-2 §6.5 Document Part-hierarki når kilde-PDF-en mangler en brukbar/DPartRoot. Det genererte treet kobler hver side gjennom/DPart, bevarer et eksisterende gyldig hierarki og overlater rikere mottaker-/DPM-metadata til den kallende arbeidsflytenValidatePdfVTvaliderer nå den brukbare DPart-strukturen, leser PDF/VT XMP-verdier fra både RDF-attributter og elementtekst, og håndhever det eksakte PDF/VT-til-PDF/X-basisparet: PDF/VT-1 krever PDF/X-4, mens PDF/VT-2 krever PDF/X-4p, PDF/X-5g eller PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2skriver ikke lenger ugyldige PDF/VT-2-markører for én fil. Skriveren for én fil normaliserer utdata til PDF/VT-1 fordi PDF/VT-2 krever filsetts-semantikk
Version 1.44.0
Lagt til
ValidatePdfUarapporterer nå også innholdsbrudd på PDF/UA-nivå som kan kontrolleres på byte-nivå, i tillegg til filformatmarkørene: et fontprogram som ikke er innbakt (ISO 14289-1, 7.21.4), en font som mangler en/ToUnicodeCMap når ingen unntatt simple-font-koding er til stede (7.21.7), og et dokument som har annotasjoner men ikke angir noen side-/Tabs /S-tabulatorrekkefølge (7.18.3)- Tre nye
TPdfUaValidationIssue-verdier,pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeogpvuaiMissingTabsOrder, vises avValidatePdfUaog i preflight-rapporten. De er grove heuristikker ment som preflight-hint heller enn en full ISO 14289-1-verifikasjon
Version 1.43.1
Fikset
- SaveAsPdfUa håndhever nå de obligatoriske ISO 14289-1, 7.1 /ViewerPreferences /DisplayDocTitle true- og /MarkInfo /Marked true /Suspects false-katalogoppføringene selv når kildedokumentet allerede leverer disse ordbøkene med manglende eller motstridende verdier. Tidligere ble markørene bare injisert når ordbøkene manglet helt, slik at en kilde for eksempel med en /ViewerPreferences uten DisplayDocTitle eller en /MarkInfo med /Marked false rundturte til en ikke-samsvarende fil
- Existing keys in a pre-existing
/ViewerPreferencesor/MarkInfoordbok bevares, og en ordbok som leveres som en indirekte referanse, løses opp før de obligatoriske nøklene brukes
Version 1.43.0
Lagt til
ValidatePdfAanvender nå PDF/A-2- og PDF/A-3-reglene for embedded files, associated files og tekst på nivå U. Embedded files avvises fortsatt for PDF/A-1; for PDF/A-3 flagges en embedded file som mangler den påkrevde/AFRelationship-nøkkelen (ISO 19005-3 Annex E), mens vedlegg i PDF/A-2 er tillatt (deres eget samsvar verifiseres ikke rekursivt). Et nytt problem,pvaiUnicodeMappingMissing, rapporterer et PDF/A-2u- eller PDF/A-3u-dokument der fontene ikke har noen/ToUnicode-mapping (ISO 19005-2 6.2.11.7). Transparens og optional content flagges fortsatt bare for PDF/A-1
Version 1.42.0
Lagt til
- PDF/A-2 (ISO 19005-2) og PDF/A-3 (ISO 19005-3) støttes nå på alle tre samsvarsnivåer, a, b og u, av
SaveAsPdfA,ValidatePdfAog egenskapenPdfAConformance. OppregningenTPdfAConformancefårpac2a,pac2u,pac3aogpac3u(PDF/A-1 har ikke nivå u). Lagring skriver den samsvarendepdfaid:part(2 eller 3) ogpdfaid:conformance(A, B eller U), og beholderGTS_PDFA1-subtypen for OutputIntent som ISO 19005-2 beholder for kompatibilitet. En forespørsel om nivå A nedgraderes fortsatt til tilsvarende nivå B (for enhver del) når dokumentet mangler den taggede strukturen nivået krever
Version 1.41.0
Lagt til
ValidatePdfAoppdager nå innholdsbrudd på PDF/A-nivå som markørinjeksjon ikke kan reparere, i tillegg til de strukturelle markørene den allerede rapporterte: JavaScript og andre forbudte handlinger, additional-actions (/AA), embedded files,LZWDecode, transparens (soft masks og transparency groups), optional content (/OCProperties), forbudte annotasjonsundertyper (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances trueog/XFA, fonter hvis descriptor-er mangler et innbakt fontprogram, og et krav om nivå A uten den taggede strukturen som ISO 19005-1 6.8 krever. Kontrollene for transparens, optional content og embedded files gjelder bare for PDF/A-1 (disse funksjonene er tillatt i PDF/A-2 og PDF/A-3). NyeTPdfAValidationIssue-verdier viser hvert tilfelle; de eksisterende verdiene er uendret
Version 1.40.3
Fikset
SaveAsPdfAfjerner nå all kildedokument-kryptering før PDF/A-utdata produseres. ISO 19005-1 6.1.3 forbyr trailer-nøkkelen/Encrypt, men lagringsstien bevarte tidligere kildens sikkerhetshåndterer, slik at lagring av et kryptert dokument som PDF/A ga en kryptert, ikke-samsvarende fil. PDF/A-lagringen dekrypterer nå dokumentet først. Ukrypterte dokumenter er upåvirket
Version 1.40.2
Fikset
- Stopped
SaveAsPdfAfrom emitting a false PDF/A Level A conformance claim. When Level A (pac1a) er forespurt, men kildedokumentet mangler de tagged-structure-markørene som kreves av ISO 19005-1 6.8 — en/StructTreeRootin the catalog and a/MarkInfodictionary with/Marked true— den lagrede filen identifiseres nå som den samsvarende Level B (pdfaid:conformance=B) instead of asserting Level A. Purely visual PDF/A-1b output is unaffected
Version 1.40.1
Fikset
- Strammet inn PDF-versjon-samsvarsvalideringen slik at
SetOCGState-handlingen (set-optional-content-group-state) gjenkjennes som en PDF 1.5-funksjon. Å lagre til et PDF 1.2-, 1.3- eller 1.4-mål som inneholder enSetOCGState-handling avvises nå for å samsvare med ISO 32000-1 (tabell 198); tidligere kunne en slik handling passere gjennom til utdata av lavere versjon. Den egne, utdaterte PDF 1.2-SetState-handlingen aksepteres fortsatt fra PDF 1.2 og oppover
Version 1.40.0
Lagt til
- Bundet oppstrøms-API-et
FPDFPageObj_AddExistingMark(), som fester et eksisterende innholdsmerke til et sideobjekt. Når påfølgende sideobjekter deler samme merke, slår den lagrede PDF-en dem sammen til ett enkelt merke som spenner over alle; ikke-påfølgende objekter får egne kopier - Bound the upstream
FPDFTextObj_SetFontSize()API for å endre skriftstørrelsen til et eksisterende tekstobjekt, som utfyller den eksisterendeFPDFTextObj_GetFontSize()binding
Endret
- Oppdaterte de medfølgende PDFium runtime-DLL-ene (Win32 og Win64, standard- og V8-bygg) til upstream-snapshoten fra 2026-06-02
Version 1.39.53
Endret
- Endret Delphi-demoene PDFViewer, SplitView og MultiPageViewer til å åpne dokumenter i Zoom til Page-modus som standard
- Første rendering tilpasser nå hele siden til visningsflaten før brukeren velger et manuelt zoomnivå
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.53
Version 1.39.52
Endret
- Forbedret
Demo\Lazarus\CreatePDFslik at introduksjons-eksempelet nå genererer en to-siders PDF med vektorstier, tabellinnhold, et innebygd bilde, en tekstmerknad, rotert tekst og en tydeligere gjennomgang av dokumentbygging - Lagt til plettfrie README.html-sider for hver Delphi-, C++Builder- og Lazarus-demomap, som erstatter de gjenværende ren-tekst demo-README-filene med en nettleser-lesbar veiledning
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.52
Version 1.39.51
- Forbedret sammendragene for
Demo\Delphi\PreflightReportCli-partier med standard statustotaler for bestått, handling kreves og gjennomgang-resultater på tvers av de valgte standardene - Per-fil-rader inkluderer nå telling for handling-kreves og gjennomgang i TXT-/HTML-/JSON-/CSV-sammendrag, noe som gjør CI-artefakter enklere å inspisere uten å åpne hver generert rapport
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.51
Version 1.39.50
- Forbedret katalog-partimodusen i
Demo\Delphi\PreflightReportClislik atbatchdir=foldersamler oppdagede PDF-stier, sorterer dem og deretter genererer rapporter i en stabil rekkefølge - Rekursive katalogskanninger produserer nå reproduserbar rapport-rekkefølge og sammendragsrader, mens eksplisitt
batch=list.txt-behandling fortsetter å bevare listefilens rekkefølge - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.50
Version 1.39.49
- Forbedret sammendragene for
Demo\Delphi\PreflightReportCli-partier til å registrere kjøreinnstillinger: kildetype, kildesti, rekursiv tilstand, utdatakatalog, rapportformat, valgte standarder ogfailon=-modus - JSON summaries now include a
runobjektet, viser TXT- og HTML-sammendrag en seksjon for kjøreinnstillinger, og CSV-radene gjentar de samme revisjonskolonnene for regneark- og CI-løp - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.49
Version 1.39.48
- Forbedret navngiving av partiutdata i
Demo\Delphi\PreflightReportClislik at dupliserte inndatafilnavn som deler énoutdir=ikke lenger overskriver hverandres genererte rapporter - Partikjøringer legger nå til
-2-,-3- og senere suffikser når en generert rapportsti allerede er tildelt i samme kjøring, og sammendrag registrerer den endelige kollisjonssikre rapportstien - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.48
Version 1.39.47
- Forbedret sammendragene for
Demo\Delphi\PreflightReportCli-partier slik at TXT- og JSON-utdata nå inkluderer aggregerte totaler for totalt antall filer, behandlede filer, mislykkede filer, problemer ogfailon=-treff - CSV-sammendrag forblir en ren radtabell for eksisterende forbrukere, mens HTML-sammendrag fortsatt viser de samme samlede målene i overskriften på kontrollpanelet
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.47
Version 1.39.46
- Forbedret
Demo\Delphi\PreflightReportClimedsummary=batch.html/.htmslik at partikjøringer kan sende ut et nettleser-lesbart dashbord ved siden av TXT-/CSV-/JSON-manifester - HTML-sammendrag viser total-, behandlede-, mislykkede-, problem- og
failon=-treff-metrikker, og lister deretter opp hver inndata med rapportlenker, status, tellinger og feiltekst - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.46
Version 1.39.45
- Forbedret
Demo\Delphi\PreflightReportClimedbatchdir=folderogrecursiveslik at skript kan skanne PDF-mapper direkte uten å skrive en listefil først - Directory batch mode reuses
outdir=,summary=,standards=, andfailon=oppførsel fra listebasert batch-modus, mens ikke-rekursive skanninger bare tar den valgte mappen ogrecursiveincludes subfolders - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.45
Version 1.39.44
- Forbedret
Demo\Delphi\PreflightReportClimedsummary=batch.csv|json|txtslik at partikjøringer kan sende ut et maskinlesbart manifest ved siden av per-fil-rapportene - Partisammendrag inkluderer hver inndatasti, rapportsti, status, standardtelling, bestått-telling, problemtelling,
failon=-trefftilstand og feiltekst for CI-jobber og eksterne skript - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.44
Version 1.39.43
- Forbedret
Demo\Delphi\PreflightReportClimedbatch=list.txtogoutdir=reportsslik at skript kan generere preflight-rapporter for en liste med PDF-filer i én kjøring - Partimodus hopper over blanke og
#-kommentarlinjer, utleder hvert.preflight.<ext>-rapportnavn fra inndata-PDF-en, fortsetter etter per-fil-feil og oppsummerer behandlede og mislykkede filer før retur - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.43
Version 1.39.42
- Forbedret
Demo\Delphi\PreflightReportClimedfailon=none|issues|action|reviewslik at CI-jobber kan gjøre genererte preflight-resultater om til deterministiske avsluttingskoder - CLI-en returnerer nå avsluttingskode 2 når en valgt
failon=-regel treffer etter at rapportfilen og valgfri vedlagt-rapport-PDF er generert, mens kjøretidsfeil fortsatt returnerer avsluttingskode 1 - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.42
Version 1.39.41
- Enhanced
Demo\Delphi\PreflightReportCliwithattach=output.pdfslik at en generert preflight-rapport kan bygges inn som et dokumentnivåvedlegg i en ny PDF-kopi - CLI-en beholder den genererte TXT-/HTML-/Markdown-/JSON-/CSV-rapportfilen på disken og nekter å legge ved tilbake i den opprinnelige inndata-PDF-stien, noe som reduserer risikoen for utilsiktet overskriving
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.41
Version 1.39.40
- Lagt til Demo\Delphi\PreflightReportCli, en Delphi-konsoll-kompanion for skriptbar FPdfPreflightReport-generering uten å åpne en viser
- CLI-en støtter oppretting av eksempel uten argumenter pluss inndata-/utdata-argumenter, valgfritt passord,
text-/html-/md-/json-/csv-utdataformater ogstandards=-filtrering for PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R og PDF/VT - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.40
Version 1.39.39
- Forbedret
FPdfPreflightReportmedTPdfPreflightReport.ToMarkdownogSaveMarkdownToFileslik at preflight-rapporter kan eksporteres som problem-tracker-vennlig Markdown - Oppdaterte Delphi-, C++Builder- og Lazarus-
PreflightReport-eksemplene med bytte av Markdown-forhåndsvisning og Lagre MD-handlinger ved siden av den eksisterende TXT-/HTML-/JSON-/CSV-arbeidsflyten - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.39
Version 1.39.38
- Forbedret Delphi-, C++Builder- og Lazarus-
SecurityAudit-eksemplene med JSON-revisjonsrapport-eksport ved siden av den eksisterende TXT-lagre/kopier-arbeidsflyten - JSON-rapporten inneholder
format,generatedAt,summary,findingCountog strukturertefindings-rader med felt for alvorlighetsgrad, område og detalj - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.38
Version 1.39.37
- Forbedret
FPdfPreflightReportmedTPdfPreflightReport.ToCsvogSaveCsvToFileslik at preflight-rapporter kan eksporteres som regneark-vennlig CSV - Oppdaterte Delphi-, C++Builder- og Lazarus-
PreflightReport-eksemplene med bytte av CSV-forhåndsvisning og Lagre CSV-handlinger ved siden av den eksisterende TXT-/HTML-/JSON-arbeidsflyten - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.37
Version 1.39.36
- Forbedret
FPdfPreflightReportmedTPdfPreflightReport.IssueCategoryCountspluss gjenbrukbare typeneTPdfPreflightIssueCategoryCountogTPdfPreflightIssueCategoryCountsfor å aggregere merke-nivå-problemer etter kategori - Oppdaterte
TPdfPreflightReport.ToText,ToHtmlogToJsonslik at generert PreflightReport-utdata inkluderer sammendrag av problemkategoritellinger ved siden av per-standard-rader og detaljerte problem-anbefalinger - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.36
Version 1.39.35
- Endret navn på det utvidede
PrintDialog-eksempelet tilPrintPreferencespå tvers av Delphi, C++Builder og Lazarus slik at demonavnet nå samsvarer med arbeidsflyten for PDF-forfattens utskriftsinnstillinger, N-up-utskrift, oddetalls-/partalls-filtrering, gråtoner, cellekant og dupleks-avbildning - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.35
Version 1.39.34
- Forbedret
Demo\Delphi\PrintPDFmed dra-og-slipp PDF-lasting og dokumenterte den eksisterendeDemo\CBuilder\PrintPDF-arbeidsflyten ved siden av Delphi- og Lazarus-PrintPDF-eksemplene - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.34
Version 1.39.33
- Lagt til Demo\CBuilder\SplitView, som fullfører SplitView-eksempel-matrisen på tvers av Delphi, C++Builder og Lazarus
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.33
Version 1.39.32
- Lagt til Demo\Lazarus\SplitView, som bringer side-ved-side PDF-sammenligning til Lazarus med to- eller tre-rute-oppsett, aktiv-vis-navigering, synkroniserte kommandoer, zoom-forvalg og rotasjon
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.32
Version 1.39.31
- Lagt til Demo\Lazarus\PrintPDF, som bringer den standardiserte PDF-utskrifts-arbeidsflyten til Lazarus med forhåndsvisningsnavigasjon, sideområder, kopier, sortering-modus, framgang og avbrytelse
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.31
Version 1.39.30
- Lagt til Demo\Lazarus\FontProperties, som fullfører FontProperties-eksempel-matrisen på tvers av Delphi, C++Builder og Lazarus
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.30
Version 1.39.29
- Lagt til Demo\CBuilder\FontProperties, som bringer indeksert tegn- og skrifttype-metadata-inspeksjon til C++Builder ved siden av Delphi-eksempelet
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.29
Version 1.39.28
- Lagt til Demo\Delphi\ExtractTextPages, som fullfører eksempel-matrisen for per-side tekstuttrekk på tvers av Delphi, C++Builder og Lazarus
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.28
Version 1.39.27
- Lagt til Demo\Lazarus\PrintDialog, som fullfører PrintDialog-eksempel-matrisen på tvers av Delphi, C++Builder og Lazarus
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.27
Version 1.39.26
- Lagt til Demo\CBuilder\PrintDialog, som bringer N-up-utskrifts- og PDF-forfatter-utskriftsinnstillings-arbeidsflyten til C++Builder ved siden av Delphi-eksempelet
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.26
Version 1.39.25
- Lagt til Demo\CBuilder\ViewerInteractionLab, som fullfører ViewerInteractionLab-eksempel-matrisen på tvers av Delphi, C++Builder og Lazarus
- Oppdaterte bibliotekets bygge-arbeidsflyt og Win64 C++Builder-pakkeutdata slik at
TPdfView-viserens interaksjonsmetoder kobles riktig i Win64-demoer - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.25
Version 1.39.24
- Lagt til Demo\Lazarus\ViewerInteractionLab, som bringer den fokuserte viser-interaksjons-arbeidsflyten til Lazarus ved siden av Delphi-eksempelet
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.24
Version 1.39.23
- Lagt til Demo\Lazarus\SearchAndSelect, som fullfører SearchAndSelect-eksempel-matrisen på tvers av Delphi, C++Builder og Lazarus
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.23
Version 1.39.22
- Lagt til Demo\CBuilder\ContentExtractionLab og Demo\Lazarus\ContentExtractionLab, som bringer multikategori-innholdsuttrekks-arbeidsflyten til alle støttede demo-IDE-er
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.22
Version 1.39.21
- Forbedret
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportogDemo\CBuilder\PreflightReportmed en velger for forhåndsvisningsformat slik at brukere kan inspisere tekst- eller JSON-utdata før rapportene lagres - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.21
Version 1.39.20
- Lagt til JSON-eksport i FPdfPreflightReport gjennom TPdfPreflightReport.ToJson og SaveJsonToFile, som produserer maskinlesbare sammendrag, per-standard status/prioritet, neste-handlinger og problemdetaljer
- Oppdaterte
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportogDemo\CBuilder\PreflightReportmed Lagre JSON-handlinger ved siden av TXT-/HTML-eksport - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.20
Version 1.39.19
- Forbedret
FPdfPreflightReportmedTPdfPreflightStatus, problemkategorier, per-standard-prioritet og veiledning for neste handling i TXT-/HTML-rapporter - Updated
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReport, andDemo\CBuilder\PreflightReportfor å vise status, prioritet, antall saker og neste handling i sammendragsrutenettet - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.19
Version 1.39.18
- Lagt til
Demo\Lazarus\SecurityAudit, og fullfører demomatriksen for Delphi, C++Builder og Lazarus for revisjonsarbeidsflyten for skrivebeskyttet PDF-risikooverflate - Lazarus-eksempelet teller opp tillatelser, vedlegg, JavaScript-handlinger, URI-/Launch-lenke-merknader, nettlenker, signaturer, XFA-tilstand, V8-/XFA-hjelper-tilgjengelighet og tilbakekallinger for ustøttede funksjoner, og lagrer eller kopierer deretter funn-listen som en TXT-rapport
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.18
Version 1.39.17
- Lagt til Demo\CBuilder\SecurityAudit, som bringer den skrivebeskyttede PDF-risikooverflate-revisjons-arbeidsflyten til C++Builder ved siden av det eksisterende Delphi-eksempelet
- C++Builder-eksempelet teller opp tillatelser, vedlegg, JavaScript-handlinger, URI-/Launch-lenke-merknader, nettlenker, signaturer, XFA-tilstand, V8-/XFA-hjelper-tilgjengelighet og tilbakekallinger for ustøttede funksjoner, og lagrer eller kopierer deretter funn-listen som en TXT-rapport
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.17
Version 1.39.16
- Lagt til Demo\CBuilder\SearchAndSelect, som bringer den frittstående SearchAndSelect-viser-arbeidsflyten til C++Builder ved siden av det eksisterende Delphi-eksempelet
- C++Builder-eksemplet oppretter eller åpner PDF-er, viser treff på alle sider med forhåndsvisning av side / tegnindeks, støtter Previous / Next og navigasjon med dobbeltklikk, og fremhever treff på gjeldende side med
HighlightSearchText - Den viser også
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangeog spredteDisplayMode-alternativer; versjonsmetadata rapporterer nå 1.39.16
Version 1.39.15
- Lagt til Demo\CBuilder\WatermarkStamp, som fullfører Delphi-, Lazarus- og C++Builder-demo-matrisen for gjenbrukbare Form XObject-vannmerke- og stempel-arbeidsflyter
- C++Builder-eksempelet oppretter mål- og stempel-PDF-er, gjenbruker stempelsiden gjennom
CreateXObjectFromPage, anvenderTPdfMatrix-transformasjoner og lagrer midtstilte vannmerker, hjørnestempler og sidetalls-etiketter - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.15
Version 1.39.14
- Lagt til Demo\Lazarus\WatermarkStamp, som bringer den gjenbrukbare Form XObject-vannmerke- og stempel-arbeidsflyten til Lazarus
- Lazarus-eksempelet oppretter mål- og stempel-PDF-er, gjenbruker stempelsiden gjennom
CreateXObjectFromPage, anvenderTPdfMatrix-transformasjoner og lagrer midtstilte vannmerker, hjørnestempler og sidetalls-etiketter - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.14
Version 1.39.13
- Lagt til Demo\CBuilder\PreflightReport, som fullfører Delphi-, Lazarus- og C++Builder-demo-matrisen for den gjenbrukbare FPdfPreflightReport-arbeidsflyten
- C++Builder-eksempelet bruker
FPdfPreflightReport.hpptil å generere standardsammendrag, TXT-rapport-forhåndsvisninger, TXT-/HTML-rapportfiler og Åpne siste rapport-atferd - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.13
Version 1.39.12
- Lagt til Demo\Lazarus\PreflightReport, som bringer PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- og PDF/VT-preflight-rapport-arbeidsflyten til Lazarus
- Lazarus-eksempelet kan åpne eller opprette en PDF, velge målstandarder, forhåndsvise sammendragsrader og TXT-rapport-utdata, lagre TXT-/HTML-rapporter og åpne den sist lagrede rapporten
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.12
Version 1.39.11
- Enhanced
Demo\Delphi\SearchAndSelectmed en søkresultatliste for alle sider som registrerer sidetall, tegnindeks og forhåndsvisningstekst - Lagt til navigering til Forrige/Neste-treff og dobbeltklikk-hopping i resultater, samtidig som gjeldende-sides HighlightSearchText-atferd bevares
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.11
Version 1.39.10
- Enhanced
Demo\Delphi\SecurityAuditmed handlingene Save Report og Copy Report som eksporterer gjeldende sammendrag og treffrader som en TXT-revisjonsrapport - Demon tømmer nå eksporttilstanden for rapporten når revisjonspanelet tilbakestilles, slik at kopierte eller lagrede rapporter holdes på linje med de synlige funnene
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.10
Version 1.39.9
- Forbedret
Demo\Delphi\ContentExtractionLabmed lagring av kilde-PDF, kopier-til-utklippstavle for rapport og alle/ingen-kategori-valghandlinger - Demon ugyldiggjør nå den gjeldende rapporten når kategorivalgene endres, slik at TXT-/JSON-eksporter gjenspeiler det synlige uttrekksomfanget
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.9
Version 1.39.8
- Lagt til
Demo\Delphi\ContentExtractionLab, et samlet arbeidsflyteksempel for innholdsuttrekk for dokumentmetadata, sidetekst, sideobjekter, bilder, vedlegg, lenker, merknader, bokmerker og skrifttype-/tegn-metrikker - Eksempelet kan åpne en eksisterende PDF eller opprette en syntetisk PDF med tekst-, bilde-, vedleggs- og merknadsinnhold, og deretter generere sammendragsrader og detaljerte TXT-/JSON-rapporter
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.8
Version 1.39.7
- Lagt til
Lib\FPdfPreflightReport.pas, en gjenbrukbar raporthjelper som pakker innValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRogValidatePdfVTi ettTPdfPreflightReport-objekt - Lagt til Demo\Delphi\PreflightReport, et arbeidsflyteksempel som åpner eller oppretter en PDF, velger målstandarder, forhåndsviser sammendragsrader og problem-anbefalinger, og lagrer TXT- eller HTML-rapporter
- De genererte rapportene beskriver eksplisitt den innebygde valideringsgrensen på merke-nivå slik at applikasjoner kan pare dem med dedikerte preflight-verktøy på innholds-nivå når det kreves
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata, pakke-prosjektlister og installatør-versjonsmetadata til å rapportere 1.39.7
Version 1.39.6
- Lagt til Demo\Delphi\SearchAndSelect, et fokusert viser-arbeidsflyteksempel for søkeutheving, tekstvalg, forhåndsvisning av valgt tekst, kopiering, tømming og spredte visningsmoduser
- Eksempelet demonstrerer
HighlightSearchText, søkealternativer for å skille mellom store/små bokstaver / hele ord,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardogClearSelectionuten å legge til nytt bibliotek-API - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.6
Version 1.39.5
- Utvidet
Demo\Delphi\ViewerInteractionLabtil et SearchAndSelect-aktig viser-UX-eksempel medHighlightSearchText, alternativer for å skille mellom store/små bokstaver / hele ord, forhåndsvisning av valgt tekst og eksisterende utvalgs-/utklippstavle-kontroller - Utvidet
Demo\Delphi\PrintDialogtil å inspisere PDF-forfattens utskriftsinnstillinger:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingog synligSetPdfPrintPaperHandlingDevMode-dupleks-avbildning - Lagt til Demo\Delphi\SecurityAudit, et skrivebeskyttet risikooverflate-eksempel som lister opp tillatelser, vedlegg, dokument-JavaScript, URI-/Launch-lenker, nettlenker, signaturer, XFA-tilstand og V8-/XFA-hjelper-tilgjengelighet
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.5
Version 1.39.4
- Lagt til Demo\CBuilder\ImageToPDF og Demo\Lazarus\ImageToPDF, som fullfører ImageToPDF-eksempel-matrisen på tvers av Delphi, C++Builder og Lazarus
- De nye eksemplene demonstrerer flerbilde-valg, forhåndsvisning av valgt bilde, én PDF-side per bilde, A4 portrett-/landskap-sidestørrelse, midtstilt bildeskalering, per-bilde-framgang og åpning av den genererte PDF-en etter lagring
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.4
Version 1.39.3
- Lagt til
Demo\CBuilder\BatchExport, og bringer arbeidsflyten for eksport av flere filer fra PDF til JPG til C++Builder ved siden av de eksisterende Delphi- og Lazarus-eksemplene - Eksempelet demonstrerer
LoadCustomDocument,IPdfCancellationTokenSource, strømmendeTFileStream-inndata, per-fil- og per-side-framgang, avbrytelseshåndtering, DPI-/kvalitets-/passord-inndata og åpning av utdatamappen etter fullføring - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.3
Version 1.39.2
- Lagt til Demo\Delphi\WatermarkStamp, et kjørbart Form XObject-arbeidsflyteksempel som oppretter en mål-PDF og en gjenbrukbar stempel-PDF, og deretter anvender midtstilte vannmerker, øverst-høyre-stempler og sidetalls-etiketter på hver side
- Eksempelet demonstrerer
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixogFPDFPageObj_SetMatrixuten å legge til nytt bibliotek-API - Oppdaterte
Docs\en-us\Examples.htmltil å bruke det gjeldende mønsteret forTPdfMatrix.Handleved sending av matriser tilFPDFPageObj_SetMatrix - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.2
Version 1.39.1
- Lagt til Demo\Delphi\ViewerInteractionLab, et fokusert TPdfView-eksempel for visningsmoduser, tilpasningsmoduser, sidefarger, rotasjon, bruker-tekstvalg, utklippstavle-handlinger og DeviceToPage-koordinat-tilbakemelding
- Lagt til Demo\CBuilder\StandardsLab / Demo\Lazarus\StandardsLab slik at Lazarus-brukere kan kjøre PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- og PDF/VT-validerings- og merke-utdata-arbeidsflyten
- Listet opp standardenhetene i
Lib\37.0\PDFiumPas.dprojogLib\FPC\PDFiumLaz.lpkog rettet Delphi-SplitView-demobygget ved å fjerne en duplisertWinapi.ShellAPI-import - Fikset blokkeringer for parti-bygging av Delphi-demoer i BatchExport, PDFViewer, MultiPageViewer og SplitView uten å endre kjøretids-atferden deres
- Fikset partikompatibilitet for bygging av C++Builder-demoer i PDFViewer og MultiPageViewer ved å erstatte nullptr med NULL for den gjeldende prosjektmodusen
- Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.1
Version 1.39.0
- Lagt til Demo\Delphi\StandardsLab, et kjørbart standarder-arbeidsflyteksempel som laster eller oppretter en PDF, kjører ValidatePdfA, ValidatePdfUa, ValidatePdfE, ValidatePdfX, ValidatePdfR og ValidatePdfVT, og viser oppdaget konformitet, bestått/mislykket-status og problemtellinger i ett rutenett
- Lagre-knappene i StandardsLab kaller
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRogSaveAsPdfVT, noe som gjør PDF-standardmerke-utdata synlig uten å skrive en egendefinert oppkobling - Oppdaterte
TPdf.AboutInfo, Lazarus-pakkemetadata og installatør-versjonsmetadata til å rapportere 1.39.0
Version 1.38.0
TPdfView-søke- og tekstvalg-overlegg bruker nå ekte alfa-blanding i stedet for logisk maske-maling, noe som bevarer sideinnhold under uthevinger- La til
SetPdfPrintPaperHandlingDevModefor å mappeTPrintPaperHandlingtil Windows-verdiene iDEVMODE.dmDuplex:DMDUP_SIMPLEX,DMDUP_HORIZONTALogDMDUP_VERTICAL TPdfView.SmoothScrollanimerer nå linje-/side-rullefelt-kommandoer i timer-styrte segmenter; tommel-sporing forblir umiddelbar- Oppdaterte
TPdf.AboutInfoog installatør-versjonsmetadata til å rapportere 1.38.0
Version 1.37.0
TPdfnow owns a per-instance render lock that serializesRenderPage,RenderTile,RenderPageProgressive, page reload, and document unload paths. Renderering styrt av en arbeidstråd gjennom en delt komponent er nå praktisk, mens applikasjoner fortsatt koordinerer dokumentendringer og levetid- Fikset null-kopi-bitmap-omslaget til å avvise bunn-opp TBitmap DIB-oppsett og falle tilbake på en PDFium-eid buffer før utkopiering, noe som eliminerer stride-korrupsjons-/tilgangsbrudd-feil i VCL-opptegningstester
- Tightened
TPdfViewselection behavior:AllowUserTextSelectiongates user input only, code-level selection APIs still paint, andSelectAllfølger det faktiske synlige oppslaget, slik at omslagssiden ikke lenger velger side 2. Delphi-, Lazarus- og C++Builder-testene ble utvidet tilsvarende - Oppdaterte
TPdf.AboutInfoog installatør-versjonsmetadata til å rapportere 1.37.0
Version 1.36.0
- Aktiverte tekstmarkering for sluttbrukere i
TPdfView— egenskapenAllowUserTextSelection, som ble reservert i v1.17.0, styrer nå et komplett dra-og-marker-forløp. Venstreklikk på et teksttegn går inn i markeringsmodus (hit-test auto); venstreklikk på et tomt område fortsetter å panorere som før. Form-fill-widgeten har fortsatt prioritet, så et klikk i et skjemafelt gir fortsatt fokus til feltet i stedet for å starte en markering - Dobbeltklikk markerer ordet, trippelklikk markerer linjen,
Ctrl+Amarkerer gjeldende side (begge sider i oppdelte visningsmodi), ogCtrl+Ckopierer markeringen til Windows-utklippstavlen somCF_UNICODETEXT Shift+Left/Shift+Rightutvider markeringen ett tegn om gangen (og går over til tilstøtende side i oppdelt modus);Shift+Home/Shift+Endutvider til den visuelle linjekanten ved å bruke bokshøyden til starttegnet som toleranse for linjeklynger, slik at linjer med blandede skriftstørrelser fortsatt grupperes riktig- Når pekeren holdes over tekst, endres markøren til
crIBeam; når den flyttes bort fra tekst, gjenopprettes standardmarkøren. Mens en tekstmarkering dras, vil bevegelse inn i en 20-pikslers død sone ved en hvilken som helst visningskant automatisk rulle siden (50 ms intervall, 16 px / intervall, avgrenset til de samme grensene som panoreringsstien bruker) slik at markeringen kan fortsette forbi gjeldende visningsområde uten først å slippe museknappen - Markering over sider fungerer i oppdelte visningsmodi (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): en draoperasjon som starter på venstre side og ender på høyre side markerer det sammenhengende området som spenner over begge.SelectedTextsetter sammen utdragene per side med CR/LF, slik at den rundreise teksten leses som normalt flerlinjeinnhold - Ny publisert egenskap
SelectionColor(standardclHighlight, Windows-systemets markeringsfarge) — uavhengig avHighlightColor, som farger søkeresultater gult. Søkemarkeringer og en aktiv dra-markering kan vises samtidig på skjermen uten fargekollisjon - Ny publisert hendelse
OnSelectionChangeutløses hver gang markeringens materialiserte områder faktisk endres — aldri ved identisk ny anvendelse, så vertsapplikasjoner kan koble den direkte til statuslinjetekst eller knappestatus uten debounce-logikk - Nytt offentlig API på
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Dette er inngangspunkter på kodenivå og fungerer alltid uavhengig avAllowUserTextSelection— flagget styrer bare brukerinngang (mus), så kioskapplikasjoner kan slå av brukerstyrt markering og likevel bygge verktøylinjeknapper for "Select All / Copy" som bruker det samme API-et - En standard høyreklikkmeny med
Copy/复制legges til automatisk når verten ikke har tildelt sin egenPopupMenu— standardflyten for å markere tekst, høyreklikke og kopiere fungerer rett ut av boksen. Knappeteksten velges mellom engelsk og kinesisk avSysLocale.PriLangID; verter som trenger full lokalisering (eller en rikere meny) tildeler bare sin egenPopupMenu, og standardmenyen undertrykkes - Markeringen ryddes automatisk ved overganger i
SetPdf,SetPageNumber,SetActive(False)ogDisplayMode, medOnSelectionChangeutløst nøyaktig én gang når den forrige markeringen ikke var tom. Form-fill-delssystemet beholder prioriteten — mens et skjemafelt redigeres, venter alle tastatursnarveier for markering slik at feltet fårCtrl+C/Ctrl+A/Shift+arrowstil sin egen markering - Utvidet regresjonssuitene for Delphi og Lazarus til 202 tilfeller hver, og C++Builder-suiten til 159 tilfeller, med dekning av standardverdier, rundreise, offentlig API-oppførsel, tømming ved tilstandsbytte, muse-draing (hit-text / hit-blank), klikk kontra draing, IBeam-markørbytte, dobbeltklikk på ord, trippelklikk på linje, tastatursnarveier, standard popup-tilknytning / utsettelse / tittel og markering over sider — inkludert en CR/LF-rundreisekontroll for utklippstavlen
Version 1.35.0
- La til støtte for markørinjeksjon for PDF/VT (ISO 16612-2:2010): TPdf.SaveAsPdfVT løfter gjeldende dokument til en PDF/VT-1- eller PDF/VT-2-kompatibel fil (PDF-undergruppen for variabel og transaksjonsbasert utskrift). PDF/VT er bygget på PDF/X-4 — ISO 16612-2 §6.2.1 krever at hver PDF/VT-1-fil også følger PDF/X-4 — slik at injektoren skriver hele PDF/X-4-markørsettet (XMP pdfxid:GTS_PDFXVersion = "PDF/X-4", Info /GTS_PDFXVersion (PDF/X-4) og /Trapped, katalog /OutputIntents som refererer til en OutputIntent-ordbok med innebygd ICC-profil) ved siden av de PDF/VT-spesifikke egenskapene
- Den PDF/VT-spesifikke injeksjonen dekker XMP
pdfvtid:GTS_PDFVTVersion(="PDF/VT-1" eller "PDF/VT-2" per §6.3 tabell 2) ogpdfvtid:GTS_PDFVTModDate(holdt synkronisert medxmp:ModifyDateper §6.3 NOTE 1), pluss en pdfaExtension:schemas-beskrivelse som erklærer både pdfxid- og pdfvtid-navnerommene (NPES-URI-erhttp://www.npes.org/pdfx/ns/id/oghttp://www.npes.org/pdfvt/ns/id/). Trailer-en bærer en/ID-matrise - La til TPdf.SaveAsPdfVTToStream for PDF/VT-utdata i minnet, og en kortform med standardvalg,
TPdf.SaveAsPdfVT(FileName), som produserer PDF/VT-1 med den medfølgende sRGB IEC61966-2.1 OutputIntent (3144 bytes, samme profil som SaveAsPdfA / SaveAsPdfX) og/Trapped /False - Lagt til TPdf.ValidatePdfVT: sjekker en åpen PDF for PDF/VT-samsvarsmerker (XMP
pdfvtid:GTS_PDFVTVersion- ogGTS_PDFVTModDate-tilstedeværelse, likhet mellompdfvtid:GTS_PDFVTModDateogxmp:ModifyDate, tilstedeværelse av den underliggendepdfxid:GTS_PDFXVersion-identifikatoren, katalog-/DPartRoot-tilstedeværelse per §6.5,/OutputIntentsmed/DestOutputProfile, trailer-/ID, krypteringsstatus,xmp:CreateDate/ModifyDate-tilstedeværelse) og returnerer TPdfVTValidationResult med det oppdagede konformitetsnivået og settet med funn - La til egenskapen TPdf.PdfVTConformance: returnerer konformitetsnivået til det gjeldende åpne dokumentet (pvc1, pvc2, pvcNone eller pvcUnknown) uten å måtte kalle ValidatePdfVT eksplisitt
- Nye typer eksportert i den nye enheten FPdfPdfvt: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Document Part-hierarki (DPartRoot-/DPart-tre per §6.5) er applikasjonsnivå-struktur som avhenger av mottaker-/sideområde-avbildningen i variabel-data-utskrifts-arbeidsflyten. SaveAsPdfVT syntetiserer IKKE et DPart-tre — ValidatePdfVT viser en manglende /DPartRoot som pvviMissingDPartRoot slik at kallere kan rute PDF/VT-filer gjennom et eget DPart-bygging-steg. Innholds-nivå PDF/X-4-krav (skrifttype-innebygging, gjennomsiktighet, ICC-styrt farge, OPI-/JavaScript-/Reference-XObject-forbud osv.) forblir dokumentforfatterens og PDFiums opptegnings-pipeline sitt ansvar
- Oppdaterte TPdf.AboutInfo-strengen til å rapportere gjeldende produktversjon
Version 1.34.0
- Lagt til støtte for markørinjeksjon for PDF/R-1 (ISO 23504-1:2020): TPdf.SaveAsPdfR løfter gjeldende dokument til en PDF/R-1-kompatibel fil (PDF-undergruppen for rasterbasert transport brukt for skannede dokumenter). Injeksjonen dekker kravene på filformatnivå som kan legges til ved etterbehandling — den unike
%PDF-raster-1.0-versjonsidentifikasjons-kommentaren skrevet mellom trailer-ordboken og startxref-nøkkelordet (§5), katalogordboken strippet ned til §6.3-hvitelisten (kun Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata overlever), Document Information Dictionary strippet til §6.4.3-hvitelisten (kun Creator / Producer / CreationDate / ModDate), en katalog-/Metadata-XMP-strøm som bærer de fire §6.4.4 tabell 1-oppføringene (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate), og en trailer-/ID-matrise - Lagt til TPdf.SaveAsPdfRToStream for PDF/R-utdata i minnet, og en kortform med standardvalg TPdf.SaveAsPdfR(FileName) for det vanlige tilfellet
- Lagt til TPdf.ValidatePdfR: sjekker en åpen PDF for PDF/R-1-samsvarsmerker (
%PDF-raster-x.y-bunntekst-kommentaren, overskriftsversjon, /Type /ObjStm-fravær, katalog-hvitelistesamsvar, Info-ordbok-hvitelistesamsvar, XMP-metadatastrøm-tilstedeværelse, trailer-/ID) og returnerer TPdfRValidationResult med det oppdagede konformitetsnivået og settet med funn - La til egenskapen TPdf.PdfRConformance: returnerer konformitetsnivået til det gjeldende åpne dokumentet (prc1, prcNone eller prcUnknown) uten å måtte kalle ValidatePdfR eksplisitt
- Nye typer eksportert i den nye enheten FPdfPdfr: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions. TPdfRSaveOptions.Default setter StripInfoOptionalEntries og StripCatalogOptionalEntries til True, slik at injektoren som standard produserer en katalog og Info-ordbok som følger §6.3 / §6.4.3; kallere kan sette disse til False for å bevare kildeoppføringene (utdataene vil da ikke oppfylle disse PDF/R-klausulene, men andre markører blir værende)
- Krav på innholdsnivå er fortsatt ansvar for kilde-PDF-en: per-side Contents-struktur (§6.5.1), MediaBox [0 0 w h]-form (§6.5.3), filterrestriksjoner (§6.2.2 — kun FlateDecode, CCITTFaxDecode bitonal, DCTDecode 8-bit grå/RGB), fravær av objektstrømmer (§6.2.4) og strip-oppsett per §6.6. Disse kan ikke håndheves ved etterbehandling — PDF/R er strukturelt et mye strengere delsett enn de andre PDF/x-standardene og krever at kildebytene genereres korrekt. ValidatePdfR viser filformat-problemene denne enheten kan oppdage; par med en TWAIN Working Group PDF/R-validator for full innholds-nivå-kontroll
- Oppdaterte TPdf.AboutInfo-strengen til å rapportere gjeldende produktversjon
Version 1.33.0
- La til støtte for markørinjeksjon for PDF/X (ISO 15930-familien): TPdf.SaveAsPdfX løfter gjeldende dokument til en PDF/X-1a:2001-, PDF/X-3:2002- eller PDF/X-4-kompatibel fil ved å etterbehandle basis-PDF-en med en inkrementell oppdatering. Injeksjonen dekker kravene på filformatnivå som kan legges til ved etterbehandling — en XMP-metadata-strøm som bærer pdfxid:GTS_PDFXVersion (og pdfxid:GTS_PDFXConformance for PDF/X-1a / PDF/X-3) pluss den samsvarende pdfaExtension:schemas-beskrivelsen, en omskrevet Document Information Dictionary med /GTS_PDFXVersion-, /GTS_PDFXConformance- og /Trapped-oppføringe, en oppdatert katalog med /OutputIntents [N 0 R] som refererer til en OutputIntent-ordbok med /S /GTS_PDFX og en innebygd ICC-profil, og en trailer-/ID-matrise
- Lagt til TPdf.SaveAsPdfXToStream for PDF/X-utdata i minnet, og en kortform med standardvalg TPdf.SaveAsPdfX(FileName) som produserer PDF/X-4 med den innebygde sRGB IEC61966-2.1 OutputIntent (3144 bytes, identisk med profilen som brukes av SaveAsPdfA)
- La til TPdf.ValidatePdfX: kontrollerer en åpen PDF for PDF/X-kompatibilitetsmarkører (XMP pdfxid-identifikator og samsvar med verdien i Info-ordboken, pdfxid extension schema-beskrivelse, /OutputIntents-array med /DestOutputProfile, Title-tilstedeværelse, trailer /ID, krypteringsstatus, tilstedeværelse av xmp:CreateDate / xmp:ModifyDate) og returnerer TPdfXValidationResult med det oppdagede nivået og settet med funn
- La til egenskapen TPdf.PdfXConformance: returnerer konformitetsnivået til det gjeldende åpne dokumentet (pxc1a, pxc3, pxc4, pxcNone eller pxcUnknown) uten å måtte kalle ValidatePdfX eksplisitt. XMP-versjonsstrengen analyseres for å skille mellom de tre konformitetsnivåene
- Nye typer eksportert i den nye enheten FPdfPdfx: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptunspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions. TPdfXSaveOptions.Default retter seg mot PDF/X-4 med sRGB-OutputIntent og /Trapped /False; kallere kan overstyre Conformance, levere en CMYK IccProfileData-blob for kommersielle utskrifts-arbeidsflyter, eller endre OutputCondition/OutputConditionIdentifier/RegistryName for å peke på en spesifikk ICC-karakteriseringsregister-oppføring (f.eks. FOGRA39, GRACoL2006_Coated1v2)
- Krav på innholdsnivå (alle fonter innebygd, ingen JavaScript, ingen synlige merknader, OPI-forbud, transparensregler for PDF/X-1a / PDF/X-3 osv.) er fortsatt dokumentforfatterens ansvar og PDFiums renderingslinje. Koble ValidatePdfX med et preflight-verktøy som callas pdfaPilot eller Ghent PDF Workgroup Output Suite for full konformitetskontroll
- Oppdaterte TPdf.AboutInfo-strengen til å rapportere gjeldende produktversjon
Version 1.32.0
- La til støtte for markørinjeksjon for PDF/E-1 (ISO 24517-1:2008): TPdf.SaveAsPdfE løfter gjeldende dokument til en PDF/E-1-kompatibel fil ved å etterbehandle basis-PDF-en med en inkrementell oppdatering. Injeksjonen dekker kravene på filformatnivå som kan legges til ved etterbehandling — en XMP-metadata-strøm som bærer pdfe:ISO_PDFEVersion = "PDF/E-1" pluss den samsvarende pdfaExtension:schemas-beskrivelsen, en omskrevet Document Information Dictionary med den obligatoriske /ISO_PDFEVersion (PDF/E-1)-oppføringen som kreves av §5, Info-XMP-bro-blokkene 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-matrise som kreves av §6.2
- Lagt til TPdf.SaveAsPdfEToStream for PDF/E-utdata i minnet og en kortform med standardvalg TPdf.SaveAsPdfE(FileName) for det vanlige tilfellet
- La til TPdf.ValidatePdfE: kontrollerer en åpen PDF for PDF/E-1-kompatibilitetsmarkører (tilstedeværelse av XMP pdfe:ISO_PDFEVersion og samsvar med verdien i Info-ordboken, pdfe extension schema-beskrivelse, oppføringen Info-ordbok /ISO_PDFEVersion, trailer /ID, tilstedeværelse av xmp:CreateDate / xmp:ModifyDate) og returnerer et strukturert resultat med det oppdagede konformitetsnivået og settet med funn
- La til egenskapen TPdf.PdfEConformance: returnerer konformitetsnivået til det gjeldende åpne dokumentet (pec1, pecNone eller pecUnknown) uten å måtte kalle ValidatePdfE eksplisitt
- Nye typer eksportert i den nye enheten FPdfPdfe: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Info-ordbok-omskrivingen er en førstegangs-hendelse for PDFiumPas sin PDF/x-etterbehandlings-sti — den skriver om det eksisterende Info-objektet med samme objektnummer (slik at xref-delseksjon-/trailer-/Info-referansen forblir gyldig) og syntetiserer en fersk Info-ordbok når kilde-trailer-en ikke har noen /Info-oppføring. PDFium selv sender ut en Info-ordbok i hver SaveAs-utdata, slik at det vanlige tilfellet er omskrivingsstien
- Innholds-nivå-krav (skrifttype-innebygging, ToUnicode CMaps, forbudte XObjects-/ExtGState-nøkler-/XFA-skjemaer osv.) forblir dokumentforfatterens ansvar — SaveAsPdfE fester filformat-merke-endringene, men endrer ikke sideinnhold eller fjerner forbudte funksjoner
- Oppdaterte TPdf.AboutInfo-strengen til å rapportere gjeldende produktversjon
Version 1.31.0
- Lagt til støtte for markørinjeksjon for PDF/UA-1 (ISO 14289-1:2014): TPdf.SaveAsPdfUa løfter gjeldende dokument til en PDF/UA-1-kompatibel fil ved å etterbehandle basis-PDF-en med en inkrementell oppdatering. Injeksjonen dekker kravene på filformatnivå som kan håndheves ved etterbehandling — en XMP-metadata-strøm som bærer pdfuaid:part = 1 pluss den samsvarende pdfaExtension:schemas-beskrivelsen, obligatorisk dc:title, katalog /MarkInfo << /Marked true /Suspects false >> og /ViewerPreferences << /DisplayDocTitle true >> (kun når kilden ikke har noen), katalog /Lang (når kalleren leverer en BCP 47-tagg) og en trailer-/ID-matrise
- Lagt til TPdf.SaveAsPdfUaToStream for PDF/UA-utdata i minnet, og en kortform med standardvalg TPdf.SaveAsPdfUa(FileName) for det vanlige tilfellet
- Lagt til TPdf.ValidatePdfUa: sjekker en åpen PDF for PDF/UA-1-samsvarsmerker (StructTreeRoot-tilstedeværelse, /Lang, /MarkInfo /Marked true med /Suspects = false, /ViewerPreferences /DisplayDocTitle true, XMP pdfuaid:part-identifikator, dc:title-tilstedeværelse, trailer-/ID, krypteringsstatus) og returnerer et strukturert resultat med det oppdagede konformitetsnivået og settet med funn
- La til egenskapen TPdf.PdfUaConformance: returnerer konformitetsnivået til det gjeldende åpne dokumentet (puc1, pucNone eller pucUnknown) uten å måtte kalle ValidatePdfUa eksplisitt
- Nye typer eksportert i den nye enheten FPdfPdfua: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- Feltene Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language som er tomme i TPdfUaSaveOptions fylles automatisk fra FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, slik at eksisterende kallere kan lagre med én linje
- Krav på innholdsnivå (fullstendighet i StructTreeRoot-tagging, Figure Alt-tekst, ToUnicode CMaps, fontinnebygging osv.) er fortsatt dokumentforfatterens ansvar — SaveAsPdfUa legger til filformatmarkørene, men endrer ikke sideinnhold eller finner opp tagger. ValidatePdfUa eksponerer fraværet av StructTreeRoot som pvuaiMissingStructTreeRoot slik at kallere kan rute utaggede dokumenter gjennom en separat tagging-pipeline
- Oppdaterte TPdf.AboutInfo-strengen til å rapportere gjeldende produktversjon
Version 1.30.0
- PDF/A-1b-utdata oppfyller nå ISO 19005-1-kravene (med Cor.1:2007) for ekvivalens mellom Document Information Dictionary og XMP: hver Info-ordbokoppføring PDFium skriver inn i basis-PDF-en speiles inn i XMP-pakken, inkludert Title (dc:title), Author (dc:creator), Subject (dc:description per Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) og ModDate (xmp:ModifyDate). xmp:MetadataDate sendes også ut
- Trailer-en til et PDF/A-dokument inneholder nå alltid en /ID-matrise (ISO 19005-1 6.1.3 absolutt krav). Når TPdf.SaveAsPdfA behandler et dokument hvis kilde allerede har en filidentifikator, gjenbrukes de eksisterende 16-byte permanente og endrede ID-ene; ellers utledes en deterministisk 16-byte tilbakefalls-ID fra kildebytene
- Den injiserte XMP-en bygger nå inn pdfaid-utvidelsesskjema-beskrivelsen som kreves av ISO 19005-1 6.7.8 (erstattet av Cor.1) — pdfaid behandles som et utvidelsesskjema i forhold til XMP Specification 2004, slik at alle samsvarende filer må deklarere eiendomsnavnene, verditypene og kategoriene i pdfaExtension:schemas-beholderen
- TPdfASaveOptions fikk fem nye valgfrie felt: Producer, CreationDate, ModDate (PDF-datostrenger på formen “D:YYYYMMDDHHmmSSOHH'mm'”), DocumentId og InstanceId (16-byte bytestrenger for trailer-/ID-matrisen). TPdf.SaveAsPdfA / SaveAsPdfAToStream fyller ut de manglende feltene automatisk fra FPDF_GetMetaText og FPDF_GetFileIdentifier, slik at eksisterende kallere fortsetter å fungere uten endringer
- TPdf.ValidatePdfA / TPdf.PdfAConformance rapporterer nå tre ekstra problemer: pvaiMissingTrailerId (ingen /ID i trailer-en), pvaiMissingXmpDates (xmp:CreateDate eller xmp:ModifyDate mangler) og pvaiMissingExtensionSchema (pdfaid-utvidelsesskjema-beskrivelse fraværende)
- Ikke-ASCII-tegn i Title, Author, Subject, Keywords, Creator og Producer kodes nå som UTF-8 i XMP-pakken (XMP Specification krever UTF-8), slik at flerspråklige metadata bevares gjennom SaveAsPdfA
- Oppdaterte TPdf.AboutInfo-strengen til å rapportere gjeldende produktversjon
Version 1.29.0
- Oppdaterte de medfølgende PDFium-DLL-ene (Win32 og Win64, både standard- og V8-bygg) til upstream-snapshoten fra 2026-05-22, og tok inn upstream-fikser for krasjbaner i FPDFText_SetText / FPDFText_SetCharcodes og diverse intern hardening fra PDFium-prosjektet
- Eksponerte PDFiums nye FPDF_SUBSET_NEW_FONTS-lagringsflagg i FPdfPageOps.pas, noe som gjør at FPDF_SaveAsCopy-kallere kan be om automatisk delmengde-deling av innebygde skrifttypefiler for nylig tillagte tekstobjekter. De eksisterende konstantene FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL og FPDF_REMOVE_SECURITY er nå definert med oppstrøms bit-skift-formen (den eldre numeriske verdien 3 er bevart som FPDF_REMOVE_SECURITY_DEPRECATED for binærkompatibilitet)
- La til enumen FPDF_FONT_BACKEND_TYPE (FREETYPE / FONTATIONS) og det samsvarende feltet m_FontLibraryType på FPDF_LIBRARY_CONFIG i FPdfView.pas, slik at applikasjoner som initialiserer PDFium med Skia-rendereren nå kan velge font-backend ved oppstart
- Oppdaterte signaturen til TFPDFPage_InsertObject for å matche upstream: C-funksjonen returnerer nå FPDF_BOOL (TRUE ved suksess, FALSE hvis page_object er NULL eller eierskaps-overføringen feiler) i stedet for void. Eksisterende PDFiumPas-kallere fortsetter å kompilere uendret siden Delphi / FPC lar deg ignorere returverdien til en funksjon
- Korrigerte TPdf.AboutInfo-strengen slik at den rapporterer gjeldende produktversjon (var utdatert på v1.27.0 siden den dokumentasjonsbare v1.28.0-utgivelsen)
Version 1.28.0
- Betraktelig utvidet dokumentasjonen på siden på tvers av hele API-referansen: hver egenskap-, metode-, hendelses- og globale funksjons-oppføring har nå et 3-avsnitts Beskrivelse, en Merknader-liste, et flerlinjets Delphi Eksempel og en rikere Se også-blokk — som dekker 200+ tidligere tynne sider inkludert alle TPdf-tellere, metadata-hentere, skrifttype- og tegn-aksessorer, side-nivå-egenskaper, indekserte poster, dokument-nivå-metoder og hele TPdfView-tilstands-/visnings-/hendelses-overflaten
- Finjusterte hjelpelayouten for å matche losLab-visuelle baseline brukt i HotXLS-referansen: matchet h1/h2-størrelser, samlet stilene for API-navigasjonsrutenettet i det delte StyleSheet, og fjernet de sidestilte CSS-overstyringene på Navigation.html
- Dokumentasjonen leveres nå med et hjelpeskript (Docs\Build-Expand-Entries.ps1) som regenererer berikelsen av oppføringssidene fra én enkelt datatabell for reproduserbar vedlikehold
Version 1.27.0
- La til støtte for opprettelse av PDF/A-1b: TPdf.SaveAsPdfA lagrer ethvert åpent dokument som en PDF/A-1b-kompatibel fil ved å etterbehandle basis-PDF-en med en inkrementell oppdatering som injiserer en XMP-metadata-strøm, en sRGB ICC OutputIntent og en oppdatert dokumentkatalog — alt uten behov for ekstra DLL-API-er. Fungerer på alle plattformer som støttes av PDFiumPas
- Lagt til TPdf.SaveAsPdfAToStream for PDF/A-utdata i minnet
- La til TPdf.ValidatePdfA: kontrollerer en åpen PDF for PDF/A-kompatibilitet (XMP pdfaid-markører, OutputIntent med innebygd ICC-profil, kryptering) og returnerer et strukturert resultat med det oppdagede konformitetsnivået og et sett med spesifikke funn
- La til egenskapen TPdf.PdfAConformance: returnerer konformitetsnivået til det gjeldende åpne dokumentet (pac1b, pac1a, pac2b, pac3b, pacNone eller pacUnknown) uten å måtte kalle ValidatePdfA eksplisitt
- Nye typer eksportert: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (i ny enhet FPdfPdfa.pas)
- SaveAsPdfA støtter en egendefinert ICC-profil via TPdfASaveOptions.IccProfileData; når den er tom brukes den innebygde sRGB IEC61966-2.1-profilen (HP/Microsoft, 3144 bytes) automatisk
- Erstattet den monolittiske HTML-referansen med et omstrukturert nett-hjelpesystem: 302 individuelle API-oppføringssider (én per egenskap, metode, hendelse og global funksjon) som dekker TPdf og TPdfView, hver med en full beskrivelse, parameter-tabell, Delphi-kodeeksempel og Se også-lenker
- Lagt til Navigation.html: en omfattende én-side API-navigasjonsindeks organisert i seks seksjoner (TPdf-egenskaper/metoder/hendelser, TPdfView-egenskaper/metoder/hendelser, globale funksjoner) med et 5-kolonne flex-rutenett for rask skanning
- Bygde TPdf.html og TPdfView.html opp på nytt som kompakte oversiktssider for komponentene, med type-referansedelene (Types, Constants, Global Variables) bevart og lenking videre til de enkelte oppføringssidene for alle medlemmer
- Lagt til fulltekst-søk drevet av Search.js med trinnvis klient-sidig matching på tvers av alle 312 indekserte sider
- Oppdaterte alle navigasjonsfeltene på hele nettstedet til å peke til Navigation.html
Version 1.26.0
- Lagt til Demo/Lazarus/BatchExport, LCL-porten av v1.14.0 Delphi BatchExport-demoen. Samme funksjonssett: flertalls-PDF -> JPG-eksport med per-fil samlet framgang, per-side gjeldende framgang, DPI-/kvalitets-/passord-inndata og en samarbeidende-avbrettpart støttet av IPdfCancellationToken. Utdatamappen åpnes i plattformens filbehandler når uttrekket fullføres vellykket
Version 1.25.0
- La til gjenbruk av Form XObject-sider i TPdf, noe som muliggjør arbeidsflyter for vannmerke, maloverlegg og «stemple én side på mange»: CreateXObjectFromPage lager et gjenbrukbart håndtak fra en hvilken som helst side i et annet dokument; InsertFormObjectFromXObject setter inn ÉN kopi av den innpakkede siden i gjeldende side. Returnerer den innsatte FPDF_PAGEOBJECT slik at kalleren kan plassere / skalere / rotere den med FPDFPageObj_SetMatrix og TPdfMatrix-hjelperne fra v1.9.0
- Den nye TPdfXObject-Pascal-klassen omslutter PDFiums FPDF_XOBJECT-håndtak og lukker det automatisk i destruktoren sin, noe som eliminerer den manuelle FPDF_CloseXObject-seremonien
- Utvidet regresjonssuitene for Delphi og Lazarus til 147 tilfeller hver, og C++Builder-suiten til 123 tilfeller, som dekker kontraktene for oppretting av håndtak og innsetting av sideobjekter
Version 1.24.0
- Lagt til TPdf.RenderPageProgressive — en avbrytbar variant av RenderPage som driver PDFiums progressive opptegnings-løkke og avstemmer en v1.7.0 IPdfCancellationToken mellom iterasjonene, slik at lange høy-DPI-opptegninger kan avbryte midt-side i stedet for å blokkere kalleren til fullføring
- Returnerer en TPdfProgressiveStatus-verdi: prsDone, prsCancelled eller prsFailed. Send AToken = nil for å rendere helt ferdig uten noen pause (ingen mulighet for prsCancelled)
- Bruker den samme zero-copy-hurtigbanen som ble introdusert i v1.21.0 — PDFium rendrer direkte inn i mål-TBitmapens DIB. Den samme gamle reservebanen gjelder når DIB-en ikke kan pakkes inn
- Utvidet regresjonssuitene for Delphi og Lazarus til 145 tilfeller hver, og C++Builder-suiten til 121 tilfeller, som dekker nil-token (fullfører), forhåndsannullert token (prsCancelled) og piksel-ekvivalens med synkron RenderPage på en levende token
Version 1.23.0
- Lagt til seks nye TPdfView-metoder som viser PDFiums skjema-widget-tekstvalg og Angre/Gjør om til applikasjoner: GetSelectedFormText returnerer den gjeldende valgte teksten inne i den fokuserte skjema-widgeten; SelectAllFormText velger hvert tegn; FormUndo / FormRedo / FormCanUndo / FormCanRedo driver den fokuserte widgetens redigeringshistorikk. De underliggende PDFium-API-ene var allerede bundet, men hadde ikke noe høyt-nivå-inngangspunkt. Alle seks kortslutter trygt når viseren er inaktiv eller dokumentet ikke har noen fokusert AcroForm-widget
- Utvidet regresjonssuitene for Delphi og Lazarus til 142 tilfeller hver, og C++Builder-suiten til 119 tilfeller, som dekker no-form-no-focus-kontrakten for hver nye metode
Version 1.22.0
- Lagt til sidekomposisjons-omslagsmetoder til TPdf: ImportPagesByIndex tar en null-basert indeks-matrise for å kopiere spesifikke sider fra et kildedokument; ImportNPagesToOne returnerer en helt ny TPdf hvis sider er N-up-kompositter av dette dokumentet; MovePages endrer siderekkefølgen på plass. De underliggende PDFium-API-ene var allerede bundet, men hadde ikke noe Pascal-vennlig inngangspunkt
- ImportPagesByIndex godtar en tom array for å importere hver kildeside (tilsvarer å sende nil på C ABI-nivå)
- Utvidet regresjonssuitene for Delphi og Lazarus til 136 tilfeller hver, og C++Builder-suiten til 115 tilfeller, som dekker delmengdeimport, import av hele dokumentet, siderekkefølge og N-up-kompositt
Version 1.21.0
- Forbedret opptegningsytelsen ved å bytte TPdf.RenderPage / TPdf.RenderTile (og de tilsvarende TPdfView-hjelperne) til en null-kopiert utdata-sti. PDFium skriver nå direkte inn i mål-TBitmap-ens DIB-buffer i stedet for i en intern buffer som deretter ble kopiert rad for rad, noe som sparer én bredde x høyde x 4 byte minnekopi per opptegning. Forbedringen er mest merkbar ved høy DPI (miniatyr-paneler, utskriftskvalitet-eksport, parti-eksport)
- Den eldre per-skannelinje-stien beholdes som et sikkerhetstiltak for det usannsynlige tilfellet der mål-DIB-en ikke kan brytes inn (ekstreme dimensjoner, uvanlig stride, OOM). Atferden er byte-identisk mellom de to stiende, bare tregere i tilbakefallet
- Utvidet Delphi- og Lazarus-regresjonssuitene til 132 tilfeller hver, og C++Builder-suiten til 112 tilfeller, som dekker oppgradering av kaller-bitmap til pf32bit, dimensjons-rundtur og en fornuftstest for store bitmap-stride
Version 1.20.0
- La til utheving av søkeresultater i TPdfView: HighlightSearchText(Text, MatchCase, MatchWholeWord) skanner gjeldende visningsside og returnerer antallet treff som ble funnet, og maler en HighlightColor-maske over hvert treff ved hver ny tegning. ClearHighlight fjerner uthevingene; å bytte visning til en annen side tømmer dem automatisk siden treffene er sidespesifikke
- HighlightColor har standardverdien clYellow og er publisert slik at applikasjoner kan tematisere uthevingen for å matche UI-paletten sin
- Utvidet Delphi- og Lazarus-regresjonssuitene til 129 tilfeller hver, og C++Builder-suiten til 109 tilfeller, som dekker standardfarge, farge-rundtur, “ekte fixture-ord-treff” mot sample.pdf-strengen og kontrakten om at “manglende ord returnerer null treff”
Version 1.19.0
- La til egenskapen FitMode i TPdfView med fire verdier: pfmNone (manuelt zoom), pfmActualSize (100%), pfmFitPage (hele siden passer i visningsområdet) og pfmFitWidth (sidebredden passer visningsbredden). Den aktive tilpasningsmodusen brukes på nytt automatisk ved Resize og når gjeldende side endres, slik at lange dokumenter med blandede sidestørrelser forblir riktig innrammet
- Å sette Zoom direkte avbryter den aktive tilpasningsmodusen (FitMode går tilbake til pfmNone), i samsvar med standard PDF-viser-konvensjonen der å skrive inn en zoom-verdi faller ut av Fit Page / Fit Width
- Standard er pfmNone slik at eksisterende applikasjoner beholder sin eksplisitte-zoom-atferd
- Utvidet regresjonssuitene for Delphi og Lazarus til 124 tilfeller hver, og C++Builder-suiten til 106 tilfeller, som dekker standardverdi, modus round-trip, fit-page som gir ekte zoom på et lastet dokument, og at manuell zoom avbryter fit-mode
Version 1.18.0
- La til egenskapen PageColor i TPdfView, slik at bakgrunnen til den renderede PDF-siden kobles fra Color i den omkringliggende kontrollen. Standardverdien er clWhite, så PDF-sider rendres nå som papirhvitt uansett temaet til vertsapplikasjonen. Mørkmodus-visninger kan nå holde rulleområdet mørkt mens den faktiske PDF-siden forblir hvit (eller hvilken som helst farge applikasjonen velger)
- Atferdsendring: applikasjoner som tidligere satte TPdfView.Color for å omfarge PDF-siden, bør i stedet sette PageColor. Standardopplevelsen forbedres for det vanlige tilfellet (hvite sider på tematiserte kontrollbakgrunner) uten noen kodeendring
- Utvidet regresjonssuitene for Delphi og Lazarus til 120 tilfeller hver, og C++Builder-suiten til 103 tilfeller, som dekker standardverdi og farge round-trip
Version 1.17.0
- Lagt til av/på-brytere for nedlåsing av brukerinndata til TPdfView slik at applikasjoner som bygger inn viseren i kiosker, forhåndsvisningspaneler eller skrivebeskyttede kontekster kan deaktivere navigasjons-gester uten å underklasse: AllowUserPageChange styrer de nye PgUp-/PgDn-/Ctrl+Hjem-/Ctrl+End-tastatursnarveiene; ChangePageOnMouseScrolling styrer de nye hjul-opp-/hjul-ned-sidehoppene; AllowUserTextSelection er reservert for den fremtidige muse-dra-tekstvalg-stien. Alle tre er standardisert til True slik at eksisterende applikasjoner oppgraderes uten atferdsendring
- Musehjul-sidenavigasjon hopper over Ctrl+hjul slik at applikasjoner kan holde Ctrl+hjul reservert for zoom
- Utvidet regresjonssuitene for Delphi og Lazarus til 118 tilfeller hver, og C++Builder-suiten til 101 tilfeller, som dekker standardverdier og bryter round-trip
Version 1.16.2
- Utvidet regresjonsdekningen for TPdfView med annotasjonslenkeklikk når visningssiden er forskjellig fra den tilknyttede TPdf-siden, ved å bruke en ekte hodeløs museklikkbane på tvers av Delphi, Lazarus og C++Builder
- Delphi- og Lazarus-suitene kjører nå 114 tilfeller hver, og C++Builder kjører nå 99 tilfeller
Version 1.16.1
- Fikset håndteringen av lenkeklikk i TPdfView slik at automatiske annotasjons- og nettlenkehandlinger bruker siden som vises av visningen, selv når den tilknyttede TPdf-komponenten står på en annen side
- Herdet TPdfThumbnailView mot dinglende Pdf-referanser når den koblede TPdf-komponenten ødelegges
- Lagt til regresjonsdekning for miniatyr-referanse-levetid; Delphi- og Lazarus-suitene kjører nå 113 tilfeller hver, og C++Builder kjører nå 98 tilfeller
- Synkroniserte README, testdokumentasjon, HTML Help-søk-/indeksinnhold og genererte C++-pakkeutdata med integrasjonsoppdateringene fra v1.7.0 til v1.16.0
Version 1.16.0
- Lagt til en ny Delphi PrintDialog-demo (Demo/Delphi/PrintDialog) som fokuserer på N-up-utskrift (1/2/4/9 sider per ark) med oddetalls-/partalls-side-filtrering, gråtone-opptegning og valgfrie 1-piksels cellekanter. Den er en bevisst liten følgesvenn til den eksisterende PrintPDF-demoen, som allerede dekker forhåndsvisning, nylige filer, zoom og skalering
Version 1.15.0
- La til en ny TPdfThumbnailView-komponent (FPdfThumbnail-enhet) som rendrer én miniatyr per rad i et rullbart sidepanel med utheving ved pek og valg, samt navigering ved klikk. Den er laget for å stå ved siden av en TPdfView slik at sluttbrukere kan bla gjennom et langt dokument side for side
- Komponenten er registrert på losLab-palettfanen sammen med TPdf og TPdfView; viktige egenskaper: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor og hendelsen OnPageClick
- Utvidet regresjonssuitene for Delphi og Lazarus til 112 tilfeller hver, og C++Builder-suiten til 97 tilfeller, som dekker standardverdier, round-trip for miniatyrstørrelse, klemming av ekstremverdier, farg round-trip og tilordning av hendelsesbehandler
Version 1.14.0
- Lagt til en ny Delphi BatchExport-demo (Demo/Delphi/BatchExport) som viser hvordan man konverterer mange PDF-filer til JPG i én omgang ved bruk av TPdf.LoadCustomDocument for strømmende lasting, IPdfCancellationToken for samarbeidende avbrytelse og per-fil samlet- + per-side-framgangslinjer. Demon bruker én TPdf-instans per fil (PDFium selv er ikke trådsikker) og åpner utdatamappen i Utforskeren når uttrekket fullføres vellykket
Version 1.13.0
- Lagt til et asynkron-opptegnings-UI-overlegg til TPdfView gjennom tre nye egenskaper: AsyncRendering, LoadingText og LoadingColor. Når AsyncRendering er True tegner den enkel-side-male-stien en liten “Loading...”-indikator over den opptegnede siden slik at applikasjoner som bruker sin egen arbeider for lange opptegninger deler et konsekvent visuelt tegn
- Standardverdiene bevarer den eksisterende oppførselen: AsyncRendering er False, så applikasjoner som ikke slår det på ser ingen visuell endring
- Dokumentasjonen presiserer at PDFium selv ikke er trådsikker — å faktisk avlaste opptegningen til en arbeider krever at kalleren holder én TPdf per arbeider; den kommende parti-eksport-demoen viser det mønsteret
- Utvidet regresjonssuitene for Delphi og Lazarus til 106 tilfeller hver, og C++Builder-suiten til 93 tilfeller, som dekker standardverdier og round-trip for tre egenskaper
Version 1.12.0
- Lagt til klikk-drevet lenke-håndtering til TPdfView. Den nye LinkOptions-egenskapen styrer automatisk atferd for de fire PDF-lenke-handlingstypene: goto (sidehopp), URI (ShellExecute), launch (ShellExecute) og innebygd GotoR (reservert). Standarder aktiverer loAutoGoto og loAutoOpenURI; loAutoLaunch og loAutoEmbeddedGoto forblir av slik at et feil klikk ikke kan kjøre et vilkårlig program
- La til hendelsene OnAnnotationLinkClick og OnWebLinkClick som utløses før enhver automatisk handling og lar applikasjoner inspisere lenken, merke den Handled eller omdirigere den (for eksempel til en sikkerhetsforespørsel)
- Lenkeklikk-gjenkjenning kjører bare når gesten er et klikk snarere enn en dra, ved bruk av en fersk MouseDown-anker slik at panorerings-gester fortsatt flyter gjennom den eksisterende rullestien uendret
- Utvidet regresjonssuitene for Delphi og Lazarus til 102 tilfeller hver, og C++Builder-suiten til 91 tilfeller, som dekker standard LinkOptions, set round-trip og tilordning av hendelsesbehandler
Version 1.11.0
- Lagt til visuell finpuss til TPdfView: egenskapene PageShadowSize, PageShadowColor og PageBorderColor maler en valgfri slagskygge under side-rektangelet og en én-piksel-kant rundt det. Standarder bevarer det forrige flate utseendet (PageShadowSize = 0; kant tegnes i standard clBlack, men blander seg inn i den standard hvite bakgrunnen frem til kallere endrer fargene)
- La til egenskapen SmoothScroll som en opt-in-flagg for fremtidig inkrementell rulleanimasjon; egenskapen round-trip-er i dag og er koblet opp slik at applikasjoner kan lagre preferansen, mens renderingsdelen fortsatt bruker den eksisterende umiddelbare rulleoppførselen
- Utvidet regresjonssuitene for Delphi og Lazarus til 98 tilfeller hver, og C++Builder-suiten til 89 tilfeller, som dekker standardverdier, round-trip for egenskaper og klemming av negativ skyggestørrelse
Version 1.10.0
- La til direkte bildeinnsetting gjennom de nye overbelastningene TPdf.AddImage og TPdfView.AddImage som tar enten en filsti eller en TBitmap, i tillegg til den eksisterende TPicture-baserte AddPicture. AddImage(FileName) gjenkjenner alle formater som er registrert med VCL- eller LCL-grafikkenhetene (BMP, PNG via PngImage-enheten, JPG osv.) og går gjennom samme pipeline som AddPicture slik at oppførselen er identisk
- AddImage(TBitmap) hopper over TPicture-mellomleddet, noe som forenkler kallere som allerede holder en TBitmap fra opptegnings- eller partigenererings-arbeid
- Utvidet regresjonssuitene for Delphi og Lazarus til 92 tilfeller hver, og C++Builder-suiten til 84 tilfeller, som dekker bildeinnsetting, sideobjektgrenser, avvisning av nil-bitmap og innlasting av BMP-filer
Version 1.9.0
- La til støtte for høynivå transformasjonsmatriser gjennom den nye TPdfMatrix-klassen i FPdfMatrix-enheten. TPdfMatrix pakker PDFiums FS_MATRIX inn med et objektorientert API for Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew og Multiply, egnet for å sette sammen transformasjoner før de sendes til FPDFPageObj_SetMatrix og lignende PDFium-API-er
- TPdfMatrix.Multiply tar et korrekt øyeblikksbilde av de seks matriseelementene før de nye radverdiene beregnes, noe som retter et latent problem der de alternative Pascal-implementeringene overskriver tidligere elementer under det samme kallet og gir feil resultater for enhver sammensetning utover ren translasjon
- Utvidet Delphi- og Lazarus-regresjonssuitene til 88 tilfeller hver, og C++Builder-suiten til 81 tilfeller, som dekker identitet, tilbakestilling, translasjon / skalering / vending, post-multiplikativ sammensetnings-rekkefølge og Multiply-regresjonstilfellet
Version 1.8.0
- La til on-demand-strømlasting gjennom den nye metoden TPdf.LoadCustomDocument(AStream, AOwnsStream) og hjelpeklassen TPdfStreamAdapter, støttet av PDFiums FPDF_LoadCustomDocument. PDFium leser nå blokker fra den leverte TStream bare når det trengs, slik at svært store eller eksterne PDF-er ikke lenger krever en forhåndskopi i minnet
- Lagt til valgfri strøm-eierskap: å sende AOwnsStream = True overfører TStream-ens levetid til TPdf, som frigjør den når UnloadDocument kjøres
- Utvidet Delphi- og Lazarus-regresjonssuitene til 79 tilfeller hver, og C++Builder-suiten til 75 tilfeller, som dekker strømmende lasting via TFileStream, rydding av eid strøm og kontrakten om at eksternt eid strøm overlever utlasting
Version 1.7.0
- Lagt til samarbeidende asynkron-avbrytelses-primitiver i den nye FPdfAsync-enheten, som eksponerer IPdfCancellationToken / IPdfCancellationTokenSource og en gjenbrukbar PdfNoCancellationToken-singleton slik at langkjørende opptegnings- og eksport-arbeidsflyter kan støtte ryddig avbryt-fra-UI-semantikk
- Lagt til en lett TPdfFuture<T>-hjelper som kjører en arbeider på en bakgrunnstråd og posterer TPdfFutureResult<T>-konvolutten tilbake til hovedtråden, som skiller suksess-, avbrytelses- og feil-tilfeller
- Utvidet regresjonssuitene for Delphi og Lazarus til 76 tilfeller hver, og C++Builder-suiten til 73 tilfeller, med delt dekning av avbruddstilstand, idempotent avbryt, callback-fordeling og registrering etter avbrudd
Version 1.6.10
- La til høynivåtgang til TPdf.PrintPageRanges for utskriftsintervallene i PDF-visningspreferansen, og returnerer sideintervaller med én-basert nummerering for applikasjonskoden
- Lagt til TPdf.SetFormFieldFlags / SetFormFieldFlagsAt og samsvarende TPdfView-hjelpere slik at applikasjoner kan oppdatere AcroForm-feltflagg gjennom det offentlige API-et, inkludert dekning av passord- og flervalgs-flagg
- Herdet PDFium-bindingens ABI-dekning for Windows-størrelse FPDF_DWORD, FPDF_FILEACCESS-tilbakekallinger og V8-innebygger-spor-felt
Version 1.6.9
- La til lavnivå bindinger for Skia-rendering for de nyeksponerte API-ene FPDF_RenderPageSkia og FPDF_FFLDrawSkia i de medfølgende standard- og V8-PDFium-DLL-ene
- Utvidet kontrollene av offentlig bindingsdekning slik at standard- og V8-DLL-lasting nå verifiserer Skia-opptegnings-inngangspunktene ved siden av de eksisterende V8/XFA-evne-prøvene
Version 1.6.8
- Lagt til TPdf.SetTextPositions og TPdfSingleArray for å sette per-tegn-posisjoner på eksisterende tekstobjekter gjennom det nylig eksporterte FPDFText_SetPositions-API-et
- Opphøyde FPDFText_SetPositions til en påkrevd binding for de gjeldende medfølgende PDFium DLL-ene, samtidig som vi bekreftet at Skia-renderinngangspunktene fortsatt ikke er tilgjengelige fordi DLL-ene fremdeles ikke eksporterer dem
- Utvidet Delphi-, C++Builder- og Lazarus-regresjonssuitene til 65 tilfeller hver med tekstposisjons-dekning
Version 1.6.7
- Lagt til høyt-nivå TPdf-tilgang til dokument-JavaScript-navnetre-handlinger, som returnerer handlingsnavn og skript gjennom JavaScriptAction og JavaScriptActions
- Lagt til TPdf.FileIdentifier for å lese permanente og endrede trailer-ID-er som binære TBytes uten PDFium-terminator-byten
- La til TPdf.PageBox, GetPageBox og SetPageBox for MediaBox, CropBox, BleedBox, TrimBox og ArtBox på gjeldende side
- Bekreftet at de gjeldende medfølgende PDFium DLL-ene bare lar Skia-renderinngangspunktene være utilgjengelige ved kjøring fordi disse eksportene ikke finnes
- Utvidet regresjonssuitene for Delphi, C++Builder og Lazarus til 64 saker hver med dekning for dokument-JavaScript, trailer ID og sideboks
Version 1.6.6
- La til kjøretidsstøtte for den medfølgende V8-aktiverte PDFium DLL-en. Når du setter EnableV8Engine før lasting, velges nå pdfium.v8.dll fra DLLs\Win32- eller DLLs\Win64-treet og V8/XFA-bare bindinger eksponeres når den lastede DLL-en tilbyr dem
- La til V8FunksjonerAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags og lave valgfrie bindinger for FPDF_BStr_*, FPDF_GetRecommendedV8Flags og FPDF_GetArrayBufferAllocatorSharedInstance
- Gjorde FPDFText_SetPositions valgfritt slik at PDFiumPas fortsetter å laste med PDFium-DLL-er som ikke eksporterer den eksperimentelle tekstposisjons-setteren
- Utvidet regresjonssuitene for Delphi, C++Builder og Lazarus til 61 saker hver med kapasitetsdekning for standard-DLL og V8-DLL
Version 1.6.5
- Lagt til inspeksjon av tagged PDF-strukturetre gjennom TPdf.StructureElements og TPdfView.StructureElements, inkludert elementtype, tittel, alternerende tekst, faktisk tekst, utvidelsestekst, språk, merket-innhold-ID-er, barn-tellinger og attributt-tellinger
- Lagt til valg av Windows PDFium-utskriftsmodus gjennom TPdfPrintMode og SetPdfPrintMode, som dekker EMF-, kun-tekst-, PostScript-, gjennomgangs-, bilde-maske- og Type 42-utskriftsmoduser
- Lagt til lavnivå-bindinger for de gjenværende offentlige standard-DLL PDFium-eksportene som dekker JavaScript-handlinger, merknadsskjema-flagg/skriftfarge, sideobjekt-aktiv tilstand, indeksert innsetting, innholdsmerke-flyttallsverdier, bilde-ICC-profildata, skjemaobjekt-fjerning og tekstposisjoner
- Utvidet Delphi-, C++Builder- og Lazarus-regresjonssuitene til 59 tilfeller hver med dekning av tagged PDF-strukturetre, utskriftsmodus og offentlig eksport-bindingsdekning
Version 1.6.4
- Oppdaterte Delphi-, C++Builder- og Lazarus-demoene til å åpne genererte PDF-er, eksportert tekst/bilder og partiutdata-mapper automatisk etter vellykket oppretting
Version 1.6.3
- Utvidet de justerte Delphi-, C++Builder- og Lazarus-regresjonssuitene til 56 tilfeller hver med TPdfView-GUI-dekning for tilpass-zoom-hjelpere, enhets-/side-koordinat-rundturer, tegn-treff-testing og muse-panorering gjennom skjult-vindu-viser-kontroller
- TPdfView-fiksturene bruker nå en eksplisitt visningsstørrelse og testbare delklasser som utøver beskyttede musehåndterere samtidig som suitene forblir helt uten brukergrensesnitt
Version 1.6.2
- Fikset TPdf.AddPage(0, ...) slik at den innsatte første siden blir den aktive siden umiddelbart. Eksisterende eksempelkode fortsetter å fungere, mens PageNumber nå rapporterer en gyldig én-basert side etter innsetting
- Synkroniserte Lazarus-pakkeversjonen og utvidet de justerte regresjonssuitene for Delphi, C++Builder og Lazarus til 52 saker hver
Version 1.6.1
- Fikset et feilaktig minimums-versjonskrav i v1.6.0 PDF-versjonssamsvars-validatoren: SetState-handlingen ble reklassifisert fra PDF 1.5 ned til PDF 1.2, i samsvar med PDF 1.2 Reference 6.9.9. PDF 1.3-/1.4-SaveAs-mål som inneholder SetState-handlinger lagres nå korrekt i stedet for å bli avvist
- La til samsvarende PDF 1.2-lexiske kontroller etter samme spesifikasjonsseksjon: Sound-, Movie- og NOP-handlingene samt Separation-fargerommet blokkeres nå når den valgte målversjonen er eldre enn PDF 1.2
- Utvidet regresjonssuitene for Delphi, C++Builder og Lazarus til 50 saker hver ved å legge til en positiv PDF 1.4 SetState-godkjenningstest som låser inn den korrigerte grensen
Version 1.6.0
- Herdet eksplisitte PDF 1.0- til PDF 1.7-SaveAs-mål med en fullstendig versjon-funksjons-validator som dekker hele funksjonstidslinjen fra PDF 1.1 til ISO 32000-1. Validatoren blokkerer nå lagringer som inneholder ordbokoppføringe, filternavn, merknadsundertyper, handlingstyper, skrifttyper, fargerom eller krypteringsparametere innført etter den valgte målversjonen. Eksempler: JBIG2Decode (1.4+), MarkInfo / Tagged PDF (1.4+), OutputIntents (1.4+), ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+), Polygon / PolyLine / Caret / Screen / Watermark / Redact-merknader, AES- og AES-256-kryptering (CFM AESV2 / AESV3), Perms / Legal / Requirements / NeedsRendering-katalogoppføringe og versjonsstyrte handlinger som JavaScript, Trans, SetState, Rendition, GoToE, GoTo3DView avvises alle når mål-PDF-versjonen ikke kan representere dem
Version 1.5.13
- Utvidet Delphi-, C++Builder- og Lazarus-regresjonssuitene til 49 tilfeller hver, med direkte dekning for avvisning av ICCBased-fargerom, Tagged PDF MarkInfo, Polygon-merknader, AES (V2)-kryptering og Redact-merknader mot henholdsvis PDF 1.2-/1.3-/1.4-/1.5-/1.6-mål
Version 1.5.12
- Fikset SaveAs-etterbehandling for inkrementelle katalog-omskrivinger. PDFiumPas validerer nå det siste gjentatte indirekte objektet, slik at eksisterende katalog-/Version-overstyringer byttes ut korrekt ved lagring til en eksplisitt eldre PDF-målversjon
- Utvidet Delphi-, C++Builder- og Lazarus-regresjonssuitene til 44 tilfeller hver, med direkte dekning for utskifting av foreldet katalog-/Version, normalisering av PDF 1.4-katalogversjon og avvisning av gjennomsiktighets- og bærbar-samling-funksjoner når den valgte PDF-målversjonen ikke kan representere dem
Version 1.5.11
- Herdet versjonert SaveAs-utdata for eksplisitte PDF 1.3-, 1.4-, 1.5-, 1.6- og 1.7-mål. PDFiumPas normaliserer nå katalog-versjonsmerker, holder standard Fit Height-OpenAction versjonssikker og avviser nyere PDF-funksjoner når den valgte målversjonen ikke kan representere dem
- La til regresjonsdekning for Delphi, C++Builder og Lazarus som lagrer og laster inn eksplisitte PDF 1.3- til PDF 1.7-filer på nytt, og verifiserer den endelige headeren, standard OpenAction for Fit Height og den rapporterte PDF-versjonen
Version 1.5.10
- Gikk fra spesifikasjonens alternativ B til alternativ C ved å legge til TPdfView-smoketester i alle tre IDE-suitene (Tests.PdfView). Hver suite bygger en skjult overordnet TForm (via TForm.CreateNew på Pascal-sidene og
new TForm(NULL, 0)på C++Builder-siden), endrer foreldreskap for en TPdfView, setter Active := True, og verifiserer deretter round-trip-flaten for PageCount, standard PageNumber, Zoom, Rotation, DisplayMode og at View.Text matcher den underliggende TPdf.Text. Hver IDE-suite kjører nå 39 saker
Version 1.5.9
- Gikk fra spesifikasjonens alternativ A til alternativ B ved å legge til opptegnings-røyk-tester i alle tre IDE-suiter. Hver Tests.Render-suite kaller TPdf.RenderPage på sample.pdf og verifiserer tre robuste signaler i stedet for byte-for-byte-sjekksummer: den returnerte bitmappen samsvarer nøyaktig med den forespurte pikselstørrelsen; forskjellige forespurte størrelser (200x100, 64x256) gir samsvarende bitmapper; og den opptegnede siden har minst 95 % hvit bakgrunn med minst 50 (Lazarus: 20) ikke-hvite piksler som markerer det kantutjevnede teksten. Hver IDE-suite kjører nå 33 tilfeller
Version 1.5.8
- Avsluttet de opprinnelige A(2)-testplangruppene ved å legge til sju flere regresjoner per IDE: TPdf.CreateAnnotation som bygger en anHighlight-annotasjon pluss en SaveAs/LoadDocument round-trip, AcroForm-lesestien på Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf (FormType er ftAcroForm, FormFieldCount > 0, FlattenAllPages reduserer feltene til null), og stille lesestidekning for Bookmarks, LinkAnnotationCount og WebLinkCount på et dokument som ikke har noen av disse funksjonene. Hver IDE-suite kjører nå 30 saker
Version 1.5.7
- Utvidet Delphi- (DUnitX), Lazarus- (FPCUnit) og C++Builder-suiter (GoogleTest) med syv nye regresjoner per IDE: PdfVersion, PageRotation, TPdf.FindFirst-/FindNext-delstreng-oppslag, CharacterOrigin-/CharacterRectangle-samsvar mot AddText-origo, CreateAttachment-registrering pluss en SaveAs/LoadDocument-rundtur og en akksent-tekst-AddText-rundtur som verifiserer at v1.3.0 europeisk TrueType-innebyggings-sti holder Latin-1 suppletive kodepunkter intakte
Version 1.5.6
- Lagrede PDF-er får nå en standard førsteside Fit Height-åpne-handling når ingen eksisterende OpenAction er til stede, slik at PDF-lesere først viser genererte dokumenter ved sidehøyde-zoom
- Lagt til Delphi-, Lazarus- og C++Builder-regresjonsdekning for den genererte OpenAction- og Fit Height-innstillingen
Version 1.5.5
- Lagt til regresjonstester på tvers av Delphi- (DUnitX), Lazarus- (FPCUnit) og C++Builder-suiter (GoogleTest) for den indekserte tegn- og skrifttype-inspeksjons-API-overflaten (TPdf.FontBaseName, FontFamilyName, FontWeight, FontItalicAngle, FontData, FontIsEmbedded, CharacterFontWeight, CharacterAngle). Lazarus-suiten hopper med vilje over FontData, som for øyeblikket forårsaker tilgangsbrudd inne i FPDFFont_GetFontData under FPC
Version 1.5.4
- Lagt til en C++Builder Attachment-demo portert fra Delphi-eksempelet, som dekker oppretting av PDF-er og å legge til, liste opp, trekke ut, slette og lagre innebygde filvedlegg med visning av MIME-undertype
Version 1.5.3
- Eksponerte spread-sideberegningen som ligger bak TPdfViews tosidige moduser som den enhetsnivåhjelperen ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). Atferden er uendret; hjelperen gjør den omslagsbevisste regelen testbar uavhengig uten å instansiere en visning
- La til fem regresjonstester på tvers av Delphi- (DUnitX), Lazarus- (FPCUnit) og C++Builder- (GoogleTest)-suitene som dekker tomme dokumenter, standard tosidig paring, omslagssiden alene i dmTwoPageContinuousWithCover, par etter omslag og klampeatferd for siste side / utenfor område
Version 1.5.2
- Lagt til støtte for dokumentspråk gjennom TPdf.Language, avbildet mot PDF-katalogens /Lang-oppføring
- Lagt til tilgang til MIME-undertype for vedlegg med TPdf.AttachmentType
- La til anRedact i TPdfAnnotationSubtype og la til hjelpeløsninger for fjerning av sideobjekter for TPdf og TPdfView
- Oppdaterte visnings- og vedleggsdemoene slik at de viser den nye språk- og vedleggstypeinformasjonen når den er tilgjengelig
Version 1.5.1
- La til dmTwoPageContinuousWithCover for TPdfView slik at visningsoppsett kan vise den første siden alene og deretter fortsette med tosidige oppslag
- Oppdaterte MultiPageViewer-demoene for Delphi, C++Builder og Lazarus slik at de eksponerer den omslagsbevisste tosidige visningsmodusen
Version 1.5.0
- Lagt til røyk-nivå automatiserte testsuiter for Delphi (DUnitX), Lazarus (FPCUnit) og C++Builder (GoogleTest). De tre suiter deler én enkelt fixture-PDF i Tests\TestData og kjører de samme syv tilfellene hver, som dekker dokumentlasting, sideinfo, tekstuttrekk, metadata, lagrings-rundtur, PDF-overskriftsvalidering og Compressed-egenskapen
Version 1.4.3
- Forbedret FontProperties-demoen til å vise både TPdfView- og TPdf-skrifttype-metadata-API-er, inkludert skrifttype-håndtak, skrifttypedata-størrelse og tegn-metrikker
- Lagt til indekserte TPdfView-tegn- og skrifttype-inspeksjons-egenskaper og oppdaterte FontProperties-demoen til å spørre tekstobjekt-skrifttype-metadata
Version 1.4.2
- La til indekserte egenskaper for tegn- og skriftinspeksjon i TPdf for tekstanalyse uten å kreve en visning. Tegnindekserte egenskaper (CharacterAngle, CharacterFontSize, CharacterFontWeight) henter metrikk per tegn fra gjeldende sides tekststrøm. Sideobjektindekserte egenskaper (FontAscent, FontBaseName, FontData, FontDescent, FontFamilyName, FontHandle, FontIsEmbedded, FontItalicAngle, FontWeight) henter skrifttypemetadata for ethvert tekstobjekt på gjeldende side
- Ikke-tekstlige sideobjekter returnerer sikre null- eller tomme verdier for alle Font*-egenskaper i stedet for å kaste en feil, noe som gjør det enkelt å iterere over hvert sideobjekt og bare inspisere tekstobjektene
- FontBaseName leser PostScript-basis-skrifttypenavnet direkte i stedet for å falle tilbake på skriftfamilienavnet, noe som gir en mer nøyaktig identifikator for innebygde skrifttyper
Version 1.4.1
- Lagt til C++Builder- og Lazarus-versjoner av EuropeanText-demoen slik at alle støttede IDE-familier kan verifisere generering av aksentert europeisk tekst med system-TrueType-skrifttyper
- Lagt til C++Builder- og Lazarus-versjoner av FormFill-demoen, inkludert eksempel-skjema-PDF-er, feltredigering, utseende-regenerering, lagret med fylling og flatet lagring-arbeidsflyter
Version 1.4.0
- La til støtte for Lazarus / Free Pascal: den nye PDFiumLaz-pakken leverer de samme TPdf-, TPdfView- og relaterte komponentene under LCL-widgetsettet, og utvider biblioteket til Lazarus IDE og Free Pascal-kompilatoren ved siden av de eksisterende Delphi- og C++Builder-pakkene
- Lagt til Lazarus-versjoner av demoene slik at Lazarus-utviklere kan utforske hver funksjon med kjørbare eksempler
- Fikset et Lazarus-kompileringsproblem der Free Pascal-betingede definisjoner ble evaluert sammen med Delphi-kompilator-versjonskontroller, noe som fikk FPC-bygg til å forsøke å løse Delphi-spesifikke enhetsnavn og feile
Version 1.3.1
- Dokumenterte arbeidsflyten for form-flattening i hjelpesettet: GenerateFormAppearances, FlattenPage, FlattenAllPages og de relaterte FLAT_* / FLATTEN_*-konstantene dekkes nå i TPdf, TPdfView, API-referansen, funksjonsmatrisen og programmeringseksemplene
- Rettet arkitekturtabellen på oversiktssiden slik at den lister de faktiske binding-enhetene som følger med i Lib-mappen
Version 1.3.0
- Forbedret europeisk tegnstøtte ved oppretting av PDF-er. TPdf.AddText laster nå inn og mellomlagrer den samsvarende system-TrueType-skrifttypen før et tekstobjekt opprettes, noe som bevarer aksenterte tegn fra tsjekkisk, fransk, tysk, spansk, portugisisk, polsk og tyrkisk som PDFiums innebygde standardskrifttyper ikke kan representere
- Applikasjoner som tidligere produserte spørsmålstegn eller erstatnings-glyffer for ikke-ASCII-latinsk tekst vil nå opptegne korrekt uten noen kodeendring. Lagt til EuropeanText-demoen for å illustrere funksjonen
Version 1.2.0
- Lagt til oppfrisking av AcroForm-utseende til TPdf: å kalle GenerateFormAppearances etter endring av FormField[]-verdier oppdaterer widget-utseende slik at utfylte verdier er synlige i standard PDF-lesere uten å kreve en interaktiv redigeringsøkt
- La til hjelpefunksjoner for form-flattening i TPdf (FlattenPage / FlattenAllPages) og TPdfView (FlattenPage for gjeldende visningsside). Flattening bygger inn utfylte feltverdier permanent som vanlig sideinnhold og fjerner det interaktive skjemalaget, noe som gir et statisk dokument som rendres konsistent i alle visere
- La til Demo\Delphi\FormFill for å demonstrere arbeidsflytene fill-and-save og fill-and-flatten med en eksempel-PDF med AcroForm
Version 1.1.2
- Lagt til lagringstid PDF-strøm-komprimering. Den nye TPdf.Compressed-egenskapen (aktivert som standard) skriver om ukomprimerte innholdsstrømmer som FlateDecode-komprimerte strømmer ved lagring, noe som betydelig reduserer filstørrelsen for programmert genererte PDF-er. Applikasjoner som krever ren ukomprimert utdata kan sette Compressed til False før SaveAs kalles
Version 1.1.1
- Win64-pakkebygg inkluderer ikke lenger design-tids-registreringsenheter, noe som forhindrer bygge-tids-feil når Win64-pakken distribueres i en kun-kjøretids-kontekst
- PDFium DLL-lasteren søker nå først i Win32- eller Win64-programundermappen, bruker de vanlige navnene pdfium.dll og pdfium.v8.dll, og faller tilbake til programmets flate mappe og Windows systemmappen. Dette samsvarer med DLL-oppsettet som følger med komponentpakken og gjør installasjonen enkel
Version 1.1.0
- Rettet et visuelt klipping-feil i tosidemodus for TPdfView: sideinnhold blødde over spalten fordi både venstre og høyre sideflis delte ett enkelt klippingsrektangel. Hver flis klipper nå uavhengig slik at innholdet holder seg innenfor sin sidegrense
- Forbedret feilmeldingen i Delphi-demoen når PDFium DLL-en ikke kan finnes, med en tydeligere melding om forventet DLL-navn og plassering