Napomene izdanja za PDFiumPas
Ova je stranica lokalizirana za hrvatski i zadržava nazive API-ja, datoteka i literalne vrijednosti neizmijenjenima
Povijest verzija za korisnički vidljive značajke, ispravke, poboljšanja preglednika, generiranje dokumenata, PDF/A output, rendering i ažuriranja dokumentacije u PDFiumPas
Posljednje izdanje
- Najnovija verzija: 2.57.0; Datum izdanja:
Version 2.57.0
Dodano (Added)
TPdfThumbnailView.Orientationpodržava okomiti i vodoravni raspored minijatura uz zadržavanje postojećeg okomitog zadane vrijednostiFirstVisiblePageIndex,LastVisiblePageIndexiEnsureCurrentPageVisibleizlaže i upravljaju oknom minijatura pomoću jedinično utemeljenih indeksa stranica
Promijenjeno (Changed)
- Promjena
CurrentPageIndexsada pomiče odabranu minijaturu u prikaz u bilo kojem usmjerenju - Delphi, Lazarus i C++Builder testovi sada pokrivaju zadane vrijednosti usmjerenja, prebacivanje, vidljive raspone i vidljivost odabrane stranice
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.57.0
Version 2.56.2
Promijenjeno (Changed)
HighlightSearchText,AddSearchTextHighlightiClearHighlightsada poništavaju samo pravokutnike uređaja za rasponi pretraživanja koji su dodani ili uklonjeni umjesto ponovnog iscrtavanja cijelog preglednika- Zamjena isticanja istim podudaranjima ili dodavanje dupliciranih podudaranja više ne raspoređuje nepotrebno ponovno iscrtavanje
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ograničeno poništavanje, idempotentna ažuriranja, brisanje i sigurnost neaktivnog prikaza
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.56.2
Version 2.56.1
Promijenjeno (Changed)
TPdfThumbnailViewsada ponovno koristi iscrtane bitmape za stranice koje ostaju vidljive između ponovnih iscrtavanja i susjednih položaja klizanja- Predmemorija zadržava samo trenutni vidljivi raspon stranica i oslobađa unose točno kada stranice napuste taj raspon, dodijeljeni dokument se promijeni ili se promijene dimenzije minijatura
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ponovnu uporabu predmemorije, orezivanje okna, poništavanje veličine, zamjenu dokumenta i uništavanje komponente
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.56.1
Version 2.56.0
Dodano (Added)
TPdfView.CutSelectedFormTextToClipboardiTPdfView.PasteFormTextFromClipboardpružaju Unicode uređivanje međuspremnika za fokusirani uređivati widget obrasca
Promijenjeno (Changed)
- Fokusirani uređivači obrazaca sada rukuju standardnim tipkovničkim prečacama copy, cut, paste i select-all prije prosljeđivanja tekstovnog unosa u PDFium
- Cut i paste odbijaju polja samo-za-čitanje i sesije bez dozvole popunjavanja ili izmjene obrasca, dok cut uspješno kopira prije uklanjanja odabranog teksta
- Delphi, Lazarus i C++Builder testovi sada pokrivaju ponašanje bez fokusa, povratni prečac i odbijanje samo-za-čitanje
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.56.0
Version 2.55.0
Dodano (Added)
TPdfView.AddSearchTextHighlightdodaje jedinstvena podudaranja za još jedan termin pretraživanja na prevlaku trenutne stranice, omogućujući da nekoliko upita ostane istaknuto zajedno
Promijenjeno (Changed)
HighlightSearchTextostaje ulazna točka za zamjenu i sada dijeli dodatni skener, dok se duplicirani rasponi znakova zanemaruju iClearHighlightuklanja cijeli akumulirani skup- Delphi, Lazarus i C++Builder testovi sada pokrivaju akumulaciju različitih upita i suzbijanje dupliciranih raspona
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.55.0
Version 2.54.0
Dodano (Added)
TPdfsada izlaže potpune snimke objekata stranice, grupna ažuriranja stilova, afine transformacije objekata, segmente putanje, putanje isijecanja i Form XObject potomke- Inspekcija znakova sada uključuje boje ispune i poteza, naziv i oznake fonta, labave granice glifa, učinkovite matrice, ručke tekstovnih objekata i pretvorbu znak-u-tekst-indeks
- Napomene sada round-trip geometriju ruba i normalne, rollover i down tokove izgleda
- Novi pristupnici sirovih i dekodiranih minijatura, transformacije sadržaja stranice i napomena te
RenderPageWithMatrixpružaju izravne napredne putanje iscrtavanja i uređivanja
Promijenjeno (Changed)
- Promjene stila objekata stranice sada se mogu predati kao jedna skupina tako da PDFium regenerira sadržaj stranice samo jednom
- Reprodukcija matrice koristi postojeću putanju bitmapa zero-copy kada je raspored odredišne bitmape kompatibilan
Version 2.53.1
Ispravljeno (Fixed)
- Ugrađeni kineski naslov izbornika Copy sada koristi kodne točke Unicode neovisne o kodiranju i prikazuje se ispravno u Lazarus izgradnjama
- Stariji Delphi alatni lanci mogu kompajlirati
FPdfAsynckada njihova jedinicaWinapi.Windowsizostavlja deklaracijuGetTickCount64
Version 2.53.0
Dodano (Added)
- Nova
Tests.ApiCoveragetestna garnitura koja pokriva javne TPdf API-je koji prije nisu imali nikakvo end-to-end testno pokriće:GetPageBox/SetPageBox(MediaBox/CropBox čitanje/pisanje, pogreške nedostajućeg-okvira i round-trip spremanja),FlattenPage/FlattenAllPages(povratna vrijednost i očuvanje broja stranica),GenerateFormAppearances(no-op na dokumentima bez obrazaca),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 s round-trip lozinke — provjerava da šifrirana datoteka odbija otvaranje bez lozinke i otvara se s njom), provjera granicaDeletePage(stranica 0 i izvan raspona izazivajuEPdfError), teHasContents/HasAuthorStražarne vrijednosti napomena uvedene u v2.38.0 (provjeravajući daDefault(TPdfAnnotation)ostavlja ih naFalse)
Version 2.52.0
Dodano (Added)
TPdfView.CopySelectedFormTextToClipboardkopira odabir teksta unutar fokusiranog AcroForm widgeta u Windows međuspremnik kaoCF_UNICODETEXT
Promijenjeno (Changed)
- Operacije kopiranja teksta stranice i fokusiranog obrasca sada dijele isti obrambeni Unicode zapisivač međuspremnika i ostavljaju međuspremnik nepromijenjenim kada je njihov odabir prazan
- Delphi, Lazarus i C++Builder testovi sada pokrivaju neaktivne ili nefokusirane pozive kopiranja obrasca i povratno putovanje odabira fokusiranog obrasca kroz Windows međuspremnik
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.52.0
Version 2.51.0
Dodano (Added)
TPdfView.SelectLineAtbira vizualnu liniju teksta koja sadrži jedinično utemeljenu stranicu i nulti indeks znakova bez zahtijevanja unosa miša
Promijenjeno (Changed)
- Programski odabir linije, odabir trostrukim klikom te
Shift+HomeiliShift+Endsada dijele jedan model granica linije temeljen na znakovnim okvirima - Delphi, Lazarus i C++Builder testovi sada pokrivaju stabilni odabir linije i nevaljane indekse stranica ili znakova
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.51.0
Version 2.50.0
Dodano (Added)
TPdf.LoadDocumentsada prihvaća nulto utemeljeni prozorIndexiCountuTBytesmeđuspremnik, omogućujući ugrađenim PDF-ovima da se učitaju bez dodjele privremenog odsječka polja bajtova
Promijenjeno (Changed)
- Učitavanje raspona bajtova odbija negativne ili izvan-raspona prozore prije mijenjanja stanja dokumenta i čuva postojeće opcije životnog vijeka pohranjenog i posuđenog međuspremnika
- Delphi, Lazarus i C++Builder testovi sada pokrivaju prozore ugrađenih PDF-ova i nevaljane argumente raspona bajtova
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.50.0
Version 2.49.1
Dodano (Added)
TPdfView.FitModesada podržavapfmFitHeightza prilagodbu trenutne stranice vidljivoj visini prikaza uz dopuštanje vodoravnog pomicanja po potrebi
Ispravljeno (Fixed)
- Načini prilagodbe sada konvergiraju nakon što promjena vidljivosti kliznice promijeni klijentsko područje, čime se rezultati fit-page, fit-width i fit-height održavaju dosljednima između VCL-a i LCL-a
- Delphi, Lazarus i C++Builder testovi preglednika sada pokrivaju odabir
pfmFitHeighti povratne puteve enumeracija TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.49.1
Version 2.49.0
Dodano (Added)
- Javna površina vezanja PDFiuma sada pokriva svih 470 izvezenih funkcija u pregledanim zaglavljima, uključujući pristup opisima privitaka putem
FPDFAttachment_SetDescriptioniFPDFAttachment_GetDescription TPdfsada izlaže opise privitaka, valjanost unakrsnih referenci, pomake kraja trailera, reviziju security-handlera, 64-bitno učitavanje u memoriju, raspone bajtova potpisa, raspone teksta web-veza i proširene snimke podataka slike, filtra, metapodataka i ICC profila- Pomoćnici obrazaca sada podržavaju izvorni fokus polja, upite i ažuriranja fokusirane opcije izbora, prosljeđivanje kotačića miša, zapisive poteze tintom i preslojavanja obrazaca nakon progresivnog iscrtavanja
Promijenjeno (Changed)
FormFieldCount, indeksi polja obrasca i redoslijed tabulatora sada opisuju samo bilješke widgeta umjesto da uključuju nepovezane bilješke stranice- Bezaglavi
TPdfstranice sada ulaze i izlaze iz životnog ciklusa stranice popunjavanja obrasca tako da izvorni fokus i API-ji fokusiranih polja rade bezTPdfView - Izvozi opisa privitaka su ograničeni mogućnostima tako da aplikacije koje koriste stariju izradu PDFiuma i dalje mogu učitati biblioteku i otkriti nedostupnu značajku
Ispravljeno (Fixed)
- Progresivno iscrtavanje stranice sada crta kontrole obrasca kada je popunjavanje obrasca omogućeno
- Delphi, Lazarus i C++Builder testovi sada pokrivaju novu dijagnostiku dokumenata, opise privitaka, putove tinte, ponašanje obrazaca, raspone bajtova potpisa, raspone web-veza i metapodatke slika
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.49.0
Version 2.48.0
Dodano (Added)
TPdfMatrixsada izlaže tvornice, kloniranje i dodjeljivanje, dijagnostiku konačnog stanja i invertibilnosti, usporedbu utemeljenu na toleranciji, pristup translaciji, izvještavanje determinante i afinu dekompoziciju- Sastavljanje prepend, zakretanje osjetljivo na stožer, skaliranje, iskošenje i okretanja, plus mapiranje pravokutnika stretch, contain i cover podržavaju tijekove rada u lokalnom prostoru i prilagođene rasporede bez ručne aritmetike koeficijenata
- Nemutirajući obrnuti pristup, obrnuto mapiranje točaka, transformacije vektora i četverokuta, dinamične serije točaka i pravokutnika, in-place varijante i jednoprolazne transformirane granice proširuju površinu geometrije koja se može ponovno upotrijebiti
Promijenjeno (Changed)
- Translacija, skaliranje i okretaji osi sada ažuriraju samo zahvaćene koeficijente umjesto usmjeravanja kroz opće afino množenje
- Transformacija pravokutnika normalizira svoj ulaz jednom, koristi specijaliziranu točnu putanju poravnatu s osima gdje je moguće i izračunava opće rotirane granice bez privremenih zapisa točaka
- Transformacije serija točaka i pravokutnika dodjeljuju jedan polazni niz ili ponovno koriste pohranu pozivatelja, dok se transformirane granice točaka akumuliraju u jednom prolazu bez posrednog niza
Ispravljeno (Fixed)
- Mapiranje pravokutnika odbacuje rezultate nulte veličine, nekonačne i s preljevom
Singleprije objavljivanja neupotrebljive matrice - Delphi, Lazarus i C++Builder testovi sada provjeravaju redoslijed sastavljanja, invarijante stožera, obrnute povratne puteve, prilagođene pravokutnike, dekompoziciju i ponašanje skupne geometrije
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.48.0
Version 2.47.0
Dodano (Added)
FPdfAsyncsada pruža strukturirane razloge i poruke otkazivanja, uklonjive registracije povratnih poziva, izvore utemeljene na vremenskom ograničenju, čekanje otkazivanja i atomske try-cancel operacije putem proširenih sučelja koja čuvaju izvorni APITPdfFuture<T>.RunExdodaje konfigurabilnu otpremu odgovora i prioritet radnika dok omotnice rezultata izlažu ID-ove operacija, valjanost vrijednosti, nazive klasa iznimaka, vremenske oznake završetka i pomoćnike za završetak koji se mogu ponovno upotrijebitiTPdfAsyncExecutordodaje ponovno upotrebljivi fiksni bazen radnika s četiri FIFO trake prioriteta, neobavezno protutlak ograničenog reda, otkazive ručke zadataka, čekanje osjetljivo na vremensko ograničenje, snimke zadataka, agregirane statistike i优雅no gašenje
Promijenjeno (Changed)
- Ponavljajući asinkroni zadaci mogu ponovno upotrijebiti dretve radnika i operacije reda O(1) umjesto stvaranja dretve za svaki zadatak, dok sinkronizirani završetak ostaje dostupan za UI domaćine
- Neuspjesi izvršitelja i futurea čuvaju dijagnostiku klase i poruke iznimaka, otkazivanje čuva svoj izvorni razlog, a iznimke povratnih poziva ostaju izolirane od životnog ciklusa radnika i gašenja
- Delphi, Lazarus i C++Builder testovi sada pokrivaju proširenu površinu otkazivanja, metapodatke futurea, kontrolu zadataka, protutlak, redoslijed prioriteta, statistike, neuspjehe i gašenje
Ispravljeno (Fixed)
- Istovremeni vlasnici otkazivanja sada primaju deterministički rezultat prvog zapisivača umjesto da se oslanjaju na zasebni slijed promatranja i otkazivanja
- Čekanje na mirovanje glavne dretve obrađuje sinkronizirane odgovore zadataka, sprječavajući da završeni radnik ostavi izvršitelja trajno nemirujućim tijekom koordiniranog gašenja
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.47.0
Version 2.46.0
Dodano (Added)
FPdfAsn1sada izlaže klase identifikatora, 64-bitno kodiranje i dekodiranje brojeva visokih oznaka, analizirane TLV zapise, prozore podređenog čitača s nultim kopiranjem, tipizirane dekodere primitiva i isječke sadržaja ili kodiranih vrijednosti- DER pisci sada podržavaju puni nepredznačeni 64-bitni INTEGER raspon, provjeravan proizvoljni INTEGER sadržaj, ENUMERATED, automatski odabir UTCTime ili GeneralizedTime, application i private oznake, viševrijednosni SEQUENCE i kanonski sortirani SET OF izlaz
ValidateDervraća pogreške provjere osjetljive na pomak primjenjujući konfigurabilna ograničenja ugniježđenja, broja čvorova, duljine sadržaja, broja pogrešaka, korijena i neobaveznog sortiranja SET-a
Promijenjeno (Changed)
- DER konkatenacija i viševrijednosna kompozicija koriste jednu alokaciju izlaza, međuspremnici pisca izlažu operacije reserve, count, capacity i prijenosa vlasništva, a sortiranje SET OF sada koristi
O(n log n)sortiranje spajanjem - BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime i GeneralizedTime vrijednosti primaju provjere kanonskog oblika tijekom kodiranja, tipiziranog dekodiranja ili provjere
- Lazarus paket za vrijeme izvođenja sada izvozi
FPdfAsn1, a Delphi, Lazarus i C++Builder testni skupovi vježbaju istu javnu DER površinu
Ispravljeno (Fixed)
- Kontekstno specifični brojevi oznaka veći od 30 više se ne skraćuju u niskih pet bitova identifikatora
- Deformirani identifikatori visokih oznaka, ne-minimalne određene duljine, nevaljani UTF-8, nenulto punjenje BIT STRING-a, nevaljana vremenska polja, zaostali korijeni i povrede ograničenja resursa odbacuju se deterministički
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.46.0
Version 2.45.0
Dodano (Added)
FPdfPreflightReportsada dodjeljuje ozbiljnost Info, Warning ili Error svakom problemu i izlaže API-je ozbiljnosti, statusa, kategorije, koda problema, pretraživanja, pretraživanja, spljošćavanja i filtriranja na razini standarda i izvješća- Preflight izvješća sada izvoze SARIF 2.1.0, JUnit XML, NDJSON i izvorni XML putem odgovarajućih metoda
To*iSave*ToFileza CI, automatizaciju i cjevovode strujanja - Stabilni SHA-256 otisci prstiju izvješća identificiraju ekvivalentne rezultate provjere neovisno o izvornim putanjama i vremenskim oznakama generiranja
Promijenjeno (Changed)
- JSON, CSV, text, Markdown i HTML izvješća sada uključuju ozbiljnost i proširene sažetke statusa; HTML dodaje pristupačne naslove tablica i sažetak statusa
- Konstrukcija zbirki problema i standarda koristi geometrijski rast kapaciteta, rezultati upita su predimenzionirani, JSON izbjegavanje piše u jedanograničeni izlazni međuspremnik, a sve datoteke izvješća koriste jednog izravnog UTF-8 pisca
- Sažeci kategorija problema koriste determinističko sortiranje, vremenske oznake uključuju milisekunde, JSON nosi
formatVersion: 2, a CSV ćelije neutraliziraju formule proračunskih tablica
Ispravljeno (Fixed)
- JSON izvoz sada čuva valjane dopunske Unicode parove i zamjenjuje izolirane UTF-16 surogatne kodne jedinice umjesto da emitira deformirane skalarne podatke
- HTML izvoz sada izbjegava apostrofe, a filtrirani prikazi izvješća posjeduju neovisne polja problema umjesto dijeljenja promjenjivog spremišta rezultata
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosljedno izvještavaju o Version 2.45.0
Version 2.44.0
Dodano (Added)
- Zabilješke i odredišta sada izlažu stanje otvorenosti, brojeve potomaka, ciljeve akcija, načine prikaza odredišta te do četiri parametra prikaza
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissioniUserHasPermissionpružaju tipizirane snimke za pregled dokumenata i upite za dozvoleExtractThumbnail(PageNumber)renderira zadanu stranicu bez promjene aktivne stranice, a rezultati RFC 3161 vremenske oznake izlažu pravila, vrijeme generiranja i detalje nonce vrijednosti
Promijenjeno (Changed)
- Putanje za zabilješke, JavaScript, metapodatke, odredišta i minijature koriste potvrđene dvoprolazne međuspremnike, geometrijski rast zbirki i obilazak siguran od ciklusa
- Naknadna obrada spremanja razrješuje aktivni katalog, stablo stranica i akciju otvaranja kroz trenutnu xref reviziju, predmemorira dekodirane tokove objekata i pregledava PDF rječnike s leksičkim granicama
- Zajedničko PDF raščlanjivanje sada nameće točna zaglavlja objekata, generacije, ključeve rječnika, duljine tokova, geometriju prediktora, cjelobrojne raspone te granice komentara, doslovnih nizova i heksadecimalnih nizova
- Provjera RFC 3161 odgovora sada veže i nonce i SHA-256
messageImprint, zahtijeva strukturno ispravnog potpisnika i primjenjuje stroga DER pravila za duljinu, OID, INTEGER i GeneralizedTime
Ispravljeno (Fixed)
- Inkrementalni dokumenti više ne odabiru neaktivne duplicirane kataloge ni neispravne sufikse referenci pri dodavanju zadane akcije otvaranja
- Vremenski tokeni s dugim DER duljinama zadržavaju cijeli kodirani token, dok se neispravan redoslijed CMS neobaveznih polja i prazni skupovi potpisnika odbijaju
- Čisti Delphi buildovi sada zapisuju PAdES nonce sjemenska polja putem kopija bajtova sigurnih za poravnanje i prosljeđuju XFA bajtove odgovora s točnim izvornim tipom pokazivača
Version 2.43.0
Dodano (Added)
- XFDF zapisi polja i anotacija sada izlažu zastavice prisutnosti koje razlikuju izostavljenu XML vrijednost od eksplicitno prazne vrijednosti
Promijenjeno (Changed)
- XFDF uvoz prihvaća elemente i atribute s prefiksom imenskog prostora, miješani tekstualni i CDATA sadržaj, reference entiteta te vrijednosti značajne za razmake, uz odbijanje neispravnih Unicode skalarnih referenci
- XFDF uvoz i izvoz koriste indeksirano podudaranje polja i ograničene geometrijske međuspremnike, poboljšavajući propusnost i vršno ponašanje alociranja za duboko ugniježđene obrasce, velike zbirke anotacija, popise tintnih poteza, vrhove i oznake četverokuta
- PDF/A i PDF/UA provjera koriste ograničeni rast za velike zbirke stranica, tokova, naziva struktura i RoleMap; PDF/UA RoleMap razrješavanje sada slijedi izravna polja i neizravne objekte imena ili polja točne generacije
Ispravljeno (Fixed)
- XFDF povratni ciklusi sada čuvaju duboko ugniježđene putanje polja, eksplicitno prazne vrijednosti polja, eksplicitno prazne sadržaje anotacija te razliku između odsutnih i praznih sadržaja
- Neispravna učitavanja memorijskih međuspremnika i dodjele stranica izvan raspona odbijaju se bez ostavljanja djelomičnog stanja dokumenta ili stranice, a neuspjelo ponovno učitavanje izvorne stranice čuva prethodno aktivnu stranicu
- Veliki identifikatori označenog sadržaja i međuspremnici metapodataka potpisa ograničeni su i potvrđeni prije alociranja ili izvornog pristupa
Version 2.42.0
Dodano (Added)
TPdfMatrixsada pružaInvert,TryInvert,TransformPointiTransformRectza mapiranje koordinata, ispitivanje pogodaka, normalizirane granice i eksplicitno rukovanje singularnim matricamaTPdf.WrapTextdobio je preopterećenjeBreakLongWordskoje dijeli CJK i drugi tekst bez razmaka uz zadržavanje valjanih UTF-16 surogatnih parova zajednoTPdfAnnotation.AttachmentPointSetsizlaže svaki četverokut u višerednim anotacijama, dok postojeće poljeAttachmentPointsostaje alias za prvi skup
Promijenjeno (Changed)
- Ekstrakcija teksta, izgradnja čitljivog sadržaja, pretraga riječi i mapiranje pomaka izgovorenog teksta sada koriste ograničenu alokaciju i putanje binarne pretrage, smanjujući ponovljene alokacije i linearne preglede na velikim stranicama
- ASN.1 serijalizacija i generiranje šifriranih PDF-ova sada koriste geometrijske izlazne međuspremnike; redoslijed šifriranih objekata koristi
O(n log n)sortiranje, a xref redovi zapisuju se izravno u konačni međuspremnik WrapTextčuva granice redova CR, LF i CRLF te ponovno koristi jedan izvorni objekt mjerenja za cijelu operaciju- XFDF uvoz i izvoz čuvaju svaki četverokut oznake; uvoz također primjenjuje RGB/boje ispune i raščlanjuje decimalne koordinate neovisno o lokalnim postavkama procesa
Ispravljeno (Fixed)
- Naslijeđeni pozivatelji ponovno mogu ažurirati sadržaj i autora anotacije dodjeljivanjem nepraznih nizova bez postavljanja novijih sentinel varijabli
HasContentsiHasAuthor - Eksplicitno prazni nizovi anotacija sada koriste valjani izvorni međuspremnik s nul-terminacijom, pa brisanje ključeva
/Contents,/Ti drugih neobaveznih tekstualnih ključeva više ne prosljeđuje nil pokazivač PDFium-u
Version 2.41.0
Promijenjeno (Changed)
- Preflight izvještaj
SaveJsonToFile,SaveMarkdownToFileiSaveTextToFilesada pišu UTF-8 na Delphi (podudarajući se s postojećimSaveHtmlToFile), umjesto sistemske ANSI kodne stranice, jer su ne-ASCII znakovi u putanjama datoteka, preporukama i napomenama o opsegu bili iskrivljeni na Delphi kada su spremljeni ovim metodama SaveCsvToFilesada piše UTF-8 s BOM prefiksom, tako da Excel za Windows automatski otkriva kodiranje; bez BOM-a, Excel tretira UTF-8 CSV kao kodnu stranicu 1252 i kvari ne-ASCII znakove
Ispravljeno (Fixed)
- Demo
ExtractImagesje propuštao predmemoriraneTBitmapobjekte uFExtractedImageskada je obrazac zatvoren bez prethodnog eksplicitnog čišćenja; obrazac sada nadjačavaDestroykako bi pozvaoClearExtractedImages, oslobađajući svaki predmemorirani bitmap
Version 2.40.0
Promijenjeno (Changed)
TPdf.RenderPage(HDC, ...)sada maskira FPU/SSE iznimke oko pozivaFPDF_RenderPage, podudarajući se sTPdfView.RenderPage(HDC)(ispravljeno u v2.25.0) i svakom točkom unosa renderiranja koja vraća bitmap; preopterećenje izravno na DC na raziniTPdfprethodno je ostavljalo FPU iznimke nemaskiranima na pre-D12 prevoditeljima
Ispravljeno (Fixed)
ColorToARGBsada vraća potpuno prozirni piksel (alfa 0) zaclNoneiclDefaultumjesto da tretira sentinel vrijednost kao doslovnu RGB boju; prethodno ponašanje proizvodilo je tamnu, gotovo neprozirnu ispunu kada je pozivatelj proslijedioclNoneočekujući “bez boje”
Version 2.39.1
Ispravljeno (Fixed)
- Eksplicitna spremanja u PDF 1.3 sada uklanjaju unose
/SMask /None,/AIS falsei/TK truekoji samo ponavljaju početno grafičko stanje dok nastavljaju odbijati nestandardno stanje prozirnosti
Version 2.39.0
Promijenjeno (Changed)
CreatePDFiImageToPDFsada koriste potvrđena odredišta spremanja i javljaju uspjeh samo kadaSaveAszavrši uspješnoBatchExport,PDFtoJpgiSplitPDFsada dodjeljuju jedinstvene izlazne direktorije kako bi ponovljena pokretanja i istoimeni ulazi sačuvali ranije rezultateSplitViewsada omotava pretragu jednom bez ostavljanja skrivenog stanja stranice nakon otkazivanja ili bez podudaranja, te prekida nedovršene poslove ispisa umjesto slanja djelomičnog izlaza
Ispravljeno (Fixed)
MergePDFsada odbija neispravne tokene raspona stranica i izlazne putanje koje prepisuju izvor, broji stvarno uvezene stranice te odbija spremiti prazan rezultat- Delphi i C++Builder demo programi
Attachmentsada izvršavaju spremanja na istu putanju putem zamjene datoteka sigurne od povrata, tako da neuspjelo preimenovanje ne može ukloniti izvorni PDF
Version 2.38.0
Promijenjeno (Changed)
SetAnnotationDatasada štiti upise u/Contentsi/Authoriza sentinelaHasContents/HasAuthornaTPdfAnnotation, podudarajući se s postojećim uzorkomHasName/HasSubject/HasIcon; prethodno su ova dva polja pisana bezuvjetno, pa je dodjeljivanje zapisaDefault(TPdfAnnotation)radi ažuriranja samo boje ili zastavica tiho prepisivalo postojeći sadržaj i autora anotacije praznim nizovima;GetPageAnnotationsada postavlja sentinele tako da ciklus čitanja-mijenjanja-pisanja čuva izvorne vrijednosti
Ispravljeno (Fixed)
GenerateFormAppearancessada čita vrijednost potvrdnog okvira / radio gumba putemFPDFAnnot_GetFormFieldValue(koji ide do roditeljskog rječnika polja prema ISO 32000-1 §12.7.5) umjestoFPDFAnnot_GetStringValue(Annot, 'V', ...)(koji čita rječnik widgeta); widget obično ne sadrži/V, pa/ASnikada nije bio sinkroniziran s označenim stanjem, a izravnani potvrdni okvir / radio gumb renderirao se kao neoznačen
Version 2.37.0
Promijenjeno (Changed)
ParseTsaUrlsada ograničava port na1..65535nakon parsiranja; prevelika vrijednost porta inače bi se omotala putemDWORDskraćivanja i mogla bi završiti na valjanom portu- XFDF
ParseFieldsada prihvaća parametar dubine (zadano 0, ograničeno na 64) i vraća prazno polje na granici, tako da zlonamjerno ugniježđeni lanac<field>dubok 100 000 više ne može preliti stog
Ispravljeno (Fixed)
- TSA HTTP zahtjev sada štiti od praznog tijela zahtjeva prije prosljeđivanja
@ReqDer[0]funkcijiWinHttpSendRequest; dereferenciranje dinamičkog niza nulte duljine pristupilo bi neuzemljenom pokazivaču;BuildTimeStampRequvijek vraća neprazan SEQUENCE, ali pozivno mjesto sada brani ugovor
Napomene (Notes)
- Komentar zaglavlja
FPdfTsaWino HTTPS provjeri opoziva je ispravljen: WinHttp prema zadanim postavkama potvrđuje lanac certifikata poslužitelja, ali ne vrši CRL/OCSP provjeru opoziva osim ako to nije eksplicitno omogućeno putemWinHttpSetOption; prethodni tekst tvrdio je da provjera opoziva “dolazi besplatno”, što je bilo zavaravajuće
Version 2.36.0
Promijenjeno (Changed)
- TSA HTTP zahtjevi sada šalju eksplicitno zaglavlje
Content-Lengthuz zaglavljaContent-TypeiAccept; WinHttp ga sintetizira iz ukupne duljine, ali neki RFC 3161 posrednici zahtijevaju eksplicitno zaglavlje i odbijaju zahtjev s porukom411 Length Requiredbez njega - Izvoz u XFDF sada odbacuje kontrolne znakove C0 (osim TAB/LF/CR koji su već eskapirani) umjesto emitiranja nevaljanog kosa crta-heksadekadskog niza; prethodni
\-01Fbijeg nije valjani XML (kosa crta nema posebno značenje u XML-u), pa bi bilo koji sukladni čitač odbacio dokument kao neispravan InjectAssociatedFilessada piše/Subtypena rječnik toka EmbeddedFile kada pozivatelj dostaviTAssociateFile.MIMEType; polje je bilo deklarirano i dokumentirano, ali je injektor prethodno tvrdo kodirao/Type /EmbeddedFilei ignorirao ga (ISO 32000-2 §7.11.4 dopušta/Subtypena toku)
Ispravljeno (Fixed)
- Uvoz XFDF-a preskočio je prvi bajt sadržaja nakon UTF-8 BOM-a i prvi bajt kada BOM nije bio prisutan:
BytesToAnsi(Bytes, 4, ...)(BOM) iBytesToAnsi(Bytes, 1, ...)(bez BOM-a) koristili su pomake početka pomaknute za jedan jerBytesToAnsiprima indeks niza koji počinje od 0; pozivi sada koriste3i0 ExtractSignatureValueje imao dvije pogreške uvlačenja s visećim-ifgdje seR.Position:= CNizvršavao bezuvjetno za neobavezne granecertificates [0]isignedAttrs [0]; grane su sada omotane ubegin/endtako da se pozicija pomiče samo kada je opcionalni TLV stvarno pročitan (ista klasa pogreške ispravljena je uAddSignatureTimestampToCmsu v2.22.0)
Version 2.35.0
Promijenjeno (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailiTFPDFAvail_IsFormAvailsada primajuhints: PFX_DOWNLOADHINTSumjestovar hints: FX_DOWNLOADHINTS, tako da je dokumentirani način rada samo za upitnullptr(provjera trenutne dostupnosti bez traženja više podataka) dostupan iz Delphi; zaglavlje PDFium izričito dopušta dahintsbude null; prethodnovarvezanje činilo je to nemogućimTFPDF_SetSystemFontInfosada primapFontInfo: PFPDF_SYSFONTINFOumjestovar pFontInfo: FPDF_SYSFONTINFO, tako da pozivatelji mogu proslijeditinilkako bi rekli PDFium-u da prestane koristiti prethodno registrirano sučelje sistemskih fontova (dokumentirana staza isključivanja)TPdfThumbnailView.Paintsada računaVisibleRowsistom formulom kao iUpdateScrollBarRange(ClientHeight div RowHeight), tako da broj nacrtanih redaka odgovara veličini stranice trake za pomicanje; prethodna formula samo za crtanje ((ClientHeight - FMarginY) div RowHeight + 1) mogla se razlikovati za jedan redak na rubnim visinama, trošeći renderiranje na redak izvan stranice ili propuštajući zadnji vidljivi redak
Version 2.34.0
Dodano (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— API visoke razine koji sprema dokument, a zatim ga šifrira s PDF 2.0 AES-256-CBC (V=5/R=5/R=6); primaTPdfEncryptOptionss korisničkom/vlasničkom lozinkom, dozvolama i revizijom; delegira naEncryptDocumentBytes- Šifriranje literalnih nizova
StrF:EncryptDocumentBytessada šifrira(...)literalne nizove u objektima koji nisu tokovi (rječnik Info, itd.) u AES-256-CBC heksadekadski nizove, podudarajući se s formatom šifriranja toka (16-bajtni IV + PKCS7 šifrirani tekst); heksadekadski nizovi<...>ostaju netaknuti
Version 2.33.0
Dodano (Added)
- Injektor šifriranja cijelog dokumenta AES-256-CBC u
FPdfEncrypt.pas;EncryptDocumentBytesprima običan tekst PDF i lozinku, šifrira svaki neizravni objekt toka (16-bajtni IV + AES-256-CBC PKCS7 pod ključem datoteke), krpa/Length, dodaje objekt rječnika/Encrypti ponovno gradi potpunu klasičnu tablicu unakrsnih referenci + prikolicu s/Encrypti/ID; dovršava PDF 2.0 stog šifriranja (AES blok + GCM + SHA-512/384 + R6 izvedba ključa + rječnik + skeniranje dokumenta) - Pomoćnik
EncryptStreamPayload— PDF 2.0 AES-256 format toka (IV dodan ispred AES-CBC-PKCS7 šifriranog teksta), višekratno upotrebljiv od strane pozivatelja koji sami upravljaju rasporedom svojih objekata
Version 2.32.0
Dodano (Added)
- SHA-512 / SHA-384 sažetak (FIPS 180-4) u novoj jedinici
FPdfSha512.pas; čisti Pascal, prenesen iz HotPDF; potreban za PDF 2.0 R6 iteraciju hashiranja lozinke, koja se grana na 128-bitnoj mod-3 vrijednosti za odabir SHA-256/384/512 u svakom krugu; FIPS-180-4 B.1 provjeren poznatim odgovorima - Izvedba ključa za šifriranje PDF 2.0 i graditelj rječnika Encrypt u novoj jedinici
FPdfEncrypt.pas; implementira algoritam 2.B iz ISO 32000-2 §7.6.4.3 (R6 hash ples: AES-128-CBC + iterativni odabir SHA-256/384/512), izvodi 32-bajtni ključ za šifriranje datoteke plus unose/O,/U,/OE,/UE,/Permste gradi V=5/R=5/R=6 Encrypt rječnik s/CFM /AESV3; preneseno iz PDFlibPas, prilagođeno stilu TBytes
Version 2.31.0
Dodano (Added)
- Primitive blok šifre AES (FIPS 197) u novoj jedinici
FPdfAes.pas; čisti Pascal AES-128 i AES-256 blok šifre plus pomoćnici za CBC način rada i CSPRNG pozadina, preneseni iz HotPDF; testovi poznatih odgovora iz FIPS-197 Dodatka C.2 / C.3 potvrđuju točnost; ovo je kriptografski temelj za PDF 2.0 stog šifriranja - AES-GCM autentificirano šifriranje (NIST SP 800-38D) u novoj jedinici
FPdfAesGcm.pas; implementira GHASH (množenje GF(2^128)), GCTR i konstrukciju GCM AEAD povrh AES blok primitiva; testni slučajevi NIST GCM 1 i 3 (AES-128) točno odgovaraju mjerodavnom šifriranom tekstu i oznaci; testni slučaj 13 (AES-256) se uspješno kružno provjerava; GCM je način rada ISO/TS 32003 za PDF 2.0 - Validacija integriteta PDF/A razine A ParentTree i ClassMap (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingoznačava StructTreeRoot bez stablaste strukture brojeva/ParentTree;pvaiClassMapUnresolvedoznačava referencu klase/Cbez/ClassMap
Version 2.30.0
Dodano (Added)
- Ubacivanje povezanih datoteka (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); nova jedinicaFPdfAssocFilesdodaje/AFpolja referenci specifikacija datoteka u katalog ili bilo koji rječnik stranice, pokrivajući svih osam vrijednosti/AFRelationshipiz ISO 32000-2 Tablice 45; ponovno koristi uzorak inkrementalnog ažuriranja dokazan uInjectPadesDssMarkers - Podrška za PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancedodajepxc6; injektor i validator je provode kroz identifikacijupdfxid:GTS_PDFXVersion; PDF/X-6 je nasljednik zasnovan na PDF 2.0 za PDF/X-4 za potpunu razmjenu - PDF/A zabranjuje radnju
/Thread(ISO 19005-1 §6.6.1 propust u popisu dopuštenih); popis zabranjenih radnji sada pokriva Thread uz Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition i Hide
Ispravljeno (Fixed)
- Staza validacije za PDF/A-4e sada poštuje iste provjere označene strukture, MarkInfo i prijeloma riječi kao i razina A; smanjenje verzije na strani spremanja u v2.29.0 pokrilo je
PdfAIsLevelE, ali tri vrata uValidatePdfAComplianceprovjeravala su isključivoPdfAIsLevelA, tako da je PDF/A-4e dokument bez označene strukture prolazio tiho - Odstupanje testa OCG
/BaseState: prolaz PostProcess u v2.28.0 ispravno je proširio prihvaćanje na/ONili/OFF(ISO 32000-1 Tablica 8.70), ali su Delphi i C++ testovi i dalje očekivali da se/OFFodbije; testovi sada koriste uistinu nevaljanu vrijednost (/Undefined), a novi pozitivni test zaključava prihvaćanje/OFF - Prekomjerno podudaranje geoprostornog
/Subtype /GEO:ContainsDictionarySubtype('GEO')podudarao se s bilo kojim rječnikom koji sadrži token, uključujući nepovezane poput zalutalog/ViewerPreferences << /Subtype /GEO >>; noviContainsMeasureDictionarySubtypedodatno zahtijeva/Type /Measureili sestrinski ključ ekskluzivan za Measure, tako da rječnici koji nisu Measure više ne pokreću zahtjev za ADBE ExtensionLevel 3
Version 2.29.0
Dodano (Added)
- Podrška za PDF/A-4 (ISO 19005-4:2020) kroz validator, XMP injektor i sloj modela objekata Pdfium;
TPdfAConformancedodajepac4base,pac4fipac4e; osnovna razina je PDF 2.0 (ISO 32000-2) og zamjenjuje naslijeđene A/B/U razine s base + F (obrazac) + E (pristupačnost);ValidatePdfAčitapdfaid:part=4XMP paket (osnovna razina izostavlja element sukladnosti),SaveAsPdfAga emitira, aSignPadesWithPdfAprihvaćapac4basekao spremnik dugoročne arhive - Povezivanje
FPDFBookmark_GetColor— zadnji nepovezani javni izvoz PDFium-a (469/469);TBookmarkdobiva poljaHasColoriColorpopunjena iz niza oznaka/C(ISO 32000-1 §12.3.3); povezivanje koristi tolerantno učitavanje tako da stariji DLL-ovi koji su prethodili izvozu nastavljaju raditi - Provjera verzije zaglavlja PDF/E-1 (ISO 24517-1 §5)
pveiBadPdfVersion— PDF/E-1 se temelji na PDF 1.6 i zaglavlje koje nije 1.6 sada je označeno - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— šifriranje je dopušteno samo na zaglavlju%PDF-2.0; tijelo 1.x koje sadrži/Encryptsada je označeno (prethodno je to bila izjava bez učinka) - PDF/R-1
pvriBadMediaBox—MediaBoxsvake stranice mora biti[0 0 w h];PdfRHasNonZeroMediaBoxOriginje ASCII skener neovisan o regionalnim postavkama koji preskače MediaBoxeve s neizravnim referencama - PDF/A razine A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — prisutan ali nepotpun RoleMap koji ostavlja prilagođene/Stipove struktura nemapiranima sada je označen, čime se zatvara praznina koju je ostavila postojeća provjerapvaiRoleMapMissingkoja provjerava samo prisutnost
Ispravljeno (Fixed)
PdfVersionToName(20)vraćao je"1.0"umjesto"2.0", oštećujući unos/Versionu katalogu i poruke validatora za svako spremanje u PDF 2.0; formatter sada eksplicitno dijeli major.minor za verzijske kodove>= 20- Koder negativnog-INTEGER-a u
FPdfAsn1.pasnije se mogao kompilirati pod Delphi 12 (E2015naInteger(-(V<0))), blokirajući cijeli testni projekt; popravljeno korištenjemInt64(-Ord(V<0))za masku proširenja predznaka - Popis zabranjenih anotacija za PDF/A sada uključuje
/RichMediau svim dijelovima (prethodno propušteno; ISO 32000-1 §12.5.6.35 ga zabranjuje u PDF/A)
Version 2.28.0
Dodano (Added)
TPdfVersionsada uključujepv20za PDF 2.0 (ISO 32000-2);DecodePdfVersion(20)vraćapv20umjestopvUnknown, aEncodePdfVersion(pv20)emitira 20 tako da se verzija PDF 2.0 dokumenta više ne gubi pri ponovnom čitanju i može se eksplicitno zapisati
Promijenjeno (Changed)
DecodeDatesada parsira PDF nizove datuma s opcionalnim pratećim poljima prema PDF priručniku 3.8.3, umjesto da zahtijeva puni oblik od 23 znakaD:YYYYMMDDHHmmSSOHH'mm'; sukladni skraćeni datumi kao što suD:20260712,D:20260712153000iD:20260712153000Zsada se prihvaćaju; prethodno su bili odbijeni strogim uvjetomLength=23; vremenski pomak vremenske zone sada se provjerava u odnosu na stvarni raspon UTC-12..UTC+14 umjesto> 23FPdfMeasure.MeasureTextsada kodira naziv fonta kao FPCAnsiString/ DelphiUTF8Encode, podudarajući se s ostalim mjestima pozivaFPDF_BYTESTRINGu knjižnici, umjesto čiste pretvorbe uAnsiStringkoja je kvarila ne-ASCII nazive obitelji fontova kroz trenutnu kodnu stranicu
Ispravljeno (Fixed)
- Staza negativnih vrijednosti u
TDerWriter.Integerse rušila ili proizvodila neispravan DER: petljawhile V <> -1 do V := V shr 8ostavljala jeInnerpraznim zaValue = -1(pogreška raspona na sljedećemInner[Length(Inner)-1]) i proizvodila previše bajtova za druge negativne vrijednosti; koder sada izdvaja bajtove dvojnog komplementa s pomacima koji proširuju predznak i ispravno se zaustavlja kada je ostatak čisto proširenje predznaka; CMS/PAdES INTEGER polja su pozitivna, tako da ovo utječe samo na pozivatelje koji prosljeđuju negativne vrijednosti, ali staza je sada ispravna TPdf.GetCharacterOriginiTPdfView.GetCharacterOriginzanemarili su povratnu vrijednostFPDFText_GetCharOrigini u slučaju neuspjeha vratili neinicijaliziranu točku; rezultat je sada inicijaliziran na nulu, a neuspjelo čitanje vraća ishodište (podudarajući se s ugovorom zaGetCharacterRectangle)
Version 2.27.0
Promijenjeno (Changed)
- Demo aplikacije
PDFVieweriMultiPageViewersada upravljaju pretragom, prihvaćajuEnteriF3, resetiraju kontekst pri promjeni opcija i čuvajuEscza otkazivanje aktivne pretrage ili ispisa - Ispis preglednika prati njegovu rotaciju i odabire portretni ili pejzažni izlaz prema tome
- Sve tri demo aplikacije
ViewerInteractionLabpodržavaju prečaceCtrl+A,Ctrl+C,Enter,F3iEscbez presretanja izvornih naredbi kontrole za uređivanje
Popravljeno (Fixed)
- Otkazivanje ispisa u C++Builderu i Lazarusu sada prekida posao pisača, a Lazarus izlazi iz svake ugniježđene petlje kopija, stranica i razvrstavanja
- Gumb Cancel u Delphijevu
MultiPageViewer-u sada je povezan s rukovateljem, a polja pretrage čuvaju izvorno uređivanje tipkama strelica, Home i End
Version 2.26.0
Promijenjeno (Changed)
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnaili ekvivalentiTPdfViewsada uzimaju zaključavanje renderiranja oko pozivaFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmapTPdf.RenderPageThumbnailpoštuje/Rotatei računa prilagodbu iz rotiranih dimenzija za stranice/Rotate 90i270
Popravljeno (Fixed)
TPdfView.GetCharacterRectanglesada inicijalizira pravokutnik nulama kadFPDFText_GetCharBoxne uspije i vraćaRect(0,0,0,0)GetLinkAnnotationssada prosljeđujesize-1za URI i putanju datoteke kako ne bi pisao izvan alokacije
Version 2.25.0
Promijenjeno (Changed)
TPdf.AddText,SetText,AddPathiInsertFormObjectFromXObjectsada poništavaju predmemoriranu tekstualnu stranicu i anotacije veza prije ponovnog stvaranja sadržajaTPdfView.RenderPage(HDC, ...)uzima zaključavanje renderiranja i maskira FPU/SSE iznimke okoFPDF_RenderPage- Delphijev demo
PrintPDFpri otkazivanju pozivaPrinter.AbortprijePrinter.EndDoc
Popravljeno (Fixed)
TPdf.GetCharacteriGetCharcodesada za točke iznad U+FFFF vraćaju U+FFFD; za puni UTF-16 koristiteGetTextGetWebLinksograničava negativan brojFPDFLink_CountRectsna nuluTPdf.DestroybrišePasswordiz memorije prije oslobađanja međuspremnika
Version 2.24.0
Dodano (Added)
TPdf.DeletePagei pozivi za privitke sada provjeravaju indekse i podižuEPdfErrorizvan raspona
Popravljeno (Fixed)
- Propuštanja rukovatelja stranica u
TPdf.AddText,AddBitmapiAddJpegImagesada se čiste pri iznimci TPdf.UnloadPageuništava napušteniFPathputemFPDFPageObj_DestroyTPdf.InsertFormObjectFromXObjectsada pozivaUpdatePagenakon umetanja
Version 2.23.0
Popravljeno (Fixed)
- Provjera
/BaseStateopcionalnog sadržaja prihvaća i/OFFuz/ON - Provjera
/Intentprihvaća/Designi nizove poput[/View /Design] - Geoprostorna provjera Measure više ne zahtijeva neobavezni
/Type /Measure, nego prepoznaje/Subtype /GEO
Version 2.22.0
Promijenjeno (Changed)
- Izračuni prilagodbe zuma
TPdfViewsada koristeClientWidth/ClientHeightumjestoWidth/Height, pa sepfmFitPage/pfmFitWidth/pfmFitHeightprilagođavaju vidljivom području AddSignatureTimestampToCmssada podižeExceptionkoji identificira nečitljivo CMS SignerInfo polje (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm)
Popravljeno (Fixed)
- Propuštanje CNG rukovatelja privatnog ključa u
ResolveWinSignersada se čisti pomoćuNCryptFreeObject EcDsaP1363ToDerodbija potpuno nultu polovicurilisi ne emitiraINTEGER 0
Version 2.21.12
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.5 do PDF 1.7 sada odbija loše oblikovane strukture
/OCPropertieskataloga, uključujući nedostajuće potrebne unose/OCGsili/D, nevaljane zadane vrijednosti konfiguracije i unose stanja koji nisu polja
Version 2.21.11
Popravljeno (Fixed)
- Eksplicitno pohranjivanje verzije PDF sada odbija izravne ili neizravne unose stranice
/Annotsčiji rječnici anotacija izostavljaju potrebni unos/Subtypeili/Rect
Version 2.21.10
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.7 sada zahtijeva da geoprostorni rječnici
/Type /Measure /Subtype /GEOi anotacije Projection deklariraju/Extensions /ADBEs/BaseVersion /1.7i/ExtensionLevel 3ili novije
Version 2.21.9
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.7 sada zahtijeva da RichMedia anotacije i radnje
RichMediaExecutedeklariraju/Extensions /ADBEs/BaseVersion /1.7i/ExtensionLevel 3ili novije
Version 2.21.8
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.7 sada zahtijeva da PRC 3D tokovi deklariraju
/Extensions /ADBEs/BaseVersion /1.7i/ExtensionLevel 1ili novije, umjesto tretiranja PRC-a kao osnovne značajke PDF 1.7
Version 2.21.7
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.4 i starije sada odbija unose XObject slike
/SMaskInData, uključujući eksplicitnu vrijednost0, jer ugrađeni kanali meke maske JPEG 2000 zahtijevaju PDF 1.5 ili noviji
Version 2.21.6
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.4 i starije sada odbija 16-bitne XObjecte slika koje zahtijevaju PDF 1.5 ili noviji, dok ciljevi PDF 1.5 do PDF 1.7 čuvaju podatke o slici
/BitsPerComponent 16
Version 2.21.5
Popravljeno (Fixed)
- Eksplicitno pohranjivanje u PDF 1.4 i starije sada odbija vrijednosti
/PageLayout /TwoPageLefti/TwoPageRightkataloga dokumenta koje zahtijevaju PDF 1.5 ili noviji, dok ciljevi PDF 1.5 do PDF 1.7 čuvaju traženi dvostraničani izgled
Version 2.21.4
Popravljeno (Fixed)
- Eksplicitna pohrana u PDF 1.3 sada odbija unose
/Langu katalogu dokumenta koji zahtijevaju PDF 1.4 ili noviji, dok ciljevi PDF 1.4 do PDF 1.7 čuvaju identifikator jezika
Version 2.21.3
Popravljeno (Fixed)
- Eksplicitna pohrana u PDF 1.3 sada odbija stabla naziva
/EmbeddedFilesdokumenta koja zahtijevaju PDF 1.4 ili noviji, bez odbijanja tokova ugrađenih datoteka koji su referencirani putem starijih specifikacija datoteka
Version 2.21.2
Popravljeno (Fixed)
- Najnovija verzija: 2.21.2; Datum izdavanja:
Version 2.21.1
Popravljeno (Fixed)
- Validacija hibridnih referenci sada primjenjuje dodatne unose
/XRefStmprije klasičnih xref mjesta iz iste revizije, pa komprimirane napomene i drugi objekti ograničeni verzijom više se ne preskaaju
Version 2.21.0
Promijenjeno (Changed)
- Svi primjeri preglednika Delphi, C++Builder i Lazarus sada mogu otvoriti PDF prosljeđen kao prvi argument naredbenog retka, a C++Builder i Lazarus primjeri
MultiPageViewerpružaju eksplicitne prečice za odabir svega i kopiranje
Popravljeno (Fixed)
- Najnovija verzija: 2.21.3; Datum izdavanja:
Version 2.20.0
Promijenjeno (Changed)
- Svi primjeri preglednika Delphi, C++Builder i Lazarus sada nude dosljedne prečice za otvaranje, traženje, spremanje, ispis, zum i navigaciju stranicama, dok svaka varijanta
ViewerInteractionLabpodržava i skokove stranica, provjereni ručni zum 10–600 %, trajne zapisnike interakcija i provjere povratnog puta koordinata klika
Version 2.19.1
Popravljeno (Fixed)
- Najnovija verzija: 2.21.4; Datum izdavanja:
Version 2.19.0
Promijenjeno (Changed)
- Najnovija verzija: 2.21.12; Datum izdavanja:
Popravljeno (Fixed)
- C++Builder
CJKTextLabsada mjeri tekst putem izvezenih PDFium funkcija za uređivanje, aMergePDFizbjegava dvosmislo preopterećenje VCL poruke, čime su obnovljene čiste izrade u RAD Studio 37
Version 2.18.3
Popravljeno (Fixed)
- PAdES B-LTA vremenski žig dokumenta sada je registriran kao otkrivljivo polje potpisa — nevidljivi Widget dostupan putem
/Annotsprve stranice i AcroForm/Fields(ETSI EN 319 142-1 §5.4.3) — umjesto nedostupnog siročeta koje validatori koji nabrajaju polja potpisa nisu mogli pronaći; postojeće napomene i polja se čuvaju
Version 2.18.2
Popravljeno (Fixed)
- PAdES potpisivanje i klasično pisanje unakrsnih referenci sada daju jasnu grešku kada pomak bajta premašuje fiksnu širinu polja od 10 znamenki (~9,3 GB), umjesto da tiho ostavljaju rezervno mjesto
/ByteRangeneispisano (čime se dobiva nevaljani potpis) ili prekoračuju 20-bajtni xref redak (ISO 32000-1 §7.5.4); izlaz toka unakrsnih referenci koristi 8-bajtna binarna polja i nije zahvaćen
Version 2.18.1
Popravljeno (Fixed)
- PAdES potpisivanje sada razrješava neizravne reference
/Annots,/AcroFormi/Fieldsprve stranice cijelim zaglavljem objekta (ISO 32000-1 §7.5.3) i stvarnim brojem generacije reference; prethodno pretraživanje podniza moglo je podudariti broj objekta unutar dužeg (razrješavajući5 0 Ru15 0 obj), a tvrdo kodirani broj generacije propuštao je objektegen>0, oštećujući nizove polja potpisa ili odbijajući valjane dokumente - Kada katalog, prva stranica,
/Annots,/AcroFormili/Fieldsžive unutar toka objekta, potpisivanje sada pokušava na proširenoj kopiji prije neuspjeha, umjesto da odmah odbije dokument
Version 2.18.0
Dodano (Added)
ReadPdfVersionInfoizvještava o verziji zaglavlja, efektivnoj jezgrenoj verziji, nadjačavanju kataloga i razini Adobe razvojne ekstenzije iz PDF toka
Promijenjeno (Changed)
- Eksplicitna PDF 1.3–1.7 pohrana sada provjerava katalog, resurse stranice, XFA, redakciju i strukture razvojnih ekstenzija u kontekstu vlasničkog objekta; šifrirani eksplicitni verzijski izlaz i PDF 1.3 inkrementalna normalizacija se odbijaju radi očuvanja integriteta dokumenta
- Pohrane putanje datoteke sada pišu u privremenu datoteku i zamjenjuju odredište tek nakon što sve kompresije, normalizacije i provjere verzije uspiju
Popravljeno (Fixed)
- PDF 1.3 izlaz sada nosi obavezni puni resurs
/ProcSeti uklanja ključeve transparentnosti PDF 1.4 kada samo ponavljaju početne vrijednosti grafičkog stanja PDF 1.3 - Hibridne reference, xref-stream i object-stream datoteke više ne prepisuje klasični xref kompresor, čime se sprječava ispuštanje unosa komprimiranih objekata
- Nazivi koji nalikuju ključevima transparentnosti ili značajkama kataloga unutar nizova, komentara ili nepovezanih mapa resursa više ne uzrokuju lažne greške ciljane verzije
Version 2.17.0
Dodano (Added)
- PAdES potpisi sada su registrirani kao nevidljive Widget napomene u nizu
/Annotsprve stranice i u nizu AcroForm/Fields, čuvajući postojeće napomene i polja obrasca
Promijenjeno (Changed)
- Inkrementalna ažuriranja PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT i PAdES sada čuvaju prikaz unakrsnih referenci izvornoga dokumenta: dokumenti s xref-streamom dobivaju ažuriranje xref-streama prema ISO 32000-1 §7.5.8.1, dok klasični dokumenti i dalje dobivaju xref tablicu
- Pomaci unakrsnih referenci,
startxref,/Prev, vrijednosti PAdES ByteRange i SHA-256 obrada raspona sada koriste 64-bitne pozicije s chunked raspršivanjem, omogućujući datoteke veće od 2 GB u 64-bitnim izgradnjama - Generirani zapisivi XMP paketi sada rezerviraju 2048 bajtova dopune prije instrukcije zatvaranja paketa
Version 2.16.10
Popravljeno (Fixed)
- Proširenje toka objekta više ne oživljava zastarjele kopije objekata koje je inkrementalno ažuriranje migriralo iz toka objekta u običnu definiciju (ISO 32000-1 §7.5.7); provjere sukladnosti i ubacivanje oznaka prethodno su razrješavali zastarjeli katalog ili rječnik metapodataka na takvim datotekama
Version 2.16.9
Popravljeno (Fixed)
- U Free Pascalu, tekstualni nizovi čiji unos nije valjani UTF-8 proširuju se bajt po bajt kao Latin-1 i pišu kao UTF-16BE hex nizovi; prethodno su siroki visoki bajtovi procurili u literalni niz, što nije valjano kodiranje tekst-niza u PDF 1.7
- Dekodiranje toka sada prepoznaje sirove deflate podatke bez RFC 1950 zlib omotača (česta greška neispravnih pisača) i dekomprimira ih u sirovom načinu, tako da skeniranja sukladnosti više ne slijepe tiho na takvim tokovima
Version 2.16.8
Popravljeno (Fixed)
- Inkrementalna ažuriranja koja piše put pohrane nakon obrade sada osvježavaju drugi (promjenjivi) element prikolice
/IDprema zahtjevu ISO 32000-1 §14.4; prethodno su oba elementa kopirana doslovno, pa su alati za predmemoriranje i sinkronizaciju vidjeli nepromijenjen identifikator nakon svakog ažuriranja
Version 2.16.7
Popravljeno (Fixed)
- Brisanje tijela toka koje koriste skeniranja sukladnosti sada zahtijeva da je ključna riječ
streampraćena krajem retka (ISO 32000-1 §7.3.8.1); riječ unutar literalnog niza poput(downstream)prethodno je brisala svu sljedeću strukturu do sljedećegendstream, skrivajući stvarne povrede od provjera na razini bajtova - Skeniranja zabranjenih značajki PDF/X i PDF/E dodatno brišu literalne nizove i komentare (§7.2.2), tako da vrijednost poput
/Title (see /JavaScript docs)ili komentirani token više ne proizvodi lažan nalazJavaScript,AcroFormiliLZWDecode
Version 2.16.6
Popravljeno (Fixed)
- DPM unosi PDF/VT sada se provjeravaju pri pisanju prema dokumentaciji: nazivi ključeva koji krše pravilo NMTOKEN iz ISO 16612-2 §6.6 ili pravilo prefiksa registranta iz Annex E, te duplicirani nazivi, se odbijaju umjesto upisivanja u DPart rječnik — naziv koji sadrži razmak prethodno se dijelio u lažni par ključ/vrijednost i oštećivao rječnik
Version 2.16.5
Popravljeno (Fixed)
- Uklanjanje unosa rječnika čija je vrijednost hex niz (poput
/Check <...>) sada uklanja cijeli unos; ubacivači su prethodno ostavljali siročetni hex vrijednost, čime su proizveli sintaktički pokvaren rječnik - Uklanjanje unosa čija neizravna referenca koristi nove retke između tokena (ISO 32000-1 §7.3.10 dopušta bilo koji razmak) više ne ostavlja broj generacije i ključnu riječ
Riza sebe
Version 2.16.4
Popravljeno (Fixed)
- Skeniranje maksimalnog broja objekta više ne zahtijeva da zaglavlja objekata počinju redak (ISO 32000-1 §7.5.3 dopušta bilo koji razmak ili graničnik ispred njih), pa ubacivači više ne mogu dodijeliti broj objekta koji se sudara s inline zaglavljem
N G obji tiho oštetiti datoteku; brojevi objekata su ograničeni gornjom granicom Annex C - Tokovi čiji je
/Lengthneizravna referenca sada razrješavaju referencirani cjelobrojan objekt i koriste njegovu vrijednost kada se poklapa s zatvarajućimendstream; prethodno su takvi tokovi bili ograničeni pretraživanjem uzoraka, što je skraćivalo tijela koja legalno sadrže bajt sekvencuendstream— tipično za ugrađene PDF privitke
Version 2.16.3
Popravljeno (Fixed)
- Prolazi kompresije toka prosljeđuju dokumente s tokom unakrsnih referenci (PDF 1.5+ datoteke bez klasične ključne riječi
trailer) nepromijenjene; put obnove prethodno je pogrešno parsiraostartxrefkao lokaciju tablice i sintetizirao nagađani trailer, što je moglo proizvesti datoteku koja se ne može otvoriti - Kompresor preskače XMP tokove metapodataka kako bi PDF/A dokument zadržao obavezni nefiltriran tok metapodataka (ISO 19005-1 §6.7.2), i ostavlja netaknute vanjske tokove datoteka (
/Fs/FFilter) - Obnovljena tablica unakrsnih referenci skenira kopiju dokumenta bez tokova, pa binarni sadržaj toka više ne može lažirati zaglavlja objekata niti napuhati tablicu;
/Sizeobnovljenog trailera sada odražava stvarnu tablicu, a brojevi objekata su ograničeni gornjom granicom Annex C - Lociranje izvorne tablice unakrsnih referenci prihvaća CR-only završetke redaka (ISO 32000-1 §7.5.1) i više ne može podudariti slova
xrefunutarstartxref; skeniranje ključnih riječi toka dobilo je isti zaštitnik repaendstreamkoji se koristi drugdje i sada napreduje pored preskočenih tijela tokova
Version 2.16.2
Popravljeno (Fixed)
- Parsiranje cijelih brojeva u čitačima PDF-a na razini bajtova sada prihvaća eksplicitni znak
+dozvoljen prema ISO 32000-1 §7.3.3 i odbija nizove znamenki koji bi prekoračili, pa neprijateljski ili oštećeni dokumenti više ne mogu omotati parsiranu duljinu i pomake u obmanjujuće vrijednosti
Version 2.16.1
Popravljeno (Fixed)
- PDF/UA ubacivač piše vrijednost kataloga
/Langkao ispravni PDF tekstualni niz; prethodno je vrijednost prolazila kroz XML escaper, pa je jezični tag koji sadrži&ili zagrade proizveo oštećeni unos, a ne-ASCII unos je pisan kao sirovi UTF-8 - PDF/E unos
/ISO_PDFEVersionu Info koristi dijeljeni koder tekst-niza, čuvajući ne-ASCII vrijednosti legalnim u PDF 1.7 - XML escapiranje za XMP pakete ispušta kontrolne znakove koji su ilegalni u XML 1.0, pa metapodaci kopirani iz oštećenog izvornog dokumenta više ne mogu učiniti cijeli tok metapodataka neispravno oblikovanim
- Konverzija PDF-u-XMP datuma provjerava jesu li polja datuma numerička i dopunjava nedostajuće polje minuta, sprječavajući malformirane ISO 8601 datume u generiranom XMP; na platformama koje nisu Windows rezervna vremenska oznaka sada uključuje doba dana umjesto samog datuma
Version 2.16.0
Dodano (Added)
- Dekodiranje toka sada rekonstruira prediktore
/DecodeParms(PNG prediktori 10–15 i TIFF prediktor 2, ISO 32000-1 §7.4.4.4) nakon FlateDecode, poštujući/Colors,/BitsPerComponenti/Columns; tokovi objekata komprimirani prediktorom — uobičajen izbor pisača PDF 1.5+ — prethodno su davali razlikovane bajtove, pa su objekti koje nose bili tiho nevidljivi za skeniranja sukladnosti i ubacivanje oznaka
Popravljeno (Fixed)
- Detekcija FlateDecode sada parsira vrijednost
/Filterkao naziv ili niz umjesto podudaranja podniza, pa ulančani filtri i pojave riječi unutar nepovezanih vrijednosti više ne pokreću lažno raspuhivanje; nepodržani ulanci vraćaju se na sirove bajtove kao i ranije
Version 2.15.1
Popravljeno (Fixed)
- Skener rječnika sada preskače literalne nizove, hex nizove i komentare dok balansi
<</>>(ISO 32000-1 §7.2.2), pa rječnici koji sadrže vrijednosti poput(A >> B)ili hex niz koji graniči s zatvarajućim graničnikom više nisu skraćeni tijekom parsiranja trailera, kataloga i skeniranja sukladnosti - Ekstrakcija literalnog niza sada dekodira kompletan skup escapiranja iz §7.3.4.2 Tablica 3 —
\n \r \t \b \f, oktalni\ddd, nastavci redaka i EOL normalizacija bez escapiranja — umjesto kopiranja escapiranog slova doslovno, čime se obnavljaju ispravne usporedbe/Producer,/GTS_PDFXVersioni/ISO_PDFEVersionza pisače koji koriste oktalne escapirane znakove - Literalni nizovi koje pišu ubacivači oznaka sada escapiraju CR, LF i druge kontrolne znakove kako bi vrijednosti preživjele EOL normalizaciju čitačeve strane bajt po bajt
Version 2.15.0
Popravljeno (Fixed)
- Inkrementalna ažuriranja koja pišu ubacivači oznaka PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA i PDF/VT te putovi PAdES potpisivanja i DSS sada čuvaju trajni identifikator izvorne datoteke: prvi element trailera
/IDprenosi se doslovno prema zahtjevu ISO 32000-1 §14.4, a samo drugi (promjenjivi) element se osvježava; prethodno su oba elementa regenerirana, pa su vanjske reference i tijekovi rada dugoročne validacije vidjeli drugačiji identitet dokumenta nakon svake pohrane - PAdES potpisi, DSS ubacivanje i B-LTA vremenski žigovi dokumenta sada prenose referencu
/Infoizvornog trailera naprijed (ISO 32000-1 §7.5.6), pa svojstva dokumenta više ne nestaju iz ploča čitača nakon potpisivanja; trailer vremenskog žiga dokumenta također dobiva niz/ID - Rezervna vrijednost trailera
/Infoza dokumente s tokom unakrsnih referenci sada ispravno locira XRef stream rječnik i čuva broj generacije reference; prethodno se nikad nije podudarala na sukladnim PDF 1.5+ datotekama, tiho ispuštajući/Info
Version 2.14.4
Popravljeno (Fixed)
- Datum
/Mu rječniku potpisa koji pišuTPdf.SignPadesiSignPadesBytessada nosi obavezni prefiksD:i oznaku UTC pomakaZprema zahtjevu ISO 32000-1 §7.9.4; strogi validatori prethodno su odbijali vrijeme potpisivanja kao malformiran datumski niz
Version 2.14.3
Popravljeno (Fixed)
- Pretraživanja ključeva rječnika u dijeljenom PDF čitaču sada podudaraju cijele name tokene (ISO 32000-1 §7.3.5); prethodno je tok čiji je rječnik navodio
/Length1prije/Length(tipično za FontFile tokove) bio skraćen na pogrešan broj bajtova, tiho zasljepljujući PDF/A, PDF/UA i ostala skeniranja sukladnosti koja čitaju tokove fontova, CMap ili metapodataka - Pretraživanja trailera
/Encrypt,/Root,/Sizei/Infoviše ne podudaraju dulje ključeve koji dijele isti prefiks (poput/EncryptMetadata) - Proširenje toka objekta više ne vjeruje oštećenoj ili neprijateljskoj vrijednosti
/N: ne-cjelobrojna vrijednosti sada daju 0 umjesto neinicijaliziranog broja, a gornja granica izvedena iz/Firstsprječava prevelike alokacije pri skeniranju malformiranih dokumenata
Version 2.14.2
Popravljeno (Fixed)
- Ubacivači oznaka PDF/X, PDF/VT, PDF/UA, PDF/E i PDF/R sada kopiraju šifrirane izvorne dokumente nepromijenjene umjesto dodavanja sekcija ažuriranja u čistom tekstu; prethodno ponašanje je produciralo datoteke čiji je posljednji trailer izgubio unos
/Encrypt(ISO 32000-1 §7.5.6), pa su sukladni čitači pogrešno čitali šifrirano tijelo kao čisti tekst TPdf.SignPades,SignPadesBytesiInjectPadesDssMarkerssada podižuEPadesCryptokada je izvorni dokument šifriran, umjesto tiho emitiranja oštećene ili nepotvrdive datoteke; uklonite enkripciju prije potpisivanja ili ugradnje DSS materijala
Version 2.14.1
Popravljeno (Fixed)
TPdf.SignPadesiSignPadesBytessada popunjavaju sva četiri polja/ByteRangerječnika potpisa; prethodno su posljednja tri polja ostala na nultim rezervnim mjestima, pa su generirani potpisi deklarirali prazan raspon bajtova i neuspješno prošli provjeru u sukladnim validatorima- PAdES B-LTA rječnici vremenskih žigova dokumenta dobivaju isti popravak povratnog popunjavanja
/ByteRange ValidatePadesCompliancesada prihvaća standardni raspored potpisa gdje praznina raspona bajtova drži hex vrijednost/Contents, i provjerava da drugi segment raspona završava točno na kraju datoteke; prethodno su samo provjeru pokrivenosti prolazili rasponi bez praznina
Version 2.14.0
Dodano (Added)
TPdf.ExportXFDFserijalizira vrijednost svakog polja obrasca i napomene na svim stranicama u XFDF dokument (ISO 19444-1), emitujući<fields>za hijerarhijske vrijednosti obrasca i<annots>za sve podržane podtipove napomena (tekst, isticanje, podvlačenje, precrtavanje, valovito, linija, krug, kvadrat, karet, poligon, polilinja, pečat, tintas, slobodan tekst, privitak datoteke, zvuk, veza, redakcija)TPdf.ImportXFDFčita XFDF dokument natrag u učitani PDF, ponovo kreirajući napomene na odgovarajućim stranicama i primjenjujući vrijednosti polja na njihove widget napomene- Zapis
TPdfAnnotationdobio jeName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), krajnje točke linije, tjemena poligona/polilinije i polja liste gesta tintas kako bi XFDF kružni tokovi čuvali potpune metapodatke napomena - Novi uzorak
XfdfLabu skupovima demo programa Delphi, C++Builder i Lazarus demonstrira kružni tok izvoza/uvoza
Version 2.13.6
Popravljeno (Fixed)
ValidatePdfAsada tretira tokove kataloga/Metadatabez/Type /Metadataili/Subtype /XMLkao nedostajuće XMP metapodatke putempvaiMissingXmpMetadata- PDF/A preflight izvještaji sada klasificiraju
pvaiMissingXmpMetadatakao Metapodatke i preporučuju tok kataloga/Metadatas/Type /Metadata,/Subtype /XML, nefiltriranim XMP ipdfaidoznakama
Version 2.13.5
Popravljeno (Fixed)
ValidatePdfAsada izvještava o Widget napomenama bez rječnika izgleda i PDF/A-2 / PDF/A-3 napomenama koje zahtijevaju ali nemaju/APputempvaiAnnotationApDictViolation- PDF/A preflight izvještaji sada kategoriziraju
pvaiAnnotationApDictViolationkao sadržaj koji ubacivanje oznaka ne može popraviti
Version 2.13.4
Popravljeno (Fixed)
ValidatePdfAsada izvještava o PDF/A-2 i PDF/A-3 inline slikama čija je vrijednost/Iili/InterpolatetrueputempvaiImageDictionaryViolation, što odgovara postojećoj pokrivenosti rječnika Image XObject- PDF/A preflight izvještaji sada kategoriziraju
pvaiImageDictionaryViolationkao sadržaj koji ubacivanje oznaka ne može popraviti
Version 2.13.3
Popravljeno (Fixed)
ValidatePdfAsada izvještava o PDF/A-1 inline slikama koje koriste/LZWDecodeili skraćene/LZWfiltere unutar tokova sadržaja putempvaiInlineImageLzwForbidden, što odgovara postojećoj pokrivenosti inline slika PDF/A-2 i PDF/A-3- Skener filtera inline slika sada napreduje pored vodećih naziva resursa poput
/GS1, izbjegavajući zastoje pri skeniranju širih PDF/A-1 tokova sadržaja
Version 2.13.2
Dodano (Added)
TPdf.SetFocusedFormFieldTextupisuje tekst u međuspremnik za uređivanje trenutno fokusiranog polja obrasca putemFORM_ReplaceSelection, simetrično sFocusedFormFieldText. Za AcroForm text/combo polja vrijednost se predaje na/Vpri gubitku fokusa i traje; za XFA tekstualna polja upisivanje ostaje samo u memorijskom međuspremniku (PDFium ne izlaže javni API za usklađivanje XFA vrijednosti natrag u paket dataseta, pa se ne zadržava pri pohrani)- JavaScript host platforma sada se pričvršćuje kad god je V8 engine dostupan, neovisno o tome je li dokument XFA — pa može izvršavati i ugrađeni AcroForm JavaScript (skripte na razini dokumenta, izračuni polja,
app.alert). Prethodno jem_pJsPlatformbio spojen samo za XFA dokumente, ostavljajući AcroForm JS tiho onemogućenim
Promijenjeno (Changed)
- Pričvršćivanje JavaScript platforme sada je neovisno o XFA odluci u
InitializeFormFill— tablicam_pJsPlatformse gradi kad god jeV8FeaturesAvailableistinit, primjenjuje se nakon XFA version/callback spojeva umjesto ugniježđenja unutar njih
Version 2.13.1
Dodano (Added)
- Novi host događaji otkrivaju informacije koje su v2.13.0 form-fill povratni pozivi prethodno gutali:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Svaki događaj zadano koristi postojeće no-op ponašanje kada nije dodijeljen, pa postojeći hostovi nisu zahvaćeni - Svojstvo samo za čitanje
TPdf.XfaFormPacketsvraća jednokratni snimak svih XFA paketa (TXfaPacketList), ispunjavajući tipoveTXfaPacket/TXfaPacketListkoji su prethodno bili deklarirani ali nekorišteni - XFA-specifični PDFium kodovi grešaka
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTsada su vezani i prikazani putemLastPdfError, zamjenjujući generički “Unknown error” za XFA load/layout greške
Promijenjeno (Changed)
FFI_DoURIActionWithKeyboardModifiersada konzultiraOnXfaUriActionprije shell-izvršavanja URI-ja iz XFA polja, dajući hostu pravo veta (sigurnost: zlonamjerno XFA polje prethodno je moglo bezuvjetno pokrenuti proizvoljne URL-ove). Nedodijeljeni handleri čuvaju prethodni zadaniShellExecuteWDecodeFormFieldTypesada usmjerava XFA tipove polja krozIsXfaFormFieldumjesto eksplicitnog case-a s 8 grana, čime enumeracija ostaje poravnana sFPDF_FORMFIELD_XFA_*po ordinalnom pomaku
Popravljeno (Fixed)
ValidatePdfAsada izvještava o PDF/A-1 tvrdnjama koje koriste PDF 1.5 tokove unakrsnih referenci ili tokove objekata novim problemompvaiPdfA1Pdf15Structure, uz nastavak dopuštanja tokova objekata za PDF/A-2 i PDF/A-3
Version 2.13.0
Dodano (Added)
- Potpuna podrška za XFA (XML Forms Architecture) runtime:
TPdf.InitializeFormFillsada spaja svih 14 povratnih poziva verzije 2FPDF_FORMFILLINFO(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) i pričvršćujeIPDF_JsPlatformkako bi XFA-enabledpdfium.dllmogao renderirati i skriptirati dinamičke XFA obrasce - Nova jedinica
Lib\FPdfXfa.paskoja deklarira XFA konstante (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) i tipoveTXfaPacket/TXfaSaveFormatkoji su prethodno bili referenciani samo u komentarima - Statički čitač XFA paketa na
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplusGetXfaTemplate/GetXfaDatasets/GetXfaConfigizvlače XFAtemplate,datasetsiconfigpakete kao sirovi XML bez potrebe za XFA-enabled runtimeom — korisno za reviziju sukladnosti i migraciju podataka - Probe sposobnosti: globalni
XfaFeaturesAvailable, i po dokumentuTPdf.XfaRuntimeAvailable(je liFPDF_LoadXFAstvarno uspio) iTPdf.XfaStaticReadable(razrješavaju li izvozi čitača paketa) TPdfFormFieldTypeproširen sfiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, uzDecodeFormFieldTypekoji mapira nove vrijednostiFPDF_FORMFIELD_XFA_*- JavaScript host događaji na
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrliOnXfaRuntimeMissingomogućuju hostu prilagodbu JS dijaloških okvira i XFA navigacije, ili reakciju kada XFA dokument ne može pokrenuti engine - Novi Delphi uzorak
XfaLabkoji demonstrira detekciju XFA, ekstrakciju paketa, probiranje sposobnosti i put rezerve za nedostupan runtime
Promijenjeno (Changed)
TPdf.LoadDocumentsada predhodno skenira unos za XFA markere (/XFAu AcroForm rječniku, ili katalog/NeedsRendering) i, kada ih pronađe, auto-odabirepdfium.v8.dllpostavljanjemEnableV8Engine := Trueprije prvog učitavanja singleton biblioteke; jednom kad se učita običnipdfium.dll, proces se ne može prebaciti, paOnXfaRuntimeMissingsignalizira taj slučajTPdf.GetPageCountsada odražava broj stranica koji XFA engine prijavljuje putemFFI_PageEventnakon dinamičke repaginacije, umjesto samo statičkog PDF stabla stranica- Kada se otvori XFA dokument ali runtime nije dostupan,
InitializeFormFillsada prikačujeversion=1ixfa_disabled=1umjesto zahtjevanja verzije 2 s nedodijeljenim povratnim pozivima, što je prethodno riskiralo loš dereference pokazivača povratnog poziva
Version 2.12.2
Popravljeno (Fixed)
ValidatePdfACompliancesada izvještava o korištenim prilagođenim XMP prostorima imena bezpdfaExtension:schemas, a i dalje prihvaća standardnepdfaidmetapodatke bez deklaracija ekstenzija- Validacija ugrađenih datoteka PDF/A-3 sada zahtijeva i unose
/Fi/UFna razini na rječnicima specifikacija datoteka i ignorira ugniježđene/EFključeve toka pri provjeri tih naziva
Version 2.12.1
Popravljeno (Fixed)
ValidatePdfACompliancesada dekodira escapirane PDF name tokene prije podudaranja JavaScript, LZWDecode, Type1 i srodnih zabranjenih naziva, pa su zamagljeniji ali semantički identični nazivi ispravno prijavljeni- Provjere inline slika PDF/A sada odbijaju vrijednosti
/Filteri/Fkoje koriste/LZWDecode, skraćeni/LZWili/Crypt, uključujući nizove i escapirane forme naziva - PDF/A validacija sada izvještava o tokovima metapodataka s zabranjenim filterima toka, OutputIntent ICC profilima čiji je broj komponenti
/Nnedostaje ili je nedosljedan, te PDF/A-3 specifikacijama ugrađenih datoteka s nedostajućim ili nevaljali/AFRelationship
Version 2.12.0
Dodano (Added)
- TSA HTTP zahtjevi sada postavljaju eksplicitna 30 s ograničenja za svaku fazu (razrješavanje/spajanje/slanje/primanje) putem
WinHttpSetTimeouts, pa spora ili nedostupna tijela za vremensko žigosanje više ne mogu beskonačno blokirati nit potpisivanja umjesto oslanjanja na implicitne zadane vrijednosti WinHttp-a - Derivacija nonce po zahtjevu za PAdES B-T / B-LTA zahtjeve vremenskog žiga kada pozivatelj izostavlja
TPadesSignOptions.Nonce: SHA-256 preklapanje monotonog brojača + zidni sat +GetTickCount64+ identifikator procesa zamjenjuje prethodni fiksni rezervni$100000000, pa dva zahtjeva izdana u istoj milisekundi više ne koriste isti anti-replay nonce PdfInflatesada ograničava dekomprimirani izlaz na 256 MiB radi sprječavanja iscrpljivanja memorije zlib-komprimiranim tokom na neprijateljskom ili oštećenom unosu (“zlib bomba”); ograničenje je velikodušno za bilo koji stvarni PDF tok
Promijenjeno (Changed)
- Miješanje slojeva
TPdfView(isticanje pretraživanja, odabir teksta, riječ čitanja, raspon odabira) više ne koristiGetPixel/SetPixelVpo pikselu; pravokutnik se sada miješa putem 32-bpp izvanekranskogTBitmapiScanLineu jednom prolazu, eliminiranjem tisuća GDI kernel prijelaza po crtanju i čineći velike odabire responzivnima FPdfAsn1.TDerReader.ReadIntegersada odbija INTEGER polja dulja od 8 bajtova (i 8-bajtne negativce čiji bi bit predznaka zahtijevaoshl >= 64), vraćajući 0 umjesto računanja pogrešne vrijednosti kroz ponašanje nedefiniranog pomaka na CMS/PAdES ASN.1 unosuParseTimeStampRespviše ne odjekuje nonce zahtjeva natrag kaoTPadesTimestamp.Nonce; dok ne bude spreman TSTInfo obilazač koji provjerava vraćeni nonce, polje ostaje 0 kako bi signaliziralo “nije provjereno” umjesto davanja pozivateljima lažne sigurnosti da je odgovor vremenskog žiga svježe
Popravljeno (Fixed)
PointsToPixelsvraćao je nepromijenjen unos za svaki DPI: djelitelj je bioPointsPerInch(konstanta 72) umjesto literala 72, svodjući formulu naResult := Points. Svaki vanjski pozivatelj koji vrši pretvorbu točaka u piksele uređaja putem ovog pomoćnika sada dobiva ispravnoPoints × PixelsPerInch / 72PdfMaxObjNumpodbrojavao je na dokumentima koji koriste tokove objekata (PDF 1.5+ ObjStm): objekti komprimirani unutar/ObjStmnemaju markerN 0 obj, pa ih je skeniranje sirovih bajtova propustilo, a ubacivači koji dodjeljujuMaxObj+1za nove objekte bi se sudarkali sa skrivenim ObjStm članovima i tiho oštećivali datoteku. Skeniranje sada prvo proširuje tokove objekata pa je svaki broj objekta vidljivInjectPdfAMarkersviše ne krivotvorit PDF/A claim na šifriranom dokumentu: PDF/A (ISO 19005-1 §7.1) zabranjuje enkripciju, a ubacivač je prethodno kopirao izvornik s oznakama čak i kada bi ga sljedeća validacija odbila. Kada jeHasEncryptpostavljeno, izvornik se sada prosljeđuje nepromijenjen. Normalni putTPdf.SaveAsPdfAveć uklanja enkripciju (saRemoveSecurity) prije ubacivanja, pa ovo zahvaća samo izravne pozivateljePdfReadStreamBytessada odbija/Lengthveći od cijele datoteke prije alokacije rezultantnog međuspremnika, zatvara rani alokacijski put na oštećenoj ili neprijateljskoj neizravnoj duljini
Version 2.11.0
Dodano (Added)
- PDFium zapis
FPDF_FILEHANDLERsada deklarira svojih šest povratnih poziva (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) kao prava polja umjesto komentara, što odgovara rasporedu C zaglavlja. XFA FFI povratni pozivi za prijenos datoteka (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL) koji vraćaju ili konzumirajuPFPDF_FILEHANDLERi dalje ostaju neimplementirani u Pascal form-fill sloju, ali tip je sada strukturno ispravan za budući XFA submit/upload put - Učitavanje i uklanjanje PDFium biblioteke (
LoadLibrary/UnloadLibrary) sada su serijalizirani kritičnim odjeljkom koji je globalan za proces, pa dvije radne nitiTPdfFuture<T>(ili radna nit koja se natječe s glavnom niti) ne mogu obje vidjetiPDFiumLibrary=0i dvostruko vezati, ili osloboditi DLL dok ga druga nit koristi - Odjeljak
initialization/finalizationsada pozivaUnloadLibrarypri uklanjanju jedinice, osiguravajući da seFPDF_DestroyLibraryizvrši (spajanje radnih niti, odlaganje V8 isolate, čišćenje fontova/predmemorije) umjesto oslanjanja na OS da povrati DLL
Promijenjeno (Changed)
TPdf.SetActivesada guta svaku iznimku pri učitavanju (prethodno samoEPdfError), pa pogreška toka ili kršenje pristupa tijekom postavljanja obrasca/stranice ostavljaActive=Falseumjesto djelomično učitane komponente s neodređenim stanjem- Dosljedne kodiranje znakova za argumente ključa metapodataka PDFium-a:
TPdf.GetMetaTextsada koristi isti FPCAnsiString/ DelphiUTF8Encodesplit kaoGetViewerPreferencei putovi učitavanja, umjesto bare pretvorbeAnsiString(Tag) - Deduplicirani pomoćnici
BytesToAnsi,AnsiToBytes,WriteBytesiWriteStr:FPdfCompressih sada uvozi izFPdfPdfCommon(njegovi pseudonimiWriteBytesToStream/WriteAnsiToStreamsu povučeni) i redundantno tro-argumentno preopterećenjeBytesToAnsiuFPdfPdfaje uklonjeno.FPdfAsn1zadržava svoju lokalnu kopiju prema dizajnu kako bi kriptografski sloj ostao slobodan od jedinice sloja sukladnosti
Popravljeno (Fixed)
- Curenje resursa u
TPdf.LoadDocument(datoteka, memorija,TBytes,TMemoryStream, prilagođeni tok) iTPdf.CreateDocument: ako biInitializeFormFilliliReloadPagepodiglo iznimku nakon uspjehaFPDF_LoadDocument/FPDF_CreateNewDocument, izvorniFPDF_DOCUMENThandle bio je procurio jer jeFActiveu tom trenutku bio još uvijek False. Svaki put sada umotava postavljanje poslije učitavanja utry/excepti zatvara dokument pri neuspjehu, ostavljajući komponentu čisto neaktivnom - Prijateljeviji dijagnostika učitavanja PDFium DLL-a:
CheckLoadLibrarydetektiraERROR_BAD_EXE_FORMAT(193) i izvještava o nepodudarnosti arhitekture 32/64-bit ukazujući na odgovarajuću izgradDLLs/Win32iliDLLs/Win64, umjesto prosljeđivanja samo generičke OS greške.CheckGetProcAddresssada navodi da je postavljenipdfium.dllstariji od vezivanja kada nedostaje potrebni izvoz, umjesto bare OS poruke “procedure not found”
Version 2.10.1
Ispravljeno (Fixed)
- Standardizacija SignerInfo sid u PAdES-u: identifikator potpisnika sada koristi formu RFC 5652 §5.3
issuerAndSerialNumber(issuer Name + serialNumber, oba izvučena doslovno iz DER certifikata potpisnika), zamjenjujući prethodni nestandardnisubjectKeyIdentifier+ SHA-256 rezervaciju punog certifikata koju su Adobe Acrobat i drugi sukladni validatori odbacivali. Novi TbsCertificate DER obilazitelj (ExtractIssuerAndSerial) čita SEQUENCE izdavatelja i INTEGER serijskog broja kao sirove TLV bajtove — serijski brojevi često premašuju rasponInt64, pa je sirovi TLV obavezan. FormasubjectKeyIdentifierostaje kao rezerva samo kada raščlamba DER certifikata ne uspije
Promijenjeno (Changed)
TCmsSignerId.SerialNumber: Int64zamijenjen je sSerialDer: TBytes(sirovi serialNumber TLV). CMS graditelj ugrađuje izrezani TLV doslovno uIssuerAndSerialNumber, izbjegavajućiInt64preljev na 20-bajtnim CA serijskim brojevima (gornja granica RFC 5280 §4.1.2.2)
Version 2.10.0
Dodano (Added)
- Dugoročna validacija PAdES B-LT: kada je
TPadesSignOptions.Level >= plB_LT,SignPadesBytesdodaje inkrementalno ažuriranje koje nosi rječnik/DSSs certifikatom potpisnika i punim posrednim lancem (samopotpisani korijen je isključen prema RFC 5652 §10.2.3), plus oznaku/Extensions /ESICrazine Level 1 (EN 319 142-1 §5.4.2) - Arhivska vremenska oznaka PAdES B-LTA: kada je
Level >= plB_LTAi postavljenTsaUrl, dodaje se rječnik potpisa Document Time-stamp (/SubFilter /ETSI.RFC3161) čiji/ByteRangepokriva cijelu datoteku; ESIC oznaka se promiče na razinu Level 2. Ovo dovršava četiri osnovne razine PAdES (B-B, B-T, B-LT, B-LTA) - Prikupljanje lanca certifikata:
ResolveWinSignersada pozivaCertGetCertificateChaini popunjavaTPadesResolvedSigner.ChainCertDerposrednim CA certifikatima, tako da B-LT/DSS /Certsnosi svaki certifikat potreban za validaciju potpisa bez vanjskih dohvaćanja.CertFreeCertificateContextje sada vezan, čime se zatvara curenje jednog konteksta po potpisu zabilježeno u v2.8.0 - Radni tijek integracije s PDF/A:
TPdf.SignPadesWithPdfAnajprije pretvara dokument u PDF/A (najviša razina koju knjižnica danas emitira), a zatim primjenjuje traženi PAdES potpis — obrazac spremnika za dugoročno arhiviranje koji preporučuje EN 319 142-1 Annex A.7
Version 2.9.0
Dodano (Added)
- Pouzdana vremenska oznaka PAdES B-T:
TPadesSignOptionsdobiva poljaLevel,TsaUrliNonce. Kada jeLevel >= plB_Ti postavljenTsaUrl,SignPadesBytesizdvaja vrijednost potpisa iz izgrađenog CMS-a, traži RFC 3161 vremensku oznaku nad njom i ugrađuje vraćeni TimeStampToken kao nepotpisani atribut SignerInfosignature-time-stamp— korak pouzdanog vremena B-T (EN 319 142-1 §6.3 zahtjev o) FPdfTsa: višeplatformski RFC 3161 klijent —BuildTimeStampReq(verzija 1, SHA-256 messageImprint nad vrijednošću potpisa, nonce, certReq=true),ParseTimeStampResp(prihvaća PKIStatus 0/1, odbacuje 2+, izdvaja TimeStampToken ContentInfo doslovno) iRequestTimestamp(jednokratni build+POST+parse).PadesTsaAvailableograničava značajku na platformama bez HTTP pozadineFPdfTsaWin: Windows WinHttp pozadina, dinamički vezana iz winhttp.dll (nula novih ovisnosti pri kompilaciji; HTTPS se pregovara iz Windows spremišta certifikata). Zrcali obrazac dinamičkog vezivanjaFPdfCryptoWinFPdfCms:ExtractSignatureValueobilazi izgrađeni CMS kako bi vratio sirove oktete potpisa (ulaz TSA heša), aAddSignatureTimestampToCmsponovno gradi ContentInfo s novimunsignedAttrs [1](0xA1) koji nosi atribut vremenske oznake. Validator faze 1 prepoznaje rezultat kao B-T potpis
Version 2.8.0
Dodano (Added)
- Stog za potpisivanje PAdES B-B: četiri nova čisto-Pascal/višeplatformska gradivna bloka (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) plus Windows CNG pozadina (FPdfCryptoWin) omogućujuTPdf.SignPades/SignPadesToStreamda proizvedu PAdES B-B potpis od kraja do kraja. Certifikat potpisnika se razrješuje po SHA-1 otisku iz spremišta Current User “MY”; RSA-PSS (preporučeno), RSA PKCS#1 v1.5 i ECDSA podržani su putemNCryptSignHash FPdfSha256: samostalni SHA-256 FIPS 180-4 (Init/Update/Final + jednokratni pomagači). FPC 3.2.2 ne isporučuje SHA-2 jedinicu, pa knjižnica posjeduje jednu kako bi držala svaku putanju CMS koda na jednomTSHA256Digesttipu bez RTL grananjaFPdfAsn1: DER enkoder (TDerWriter) i čitač (TDerReader) koji pokrivaju SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontekstno-specifične oznake s kodiranjem određene duljine i obradom IMPLICIT-oznaka koje CMS zahtijevaFPdfCms: CAdES SignedData graditelj (BuildSignedData) koji emitira potpisane atribute content-type, message-digest i signing-certificate-v2 koje PAdES baseline nameće, s opcionalnim signing-time i commitment-type-indication. Digest signedAttrs se izračunava nad SET-oznakom (0x31) formom i ponovno emitira s IMPLICIT [0] (0xA0) oznakom prema RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: apstrakcija kriptografske pozadine sPadesCryptoAvailable/ResolvePadesSigner, dok Windows implementacija veže crypt32.dll / ncrypt.dll dinamički (bez nove DLL ovisnosti pri kompilaciji). ECDSA potpisi se prekodiraju iz Windows IEEE P1363 r¦s forme u DERECDSA-Sig-Valuekoji CMS zahtijevaSignPadesBytes: ubacivanje potpisa na razini bajtova — rezervira hex utor/Contentsfiksne širine, izračunava pokrivajući/ByteRange, radi digest dokumenta, gradi i ugrađuje CMS i dodaje inkrementalno ažuriranje. Validator (v2.7.0) prepoznaje izlaz kao PAdES B-B potpis
Version 2.7.0
Dodano (Added)
- Strukturni validator PAdES (ETSI EN 319 142-1 V1.2.1): nova jedinica
FPdfPadesi metodaTPdf.ValidatePadesprovjeravaju rječnike vrijednosti potpisa dostupne iz/ByteRange, obilaze CMSSignedDataunutar/Contentsdovoljno duboko da potvrde CAdES odijeljenu formu i otkrivaju četiri osnovne razine (B-B, B-T, B-LT, B-LTA) kao i rječnike Document Time-stamp (/SubFilter /ETSI.RFC3161) - Skup PAdES problema na razini klauzule: 26
ppei*enuma pokriva prihvatljivost/SubFilter(adbe.pkcs7.sha1iadbe.x509.rsa_sha1označeni kao zabranjeni), pokrivenost datoteke/ByteRange, zabranu/Cert, formu CMSSignedData(jedan potpisnik, odijeljeni eContent, raspon verzija), obavezne potpisane atribute (content-type,message-digest,signing-certificate/v2), zabranjene digeste (MD5, SHA-1), međusobno isključivanje/Reasonnaspramcommitment-type-indication(zahtjev d), zahtjev za pouzdano vrijeme B-T, oznaku/DSS+/Certs+ ESIC Level 1 za B-LT te Document Time-stamp + ESIC Level 2 oznaku za B-LTA - DSS injektor:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreamdodaju inkrementalno ažuriranje koje nosi rječnik/DSS(sa/Certs,/OCSPs,/CRLsnizovima tokova) i oznaku/Extensions /ESIC(Level 1 ili 2) na kopiju dokumenta, čuvajući izvorne bajtove — korak ugrađivanja materijala za validaciju B-LT/B-LTA (klauzula 5.4.2) - Višeplatformska faza bez ovisnosti: validator i injektor su čisti Pascal i rade na svakoj podržanoj IDE (Delphi, Lazarus, FPC, C++Builder); za ovo izdanje nije potreban kriptografski pozadinski sloj i ne uvodi se nova DLL ovisnost
Version 2.6.0
Promijenjeno (Changed)
- Dedupliciranje između standarda: još sedam dupliciranih pomoćnih funkcija (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) uklonjeno je iz pojedinačnih standardnih jedinica i konsolidirano u
FPdfPdfCommon, čime se smanjuje oko ~300 redaka tereta održavanja copy-paste koda - Kvaliteta PreflightReporta: problemi content-klase za PDF/X i PDF/E koji su prije padali u generičku kategoriju “missing marker” sada nose točne kategorije Content/Metadata/Security i preporuke specifične za klauzulu (oko 15 enuma za oba standarda)
- Testna pokrivenost za PDF/E i PDF/R: još šest enuma s nultom pokrivenošću dobilo je pozitivne testove (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Ispravak Lazarus gradnje:
Tests.PdfVT(DUnitX jedinica samo za Delphi, dodana u v2.5.x) sada je isključena iz Lazarus projekta kako bi se uspostavila kompilacija
Version 2.5.3
Dodano (Added)
- Potpunost OutputIntent (PDF/X-4 §6.2.4):
pvviOutputIntentSchemeoznačava OutputIntent čiji/Snije/GTS_PDFX;pvviOutputIntentMissingIdentifieroznačava nedostajući/OutputConditionIdentifier - Izuzeće Reference XObject za PDF/VT-2 (§6.2.2):
pvviReferenceXObjectForbiddenviše se ne aktivira zaPDF/VT-2datoteku, koja smije legalno koristiti Reference XObjects na X-5g/5pg bazi - Validacija znakova MIME granice (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharoznačava granicu čiji znakovi padaju izvan skupa bchars ili čija duljina premašuje 70
Ispravljeno (Fixed)
InjectPdfVTMarkerssada zapisuje Info/CreationDatei/ModDateiz opcija spremanja, tako da proizvedena datoteka prolazi krozValidatePdfVTCompliancebez lažnogpvviInfoModDateMismatch(injektor je prije prepisivao XMP datume, ali ostavljao datume Info rječnika zastarjelima)
Version 2.5.2
Dodano (Added)
- Dosljednost Info
/ModDate(§6.3 NOTE 2, baza PDF/X-4):pvviInfoModDateMismatchoznačava/ModDateInfo rječnika koji, nakon normalizacije iz PDF-datuma u XMP-datum, nije jednakxmp:ModifyDate - Sukladnost inline dijelova PDF/VT-2s (Annex A.2): MIME validator sada pokreće
ValidatePdfVTCompliancena svakom inlineapplication/pdfdijelu i označava tijelo koje nije PDF/VT putemvtmviInlinePdfNotPdfVT
Version 2.5.1
Dodano (Added)
- Validacija segmentacije DParts (ISO 16612-2 §6.5 Table 4):
pvviDPartsBadChunkingoznačava/DPartsniz čiji neposljednji podnizovi nemaju točno 8192 unosa ili čiji posljednji podniz pada izvan 1..8192 - Dosljednost RecordLevel između tokova (Annex A.2): MIME validator PDF/VT-2s sada izdvaja
/RecordLevelsvakog inline PDF-a i označava neslaganje putemvtmviRecordLevelMismatch, dopunjujući postojeću NodeNameList provjeru - Naznake ponavljajućih grafičkih objekata (§6.7):
pvviGtsScopeInvalidValueoznačava/GTS_Scopeizvan {SingleUse, Record, File, Stream, Global, Unknown};pvviGtsScopeRecordWithoutRecordLeveloznačava/Recordbez/RecordLevel;pvviGtsXidNotUuidoznačava/GTS_XIDkoji nije RFC 4122 uuid: URI;pvviGtsEnvMissingoznačava nedostajući/GTS_Envkada je/GTS_ScopeStream ili Global (§6.7.4) - Otkrivanje unaprijednih referenci u MIME (Annex A.2):
vtmviForwardReferenceoznačava inline PDF koji citira ime datoteke (putem/EF /F) koje nije uveo raniji dio privitka u toku
Ispravljeno (Fixed)
ExtractNodeNameListFromPdfiExtractRecordLevelFromPdfuFPdfPdfvtMimeriješili su povremeni off-by-one gdje je 1-bazirani pomak koji vraćaAnsiFindKeytretiran kao apsolutni bajtovski pomak u proširenom PDF-u
Version 2.5.0
Dodano (Added)
- Metapodaci Document Part za PDF/VT (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionsdobio jeDpmEntriesiDpmTargettako da writer može prikvačiti/DPMrječnik na sintetizirani DPart čvor, s validacijom imena ključeva prema pravilu drugog-klasa-prefiksa iz Annex E i pravilima §6.6 NMTOKEN / jedinstvenost /GTS_Managed-oblika na strani validatora - Tokovna razmjena PDF/VT-2s (Annex A): nova jedinica
FPdfPdfvtMimepružaBuildPdfVT2sStreamiValidatePdfVT2sStreamzamultipart/mixedMIME omotnicu koja nosi inline PDF/VT dijelove plus privitke ICC profile, s pravilom redoslijeda zaglavljaX-PDFVT-Stream-version: 1i provjerom dosljednostiNodeNameListizmeđu tokova TPdf.ValidatePdfVTsada izvršava autoritativno prebrojavanje JavaScript akcija putemFPDFDoc_GetJavaScriptActionCount, dopunjujući skeniranje imena/JavaScriptna razini bajtova
Ispravljeno (Fixed)
- Ispravnost PDF/VT
Trappedna bazi PDF/X-4: enum vrijednostptvUnknownuklonjena je (PDF/X-4 zabranjuje/Unknown),ptvUnspecifiedse normalizira na/Falsepri zapisu (nedostajući/Trappedtakođer je zabranjen), a novi problempvviTrappedInvalidoznačava odsutnu iliUnknownvrijednost ValidatePdfVTCompliancesada proširuje tokove objekata (PdfExpandObjectStreams) prije skeniranja, tako da katalog, OutputIntent ili Metadata rječnik pohranjeni unutar komprimiranog ObjStm (PDF 1.5+, tipično za PDF/X-4 proizvođače) bivaju dostupni pretragama na razini bajtova
Promijenjeno (Changed)
- PDF/VT-1 sada nasljeđuje pune zabrane sadržaja PDF/X-4:
pvviAcroFormForbidden(/AcroFormili/XFA),pvviAdditionalActionsForbidden(katalog/AA),pvviMissingTrimBoxipvviReferenceXObjectForbidden(Reference XObject, samo X-5g/5pg) - Dedupliciranje između standarda:
BuildDictObj,IccComponentCount, ugrađeni sRGB ICC profil (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumiPdfExpandObjectStreamspromaknuti su iz utrojenih lokalnih kopija uFPdfPdfa/FPdfPdfx/FPdfPdfvtu jedan kanonski dom uFPdfPdfCommon; 3144-bajtni ICC literal sada postoji točno jednom u kodnoj bazi
Version 2.4.0
Ispravljeno (Fixed)
InjectPdfUaMarkersviše ne odbacuje referencu/Infona traileru na bazi cross-reference-stream: lokalniSourceTrailerInfoRef(kojem je nedostajao xref-stream fallback) zamijenjen je zajedničkimPdfSourceTrailerInfoRef(prenesenim iz kopije za PDF/A koja je imala fallback od v2.0.0)- Zajednički
PdfReadStreamBytessada rukuje neizravnim referencama/Length N G R(prenesenim iz lokalne kopije za PDF/A), pa validatori PDF/VT, PDF/R i PDF/E više pogrešno ne čitaju niti preskaču tokove XMP metapodataka koje su proizveli alati s neizravnim Length (Acrobat, Ghostscript)
Promijenjeno (Changed)
- Dedupliciranje između standarda: lokalne kopije
PdfReadTraileruFPdfPdfaiFPdfPdfx, lokalne kopijeSourceTrailerInfoRefuFPdfPdfaiFPdfPdfua, te lokalniPdfReadStreamBytesuFPdfPdfaizbrisani su — zajedničke verzije uFPdfPdfCommonsada se primjenjuju posvuda; time se uklanja oko 330 redaka dupliciranog koda i eliminira obveza održavanja sinkronizacije kopija - Pokrivanje nedostatka testova za PDF/X: sedam enum vrijednosti za content-class koje su prethodno imale nultu pokrivenost dobilo je pozitivne testove (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Promijenjeno (Changed)
- Pokrivanje nedostatka testova za PDF/A se nastavlja: još tri enuma s nultom pokrivenošću dobila su pozitivne testove;
pvaiForbiddenRenderingIntent(§6.2.9) označava nestandardni naziv za rendering-intent u content streamu;pvaiJpeg2000Violation(§6.2.2) označava JPXDecode sliku s/NumComponentsizvan raspona {1,3,4} u Part 2;pvaiInlineImageLzwForbidden(§6.1.10) označava ugrađenu sliku koja koristi LZW filtar u Part 2
Version 2.2.0
Promijenjeno (Changed)
- Regresijski testovi za cross-reference-stream: postojeći
Validate_XrefStreamTrailer_DetectsConformancesada također provjerava da je referenca kataloga/Metadatarazriješena i da se XMPpdfaid:partčita na bazi xref-stream (ne samo/Root+/ID); novi testInjectPdfA_XrefStreamBase_RoundTripsštiti putanju xref-stream injektora dodanu u v2.0.0, a dva međustandardna testa (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) potvrđuju da PDF/E i PDF/R validatori više ne odbacuju xref-stream PDF-ove kao nečitljive - Zatvaranje testnog duga za PDF/A:
Validate_MinimalPdf_FlagsRequiredMarkerspotvrđuje da minimalan PDF pokrećepvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataipvaiMissingXmpDates— zatvarajući jaz simetrije s PDF/E i PDF/X validatorima koji su već imali ekvivalentne testove; još dva enuma s nultom pokrivenošću dobila su pozitivne testove:pvaiUnembeddedFontipvaiSubsetMissingCidSet
Version 2.1.0
Ispravljeno (Fixed)
- PDF/E je nenamjerno izostavljen iz ispravka za cross-reference-stream u v2.0.0: i
InjectPdfEMarkersiValidatePdfECompliancei dalje su pozivaliPdfReadTrailerbezAcceptXrefStream, pa je PDF/E injektor tiho zakazao na PDF 1.5+ izlazu (pdfiumov zadaniSaveAsCopy); oba pozivna mjesta sada prosljeđujuTrue - Zajednički fallback za cross-reference-stream u
PdfReadTrailersada nosi zaštitu/Type /XRefkoju su lokalne kopije za PDF/A i PDF/X već imale, tako da neispravan pomakstartxrefkoji pokazuje na nepovezani rječnik čisto zakazuje umjesto da se pogrešno raščlani kao trailer - Razrješavač neizravnih referenci
/LanguValidatePdfUaCompliance(v2.0.0) bio je nedostižan:PdfFindObjDictpronalazi samo<<rječnike, ali niz znakova objekta/Langje(...)ili<...>bez rječnika; zamijenjeno izravnim skeniranjem tijela objekta koje locira token niza znakova
Promijenjeno (Changed)
- Sedam suvišnih pomoćnih kopija (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj) koje su bile identične zajedničkim verzijama u
FPdfPdfCommonuklonjeno je izFPdfPdfaiFPdfPdfua— zajedničke verzije sada se primjenjuju svugdje putemuses
Version 2.0.0
Ispravljeno (Fixed)
- Tihi neuspjeh među standardima: zajednički pomoćnik
PdfReadTrailer(koji koriste injektori i validadatori markera za PDF/UA, PDF/X, PDF/VT i PDF/R) sada prihvaća parametarAcceptXrefStreami vraća se na rječnik objekata toka unakrsnih referenci kada ključna riječtrailernije prisutna (PDF 1.5+); prethodno je pdfiumov izlazSaveAsCopy(koji koristi cross-reference-stream) uzrokovao tiho otkazivanje svakog injektora markera — izvorni bajtovi kopirani su nepromijenjeni, a poziv je i dalje vraćao uspjeh; validator za PDF/R-1.0 (čija je baza PDF 2.0 uvijek cross-reference-stream) bio je praktički bez učinka, a zrela implementacija validatora za PDF/A prenesena je u zajednički pomoćnik kako bi svi standardi imali koristi - Skeniranje rječnika trailera u
InjectPdfUaMarkersiInjectPdfAMarkerssada koristiPdfDictEndkoji je svjestan dubine umjesto jednostavne pretrage za>>, tako da se trailer koji sadrži ugniježđeni rječnik (npr./Encrypt << ... >>) više ne prekida prerano prije završnog unosa/Info
Promijenjeno (Changed)
TPdf.ValidatePdfUasada potiskuje grubipvuaiFontNotEmbeddedna razini bajtova kada se preciznipvuaiPdfiumFontNotEmbeddediz objektnog modela Pdfium već aktivirao, tako da izvještaj o provjeri više ne sadrži dva gotovo identična retka „embed your fonts” za isti nedostatakpvuaiLangInvalidFormat(§7.2) sada razriješava neizravnu referencu/Lang(N 0 R) na njezin objekt niza znakova i provjerava sadržaj, tako da neizravno referencirana jezična oznaka više nije slijepa pjega
Version 1.99.0
Ispravljeno (Fixed)
pvuaiLangInvalidFormat(§7.2) više ne propušta heksadecimalno kodirane/Langnizove: parovi UTF-16BE (s oznakomFE FFBOM) i čisti ASCII heksadecimalni nizovi sada se dekodiraju i prolaze kroz istu provjeru gramatike BCP 47 kao i literalni(...)nizovi, tako da se neispravan heksadecimalni/Langotkriva dok usklađeni (npr. UTF-16BEen-US) više nije u opasnosti od označavanja
Promijenjeno (Changed)
pvuaiFontMissingToUnicode(§7.21.7) sada izuzima/MacExpertEncodingzajedno s/WinAnsiEncodingi/MacRomanEncoding, što odgovara četirima uvjetima izuzeća koje klauzula navodi
Version 1.98.0
Dodano (Added)
pvuaiNeedAppearancesTrue(§7.18.4) označava AcroForm čija je zastavica/NeedAppearancespostavljena na true, zbog čega se izgledi kontrola ne zaključavaju pouzdano i tehnologija asistencije ih ne može povezati sa stablom strukture; preneseno iz PDF/A validatora i ograničeno prisutnošću/AcroFormkako bi se smanjila površina skeniranja
Promijenjeno (Changed)
- Regresija korpusa veraPDF: povezani su prolazni i neprolazni parovi Reference-XObject (§7.20) te prolazni i neprolazni parovi podskupova CharSet/CIDSet (§7.21.4.2) u
Live_Corpus_ValidatePdfUaMatchesConformance; uzorci prolaza za zabranjenu vrijednost ToUnicode (§7.21.7) i isječak medija (§7.18.6.2) također su povezani kao zaštita od lažno pozitivnih rezultata (njihovi neprolazni uzorci koriste rasporede rječnika koje skeniranje na razini bajtova ne hvata, pa je povezana samo prolazna strana) - Popis tvrdnji o putanji prolaza korpusa dobio je 15 novih zaštita bez lažno pozitivnih rezultata, tako da se svaka aktivna provjera
pvuai*na razini bajtova i provjera strukture sada provodi na usklađenim uzorcima (prethodno je samo ~30 od 60 aktivnih problema bilo zaštićeno); zaštita zapvuaiLangInvalidFormatnamjerno je izostavljena jer provjera na razini bajtova konzervativno označava heksadecimalno kodirane/Langnizove koje ne može dekodirati
Version 1.97.0
Ispravljeno (Fixed)
- Učvršćivanje
ValidatePdfUaStructureElements: prolaz kroz lanac roditeljaEnclosingTablesada sadrži brojač skokova (ograničen brojem elemenata), tako da neispravan ciklusParentIndexna sintetičkom polju strukturnih elemenata više ne može blokirati pozivatelja; dodjela polja ID-ova označenog sadržaja uValidatePdfUaPageContentTaggingsada je ograničena na najviše milijun unosa, sprječavajući dodjelu memorije od nekoliko GB u slučaju neispravnog ili zlonamjernogMarkedContentID
Promijenjeno (Changed)
- Komentar dokumentacije enuma
pvuaiOrderedListMissingListNumberingsada točno opisuje što provjera radi: označava elementLčija je vrijednostListNumberingizvan skupa Tablice 347 standarda ISO 32000-1 (odsutni atribut se ne označava); prethodni komentar implicirao je da također otkriva poredane popise kojima nedostaje taj atribut, što implementacija ne čini - Dva uzorka neprolaza korpusa za nepodudaranje WMode-a
7.21.3.3-t02sada su povezana uLive_Corpus_ValidatePdfUaMatchesConformance— od verzije v1.95.0, tok CMap je dekompresiran pomoću FlateDecode, pa se usporedba rječnika i sadržaja sada pokreće na čitljivoj strani; zastarjeli komentar “nije povezano” je uklonjen
Version 1.96.0
Dodano (Added)
- Konzistentnost među standardima:
TPdf.ValidatePdfUadobiva dvije provjere prenesene iz PDF/A validatora;pvuaiAnnotationFlagsViolation(§7.18.1) označava neizuzetu bilješku koja nosi zastavicu Hidden / Invisible / NoView, što prekida tijek čitanja tehnologije asistencije;pvuaiActionTargetMissing(§7.18.5) označava radnju GoToR / URI / SubmitForm kojoj nedostaje potreban ključ cilja (/F+/D, /URI, /F), ostavljajući poveznicu neupotrebljivom za AT
Ispravljeno (Fixed)
- Spajanje stabla strukture kroz više stranica: petlja akumulacije
AllElemsuTPdf.ValidatePdfUasada ponovno postavljaParentIndexsvakog elementa iz lokalnog polja stranice na spojeno polje; bez ovoga, podređeni elementi na stranici 2 zadržavali su lokalni indeks stranice koji je pokazivao na isječak stranice 1, tiho kvareći svaku provjeru ovisnu o ParentIndex (struktura tablice/popisa, broj podređenih H elemenata prema §7.4.4, EnclosingTable) - Raščlanjivanje RoleMap:
PdfReadRoleMapPairsviše ne prekida cijelo skeniranje parova ključ/vrijednost kada je vrijednost neizravna referenca (N 0 R) or polje ([...]) — što su oba valjana oblika RoleMap prema ISO 32000-1 14.8.5.1; sada preskače samo taj unos (Continue) umjesto prekida (Break), čime se uklanjaju lažno pozitivni rezultatipvuaiRoleMapUnresolvedna tipovima mapiranim nakon unosa neizravne reference ili polja
Promijenjeno (Changed)
FPdfPreflightReport: 18 aktivnih vrijednostiTPdfUaValidationIssuekoje su prethodno padale u općenitu kategoriju “nedostaje marker” i pripadajuću preporuku sada nose točne kategorije (Structure / Content / Metadata / Security) i preporuke specifične za pojedinu klauzulu; također je ispravljena tiskarska pogreškapuaNone / pua1→pucNone / puc1uPDFSpecComplianceMatrix.md
Version 1.95.0
Promijenjeno (Changed)
- Provjera potpunosti i ispravnosti
TPdf.ValidatePdfUa: provjerapvuaiCMapWModeMismatch(§7.21.3.3) i provjerapvuaiToUnicodeForbiddenValue(§7.21.7) sada dekomprimiraju CMap / ToUnicode tokove sažete pomoćuFlateDecodeprije skeniranja (prethodno su se provjeravali samo nesažeti tokovi, što je bio poznati izvor lažno negativnih rezultata); zajednički pomoćniciPdfInflate/PdfReadAndDecodeStreampreneseni su izFPdfPdfa/FPdfPdfxuFPdfPdfCommonkako bi sve jedinice usklađenosti dijelile istu kopiju
Dodano (Added)
pvuaiSubsetCharSetEmpty(§7.21.4.2) označava Type 1 podskupFontDescriptorkoji nosi ključ/CharSetčija je vrijednost niza prazna — postojećipvuaiSubsetMissingCharSethvatao je samo nedostajući ključ; prazan/CIDSetse ne označava jer font bez CID-ova može legitimno nositi praznu bitmapu
Version 1.94.0
Dodano (Added)
- Revizija drugog prolaza
TPdf.ValidatePdfUazatvorila je šest praznina prema ISO 14289-1 koje su uočene pregledom stavku po stavku i ponovnim skeniranjem izvornih API-ja za Pdfium koji su već omotani, ali neiskorišteni u PDF/UA stazi:pvuaiHeadingFormatInvalid(§7.4.3) označava korisnički definirane oznake zaglavlja koje počinju s H, ali sadrže separatore, razmake ili rimske brojeve umjesto čistih arapskih znamenki;pvuaiMissingDocumentOutline(§7.17, treba) označava višestranični dokument koji ne sadrži strukturu oznaka (jednostranični dokumenti su izuzeti);pvuaiStructElementLangInvalid(§7.2) označava vrijednost/Langstrukturnog elementa koja nije valjana oznaka BCP 47;pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) označava strukturni element Widget kojem nedostaje vlasnik atributa PrintField;pvuaiLinkNotInStructureTree(§7.18.5) označava dokument čije bilješke/Subtype /Linknisu izložene kao strukturni elementi Link;pvuaiPdfiumAnnotationMissingContentsipvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) dodaju precizno skeniranje bilješki na razini objektnog modela Pdfium koje izuzima skrivene, izvan-crop-box, Popup i Widget bilješke — čime se eliminiraju lažno pozitivni rezultati heuristike na razini bajtova, koja ne može pročitati zastavice/Fili/Rect
Version 1.93.0
Dodano (Added)
TPdf.ValidatePdfUasada postavlja prolaz objektnog modela Pdfium povrh inspektora na razini bajtova, zrcaleći arhitekturu PDF/A 7. kruga: prolazi kroz tekstualne objekte svake stranice putemFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) i skenira svaki znak putemFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) iFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — što je preciznije od heuristike na razini bajtova, koja se aktivira samo kada nema nijednog programa fonta ili se/ToUnicodeuopće ne pojavljuje; prolaz se skraćuje na tri razine: petlja stranice izlazi kada su sva tri problema sloja Pdfium već postavljena, petlja po objektu izlazi na prvom neugrađenom fontu, a skeniranje znakova preskače prolaz.notdefkada jeUnicodeMapErrorveć pogodio; PDF/UA je bio posljednji validator PDF standarda bez sloja objektnog modela Pdfium
Version 1.92.0
Dodano (Added)
- Stvoren je
Tests.PdfR— prva testna datoteka za PDF/R-1 validator (FPdfPdfr), koja pokriva validaciju zaglavlja, zabranu ObjStm, detekciju rasterskih markera i zaštitu od lažno pozitivnih rezultata za čistu datoteku; svih šest testnih paketa PDF standarda sada ima namjenske testne datoteke: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = ukupno 212 testova
Version 1.91.0
Dodano (Added)
ValidatePdfEiValidatePdfVTdobili su provjere na razini sadržaja koje su prethodno bile dostupne samo u validatorima PDF/A, PDF/UA i PDF/X:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(samo PDF/E),pveiEmbeddedFilesForbidden(samo PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden;TPdf.ValidatePdfEiTPdf.ValidatePdfVTtakođer dobivaju sloj objektnog modela Pdfium (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded) koji prolazi kroz tekstualne objekte stranice putemFPDFFont_GetIsEmbedded, prekidajući rad na prvom neugrađenom fontu
Version 1.90.0
Dodano (Added)
TPdf.ValidatePdfXsada postavlja prolaz objektnog modela Pdfium povrh inspektora na razini bajtova: prolazi kroz tekstualne objekte svake stranice putemFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedi prijavljuje neugrađeni font kaopvxiPdfiumFontNotEmbedded— što je preciznije od heuristike na razini bajtova koja se aktivira samo kada nema nijednog programa fonta; prolaz se prekida na prvom pronađenom neugrađenom fontu
Promijenjeno (Changed)
- Prolaz kroz stablo strukture u
TPdf.ValidatePdfUa: pozivValidatePdfUaPageContentTaggingpo stranici (koji gradi mapu potraživanja ID-a označenog sadržaja i unakrsno provjerava svaki tekstualni/slikovni objekt) sada se preskače na sljedećim stranicama nakon što jepvuaiUntaggedContentveć pronađen — strukturni elementi se i dalje prikupljaju za provjere kroz više stranica (jedinstveni ID bilješke, slijed zaglavlja), ali skupi prolaz označavanja sadržaja po stranici rano prestaje
Version 1.89.0
Promijenjeno (Changed)
- Performanse sloja objektnog modela Pdfium u
TPdf.ValidatePdfA: prolaz stranica/objekt sada se skraćuje na tri razine — petlja stranice izlazi kada su svi primjenjivi problemi sloja Pdfium već pronađeni, petlja po objektu izlazi kada su postavljena oba problema po objektu (ugrađivanje fonta + prozirnost), a skeniranje znakova tekstualne stranice preskače prolaz.notdefkada jeUnicodeMapErrorveć pogodio; provjere dostupnosti API-jaAssigned()i zastavice usklađenosti predmemoriraju se u lokalne logičke vrijednosti jednom prije petlje umjesto da se ponovno procjenjuju na svakoj stranici/objektu/znaku; na velikom neusklađenom dokumentu prolaz se sada može zaustaviti nakon prve stranice umjesto skeniranja svih stranica; na usklađenom dokumentu dodatni trošak po stranici je manji (nema ponovljenih pozivaAssigned)
Version 1.88.0
Dodano (Added)
ValidatePdfXdobio je osam novih vrijednostiTPdfXValidationIssuena razini sadržaja koje pokrivaju ograničenja razmjene ispisa što ih PDF/X nameće izvan markera formata datoteke:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(nema/TrimBoxna nijednoj stranici) ipvxiTrappedNotSet(/Trappedje odsutan ili je/Unknown); validator PDF/X prethodno je provjeravao samo markere XMP/OutputIntent; ovo je njegov prvi prolaz na razini sadržaja; zajednički pomoćniciPdfStructureBytes/PdfHasName/PdfCountNamedodani su uFPdfPdfCommonkako bi ih sve jedinice usklađenosti mogle koristiti
Version 1.87.0
Dodano
- Validacija PDF/UA sada pokriva pravila za složene fontove prema ISO 14289-1 §7.21.3:
pvuaiCidSystemInfoMismatchoznačava Type0 fontove čiji ugrađeni CMap i potomak CIDFont se ne slažu okoRegistry/Orderingili čijiSupplementCIDFonta premašuje onaj CMap-a,pvuaiCMapNotEmbeddedoznačava CMap-ove na koje se referira po imenu (kaoEncodingiliUseCMap) a koji nisu unaprijed definirani CMap-ovi iz ISO 32000-1 Tablice 118, tepvuaiCMapWModeMismatchoznačava ugrađene CMap-ove čiji rječničkiWModese razlikuje od WMode-a u sadržaju njihovog toka
Ispravak
- Provjera §7.21.3.2
pvuaiCidFontMissingCidToGidMappropuštala je CIDFontType2 rječnike čiji par ključ/vrijednostSubtypeje odvojen novim retkom, a sada također označava vrijednost nazivaCIDToGIDMapkoja nijeIdentity
Version 1.86.0
Dodano
- Validacija PDF/UA sada pokriva pravila TrueType kodiranja prema ISO 14289-1 §7.21.6:
pvuaiTrueTypeEncodingInvalidoznačava nesimboličke TrueType fontove čijeEncodingnedostaje ili nije niMacRomanEncodingniWinAnsiEncoding(izravno ili putemBaseEncoding), apvuaiSymbolicTrueTypeEncodingoznačava simboličke TrueType fontove koji nose nestandardni nazivEncoding
Version 1.85.1
Promijenjeno
- Provjera redosljeda kartica prema ISO 14289-1 §7.18.3
pvuaiMissingTabsOrdersada se izvodi po stranici: svaka stranica koja sadrži zabilješke mora deklarirati/Tabs /Su vlastitom rječniku stranice, pa sukladna stranica sestra više ne maskira stranicu bez te deklaracije
Version 1.85.0
Dodano
- Validacija PDF/UA sada razlikuje dinamičke od statičkih XFA obrazaca prema ISO 14289-1 §7.15:
pvuaiXfaDynamicoznačava obrasce čija XFA konfiguracija postavljadynamicRendernarequired
Promijenjeno
- Prijašnja zastavica kandidata za bilo koji XFA
pvuaiXfaPresentje povučena i više se ne podiže (statički XFA je sukladan s §7.15); vrijednost enumeracije ostaje zbog kompatibilnosti API-ja
Version 1.84.0
Dodano
- Validacija PDF/UA sada otkriva neoznačeni pravi sadržaj koji zahtijeva ISO 14289-1 §7.1:
pvuaiUntaggedContentoznačava prikazane tekstualne i slikovne objekte koji nisu ni preuzeti od strane stabla struktura stranice (putem njihovih ID-ova označenog sadržaja) ni označeni kao Artifact - Novi pomoćnici na razini stranice
GetPageContentMarkInfosiValidatePdfUaPageContentTaggings zapisomTPdfPageContentMarkInfoza izravnu upotrebu
Version 1.83.0
Dodano
- Validacija PDF/UA sada primjenjuje model naslova prema ISO 14289-1 §7.4.4:
pvuaiHeadingModelMixedoznačava dokumente koji miješaju generičku oznakuHs numeriranim naslovimaH1..Hn, apvuaiHeadingMultipleInNodeoznačava čvorove strukture koji nose više od jednog podređenog naslovaH
Version 1.82.0
Dodano
- Validacija PDF/UA sada razrješuje RoleMap koji zahtijeva ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardoznačava unose RoleMap-a koji redefiniraju standardni tip strukture, apvuaiRoleMapUnresolvedoznačava korištene nestandardne tipove strukture čiji lanac RoleMap-a nedostaje, visi ili je ciklički — neizravni lanci koji dosežu standardni tip se prihvaćaju, a nekorišteni unosi RoleMap-a se nikada ne ocjenjuju - Novi pomoćnici
PdfUaIsStandardStructType,PdfReadRoleMapPairs(s dekodiranjem PDF escape sekvenci naziva#hh) iValidatePdfUaRoleMapUsageza izravnu upotrebu
Version 1.81.0
Dodano
- Validacija PDF/UA sada pokriva označavanje popisa prema ISO 32000-1 koje zahtijeva ISO 14289-1 §7.6:
pvuaiListStructureInvalidoznačava LI stavke izvan L kontejnera i Lbl/LBody dijelove izvan LI stavke, uz prihvaćanje ugniježđenih popisa i legitimne upotrebe Lbl unutar elemenata Note i BibEntry
Version 1.80.0
Dodano
- Validacija PDF/UA sada pokriva označavanje tablica prema ISO 32000-1 koje zahtijeva ISO 14289-1 §7.5:
pvuaiTableStructureInvalidoznačava TH/TD ćelije izvan TR retka i retke ili grupe redaka izvan njihovog Table kontejnera,pvuaiTableHeaderMissingScopeoznačava ćelije zaglavlja čiji odnos nije odrediv ni putem atributa Scope ni putem asocijacije Headers/ID, tepvuaiTableHeadersUndefinedIdoznačava Headers reference u dokumentima koji ne definiraju ID-ove elemenata strukture TPdfStructureElementizlaže atribute tablicaScope,HasHeaders,HeadersIds,ColSpaniRowSpan, razriješene tijekom prolaska stabla struktura
Promijenjeno
- Prolazak stabla struktura sada čita sve atribute rasporeda i tablica u jednom prolazu kroz rječnike atributa svakog elementa umjesto jednog skeniranja po atributu
Version 1.79.1
Nove značajke
- Primjer
AnnotationsLabpriključen je na Lazarus i C++Builder, pridružujući se postojećem Delphi primjeru konzole
Popravci
TPdf.CreateAnnotationmogao bi izbaciti “Cannot set attachment points” za oznake teksta (markup) koje koriste kvadrate (Highlight, Underline, StrikeOut, Squiggly) jer nova zabilješka još nije imala mjesto u kvadratu za zamjenu; umjesto toga sada dodaje prvi kvadrat
Version 1.79.0
Nove značajke
- Novi primjer
AnnotationsLabDelphi konzole: stvara zabilješke Text, Highlight, Square i Circle, zapisuje ih u PDF, a zatim ponovno učitava datoteku i nabraja popis zabilješki na stranici
Version 1.78.0
Nove značajke
- Nove značajke
TPdf.MeasureTextiTPdf.MeasureTextWidth: mjere prikazanu širinu i visinu niza za dani font i veličinu (PDF korisničke jedinice, 1 jedinica = 1/72 inča) bez dodavanja sadržaja na stranicu, čineći raspored i logiku prelamanja riječi mogućim povrhAddText; omogućila ih je samostalnaFPdfMeasurejedinica kao pomoćnik klase - Novi
TPdf.WrapText: pohlepno prelamanje teksta izgrađeno naMeasureTextWidthkoje dijeli tekst po razmacima i pakira riječi u retke ne šire od zadane širine (PDF korisničke jedinice); predugačka jedna riječ dobiva svoj vlastiti redak (nema loma unutar riječi), vraćajući prelomljene retke kao niz
Version 1.77.0
Nove značajke
ValidatePdfAdobio je tri noveTPdfAValidationIssuevrijednosti koje pokrivaju klauzule prethodno ocijenjene s “NO” ili “reader behaviour” prijašnjom revizijom praznina (dodan je novi niz ordinarja, a postojeće vrijednosti nisu promijenjene):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — znak koji se rješava u Unicode 0 bez pogreške mapiranja, što je simptom vremena izvođenja za glyph referencu.notdef; detektirano slojem Pdfium objektnog modela),pvaiWordBreakMissing(Level A 6.8.3.2 — niz znakova u prikazu s više od 20 znakova bez razmaka, što je vjerojatno kršenje spojenih riječi; gruba heuristika koja izbjegava lažne CJK detekcije), ipvaiLinkActionMissingTarget(6.6.3 — akcija GoToR/URI/SubmitForm kojoj nedostaje ciljni ključ prikaza, tako da ga čitač ne može prikazati)
Version 1.76.0
Dodano (Added)
ValidatePdfAje dobio tri noveTPdfAValidationIssuevrijednosti (dodani na kraj, postojeće vrijednosti ostaju nepromijenjene):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 —/BaseFontili/FontNametoken koji sadrži bajtove ≥ 0x80 koji ne tvore valjani UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — inline slika u toku sadržaja stranice koristi LZW ili Crypt filter) ipvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — nesimbolički TrueType font čiji Encoding rječnik sadrži/Differences)
Version 1.75.0
Dodano (Added)
ValidatePdfAdobio je tri nove vrijednostiTPdfAValidationIssue(dodani redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — numerički token koji premašuje ograničenje 32-bitnog cijelog broja s predznakom 2,147,483,647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — vrijednost/BMizvan standardnog skupa blend-modea ISO 32000-1 §11.3.5; nadopunjuje PDF/A-1pvaiTransparentColorSpacekoji dopušta samo Normal/Compatible) ipvaiHexStringOddDigits(6.1.6 —<...>heksadecimalni niz s neparnim brojem heksadecimalnih znamenki)
Version 1.74.0
Dodano (Added)
ValidatePdfAdobio je tri nove vrijednostiTPdfAValidationIssue(dodani redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiPermissionsViolation(6.1.12 — rječnik/Permskoji nosi/DigestLocation,/DigestMethodili/DigestValueuz/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — tranzicijska akcija Trans, detektirana putem uzorka akcijskog rječnika/S /Transkako bi se izbjeglo lažno podudaranje s/Transparency) ipvaiPdfiumObjectTransparency(PDF/A-1 6.4 — objekt stranice nosi stvarnu transparentnost premaFPDFPageObj_HasTransparency, proširujući sloj modela objekata Pdfium uveden u v1.73.0 za hvatanje efekata blend-modea/soft-maske koje pretraživanje naziva na razini bajtova može propustiti)
Version 1.73.0
Dodano (Added)
TPdf.ValidatePdfAsada slojevito postavlja prolaz modela objekata Pdfium povrh inspektora na razini bajtova: prolazi kroz tekstualne objekte svake stranice putemFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedi prijavljuje neugrađeni renderirani font kaopvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4) te učitava svaku tekstualnu stranicu za skeniranjeFPDFText_HasUnicodeMapErrori prijavljuje prekinuto preslikavanje Unicodea kaopvaiPdfiumUnicodeMapError(6.3.8). Ovo su provjere koje inspektor na razini bajtova ne može izvršiti — on vidi samo tokene naziva, a ne razriješene ručke fonta ili stanje preslikavanja po znaku — te se spajaju u rezultat na razini bajtova. Samostalna funkcijaValidatePdfACompliancena razini bajtova ostaje nepromijenjena
Version 1.72.0
Dodano (Added)
ValidatePdfAdobio je pet novih vrijednostiTPdfAValidationIssue(dodani redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalog ne smije nositi/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — OutputIntent ne smije nositi/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — specifikacija datoteke s/EFmora također nositi/UF),pvaiXmpPacketBytesAttr(6.7.5 — zaglavlje XMP paketa ne smije nositi zastarjeli atributbytes=iliencoding=) ipvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — bit ToggleNoView za bilješku/F, vrijednost 512, je zabranjen)
Version 1.71.0
Promijenjeno
ValidatePdfUasada izbacujepvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): prolaznik kroz stablo strukture (structure-tree walker) razrješava atribut rasporedaListNumberingna svakom elementuLputem Pdfium attribute API-ja i označava svaku vrijednost izvan skupa iz tablice 347 u ISO 32000-1 (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Odsutni atribut se ne označava, budući da popis može biti neuređen; ovo zatvara posljednju preostalu prazninu u ISO 14289-1 zabilježenu na kraju 5. kruga
Version 1.70.0
Dodano
ValidatePdfUaje dobio četiri nove vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — podskup CID-aFontDescriptormora deklarirati/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — ToUnicode CMap ne smije mapirati nijedan kod naU+FEFFiliU+FFFE; nekomprimirani tokovi se skeniraju za izlazne oblike<FEFF>/<FFFE>),pvuaiLangInvalidFormat(7.2 —/Langmora biti valjana RFC 1766 / BCP 47 oznaka; popustljiva gramatika prihvaćaen,en-US,zh-Hans,es-419i označava jasno nesukladne vrijednosti) ipvuaiOrderedListMissingListNumbering(7.6 — zadržano radi potpunosti API-ja; validator ga još ne izbacuje jer za pouzdano razlikovanje uređenih od neuređenih popisa potrebna je vrijednost atributaListNumbering, koju prolaznik kroz stablo strukture ne izlaže)
Version 1.69.0
Dodano
ValidatePdfUaje dobio dvije nove vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — strukturni element Widget mora biti ugniježđen unutar elementaForm; prolaznik kroz stablo strukture sada provjerava izravni tip roditelja svakog Widgeta) ipvuaiSubsetMissingCharSet(7.21.4.2 — podskup Type 1FontDescriptormora deklarirati/CharSet, identificiran prefiksom imena podskupa od šest slova+na/FontName)
Version 1.68.0
Dodano
ValidatePdfUaje dobio dvije nove vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — rječnik URI akcija ne smije nositi/IsMaps vrijednošćutrue, jer to onemogućuje pristupačni cilj poveznice) ipvuaiHeadingSequenceViolation(7.4.2 — numerirani naslovi moraju započeti sH1, a padajući niz ne smije preskočiti posrednu razinu, npr.H1→H3predstavlja kršenje pravila). Provjera naslova je prvo pravilo PDF/UA na razini stabla strukture u validatoru:ValidatePdfUaStructureElementssada prolazi kroz tipizirani popis elemenata i provjerava redoslijedH1…H6(iH7+prema 7.4.3) prema poretku u dokumentu
Version 1.67.0
Dodano
ValidatePdfUaje dobio pet novih vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — bilješka Link mora nositi alternativni opis putem/Contents),pvuaiAnnotationMissingContents(7.18.1 — svaka bilješka koja nije izuzeta bez/Contentsmora imati alternativni opis; Popup i Widget su izuzeti),pvuaiEmbeddedFileMissingName(7.11 — rječnik specifikacije datoteke mora sadržavati/Fi/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — podatkovni rječnik medijskog isječka mora sadržavati/CTi/Alt) ipvuaiCidFontMissingCidToGidMap(7.21.3.2 — ugrađeni Type 2 CIDFont mora sadržavati/CIDToGIDMap)
Version 1.66.0
Dodano
ValidatePdfUaje dobio pet novih vrijednostiTPdfUaValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvuaiRoleMapMissing(ISO 14289-1 7.1 — označeni dokument s nestandardnim vrstama strukture mora nositi/RoleMap),pvuaiOptionalContentAsKey(7.10 — rječnik konfiguracije izbornog sadržaja ne smije nositi ključ automatskog stanja/AS),pvuaiXfaPresent(7.15 — prisutnost AcroForm/XFAse označava jer je dinamički XFA zabranjen),pvuaiTrapNetAnnotation(7.18.2 — bilješke/TrapNetsu zabranjene) ipvuaiReferenceXObject(7.20 — referentni XObject-i, vezani za oznaku/Ref, su zabranjeni)
Ispravljeno
ValidatePdfUaviše ne prijavljuje lažno pozitivne rezultate zapvuaiEncryptionPresentna svakoj šifriranoj datoteci: PDF/UA dopušta šifriranje sve dok ključ rječnika za šifriranje/Pima postavljenu bit poziciju 10 (vrijednost 1024), što omogućuje pristup pomoćnim tehnologijama (7.16). Precizno kršenje sada se prijavljuje putem novogpvuaiEncryptionPBitMissing;pvuaiEncryptionPresentje zadržan u enum-u radi kompatibilnosti API-ja, ali ga validator na razini bajtova više ne izbacuje
Version 1.65.0
Dodano
ValidatePdfAje dobio pet novih vrijednostiTPdfAValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — ugrađeni Type 2 CIDFont mora nositi/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — podskup Type 1FontDescriptormora nositi/CharSet),pvaiSubsetMissingCidSet(6.3.5 — podskup CID-aFontDescriptormora nositi/CIDSet),pvaiWidgetActionForbidden(6.6.1 — bilješka Widget ne smije nositi/Aili/AA) ipvaiOptionalContentAsKey(ISO 19005-2 6.9 — rječnik konfiguracije izbornog sadržaja ne smije nositi ključ automatskog stanja/AS, što je novost jer PDF/A-2 dopušta izborni sadržaj)
Version 1.64.0
Dodano
ValidatePdfAje dobio osam novih vrijednostiTPdfAValidationIssue(dodani su redni brojevi, postojeće vrijednosti ostaju nepromijenjene):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 — nakon zaglavlja%PDF-x.ymora slijediti%komentar s najmanje četiri bajta veća od 127),pvaiExternalStreamRef(6.1.7 — rječnik toka ne smije nositi/F,/FFilterili/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntent/Smora biti/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDatemoraju se pojaviti i kaoxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — Level A zahtijeva/MarkInfos/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — rječnik/APbilješke smije sadržavati samo/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Dodatak E.2 — svaka povezana specifikacija datoteke mora nositi/AFRelationship) ipvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — slika JPEG2000 mora deklarirati 1, 3 ili 4 komponente)
Ispravljeno
ValidatePdfAviše ne prijavljuje lažno pozitivne rezultate zapvaiAnnotationFlagsViolationna dokumentima koji koriste jednoslovno ime resursa fonta kao što je/Font << /F 5 0 R >>; provjera oznake/Fsada je ograničena na kontekst bilješke (/Subtypevrste bilješke), što odgovara dokumentiranom ponašanju (6.5.3)ValidatePdfAsada prijavljuje zahtjev za pridruženom datotekom za PDF/A-3 po datoteci: dokument se označava samo kada ugrađeni/Type /Filespeckoji referencira ugrađeni tok putem/EFnema/AFRelationship, umjesto prijašnje provjere za cijeli dokument (bilo koji ili nijedan) (ISO 19005-3 Dodatak E.2)- Dodana je zastarjela akcija
/SetStateu skup zabranjenih akcija zajedno sa/SetOCGState, tako da se ime akcije PDF reference izravno hvata (6.6.1)
Version 1.63.0
Dodano (Dodano)
- Dodani
TPdf.MeasureTextiTPdf.MeasureTextWidth: mjere renderiranu širinu i visinu teksta za zadani font i veličinu bez dodavanja sadržaja na stranicu (u korisničkim jedinicama PDF-a, 1 jedinica = 1/72 inca), što omogućuje izračune rasporeda i automatski prijelom redova iznadAddText; pruža ih samostalna jedinicaFPdfMeasurekao class helper
Izmijenjeno (Promijenjeno)
- Demo Delphi MergePDF, Demo CBuilder MergePDF i Demo Lazarus MergePDF poboljšani za sva tri IDE: odabir raspona stranica po datoteci, neobavezna putanja izlaza, uklanjanje duplikata, dnevnik pokretanja, gumb za odustajanje i sažetak spajanja; oznake i metapodaci uveze se iz prvog izvora
- Demo primjeri
CreatePDFza sva tri IDE sada uključuju opciju Europski tekst za pisanje naglašenog teksta na češkom, francuskom, njemačkom, španjolskom, portugalskom, poljskom i turskom, za provjeru odabira fonta i obrade Unicodea (bivši primjerEuropeanTextintegriran) - Uklonjeni primjeri
ExtractTextPagesiEuropeanText: mogućnost izdvajanja teksta stranica po stranicu izExtractTextPagessada je pokrivena opcijama raspona stranica i separatora uExtractText; višejezični prikazEuropeanTextintegriran je uCreatePDF
Version 1.62.2
Ispravljeno (Ispravljeno)
- Regenerirana su zaglavlja C++Buildera (
.hpp) za svaku RAD Studio verziju i platformu (Win32/Win64/Win64x); bila su odstupila od Pascal izvora, ostavljajući zastarjele potpise funkcija i nedostajuće jedinice koje su do C++Builder korisnika stizale kroz distribuciju izvornog koda
Version 1.62.1
Ispravljeno (Ispravljeno)
- Vraćeno je prevođenje izvornog koda na RAD Studio 12 Athens i starijim verzijama: dodjela
TArray<Byte>u putanji provjere PDF/UA koristila je implicitnu pretvorbu niza dostupnu samo u Delphi 13, koja se nije mogla prevesti na starijim IDE-ovima
Version 1.62.0
Dodano (Dodano)
TPdf.RenderPageThumbnailprikazuje bilo koju stranicu po indeksu u bitmapu prilagođenu omjeru bez mijenjanja trenutne stranice dokumenta, učitane stranice ili okidanjaOnPageChange
Ispravljeno (Ispravljeno)
TPdfThumbnailViewviše ne upravljaPageNumbernadređenog dokumenta tijekom crtanja; ranije je svako ponovno crtanje ponovno učitavalo stranice, okidaloOnPageChangei odbacivalo tekstualnu stranicu, što je moglo poremetiti povezaniTPdfViewi pokrenuti petlje ponovnog crtanja. Minijature se sada prikazuju prekoRenderPageThumbnailbez takvih nuspojava- Provjera usklađenosti PDF/X sada ispituje dokumente s cross-reference streamom (PDF 1.6, tipično za PDF/X-4) i objekte pohranjene u komprimiranim object streamovima, umjesto da takve datoteke u cijelosti prijavljuje kao neusklađene; oznaka
GTS_PDFXVersiončita se i iz element-form i iz RDF atributnog oblika XMP - Provjera PDF/R sada prijavljuje
pvriInfoXmpMismatchkada se Info rječnik i XMP ne slažu oko Producer ili Creator; problem je prije bio deklariran, ali nikada nije bio prijavljen - Tajmeri za ispunjavanje obrazaca prate se po zahtjevu, pa dokument koji istodobno pokreće više tajmera (na primjer JavaScript interval uz treptanje kursora polja) zadržava sve umjesto da izgubi sve osim najnovijeg
- Crtanje
TPdfViewi njegove javne metodeRenderPage/RenderTilesada drže zaključavanje za prikaz dokumenta, čime se serijalizira s renderiranjem isteTPdfu radnoj niti (PDFium nije thread-safe) - Tekst bez ASCII znakova zapisan u metapodatke PDF/X, PDF/R i PDF/VT (nazivi uvjeta OutputIntent, Creator, Producer) sada se kodira kao UTF-16BE niz prema ISO 32000-1 §7.9.2.2 umjesto sirovog UTF-8, koji bi usklađeni čitači pogrešno očitali
- Pomoćne funkcije za usklađenost ispravno čitaju ugrađene metadata streamove čiji je
/Lengthneizravna referenca, učitavaju izvorne bajtove uzReadBufferpa kratko čitanje pada čisto i odbacuju negativan pomakstartxrefumjesto da riskiraju čitanje izvan raspona
Version 1.61.0
Promijenjeno (Promijenjeno)
- Ispravci deklaracija FFI/ABI mogu zahtijevati ponovno prevođenje koda koji je implementirao pogođene povratne pozive: form-fill povratni poziv
FFI_OpenFilesada nosicdecl(Win32 konvencija stoga), a parametarvalueuFPDFAnnot_SetStringValueiFPDFAttachment_SetStringValuesada jeFPDF_WIDESTRING(UTF-16LE) kako bi odgovarao PDFium zaglavljima - Povratni pozivi progresivnog učitavanja
FX_FILEAVAIL.IsDataAvailiFX_DOWNLOADHINTS.AddSegmentsada uzimaju pomake tipasize_t, asize_tje širine pokazivača na Free Pascal / Lazarus Win64 (prije skraćen na 32 bita), čime se popravljaju pozivi API-ja za dostupnost podataka ioutsize_tna FPC Win64
Ispravljeno (Ispravljeno)
- Sigurnost memorije: use-after-free form-fill tajmera pri uništavanju
TPdfs aktivnim AcroForm treptanjem kursora; dvostrukiFPDF_CloseDocumentna putanji pogreške uImportNPagesToOne; Pascal iznimke koje izlaze iz pozivaFPDF_FILEWRITE/FPDF_FILEACCESSpreko C granice tijekom spremanja i umetanja JPEG-a; i preljev cijelog broja u izvlačenju teksta pri čitanju od početnog indeksa do kraja stranice TPdfFuture<T>sada pouzdano isporučuje svoj povratni poziv rezultata; odgovor je prije gotovo uvijek bio odbačen i mogao je dotaknuti oslobođenu dretvu jer se radna dretva oslobađala prije nego što bi zakazani odgovor stigao- PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT i PDF/UA izlaz sada upisuje cross-reference stavke točno 20 bajtova, kako zahtijeva ISO 32000-1 §7.5.4
- Umetanje standardskih oznaka više ne uništava rječnik kada je uklonjeni ključ (na primjer
/Trapped) bio posljednji unos, što je prije progutalo zatvarajući>>i proizvelo neispravan objekt - Sada se ICC profilni streamovi OutputIntenta oglašavaju s potrebnim brojem komponenti
/Nza PDF/X i PDF/VT (već prisutno za PDF/A); šifrirani izvorni dokumenti dešifriraju se prije umetanja PDF/X, PDF/E, PDF/R, PDF/VT i PDF/UA oznaka, pa je izlaz valjan umjesto tiho oštećen - UTF-8 xpacket BOM u generiranom XMP-u sada se ispisuje kao točni bajtovi, čime se popravlja oštećenje na Delphi instalacijama čija ANSI kodna stranica nije Latin-1; incremental-update traileri sada zadržavaju referencu
/Infodokumenta SaveAss kompresijom više ne skraćuje streamove čiji je/Lengthneizravna referenca, a ponovno izgrađene cross-reference tablice sada koriste stavke od 20 bajtova, stvarne brojeve generacija i odbacuju zastarjeli pokazivač/Prev- Provjera usklađenosti čita marker-e verzije XMP atributnog oblika za PDF/E i PDF/X, pa se PDF/X-4 datoteke serijalizirane atributima prepoznaju, zahtijeva točan identifikator
PDF/E-1, ispravno čita metadata streamove s neizravnim/Lengthi više ne pogrešno podudara ključ/IDili/StructTreeRootstrukturalnog elementa pri provjeri PDF/UA trailera; neispravan pomakstartxrefviše ne izaziva grešku raspona TPdfThumbnailView: posljednja je stranica sada dostupna klizačem, trenutna stranica nadređenog dokumenta vraća se nakon crtanja minijatura, a standardno rukovanje mouse-leave ponovno se šalje- Bitmapi sivih tonova za stranice i slike više se ne crtaju pogrešnom paletom;
TPdfViewviše ne ostaje s visećom referencom kada se njegovTPdfprvo oslobodi - Preflight izvještaji: HTML se sprema kao UTF-8 kako bi odgovarao deklariranom charsetu, a JSON escaping nizova proizvodi ispravne
\usekvence za znakove bez ASCII-a na Free Pascal - Trial buildovi: dijalog podsjetnika na probnu verziju sada se prikazuje umjesto da bude potisnut prije nego što se može pojaviti
TPdfStreamAdaptersada odbacuje streamove veće od 4 GiB uz jasnu pogrešku umjesto da tiho skraćuje duljinu proslijeđenu PDFiumu
Version 1.60.1
Promijenjeno (Promijenjeno)
- AccessibilityReader demoi za Delphi, Lazarus i C++Builder sada pokreću čitanje naglas na
TPdfReadingSession: svaka se stranica slaže u jedan govorni blok sBuildSpokenTextFromWords, položaji riječi iz SAPI-ja hraneFeedSpokenPosition, a sesija napreduje kroz stranice i upravlja kursorom riječi u prikazu, zamjenjujući ručno orkestriranje koje je svaki demo ranije nosio - Praćenje karaoka na razini riječi u demoima sada radi i kada je NVDA govorni motor:
EstimatePacingodređuje tempo čitanja prema proteklom vremenu govora, dok je NVDA prije čitao naglas bez ikakvog praćenja riječi - Pauza i nastavak u demoima sada rade i s NVDA-om:
ResumeRestartsChunkponovno izgovara trenutnu stranicu od početka pri nastavku, dok SAPI zadržava svoje izvorno pauziranje i nastavak na istom mjestu
Version 1.60.0
Dodano (Dodano)
- Živo renderiranje za slabovidne na
TPdfView: nove opcije prikazareInvertireNightDuotonemijenjaju boje svake prikazane pločice stranice (potpuna inverzija boja ili noćna duotone paleta) prije nego što se iscrta pretraga, odabir, čitanje i preklop pokazivača riječi, prenoseći postojeće transformacije boja bitmapa u interaktivni preglednik za jedno-stranični i dvostrani prikaz; prebacivanje opcija odmah ponovno crta prikaz NightDuotoneInkiNightDuotonePaperkonfiguriraju noćnu paletu, zadano s jantarnim tekstom na crnoj stranici;reInvertima prednost kada su obje opcije postavljene
Version 1.59.0
Dodano (Dodano)
TPdfReadingSession: komponenta za orkestraciju čitanja naglas neovisna o govornom motoru. Zadržava pokazivač bloka, pokazivač riječi i stanje reprodukcije (Play/PlayFrom/Pause/Resume/Stop), napreduje kroz učitaneTPdfSpokenTextblokove dok domaćin putemTickprijavljuje da je motor neaktivan, prevodi pomake govornog teksta natrag u znakove na stranici i automatski upravlja pokazivačem riječi povezanogTPdfView; domaćin povezuje bilo koji govorni motor putemOnSpeaki događaja zahtjeva za odustajanjem / pauzom / nastavkom, tako da knjižnica ne veže nijedan govorni APIFeedSpokenPositiontroši položaje riječi motora (kao SAPIStatus.InputWordPosition);EstimatePacingsEstimatedWordsPerMinuteodređuje tempo za motore bez signala položaja;ResumeRestartsChunkponovno izgovara trenutni blok za motore bez izvornog pauziranjaOnChunkChange,OnWordChangeiOnFinishedokidaju se samo pri stvarnim promjenama, a oslobođeni prikačeni prikaz odvaja se automatski, pa host kod ostaje bez treperenja i siguran od rušenja
Version 1.58.0
Dodano (Dodano)
EstimateSpokenWordIndexprocjenjuje koju riječ govorni motor izgovara na temelju proteklog vremena i brzine u riječima po minuti, dajući duljim riječima razmjerno više vremena, pa motori koji ne prijavljuju položaj riječi (kao NVDA controller client) i dalje mogu upravljati pokazivačem čitanja na razini riječi; pozivatelj daje proteklo vrijeme, pa rutina ostaje bez sata i pogodna za unit testove
Version 1.57.0
Dodano (Dodano)
- Sastavljanje govornog teksta s preslikavanjem u dvije domene za praćenje čitanja naglas:
BuildSpokenTextFromWordsiSpokenTextAppendgrade niz koji se predaje tekst-u-govor motoru iz blokova riječi na stranici uz bilježenje tablice raspona, aSpokenToPageCharprevodi položaj govornog teksta prijavljen od motora (kao SAPIStatus.InputWordPosition) natrag u indeks znaka na stranici, tako da praćenje isticanja na razini riječi ostaje točno kada govorni tekst nije puni tekst stranice (preskočeni dijelovi, čitanje po jedinici, zamjene izgovora) TPdfSpokenTextiTPdfSpokenSpantipovi nose govorni niz plus rasponе izvorne stranice iz kojih je sastavljen; pomaci na umetnutim razdjelnicima rješavaju se na sljedeću preslikanu riječ, a pomaci iza preslikanih raspona prijavljuju da nema podudaranja
Version 1.56.9
Dodano (Dodano)
Demo\Delphi\PreflightReportdodaje pregled plana akcije koji sažima standarde koji nisu prošli, prioritete, sljedeće radnje, kodove problema i preporuke u kontrolnu listu za sanaciju
Promijenjeno (Promijenjeno)
Demo\Delphi\PreflightReportCliprihvaćaplan/actionplankao izlazni format za pojedinačno i skupno pokretanje, upisujući istu kontrolnu listu za sanaciju u tekstualnu datoteku- Oba Delphi PreflightReport demo programa sada prikazuju brojeve statusa pass / action / review uz ukupne standarde i probleme
Version 1.56.8
Promijenjeno (Promijenjeno)
ViewerInteractionLabsada uključuje kontrole za skakanje po stranicama, ručne kontrole zumiranja, bilježenje koordinataDeviceToPage/PageToDevicena temelju klika i jasniji zapis interakcije za provjeru odabira, pretrage, rotacije i navigacijeViewerInteractionLabreadme stranice sada dokumentiraju dodani tijek interakcije kroz lokalizirani skup demo readmeja
Version 1.56.7
Dodano (Dodano)
AccessibilityWorkbenchClimapira svaki pokrenuti nalaz na svoje WCAG 2.1 Success Criteria i ISO 14289-1 (PDF/UA-1) područje klauzule te prikazuje odjeljak o pokrivenosti standardima u izvještajimaAccessibilityWorkbenchCliračuna dokumentirani rezultat pristupačnosti 0-100 uz objavljenu rubriku kazni i raspon izvrstan / dobar / treba rad / slab, prikazan po datoteci i kao prosjek skupaAccessibilityWorkbenchCliprihvaćafailscore=Nda bi neuspješno završio pokretanje (izlazni kod 2) kada bilo koja datoteka ima rezultat ispod NAccessibilityWorkbenchClizapisuje SARIF 2.1.0 log kada naziv sažetka skupa završava s.sarif, s jednim pravilom po vrsti nalaza koje nosi svoje WCAG 2.1 i PDF/UA oznake za CI i code-scanning ingestijuAccessibilityWorkbenchClidodaje naredbuversionkoja ispisuje povezanu verziju PDFiumPasa
Version 1.56.6
Dodano (Dodano)
IntakeWorkbenchCliračuna SHA-256 forenzički hash svake ulazne datoteke (smanjujući ga naunavailablena kompajlerima bezSystem.Hash) i prijavljuje ga u svakom formatuIntakeWorkbenchCliprihvaćapasswords=file.txtza pokušajno otključavanje dokumenata zaštićenih lozinkom iz popisa kandidata, bilježeći indeks odgovarajućeg kandidata bez ikad zapisivanja teksta lozinkeIntakeWorkbenchCliprihvaćacopyto=dirza usmjeravanje svake pregledane datoteke u podmapu po razini rizika, pretvarajući auditor u sorter za ulazIntakeWorkbenchClizapisuje SARIF 2.1.0 log kada naziv sažetka skupa završava s.sarif, s jednim pravilom po zastavici rizika i jednim rezultatom po označenoj datoteci za CI i code-scanning ingestijuIntakeWorkbenchClidodaje naredbuversionkoja ispisuje povezanu verziju PDFiumPasa
Version 1.56.5
Dodano (Dodano)
IntakeWorkbenchClisada izvodi preporučene radnje nakon ulaza kao što su prihvati, zatraži lozinku, ručni pregled, karantena i deduplikacija te prikazuje broj radnji u sažecima skupaAccessibilityWorkbenchClisada izvodi preporučene radnje sanacije kao što su proslijedi, saniraj oznake, pokreni OCR, saniraj semantiku i ručni pregled, s odgovarajućim brojevima radnji u sažetku
Promijenjeno (Promijenjeno)
- Oba CLI demo alata razine alata prikazuju preporučenu radnju u konzolnom, tekstualnom, HTML, JSON i CSV izlazu, tako da operateri skupa mogu usmjeravati datoteke bez naknadne obrade polja rizika ili statusa
Version 1.56.4
Ispravljeno (Ispravljeno)
- Čitanje komentara, oznaka ili link anotacija u petlji više ne curi tekstualne nizove prethodne stavke: rezultatski zapisi
TPdfAnnotation,TBookmarkiTLinkAnnotationsada se čiste inicijalizacijom svjesnom upravljanih tipova umjesto sirovog nultiranja memorije, pa dokumenti s vrlo velikim brojem anotacija koje nose tekst više ne napuhuju memoriju procesa tijekom životnog vijeka aplikacije - Uništavanje
TPdfkoji je registrirao rukovateljOnUnsupportedFeaturesada ga odvaja od procesno-globalnog PDFium callbacka, pa kasnije učitavanje dokumenta iz druge instanceTPdfbez vlastitog rukovatelja više ne može pozvati oslobođenu komponentu (use-after-free)
Version 1.56.3
Ispravljeno (Ispravljeno)
AccessibilityWorkbenchCliviše ne broji prazne stranice kao heurističke stranice reda čitanja, pa označeni dokumenti s praznim razdjelnim stranicama zadržavaju ispravan status pristupačnosti; stranice bez čitljivog sadržaja sada se prijavljuju zasebno- Detekcija zaglavlja tablica u
AccessibilityWorkbenchCliviše ne pripisuje vanjskoj tabliciTHćelije koje pripadaju ugniježđenoj tablici, a nazivi polja obrasca i fontova uspoređuju se osjetljivo na velika i mala slova tako da se različita polja ne spajaju
Promijenjeno (Promijenjeno)
IntakeWorkbenchCliinventari hostova URL-ova sada uklanjaju userinfo, query i fragment dijelove, pa se krivotvorena poveznica poputtrusted.example@evil.examplepripisuje stvarnom hostu, a odredištamailto:doprinose svojoj domeni umjesto da budu nevidljiva- Markdown izvještaji
IntakeWorkbenchCliescapeaju backtickove u putanjama, hostovima i nazivima privitaka pod kontrolom napadača tako da se oblikovanje izvještaja ne može slomiti iznutra dokumenta - Izvještaji
AccessibilityWorkbenchCliprijavljuju neuspjehe skeniranja fontova i polja obrasca kao zasebne brojače, označavaju ne-ugrađene fontove koji također imaju ugrađene instance i ograničavaju duge popise fontova eksplicitnim markerom skraćivanja - Sažeci skupnog rada
IntakeWorkbenchClidodaju stupac za broj anotacija privitaka, a popis anotacija po stranici ograničen je na 20000 anotacija po stranici uz prikazani limit u svakom formatu
Version 1.56.2
Dodano (Dodano)
- AccessibilityWorkbenchCli sada provjerava ugradnju fontova, tooltipes polja obrasca, izvor reda čitanja, obrise dokumenta, strukturu tablica i popisa, sumnjivi alternativni tekst i bogatije pojedinosti po stranici za pregled, tako da skupni izvještaji pristupačnosti prepoznaju više ciljeva za sanaciju
- IntakeWorkbenchCli sada prijavljuje ograničenja skeniranja stranica, radnje pokretanja i remote-go-to, inventare hostova URI-ja, brojke anotacija, nepodržane PDFium značajke, duple identifikatore dokumenta i proširene zastavice rizika za automatizirani pregled ulaza
- IntakeWorkbenchCli prihvaća
maxpages=Nu pojedinačnom i skupnom načinu za ograničavanje skeniranja stranica po dokumentu, a pritom i dalje dovršava izvještavanje o metapodacima, privicima, skriptama, XFA, potpisima i riziku
Version 1.56.1
Ispravljeno (Ispravljeno)
- Učitavanje starijeg
PDFium.dllkojem nedostaje noviji export sada uredno ne uspijeva: putanja neuspjeha resetira svaku vezanu API ulaznu točku, pa provjereAssigned()(na primjer naFPDF_GetLastErroriliFPDF_GetSecurityHandlerRevision) prijavljuju knjižnicu kao neučitanu umjesto da pozivaju već otpušteni modul i ruše se s access violation UnloadLibrarysada čisti sve PDFium API veze umjesto samo opcionalnih V8 pomagača, pa nijedan zastarjeli pokazivač funkcije ne preživi nakon otpuštanja DLL-a
Version 1.56.0
Dodano (Dodano)
- Pokazivač čitanja na razini riječi za karaoke na
TPdfView:TrackReadingWordAtpreslikava trenutno-riječni pomak znaka govornog motora (kao SAPIStatus.InputWordPosition) na blokove riječi stranice, ističe riječ koja ga sadrži kao zaseban preklop iznad bloka čitanja, pomiče je u vidokrug i vraća indeks riječi, tako da izgovorena riječ svijetli dok glas napreduje SetReadingWordiClearReadingWordizravno postavljaju ili brišu istaknutu riječ izTPdfWordBox; ponovno postavljanje iste riječi je no-op, pa praćenje po riječima nikad ne treperi prikazomReadingWordColoriReadingWordFollowupravljaju bojom pokazivača riječi i time pomiče li prikaz automatski izgovorenu riječ u vidokrug
Version 1.55.2
Ispravljeno (Ispravljeno)
- ViewerInteractionLab sada daje alatnoj traci više vertikalnog prostora, pa se Open PDF, Create Sample, navigacija, pretraga i kontrole odabira više ne preklapaju pri skaliranim fontovima
Version 1.55.1
Ispravljeno (Ispravljeno)
- ViewerInteractionLab sada postavlja Prev, Next i Rotate na drugi red alatne trake, izbjegavajući preklapanje pri pokretanju s Open PDF i Create Sample
Version 1.55.0
Dodano (Dodano)
- Most teksta prema odabiru za čitanje i odabir:
TPdfView.SelectWordBoxiSelectWordSpanodabiru jedan okvir riječi ili raspon okvira riječi na istoj stranici (izPageWordBoxes) prema njihovim rasponima znakova, tako da se riječ ili redak koji se upravo čita može i odabrati i kopirati WordBoxIndexAtCharIndexmapira indeks znaka natrag na okvir riječi koji ga sadrži, upravljajući isticanjem riječ po riječ kako TTS čitački pokazivač napreduje
Version 1.54.0
Dodano (Dodano)
- Glasovni pristupnici za ispunjavanje obrazaca koji čitaju fokusirano polje izravno iz logičkog pokazivača:
FocusedFormFieldValue,FocusedFormFieldNameiFocusedFormFieldDetailsnaTPdfiTPdfViewprijavljuju trenutnu vrijednost polja, čovjeku čitljiv naziv (/TUtooltip, s rezervom na/T) i puniTPdfFormFieldInfo(tip, zastavice, opcije) - sve što glasovno sučelje treba najaviti dok prolazi kroz obrazac
Ispravljeno (Ispravljeno)
FocusedFormFieldValuečita polje putemFocusedFormFieldIndexumjesto PDFium interaktivnog fokusa, pa glasovno vođen ispunjivač obrasca dobiva pravu vrijednost čak i bez zaslonskog kursora (postojećiFocusedFormFieldTexti dalje odražava PDFium fokus i nepromijenjen je)
Version 1.53.0
Dodano (Dodano)
- Podrška za isticanje riječi na razini riječi:
TPdf.PageWordBoxesiTPdfView.PageWordBoxesdijele stranicu na zapiseTPdfWordBox, od kojih svaki nosi tekst riječi, njezin raspon znakova i pravokutnik u prostoru stranice, pa čitač pristupačnosti može istaknuti svaku izgovorenu riječ redom ("karaoke" čitanje) prosljeđujući pravokutnik uSetReadingHighlight BuildWordBoxesizlaže tokenizer korak zasebno, pretvarajući tekst stranice u word boxe s rasponima znakova
Version 1.52.0
Dodano (Dodano)
- Pomoćne funkcije za renderiranje za slabovidne
InvertPdfBitmap,GrayscalePdfBitmapiDuotonePdfBitmapprimjenjuju in-place transformacije boja na renderiranu 32-bitnu bitmapu, pa čitač pristupačnosti može prikazivati stranice invertirane / dark-mode, u sivim tonovima ili u prilagođenoj dvo-bojnoj shemi (na primjer tamna pozadina sa svijetlim tekstom) za slabovidne korisnike - Transformacije rade po pikselu i ponašaju se jednako na VCL i Lazarus/LCL, ostavljajući dimenzije bitmapa nepromijenjene
Version 1.51.0
Dodano (Dodano)
- Jedinični čitajući blokovi za asistivno slušno čitanje:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsiTPdfView.ReadingUnitslineariziraju čitljivi tok sadržaja u uređeneTPdfReadingUnitzapise veličine rečenice - svaki nosi tekst za izgovor uz svoj semantički tip, stranicu, pravokutnike isticanja i jezičnu oznaku, pa aplikacija za čitač zaslona može prolaziti kroz stranicu ili cijeli dokument po jedan izgovoreni blok - Semantička navigacija s
NextReadingUnitOfKind, koja glasovnom sučelju omogućuje skok na sljedeći ili prethodni naslov, sliku, stavku popisa ili ćeliju tablice bez ručnog skeniranja toka BuildReadingUnitsizravno pretvara bilo kojiTPdfContentFragmentsu čitajuće blokove: naslovi i opisi slike/alt ostaju cijeli dok se odlomci lome na granice rečenica, decimalne točke se čuvaju, a pokazivač čitanja je običan indeks u vlasništvu pozivatelja
Version 1.50.0
Dodano (Dodano)
ValidatePdfAsada može pregledavati PDF 1.5+ dokumente koji pohranjuju katalog, OutputIntent ili druge rječnike unutar komprimiranih object streamova (/Type /ObjStm). Object streamovi se raspakiravaju i objekti koje nose se razrješavaju, pa se takvi dokumenti provjeravaju prema vlastitim zaslugama umjesto da budu prijavljeni kao da im nedostaju PDF/A oznake
Version 1.49.5
Ispravljeno (Ispravljeno)
ValidatePdfAviše ne prijavljuje nedostajući opispdfaExtension:schemaskao problem. PDF/A identifikacijska shema (pdfaid) je dobro poznata, pa ni veraPDF ni PDF/A-2/-3 ne zahtijevaju opis proširene sheme za nju, a označavanje njezina izostanka pogrešno je prijavljivalo svaku usklađenu PDF/A treće strane. Dokumenti koje sama knjižnica proizvodi i dalje uključuju opis
Version 1.49.4
Ispravljeno (Ispravljeno)
ValidatePdfAsada otkriva razinu usklađenosti kada je PDF/A identifikator zapisan kao XML atribut (pdfaid:part="2") umjesto kao podređeni element, pa dokumenti u atributnom obliku više nisu prijavljeni s nepoznatom razinom. Time se također ispravlja niz u kojem neotkrivena razina navodi provjere specifične za dio da se vrate na stroga PDF/A-1 pravila i pogrešno označe ugrađene datoteke i transparentnost koju PDF/A-2 i PDF/A-3 dopuštaju
Version 1.49.3
Ispravljeno (Ispravljeno)
ValidatePdfAsada ispituje PDF 1.5+ dokumente čiji su cross-reference podaci cross-reference stream (datoteke koje nemaju ključnu riječtrailer). Razina usklađenosti, trailer/IDi drugi markeri čitaju se iz rječnika cross-reference streama, pa se takvi dokumenti provjeravaju prema vlastitim svojstvima umjesto da budu prijavljeni kao potpuno neusklađeni
Version 1.49.2
Ispravljeno (Ispravljeno)
ValidatePdfAviše ne prijavljuje lažan problem neugrađenih fontova na dokumentima koji ugrađuju sve svoje fontove. Prethodna heuristika uspoređivala je broj oznaka/FontDescriptors ugrađenim programima fontova, ali svaki ugrađeni font pridonosi s dvije oznake/FontDescriptor(referenca na rječnik fonta i objekt deskriptora), pa je svaka datoteka s ugrađenim fontom bila pogrešno označena. Provjera sada prijavljuje samo dokument koji navodi fontove, ali ne ugrađuje nijedan programski font, što odgovara ispravkuValidatePdfUaiz 1.44.3
Version 1.49.1
Ispravljeno (Ispravljeno)
- PDF/A izlaz sada se provjerava kao usklađen PDF/A-1b i PDF/A-1a s veraPDF-om: ugrađeni sRGB OutputIntent ICC profilni stream (na koji pokazuje
/DestOutputProfile) sada navodi potreban broj komponenti/N(3 za ugrađeni RGB profil), kako nalaže ISO 19005-1 6.2.3.2. Dokumenti kojeSaveAsPdfAstvara prije nisu prolazili strogu PDF/A-1 provjeru jer odredišni profilni stream nije sadržavao/N; vrijednost se izvodi iz zaglavlja ICC profila, pa će i profil CMYK ili Gray koji zada korisnik dobiti ispravan broj
Version 1.49.0
Ispravljeno (Ispravljeno)
ValidatePdfUaviše ne prijavljuje lažnu prijavu nedostajućeg XMP identifikatora na usklađenim označenim PDF-ovima - PDF/UA identifikator (pdfuaid:part),dc:title, XMP datumi i trailer/IDsada se čitaju iz izvornog dokumenta umjesto iz ponovno spremljene kopije, koja izostavlja XMP stream/Metadatai, za datoteke s cross-reference streamom, trailer/IDValidatePdfUaprovjera ugrađivanja fontova ispravljena je tako da dokument koji ugrađuje sve svoje fontove više nije prijavljen kao da ima neugrađene fontove; sada označava samo dokument koji navodi fontove, ali ne ugrađuje nijedan programski fontValidatePdfUasada prihvaća strukturalni elementFormulačiji je alternativni tekst zadan krozActualTextumjesto unosaAlt(ISO 14289-1 §7.7), u skladu s postojećim pravilom zaFigure
Version 1.48.0
Dodano (Dodano)
- Programatski odabir teksta na
TPdfView:SelectTextRange(po stranici i rasponu znakova) iSetSelection(po izričitim rasponima po stranicama) odabiru tekst iz koda - primjerice za čitanje i isticanje odlomka; oba ponovno crtaju prikaz i okidajuOnSelectionChangekada se odabir promijeni.SelectionRangesčita trenutačni odabir kao raspone znakova po stranicama, aSelectionRectanglesvraća njegove pravokutnike u koordinatama stranice za prilagođeno isticanje ili pomicanje na mjesto
Version 1.47.0
Dodano (Dodano)
- Navigacija poljima obrasca za glasovno vođeno ispunjavanje obrazaca, na
TPdfiTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusiFocusedFormFieldText. Oni pomiču logički pokazivač polja kroz widget polja stranice redoslijedom kartica (s omatanjem na krajevima), pa pomoćni čitač može prolaziti kroz obrazac, najaviti svako polje putemFormFieldInfo[Index].AlternateName(tooltip/TU) i ispuniti ga putemFormField[Index] - Događaj
TPdfView.OnFormFieldFocusChange, koji se okida kada se pokazivač polja pomakne (uz novi indeks polja ili -1 kada je poništen)
Version 1.46.0
Dodano (Dodano)
- Tok čitljivog sadržaja za asistivno slušno čitanje:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentiTPdfView.ReadableContentvraćaju uređeni popis semantičkih stavkiTPdfContentFragment, od kojih svaka nosi izgovoreni tekst (stvarni glifovi iliActualText/Alt za slike), vrstu fragmenta (naslov s razinom, odlomak, slika, stavka popisa, ćelija tablice, poveznica, obični), jezik, stranicu s brojem od 1 te pravokutnike isticanja po bloku i po retku. Označeni PDF-ovi lineariziraju se u logičkom redoslijedu čitanja iz stabla strukture; neoznačene stranice vraćaju se na redoslijed prikaza, tako da se svaki dokument može čitati naglas - Sinkronizirano isticanje čitanja na
TPdfView:SetReadingHighlight,ClearReadingHighlighti objavljeniReadingHighlightColorističu blok koji se trenutačno čita, iznad preklopa pretrage i odabira - Novi javni tipovi
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindiTPdfReadingOrderSource, te novi pomoćnikClassifyStructType
Version 1.45.0
Dodano (Dodano)
ValidatePdfUasada također prolazi kroz živo označeno stablo strukture i prijavljuje tri visokopouzdana kršenja sadržaja koja skeniranje na razini bajtova ne može otkriti: elementFigurebez unosa Alt i bezActualText(ISO 14289-1, 7.3), elementFormulabez atributaAlt(7.7) i elementNotebez jedinstvenog ID-a (7.9). Tri novaTPdfUaValidationIssuevrijednosti to izlažu:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltipvuaiNoteMissingId. Oblazak stabla preskače se za neoznačene dokumente- Novi javni pomoćnik
ValidatePdfUaStructureElementsprimjenjuje ta pravila stabla strukture na ravni popis elemenata (kako ga vraćaTPdf.StructureElements), pa se provjere mogu pokretati ili testirati bez učitavanja cijelog dokumenta
Version 1.44.5
Ispravljeno (Ispravljeno)
- Provjera ugrađivanja fontova u
ValidatePdfA(pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) sada također otkriva neuugrađene jednostavne fontove koji nemaju/FontDescriptor, ponajprije 14 standardnih Type 1 fontova (Helvetica, Times, Courier i tako dalje) koje PDF/A zahtijeva ugrađene bez iznimke. Prije je takav font prolazio neprimijećen; provjera sada također broji rječnike jednostavnih fontova (/Type1,/TrueType,/MMType1) prema ugrađenim programima fontova, po uzoru na ispravak za PDF/UA u 1.44.3
Version 1.44.4
Ispravljeno (Ispravljeno)
ValidatePdfVTsada odbacuje neispravna ISO 16612-2 §6.5 DPart stabla u kojima je/DPartsravni referentni niz umjesto traženog niza nizova ili u kojima list DPart ponavlja svoju stranicu/Startkao/Endiako raspon sadrži samo jednu stranicuValidatePdfVTsada provjerava nazive/NodeNameListkao vrijednosti XML NMTOKEN nakon proširenja PDF name#xxescapea, pa se neispravni nazivi razina hijerarhije prijavljuju krozpvviMissingDPartRootumjesto da se prihvate kao ispravna DPart struktura
Version 1.44.3
Ispravljeno (Ispravljeno)
- Provjera ugrađivanja fontova u
ValidatePdfUa(pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) sada također otkriva neuugrađene jednostavne fontove koji nemaju/FontDescriptor, ponajprije 14 standardnih Type 1 fontova (Helvetica, Times, Courier i tako dalje) za koje PDF/UA ne daje iznimku za ugrađivanje. Prije je takav font prolazio neprimijećen i dokument koji ga je koristio mogao je biti prijavljen kao usklađen; provjera sada također broji rječnike jednostavnih fontova (/Type1,/TrueType,/MMType1) prema ugrađenim programima fontova
Version 1.44.2
Ispravljeno (Ispravljeno)
ValidatePdfVTsada ostavlja prisutan, ali neprepoznatpdfvtid:GTS_PDFVTVersionmarker kaopvcUnknownumjesto da ga spušta napvcNone. Time se neispravni stringovi na razini datoteke poputPDF/VT-2szadržavaju razlikovnima od dokumenata koji nemaju nijedan PDF/VT marker; PDF/VT-2s se identificira MIME stream zaglavljem u ISO 16612-2 Dodatku A, a ne XMP markerom PDF datoteke- Provjera
/DPartRootsada strože provjerava semantiku ISO 16612-2 §6.5 stabla:/DPartRootNodei/NodeNameListmoraju opisivati stvarnu dubinu DPart-a, roditeljske veze DPart-a moraju tvoriti stablo,/Starti/DPartsmeđusobno se isključuju, a svaki stranicni/DPartmora pokazivati na pokriveni list DPart u istom redoslijedu dubinskog obilaska kao i stablo stranica
Version 1.44.1
Ispravljeno (Ispravljeno)
SaveAsPdfVTsada zapisuje minimalnu hijerarhiju dijelova dokumenta ISO 16612-2 §6.5 kada izvorni PDF nema upotrebljiv/DPartRoot. Generirano stablo povezuje svaku stranicu preko/DPart, čuva postojeću valjanu hijerarhiju i ostavlja bogatije metapodatke o primatelju i DPM-u pozivnom tijeku radaValidatePdfVTsada provjerava upotrebljivu DPart strukturu, čita PDF/VT XMP vrijednosti i iz RDF atributa i iz teksta elemenata te provodi točno PDF/VT-to-PDF/X osnovno uparivanje: PDF/VT-1 zahtijeva PDF/X-4, dok PDF/VT-2 zahtijeva PDF/X-4p, PDF/X-5g ili PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2više ne zapisuje neispravne oznake PDF/VT-2 za jednu datoteku. Pisac za jednu datoteku normalizira izlaz na PDF/VT-1 jer PDF/VT-2 zahtijeva semantiku skupa datoteka
Version 1.44.0
Dodano (Dodano)
ValidatePdfUasada također prijavljuje sadržajne PDF/UA povrede koje se mogu provjeriti na razini bajtova, uz oznake razine datoteke: programski font koji nije ugrađen (ISO 14289-1, 7.21.4), font kojem nedostaje/ToUnicodeCMap kada nema izuzetka za jednostavno font kodiranje (7.21.7) i dokument koji sadrži anotacije, ali za stranice ne deklarira/Tabs /Sredoslijed kartica (7.18.3)- Tri nove
TPdfUaValidationIssuevrijednosti -pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeipvuaiMissingTabsOrder- izlažeValidatePdfUai preflight izvještaj. To su grube heuristike namijenjene kao smjernice za predprovjeru, a ne kao potpuna provjera ISO 14289-1
Version 1.43.1
Ispravljeno (Ispravljeno)
SaveAsPdfUasada nameće obavezne unose kataloga ISO 14289-1, 7.1:/ViewerPreferences/DisplayDocTitle truei/MarkInfo/Marked true/Suspects falsečak i kada izvorni dokument već sadrži te rječnike s nedostajućim ili proturječnim vrijednostima. Prije su se markeri umetali samo kada su rječnici potpuno nedostajali, pa je izvor s, primjerice,/ViewerPreferencesbezDisplayDocTitleili/MarkInfos/Marked falsezavršavao kao neusklađena datoteka- Postojeći ključevi u već postojećem rječniku
/ViewerPreferencesili/MarkInfozadržavaju se, a rječnik zadan kao neizravna referenca razrješava se prije primjene obaveznih ključeva
Version 1.43.0
Dodano (Dodano)
ValidatePdfAsada primjenjuje pravila PDF/A-2 / PDF/A-3 za ugrađene i pridružene datoteke te za tekst razine U. Ugrađene datoteke i dalje se odbacuju za PDF/A-1; za PDF/A-3 ugrađena datoteka kojoj nedostaje obavezan ključ/AFRelationship(ISO 19005-3 Dodatak E) dobiva zastavicu, dok su PDF/A-2 privitci dopušteni (njihova se vlastita usklađenost ne provjerava rekurzivno). Nova vrijednostpvaiUnicodeMappingMissingprijavljuje PDF/A-2u ili PDF/A-3u dokument čiji fontovi nemaju/ToUnicodepreslikavanje (ISO 19005-2 6.2.11.7). Transparentnost i opcijski sadržaj i dalje se prijavljuju samo za PDF/A-1
Version 1.42.0
Dodano (Dodano)
- PDF/A-2 (ISO 19005-2) i PDF/A-3 (ISO 19005-3) sada su podržani na svim trima razinama usklađenosti - a, b i u - kroz
SaveAsPdfA,ValidatePdfAi svojstvoPdfAConformance. EnumeracijaTPdfAConformancedobivapac2a,pac2u,pac3aipac3u(PDF/A-1 nema razinu u). Spremanje zapisuje odgovarajućipdfaid:part(2 ili 3) ipdfaid:conformance(A, B ili U), zadržavajući podvrstuGTS_PDFA1OutputIntenta koju ISO 19005-2 čuva radi kompatibilnosti. Zahtjev za razinu A i dalje se spušta na odgovarajuću razinu B (za bilo koji dio) kada dokument nema označenu strukturu koju ta razina zahtijeva
Version 1.41.0
Dodano (Dodano)
ValidatePdfAsada otkriva sadržajne povrede PDF/A koje umetanje markera ne može popraviti, uz strukturne markere koje je već prijavljivao: JavaScript i druge zabranjene radnje, dodatne radnje (/AA), ugrađene datoteke,LZWDecode, transparentnost (soft maske i transparentne grupe), opcijski sadržaj (/OCProperties), zabranjene podvrste anotacija (FileAttachment, Sound, Movie, 3D, Screen),AcroForm/NeedAppearances truei/XFA, fontove čiji deskriptori nemaju ugrađeni programski font te zahtjev za razinom A izdan bez označene strukture koju zahtijeva ISO 19005-1 6.8. Provjere transparentnosti, opcijskog sadržaja i ugrađenih datoteka primjenjuju se samo na PDF/A-1 (te su značajke dopuštene u PDF/A-2 i PDF/A-3). Nove vrijednostiTPdfAValidationIssueizlažu svaki slučaj; postojeće vrijednosti ostaju nepromijenjene
Version 1.40.3
Ispravljeno (Ispravljeno)
SaveAsPdfAsada uklanja svako izvorno šifriranje dokumenta prije nego što proizvede PDF/A izlaz. ISO 19005-1 6.1.3 zabranjuje ključ/Encryptu traileru, ali putanja spremanja prije je zadržavala sigurnosni rukovatelj izvora, pa je spremanje šifriranog dokumenta kao PDF/A proizvodilo šifriranu, neusklađenu datoteku. Spremanje u PDF/A sada prvo dešifrira dokument. Nešifrirani dokumenti nisu pogođeni
Version 1.40.2
Ispravljeno (Ispravljeno)
SaveAsPdfAviše ne emitira lažnu tvrdnju usklađenosti za PDF/A razinu A. Kada se zatraži razina A (pac1a), ali izvorni dokument nema markere označene strukture koje zahtijeva ISO 19005-1 6.8 -/StructTreeRootu katalogu i rječnik/MarkInfos/Marked true- spremljena se datoteka sada identificira kao odgovarajuća razina B (pdfaid:conformance=B) umjesto da tvrdi razinu A. Čisto vizualni PDF/A-1b izlaz nije pogođen
Version 1.40.1
Ispravljeno (Ispravljeno)
- Pooštrena je provjera usklađenosti PDF verzije tako da se radnja
SetOCGState(set-optional-content-group-state) prepoznaje kao značajka PDF 1.5. Spremanje u cilj PDF 1.2, 1.3 ili 1.4 koji sadrži radnjuSetOCGStatesada se odbacuje kako bi odgovaralo ISO 32000-1 (Table 198); prije je takva radnja mogla proći u izlaz niže verzije. I dalje se prihvaća zasebna, zastarjela radnjaSetStateiz PDF 1.2 i novijeg
Version 1.40.0
Dodano (Dodano)
- Povezan je upstream
FPDFPageObj_AddExistingMark()API, koji postojeću content mark oznaku pridružuje objektu stranice. Kada uzastopni objekti stranice dijele istu oznaku, spremljeni PDF ih spaja u jednu oznaku koja obuhvaća sve; neuzastopni objekti dobivaju zasebne kopije - Povezan je upstream
FPDFTextObj_SetFontSize()API za mijenjanje veličine točke postojećeg tekstualnog objekta, kao dopuna postojećem povezivanjuFPDFTextObj_GetFontSize()
Promijenjeno (Promijenjeno)
- Obnovljeni su isporučeni PDFium runtime DLL-ovi (Win32 i Win64, standardna i V8 izdanja) na upstream snimku od 2026-06-02
Version 1.39.53
Promijenjeno (Promijenjeno)
- Delphi demo programi
PDFViewer,SplitViewiMultiPageViewersada otvaraju dokumente u načinuZoom to Pageprema zadanim postavkama - Početno renderiranje sada uklapa cijelu stranicu u površinu preglednika prije nego što korisnik odabere ručnu razinu zumiranja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.53
Version 1.39.52
Promijenjeno (Promijenjeno)
Demo\Lazarus\CreatePDFje poboljšan tako da uvodni primjer sada stvara PDF od dvije stranice s vektorskim putanjama, tabličnim sadržajem, ugrađenom slikom, tekstualnom anotacijom, rotiranim tekstom i jasnijim prikazom koraka izrade dokumenta- Dodane su dotjerane
README.htmlstranice za svaku Delphi, C++Builder i Lazarus demo mapu, čime su preostali tekstualni demo README zamijenjeni vodičem koji se može pregledavati u pregledniku - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.52
Version 1.39.51
- Poboljšani su skupni sažeci
Demo\Delphi\PreflightReportClis ukupnim statusima standarda za rezultate Prolaz, Potrebna radnja i Pregled kroz odabrane standarde - Redci po datoteci sada u TXT / HTML / JSON / CSV sažecima uključuju brojke Potrebna radnja i Pregled, što CI artefakte čini lakšima za pregled bez otvaranja svakog generiranog izvještaja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.51
Version 1.39.50
- Poboljšan je
Demo\Delphi\PreflightReportClinačin rada sa skeniranjem direktorija tako dabatchdir=folderprikuplja pronađene PDF putanje, sortira ih i zatim generira izvještaje u stabilnom redoslijedu - Rekurzivno skeniranje direktorija sada proizvodi reproducibilan redoslijed izvještaja i redaka sažetka, dok izričito
batch=list.txtprocesiranje i dalje zadržava redoslijed liste - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.50
Version 1.39.49
- Poboljšani su skupni sažeci
Demo\Delphi\PreflightReportClitako da bilježe postavke pokretanja: vrstu izvora, putanju izvora, rekurzivno stanje, izlazni direktorij, format izvještaja, odabrane standarde i načinfailon= - JSON sažeci sada uključuju objekt
run, TXT i HTML sažeci prikazuju odjeljak s postavkama pokretanja, a CSV retci ponavljaju iste revizijske stupce za proračunske tablice i CI cjevovode - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.49
Version 1.39.48
- Poboljšano je imenovanje skupnih izlaza za
Demo\Delphi\PreflightReportClitako da duplicirani nazivi ulaznih datoteka koje dijele jedanoutdir=više ne prepisuju međusobne generirane izvještaje - Skupna pokretanja sada dodaju sufikse
-2,-3i kasnije kada je putanja generiranog izvještaja već dodijeljena u istom pokretanju, a sažeci bilježe konačnu putanju izvještaja otpornu na sudare - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.48
Version 1.39.47
- Poboljšani su skupni sažeci
Demo\Delphi\PreflightReportClitako da TXT i JSON izlazi sada uključuju ukupne zbrojeve za ukupno datoteka, obrađenih datoteka, neuspjelih datoteka, problema i podudaranjafailon= - CSV sažeci ostaju čista tablica redaka za postojeće potrošače, dok HTML sažeci i dalje prikazuju iste agregirane metrike u zaglavlju nadzorne ploče
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.47
Version 1.39.46
- Poboljšan je
Demo\Delphi\PreflightReportClissummary=batch.html/.htmtako da skupna pokretanja mogu emitirati preglednicu čitljivu u pregledniku uz TXT / CSV / JSON manifeste - HTML sažeci prikazuju ukupne, obrađene, neuspjele i problematične metrike te podudaranja
failon=, a zatim navode svaki ulaz s poveznicama na izvještaje, statusom, brojkama i tekstom pogreške - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.46
Version 1.39.45
- Poboljšan je
Demo\Delphi\PreflightReportClisbatchdir=folderirecursivetako da skripte mogu izravno skenirati mape PDF-ova bez prethodnog pisanja popisa datoteka - Način rada s direktorijem ponovno koristi ponašanje
outdir=,summary=,standards=ifailon=iz načina rada s listom, dok nerekurzivno skeniranje obuhvaća samo odabranu mapu, arecursiveuključuje podmape - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.45
Version 1.39.44
- Poboljšan je
Demo\Delphi\PreflightReportClissummary=batch.csv|json|txttako da skupna pokretanja mogu emitirati strojno čitljiv manifest uz pojedinačne izvještaje po datoteci - Skupni sažeci uključuju svaku ulaznu putanju, putanju izvještaja, status, broj standarda, broj prođenih, broj problema, stanje podudaranja
failon=i tekst pogreške za CI poslove i vanjske skripte - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.44
Version 1.39.43
- Poboljšan je
Demo\Delphi\PreflightReportClisbatch=list.txtioutdir=reportstako da skripte mogu generirati preflight izvještaje za popis PDF datoteka u jednom pokretanju - Način rada s listom preskače prazne retke i retke komentara
#, izvodi naziv svakog izvještaja.preflight.<ext>iz ulaznog PDF-a, nastavlja nakon pogrešaka po datoteci i sažima obrađene i neuspjele datoteke prije povratka - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.43
Version 1.39.42
- Poboljšan je
Demo\Delphi\PreflightReportClisfailon=none|issues|action|reviewtako da CI poslovi mogu pretvoriti generirane preflight rezultate u determinističke izlazne kodove - CLI sada vraća izlazni kod 2 kada odabrano pravilo
failon=odgovara nakon što su datoteka izvještaja i opcionalni priloženi PDF izvještaj generirani, dok runtime pogreške i dalje vraćaju izlazni kod 1 - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.42
Version 1.39.41
- Poboljšan je
Demo\Delphi\PreflightReportClisattach=output.pdftako da se generirani preflight izvještaj može ugraditi kao prilog na razini dokumenta u novu PDF kopiju - CLI zadržava generiranu TXT / HTML / Markdown / JSON / CSV izvještajnu datoteku na disku i odbija je priložiti natrag u izvornu ulaznu PDF putanju, čime se smanjuje rizik od slučajnog prepisivanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.41
Version 1.39.40
- Dodan je
Demo\Delphi\PreflightReportCli, Delphi konzolni pratilac za skriptabilno generiranjeFPdfPreflightReportbez otvaranja preglednika - CLI podržava stvaranje uzorka bez argumenata i argumente za ulaz / izlaz, opcionalnu lozinku, izlazne formate
text/html/md/json/csvte filtriranjestandards=za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.40
Version 1.39.39
- Poboljšan je
FPdfPreflightReportsTPdfPreflightReport.ToMarkdowniSaveMarkdownToFiletako da se preflight izvještaji mogu izvesti kao Markdown prikladan za sustave za praćenje zadataka - Ažurirani su Delphi, C++Builder i Lazarus uzorci
PreflightReports prebacivanjem pregleda Markdowna i radnjama Save MD uz postojeći TXT / HTML / JSON / CSV tijek rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.39
Version 1.39.38
- Poboljšani su Delphi, C++Builder i Lazarus uzorci
SecurityAudits izvozom JSON izvještaja o reviziji uz postojeći TXT tijek rada spremanja / kopiranja - JSON izvještaj sadrži polja
format,generatedAt,summary,findingCounti strukturirane retkefindingss poljima severity, area i detail - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.38
Version 1.39.37
- Poboljšan je
FPdfPreflightReportsTPdfPreflightReport.ToCsviSaveCsvToFiletako da se preflight izvještaji mogu izvesti kao CSV pogodan za proračunske tablice - Ažurirani su Delphi, C++Builder i Lazarus uzorci
PreflightReports prebacivanjem pregleda CSV-a i radnjama Save CSV uz postojeći TXT / HTML / JSON tijek rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.37
Version 1.39.36
- Poboljšan je
FPdfPreflightReportsTPdfPreflightReport.IssueCategoryCountste ponovno upotrebljivim tipovimaTPdfPreflightIssueCategoryCountiTPdfPreflightIssueCategoryCountsza agregiranje problema na razini markera po kategoriji - Ažurirani su
TPdfPreflightReport.ToText,ToHtmliToJsontako da generirani PreflightReport izlaz uključuje sažetke broja problema po kategoriji uz retke po standardu i detaljne preporuke za probleme - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.36
Version 1.39.35
- Proširen je uzorak
PrintDialogpreimenovan uPrintPreferenceskroz Delphi, C++Builder i Lazarus tako da naziv demo programa sada odgovara toku rada preferencija ispisa autora PDF-a, N-up ispisa, filtriranja neparnih / parnih stranica, sivih tonova, obrisa ćelija i mapiranja obostrano - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.35
Version 1.39.34
- Poboljšan je
Demo\Delphi\PrintPDFs učitavanjem PDF-a povlačenjem i ispuštanjem te je dokumentiran postojeći tijek radaDemo\CBuilder\PrintPDFuz Delphi i Lazarus PrintPDF uzorke - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.34
Version 1.39.33
- Dodan je
Demo\CBuilder\SplitView, čime je matrica uzorka SplitView dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.33
Version 1.39.32
- Dodan je
Demo\Lazarus\SplitView, čime side-by-side PDF usporedba stiže u Lazarus s rasporedima od dvije ili tri plohe, navigacijom aktivnog prikaza, sinkroniziranim naredbama, presetima zumiranja i rotacijom - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.32
Version 1.39.31
- Dodan je
Demo\Lazarus\PrintPDF, čime standardni tijek ispisa PDF-a stiže u Lazarus s navigacijom pregleda, rasponima stranica, kopijama, načinom collation, napretkom i otkazivanjem - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.31
Version 1.39.30
- Dodan je
Demo\Lazarus\FontProperties, čime je matrica uzorka FontProperties dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.30
Version 1.39.29
- Dodan je
Demo\CBuilder\FontProperties, čime inspekcija indeksiranih znakova i metapodataka fonta stiže u C++Builder uz Delphi uzorak - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.29
Version 1.39.28
- Dodan je
Demo\Delphi\ExtractTextPages, čime je matrica uzorka izdvajanja teksta po stranici dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.28
Version 1.39.27
- Dodan je
Demo\Lazarus\PrintDialog, čime je matrica uzorka PrintDialog dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.27
Version 1.39.26
- Dodan je
Demo\CBuilder\PrintDialog, čime radni tok N-up ispisa i preferencija ispisa PDF autora stiže u C++Builder uz Delphi uzorak - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.26
Version 1.39.25
- Dodan je
Demo\CBuilder\ViewerInteractionLab, čime je matrica uzorka ViewerInteractionLab dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su radni tok izgradnje knjižnice i izlazi Win64 C++Builder paketa tako da se metode interakcije pregleda
TPdfViewispravno povezuju u Win64 demoima - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.25
Version 1.39.24
- Dodan je
Demo\Lazarus\ViewerInteractionLab, čime fokusirani tijek rada interakcije s preglednikom stiže u Lazarus uz Delphi uzorak - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.24
Version 1.39.23
- Dodan je
Demo\Lazarus\SearchAndSelect, čime je matrica uzorka SearchAndSelect dovršena kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.23
Version 1.39.22
- Dodani su
Demo\CBuilder\ContentExtractionLabiDemo\Lazarus\ContentExtractionLab, čime radni tok višekategorijskog izdvajanja sadržaja stiže u sve podržane demo IDE-ove - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.22
Version 1.39.21
- Poboljšani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReports odabirom formata pregleda tako da korisnici mogu pregledati tekstualni ili JSON izlaz prije spremanja izvještaja - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.21
Version 1.39.20
- Dodan je JSON izvoz u
FPdfPreflightReportputemTPdfPreflightReport.ToJsoniSaveJsonToFile, stvarajući strojno čitljive sažetke, status / prioritet po standardu, sljedeće radnje i detalje problema - Ažurirani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReports radnjama Save JSON uz TXT / HTML izvoz - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.20
Version 1.39.19
- Poboljšan je
FPdfPreflightReportsTPdfPreflightStatus, kategorijama problema, prioritetom po standardu i smjernicama za sljedeću radnju u TXT / HTML izvještajima - Ažurirani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReporttako da prikazuju status, prioritet, broj problema i sljedeću radnju u sažetoj mreži - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.19
Version 1.39.18
- Dodan je
Demo\Lazarus\SecurityAudit, čime je matrica Delphi, C++Builder i Lazarus demo programa dovršena za radni tok audita PDF rizika samo za čitanje - Lazarus uzorak popisuje dozvole, privitke, JavaScript radnje, URI / Launch anotacije poveznica, web poveznice, potpise, XFA stanje, dostupnost V8 / XFA pomoćnika i povratne pozive nepodržanih značajki, a zatim popis nalaza sprema ili kopira kao TXT izvještaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.18
Version 1.39.17
- Dodan je
Demo\CBuilder\SecurityAudit, čime je radni tok audita PDF rizika samo za čitanje stigao u C++Builder uz postojeći Delphi uzorak - C++Builder uzorak popisuje dozvole, privitke, JavaScript radnje, URI / Launch anotacije poveznica, web poveznice, potpise, XFA stanje, dostupnost V8 / XFA pomoćnika i povratne pozive nepodržanih značajki, a zatim popis nalaza sprema ili kopira kao TXT izvještaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.17
Version 1.39.16
- Dodan je
Demo\CBuilder\SearchAndSelect, čime je samostalni radni tok preglednika SearchAndSelect stigao u C++Builder uz postojeći Delphi uzorak - C++Builder uzorak stvara ili otvara PDF-ove, prikazuje rezultate pretrage na svim stranicama s pregledom broja stranice / indeksa znaka, podržava navigaciju Previous / Next i dvoklik, te ističe podudaranja na trenutnoj stranici pomoću
HighlightSearchText - Također izlaže
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangei opcije raspršenogDisplayMode; metapodaci verzije sada prijavljuju 1.39.16
Version 1.39.15
- Dodan je
Demo\CBuilder\WatermarkStamp, čime je matrica demo programa za ponovno upotrebljiv Form XObject radni tok vodenih žigova i žigova dovršena kroz Delphi, Lazarus i C++Builder - C++Builder uzorak stvara ciljne i stamp PDF-ove, ponovno koristi stranicu žiga putem
CreateXObjectFromPage, primjenjujeTPdfMatrixtransformacije i sprema vodene žigove u sredini, žigove u kutovima i oznake broja stranice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.15
Version 1.39.14
- Dodan je
Demo\Lazarus\WatermarkStamp, čime je radni tok ponovno upotrebljivog Form XObject vodenog žiga i žiga stigao u Lazarus - Lazarus uzorak stvara ciljne i stamp PDF-ove, ponovno koristi stranicu žiga putem
CreateXObjectFromPage, primjenjujeTPdfMatrixtransformacije i sprema vodene žigove u sredini, žigove u kutovima i oznake broja stranice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.14
Version 1.39.13
- Dodan je
Demo\CBuilder\PreflightReport, čime je matrica demo programa za ponovno upotrebljivFPdfPreflightReportradni tok dovršena kroz Delphi, Lazarus i C++Builder - C++Builder uzorak koristi
FPdfPreflightReport.hppza generiranje sažetaka standarda, pregleda TXT izvještaja, TXT / HTML datoteka izvještaja i ponašanja Open Last Report - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.13
Version 1.39.12
- Dodan je
Demo\Lazarus\PreflightReport, čime je radni tok preflight izvještaja za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT stigao u Lazarus - Lazarus uzorak može otvoriti ili stvoriti PDF, odabrati ciljane standarde, pregledati retke sažetka i TXT izlaz izvještaja, spremiti TXT / HTML izvještaje i otvoriti posljednje spremljeni izvještaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.12
Version 1.39.11
- Poboljšan je
Demo\Delphi\SearchAndSelects popisom rezultata pretrage na svim stranicama koji bilježi broj stranice, indeks znaka i pregled teksta - Dodan je Previous / Next odabir podudaranja i skakanje na rezultat dvoklikom uz zadržavanje ponašanja
HighlightSearchTextna trenutnoj stranici - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.11
Version 1.39.10
- Poboljšan je
Demo\Delphi\SecurityAuditradnjama Save Report i Copy Report koje trenutačni sažetak i retke nalaza izvoze kao TXT izvještaj revizije - Demo sada čisti stanje izvoza izvještaja kada se audit ploča resetira, tako da kopirani ili spremljeni izvještaji ostaju usklađeni s vidljivim nalazima
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.10
Version 1.39.9
- Poboljšan je
Demo\Delphi\ContentExtractionLabradnjama spremanja izvornog PDF-a, kopiranja izvještaja u međuspremnik i odabira kategorija all / none - Demo sada poništava trenutni izvještaj kada se odabir kategorija promijeni, tako da TXT / JSON izvozi odražavaju vidljivi opseg izdvajanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.9
Version 1.39.8
- Dodan je
Demo\Delphi\ContentExtractionLab, jedinstveni uzorak radnog toka izdvajanja sadržaja za metapodatke dokumenta, tekst stranice, objekte stranice, slike, privitke, poveznice, anotacije, oznake i metrike fonta / znakova - Uzorak može otvoriti postojeći PDF ili stvoriti sintetički PDF s tekstom, slikom, privitkom i sadržajem anotacija, a zatim generirati retke sažetka i detaljne TXT / JSON izvještaje
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.8
Version 1.39.7
- Dodan je
Lib\FPdfPreflightReport.pas, ponovno upotrebljivi pomoćnik za izvještaje koji objedinjujeValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRiValidatePdfVTu jedan objektTPdfPreflightReport - Dodan je
Demo\Delphi\PreflightReport, uzorak radnog tijeka koji otvara ili stvara PDF, odabire ciljane standarde, pregledava retke sažetka i preporuke problema te sprema TXT ili HTML izvještaje - Generirani izvještaji izričito opisuju ugrađenu granicu provjere na razini markera tako da ih aplikacije mogu po potrebi upariti s namjenskim alatima za preflight na razini sadržaja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa, popisi projekata paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.7
Version 1.39.6
- Dodan je
Demo\Delphi\SearchAndSelect, usredotočeni uzorak radnog tijeka preglednika za isticanje pretrage, odabir teksta, pregled odabranog teksta, kopiranje, čišćenje i načine rasporeda prikaza u širinu - Uzorak prikazuje
HighlightSearchText, opcije pretrage uz podudaranje velikih i malih slova / cijele riječi,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardiClearSelectionbez dodavanja nove API knjižnice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.6
Version 1.39.5
Demo\Delphi\ViewerInteractionLabje proširen u uzorak UX preglednika u stilu SearchAndSelect sHighlightSearchText, opcijama podudaranja velikih i malih slova / cijele riječi, pregledom odabranog teksta i postojećim kontrolama odabira / međuspremnikaDemo\Delphi\PrintDialogje proširen za provjeru preferencija ispisa PDF autora:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingi vidljivog mapiranja obostranog ispisaSetPdfPrintPaperHandlingDevMode- Dodan je
Demo\Delphi\SecurityAudit, uzorak samo za čitanje koji navodi dozvole, privitke, dokumentni JavaScript, URI / Launch poveznice, web poveznice, potpise, XFA stanje i dostupnost V8 / XFA pomoćnika - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.5
Version 1.39.4
- Dodani su
Demo\CBuilder\ImageToPDFiDemo\Lazarus\ImageToPDF, čime je matrica uzorka ImageToPDF dovršena kroz Delphi, C++Builder i Lazarus - Novi uzorci prikazuju višestruki odabir slika, pregled odabrane slike, jednu PDF stranicu po slici, A4 portret / landscape veličine stranice, centrirano skaliranje slike, napredak po slici i otvaranje generiranog PDF-a nakon spremanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.4
Version 1.39.3
- Dodan je
Demo\CBuilder\BatchExport, čime radni tok izvoza više PDF datoteka u JPG stiže u C++Builder uz postojeće Delphi i Lazarus uzorke - Uzorak prikazuje
LoadCustomDocument,IPdfCancellationTokenSource, streaming ulaz prekoTFileStream, napredak po datoteci i po stranici, obradu otkazivanja, unos DPI / kvalitete / lozinke i otvaranje izlazne mape nakon dovršetka - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.3
Version 1.39.2
- Dodan je
Demo\Delphi\WatermarkStamp, uzorak radnog tijeka Form XObject koji se može pokrenuti i stvara ciljni PDF i ponovno upotrebljivi stamp PDF, a zatim primjenjuje vodene žigove u sredini, žigove u gornjem desnom kutu i oznake broja stranice na svakoj stranici - Uzorak prikazuje
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixiFPDFPageObj_SetMatrixbez dodavanja nove API knjižnice - Ažuriran je
Docs\en-us\Examples.htmlkako bi koristio trenutni obrazacTPdfMatrix.Handlepri prosljeđivanju matrica uFPDFPageObj_SetMatrix - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.2
Version 1.39.1
- Dodan je
Demo\Delphi\ViewerInteractionLab, fokusiraniTPdfViewuzorak za načine prikaza, načine uklapanja, boje stranice, rotaciju, korisnički odabir teksta, radnje međuspremnika i povratnu informaciju koordinataDeviceToPage - Dodani su
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLabkako bi Lazarus korisnici mogli pokretati radni tok provjere i izlaznih oznaka za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT - Standardne jedinice su navedene u
Lib\37.0\PDFiumPas.dprojiLib\FPC\PDFiumLaz.lpk, a DelphiSplitViewdemo build je popravljen uklanjanjem duplikata importaWinapi.ShellAPI - Popravljeni su blokatori Delphi demo skupne izgradnje u
BatchExport,PDFViewer,MultiPageVieweriSplitViewbez promjene njihova runtime ponašanja - Popravljena je kompatibilnost skupne izgradnje C++Builder demo programa u
PDFVieweriMultiPageViewerzamjenomnullptrsNULLza trenutni projektni način - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.1
Version 1.39.0
- Dodan je
Demo\Delphi\StandardsLab, pokretni uzorak standardnog radnog toka koji učitava ili stvara PDF, pokrećeValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRiValidatePdfVTte prikazuje otkrivenu usklađenost, status prolaz / neprolaz i broj problema u jednoj mreži - Gumbi za spremanje u StandardsLabu pozivaju
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRiSaveAsPdfVT, čineći izlaz PDF standardnih markera vidljivim bez pisanja prilagođenog harnessa - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera kako bi prijavljivali 1.39.0
Version 1.38.0
- Preklopi za pretragu i odabir teksta u
TPdfViewsada koriste stvarno alpha miješanje umjesto logičkog maskiranja, čuvajući sadržaj stranice ispod isticanja - Dodan je
SetPdfPrintPaperHandlingDevModeza preslikavanjeTPrintPaperHandlingu WindowsDEVMODE.dmDuplexvrijednosti:DMDUP_SIMPLEX,DMDUP_HORIZONTALiDMDUP_VERTICAL TPdfView.SmoothScrollsada animira naredbe klizača za redak / stranicu segmentima vođenim tajmerom; praćenje klizača i dalje je trenutno- Ažurirani su
TPdf.AboutInfoi metapodaci verzije instalera kako bi prijavljivali 1.38.0
Version 1.37.0
TPdfsada posjeduje zaključavanje prikaza po instanci koje serijalizira putanjeRenderPage,RenderTile,RenderPageProgressive, ponovno učitavanje stranice i otpuštanje dokumenta. Renderiranje vođeno radnom niti kroz zajedničku komponentu sada je praktično, dok aplikacije i dalje koordiniraju mutaciju dokumenta i životni vijek- Popravljen je omotač bitmape bez kopiranja tako da odbacuje DIB rasporede
TBitmaps bottom-up rasporedom i vraća se na buffer u vlasništvu PDFiuma prije kopiranja izlaza, čime se uklanjaju pogreške korupcije stridea / access violation u VCL render testovima - Pooštreno je ponašanje odabira u
TPdfView:AllowUserTextSelectionograničava samo korisnički unos, API-jevi za odabir na razini koda i dalje crtaju prikaz, aSelectAllslijedi stvarni vidljivi raspon tako da naslovna stranica više ne odabire stranicu 2. Delphi, Lazarus i C++Builder testovi su prošireni u skladu s tim - Ažurirani su
TPdf.AboutInfoi metapodaci verzije instalera kako bi prijavljivali 1.37.0
Version 1.36.0
- Aktiviran je odabir teksta krajnjeg korisnika u
TPdfView- svojstvoAllowUserTextSelectionrezervirano u v1.17.0 sada pokreće potpuni tok drag-odabira. Lijevi klik na znak teksta ulazi u način odabira (hit-test auto); lijevi klik na prazno područje nastavlja pomicati prikaz kao i prije. Widget za ispunjavanje obrazaca i dalje ima prednost, pa klik na polje obrasca i dalje fokusira polje umjesto da započne odabir - Dvoklik odabire riječ, troklik odabire redak,
Ctrl+Aodabire trenutnu stranicu (obje stranice u načinima prikaza raspona), aCtrl+Ckopira odabir u Windows međuspremnik kaoCF_UNICODETEXT Shift+Left/Shift+Rightproširuju odabir po jedan znak (prelijevajući se na susjednu stranicu u rasponskom prikazu);Shift+Home/Shift+Endproširuju do vizualnog ruba retka koristeći visinu okvira početnog znaka kao toleranciju grupiranja retka, pa se redci s mješovitom veličinom fonta i dalje ispravno grupiraju- Prelaskom pokazivača preko teksta kursor se mijenja u
crIBeam; prelaskom izvan teksta vraća se zadani kursor. Dok je u tijeku povlačenje odabira teksta, povlačenje u mrtvu zonu od 20 piksela na bilo kojem rubu preglednika automatski pomiče stranicu (tick od 50 ms, 16 px / tick, ograničeno istim granicama koje koristi putanja pomicanja) tako da se odabir može proširiti izvan trenutnog prikaza bez prethodnog otpuštanja miša - Odabir preko više stranica radi u načinima prikaza raspona (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): potez započet na lijevoj stranici i završen na desnoj stranici odabire neprekinuti raspon koji obuhvaća obje.SelectedTextspaja odsječke po stranicama s CR/LF tako da vraćeni tekst izgleda kao normalan višeredni sadržaj - Novo objavljeno svojstvo
SelectionColor(zadanoclHighlight, Windows sustavna boja odabira) - neovisno oHighlightColorkoji bojom označava rezultate pretrage u žuto. Isticanja pretrage i živi drag-odabir mogu se istovremeno prikazivati na zaslonu bez sukoba boja - Novi objavljeni događaj
OnSelectionChangeokida se kad se materijalizirani rasponi odabira stvarno promijene - nikad pri identičnom ponovnom postavljanju, pa ga host aplikacije mogu izravno povezati s tekstom statusne trake ili stanjem omogućenosti gumba bez debouncinga - Novi javni API na
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Oni su ulazne točke na razini koda i uvijek rade neovisno oAllowUserTextSelection- zastavica ograničava samo korisnički unos (miš,Ctrl+C,Ctrl+A,Shift+strelice), pa kiosk hostovi mogu onemogućiti korisnički vođeni odabir dok i dalje grade alatne gumbe "Select All / Copy" koji pokreću isti API - Automatski se priključuje zadani desni klik
Copy/复制skočni izbornik kada host nije dodijelio vlastitiPopupMenu- standardno "odaberi tekst, desni klik, kopiraj" radi odmah. Natpis se bira između engleskog i kineskog premaSysLocale.PriLangID; hostovi kojima treba potpuna lokalizacija ili bogatiji izbornik samo dodijele vlastitiPopupMenui zadani se potiskuje - Odabir se automatski čisti pri
SetPdf,SetPageNumber,SetActive(False)i prijelazimaDisplayMode, uz točno jedno okidanjeOnSelectionChangekada je prethodni odabir bio neprazan. Podsustav za ispunjavanje obrazaca zadržava prednost - dok se polje obrasca uređuje, svi prečaci za odabir odgađaju se tako da polje prima vlastiteCtrl+C/Ctrl+A/Shift+streliceza vlastiti odabir - Prošireni su regresijski testovi za Delphi i Lazarus na 202 slučaja svaki, a C++Builder skup na 159 slučajeva, pokrivajući zadane vrijednosti, round-trip, ponašanje javnog API-ja, čišćenje pri promjeni stanja, povlačenje mišem (hit-text / hit-blank), klik nasuprot povlačenju, prebacivanje kursora IBeam, riječ pri dvokliku, redak pri trokliku, tipkovne prečace, priključenje / odgodu / natpis zadanog skočnog izbornika i odabir preko raspona stranica - uključujući provjeru CR/LF round-trip međuspremnika
Version 1.35.0
- Dodan je podrška za umetanje oznaka PDF/VT (ISO 16612-2:2010): TPdf.SaveAsPdfVT promovira trenutačni dokument u PDF/VT-1 ili PDF/VT-2 usklađenu datoteku (podskup PDF-a za varijabilno i transakcijsko ispisivanje). PDF/VT je izgrađen na vrhu PDF/X-4 - ISO 16612-2 §6.2.1 zahtijeva da svaka PDF/VT-1 datoteka također bude usklađena s PDF/X-4 - pa umetanje zapisuje cijeli skup PDF/X-4 markera (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)i/Trapped, katalog/OutputIntentskoji upućuje na OutputIntent rječnik s ugrađenim ICC profilom) uz svojstva specifična za PDF/VT - Umetanje specifično za PDF/VT obuhvaća XMP
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" ili "PDF/VT-2" prema §6.3 Table 2) ipdfvtid:GTS_PDFVTModDate(sinkroniziran sxmp:ModifyDateprema §6.3 NOTE 1), uz opis pdfaExtension:schemas koji deklarira i pdfxid i pdfvtid prostore imena (NPES URI-jevihttp://www.npes.org/pdfx/ns/id/ihttp://www.npes.org/pdfvt/ns/id/). Trailer nosi/IDniz - Dodan je TPdf.SaveAsPdfVTToStream za PDF/VT izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfVT(FileName)koja proizvodi PDF/VT-1 s uključenim sRGB IEC61966-2.1 OutputIntentom (3144 bytes, isti profil kao SaveAsPdfA / SaveAsPdfX) i/Trapped /False - Dodan je TPdf.ValidatePdfVT: provjerava otvoreni PDF na oznake usklađenosti PDF/VT (XMP
pdfvtid:GTS_PDFVTVersioni prisutnostGTS_PDFVTModDate, jednakost izmeđupdfvtid:GTS_PDFVTModDateixmp:ModifyDate, prisutnost temeljnog identifikatorapdfxid:GTS_PDFXVersion, prisutnost kataloga/DPartRootprema §6.5,/OutputIntentss/DestOutputProfile, trailer /ID, stanje enkripcije, prisutnostxmp:CreateDate/ModifyDate) i vraća TPdfVTValidationResult s otkrivenom razinom usklađenosti i skupom pronađenih problema - Dodan je svojstvo TPdf.PdfVTConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pvc1, pvc2, pvcNone ili pvcUnknown) bez potrebe da se izričito pozove ValidatePdfVT
- Novi tipovi izloženi u novoj jedinici FPdfPdfvt: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Document Part Hierarchy (
DPartRoot/DPartstablo prema §6.5) je aplikacijska struktura koja ovisi o radnom tijeku variable-data printinga za mapiranje primatelja / raspona stranica. SaveAsPdfVT NE sintetizira DPart stablo - ValidatePdfVT prikazuje nedostajući/DPartRootkaopvviMissingDPartRoottako da pozivatelji PDF/VT datoteke mogu usmjeriti kroz zaseban korak izgradnje DPart-a. Zahtjevi PDF/X-4 na razini sadržaja (ugrađivanje fontova, transparentnost, ICC upravljano bojenje, OPI / JavaScript / Reference XObject zabrane itd.) i dalje su odgovornost autora dokumenta i PDFiumova renderirajućeg cjevovoda - Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.34.0
- Dodan je podržani unos markera PDF/R-1 (ISO 23504-1:2020): TPdf.SaveAsPdfR promovira trenutačni dokument u PDF/R-1 usklađenu datoteku (podskup PDF-a za raster slike koji se koristi za skenirane dokumente). Umetanje pokriva zahtjeve na razini formata koje je moguće dodati naknadnom obradom - jedinstveni komentar za identifikaciju verzije
%PDF-raster-1.0zapisan između trailer rječnika i ključne riječi startxref (§5), katalog reduciran na bijelu listu iz §6.3 (preživljavaju samo Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata), Document Information Dictionary reduciran na bijelu listu iz §6.4.3 (samo Creator / Producer / CreationDate / ModDate), katalog /Metadata XMP stream koji nosi četiri stavke iz §6.4.4 Table 1 (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate) i trailer /ID niz - Dodan je TPdf.SaveAsPdfRToStream za PDF/R izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfR(FileName)za uobičajeni slučaj - Dodan je TPdf.ValidatePdfR: provjerava otvoreni PDF na markere usklađenosti PDF/R-1 (footer komentar
%PDF-raster-x.y, verziju zaglavlja, odsutnost/Type /ObjStm, usklađenost kataloga s bijelom listom, usklađenost Info rječnika s bijelom listom, prisutnost XMP metadata streama, trailer/ID) i vraća TPdfRValidationResult s otkrivenom razinom usklađenosti i skupom pronađenih problema - Dodan je svojstvo TPdf.PdfRConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (prc1, prcNone ili prcUnknown) bez potrebe da se ValidatePdfR izričito pozove
- Novi tipovi izloženi u novoj jedinici FPdfPdfr: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions.
TPdfRSaveOptions.Defaultpostavlja StripInfoOptionalEntries i StripCatalogOptionalEntries na True, pa umetanje prema zadanim postavkama proizvodi katalog i Info rječnik usklađen s §6.3 / §6.4.3; pozivatelji ih mogu postaviti na False kako bi zadržali izvorne unose (izlaz tada neće zadovoljiti te PDF/R klauzule, ali će drugi markeri ostati priloženi) - Zahtjevi na razini sadržaja ostaju odgovornost izvornog PDF-a: struktura Contents po stranici (§6.5.1), oblik MediaBox
[0 0 w h](§6.5.3), ograničenja filtera (§6.2.2 - samo FlateDecode, CCITTFaxDecode bitonal, DCTDecode 8-bit gray/RGB), odsutnost object streamova (§6.2.4) i raspored traka prema §6.6. To se ne može nametnuti naknadnom obradom - PDF/R je strukturno mnogo stroži podskup od drugih PDF/x standarda i zahtijeva ispravno generiranje izvornog bajtnog toka. ValidatePdfR izlaže probleme na razini formata koje ova jedinica može otkriti; za potpunu provjeru na razini sadržaja uparite je s TWAIN Working Group PDF/R validatorom - Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.33.0
- Dodan je podržani unos markera PDF/X (obitelj ISO 15930): TPdf.SaveAsPdfX promovira trenutačni dokument u PDF/X-1a:2001, PDF/X-3:2002 ili PDF/X-4 usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem. Umetanje pokriva zahtjeve na razini formata koje je moguće dodati naknadnom obradom - XMP metadata stream koji nosi
pdfxid:GTS_PDFXVersion(ipdfxid:GTS_PDFXConformanceza PDF/X-1a / PDF/X-3) uz odgovarajući opis pdfaExtension:schemas, ponovno zapisan Document Information Dictionary s unosima/GTS_PDFXVersion,/GTS_PDFXConformancei/Trapped, ažurirani katalog s/OutputIntents [N 0 R]koji upućuje na OutputIntent rječnik s/S /GTS_PDFXi ugrađenim ICC profilom te trailer/IDniz - Dodan je TPdf.SaveAsPdfXToStream za PDF/X izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfX(FileName)koja proizvodi PDF/X-4 s ugrađenim sRGB IEC61966-2.1 OutputIntentom (3144 bytes, identičan profilu koji koristi SaveAsPdfA) - Dodan je TPdf.ValidatePdfX: provjerava otvoreni PDF na markere usklađenosti PDF/X (XMP pdfxid identifikator i jednakost s vrijednošću u Info rječniku, pdfxid opis proširene sheme, niz /OutputIntents s /DestOutputProfile, prisutnost Title, trailer /ID, stanje enkripcije, prisutnost xmp:CreateDate / xmp:ModifyDate) i vraća TPdfXValidationResult s otkrivenom razinom i skupom pronađenih problema
- Dodan je svojstvo TPdf.PdfXConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pxc1a, pxc3, pxc4, pxcNone ili pxcUnknown) bez potrebe da se ValidatePdfX izričito pozove. XMP niz verzije se analizira kako bi se razlučile tri razine usklađenosti
- Novi tipovi izloženi u novoj jedinici FPdfPdfx: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions.
TPdfXSaveOptions.Defaultcilja PDF/X-4 sa sRGB OutputIntentom i/Trapped /False; pozivatelji mogu prebrisatiConformance, dati CMYKIccProfileDatablob za komercijalne tiskarske tijekove ili promijenitiOutputCondition/OutputConditionIdentifier/RegistryNamekako bi pokazivali na određeni ICC zapis karakterizacije registra (npr. FOGRA39, GRACoL2006_Coated1v2) - Zahtjevi na razini sadržaja (svi fontovi ugrađeni, bez JavaScript-a, bez vidljivih anotacija, zabrana OPI-ja, pravila transparentnosti za PDF/X-1a / PDF/X-3 itd.) i dalje su odgovornost autora dokumenta i PDFiumova renderirajućeg cjevovoda. Uparite ValidatePdfX s alatom za preflight kao što je callas pdfaPilot ili Ghent PDF Workgroup Output Suite za potpunu provjeru usklađenosti
- Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.32.0
- Dodan je podržani unos markera PDF/E-1 (ISO 24517-1:2008): TPdf.SaveAsPdfE promovira trenutačni dokument u PDF/E-1 usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem. Umetanje pokriva zahtjeve na razini formata koje je moguće dodati naknadnom obradom - XMP metadata stream koji nosi
pdfe:ISO_PDFEVersion = "PDF/E-1"uz odgovarajući opis pdfaExtension:schemas, ponovno zapisani Document Information Dictionary s obaveznim unosom/ISO_PDFEVersion (PDF/E-1)koji zahtijeva §5, blokove povezivanja Info-XMP naslijeđene iz ISO 19005-1 §6.7 preko §13.1 (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool) te trailer/IDniz koji zahtijeva §6.2 - Dodan je TPdf.SaveAsPdfEToStream za PDF/E izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfE(FileName)za uobičajeni slučaj - Dodan je TPdf.ValidatePdfE: provjerava otvoreni PDF na markere usklađenosti PDF/E-1 (XMP pdfe:ISO_PDFEVersion prisutnost i jednakost s vrijednošću u Info rječniku, pdfe opis proširene sheme, unos /ISO_PDFEVersion u Info rječniku, trailer /ID, prisutnost xmp:CreateDate / xmp:ModifyDate) i vraća strukturirani rezultat s otkrivenom razinom usklađenosti i skupom pronađenih problema
- Dodan je svojstvo TPdf.PdfEConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pec1, pecNone ili pecUnknown) bez potrebe da se ValidatePdfE izričito pozove
- Novi tipovi izloženi u novoj jedinici FPdfPdfe: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Ponovno pisanje Info rječnika prvi je takav slučaj u PDFiumPasovu PDF/x post-obradnom putu - ponovno zapisuje postojeći Info objekt s istim brojem objekta (tako da xref subsection / trailer /Info referenca ostaje valjana) i sintetizira svježi Info rječnik kada izvorni trailer nema /Info unos. PDFium sam po sebi emitira Info rječnik u svakom SaveAs izlazu, pa je uobičajeni slučaj put ponovnog pisanja
- Zahtjevi na razini sadržaja (ugrađivanje fontova, ToUnicode CMapovi, zabranjeni XObjecti / ExtGState ključevi / XFA obrasci itd.) i dalje su odgovornost autora dokumenta - SaveAsPdfE prilaže markere na razini formata, ali ne mijenja sadržaj stranice niti uklanja zabranjene značajke
- Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.31.0
- Dodan je podržani unos markera PDF/UA-1 (ISO 14289-1:2014): TPdf.SaveAsPdfUa promovira trenutačni dokument u PDF/UA-1 usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem. Umetanje pokriva zahtjeve na razini formata koje je moguće nametnuti naknadnom obradom - XMP metadata stream koji nosi
pdfuaid:part = 1uz odgovarajući opis pdfaExtension:schemas, obaveznidc:title, katalog/MarkInfo << /Marked true /Suspects false >>i/ViewerPreferences << /DisplayDocTitle true >>(samo kada ih izvor nema), katalog/Lang(kada pozivatelj zada BCP 47 oznaku) i trailer/IDniz - Dodan je TPdf.SaveAsPdfUaToStream za PDF/UA izlaz u memoriji i skraćenica zadanih opcija
TPdf.SaveAsPdfUa(FileName)za uobičajeni slučaj - Dodan je TPdf.ValidatePdfUa: provjerava otvoreni PDF na markere usklađenosti PDF/UA-1 (postojanje StructTreeRoot, /Lang, /MarkInfo /Marked true s /Suspects = false, /ViewerPreferences /DisplayDocTitle true, XMP pdfuaid:part identifikator, dc:title prisutnost, trailer /ID, stanje enkripcije) i vraća strukturirani rezultat s otkrivenom razinom usklađenosti i skupom pronađenih problema
- Dodan je svojstvo TPdf.PdfUaConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (puc1, pucNone ili pucUnknown) bez potrebe da se ValidatePdfUa izričito pozove
- Novi tipovi izloženi u novoj jedinici FPdfPdfua: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language polja ostavljena prazna u TPdfUaSaveOptions automatski se popunjavaju iz FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, pa postojeći pozivatelji mogu spremati jednom linijom
- Zahtjevi na razini sadržaja (potpunost StructTreeRoot označavanja, Figure Alt tekst, ToUnicode CMapovi, ugrađivanje fontova itd.) i dalje su odgovornost autora dokumenta - SaveAsPdfUa prilaže markere na razini formata, ali ne mijenja sadržaj stranice niti izmišlja oznake. ValidatePdfUa izlaže odsutnost StructTreeRoot kao
pvuaiMissingStructTreeRoottako da pozivatelji neoznačene dokumente mogu usmjeriti kroz zaseban cjevovod označavanja - Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.30.0
- PDF/A-1b izlaz sada zadovoljava ISO 19005-1 (with Cor.1:2007) zahtjeve za usklađenost Document Information Dictionary / XMP: svaki unos Info rječnika koji PDFium upisuje u osnovni PDF zrcali se u XMP paket, uključujući Title (dc:title), Author (dc:creator), Subject (dc:description prema Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) i ModDate (xmp:ModifyDate). Također se emitira xmp:MetadataDate
- Trailer PDF/A dokumenta sada uvijek sadrži /ID niz (ISO 19005-1 6.1.3 strogi zahtjev). Kada TPdf.SaveAsPdfA obrađuje dokument čiji izvor već ima identifikator datoteke, postojeći 16-bajtni trajni i promjenjivi ID-ovi ponovno se koriste; inače se deterministički 16-bajtni rezervni ID izvodi iz izvornih bajtova
- Umetnuti XMP sada ugrađuje opis pdfaid proširene sheme koji zahtijeva ISO 19005-1 6.7.8 (zamijenjen Cor.1) - pdfaid se tretira kao proširena shema u odnosu na XMP Specification 2004, pa sve usklađene datoteke moraju deklarirati imena svojih svojstava, vrste vrijednosti i kategorije u spremniku pdfaExtension:schemas
- TPdfASaveOptions dobio je pet novih opcionalnih polja: Producer, CreationDate, ModDate (PDF datumski nizovi u formi “D:YYYYMMDDHHmmSSOHH'mm'”), DocumentId i InstanceId (16-bajtni bajtni nizovi za trailer /ID niz). TPdf.SaveAsPdfA / SaveAsPdfAToStream automatski popunjavaju nedostajuća polja iz FPDF_GetMetaText i FPDF_GetFileIdentifier, pa postojeći pozivatelji i dalje rade bez promjena
- TPdf.ValidatePdfA / TPdf.PdfAConformance sada prijavljuju tri dodatna problema: pvaiMissingTrailerId (nema /ID u traileru), pvaiMissingXmpDates (xmp:CreateDate ili xmp:ModifyDate nedostaje) i pvaiMissingExtensionSchema (opis proširene sheme pdfaid nedostaje)
- Ne-ASCII znakovi u Title, Author, Subject, Keywords, Creator i Producer sada se kodiraju kao UTF-8 u XMP paketu (XMP Specification zahtijeva UTF-8), čuvajući višelingvalni round-trip metapodataka kroz SaveAsPdfA
- Ažuriran je string TPdf.AboutInfo kako bi prijavio trenutačnu verziju proizvoda
Version 1.29.0
- Obnovljeni su isporučeni PDFium DLL-ovi (Win32 i Win64, standardna i V8 izdanja) na upstream snimku od 2026-05-22, preuzimajući upstream popravke za putanje rušenja
FPDFText_SetText/FPDFText_SetCharcodesi razna interna učvršćenja iz PDFium projekta - Izložen je novi PDFiumov zastavica
FPDF_SUBSET_NEW_FONTSza spremanje uFPdfPageOps.pas, omogućujući pozivateljimaFPDF_SaveAsCopyda zatraže automatsko podskupiranje ugrađenih fontova za novo dodane tekstualne objekte. Postojeće konstanteFPDF_INCREMENTAL,FPDF_NO_INCREMENTALiFPDF_REMOVE_SECURITYsada su definirane pomoću upstream oblika s pomakom bitova (naslijeđena numerička vrijednost 3 zadržana je kaoFPDF_REMOVE_SECURITY_DEPRECATEDradi binarne kompatibilnosti) - Dodan je enum
FPDF_FONT_BACKEND_TYPE(FREETYPE / FONTATIONS) i odgovarajuće poljem_FontLibraryTypeuFPDF_LIBRARY_CONFIGuFPdfView.pas, tako da aplikacije koje inicijaliziraju PDFium sa Skia rendererom sada mogu odabrati font backend pri pokretanju - Ažuriran je potpis
TFPDFPage_InsertObjectkako bi odgovarao upstreamu: C funkcija sada vraćaFPDF_BOOL(TRUE pri uspjehu, FALSE ako jepage_objectNULL ili prijenos vlasništva ne uspije) umjesto void. Postojeći PDFiumPas pozivatelji i dalje se prevode nepromijenjeno jer Delphi / FPC dopuštaju ignoriranje povratne vrijednosti funkcije - Ispravljen je string
TPdf.AboutInfotako da prijavljuje trenutačnu verziju proizvoda (bio je zastario na v1.27.0 od v1.28.0 dokumentacijsko-samo izdanja)
Version 1.28.0
- Znatno je proširena dokumentacija unutar stranice kroz cijelu referencu API-ja: svaki zapis svojstva, metode, događaja i globalne funkcije sada nosi opis od 3 odlomka, popis napomena, višeredni Delphi primjer i bogatiji blok See Also - pokrivajući više od 200 ranije tankih stranica uključujući sve TPdf brojače, dohvaćanja metapodataka, pristupe fontovima i znakovima, svojstva na razini stranice, indeksirane zapise, metode na razini dokumenta i cijelu površinu stanja / prikaza / događaja TPdfView
- Finije je dotjeran izgled pomoći kako bi odgovarao losLab vizualnoj osnovi korištenoj u HotXLS referenci: usklađene su veličine h1/h2, stilovi API navigacijske mreže konsolidirani su u zajednički StyleSheet, a per-page inline CSS nadjačavanja na Navigation.html uklonjena su
- Dokumentacija sada dolazi s pomoćnom skriptom (Docs\Build-Expand-Entries.ps1) koja regenerira obogaćivanje stranica unosa iz jedne podatkovne tablice radi ponovljivog održavanja
Version 1.27.0
- Dodana je podrška za stvaranje PDF/A-1b: TPdf.SaveAsPdfA sprema svaki otvoreni dokument kao PDF/A-1b usklađenu datoteku post-obradom osnovnog PDF-a inkrementalnim ažuriranjem koje umeće XMP metadata stream, sRGB ICC OutputIntent i ažurirani katalog dokumenta - sve bez potrebe za dodatnim DLL API-jima. Radi na svakoj platformi koju podržava PDFiumPas
- Dodan je TPdf.SaveAsPdfAToStream za PDF/A izlaz u memoriji
- Dodan je TPdf.ValidatePdfA: provjerava otvoreni PDF na usklađenost s PDF/A (XMP pdfaid markeri, OutputIntent s ugrađenim ICC profilom, enkripcija) i vraća strukturirani rezultat s otkrivenom razinom usklađenosti i skupom specifičnih pronađenih problema
- Dodan je svojstvo TPdf.PdfAConformance: vraća razinu usklađenosti trenutačno otvorenog dokumenta (pac1b, pac1a, pac2b, pac3b, pacNone ili pacUnknown) bez potrebe da se ValidatePdfA izričito pozove
- Novi tipovi izloženi: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (u novoj jedinici FPdfPdfa.pas)
- SaveAsPdfA podržava prilagođeni ICC profil putem
TPdfASaveOptions.IccProfileData; kada je prazno, automatski se koristi ugrađeni sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes) profil - Zamijenjena je monolitna HTML referenca preuređenim web help sustavom: 302 pojedinačne stranice unosa API-ja (jedna po svojstvu, metodi, događaju i globalnoj funkciji) koje pokrivaju TPdf i TPdfView, svaka s punim opisom, tablicom parametara, Delphi code primjerom i See Also poveznicama
- Dodan je Navigation.html: sveobuhvatni API navigacijski indeks na jednoj stranici organiziran u šest sekcija (TPdf properties/methods/events, TPdfView properties/methods/events, global functions) s 5-stupčanom flex mrežom za brzo pregledavanje
- Ponovno su izgrađeni TPdf.html i TPdfView.html kao sažete stranice pregleda komponenti koje zadržavaju odjeljke referenciranja tipova (Types, Constants, Global Variables) i povezuju prema pojedinačnim stranicama unosa za sve članove
- Dodan je pretraživanje punog teksta pogonjeno sa Search.js s inkrementalnim klijentskim podudaranjem kroz svih 312 indeksiranih stranica
- Ažurirane su sve navigacijske trake na webu tako da upućuju na Navigation.html
Version 1.26.0
- Dodan je Demo/Lazarus/BatchExport, LCL port v1.14.0 Delphi BatchExport demo programa. Isti skup značajki: višedatotečni PDF -> JPG izvoz s ukupnim napretkom po datoteci, trenutnim napretkom po stranici, unosima DPI / kvalitete / lozinke i skupnim radnim tokakom kojim se može cooperativno otkazati uz IPdfCancellationToken. Izlazna mapa otvara se u upravitelju datoteka platforme kada izdvajanje uspješno završi
Version 1.25.0
- Dodan je ponovni rad stranice Form XObject u TPdf, omogućujući radne tokove vodenih žigova, prekrivanja predloška i "stamp one page onto many": CreateXObjectFromPage izrađuje ponovno upotrebljivu ručku iz bilo koje stranice drugog dokumenta; InsertFormObjectFromXObject umeće JEDNU kopiju obložene stranice u trenutačnu stranicu. Vraća umetnuti FPDF_PAGEOBJECT tako da ga pozivatelj može pozicionirati / skalirati / rotirati s FPDFPageObj_SetMatrix i v1.9.0 TPdfMatrix pomoćnicima
- Novi Pascal class TPdfXObject obavija PDFiumovu FPDF_XOBJECT ručku i zatvara je automatski u destruktoru, uklanjajući ručno FPDF_CloseXObject ceremonijalno rukovanje
- Prošireni su regresijski testovi za Delphi i Lazarus na 147 slučajeva svaki, a C++Builder skup na 123 slučaja, pokrivajući stvaranje ručki i ugovore umetanja page-objecta
Version 1.24.0
- Dodan je
TPdf.RenderPageProgressive- varijantaRenderPagekoja se može otkazati, pokreće PDFiumovu progresivnu renderirajuću petlju i između iteracija ispituje v1.7.0IPdfCancellationToken, tako da se dugotrajni renderi visoke DPI mogu prekinuti usred stranice umjesto da blokiraju pozivatelja do završetka - Vraća vrijednost
TPdfProgressiveStatus:prsDone,prsCancellediliprsFailed. ProslijediteAToken = nilza renderiranje do kraja bez ikakvog pauziranja (bez mogućnostiprsCancelled) - Koristi istu zero-copy putanju uvedenu u v1.21.0 - PDFium izravno upisuje u DIB buffer odredišnog
TBitmap-a. Ista naslijeđena fallback putanja primjenjuje se kada DIB ne može biti obavijen - Prošireni su regresijski testovi za Delphi i Lazarus na 145 slučajeva svaki, a C++Builder skup na 121 slučaj, pokrivajući nil-token (dovršava), unaprijed otkazani token (
prsCancelled) i pixel-equivalence sa sinkronimRenderPagena živom tokenu
Version 1.23.0
- Dodan je šest novih
TPdfViewmetoda koje aplikacijama izlažu PDFiumov odabir teksta i Undo/Redo za widgete obrazaca:GetSelectedFormTextvraća trenutačno odabrani tekst unutar fokusiranog widgeta obrasca;SelectAllFormTextodabire svaki znak;FormUndo/FormRedo/FormCanUndo/FormCanRedoupravljaju poviješću uređivanja fokusiranog widgeta. Temeljni PDFium API-ji već su bili vezani, ali nisu imali ulaznu točku na visokoj razini. Svih šest sigurno kratko spaja kada je prikaz neaktivan ili dokument nema fokusirani AcroForm widget - Prošireni su regresijski testovi za Delphi i Lazarus na 142 slučaja svaki, a C++Builder skup na 119 slučajeva, pokrivajući ugovor bez forme i bez fokusa za svaku novu metodu
Version 1.22.0
- Dodani su omotači za sastavljanje stranica u TPdf:
ImportPagesByIndexuzima polje indeksa s nultim početkom za kopiranje određenih stranica iz izvornog dokumenta;ImportNPagesToOnevraća posve noviTPdfčije su stranice N-up kompoziti ovog dokumenta;MovePagespreuređuje stranice na mjestu. Temeljni PDFium API-ji već su bili vezani, ali nisu imali Pascal-friendly ulaznu točku ImportPagesByIndexprihvaća prazno polje za uvoz svake izvorne stranice (ekvivalent prosljeđivanju nil na C ABI razini)- Prošireni su regresijski testovi za Delphi i Lazarus na 136 slučajeva svaki, a C++Builder skup na 115 slučajeva, pokrivajući uvoz podskupa, uvoz cijelog dokumenta, preuređivanje stranica i N-up kompozit
Version 1.21.0
- Poboljšana je izvedba renderiranja prebacivanjem
TPdf.RenderPage/TPdf.RenderTile(i odgovarajućih pomoćnikaTPdfView) na zero-copy izlaznu putanju. PDFium sada izravno upisuje u DIB buffer odredišnogTBitmap-a umjesto u interni buffer koji se zatim kopirao redak po redak, čime se pri svakom renderiranju štedi jedan prijenos memorije veličine širina x visina x 4 bajta. Poboljšanje je najvidljivije pri visokoj DPI (ploče minijatura, izvoz kvalitete ispisa, skupni izvoz) - Naslijeđena putanja po skanu ostaje kao sigurnosni fallback za malo vjerojatan slučaj kada odredišni DIB ne može biti obavijen (ekstremne dimenzije, neobičan stride, OOM). Ponašanje je po bajtovima identično između dviju putanja, samo sporije u fallbacku
- Prošireni su regresijski testovi za Delphi i Lazarus na 132 slučaja svaki, a C++Builder skup na 112 slučajeva, pokrivajući nadogradnju pozivateljeve bitmape u
pf32bit, round-trip dimenzija i sanity test velikog bitmap stridea
Version 1.20.0
- Dodano je isticanje rezultata pretrage u
TPdfView:HighlightSearchText(Text, MatchCase, MatchWholeWord)skenira trenutnu stranicu prikaza i vraća broj pronađenih podudaranja, crtajući maskuHighlightColorpreko svakog podudaranja pri svakom ponovnom crtanju.ClearHighlightuklanja isticanja; prebacivanje prikaza na drugu stranicu automatski ih čisti jer su podudaranja vezana uz stranicu HighlightColorzadano jeclYellowi objavljeno je tako da aplikacije mogu uskladiti boju isticanja sa svojom paletom UI-ja- Prošireni su regresijski testovi za Delphi i Lazarus na 129 slučajeva svaki, a C++Builder skup na 109 slučajeva, pokrivajući zadanu boju, round-trip boje, "stvarne podudarnosti riječi iz fixturea" prema nizu
sample.pdfi ugovor "nedostajuća riječ vraća nula podudaranja"
Version 1.19.0
- Dodan je svojstvo
FitModeuTPdfViews četiri vrijednosti:pfmNone(ručno zumiranje),pfmActualSize(100%),pfmFitPage(cijela stranica stane u vidljivo područje) ipfmFitWidth(širina stranice odgovara širini vidljivog područja). Aktivni način uklapanja ponovno se primjenjuje automatski priResizei kada se promijeni trenutna stranica, pa dugi dokumenti s mješovitim veličinama stranica ostaju savršeno uokvireni - Postavljanje
Zoomizravno poništava aktivni način uklapanja (FitModese vraća napfmNone), u skladu sa standardnom konvencijom preglednika PDF-a gdje upis vrijednosti zumiranja izlazi iz Fit Page / Fit Width - Zadano je
pfmNonetako da postojeće aplikacije zadrže svoje ponašanje eksplicitnog zumiranja - Prošireni su regresijski testovi za Delphi i Lazarus na 124 slučaja svaki, a C++Builder skup na 106 slučajeva, pokrivajući zadanu vrijednost, round-trip načina, fit-page koji proizvodi stvarni zoom na učitanom dokumentu i ručno zumiranje koje poništava način uklapanja
Version 1.18.0
- Dodan je svojstvo
PageColoruTPdfView, odvajajući pozadinu prikazane PDF stranice od boje okolne kontrole. Zadano jeclWhite, pa se PDF stranice sada prikazuju kao papirnato bijele bez obzira na temu host aplikacije. Preglednici u tamnom načinu sada mogu zadržati područje za pomicanje tamnim, dok sama PDF stranica ostaje bijela ili u bilo kojoj boji koju aplikacija odabere - Promjena ponašanja: aplikacije koje su prije postavljale
TPdfView.Colorkako bi prebojale PDF stranicu sada trebaju postavitiPageColor. Zadano iskustvo se poboljšava za uobičajeni slučaj (bijele stranice na tematskim pozadinama kontrole) bez ikakve promjene koda - Prošireni su regresijski testovi za Delphi i Lazarus na 120 slučajeva svaki, a C++Builder skup na 103 slučaja, pokrivajući zadanu vrijednost i round-trip boje
Version 1.17.0
- Dodan je prekidač za zaključavanje korisničkog unosa u
TPdfViewtako da aplikacije koje ugrađuju preglednik u kiosk, preview ploče ili read-only kontekste mogu onemogućiti navigacijske geste bez izvedenog razreda:AllowUserPageChangeupravlja novim tipkamaPgUp/PgDn/Ctrl+Home/Ctrl+End;ChangePageOnMouseScrollingupravlja novim wheel-up / wheel-down skokovima stranice;AllowUserTextSelectionrezerviran je za buduću putanju odabira teksta mišem. Sva tri zadana su na True tako da postojeće aplikacije nadograde bez promjene ponašanja - Pomicanje stranice kotačićem miša preskače
Ctrl+wheeltako da aplikacije mogu zadržatiCtrl+wheelza zumiranje - Prošireni su regresijski testovi za Delphi i Lazarus na 118 slučajeva svaki, a C++Builder skup na 101 slučaj, pokrivajući zadane vrijednosti i round-trip prekidača
Version 1.16.2
- Prošireno je regresijsko pokrivanje
TPdfViewza klikove na anotacijske poveznice kada se stranica preglednika razlikuje od pridruženeTPdfstranice, koristeći stvarnu headless putanju klika mišem kroz Delphi, Lazarus i C++Builder - Delphi i Lazarus skupovi sada pokreću 114 slučajeva svaki, a C++Builder sada pokreće 99 slučajeva
Version 1.16.1
- Ispravljeno je rukovanje klikom na poveznicu u
TPdfViewtako da automatske radnje anotacija i web poveznica koriste stranicu trenutačno prikazanu u pregledniku, čak i kada je pridruženi komponentTPdfparkiran na drugoj stranici - Ojačan je
TPdfThumbnailViewprotiv visećih referenciPdfkada je povezani komponentTPdfuništen - Dodano je regresijsko pokrivanje životnog vijeka reference minijatura; Delphi i Lazarus skupovi sada pokreću 113 slučajeva svaki, a C++Builder sada pokreće 98 slučajeva
- Sinkronizirani su README, test dokumentacija, sadržaj HTML Help pretrage / indeksa i generirani izlazi C++ paketa s integracijskim ažuriranjima v1.7.0 do v1.16.0
Version 1.16.0
- Dodan je novi Delphi PrintDialog demo (
Demo/Delphi/PrintDialog) koji se fokusira na N-up ispis (1 / 2 / 4 / 9 stranica po listu) uz filtriranje neparnih / parnih stranica, prikaz u sivim tonovima i opcionalne obrube ćelija od 1 piksela. Namjerno je mali pratilac postojećem PrintPDF demo programu, koji već pokriva pregled, nedavne datoteke, zumiranje i skaliranje
Version 1.15.0
- Dodan je novi komponent
TPdfThumbnailView(FPdfThumbnailunit) koji prikazuje minijaturu jedne stranice po retku u bočnoj ploči s pomicanjem, isticanjem pri prelasku i odabiru te navigacijom klikom za odlazak na stranicu. Osmišljen je da stoji uzTPdfViewtako da krajnji korisnici mogu pregledavati dugi dokument po stranicama - Komponenta je registrirana na losLab kartici palete uz
TPdfiTPdfView; ključna svojstva:Pdf,CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColori događajOnPageClick - Prošireni su regresijski testovi za Delphi i Lazarus na 112 slučajeva svaki, a C++Builder skup na 97 slučajeva, pokrivajući zadane vrijednosti, round-trip veličine minijature, ograničavanje ekstremnih vrijednosti, round-trip boje i dodjelu rukovatelja događaja
Version 1.14.0
- Dodan je novi Delphi BatchExport demo (
Demo/Delphi/BatchExport) koji pokazuje kako pretvoriti mnogo PDF datoteka u JPG u jednom prolazu koristećiTPdf.LoadCustomDocumentza streaming učitavanje,IPdfCancellationTokenza kooperativno otkazivanje i ukupne trake napretka po datoteci i po stranici. Demo koristi jednuTPdfinstancu po datoteci (sam PDFium nije thread-safe) i otvara izlaznu mapu u Exploreru kada izdvajanje uspješno završi
Version 1.13.0
- Dodan je sloj UI preklopa za asinkrono renderiranje u
TPdfViewkroz tri nova svojstva:AsyncRendering,LoadingTextiLoadingColor. Kada jeAsyncRenderingTrue, putanja crtanja jedne stranice prikazuje mali pokazatelj"Loading..."preko prikazane stranice tako da aplikacije koje koriste vlastitu radnu nit za duga renderiranja dijele dosljedan vizualni znak - Zadane vrijednosti zadržavaju postojeće ponašanje:
AsyncRenderingje False, pa aplikacije koje ga ne uključe ne vide vizualnu promjenu - Dokumentacija pojašnjava da sam PDFium nije thread safe - stvarno prebacivanje renderiranja na radnu nit zahtijeva da pozivatelj drži jedan
TPdfpo radnoj niti; nadolazeći batch-export demo prikazuje taj obrazac - Prošireni su regresijski testovi za Delphi i Lazarus na 106 slučajeva svaki, a C++Builder skup na 93 slučaja, pokrivajući zadane vrijednosti i round-trip s tri svojstva
Version 1.12.0
- Dodan je rukovanje poveznicama pokrenuto klikom u
TPdfView. Novo svojstvoLinkOptionsupravlja automatskim ponašanjem za četiri vrste PDF link akcija: goto (skok na stranicu), URI (ShellExecute), launch (ShellExecute) i ugrađeni GotoR (rezervirano). Zadane vrijednosti omogućujuloAutoGotoiloAutoOpenURI;loAutoLaunchiloAutoEmbeddedGotoostaju isključene tako da slučajni klik ne može pokrenuti proizvoljni program - Dani su događaji
OnAnnotationLinkClickiOnWebLinkClickkoji se okidaju prije bilo koje automatske radnje i dopuštaju aplikacijama da pregledaju poveznicu, označe je kaoHandledili je preusmjere (na primjer, na sigurnosni upit) - Detekcija klika na poveznicu radi samo kada je gesta klik, a ne povlačenje, koristeći svježi
MouseDownanchor tako da geste panninga i dalje prolaze kroz postojeću putanju pomicanja nepromijenjene - Prošireni su regresijski testovi za Delphi i Lazarus na 102 slučaja svaki, a C++Builder skup na 91 slučaj, pokrivajući zadane
LinkOptions, round-trip skupa i dodjelu rukovatelja događaja
Version 1.11.0
- Dodan je vizualni poliranje za
TPdfView: svojstvaPageShadowSize,PageShadowColoriPageBorderColorcrtaju opcionalnu sjenu ispod pravokutnika stranice i obrub od jednog piksela oko njega. Zadane vrijednosti čuvaju prethodni ravni izgled (PageShadowSize = 0; obrub se crta u zadanojclBlackboji, ali se stapa sa zadanim bijelim pozadinskim slojem dok pozivatelji ne promijene boje) - Dodan je svojstvo
SmoothScrollkao opcionalna zastavica za buduću inkrementalnu animaciju pomicanja; svojstvo se danas round-tripira i povezano je tako da aplikacije mogu spremiti postavku, dok renderirajuća strana i dalje koristi postojeće trenutno ponašanje pomicanja - Prošireni su regresijski testovi za Delphi i Lazarus na 98 slučajeva svaki, a C++Builder skup na 89 slučajeva, pokrivajući zadane vrijednosti, round-trip svojstava i negativni clamp veličine sjene
Version 1.10.0
- Dodan je izravni unos slike kroz nove preopterećene inačice
TPdf.AddImageiTPdfView.AddImagekoje uzimaju ili putanju datoteke iliTBitmap, uz postojećiAddPicturetemeljen naTPicture.AddImage(FileName)prepoznaje bilo koji format registriran s VCL ili LCL grafičkim jedinicama (BMP, PNG preko jedinicePngImage, JPG itd.) i prolazi kroz isti cjevovod kaoAddPicture, pa je ponašanje identično AddImage(TBitmap)preskače međukorakTPicture, što pojednostavljuje pozivatelje koji već držeTBitmapiz renderiranja ili skupnog generiranja- Prošireni su regresijski testovi za Delphi i Lazarus na 92 slučaja svaki, a C++Builder skup na 84 slučaja, pokrivajući umetanje bitmapa, granice page-objecta, odbacivanje nil bitmapa i učitavanje BMP datoteka
Version 1.9.0
- Dodan je podržan rad s transformacijskim matricama više razine kroz novu klasu
TPdfMatrixu jediniciFPdfMatrix.TPdfMatrixomata PDFiumovFS_MATRIXOO API-jem zaTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewiMultiply, prikladnim za sastavljanje transformacija prije nego što se predaju uFPDFPageObj_SetMatrixi slične PDFium API-je TPdfMatrix.Multiplyispravno snima šest elemenata matrice prije izračuna novih vrijednosti redaka, popravljajući latentni problem u kojem alternativne Pascal implementacije prepisuju ranije elemente tijekom istog poziva i proizvode netočne rezultate za bilo koju kompoziciju osim čiste translacije- Prošireni su regresijski testovi za Delphi i Lazarus na 88 slučajeva svaki, a C++Builder skup na 81 slučaj, pokrivajući identitet, reset, translaciju / skaliranje / flip, redoslijed post-multiplikativnog sastavljanja i slučaj regresije za Multiply
Version 1.8.0
- Dodan je učitavanje streama po potrebi kroz novu metodu
TPdf.LoadCustomDocument(AStream, AOwnsStream)i pomoćnu klasuTPdfStreamAdapter, potpomognute PDFiumovimFPDF_LoadCustomDocument. PDFium sada čita blokove iz ponuđenogTStream-a samo kada je potrebno, pa vrlo veliki ili udaljeni PDF-ovi više ne zahtijevaju unaprijed kopiju u memoriji - Dodan je opcionalni posjed nad streamom: prosljeđivanje
AOwnsStream = Truepredaje životni vijekTStream-aTPdf-u, koji ga oslobađa kada se pokreneUnloadDocument - Prošireni su regresijski testovi za Delphi i Lazarus na 79 slučajeva svaki, a C++Builder skup na 75 slučajeva, pokrivajući streaming učitavanje preko
TFileStream, čišćenje posjedovanog streama i ugovor da vanjski posjedovani stream preživiUnload
Version 1.7.0
- Dodan je kooperativni async cancellation primitives u novoj jedinici
FPdfAsync, izlažućiIPdfCancellationToken/IPdfCancellationTokenSourcei ponovno upotrebljivi singletonPdfNoCancellationTokentako da dugi renderi i izvozni tijekovi mogu podržati čistu semantiku otkazivanja iz UI-ja - Dodan je lagani pomoćnik
TPdfFuture<T>koji pokreće radnu nit u pozadini i vraća omotnicuTPdfFutureResult<T>na glavnu nit, razlikujući uspjeh, otkazivanje i neuspjeh - Prošireni su regresijski testovi za Delphi i Lazarus na 76 slučajeva svaki, a C++Builder skup na 73 slučaja, sa zajedničkim pokrivanjem stanja otkazivanja, idempotentnog otkazivanja, raspršivanja poziva i registracije nakon otkazivanja
Version 1.6.10
- Dodan je visokorazinski pristup
TPdf.PrintPageRangesPDF postavci za raspon stranica ispisa, vraćajući raspon stranica s brojanjem od 1 za aplikacijski kod - Dodani su
TPdf.SetFormFieldFlags/SetFormFieldFlagsAti odgovarajući pomoćniciTPdfViewtako da aplikacije mogu ažurirati zastavice polja AcroForma kroz javni API, uključujući pokrivenost zastavica za lozinku i višestruki odabir - Ojačano je ABI pokrivanje veze prema PDFiumu za Windows-sized
FPDF_DWORD, povratne poziveFPDF_FILEACCESSi polja V8 embedder slota
Version 1.6.9
- Dodan je niskorazinski Skia renderirajući binding za novo izvezene API-je
FPDF_RenderPageSkiaiFPDF_FFLDrawSkiau isporučenim standardnim i V8 PDFium DLL-ovima - Proširene su provjere javnog pokrivanja bindinga tako da učitavanje standardnih i V8 DLL-ova sada provjerava Skia render ulazne točke uz postojeće V8/XFA capability probe
Version 1.6.8
- Dodan je
TPdf.SetTextPositionsiTPdfSingleArrayza postavljanje položaja po znaku na postojećim tekstualnim objektima kroz novo izvezeni APIFPDFText_SetPositions FPDFText_SetPositionsje promaknut u obavezni binding za trenutačne isporučene PDFium DLL-ove, dok je potvrđeno da Skia render ulazne točke i dalje nisu dostupne jer ih DLL-ovi još uvijek ne izvoze- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 65 slučajeva svaki s pokrivanjem položaja teksta
Version 1.6.7
- Dodan je visokorazinski pristup dokumentnim JavaScript akcijama u stablu naziva kroz
TPdf, vraćajući nazive akcija i skripte krozJavaScriptActioniJavaScriptActions - Dodan je
TPdf.FileIdentifierza čitanje trajnih i promjenjivih trailer ID-ova kao binarnogTBytesbez završnog bajta PDFiuma - Dodan je
TPdf.PageBox,GetPageBoxiSetPageBoxzaMediaBox,CropBox,BleedBox,TrimBoxiArtBoxna trenutačnoj stranici - Potvrđeno je da trenutačni isporučeni PDFium DLL-ovi ostavljaju samo Skia render ulazne točke nedostupne u runtimeu jer ti exporti nisu prisutni
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 64 slučaja svaki s pokrivanjem dokumentnog JavaScripta, trailer ID-a i page-boxa
Version 1.6.6
- Dodan je runtime support za isporučeni V8-enabled PDFium DLL. Postavljanje
EnableV8Engineprije učitavanja sada odabirepdfium.v8.dlliz stablaDLLs\Win32iliDLLs\Win64i izlaže samo V8/XFA bindinge kada učitani DLL to podržava - Dodani su
V8FeaturesAvailable,XfaBStrHelpersAvailable,GetRecommendedV8Flagsi niskorazinski opcionalni bindingi zaFPDF_BStr_*,FPDF_GetRecommendedV8FlagsiFPDF_GetArrayBufferAllocatorSharedInstance FPDFText_SetPositionsje postavljen kao opcionalan tako da PDFiumPas i dalje učitava s PDFium DLL-ovima koji ne izvoze taj eksperimentalni setter položaja teksta- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 61 slučaj svaki s pokrivanjem mogućnosti standardnog DLL-a i V8 DLL-a
Version 1.6.5
- Dodan je pregled stabla Tagged PDF strukture kroz
TPdf.StructureElementsiTPdfView.StructureElements, uključujući vrstu elementa, naslov, alternativni tekst, stvarni tekst, ekspanzijski tekst, jezik, ID-jeve označenog sadržaja, broj djece i broj atributa - Dodan je odabir moda ispisa PDFiuma za Windows kroz
TPdfPrintModeiSetPdfPrintMode, pokrivajući EMF, samo tekst, PostScript, pass-through, image-mask i Type 42 načine ispisa - Dodani su niskorazinski bindingi za preostale standard-DLL PDFium javne exporte koji pokrivaju JavaScript akcije, zastavice obrasca anotacije / boju fonta, aktivno stanje page-objecta, indeksirano umetanje, float vrijednosti content-mark, podatke o ICC profilu slike, uklanjanje form-objecta i položaje teksta
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 59 slučajeva svaki s pokrivanjem Tagged PDF strukture stabla, moda ispisa i bindinga javnih exporta
Version 1.6.4
- Ažurirani su Delphi, C++Builder i Lazarus demo programi tako da automatski otvaraju generirane PDF-ove, izvezene tekstove/slike i mape skupnog izlaza nakon uspješnog stvaranja
Version 1.6.3
- Prošireni su usklađeni regresijski testovi za Delphi, C++Builder i Lazarus na 56 slučajeva svaki s
TPdfViewGUI pokrivanjem za pomoćnike fit-zoom, round-trip koordinate uređaj/stranica, testiranje pogotka znaka i panning mišem kroz kontrole preglednika u skrivenom prozoru TPdfViewfixturei sada koriste izričitu veličinu preglednika i test-only podklase koje vježbaju zaštićene rukovatelje mišem dok skupovi ostaju potpuno headless
Version 1.6.2
- Ispravljeno je
TPdf.AddPage(0, ...)tako da umetnuta prva stranica odmah postaje aktivna stranica. Postojeći primjer koda i dalje radi, dokPageNumbersada prijavljuje valjani broj stranice s brojanjem od 1 nakon umetanja - Sinkronizirana je verzija Lazarus paketa i prošireni su usklađeni regresijski testovi za Delphi, C++Builder i Lazarus na 52 slučaja svaki
Version 1.6.1
- Ispravljena je pogrešna minimalna verzijska zahtjevnost u v1.6.0 PDF validatoru usklađenosti verzije: radnja
SetStatereklasificirana je iz PDF 1.5 natrag na PDF 1.2, u skladu s PDF 1.2 Reference 6.9.9. PDF 1.3 / 1.4 SaveAs ciljevi koji sadrže radnjeSetStatesada se spremaju ispravno umjesto da budu odbijeni - Dodane su odgovarajuće leksičke provjere PDF 1.2 prema istom odjeljku specifikacije: radnje Sound, Movie i NOP plus Separation color space sada se blokiraju kada je odabrana ciljna verzija starija od PDF 1.2
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 50 slučajeva svaki dodavanjem pozitivnog testa prihvaćanja PDF 1.4 SetState koji učvršćuje ispravljenu granicu
Version 1.6.0
- Ojačani su izričiti SaveAs ciljevi od PDF 1.0 do PDF 1.7 potpunim validatorom značajki verzije koji pokriva cijelu vremensku crtu značajki od PDF 1.1 do ISO 32000-1. Validator sada blokira spremanja koja sadrže unose rječnika, nazive filtera, podvrste anotacija, vrste akcija, fontove, color spaces ili parametre enkripcije uvedene nakon odabrane ciljne verzije. Primjeri: 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 anotacije, AES i AES-256 enkripcija (CFM AESV2 / AESV3), unos kataloga Perms / Legal / Requirements / NeedsRendering te verzijom uvjetovane radnje kao što su JavaScript, Trans, SetState, Rendition, GoToE i GoTo3DView svi se odbacuju kada ih ciljna PDF verzija ne može predstavljati
Version 1.5.13
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 49 slučajeva svaki, dodajući izravno pokrivanje odbacivanja ICCBased color spaces, Tagged PDF MarkInfo, Polygon anotacija, AES (V2) enkripcije i Redact anotacija prema PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6 ciljevima redom
Version 1.5.12
- Ispravljena je naknadna obrada SaveAs za incremental catalog rewrites. PDFiumPas sada provjerava najnoviji ponovljeni neizravni objekt, pa se postojeća catalog /Version premošćenja ispravno zamjenjuju pri spremanju u izričitu stariju ciljnu verziju PDF-a
- Prošireni su regresijski testovi za Delphi, C++Builder i Lazarus na 44 slučaja svaki, dodajući izravno pokrivanje zamjene zastarjele catalog /Version vrijednosti, normalizacije verzije PDF 1.4 kataloga i odbacivanja transparency i portable-collection značajki kada ih odabrana ciljna PDF verzija ne može predstavljati
Version 1.5.11
- Ojačan je versioned SaveAs izlaz za izričite PDF 1.3, 1.4, 1.5, 1.6 i 1.7 ciljeve. PDFiumPas sada normalizira catalog version markers, zadržava zadani Fit Height OpenAction sigurnim za verziju i odbacuje novije PDF značajke kada ih odabrana ciljna verzija ne može predstavljati
- Dodano je regresijsko pokrivanje za Delphi, C++Builder i Lazarus koje sprema i ponovno učitava izričite PDF 1.3 do PDF 1.7 datoteke, provjeravajući završno zaglavlje, zadani Fit Height OpenAction i prijavljenu PDF verziju
Version 1.5.10
- Prešlo se sa spec’s option B na option C dodavanjem TPdfView smoke testova u sva tri IDE testna skupa (Tests.PdfView). Svaki skup gradi skriveni roditeljski TForm (putem TForm.CreateNew na Pascal stranama i
new TForm(NULL, 0)na C++Builder strani), premješta TPdfView, postavlja Active := True, a zatim provjerava round-trip površinu za PageCount, zadani PageNumber, Zoom, Rotation, DisplayMode i da View.Text odgovara temeljnom TPdf.Text. Svaki IDE testni skup sada pokreće 39 slučajeva
Version 1.5.9
- Prešlo se sa spec’s option A na option B dodavanjem render smoke testova u sva tri IDE testna skupa. Svaki Tests.Render skup poziva TPdf.RenderPage na sample.pdf i provjerava tri robusna signala umjesto byte-for-byte checksumova: vraćena bitmapa točno odgovara traženoj veličini u pikselima; različite tražene veličine (200x100, 64x256) stvaraju odgovarajuće bitmape; i prikazana stranica ima najmanje 95% bijele pozadine s najmanje 50 (Lazarus: 20) nebijelih piksela koji označavaju antialiasirani tekst. Svaki IDE testni skup sada pokreće 33 slučaja
Version 1.5.8
- Zatvorene su izvorne A(2) grupe testnog plana dodavanjem još sedam regresija po IDE-u: TPdf.CreateAnnotation koji gradi anotaciju anHighlight plus SaveAs/LoadDocument round-trip, put čitanja AcroForm na Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf (FormType je ftAcroForm, FormFieldCount > 0, FlattenAllPages spušta polja na nulu), i tiho pokrivanje puta čitanja za Bookmarks, LinkAnnotationCount i WebLinkCount na dokumentu koji nema nijednu od tih značajki. Svaki IDE testni skup sada pokreće 30 slučajeva
Version 1.5.7
- Prošireni su Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest) testni skupovi sa sedam novih regresija po IDE-u: PdfVersion, PageRotation, TPdf.FindFirst / FindNext substring lookup, slaganje CharacterOrigin / CharacterRectangle s izvorom AddText, registracija CreateAttachment plus SaveAs/LoadDocument round-trip, i round-trip za tekst s naglascima u AddText koji provjerava da v1.3.0 European TrueType embedding put čuva Latin-1 supplemental code points netaknutima
Version 1.5.6
- Spremljeni PDF-ovi sada dobivaju zadanu first-page Fit Height open action kada postojeći OpenAction nije prisutan, pa PDF čitači početno prikazuju generirane dokumente u page-height zumiranju
- Dodano je regresijsko pokrivanje za Delphi, Lazarus i C++Builder za generirani OpenAction i postavku Fit Height
Version 1.5.5
- Dodani su regresijski testovi kroz Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest) testne skupove za indexed character i font inspection API površinu (TPdf.FontBaseName, FontFamilyName, FontWeight, FontItalicAngle, FontData, FontIsEmbedded, CharacterFontWeight, CharacterAngle). Lazarus skup namjerno preskače FontData, koji trenutačno izaziva access violation unutar FPDFFont_GetFontData pod FPC-om
Version 1.5.4
- Dodan je C++Builder Attachment demo prenesen iz Delphi primjera, koji pokriva stvaranje PDF-ova, dodavanje, popisivanje, izdvajanje, brisanje i spremanje ugrađenih privitaka datoteka s prikazom MIME subtype
Version 1.5.3
- Izložen je izračun spread-page koji podupire two-page modove TPdfView kao unit-level helper ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). Ponašanje je nepromijenjeno; pomoćnik čini cover-aware pravilo neovisno testabilnim bez instanciranja preglednika
- Dodano je pet regresijskih testova kroz Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest) testne skupove koji pokrivaju prazne dokumente, standardno two-page uparivanje, cover page koji stoji sam u dmTwoPageContinuousWithCover, parove nakon covera i last-page / out-of-range clamping ponašanje
Version 1.5.2
- Dodana je podrška za jezik dokumenta kroz TPdf.Language, mapirana na PDF catalog /Lang entry
- Dodan je pristup MIME subtype privitka kroz TPdf.AttachmentType
- Dodan je anRedact u TPdfAnnotationSubtype i dodani su pomoćnici za page-object removal za TPdf i TPdfView
- Ažurirani su viewer i attachment demoi za prikaz novih informacija o jeziku i vrsti privitka kada su dostupne
Version 1.5.1
- Dodan je dmTwoPageContinuousWithCover za TPdfView kako bi rasporedi preglednika mogli prikazati prvu stranicu samu, a zatim nastaviti s two-page spreads
- Ažurirani su Delphi, C++Builder i Lazarus MultiPageViewer demoi kako bi izložili cover-aware two-page display mode
Version 1.5.0
- Dodani su smoke-level automatizirani testni skupovi za Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest). Tri skupa dijele jedan fixture PDF u Tests\TestData i pokreću istih sedam slučajeva svaki, pokrivajući učitavanje dokumenta, informacije o stranici, izdvajanje teksta, metapodatke, save round-trip, provjeru PDF zaglavlja i svojstvo Compressed
Version 1.4.3
- Poboljšan je FontProperties demo kako bi prikazao i TPdfView i TPdf font metadata API-je, uključujući font handles, veličinu font data i character metrics
- Dodana su indexed TPdfView character i font inspection svojstva, a FontProperties demo ažuriran je za upit text-object font metadata
Version 1.4.2
- Dodana su indexed character i font inspection svojstva u TPdf za analizu teksta bez zahtijevanja preglednika. Character-indexed svojstva (CharacterAngle, CharacterFontSize, CharacterFontWeight) dohvaćaju per-character metrics iz text streama trenutačne stranice. Page-object-indexed svojstva (FontAscent, FontBaseName, FontData, FontDescent, FontFamilyName, FontHandle, FontIsEmbedded, FontItalicAngle, FontWeight) dohvaćaju font metadata za bilo koji tekstualni objekt na trenutačnoj stranici
- Netekstualni page objekti vraćaju sigurne nulte ili prazne vrijednosti za sva Font* svojstva umjesto da podignu pogrešku, što olakšava prolazak kroz svaki page object i pregled samo tekstualnih
- FontBaseName čita PostScript base font name izravno umjesto vraćanja na font family name, dajući točniji identifikator za ugrađene fontove
Version 1.4.1
- Dodane su C++Builder i Lazarus verzije EuropeanText demoa kako bi sve podržane IDE obitelji mogle provjeriti stvaranje europskog teksta s naglascima pomoću system TrueType fonts
- Dodane su C++Builder i Lazarus verzije FormFill demoa, uključujući sample form PDFs, uređivanje polja, regeneriranje izgleda, spremanje ispunjenog obrasca i flattening workflows
Version 1.4.0
- Dodana je podrška za Lazarus / Free Pascal: novi PDFiumLaz paket pruža iste TPdf, TPdfView i povezane komponente pod LCL widget setom, proširujući biblioteku na Lazarus IDE i Free Pascal compiler uz postojeće Delphi i C++Builder pakete
- Dodane su Lazarus verzije demoa kako bi Lazarus programeri mogli istražiti svaku značajku kroz runnable examples
- Ispravljen je problem prevođenja u Lazarusu gdje su Free Pascal conditional defines procjenjivani zajedno s Delphi compiler-version checks, zbog čega su FPC buildovi pokušavali razriješiti Delphi-specific unit names i padali
Version 1.3.1
- Dokumentiran je form flattening workflow u help setu: GenerateFormAppearances, FlattenPage, FlattenAllPages i povezane FLAT_* / FLATTEN_* konstante sada su pokrivene u TPdf, TPdfView, API reference, feature matrix i programming examples
- Ispravljena je architecture table na overview stranici tako da navodi stvarne binding jedinice isporučene u mapi Lib
Version 1.3.0
- Poboljšana je podrška za europske znakove pri stvaranju PDF-ova. TPdf.AddText sada učitava i sprema u predmemoriju odgovarajući system TrueType font prije stvaranja tekstualnog objekta, čuvajući znakove s naglascima iz češkog, francuskog, njemačkog, španjolskog, portugalskog, poljskog i turskog koje PDFium’s built-in standard fonts ne mogu predstaviti
- Aplikacije koje su prije proizvodile upitnike ili zamjenske glyphs za non-ASCII Latin tekst sada će se prikazivati ispravno bez ikakve promjene koda. Dodan je EuropeanText demo za ilustraciju značajke
Version 1.2.0
- Dodan je AcroForm appearance refresh u TPdf: pozivanje GenerateFormAppearances nakon izmjene vrijednosti FormField[] ažurira widget appearance tako da su ispunjene vrijednosti vidljive u standardnim PDF čitačima bez potrebe za interactive edit session
- Dodani su form flattening pomoćnici u TPdf (FlattenPage / FlattenAllPages) i TPdfView (FlattenPage za trenutačnu stranicu prikaza). Flattening trajno ugrađuje ispunjene vrijednosti polja kao običan sadržaj stranice i uklanja interactive form layer, stvarajući statični dokument koji se dosljedno prikazuje u svim preglednicima
- Dodan je Demo\Delphi\FormFill za demonstraciju fill-and-save i fill-and-flatten workflowa s primjerom AcroForm PDF-a
Version 1.1.2
- Dodana je save-time PDF stream compression. Novo svojstvo TPdf.Compressed (zadano omogućeno) prepisuje nekomprimirane content streams kao FlateDecode-compressed streams pri spremanju, znatno smanjujući veličinu datoteke za programski generirane PDF-ove. Aplikacije koje zahtijevaju plain uncompressed output mogu postaviti Compressed na False prije poziva SaveAs
Version 1.1.1
- Win64 package buildovi više ne uključuju design-time registration units, čime se sprječavaju build-time kvarovi kada se Win64 paket postavlja u runtime-only context
- PDFium DLL loader sada najprije pretražuje Win32 ili Win64 poddirektorij aplikacije, koristeći standardna imena pdfium.dll i pdfium.v8.dll, a zatim se vraća na ravni direktorij aplikacije i Windows system directory. To odgovara DLL rasporedu isporučenom s paketom komponenti, čineći instalaciju jednostavnom
Version 1.1.0
- Ispravljen je vizualni clipping defect u TPdfView two-page mode: sadržaj stranice prelijevao se preko guttera jer su lijeva i desna page tile dijelile jedan clipping rectangle. Svaka tile sada se izrezuje neovisno, pa sadržaj ostaje unutar granice svoje stranice
- Poboljšana je poruka pogreške Delphi demoa kada se PDFium DLL ne može pronaći, dajući jasniji upit s očekivanim imenom i lokacijom DLL-a