Napomene o izdanju za PDFiumPas
Ova stranica je lokalizovana za srpski latinicom i čuva nazive API-ja, datoteka i literalne vrednosti neizmenjene
Istorija verzija za korisnički vidljive funkcije PDFiumPas-a, ispravke, poboljšanja pregledača, generisanje dokumenata, PDF/A izlaz, renderovanje i ažuriranja dokumentacije
Poslednje izdanje
- Najnovija verzija: 2.57.0; Datum izdanja:
Version 2.57.0
Dodato (Added)
TPdfThumbnailView.Orientationpodržava vertikalne i horizontalne rasporede sličica uz očuvanje postojećeg vertikalnog podrazumevanogFirstVisiblePageIndex,LastVisiblePageIndexiEnsureCurrentPageVisibleizlažu i kontrolišu prikaz sličica sa indeksima stranica zasnovanim na jedinici
Izmenjeno (Changed)
- Promena
CurrentPageIndexsada pomera izabranu sličicu u prikaz u bilo kojoj orijentaciji - Testovi Delphi, Lazarus i C++Builder sada pokrivaju podrazumevane vrednosti orijentacije, prebacivanje, vidljive opsege i vidljivost izabrane stranice
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.57.0
Version 2.56.2
Izmenjeno (Changed)
HighlightSearchText,AddSearchTextHighlightiClearHighlightsada poništavaju samo pravougaonike uređaja za opsege pretrage koji su dodati ili uklonjeni umesto ponovnog iscrtavanja celog pregledača- Zamena isticanja istim podudaranjima ili dodavanje duplikata podudaranja više ne zakazuje nepotrebno ponovno iscrtavanje
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju ograničeno poništavanje, idempotentna ažuriranja, brisanje i sigurnost neaktivnog prikaza
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.56.2
Version 2.56.1
Izmenjeno (Changed)
TPdfThumbnailViewsada ponovo koristi renderovane bitmape za stranice koje ostaju vidljive kroz ponovna iscrtavanja i susedne pozicije klizača- Keš zadržava samo trenutni opseg vidljivih stranica i oslobađa stavke precizno kada stranice napuste taj opseg, promeni se dodeljeni dokument ili se promene dimenzije sličica
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju ponovnu upotrebu keša, orezivanje prikaza, poništavanje po veličini, zamenu dokumenta i uništavanje komponente
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.56.1
Version 2.56.0
Dodato (Added)
TPdfView.CutSelectedFormTextToClipboardiTPdfView.PasteFormTextFromClipboardpružaju Unicode uređivanje privremene memorije za fokusirani uređivački vidžet formulara
Izmenjeno (Changed)
- Fokusirani uređivači formulara sada obrađuju standardne prečice tastature za kopiranje, isecanje, lepljenje i izaberi sve pre prosleđivanja unosa teksta u PDFium
- Isecanje i lepljenje odbijaju polja samo za čitanje i sesije bez dozvole za popunjavanje ili izmenu formulara, dok isecanje uspešno kopira pre uklanjanja izabranog teksta
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju odsustvo fokusa, prečicu povratnog puta i ponašanje odbijanja samo za čitanje
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.56.0
Version 2.55.0
Dodato (Added)
TPdfView.AddSearchTextHighlightdodaje jedinstvena podudaranja za još jedan termin pretrage na preklapanje trenutne stranice, omogućavajući da nekoliko upita ostanu istaknuti zajedno
Izmenjeno (Changed)
HighlightSearchTextostaje ulazna tačka zamene i sada deli aditivni skener, dok se duplikati opsega znakova ignorišu, aClearHighlightuklanja kompletan akumulirani skup- Testovi Delphi, Lazarus i C++Builder sada pokrivaju akumulaciju različitih upita i suzbijanje duplikata opsega
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.55.0
Version 2.54.0
Dodato (Added)
TPdfsada izlaže kompletne snimke objekata stranice, grupna ažuriranja stila, afine transformacije objekata, segmente putanje, putanje isecanja i decu Form XObject-a- Inspekcija znakova sada uključuje boje popunjavanja i poteza, ime i oznake fonta, slobodne granice glifa, efektivne matrice, ručice objekata teksta i konverziju indeksa znak u tekst
- Anotacije sada povratno prenose geometriju ivice i normalne, rollover i down tokove izgleda
- Novi raw i decoded pristupnici sličica, transformacije sadržaja stranice i anotacija, kao i
RenderPageWithMatrixpružaju direktne napredne putanje renderovanja i uređivanja
Izmenjeno (Changed)
- Promene stila objekata stranice mogu se potvrditi kao jedna grupa tako da PDFium regeneriše sadržaj stranice samo jednom
- Renderovanje matricom koristi postojeću putanju bitmapa bez kopiranja kada je raspored ciljne bitmape kompatibilan
Version 2.53.1
Ispravljeno (Fixed)
- Ugrađeni kineski natpis menija Copy sada koristi Unicode kodne tačke nezavisne od kodiranja i prikazuje se ispravno u Lazarus izgradnjama
- Starije Delphi alatke sada mogu kompajlirati
FPdfAsynckada njihova jedinicaWinapi.Windowsizostavi deklaracijuGetTickCount64
Version 2.53.0
Dodato (Added)
- Nova
Tests.ApiCoveragetestna oprema koja pokriva javne TPdf API-je koji su prethodno imali nultu pokrivenost end-to-end testova:GetPageBox/SetPageBox(čitanje/pisanje MediaBox/CropBox, greške nedostajuće kutije i povratni put čuvanja),FlattenPage/FlattenAllPages(povratna vrednost i očuvanje broja stranica),GenerateFormAppearances(no-op na dokumentima koji nisi formulari),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 sa povratnim putem lozinke — verifikuje da šifrovani fajl odbija da se otvori bez lozinke i otvara se sa njom), validacija granicaDeletePage(stranica 0 i van opsega izazivajuEPdfError), iHasContents/HasAuthoranotacioni seniteli uvedeni u v2.38.0 (verifikuje daDefault(TPdfAnnotation)ostavlja ih naFalse)
Version 2.52.0
Dodato (Added)
TPdfView.CopySelectedFormTextToClipboardkopira izbor teksta unutar fokusiranog AcroForm vidžeta u Windows privremenu memoriju kaoCF_UNICODETEXT
Izmenjeno (Changed)
- Operacije kopiranja teksta stranice i fokusiranog formulara sada dele isti defanzivni Unicode pisac privremene memorije i ostavljaju privremenu memoriju nepromenjenom kada je njihov izbor prazan
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju neaktivne ili nefokusirane pozive kopiranja formulara i povratni put izbora fokusiranog formulara kroz Windows privremenu memoriju
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.52.0
Version 2.51.0
Dodato (Added)
TPdfView.SelectLineAtbira vizuelnu liniju teksta koja sadrži stranicu zasnovanu na jedinici i indeks znaka zasnovan na nuli bez zahtevanja unosa miša
Izmenjeno (Changed)
- Programabilni izbor linije, izbor trostrukim klikom i
Shift+HomeiliShift+Endsada dele jedan model granice linije poznabroju znakova - Testovi Delphi, Lazarus i C++Builder sada pokrivaju stabilan izbor linije i nevažeće indekse stranice ili znaka
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.51.0
Version 2.50.0
Dodato (Added)
TPdf.LoadDocumentsada prihvata zasnovan na nuli prozorIndexiCountuTBytesbafer, omogućavajući ugradne PDF-ove da se učitaju bez alociranja privremenog isečka niza bajtova
Izmenjeno (Changed)
- Učitavanje opsega bajtova odbija negativne ili van granica prozore pre promene stanja dokumenta i čuva postojeće opcije trajanja baferisanog i pozajmljenog bafera
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju prozore ugradnih PDF-ova i nevažeće argumente opsega bajtova
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.50.0
Version 2.49.1
Dodato (Added)
TPdfView.FitModesada podržavapfmFitHeightza prilagođavanje trenutne stranice vidljivoj visini prikaza uz dozvoljavanje horizontalnog pomeranja po potrebi
Ispravljeno (Fixed)
- Režimi uklapanja sada konvergiraju nakon što promena vidljivosti klizača promeni klijentsku oblast, čime se rezultati fit-page, fit-width i fit-height održavaju doslednim između VCL i LCL
- Testovi pregledača Delphi, Lazarus i C++Builder sada pokrivaju izbor
pfmFitHeighti povratne puteve nabrojivanja TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.49.1
Version 2.49.0
Dodato (Added)
- Javna površina vezivanja PDFium-a sada pokriva svih 470 izvezenih funkcija u pregledanim zaglavljima, uključujući pristup opisima priloga putem
FPDFAttachment_SetDescriptioniFPDFAttachment_GetDescription TPdfsada izlaže opise priloga, ispravnost unakrsnih referenci, ofsete kraja trejlera, reviziju security-handler-a, 64-bitno učitavanje u memoriju, opsege bajtova potpisa, opsege teksta veb-linkova i proširene snimke podataka slike, filtera, metapodataka i ICC profila- Pomoćnici formulata sada podržavaju izvorni fokus polja, upite i ažuriranja fokusiranih opcija izbora, prosleđivanje točkića miša, upisive poteze mastilom i preklapanja formulara nakon progresivnog renderovanja
Izmenjeno (Changed)
FormFieldCount, indeksi polja formulara i redosled tabulatora sada opisuju samo widget anotacije umesto da uključuju nepovezane anotacije stranice- Stranice
TPdfbez glave sada ulaze i izlaze iz životnog ciklusa stranice popunjavanja formulara tako da izvorni fokus i API-ji fokusiranih polja rade bezTPdfView - Izvozi opisa priloga su ograničeni mogućnostima tako da aplikacije koje koriste stariju izgradnju PDFium-a i dalje mogu učitati biblioteku i otkriti nedostupnu funkciju
Ispravljeno (Fixed)
- Progresivno renderovanje stranice sada crta kontrole formulara kada je popunjavanje formulara omogućeno
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju novu dijagnostiku dokumenata, opise priloga, putanje mastila, ponašanje formulara, opsege bajtova potpisa, opsege veb-linkova i metapodatke slika
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.49.0
Version 2.48.0
Dodato (Added)
TPdfMatrixsada izlaže fabrike, kloniranje i dodeljivanje, dijagnostiku konačnog stanja i invertibilnosti, poređenje zasnovano na toleranciji, pristup translaciji, izveštavanje determinante i afinu dekompoziciju- Sastavljanje prepend, rotacija svesna na oslonac, skaliranje, iskošavanje i okretanja, plus mapiranje pravougaonika stretch, contain i cover podržavaju tokove rada u lokalnom prostoru i prilagođene rasporede bez ručne aritmetike koeficijenata
- Nemutirajući inverzni pristup, inverzno mapiranje tačaka, transformacije vektora i četvorouglova, dinamičke serije tačaka i pravougaonika, in-place varijante i jednoprolazne transformisane granice proširuju površinu geometrije koja se može ponovo koristiti
Izmenjeno (Changed)
- Translacija, skaliranje i okretanja osa sada ažuriraju samo zahvaćene koeficijente umesto rutiranja kroz opšte afino množenje
- Transformacija pravougaonika normalizuje svoj ulaz jednom, koristi specijalizovanu tačnu putanju poravnatu sa osama gde je moguće i izračunava opšte rotirane granice bez privremenih zapisa tačaka
- Transformacije serija tačaka i pravougaonika alokiraju jedan niz rezultata ili ponovo koriste skladište pozivaoca, dok se transformisane granice tačaka akumuliraju u jednom prolazu bez posrednog niza
Ispravljeno (Fixed)
- Mapiranje pravougaonika odbacuje rezultate nulte veličine, nekonačne i sa prelivanjem
Singlepre objavljivanja neupotrebljive matrice - Testovi Delphi, Lazarus i C++Builder sada proveravaju redosled sastavljanja, invarijante oslonca, inverzne povratne puteve, prilagođene pravougaonike, dekompoziciju i ponašanje masovne geometrije
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.48.0
Version 2.47.0
Dodato (Added)
FPdfAsyncsada pruža strukturirane razloge i poruke otkazivanja, uklonjive registracije povratnih poziva, izvore zasnovane na isteku vremena, čekanje otkazivanja i atomske try-cancel operacije putem proširenih interfejsa koji čuvaju originalni APITPdfFuture<T>.RunExdodaje konfigurabilno slanje odgovora i prioritet radnika dok omotnice rezultata izlažu ID-ove operacija, ispravnost vrednosti, imena klasa izuzetaka, merenje vremena završetka i pomoćnike za završetak koji se mogu ponovo koristitiTPdfAsyncExecutordodaje ponovo upotrebljiv fiksni bazen radnika sa četiri FIFO trake prioriteta, opcionu kontrapritisak ograničenog reda, otkazive ručke zadataka, čekanje svesno isteka vremena, snimke zadataka, agregirane statistike i elegantno gašenje
Izmenjeno (Changed)
- Ponavljajući asinhroni poslovi mogu ponovo koristiti niti radnika i operacije reda O(1) umesto stvaranja niti za svaki zadatak, dok sinhronizovano završavanje ostaje dostupno za UI domaćine
- Greške izvršioca i future-a čuvaju dijagnostiku klase i poruke izuzetaka, otkazivanje čuva svoj originalni razlog, a izuzeci povratnih poziva ostaju izolovani od životnog ciklusa radnika i gašenja
- Testovi Delphi, Lazarus i C++Builder sada pokrivaju proširenu površinu otkazivanja, metapodataka future-a, kontrole zadataka, kontrapritiska, redosleda prioriteta, statistike, grešaka i gašenja
Ispravljeno (Fixed)
- Istovremeni vlasnici otkazivanja sada dobijaju deterministički rezultat prvog pisca umesto da se oslanjaju na odvojenu sekvencu posmatranja i otkazivanja
- Čekanje na mirovanje glavne niti obrađuje sinhronizovane odgovore zadataka, sprečavajući završenog radnika da ostavi izvršioca trajno ne-mirovanjem tokom koordinisanog gašenja
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.47.0
Version 2.46.0
Dodato (Added)
FPdfAsn1sada izlaže klase identifikatora, 64-bitno kodiranje i dekodiranje brojeva visokih oznaka, raščlanjene TLV zapise, prozore podređenog čitaoca sa nultim kopiranjem, tipizovane primitivne dekodere i isečke sadržaja ili kodiranih vrednosti- DER pisci sada podržavaju pun neoznčeni 64-bitni INTEGER opseg, validiran proizvoljan INTEGER sadržaj, ENUMERATED, automatski izbor UTCTime ili GeneralizedTime, application i private oznake, viševrednosni SEQUENCE i kanonski sortiran SET OF izlaz
ValidateDervraća greške validacije svesne ofseta primenjujući konfigurabilne granice ugnježđivanja, broja čvorova, dužine sadržaja, broja grešaka, korena i opcionog SET sortiranja
Izmenjeno (Changed)
- DER konkatenacija i viševrednosna kompozicija koriste jednu alokaciju izlaza, baferi pisca izlažu reserve, count, capacity i operacije prenosa vlasništva, a SET OF sortiranje sada koristi
O(n log n)sortiranje spajanjem - BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime i GeneralizedTime vrednosti dobijaju provere kanonske forme tokom kodiranja, tipizovanog dekodiranja ili validacije
- Lazarus runtime paket sada izvozi
FPdfAsn1, a Delphi, Lazarus i C++Builder testovi vežbaju istu javnu DER površinu
Ispravljeno (Fixed)
- Kontekstno specifični brojevi oznaka veći od 30 se više ne skraćuju u niskih pet bitova identifikatora
- Deformisani identifikatori visokih oznaka, ne-minimalne određene dužine, nevažeći UTF-8, ne-nula BIT STRING popunjavanje, nevažeća vremenska polja, zadnji koreni i povrede granica resursa se deterministički odbacuju
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.46.0
Version 2.45.0
Dodato (Added)
FPdfPreflightReportsada dodeljuje Info, Warning ili Error ozbiljnost svakom problemu i izlaže API-je ozbiljnosti, statusa, kategorije, koda problema, pretrage, pretraživanja, spljoštavanja i filtriranja na nivou standarda i izveštaja- Izveštaji preflight-a sada izvoze SARIF 2.1.0, JUnit XML, NDJSON i izvorni XML putem odgovarajućih
To*iSave*ToFilemetoda za CI, automatizaciju i streaming cevovode - Stabilni SHA-256 otisci izveštaja identifikuju ekvivalentne rezultate validacije nezavisno od izvornih putanja i vremenskih oznaka generisanja
Izmenjeno (Changed)
- JSON, CSV, text, Markdown i HTML izveštaji sada uključuju ozbiljnost i proširene rezimee statusa; HTML dodaje pristupačne naslove tabela i rezime statusa
- Konstrukcija kolekcija problema i standarda koristi geometrijski rast kapaciteta, rezultati upita su preddimenzionisani, JSON eskapiranje piše u jedan ograničeni izlazni bafer, a sve datoteke izveštaja koriste jednog direktng UTF-8 pisca
- Rezimee kategorija problema koriste determinističko sortiranje, vremenske oznake uključuju milisekunde, JSON nosi
formatVersion: 2, a CSV ćelije neutrališu formule tablica
Ispravljeno (Fixed)
- JSON izvoz sada čuva validne dopunske Unicode parove i zamenjuje izolovane UTF-16 surogatne kodne jedinice umesto emitovanja deformisanih skalarnih podataka
- HTML izvoz sada eskapira apostrofe, a filtrirani pregledi izveštaja poseduju nezavisne nizove problema umesto deljenja promenljivog skladišta rezultata
TPdf.AboutInfo, metapodaci paketa Lazarus i metapodaci instalatera sada dosledno izveštavaju o Version 2.45.0
Version 2.44.0
Dodato (Added)
- Markeri i odredišta sada izlažu stanje otvaranja, brojeve potomaka, mete akcija, režime prikaza odredišta i do četiri parametra prikaza
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissioniUserHasPermissionpružaju tipizovane snimke za inspekciju dokumenata i upite nad dozvolamaExtractThumbnail(PageNumber)renderuje traženu stranicu bez promene aktivne stranice, a rezultati RFC 3161 vremenske oznake izlažu polisu, vreme generisanja i detalje nonce vrednosti
Izmenjeno (Changed)
- Putanje za markere, JavaScript, metapodatke, odredišta i sličice koriste potvrđene dvoprolazne bafere, geometrijski rast kolekcija i obilazak bezbedan od ciklusa
- Post-obrada čuvanja razrešava aktivni katalog, stablo stranica i akciju otvaranja kroz trenutnu xref reviziju, kešira dekodirane tokove objekata i skenira PDF rečnike sa leksičkim granicama
- Zajedničko PDF parsiranje sada zahteva tačne zaglavlja objekata, generacije, ključeve rečnika, dužine tokova, geometriju prediktora, opsege celih brojeva i granice komentara, literalnih stringova i heksadecimalnih stringova
- Validacija RFC 3161 odgovora sada vezuje i nonce i SHA-256
messageImprint, zahteva strukturno ispravnog potpisnika i primenjuje stroga DER pravila za dužinu, OID, INTEGER i GeneralizedTime
Ispravljeno (Fixed)
- Inkrementalni dokumenti više ne biraju neaktivne duplikate kataloga ili loše formirane sufikse referenci pri dodavanju podrazumevane akcije otvaranja
- Tokeni vremenskih oznaka sa dugim DER dužinama zadržavaju kompletan kodirani token, dok se loše formirano redosled CMS opcionalnih polja i prazni skupovi potpisnika odbijaju
- Čiste Delphi izgradnje sada upisuju PAdES polja nonce seed kroz poravnate bezbedne kopije bajtova i prosleđuju XFA bajtove odgovora sa tačnim nativnim tipom pokazivača
Version 2.43.0
Dodato (Added)
- XFDF zapisi polja i anotacija sada izlažu zastavice prisutnosti koje razlikuju izostavljenu XML vrednost od eksplicitno prazne vrednosti
Izmenjeno (Changed)
- XFDF uvoz prihvata elemente i atribute sa prefiksom imenskog prostora, mešani tekst i CDATA sadržaj, reference entiteta i vrednosti značajne za razmake, uz odbijanje nevažećih Unicode skalarnih referenci
- XFDF uvoz i izvoz koriste indeksirano podudaranje polja i ograničene geometrijske bafere, poboljšavajući propusnost i ponašanje vršne alokacije za duboko ugnežđene forme, velike kolekcije anotacija, liste tuša, temena i markup četvorouglove
- PDF/A i PDF/UA validacija koriste ograničeni rast za velike kolekcije stranica, tokova, imena struktura i RoleMap; PDF/UA RoleMap razrešavanje sada prati direktne nizove i indirektne objekte imena ili niza sa tačnom generacijom
Ispravljeno (Fixed)
- XFDF povratni ciklusi sada čuvaju duboko ugnežđene putanje polja, eksplicitno prazne vrednosti polja, eksplicitno prazne sadržaje anotacija i razliku između odsutnih i praznih sadržaja
- Neispravna učitavanja memorijskih bafera i dodeljivanja stranica van opsega odbijaju se bez ostavljanja delimičnog stanja dokumenta ili stranice, a neuspešno nativno ponovno učitavanje stranice čuva prethodno aktivnu stranicu
- Veliki identifikatori označenog sadržaja i baferi metapodataka potpisa ograničeni su i validirani pre alokacije ili nativnog pristupa
Version 2.42.0
Dodato (Added)
TPdfMatrixsada pružaInvert,TryInvert,TransformPointiTransformRectza mapiranje koordinata, testiranje pogodaka, normalizovane granice i eksplicitno rukovanje singularnim matricamaTPdf.WrapTextje dobio preopterećenjeBreakLongWordskoje deli CJK i drugi tekst bez razmaka uz zadržavanje ispravnih UTF-16 surogatnih parova zajednoTPdfAnnotation.AttachmentPointSetsizlaže svaki četvorougao u višelinijskim markup anotacijama, dok postojeće poljeAttachmentPointsostaje alias za prvi skup
Izmenjeno (Changed)
- Ekstrakcija teksta, konstrukcija čitljivog sadržaja, pretraga reči i mapiranje ofseta izgovorenog teksta sada koriste ograničenu alokaciju i binarne putanje pretrage, smanjujući ponavljane alokacije i linearne skenove na velikim stranicama
- ASN.1 serijalizacija i generisanje šifrovanih PDF-ova sada koriste geometrijske izlazne bafere; redosled šifrovanih objekata koristi
O(n log n)sortiranje, a xref redovi se upisuju direktno u konačni bafer WrapTextčuva CR, LF i CRLF granice linija i koristi jedan nativni objekat za merenje tokom cele operacije- XFDF uvoz i izvoz čuvaju svaki markup četvorougao; uvoz takođe primenjuje RGB/interior boje i parsira decimalne koordinate nezavisno od lokalnog podešavanja procesa
Ispravljeno (Fixed)
- Zastareli pozivaoci ponovo mogu ažurirati sadržaj i autora anotacije dodeljivanjem nepraznih stringova bez postavljanja novijih sentinel-a
HasContentsiHasAuthor - Eksplicitno prazni stringovi anotacija sada koriste važeći nativni bafer sa nultom terminacijom, tako da brisanje
/Contents,/Ti drugih opcionalnih ključeva teksta više ne prosleđuje nil pokazivač ka PDFium-u
Version 2.41.0
Izmenjeno (Changed)
- Preflight izveštaj
SaveJsonToFile,SaveMarkdownToFileiSaveTextToFilesada upisuju UTF-8 na Delphi platformi (usklađeno sa postojećimSaveHtmlToFile), umesto sistemske ANSI kodne stranice; ne-ASCII znakovi u putanjama datoteka, preporukama i napomenama o opsegu bili su iskrivljeni na Delphi kada su sačuvani ovim metodama SaveCsvToFilesada piše UTF-8 sa BOM prefiksom, tako da Excel za Windows automatski prepoznaje kodiranje; bez BOM-a, Excel tretira UTF-8 CSV kao kodnu stranicu 1252 i kvari ne-ASCII znakove
Ispravljeno (Fixed)
- Demonstracija
ExtractImagesje procurela keširaneTBitmapobjekte uFExtractedImageskada je forma zatvorena bez eksplicitnog prethodnog čišćenja; forma sada nadjačava metodDestroykako bi pozvalaClearExtractedImages, oslobađajući svaki keširani bitmap
Version 2.40.0
Izmenjeno (Changed)
TPdf.RenderPage(HDC, ...)sada maskira FPU/SSE izuzetke okoFPDF_RenderPagepoziva, pratećiTPdfView.RenderPage(HDC)(ispravljeno u v2.25.0) i svaku ulaznu tačku za renderovanje koja vraća bitmapu; preopterećenje na nivouTPdfdirektno na DC je ranije ostavljalo FPU izuzetke nemaskirane na kompajlerima pre D12
Ispravljeno (Fixed)
ColorToARGBsada vraća potpuno transparentan piksel (alfa 0) zaclNoneiclDefaultumesto da tretira sentinel vrednost kao doslovnu RGB boju; prethodno ponašanje je proizvodilo tamnu, skoro neprozirnu ispunu kada bi pozivalac prosledioclNoneočekujući „no colour”
Version 2.39.1
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.3 sada uklanja unose
/SMask /None,/AIS falsei/TK truekoji samo ponavljaju početno grafičko stanje dok i dalje odbijaju nepodrazumevano stanje providnosti
Version 2.39.0
Izmenjeno (Changed)
CreatePDFiImageToPDFsada koriste potvrđena odredišta čuvanja i prijavljuju uspeh samo kada seSaveAsuspešno završiBatchExport,PDFtoJpgiSplitPDFsada dodeljuju jedinstvene izlazne direktorijume tako da ponovljena pokretanja i istoimeni ulazi čuvaju ranije rezultateSplitViewsada završava pretragu jednom bez ostavljanja skrivenog stanja stranice nakon otkazivanja ili nepronalaska podudaranja, i prekida nepotpune poslove štampanja umesto slanja delimičnog izlaza
Ispravljeno (Fixed)
MergePDFsada odbija neispravne tokene opsega stranica i izlazne putanje koje prepisuju izvor, broji stvarno uvezene stranice i odbija da sačuva prazan rezultat- Demos za Delphi i C++Builder pod nazivom
Attachmentsada izvršavaju čuvanja na istoj putanji kroz zamenu datoteke bezbednu od opoziva (rollback-safe), tako da neuspešno preimenovanje ne može ukloniti originalni PDF
Version 2.38.0
Izmenjeno (Changed)
SetAnnotationDatasada štiti upise u/Contentsi/Authoriza sentinelaHasContents/HasAuthornaTPdfAnnotation, prateći postojeći šablonHasName/HasSubject/HasIcon; prethodno su ova dva polja bila upisivana bezuslovno, pa je dodeljivanje zapisaDefault(TPdfAnnotation)radi ažuriranja samo boje ili zastavica tiho prepisivalo postojeći sadržaj i autora anotacije praznim stringovima;GetPageAnnotationsada postavlja sentinele tako da ciklus čitanja-izmene-pisanja čuva originalne vrednosti
Ispravljeno (Fixed)
GenerateFormAppearancessada čita vrednost polja za potvrdu (checkbox) ili radio dugmeta prekoFPDFAnnot_GetFormFieldValue(koji ide do roditeljskog rečnika polja prema ISO 32000-1 §12.7.5) umestoFPDFAnnot_GetStringValue(Annot, 'V', ...)(koji čita rečnik vidžeta); vidžet obično ne sadrži/V, pa/ASnikada nije bio sinhronizovan sa označenim stanjem i spljošteno polje za potvrdu/radio dugme se renderovalo kao neoznačeno
Version 2.37.0
Izmenjeno (Changed)
ParseTsaUrlsada ograničava port na1..65535nakon parsiranja; prevelika vrednost porta bi se inače omotala (wrap) krozDWORDskraćivanje i mogla bi završiti na važećem portu- XFDF
ParseFieldsada prihvata parametar dubine (podrazumevano 0, ograničeno na 64) i vraća prazno polje na limitu, tako da zlonamerno ugnežđeni lanac<field>dubok 100 000 nivoa više ne može da prepuni stek
Ispravljeno (Fixed)
- TSA HTTP zahtev sada se štiti od praznog tela zahteva pre prosleđivanja
@ReqDer[0]funkcijiWinHttpSendRequest; dereferenciranje dinamičkog niza nulte dužine bi pristupilo neuzemljenom pokazivaču;BuildTimeStampRequvek vraća nepraznu SEQUENCE, ali mesto poziva sada brani ugovor
Napomene (Notes)
- Komentar u zaglavlju
FPdfTsaWino proveri opoziva za HTTPS je ispravljen: WinHttp podrazumevano validira lanac sertifikata servera, ali ne vrši CRL/OCSP proveru opoziva osim ako to nije eksplicitno omogućeno putemWinHttpSetOption; prethodna formulacija je tvrdila da je provera opoziva „besplatna”, što je dovodilo u zabludu
Version 2.36.0
Izmenjeno (Changed)
- TSA HTTP zahtevi sada šalju eksplicitno zaglavlje
Content-Lengthpored zaglavljaContent-TypeiAccept; WinHttp ga sintetiše iz ukupne dužine, ali neki RFC 3161 proksiji zahtevaju eksplicitno zaglavlje i odbijaju zahtev sa greškom411 Length Requiredbez njega - XFDF izvoz sada odbacuje kontrolne karaktere C0 (osim TAB/LF/CR koji su već izbegnuti) umesto da emituje nevažeću heksadecimalnu sekvencu sa kosom crtom; prethodno izbegavanje
\-01Fnije važeći XML (kosa crta unazad nema posebno značenje u XML-u), pa bi bilo koji usklađeni čitač odbacio dokument kao neispravan InjectAssociatedFilessada upisuje/Subtypeu rečnik toka EmbeddedFile kada pozivalac dostaviTAssociateFile.MIMEType; polje je bilo deklarisano i dokumentovano, ali je injektor ranije hardkodovao/Type /EmbeddedFilei ignorisao ga (ISO 32000-2 §7.11.4 dozvoljava/Subtypena toku)
Ispravljeno (Fixed)
- Uvoz XFDF-a je preskakao prvi bajt sadržaja nakon UTF-8 BOM-a i prvi bajt kada BOM nije bio prisutan: pozivi
BytesToAnsi(Bytes, 4, ...)(BOM) iBytesToAnsi(Bytes, 1, ...)(bez BOM-a) koristili su pomerene početne indekse za jedan jerBytesToAnsiprima indeks niza zasnovan na 0; pozivi sada koriste3i0 ExtractSignatureValueje imao dve greške sa uvlačenjem visećihifnaredbi gde seR.Position:= CNizvršavao bezuslovno za opcione granecertificates [0]isignedAttrs [0]; grane su sada umotane ubegin/endtako da se pozicija pomera samo kada je opcioni TLV zapravo pročitan (ista klasa greške ispravljena uAddSignatureTimestampToCmsu v2.22.0)
Version 2.35.0
Izmenjeno (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailiTFPDFAvail_IsFormAvailsada primajuhints: PFX_DOWNLOADHINTSumestovar hints: FX_DOWNLOADHINTS, tako da je dokumentovani režim samo za upitenullptr(provera trenutne dostupnosti bez zahtevanja više podataka) dostupan iz Delphi-ja; zaglavlje PDFium-a eksplicitno dozvoljava dahintsbude null, što je prethodno povezivanje savarčinilo nemogućimTFPDF_SetSystemFontInfosada primapFontInfo: PFPDF_SYSFONTINFOumestovar pFontInfo: FPDF_SYSFONTINFO, tako da pozivaoci mogu prosleditinilda bi rekli PDFium-u da prestane da koristi prethodno registrovan interfejs sistemskog fonta (dokumentovana putanja za onemogućavanje)TPdfThumbnailView.Paintsada računaVisibleRowspomoću iste formule kao iUpdateScrollBarRange(ClientHeight div RowHeight), tako da se broj iscrtanih redova poklapa sa veličinom stranice trake za pomeranje; prethodna formula samo za iscrtavanje ((ClientHeight - FMarginY) div RowHeight + 1) mogla je da se razlikuje za jedan red na graničnim visinama, trošeći render na red van stranice ili propuštajući poslednji vidljivi red
Version 2.34.0
Dodato (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— API visokog nivoa koji čuva dokument a zatim ga šifruje pomoću PDF 2.0 AES-256-CBC (V=5/R=5/R=6); primaTPdfEncryptOptionssa lozinkom korisnika/vlasnika, dozvolama i revizijom; delegira funkciju naEncryptDocumentBytes- Šifrovanje literalnih stringova StrF:
EncryptDocumentBytessada šifruje literalne stringove(...)u objektima koji nisu tokovi (rečnik Info, itd.) u AES-256-CBC heksadecimalne stringove, usklađujući format sa šifrovanjem toka (16-bajtni IV + PKCS7 šifrovani tekst); heksadecimalni stringovi<...>su ostavljeni netaknuti
Version 2.33.0
Dodato (Added)
- Injektor za šifrovanje celog dokumenta AES-256-CBC u
FPdfEncrypt.pas;EncryptDocumentBytesprima PDF u čistom tekstu i lozinku, šifruje svaki indirektni objekat toka (16-bajtni IV + AES-256-CBC PKCS7 pod ključem datoteke), krpi/Length, dodaje objekat rečnika/Encrypti ponovo gradi kompletnu klasičnu tabelu unakrsnih referenci + trejler sa/Encrypti/ID; upotpunjuje PDF 2.0 stek šifrovanja (AES blok + GCM + SHA-512/384 + R6 izvedeni ključ + rečnik + prolaz kroz dokument) - Pomoćnik
EncryptStreamPayload— PDF 2.0 AES-256 format toka (IV se dodaje na početak AES-CBC-PKCS7 šifrovanog teksta), višekratno upotrebljiv od strane pozivalaca koji sami upravljaju rasporedom svojih objekata
Version 2.32.0
Dodato (Added)
- SHA-512 / SHA-384 heš (FIPS 180-4) u novoj jedinici
FPdfSha512.pas; čist Pascal, prenet iz HotPDF-a; neophodno za iteraciju heša lozinke PDF 2.0 R6, koja se grana na 128-bitnoj mod-3 vrednosti da bi izabrala SHA-256/384/512 u svakom krugu; verifikovano pomoću poznatih odgovora iz FIPS-180-4 B.1 - Izvođenje ključa za šifrovanje PDF 2.0 i graditelj rečnika Encrypt u novoj jedinici
FPdfEncrypt.pas; implementira algoritam 2.B iz ISO 32000-2 §7.6.4.3 (R6 iterativna selekcija: AES-128-CBC + izbor SHA-256/384/512), izvodi 32-bajtni ključ za šifrovanje datoteke plus unose/O,/U,/OE,/UE,/Perms, i gradi V=5/R=5/R=6 rečnik Encrypt sa/CFM /AESV3; preneto iz PDFlibPas-a, prilagođeno stilu TBytes
Version 2.31.0
Dodato (Added)
- Primitive blok šifre AES (FIPS 197) u novoj jedinici
FPdfAes.pas; čiste Pascal blok šifre AES-128 i AES-256, plus pomoćnici za CBC režim i pozadina CSPRNG, prenete iz HotPDF-a; testovi sa poznatim odgovorima iz FIPS-197 Dodatak C.2 / C.3 verifikuju ispravnost; ovo je kriptografska osnova za PDF 2.0 stek šifrovanja - AES-GCM autentifikovano šifrovanje (NIST SP 800-38D) u novoj jedinici
FPdfAesGcm.pas; implementira GHASH (množenje u GF(2^128)), GCTR i konstrukciju GCM AEAD na vrhu primitivnih AES blokova; testovi NIST GCM 1 i 3 (AES-128) se tačno poklapaju sa autoritativnim šifrovanim tekstom i oznakom; test primer 13 (AES-256) uspešno obavlja ceo krug; GCM je režim ISO/TS 32003 za PDF 2.0 - Validacija integriteta ParentTree i ClassMap za PDF/A nivo A (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingoznačava StructTreeRoot bez stabla brojeva /ParentTree;pvaiClassMapUnresolvedoznačava referencu klase /C bez /ClassMap
Version 2.30.0
Dodato (Added)
- Injekcija asociranih datoteka (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); nova jedinicaFPdfAssocFilesprilaže/AFnizove referenci specifikacija datoteka u katalog ili bilo koji rečnik stranice, pokrivajući svih osam vrednosti/AFRelationshipiz ISO 32000-2 Tabela 45; ponovo koristi šablon inkrementalnog ažuriranja dokazan od straneInjectPadesDssMarkers - Podrška za PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancedodajepxc6; injektor i validator to sprovode kroz identifikacijupdfxid:GTS_PDFXVersion; PDF/X-6 je naslednik PDF/X-4 zasnovan na PDF 2.0 za potpunu razmenu - PDF/A zabranjuje radnju
/Thread(nedostatak na beloj listi ISO 19005-1 §6.6.1); lista zabranjenih radnji sada pokriva Thread pored Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition i Hide
Ispravljeno (Fixed)
- Putanja validacije za PDF/A-4e sada poštuje iste provere označene strukture (tagged-structure), MarkInfo i preloma reči kao i nivo A; smanjenje na strani čuvanja u v2.29.0 pokrivalo je
PdfAIsLevelE, ali su tri kapijeValidatePdfAComplianceproveravale samoPdfAIsLevelA, tako da je PDF/A-4e dokument bez označene strukture prolazio tiho - Odstupanje testa OCG
/BaseState: prolaz PostProcess u v2.28.0 je ispravno proširio prihvatanje na/ONili/OFF(ISO 32000-1 Tabela 8.70), ali su testovi za Delphi i C++ i dalje očekivali da/OFFbude odbijeno; testovi sada koriste zaista nevažeću vrednost (/Undefined) i novi pozitivni test zaključava prihvatanje/OFF - Prekomerno podudaranje geoprostornog
/Subtype /GEO:ContainsDictionarySubtype('GEO')je odgovaralo bilo kom rečniku koji nosi token, uključujući nepovezane kao što je zalutali/ViewerPreferences << /Subtype /GEO >>; novi metodContainsMeasureDictionarySubtypedodatno zahteva/Type /Measureili srodni ključ ekskluzivan za meru, tako da rečnici koji nisu mere više ne pokreću zahtev za ADBE ExtensionLevel 3
Version 2.29.0
Dodato (Added)
- Podrška za PDF/A-4 (ISO 19005-4:2020) u validatoru, XMP injektoru i sloju modela objekata Pdfium;
TPdfAConformancedodajepac4base,pac4fipac4e; osnovni nivo je PDF 2.0 (ISO 32000-2) i zamenjuje nasleđene nivoe A/B/U sa osnovnim nivoom + F (obrazac) + E (pristupačnost);ValidatePdfAčitapdfaid:part=4XMP paket (baza izostavlja element usaglašenosti),SaveAsPdfAga emituje, aSignPadesWithPdfAprihvatapac4basekao kontejner za dugoročnu arhivu - Povezivanje
FPDFBookmark_GetColor— poslednji nepovezani javni izvoz PDFium-a (469/469);TBookmarkdobija poljaHasColoriColorpopunjena iz niza obeleživača/C(ISO 32000-1 §12.3.3); povezivanje koristi tolerantno učitavanje tako da stariji DLL-ovi koji prethode izvozu nastavljaju da rade - Provera verzije zaglavlja PDF/E-1 (ISO 24517-1 §5)
pveiBadPdfVersion— PDF/E-1 je zasnovan na PDF 1.6 i zaglavlje koje nije 1.6 se sada označava - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— šifrovanje je dozvoljeno samo na%PDF-2.0zaglavlju; telo verzije 1.x koje nosi/Encryptse sada označava (prethodno naredba bez efekta) - PDF/R-1
pvriBadMediaBox—MediaBoxsvake stranice mora biti[0 0 w h];PdfRHasNonZeroMediaBoxOriginje ASCII skener nezavisan od lokaliteta koji preskače MediaBoxes sa indirektnom referencom - PDF/A nivo A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — prisutan ali nepotpun RoleMap koji ostavlja prilagođene/Stipove strukture nemapirane se sada označava, zatvarajući prazninu koju je ostavila postojeća proverapvaiRoleMapMissingkoja samo potvrđuje prisustvo
Ispravljeno (Fixed)
PdfVersionToName(20)je vraćao"1.0"umesto"2.0", kvareći unos kataloga/Versioni poruke validatora za svako čuvanje PDF 2.0; formater sada eksplicitno deli major.minor za kodove verzija>= 20- Koder negativnih INTEGER-a u
FPdfAsn1.pasnije uspeo da se kompajlira pod Delphi 12 (greškaE2015naInteger(-(V<0))), blokirajući ceo test projekat; ispravljeno korišćenjemInt64(-Ord(V<0))za masku proširenja znaka - Lista zabranjenih anotacija za PDF/A sada uključuje
/RichMediau svim delovima (prethodno propušteno; ISO 32000-1 §12.5.6.35 ga zabranjuje u PDF/A)
Version 2.28.0
Dodato (Added)
TPdfVersionsada uključujepv20za PDF 2.0 (ISO 32000-2);DecodePdfVersion(20)vraćapv20umestopvUnknown, aEncodePdfVersion(pv20)emituje 20, tako da se verzija PDF 2.0 dokumenta više ne gubi pri ponovnom čitanju i može se eksplicitno upisati
Izmenjeno (Changed)
DecodeDatesada parsira PDF stringove datuma sa opcionim pratećim poljima prema PDF Reference 3.8.3, umesto da zahteva puni format od 23 karakteraD:YYYYMMDDHHmmSSOHH'mm'; usaglašeni skraćeni datumi kao što suD:20260712,D:20260712153000iD:20260712153000Zsu sada prihvaćeni, dok su ranije bili odbijeni strogim filteromLength=23; vremenska razlika u satima vremenske zone se sada validira u odnosu na stvarni opseg UTC-12..UTC+14 umesto> 23FPdfMeasure.MeasureTextsada kodira naziv fonta kao FPCAnsiString/ DelphiUTF8Encode, usklađujući se sa ostalim FPDF_BYTESTRING mestima poziva u biblioteci, umesto jednostavnog kastinga uAnsiStringkoji je kvario ne-ASCII nazive porodica fontova kroz trenutnu kodnu stranicu
Ispravljeno (Fixed)
- Putanja negativne vrednosti za
TDerWriter.Integerje pucala ili proizvodila neispravan DER: petljawhile V <> -1 do V := V shr 8ostavljala jeInnerpraznim zaValue = -1(greška opsega na naknadnomInner[Length(Inner)-1]) i proizvodila višak bajtova za druge negativne vrednosti; koder sada izvlači bajtove dvostrukog komplementa sa pomeranjima koja proširuju znak i zaustavlja se ispravno kada je ostatak čisto proširenje znaka; polja CMS/PAdES INTEGER su pozitivna, tako da ovo utiče samo na pozivaoce koji prosleđuju negativne vrednosti, ali je putanja sada ispravna TPdf.GetCharacterOriginiTPdfView.GetCharacterOriginsu ignorisali povratnu vrednostFPDFText_GetCharOrigini vraćali neinicijalizovanu tačku u slučaju neuspeha; rezultat je sada inicijalizovan na nulu, a neuspešno čitanje vraća koordinatni početak (prateći ugovor zaGetCharacterRectangle)
Version 2.27.0
Izmenjeno (Changed)
- Viewer demonstracije obrađuju pretragu,
Enter/F3i otkazivanje saEsc - Štampanje prati rotaciju viewera
Ispravljeno (Fixed)
- Otkazivanje štampe zaustavlja zadatak štampača
Version 2.26.0
Izmenjeno (Changed)
- Bitmap metode koriste render lock oko PDFium poziva
RenderPageThumbnailpoštuje/Rotate
Ispravljeno (Fixed)
GetCharacterRectanglevraćaRect(0,0,0,0)pri grešci
Version 2.25.0
Izmenjeno (Changed)
- Metode uređivanja poništavaju keš teksta i linkova
RenderPage(HDC, ...)koristi lock i maskira FPU/SSE
Ispravljeno (Fixed)
- Kodne tačke iznad U+FFFF vraćaju U+FFFD
TPdf.DestroybrišePassword
Version 2.24.0
Dodato (Added)
- Indeksi se proveravaju i izazivaju
EPdfErrorvan opsega
Ispravljeno (Fixed)
- Ispravljena su curenja page-object i nedostatak
UpdatePage
Version 2.23.0
Ispravljeno (Fixed)
- Validacije prihvataju dozvoljene
/OFFi/Design - Geospatial Measure više ne zahteva
/Type /Measure
Version 2.22.0
Izmenjeno (Changed)
- Fit zoom koristi
ClientWidth/ClientHeight AddSignatureTimestampToCmsizaziva eksplicitniException
Ispravljeno (Fixed)
- CNG handle se oslobađa pomoću
NCryptFreeObject EcDsaP1363ToDerodbija nuler/s
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.5–PDF 1.7 sada odbija loše formatirane strukture kataloga
/OCProperties, uključujući nedostajuće potrebne unose/OCGsili/D, nevažeće podrazumevane vrednosti konfiguracije i unose stanja koji nisu nizovi
Version 2.21.12
Ispravljeno (Fixed)
- Čuvanje PDF 1.5 do PDF 1.7 sada odbija neispravne strukture
/OCProperties
Version 2.21.11
Ispravljeno (Fixed)
- Eksplicitno čuvanje verzije PDF sada odbija direktne ili indirektne unose stranice
/Annotsčiji rečnici anotacija izostavljaju potrebni unos/Subtypeili/Rect
Version 2.21.10
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.7 sada zahteva da geoprostorni rečnici
/Type /Measure /Subtype /GEOi anotacije Projection deklarišu/Extensions /ADBEsa/BaseVersion /1.7i/ExtensionLevel 3ili novijim
Version 2.21.9
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.7 sada zahteva da RichMedia anotacije i radnje
RichMediaExecutedeklarišu/Extensions /ADBEsa/BaseVersion /1.7i/ExtensionLevel 3ili novijim
Version 2.21.8
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.7 sada zahteva da PRC 3D tokovi deklarišu
/Extensions /ADBEsa/BaseVersion /1.7i/ExtensionLevel 1ili novijim, umesto da se PRC tretira kao osnovna funkcija PDF 1.7
Version 2.21.7
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.4 i starijim verzijama sada odbija unose XObject slike
/SMaskInData, uključujući eksplicitnu vrednost0, jer ugrađeni kanali meke maske JPEG 2000 zahtevaju PDF 1.5 ili noviji
Version 2.21.6
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.4 i starijim verzijama sada odbija 16-bitne XObject slike koje zahtevaju PDF 1.5 ili noviji, dok ciljevi PDF 1.5–PDF 1.7 zadržavaju podatke slike
/BitsPerComponent 16
Version 2.21.5
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.4 i starijim verzijama sada odbija vrednosti
/PageLayout /TwoPageLefti/TwoPageRightkataloga dokumenta koje zahtevaju PDF 1.5 ili noviji, dok ciljevi PDF 1.5–PDF 1.7 zadržavaju zahtevani dvostruki raspored stranica
Version 2.21.4
Ispravljeno (Fixed)
- Eksplicitno čuvanje u PDF 1.3 sada odbija unose
/Langkataloga dokumenta koji zahtevaju PDF 1.4 ili noviji, dok ciljevi PDF 1.4–PDF 1.7 zadržavaju identifikator jezika
Version 2.21.3
Popravljeno (Fixed)
- Eksplicitna čuvanja PDF 1.3 sada odbijaju stabla imena
/EmbeddedFilesu dokumentu koja zahtevaju PDF 1.4 ili noviji, bez odbijanja tokova ugrađenih datoteka na koje se upućuje putem starijih specifikacija datoteka
Version 2.21.2
Popravljeno (Fixed)
- Poslednja verzija: 2.21.4; Datum izdavanja:
Version 2.21.1
Popravljeno (Fixed)
- Validacija hibridnih referenci sada primenjuje dopunske unose
/XRefStmpre klasičnih xref-zamenika iz iste revizije, tako da komprimovane beleške i drugi objekti ograničeni verzijom više nisu preskočeni kada ih tabela kompatibilnosti označi kao slobodne
Version 2.21.0
Promenjeno (Changed)
- Svi primeri pregledavača Delphi, C++Builder i Lazarus mogu otvoriti PDF prosleđen kao prvi argument komandne linije, a primeri
MultiPageViewerza C++Builder i Lazarus pružaju eksplicitne prečice za izbor svega i kopiranje
Popravljeno (Fixed)
- Poslednja verzija: 2.21.12; Datum izdavanja:
Version 2.20.0
Promenjeno (Changed)
- Svi primeri pregledavača Delphi, C++Builder i Lazarus sada pružaju dosledne prečice za otvaranje, pretragu, čuvanje, štampanje, zumiranje i navigaciju stranicama, a svaka varijanta
ViewerInteractionLabtakođe podržava skokove na stranice, validiran ručni zum 10–600%, trajne dnevnike interakcija i provere povratne putanje koordinata klika
Version 2.19.1
Popravljeno (Fixed)
- Eksplicitna validacija verzije PDF-a sada prati aktivni lanac revizija klasičnog, hibridnog ili xref-stream formata, uključujući unose komprimovanih objekata, tako da zastareli, oslobođeni i nereferenciran objekti više ne izazivaju lažne greške verzije funkcije
Version 2.19.0
Promenjeno (Changed)
- Primeri privitaka, ekstrakcije slika, ekstrakcije teksta, konverzije stranica i deljenja za C++Builder i Lazarus sada koriste namenske izlazne fascikle ili bezbedno finalizovane datoteke, stabilna imena sa nultim dopunjavanjem, odzivna ažuriranja napretka i sažetke završetka sa brojevima grešaka po stavki
Popravljeno (Fixed)
CJKTextLabza C++Builder sada meri tekst putem izvezenih funkcija za uređivanje PDFium-a, aMergePDFizbegava dvosmisleno preopterećenje poruke VCL, čime obnavlja čiste izgradnje u RAD Studio 37
Version 2.18.3
Popravljeno (Fixed)
- Vremenski pečat dokumenta PAdES B-LTA Document Time-stamp je sada registrovan kao otkrivljivo polje potpisa — nevidljivi Widget dostupan putem
/Annotsprve stranice i/FieldsAcroForm-a (ETSI EN 319 142-1 §5.4.3) — umesto kao nedostupan sirotinjski objekat koji validatori koji nabrajaju polja potpisa nisu mogli pronaći; postojeće beleške i polja su sačuvana
Version 2.18.2
Popravljeno (Fixed)
- Potpisivanje PAdES i klasično pisanje unakrsnih referenci sada pokreću jasnu grešku kada pomeraj bajtova prekorači fiksnu širinu polja od 10 cifara (~9,3 GB), umesto tihog ostavljanja neupisanog zamenika
/ByteRange(što proizvodi nevažeći potpis) ili prekoračenja 20-bajtnog reda xref (ISO 32000-1 §7.5.4); izlaz toka unakrsnih referenci koristi 8-bajtna binarna polja i nije pogođen
Version 2.18.1
Popravljeno (Fixed)
- Potpisivanje PAdES sada razrešava indirektne reference na
/Annots,/AcroFormi/Fieldsprve stranice putem kompletnog zaglavlja objekta (ISO 32000-1 §7.5.3) i stvarnog generacionog broja reference; prethodno jednostavno pretraživanje podniske podudaralo je broj objekta unutar dužeg (razrešavanjem5 0 Rna15 0 obj), a tvrdo kodirana generacija preskočila je objekte sagen>0, čime je kvarila matrice polja potpisa ili odbijala važeće dokumente - Kada katalog, prva stranica,
/Annots,/AcroFormili/Fieldsboravi unutar toka objekata, potpisivanje sada ponovo pokušava na proširenoj kopiji pre neuspeha umesto direktnog odbijanja dokumenta
Version 2.18.0
Dodato (Added)
ReadPdfVersionInfoizveštava o verziji zaglavlja, efektivnoj osnovnoj verziji, prepisivanju kataloga i nivou proširenja Adobe programera iz PDF toka
Promenjeno (Changed)
- Eksplicitna čuvanja PDF 1.3–1.7 sada validiraju strukture kataloga, resursa stranice, XFA, redakcije i proširenja programera u kontekstu vlasničkog objekta; šifrovani eksplicitni izlaz s verzijom i inkrementalna normalizacija PDF 1.3 odbijaju se radi očuvanja integriteta dokumenta
- Čuvanja putanje datoteke sada upisuju u susednu privremenu datoteku i zamenjuju cilj tek nakon uspešnog završetka svih provera kompresije, normalizacije i verzije
Popravljeno (Fixed)
- Izlaz PDF 1.3 sada nosi traženi puni resurs
/ProcSeti uklanja ključeve transparentnosti PDF 1.4 kada samo ponavljaju početne vrednosti grafičkog stanja PDF 1.3 - Datoteke sa hibridnim referencama, xref-stream i object-stream više ne prepisuje klasični kompresor xref, čime se sprečava ispuštanje unosa komprimovanih objekata
- Imena koja podsećaju na ključeve transparentnosti ili funkcija kataloga unutar niski, komentara ili nepovezanih mapa resursa više ne izazivaju lažne greške ciljne verzije
Version 2.17.0
Dodato (Added)
- Potpisi PAdES su sada registrovani kao nevidljive beleške Widget u polju
/Annotsprve stranice i u polju/FieldsAcroForm-a, pri čemu se čuvaju postojeće beleške i polja obrasca
Promenjeno (Changed)
- Inkrementalna ažuriranja PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT i PAdES sada čuvaju reprezentaciju unakrsnih referenci izvornog dokumenta: dokumenti xref-stream dobijaju ažuriranje xref-stream kako zahteva ISO 32000-1 §7.5.8.1, dok klasični dokumenti i dalje dobijaju tabelu xref
- Pomeraji unakrsnih referenci,
startxref,/Prev, vrednosti PAdES ByteRange i obrada opsega SHA-256 sada koriste 64-bitne pozicije sa razlomljenim heširanjem, što omogućava datoteke veće od 2 GB u 64-bitnim izgradnjama - Generisani paketi XMP koji se mogu pisati sada rezervišu 2048 bajtova punjenja pre završne instrukcije paketa
Version 2.16.10
Popravljeno (Fixed)
- Proširenje object-stream više ne obnavlja zastarele kopije objekata koje je inkrementalno ažuriranje premestilo iz toka objekata u normalnu definiciju (ISO 32000-1 §7.5.7); provere usklađenosti i ubacivanje oznaka prethodno su razrešavali zastareli katalog ili rečnik metapodataka u takvim datotekama
Version 2.16.9
Popravljeno (Fixed)
- U Free Pascal-u, tekstualne niske čiji ulaz nije važeći UTF-8 proširuju se bajt po bajt kao Latin-1 i upisuju se kao heksadecimalne niske UTF-16BE; prethodno su sirovi visoki bajtovi curili u literalnu nisku, što nije zakonito kodiranje tekstualne niske PDF 1.7
- Dekodiranje toka sada prepoznaje sirove deflate podatke bez RFC 1950 zlib omotača (česta greška neispravnih pisaca) i dekomprimuje ih u sirovom režimu, tako da provere usklađenosti više ne ostaju tiho slepe na takvim tokovima
Version 2.16.8
Popravljeno (Fixed)
- Inkrementalna ažuriranja upisana putanjom post-procesiranja čuvanja sada osvežavaju drugi (promenljivi) element trailera
/IDkako zahteva ISO 32000-1 §14.4; oba elementa prethodno su kopirana doslovno, tako da su alati za keširanje i sinhronizaciju posle svakog ažuriranja videli nepromenjen identifikator
Version 2.16.7
Popravljeno (Fixed)
- Brisanje tela toka koje koriste provere usklađenosti sada zahteva da posle ključne reči
streamsledi kraj reda (ISO 32000-1 §7.3.8.1); reč unutar literalne niske kao što je(downstream)prethodno je brisala svu narednu strukturu do sledećegendstream, čime je skrivala stvarna kršenja od provera na nivou bajtova - Provere zabranjenih funkcija PDF/X i PDF/E dodatno brišu literalne niske i komentare (§7.2.2), tako da vrednost kao što je
/Title (see /JavaScript docs)ili komentiran token više ne proizvodi lažno pronalaženjeJavaScript,AcroFormiliLZWDecode
Version 2.16.6
Popravljeno (Fixed)
- Unosi DPM PDF/VT sada se validiraju pri upisivanju prema dokumentaciji: nazivi ključeva koji krše pravilo NMTOKEN ISO 16612-2 §6.6 ili pravilo prefiksa registranta iz Dodatka E i duplikati se odbijaju umesto upisivanja u rečnik DPart — naziv koji sadrži razmak prethodno se delio u lažni par ključ/vrednost i kvarao rečnik
Version 2.16.5
Popravljeno (Fixed)
- Brisanje unosa rečnika čija je vrednost heksadecimalna niska (npr.
/Check <...>) sada briše ceo unos; ubacivači su prethodno ostavljali za sobom napuštenu heksadecimalnu vrednost, što je proizvelo sintaksički oštećen rečnik - Brisanje unosa čija indirektna referenca koristi nove redove između tokena (ISO 32000-1 §7.3.10 dozvoljava proizvoljni prazan prostor) više ne ostavlja generacijski broj i ključnu reč
R
Version 2.16.4
Popravljeno (Fixed)
- Skeniranje maksimalnog broja objekta više ne zahteva da zaglavlja objekata počinju red (ISO 32000-1 §7.5.3 dozvoljava proizvoljni prazan prostor ili razgraničivač pre njih), tako da ubacivači više ne mogu dodeliti broj objekta koji se sudara s ugrađenim zaglavljem
N G obji tiho kvari datoteku; brojevi objekata su ograničeni gornjom granicom iz Dodatka C - Tokovi čiji je
/Lengthindirektna referenca sada razrešavaju referencirani celobrojni objekat i koriste njegovu vrednost kada se poklapa s finalnimendstream; takvi tokovi prethodno su bili ograničeni pretraživanjem uzorka koji je skraćivao tela koja zakonito sadrže bajt-sekvencuendstream— tipično za ugrađene PDF-privitke
Version 2.16.3
Popravljeno (Fixed)
- Prelazi kompresije toka prenose dokumente sa tokom unakrsnih referenci (PDF 1.5+ datoteke bez klasične ključne reči
trailer) nepromenjene; putanja rekonstrukcije prethodno je pogrešno parsiralastartxrefkao lokaciju tabele i sintetizovala procenjeni trailer, što je moglo da proizvede datoteku koja se ne može otvoriti - Kompresor preskače tokove metapodataka XMP, tako da PDF/A dokument čuva obavezni nefiltriran tok metapodataka (ISO 19005-1 §6.7.2), i ostavlja netaknute spoljne tokove datoteka (
/Fsa/FFilter) - Rekonstruisana tabela unakrsnih referenci skenira kopiju dokumenta bez tokova, tako da binarni sadržaj tokova više ne može falsifikovati zaglavlja objekata ili naduvavati tabelu;
/Sizerekonstruisanog trailera sada odražava stvarnu tabelu i brojevi objekata su ograničeni gornjom granicom iz Dodatka C - Pretraga originalne tabele unakrsnih referenci prihvata CR-jedino krajeve redova (ISO 32000-1 §7.5.1) i više ne može podudarati slova
xrefunutarstartxref; skeniranje ključnih reči toka dobilo je isti zaštitni mehanizam repaendstreamkoji se koristi drugde i sada napreduje pored preskočenih tela tokova
Version 2.16.2
Popravljeno (Fixed)
- Parsiranje celih brojeva u čitačima PDF-a na nivou bajtova sada prihvata eksplicitni znak
+koji dozvoljava ISO 32000-1 §7.3.3 i odbija sekvence cifara koje bi prekoračile, tako da neprijateljski ili oštećeni dokumenti više ne mogu umotati parsiranu dužinu i pomake u obmanjujuće vrednosti
Version 2.16.1
Popravljeno (Fixed)
- Ubacivač PDF/UA upisuje vrednost kataloga
/Langkao ispravan tekstualni niz PDF-a; prethodno je vrednost prolazila kroz XML-escapovač, tako da je jezička oznaka koja sadrži&ili zagrade producirala oštećen unos, a ne-ASCII ulaz je upisan kao sirovi UTF-8 - Unos Info PDF/E
/ISO_PDFEVersionkoristi deljeni koder tekstualnih niski, čime održava ne-ASCII vrednosti zakonitim u PDF 1.7 - XML-escapovanje za XMP pakete odbacuje kontrolne karaktere koji su nezakoniti u XML 1.0, tako da metapodaci kopirani iz oštećenog izvornog dokumenta više ne mogu uzrokovati da ceo tok metapodataka bude neispravno formatiran
- Konverzija datuma PDF-u-XMP verifikuje da su polja datuma numerička i dopunjuje nedostajuće polje minuta, čime sprečava neispravno formatirane ISO 8601 datume u generisanom XMP; na platformama koje nisu Windows rezervna vremenska oznaka sada uključuje i vreme dana umesto samog datuma
Version 2.16.0
Dodato (Added)
- Dekodiranje toka sada rekonstruiše prediktore
/DecodeParms(PNG prediktori 10–15 i TIFF prediktor 2, ISO 32000-1 §7.4.4.4) posle FlateDecode, poštujući/Colors,/BitsPerComponenti/Columns; tokovi objekata komprimovani s prediktorom — uobičajen izbor pisca PDF 1.5+ — prethodno su prikazivali diferencirane bajtove, tako da su objekti koje nose bili tiho nevidljivi za provere usklađenosti i ubacivanje oznaka
Popravljeno (Fixed)
- Detekcija FlateDecode sada parsira vrednost
/Filterkao ime ili niz umesto podudarne niske, tako da kaskadni lanci filtera i pojavljivanja reči u nepovezanim vrednostima više ne pokreću lažno naduvavanje; nepodržani lanci vraćaju se na sirove bajtove kao pre
Version 2.15.1
Popravljeno (Fixed)
- Skener rečnika sada preskače literalne niske, heksadecimalne niske i komentare pri balansiranju
<</>>(ISO 32000-1 §7.2.2), tako da rečnici koji sadrže vrednosti kao što je(A >> B)ili heksadecimalna niska pored zaključnog razgraničivača više nisu skraćivani tokom parsiranja trailera, kataloga i provera usklađenosti - Ekstrakcija literalnih niski sada dekodira kompletan escapovani skup §7.3.4.2 Tabela 3 —
\n \r \t \b \f, oktalnih\ddd, nastavljanja redova i normalizacije EOL bez escapovanja — umesto doslovnog kopiranja escapovanog karaktera, čime obnavlja ispravne poređenja/Producer,/GTS_PDFXVersioni/ISO_PDFEVersionza pisace koji koriste oktalno escapovanje - Literalne niske upisane ubacivačima oznaka sada escapuju CR, LF i druge kontrolne karaktere, tako da vrednosti preживе EOL normalizaciju na strani čitača bajt po bajt
Version 2.15.0
Popravljeno (Fixed)
- Inkrementalna ažuriranja upisana ubacivačima oznaka PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA i PDF/VT i putanjama potpisivanja PAdES i DSS sada čuvaju trajni identifikator datoteke izvornog dokumenta: prvi element
/IDtrailera prenosi se doslovno kako zahteva ISO 32000-1 §14.4 i samo drugi (promenljivi) element se osvežava; prethodno su oba elementa bila regenerisana, tako da su spoljne reference i tokovi rada dugoročne validacije posle svakog čuvanja videli drugačiji identitet dokumenta - Potpisi PAdES, ubacivanje DSS i Document Time-stamp B-LTA sada prenose referencu
/Infoiz izvornog trailera (ISO 32000-1 §7.5.6), tako da svojstva dokumenta više ne nestaju iz panela čitača posle potpisivanja; trailer Document Time-stamp takođe dobija polje/ID - Rezervni mehanizam trailera
/Infoza dokumente sa tokom unakrsnih referenci sada ispravno locira rečnik toka XRef i čuva generacijski broj reference; prethodno se nikada nije poklapao u usklađenim PDF 1.5+ datotekama, tihо ispuštajući/Info
Version 2.14.4
Popravljeno (Fixed)
- Datum
/Mrečnika potpisa upisan od straneTPdf.SignPadesiSignPadesBytessada nosi obavezni prefiksD:i marker UTC pomakaZkoji zahteva ISO 32000-1 §7.9.4; strogi validatori prethodno su odbijali vreme potpisivanja kao neispravno formatiranu nisku datuma
Version 2.14.3
Popravljeno (Fixed)
- Pretraga ključeva rečnika u deljenom čitaču PDF-a sada odgovara celim tokenima naziva (ISO 32000-1 §7.3.5); prethodno je tok čiji je rečnik navodio
/Length1pre/Length(tipično za tokove FontFile) bio skraćivan na pogrešan broj bajtova, što je tiho zaslepljivalo provere PDF/A, PDF/UA i druge provere usklađenosti koje čitaju tokove fontova, CMap ili metapodataka - Pretrage ključeva trailera
/Encrypt,/Root,/Sizei/Infoviše ne odgovaraju dužim ključevima koji dele isti prefiks (npr./EncryptMetadata) - Proširenje object-stream više ne veruje oštećenoj ili neprijateljskoj vrednosti
/N: vrednosti koje nisu celi brojevi sada daju 0 umesto neinicijalizovanog broja, a gornja granica izvedena iz/Firstsprečava prekomerne alokacije pri skeniranju neispravno formatiranih dokumenata
Version 2.14.2
Popravljeno (Fixed)
- Ubacivači oznaka PDF/X, PDF/VT, PDF/UA, PDF/E i PDF/R sada kopiraju šifrovane izvorne dokumente nepromenjene umesto dodavanja sekcija ažuriranja u čistom tekstu; prethodno ponašanje produciralo je datoteke čiji najnoviji trailer je izgubio unos
/Encrypt(ISO 32000-1 §7.5.6), tako da su usklađeni čitači čitali šifrovano telo kao čisti tekst TPdf.SignPades,SignPadesBytesiInjectPadesDssMarkerssada pokrećuEPadesCryptokada je izvorni dokument šifrovan, umesto tihog emitovanja oštećene ili neproverjive datoteke; uklonite šifrovanje pre potpisivanja ili ubacivanja DSS materijala
Version 2.14.1
Popravljeno (Fixed)
TPdf.SignPadesiSignPadesBytessada retroaktivno popunjavaju sva četiri polja/ByteRangerečnika potpisa; prethodno su poslednja tri polja ostajala pri nultim zamenicima, tako da su generisani potpisi deklarisali prazan opseg bajtova i nisu uspevali pri verifikaciji u usklađenim validatorima- Rečnici Document Time-stamp PAdES B-LTA dobijaju istu popravku retroaktivnog popunjavanja
/ByteRange ValidatePadesCompliancesada prihvata standardni raspored potpisa gde praznina u opsegu bajtova sadrži heksadecimalnu vrednost/Contents, i verifikuje da drugi segment opsega završava tačno na kraju datoteke; prethodno su proveru pokrivenosti prolazili samo opsezi bez praznina
Version 2.14.0
Dodato (Added)
TPdf.ExportXFDFserijalizuje svaku vrednost polja obrasca i belešku kroz sve stranice u XFDF dokument (ISO 19444-1), emitujući<fields>za hijerarhijske vrednosti obrasca i<annots>za sve podržane podtipove beleški (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact)TPdf.ImportXFDFučitava XFDF dokument nazad u učitani PDF, ponovo kreira beleške na odgovarajućim stranicama i primenjuje vrednosti polja na njihove Widget widgete- Zapis
TPdfAnnotationdobio jeName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), krajnje tačke linije, temena poligona/polilinije i polja gestova ink-liste, tako da XFDF krugovi čuvaju kompletne metapodatke beleški - Novi primer
XfdfLabu demo kompletima Delphi, C++Builder i Lazarus demonstrira krug izvoz/uvoz
Version 2.13.6
Popravljeno (Fixed)
ValidatePdfAsada tretira tokove/Metadatakataloga bez/Type /Metadataili/Subtype /XMLkao nedostajuće XMP metapodatke putempvaiMissingXmpMetadata- Izveštaji predbežne provere PDF/A sada klasifikuju
pvaiMissingXmpMetadatakao Metapodatke i preporučuju tok/Metadatakataloga sa/Type /Metadata,/Subtype /XML, nefiltriranim XMP i oznakamapdfaid
Version 2.13.5
Popravljeno (Fixed)
ValidatePdfAsada izveštava o beleškama Widget bez rečnika izgleda i beleškama PDF/A-2 / PDF/A-3 koje zahtevaju, ali nemaju/AP, putempvaiAnnotationApDictViolation- Izveštaji predbežne provere PDF/A sada klasifikuju
pvaiAnnotationApDictViolationkao sadržaj koji ubacivanje oznaka ne može da ispravi
Version 2.13.4
Popravljeno (Fixed)
ValidatePdfAsada izveštava o ugrađenim slikama PDF/A-2 i PDF/A-3 čija vrednost/Iili/Interpolatejetrue, putempvaiImageDictionaryViolation, što odgovara postojećem pokriću rečnika XObject Image- Izveštaji predbežne provere PDF/A sada klasifikuju
pvaiImageDictionaryViolationkao sadržaj koji ubacivanje oznaka ne može da ispravi
Version 2.13.3
Popravljeno (Fixed)
ValidatePdfAsada izveštava o ugrađenim slikama PDF/A-1 koje koriste filtere/LZWDecodeili skraćeni/LZWunutar tokova sadržaja, putempvaiInlineImageLzwForbidden, što odgovara postojećem pokriću ugrađenih slika PDF/A-2 i PDF/A-3- Skener filtera ugrađenih slika sada napreduje pored uvodnih naziva resursa kao što je
/GS1, čime izbegava zastoje pri skeniranju širih tokova sadržaja PDF/A-1
Version 2.13.2
Dodato (Added)
TPdf.SetFocusedFormFieldTextupisuje tekst u bafer za uređivanje trenutno fokusiranog polja obrasca putemFORM_ReplaceSelection, simetrično saFocusedFormFieldText. Za text/combo polja AcroForm vrednost se potvrđuje u/Vpri gubitku fokusa i traje; za tekstualna polja XFA upis dolazi samo u bafer u memoriji (PDFium ne izlaže javni API za usklađivanje vrednosti XFA nazad u paket skupova podataka, tako da ne traje kroz čuvanje)- Host platforma JavaScript sada se priključuje svaki put kada je V8 motor dostupan, bez obzira na to da li je dokument XFA — tako da ugrađeni JavaScript AcroForm (skripte na nivou dokumenta, izračunavanja polja,
app.alert) takođe može da se izvršava. Prethodno jem_pJsPlatformbio priključen samo za XFA dokumente, dok je JS AcroForm bio tiho onemogućen
Promenjeno (Changed)
- Priključivanje platforme JavaScript sada je nezavisno od XFA odluke u
InitializeFormFill— tabelam_pJsPlatformse gradi svaki put kada jeV8FeaturesAvailabletačno, primenjuje se posle žičnog povezivanja XFA verzije/povratnog poziva, a ne ugneždena unutar njega
Version 2.13.1
Dodato (Added)
- Novi host događaji surfuju informacije koje su povratni pozivi popunjavanja obrazaca v2.13.0 prethodno gutali:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Svaki događaj po defaultu ima postojeće no-op ponašanje kada nije dodeljen, tako da postojeće host aplikacije nisu pogođene - Svojstvo samo za čitanje
TPdf.XfaFormPacketsvraća jednokratni snimak svih XFA paketa (TXfaPacketList), čime ispunjava tipoveTXfaPacket/TXfaPacketListprethodno deklarisane ali nekorišćene - Kodovi grešaka PDFium specifični za XFA
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTsada su vezani i surfovani putemLastPdfError, čime zamenjuju generičku grešku "Unknown error" za greške učitavanja/rasporeda XFA
Promenjeno (Changed)
FFI_DoURIActionWithKeyboardModifiersada konsultujeOnXfaUriActionpre izvršavanja URI-ja iz XFA polja, čime daje hostu pravo veta (bezbednost: zlonameran XFA polje prethodno mogao bezuslovno pokrenuti proizvoljne URL-ove). Nedodeljeni rukovaoci čuvaju prethodni podrazumevaniShellExecuteWDecodeFormFieldTypesada usmerava tipove XFA polja putemIsXfaFormFieldumesto eksplicitnog case bloka sa 8 grana, čime održava enum poravnan saFPDF_FORMFIELD_XFA_*po ordinalnom ofsetu
Popravljeno (Fixed)
ValidatePdfAsada izveštava o deklaracijama PDF/A-1 koje koriste PDF 1.5 tokove unakrsnih referenci ili tokove objekata sa novim problemompvaiPdfA1Pdf15Structure, nastavljajući da dozvoljava tokove objekata za PDF/A-2 i PDF/A-3
Version 2.13.0
Dodato (Added)
- Puna podrška izvršavanja XFA (XML Forms Architecture):
TPdf.InitializeFormFillsada žično povezuje svih 14 povratnih pozivaFPDF_FORMFILLINFOverzije 2 (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 prilažeIPDF_JsPlatform, tako da XFA-omogućenipdfium.dllmože da renderuje i skriptira dinamičke XFA obrasce - Nova jedinica
Lib\FPdfXfa.paskoja deklariše XFA konstante (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) i tipoveTXfaPacket/TXfaSaveFormatkoji su prethodno bili referencirani samo u komentarima - Statički čitač XFA paketa na
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplusGetXfaTemplate/GetXfaDatasets/GetXfaConfigekstrahuju XFA paketetemplate,datasetsiconfigkao sirovi XML bez potrebe za XFA-omogućenim izvršavanjem — korisno za reviziju usklađenosti i migraciju podataka - Probe sposobnosti: globalni
XfaFeaturesAvailablei po-dokumentuTPdf.XfaRuntimeAvailable(da li jeFPDF_LoadXFAzapravo uspeo) iTPdf.XfaStaticReadable(da li se izvozi čitača paketa razrešavaju) TPdfFormFieldTypeproširen safiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, pri čemuDecodeFormFieldTypemapira nove vrednostiFPDF_FORMFIELD_XFA_*- Host JavaScript događaji na
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrliOnXfaRuntimeMissingomogućavaju hostu prilagođavanje JS dijaloga i XFA navigacije ili reagovanje kada XFA dokument ne može da pokrene motor - Novi primer Delphi
XfaLabkoji demonstrira detekciju XFA, ekstrakciju paketa, sondiranje sposobnosti i rezervnu putanju nedostajućeg izvršavanja
Promenjeno (Changed)
TPdf.LoadDocumentsada prethodno skenira ulaz na XFA markere (/XFAu rečniku AcroForm ili katalog/NeedsRendering) i po pronalasku automatski birapdfium.v8.dllpostavljanjemEnableV8Engine := Truepre prvog učitavanja singleton biblioteke; jednom kada je učitan običnipdfium.dll, proces ne može da se prebaci, tako daOnXfaRuntimeMissingsignalizuje taj slučajTPdf.GetPageCountsada odražava broj stranica koje XFA motor prijavljuje putemFFI_PageEventposle dinamičke paginacije, a ne samo statičko stablo stranica PDF-a- Kada je XFA dokument otvoren ali izvršavanje nije dostupno,
InitializeFormFillsada prikačujeversion=1ixfa_disabled=1umesto traženja verzije 2 sa nepriključenim povratnim pozivima, što je prethodno riziralo dereferenciranje lošeg pokazivača povratnog poziva
Version 2.12.2
Popravljeno (Fixed)
ValidatePdfACompliancesada izveštava o korišćenim prilagođenim XMP imenskim prostorima bezpdfaExtension:schemas, istovremeno prihvatajući standardne metapodatkepdfaidbez deklaracija proširenja- Validacija ugrađenih datoteka PDF/A-3 sada zahteva unose
/Fi/UFna najvišem nivou u rečnicima filespec i ignoriše ugneždene ključeve toka/EFpri proveravanju ovih naziva
Version 2.12.1
Popravljeno (Fixed)
ValidatePdfACompliancesada dekodira escapovane tokene naziva PDF pre podudaranja JavaScript, LZWDecode, Type1 i drugih zabranjenih naziva, tako da su zamagljeni ali semantički identični nazivi ispravno prijavljeni- Provere ugrađenih slika PDF/A sada odbijaju vrednosti
/Filteri/Fkoje koriste/LZWDecode, skraćeni/LZWili/Crypt, uključujući forme nizova i escapovanih naziva - Validacija PDF/A sada izveštava o tokovima metapodataka sa zabranjenim filterima tokova, profilima ICC OutputIntent čiji broj komponenata
/Nnedostaje ili nije konzistentan, i specifikacijama ugrađenih datoteka PDF/A-3 sa nedostajućim ili nevažećim/AFRelationship
Version 2.12.0
Dodato (Added)
- HTTP zahtevi TSA sada postavljaju eksplicitna vremenska ograničenja od 30 s za svaku fazu (resolve/connect/send/receive) putem
WinHttpSetTimeouts, tako da spor ili nedostupan organ vremenskih oznaka ne može beskonačno da obesi nit za potpisivanje umesto oslanjanja na implicitne podrazumevane vrednosti WinHttp - Izvođenje nonce po zahtevu za zahteve vremenskih oznaka PAdES B-T / B-LTA kada pozivaoc izostavi
TPadesSignOptions.Nonce: SHA-256 sklapanje monotonog brojača + satova zida +GetTickCount64+ id procesa zamenjuje prethodni fiksni rezervni$100000000, tako da dva zahteva izdata u istoj milisekundi više ne ponovo koriste isti nonce anti-replay PdfInflatesada ograničava dekomprimovani izlaz na 256 MiB da bi zaustavio zlib-komprimovani tok koji iscrpljuje memoriju na neprijateljskom ili oštećenom ulazu (tzv. “zlib bomba”); ograničenje je darežljivo za bilo koji pravi PDF tok
Promenjeno (Changed)
- Preklapajuće mešanje
TPdfView(isticanje pretrage, selekcija teksta, reč za čitanje, proširena selekcija) više ne koristiGetPixel/SetPixelVpo pikselu; pravougaonik se sada meša putem 32-bpp van ekranaTBitmapiScanLineu jednom prolazu, čime se eliminiše hiljade GDI kernel prelaza po jednom iscrtavanju i velike selekcije postaju odzivne FPdfAsn1.TDerReader.ReadIntegersada odbija INTEGER polja duža od 8 bajtova (i 8-bajtne negativne vrednosti čiji bit znaka bi zahtevaoshl >= 64), vraćajući 0 umesto izračunavanja pogrešne vrednosti kroz nedefinisano ponašanje pomeraja na ASN.1 CMS/PAdES ulazuParseTimeStampRespviše ne odražava nonce zahteva nazad kaoTPadesTimestamp.Nonce; dok ne stigne walker TSTInfo koji verifikuje vraćeni nonce, polje ostaje 0 da signalizira “neverifikovano”, umesto davanja pozivalocima lažnog poverenja da je odgovor vremenske oznake svež
Popravljeno (Fixed)
PointsToPixelsvraćao je ulaz nepromenjen za svaki DPI: delilac je bioPointsPerInch(konstanta 72) umesto literala 72, čime se formula urušila naResult := Points. Svaki spoljni pozivalac koji vrši dimenzionisanje points→device-pixel putem ovog pomoćnika sada dobija ispravnoPoints × PixelsPerInch / 72PdfMaxObjNumje potcenjivao u dokumentima koji koriste tokove objekata (PDF 1.5+ ObjStm): objekti komprimovani unutar/ObjStmne nose markerN 0 obj, tako da je skeniranje sirovih bajtova propuštalo, a ubacivači koji alocirajuMaxObj+1za nove objekte sudarali bi se sa skrivenim ObjStm članovima i tiho kvarili datoteku. Skeniranje sada prvo proširuje tokove objekata, tako da je svaki broj objekta vidljivInjectPdfAMarkersviše ne kreira lažnu tvrdnju o usklađenosti PDF/A na šifrovanom dokumentu: PDF/A (ISO 19005-1 §7.1) zabranjuje šifrovanje, a ubacivač je prethodno kopirao izvor s oznakama čak i kada bi ga naknadna validacija odbila. Kada jeHasEncryptpostavljeno, izvor se sada prenosi nepromenjen. Normalna putanjaTPdf.SaveAsPdfAveć uklanja šifrovanje (saRemoveSecurity) pre ubacivanja, tako da ovo utiče samo na direktne pozivaocePdfReadStreamBytessada odbija/Lengthveći od cele datoteke pre alokacije rezultujućeg bafera, čime zatvara ranu alokacionu putanju na oštećenoj ili neprijateljskoj indirektnoj dužini
Version 2.11.0
Dodato (Added)
- PDFium zapis
FPDF_FILEHANDLERsada deklariše svojih šest povratnih poziva (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) kao stvarna polja umesto komentara, odgovarajući rasporedu C zaglavlja. Povratni pozivi prenosa datoteka FFI XFA (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL) koji vraćaju ili konzumirajuPFPDF_FILEHANDLERostaju neimplementirani u Pascal sloju za popunjavanje obrazaca, ali je tip sada strukturno ispravan za bilo koju buduću putanju slanja/otpremanja XFA - Učitavanje i oslobađanje biblioteke PDFium (
LoadLibrary/UnloadLibrary) su sada serijalizovani globalnom kritičnom sekcijom procesa, tako da dve radne nitiTPdfFuture<T>(ili radnik koji se takmiči sa glavnom niti) ne mogu obe da posmatrajuPDFiumLibrary=0i dvostruko se vezuju, ili da oslobode DLL dok je druga nit usred vezivanja - Sekcija
initialization/finalizationsada pozivaUnloadLibrarypri oslobađanju jedinice, čime osigurava da seFPDF_DestroyLibraryizvršava (spajanje radnih niti, rasturanje V8 izolata, demontaža fontova/keša) umesto oslanjanja na OS za preuzimanje DLL-a
Promenjeno (Changed)
TPdf.SetActivesada guta bilo koji izuzetak tokom učitavanja (prethodno samoEPdfError), tako da greška toka ili kršenje pristupa tokom postavljanja obrasca/stranice ostavljaActive=Falseumesto delimično učitane komponente s nedefinisanim stanjem- Konzistentno kodiranje karaktera za argumente ključa metapodataka PDFium:
TPdf.GetMetaTextsada koristi isti FPCAnsiString/ DelphiUTF8Encoderaspored kaoGetViewerPreferencei putanje učitavanja, umesto konverzije gologAnsiString(Tag) - Duplikovani pomoćnici
BytesToAnsi,AnsiToBytes,WriteBytesiWriteStrsu deduplikovani:FPdfCompressih sada uvozi izFPdfPdfCommon(njegovi pseudonimiWriteBytesToStream/WriteAnsiToStreamsu povučeni) i redundantno troargumentno preopterećenjeBytesToAnsiuFPdfPdfaje uklonjeno.FPdfAsn1zadržava svoju lokalnu kopiju namerno, da bi kriptografski sloj ostao bez jedinice sloja usklađenosti
Popravljeno (Fixed)
- Curenje resursa u
TPdf.LoadDocument(datoteka, memorija,TBytes,TMemoryStream, prilagođeni tok) iTPdf.CreateDocument: ako suInitializeFormFilliliReloadPagepodigli posle uspešnogFPDF_LoadDocument/FPDF_CreateNewDocument, nativni handleFPDF_DOCUMENTbi procurio jer jeFActivebio False u tom momentu. Svaka putanja sada umotava postavljanje posle učitavanja utry/excepti pri neuspehu zatvara dokument, ostavljajući komponentu u čisto neaktivnom stanju - Prijaznije dijagnostike učitavanja PDFium DLL-a:
CheckLoadLibrarydetektujeERROR_BAD_EXE_FORMAT(193) i izveštava o nepodudarnosti arhitekture 32/64-bit pokazujući na odgovarajuću izgradnjuDLLs/Win32iliDLLs/Win64, umesto prosleđivanja samo generičke OS greške.CheckGetProcAddresssada navodi da je raspoređenipdfium.dllstariji od vezivanja kada nedostaje traženi izvoz, umesto golog OS teksta "procedure not found"
Version 2.10.1
Popravljeno (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 sertifikata potpisnika), zamenjujući prethodni nestandardnisubjectKeyIdentifier+ SHA-256 mesto punog sertifikata koje su Adobe Acrobat i drugi saglasni validatori odbacivali. Novi TbsCertificate DER obilazilac (ExtractIssuerAndSerial) čita SEQUENCE izdavaoca i INTEGER serijskog broja kao sirove TLV bajtove — serijski brojevi često premašuju opsegInt64, pa je sirovi TLV obavezan. FormasubjectKeyIdentifierostaje kao rezerva samo kada analiza DER sertifikata ne uspe
Izmenjeno (Changed)
TCmsSignerId.SerialNumber: Int64zamenjen je saSerialDer: TBytes(sirovi serialNumber TLV). CMS graditelj ugrađuje isečeni TLV doslovno uIssuerAndSerialNumber, izbegavajućiInt64prelivanje na 20-bajtnim CA serijskim brojevima (gornja granica RFC 5280 §4.1.2.2)
Version 2.10.0
Dodato
- Dugoročna validacija PAdES B-LT: kada je
TPadesSignOptions.Level >= plB_LT,SignPadesBytesdodaje inkrementalno ažuriranje koje nosi rečnik/DSSsa sertifikatom potpisnika i punim posrednim lancem (samopotpisani koren je isključen po RFC 5652 §10.2.3), plus marker/Extensions /ESICnivoa Level 1 (EN 319 142-1 §5.4.2) - Arhivska vremenska oznaka PAdES B-LTA: kada je
Level >= plB_LTAi postavljenTsaUrl, dodaje se rečnik potpisa Document Time-stamp (/SubFilter /ETSI.RFC3161) čiji/ByteRangepokriva celu datoteku; ESIC marker se unapređuje na Level 2. Ovo kompletira četiri bazna nivoa PAdES (B-B, B-T, B-LT, B-LTA) - Prikupljanje lanca sertifikata:
ResolveWinSignersada pozivaCertGetCertificateChaini popunjavaTPadesResolvedSigner.ChainCertDerposrednim CA sertifikatima, tako da B-LT/DSS /Certsnosi svaki sertifikat potreban za validaciju potpisa bez spoljnih pretraga.CertFreeCertificateContextje sada vezan, zatvarajući curenje jednog konteksta po potpisu zabeleženo u v2.8.0 - Radni tok integracije sa PDF/A:
TPdf.SignPadesWithPdfAprvo konvertuje dokument u PDF/A (najviši nivo koji biblioteka danas emituje), a zatim primenjuje traženi PAdES potpis — obrazac kontejnera za dugoročno arhiviranje koji preporučuje EN 319 142-1 Annex A.7
Version 2.9.0
Dodato
- Poverljiva vremenska oznaka PAdES B-T:
TPadesSignOptionsdobija poljaLevel,TsaUrliNonce. Kada jeLevel >= plB_Ti postavljenTsaUrl,SignPadesBytesizdvaja vrednost 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 poverljivog vremena B-T (EN 319 142-1 §6.3 zahtev o) FPdfTsa: krosplatformski RFC 3161 klijent —BuildTimeStampReq(verzija 1, SHA-256 messageImprint nad vrednošću potpisa, nonce, certReq=true),ParseTimeStampResp(prihvata PKIStatus 0/1, odbacuje 2+, izdvaja TimeStampToken ContentInfo doslovno) iRequestTimestamp(jednokratni build+POST+parse).PadesTsaAvailableograničava funkciju na platformama bez HTTP pozadineFPdfTsaWin: Windows WinHttp pozadina, dinamički vezana iz winhttp.dll (nula novih zavisnosti pri kompilaciji; HTTPS se pregovara iz Windows prodavnice sertifikata). Ogleda pattern dinamičkog vezivanjaFPdfCryptoWinFPdfCms:ExtractSignatureValueobilazi izgrađeni CMS da povrati sirove oktete potpisa (ulaz TSA heša), aAddSignatureTimestampToCmsponovo gradi ContentInfo sa novimunsignedAttrs [1](0xA1) koji nosi atribut vremenske oznake. Validator faze 1 prepoznaje rezultat kao B-T potpis
Version 2.8.0
Dodato
- Stek za potpisivanje PAdES B-B: četiri nova čisto-Pascal/krosplatformska gradivna bloka (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) plus Windows CNG pozadina (FPdfCryptoWin) omogućavajuTPdf.SignPades/SignPadesToStreamda proizvedu PAdES B-B potpis od kraja do kraja. Sertifikat potpisnika se razrešava po SHA-1 otisku iz prodavnice Current User “MY”; RSA-PSS (preporučeno), RSA PKCS#1 v1.5 i ECDSA su podržani prekoNCryptSignHash FPdfSha256: samostalni SHA-256 FIPS 180-4 (Init/Update/Final + jednokratni pomagači). FPC 3.2.2 ne isporučuje SHA-2 modul, pa biblioteka poseduje jedan 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 sa kodiranjem određene dužine i obradom IMPLICIT-oznaka koje CMS zahtevaFPdfCms: CAdES SignedData graditelj (BuildSignedData) koji emituje potpisane atribute content-type, message-digest i signing-certificate-v2 koje PAdES baseline nameće, sa opcionim signing-time i commitment-type-indication. Digest signedAttrs se izračunava nad SET-oznakom (0x31) formom i ponovo emituje sa IMPLICIT [0] (0xA0) oznakom po RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: apstrakcija kriptografske pozadine saPadesCryptoAvailable/ResolvePadesSigner, dok Windows implementacija vezuje crypt32.dll / ncrypt.dll dinamički (bez nove DLL zavisnosti pri kompilaciji). ECDSA potpisi se prekodiraju iz Windows IEEE P1363 r¦s forme u DERECDSA-Sig-Valuekoji CMS zahtevaSignPadesBytes: ubacivanje potpisa na nivou bajtova — rezerviše hex slot/Contentsfiksne širine, izračunava pokrivajući/ByteRange, pravi 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
Dodato
- Strukturni validator PAdES (ETSI EN 319 142-1 V1.2.1): nova jedinica
FPdfPadesi metodTPdf.ValidatePadesproveravaju rečnike vrednosti potpisa dostupne iz/ByteRange, obilaze CMSSignedDataunutar/Contentsdovoljno duboko da potvrde CAdES odvojenu formu i otkrivaju četiri bazna nivoa (B-B, B-T, B-LT, B-LTA) kao i rečnike Document Time-stamp (/SubFilter /ETSI.RFC3161) - Skup PAdES problema na nivou klauzule: 26
ppei*enuma pokriva prihvatljivost/SubFilter(adbe.pkcs7.sha1iadbe.x509.rsa_sha1označeni kao zabranjeni), pokrivanost datoteke/ByteRange, zabranu/Cert, formu CMSSignedData(jedan potpisnik, odvojeni eContent, opseg verzija), obavezne potpisane atribute (content-type,message-digest,signing-certificate/v2), zabranjene digeste (MD5, SHA-1), međusobno isključivanje/Reasonnaspramcommitment-type-indication(zahtev d), zahtev za poverljivo vreme B-T, marker/DSS+/Certs+ ESIC Level 1 za B-LT i Document Time-stamp + ESIC Level 2 marker za B-LTA - DSS injektor:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreamdodaju inkrementalno ažuriranje koje nosi rečnik/DSS(sa/Certs,/OCSPs,/CRLsnizovima tokova) i marker/Extensions /ESIC(Level 1 ili 2) na kopiju dokumenta, čuvajući originalne bajtove — korak ugrađivanja materijala za validaciju B-LT/B-LTA (klauzula 5.4.2) - Krosplatformska faza bez zavisnosti: 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 zavisnost
Version 2.6.0
Izmenjeno (Changed)
- Deduplikacija između standarda: još sedam dupliranih pomoćnih funkcija (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) je uklonjeno iz pojedinačnih standardnih jedinica i konsolidovano u
FPdfPdfCommon, čime se smanjuje oko ~300 linija tereta održavanja copy-paste koda - Kvalitet PreflightReport-a: problemi content-klase za PDF/X i PDF/E koji su ranije padali u generičku kategoriju “missing marker” sada nose tačne kategorije Content/Metadata/Security i preporuke specifične za klauzulu (oko 15 enuma za oba standarda)
- Test pokrivenost za PDF/E i PDF/R: još šest enuma sa nultom pokrivenošću dobilo je pozitivne testove (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Popravka Lazarus gradnje:
Tests.PdfVT(DUnitX jedinica samo za Delphi, dodata u v2.5.x) je sada isključena iz Lazarus projekta kako bi se uspostavila kompilacija
Version 2.5.3
Dodato
- Completeness OutputIntent-a (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):
pvviReferenceXObjectForbiddense više ne aktivira zaPDF/VT-2datoteku, koja može legalno koristiti Reference XObjects na X-5g/5pg bazi - Validacija znakova MIME granice (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharoznačava granicu čiji znakovi padaju van skupa bchars ili čija dužina premašuje 70
Popravljeno (Fixed)
InjectPdfVTMarkerssada zapisuje Info/CreationDatei/ModDateiz opcija čuvanja, tako da proizvedena datoteka prolazi krozValidatePdfVTCompliancebez lažnogpvviInfoModDateMismatch(injektor je prethodno prepisivao XMP datume, ali ostavljao datume Info rečnika zastarelima)
Version 2.5.2
Dodato
- Doslednost Info
/ModDate(§6.3 NOTE 2, baza PDF/X-4):pvviInfoModDateMismatchoznačava/ModDateInfo rečnika koji, nakon normalizacije iz PDF-datuma u XMP-datum, nije jednakxmp:ModifyDate - Saglasnost inline delova PDF/VT-2s (Annex A.2): MIME validator sada pokreće
ValidatePdfVTCompliancena svakoj inlineapplication/pdfpartiji i označava telo koje nije PDF/VT prekovtmviInlinePdfNotPdfVT
Version 2.5.1
Dodato
- Validacija segmentacije DParts (ISO 16612-2 §6.5 Table 4):
pvviDPartsBadChunkingoznačava/DPartsniz čiji neposlednji podnizovi nemaju tačno 8192 unosa ili čiji poslednji podniz pada van 1..8192 - Doslednost RecordLevel između tokova (Annex A.2): MIME validator PDF/VT-2s sada izdvaja
/RecordLevelsvakog inline PDF-a i označava neslaganje prekovtmviRecordLevelMismatch, dopunjujući postojeću NodeNameList proveru - Nagoveštaji ponavljajućih grafičkih objekata (§6.7):
pvviGtsScopeInvalidValueoznačava/GTS_Scopevan {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 forward-referenci u MIME (Annex A.2):
vtmviForwardReferenceoznačava inline PDF koji citira ime datoteke (preko/EF /F) koje nije uvela ranija partija priloga u toku
Popravljeno (Fixed)
ExtractNodeNameListFromPdfiExtractRecordLevelFromPdfuFPdfPdfvtMimesu rešili povremeni off-by-one gde je 1-bazirani pomeraj koji vraćaAnsiFindKeytretiran kao apsolutni bajtovski pomeraj u proširenom PDF-u
Version 2.5.0
Dodato
- Metapodaci Document Part za PDF/VT (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionsje dobioDpmEntriesiDpmTargettako da writer može prikačiti/DPMrečnik na sintetisani DPart čvor, sa validacijom imena ključeva prema pravilu drugog-klasa-prefiksa iz Annex E i pravilima §6.6 NMTOKEN / jedinstvenost /GTS_Managed-oblika na strani validatora - Strujna razmena PDF/VT-2s (Annex A): nova jedinica
FPdfPdfvtMimepružaBuildPdfVT2sStreamiValidatePdfVT2sStreamzamultipart/mixedMIME kovertu koja nosi inline PDF/VT delove plus priloge ICC profile, sa pravilom redosleda zaglavljaX-PDFVT-Stream-version: 1i proverom doslednostiNodeNameListizmeđu tokova TPdf.ValidatePdfVTsada izvršava autoritativno prebrojavanje JavaScript akcija prekoFPDFDoc_GetJavaScriptActionCount, dopunjujući skeniranje imena/JavaScriptna nivou bajtova
Popravljeno (Fixed)
- Ispravnost PDF/VT
Trappedna bazi PDF/X-4: enum vrednostptvUnknownje uklonjena (PDF/X-4 zabranjuje/Unknown),ptvUnspecifiedse normalizuje na/Falsepri zapisu (nedostajući/Trappedje takođe zabranjen), a novi problempvviTrappedInvalidoznačava odsutnu iliUnknownvrednost ValidatePdfVTCompliancesada proširuje tokove objekata (PdfExpandObjectStreams) pre skeniranja, tako da katalog, OutputIntent ili Metadata rečnik uskladišteni unutar komprimovanog ObjStm (PDF 1.5+, tipično za PDF/X-4 proizvođače) bivaju dostupni pretragama na nivou bajtova
Izmenjeno (Changed)
- PDF/VT-1 sada nasleđuje pune zabrane sadržaja PDF/X-4:
pvviAcroFormForbidden(/AcroFormili/XFA),pvviAdditionalActionsForbidden(katalog/AA),pvviMissingTrimBoxipvviReferenceXObjectForbidden(Reference XObject, samo X-5g/5pg) - Deduplikacija između standarda:
BuildDictObj,IccComponentCount, ugrađeni sRGB ICC profil (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumiPdfExpandObjectStreamssu unapređeni iz utrojenih lokalnih kopija uFPdfPdfa/FPdfPdfx/FPdfPdfvtu jedan kanonski dom uFPdfPdfCommon; 3144-bajtni ICC literal sada postoji tačno jednom u kodnoj bazi
Version 2.4.0
Ispravljeno (Fixed)
InjectPdfUaMarkersviše ne odbacuje referencu trailer-a/Infona bazi toka unakrsnih referenci (cross-reference-stream): lokalna kopijaSourceTrailerInfoRef(kojoj je nedostajala rezervna opcija za tok xref) zamenjena je zajedničkomPdfSourceTrailerInfoRef(preuzetom iz PDF/A kopije koja je imala ovu rezervnu opciju od verzije v2.0.0)- Zajednički
PdfReadStreamBytessada rukuje indirektnim referencama/Length N G R(preneto iz lokalne PDF/A kopije), tako da validatori PDF/VT, PDF/R i PDF/E više ne čitaju pogrešno niti preskaču XMP tokove metapodataka koje proizvode alati koji koriste indirektnu dužinu Length (Acrobat, Ghostscript)
Izmenjeno (Changed)
- Deduplikacija između standarda: lokalne kopije
PdfReadTraileruFPdfPdfaiFPdfPdfx, lokalne kopijeSourceTrailerInfoRefuFPdfPdfaiFPdfPdfua, i lokalniPdfReadStreamBytesuFPdfPdfasu obrisani — zajedničke verzije izFPdfPdfCommonse sada primenjuju svuda, čime se uklanja oko ~330 linija dupliranog koda i eliminiše teret održavanja kopija sinhronizovanim - Popunjavanje testova za PDF/X: sedam enums klasa sadržaja koji su ranije imali nultu pokrivenost dobilo je pozitivne testes (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Izmenjeno (Changed)
- Popunjavanje testova za PDF/A se nastavlja: još tri enums sa nultom pokrivenošću dobilo je pozitivne testove;
pvaiForbiddenRenderingIntent(§6.2.9) označava nestandardni naziv rendering-intent u toku sadržaja;pvaiJpeg2000Violation(§6.2.2) označava JPXDecode sliku sa/NumComponentsvan opsega {1,3,4} u Part 2;pvaiInlineImageLzwForbidden(§6.1.10) označava inline sliku koja koristi LZW filter u Part 2
Version 2.2.0
Promenjeno
- Regresioni testovi za tokove unakrsnih referenci (cross-reference-stream): postojeći
Validate_XrefStreamTrailer_DetectsConformancesada takođe proverava da li je referenca kataloga/Metadatarazrešena i da li se XMPpdfaid:partčita na bazi xref-streama (ne samo/Root+/ID); novi testInjectPdfA_XrefStreamBase_RoundTripsštiti putanju xref-streama injektora koja je dodata u v2.0.0; dva međustandardna testa (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) potvrđuju da validatori za PDF/E i PDF/R više ne odbacuju xref-stream PDF-ove kao one koji se ne mogu analizirati - Zatvaranje duga testiranja za PDF/A:
Validate_MinimalPdf_FlagsRequiredMarkerspotvrđuje da minimalan PDF pokrećepvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadataipvaiMissingXmpDates— zatvarajući jaz u simetriji sa validatorima za PDF/E i PDF/X koji su već imali ekvivalentne testove; još dva enuma sa nultom pokrivenošću dobila su pozitivne testove:pvaiUnembeddedFontipvaiSubsetMissingCidSet
Version 2.1.0
Popravljeno
- PDF/E je nenamerno izostavljen iz ispravke za tokove unakrsnih referenci (cross-reference-stream) u v2.0.0: i
InjectPdfEMarkersiValidatePdfECompliancesu i dalje pozivaliPdfReadTrailerbez parametraAcceptXrefStream, tako da je PDF/E injektor tiho zakazao na PDF 1.5+ izlazu (podrazumevano zaSaveAsCopyu biblioteci pdfium); oba mesta poziva sada prosleđujuTrue - Zajednički mehanizam za vraćanje na xref-stream u funkciji
PdfReadTrailersada nosi zaštitu/Type /XRefkoju su lokalne kopije za PDF/A i PDF/X već imale, tako da oštećeni pomak (offset) zastartxrefkoji pokazuje na nepovezani rečnik otkazuje čisto umesto da bude pogrešno analiziran kao trailer - Razrešavač indirektnih referenci
/LanguValidatePdfUaCompliance(v2.0.0) bio je nedostižan:PdfFindObjDictpronalazi samo<<rečnike, dok je/Langtekstualni objekat (string) predstavljen kao(...)ili<...>bez rečnika; zamenjen je direktnim skeniranjem tela objekta koje locira token stringa
Promenjeno
- Sedam suvišnih duplikata pomoćnih funkcija (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj) koji su bili identični po bajtovima sa zajedničkim verzijama iz
FPdfPdfCommonuklonjeno je izFPdfPdfaiFPdfPdfua— zajedničke verzije se sada primenjuju svuda putemuses
Version 2.0.0
Popravljeno
- Tiho otkazivanje kod više standarda: zajednička pomoćna funkcija
PdfReadTrailer(koju koriste injektori i validatori markera za PDF/UA, PDF/X, PDF/VT i PDF/R) sada prihvata parametarAcceptXrefStreami vraća se na rečnik objekta toka unakrsnih referenci (cross-reference-stream) kada ključna rečtrailernije prisutna (PDF 1.5+); prethodno je izlaz izSaveAsCopyu biblioteci pdfium (koji koristi tok unakrsnih referenci) dovodio do toga da svaki injektor markera tiho zakaže — izvorni bajtovi su kopirani nepromenjeni, a poziv je i dalje vraćao uspeh; validator za PDF/R-1.0 (čija je PDF 2.0 osnova uvek tok unakrsnih referenci) bio je praktično neoperativan (no-op); zrela implementacija validatora za PDF/A preneta je u zajedničku pomoćnu funkciju, tako da svi standardi imaju koristi - Skeniranje trailer rečnika u
InjectPdfUaMarkersiInjectPdfAMarkerssada koristiPdfDictEndkoji prepoznaje dubinu ugnežđivanja umesto obične pretrage za>>, tako da se trailer koji sadrži ugnežđeni rečnik (npr./Encrypt << ... >>) više ne prekida preuranjeno pre pratećeg unosa/Info
Promenjeno
TPdf.ValidatePdfUasada potiskuje grubipvuaiFontNotEmbeddedna nivou bajtova kada se preciznipvuaiPdfiumFontNotEmbeddediz Pdfium objektnog modela već aktivirao, tako da izveštaj o proveri (preflight) više ne sadrži dva skoro duplirana reda „embed your fonts” za isti nedostatakpvuaiLangInvalidFormat(§7.2) sada razrešava indirektnu referencu/Lang(N 0 R) do njenog objekta stringa i validira sadržaj, tako da indirektno referencirana oznaka jezika više nije slepa mrlja
Version 1.99.0
Popravljeno
pvuaiLangInvalidFormat(§7.2) više ne propušta heksadecimalno kodirane/Langstringove bez provere: UTF-16BE parovi (saFE FFBOM-om) i obični ASCII heksadecimalni stringovi se sada dekodiraju i prolaze kroz istu proveru BCP 47 gramatike kao i literalni(...)stringovi, tako da se neispravan heksadecimalni/Langotkriva, dok usklađeni (npr. UTF-16BEen-US) više nije u riziku da bude označen
Promenjeno
pvuaiFontMissingToUnicode(§7.21.7) sada izuzima/MacExpertEncodingzajedno sa/WinAnsiEncodingi/MacRomanEncoding, što odgovara četiri uslova izuzeća koje klauzula navodi
Version 1.98.0
Dodato
pvuaiNeedAppearancesTrue(§7.18.4) označava AcroForm čija je zastavica/NeedAppearancespostavljena na true, pa se izgledi vidžeta (widget appearances) ne mogu pouzdano zaključati, a asistivne tehnologije ih ne mogu povezati sa stablom strukture; preneseno iz PDF/A validatora i ograničeno na prisustvo/AcroFormkako bi se suzio opseg skeniranja
Promenjeno
- Regresija veraPDF korpusa: povezani su pass+fail parovi za §7.20 Reference-XObject i §7.21.4.2 podskup CharSet/CIDSet u
Live_Corpus_ValidatePdfUaMatchesConformance; primerci uspešnih testova (pass samples) za §7.21.7 ToUnicode-forbidden-value i §7.18.6.2 media-clip su takođe povezani kao zaštite od lažno pozitivnih rezultata (njihovi neuspešni primerci koriste rasporede rečnika koje skeniranje na nivou bajtova ne detektuje, pa je povezana samo uspešna strana) - Lista tvrdnji za uspešne putanje korpusa dobila je 15 novih zaštita sa nultim lažno pozitivnim rezultatima, tako da se svaka aktivna
pvuai*provera na nivou bajtova i strukture sada testira na usklađenim primerima (ranije je bilo zaštićeno samo oko 30 od 60 aktivnih problema); zaštita zapvuaiLangInvalidFormatje namerno izostavljena jer proveravač na nivou bajtova konzervativno označava heksadecimalno kodirane/Langstringove koje ne može da dekodira
Version 1.97.0
Popravljeno
- Učvršćivanje funkcije
ValidatePdfUaStructureElements: prolazak kroz roditeljski lanacEnclosingTablesada nosi brojač koraka (ograničen brojem elemenata), tako da neispravan ciklusParentIndexu sintetičkom nizu strukturnih elemenata više ne može blokirati pozivaoca; alokacija niza za ID-ove označenog sadržaja uValidatePdfUaPageContentTaggingje sada ograničena na milion unosa, čime se sprečava višegigabajtna alokacija pri neispravnom ili zlonamernomMarkedContentID
Promenjeno
- Komentar dokumentacije enuma za
pvuaiOrderedListMissingListNumberingsada tačno opisuje šta provera radi: označavaLelement čija je vrednostListNumberingizvan skupa navedenog u ISO 32000-1 Tabela 347 (odsustvo atributa se ne označava); prethodni komentar je implicirao da takođe detektuje uređene liste kojima nedostaje atribut, što implementacija zapravo ne radi - Dva neuspešna primerka korpusa za
7.21.3.3-t02WMode-mismatch su sada povezana uLive_Corpus_ValidatePdfUaMatchesConformance— od verzije v1.95.0 CMap tok se dekompresuje pomoću FlateDecode, tako da se poređenje rečnika i sadržaja sada pokreće na čitljivoj strani; zastareli komentar „not wired“ je uklonjen
Version 1.96.0
Dodato
- Doslednost između standarda:
TPdf.ValidatePdfUadobija dve provere prenesene iz PDF/A validatora;pvuaiAnnotationFlagsViolation(§7.18.1) označava neizuzetu anotaciju koja nosi zastavicu Hidden, Invisible ili NoView, što prekida tok čitanja asistivne tehnologije;pvuaiActionTargetMissing(§7.18.5) označava GoToR / URI / SubmitForm akciju kojoj nedostaje zahtevani ciljni ključ (/F+/D, /URI, /F), čineći vezu neupotrebljivom za asistivne tehnologije
Popravljeno
- Spajanje stabla strukture kroz više stranica: petlja akumulacije
AllElemsuTPdf.ValidatePdfUasada menja bazu zaParentIndexsvakog elementa iz lokalnog niza stranice u spojeni niz; bez ovoga, dečiji elementi stranice 2 bi zadržali lokalni indeks stranice koji pokazuje na odsečak stranice 1, tiho kvareći svaku proveru zavisnu odParentIndex(struktura tabele/liste, §7.4.4 broj H-dece, EnclosingTable) - Raščlanjivanje RoleMap-a:
PdfReadRoleMapPairsviše ne prekida celo skeniranje ključeva/vrednosti kada je vrednost indirektna referenca (N 0 R) or an array ([...]) — što su obe ispravne forme RoleMap-a prema ISO 32000-1 14.8.5.1; sada preskače samo taj unos (Continue) umesto prekida (Break), čime se eliminišu lažno pozitivni rezultati zapvuaiRoleMapUnresolvedna tipovima koji su mapirani nakon indirektnog unosa ili niza
Promenjeno
FPdfPreflightReport: 18 aktivnih vrednostiTPdfUaValidationIssuekoje su prethodno spadale u opštu kategoriju i preporuku „missing marker“ sada nose tačne kategorije (Structure / Content / Metadata / Security) i preporuke specifične za klauzulu; takođe je ispravljena greška u kucanju puaNone / pua1 → pucNone / puc1 uPDFSpecComplianceMatrix.md
Version 1.95.0
Promenjeno
- Provera pouzdanosti i ispravnosti za
TPdf.ValidatePdfUa: proverapvuaiCMapWModeMismatchiz §7.21.3.3 i proverapvuaiToUnicodeForbiddenValueiz §7.21.7 sada dekompresuju FlateDecode-kompresovane CMap / ToUnicode tokove pre skeniranja (ranije su se proveravali samo nekompresovani tokovi, što je bio poznat lažno negativan rezultat); zajednički pomoćniciPdfInflate/PdfReadAndDecodeStreamsu premešteni izFPdfPdfa/FPdfPdfxuFPdfPdfCommonkako bi sve jedinice za usklađenost delile istu kopiju
Dodato
pvuaiSubsetCharSetEmpty(§7.21.4.2) označavaFontDescriptorpodskupa Type 1 koji nosi ključ/CharSetčija je vrednost stringa prazna — postojećipvuaiSubsetMissingCharSetje detektovao samo nedostatak ključa; prazan/CIDSetse ne označava, jer font bez CID-ova može legitimno nositi praznu bitmapu
Version 1.94.0
Dodato
- Druga faza provere za
TPdf.ValidatePdfUazatvorila je šest nedostataka prema ISO 14289-1 koji su uočeni tokom pregleda klauzulu po klauzulu i ponovnog skeniranja Pdfium nativnih API-ja koji su već obmotani, ali se nisu koristili na putanji PDF/UA;pvuaiHeadingFormatInvalid(§7.4.3) označava korisnički definisane oznake zaglavlja koje počinju sa H ali sadrže separatore, razmake ili rimske brojeve umesto čistih arapskih cifara;pvuaiMissingDocumentOutline(§7.17, should) označava višestranični dokument koji ne sadrži stablo obeleživača (bookmark outline), dok su jednostranični dokumenti izuzeti;pvuaiStructElementLangInvalid(§7.2) označava vrednost/Langu elementu strukture koja nije ispravan BCP 47 tag;pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) označava element strukture Widget kojem nedostaje vlasnik atributa PrintField;pvuaiLinkNotInStructureTree(§7.18.5) označava dokument čije anotacije/Subtype /Linknisu izložene kao Link strukturni elementi;pvuaiPdfiumAnnotationMissingContentsipvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) dodaju precizno skeniranje modela objekta Pdfium anotacija koje izuzima skrivene anotacije, Popup i Widget anotacije, kao i one van CropBox-a — time se eliminišu lažno pozitivni rezultati heuristike na nivou bajtova, koja ne može čitati zastavice/Fili rektanglu/Rect
Version 1.93.0
Dodato
TPdf.ValidatePdfUasada postavlja prolaz modela objekata Pdfium preko inspektora na nivou bajtova, odražavajući arhitekturu PDF/A runde 7: obilazi tekstualne objekte svake stranice prekoFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) i skenira svaki karakter prekoFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) iFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — što je preciznije od heuristike na nivou bajtova, koja se aktivira samo kada nema nijednog programa fonta ili se/ToUnicodeuopšte ne pojavljuje; ovaj obilazak ima kratak spoj (short-circuit) na tri nivoa: petlja stranice se završava kada su sva tri problema sloja Pdfium već postavljena, petlja po objektu se završava na prvom neugrađenom fontu, a skeniranje karaktera preskače prolaz.notdefkada jeUnicodeMapErrorveć aktiviran; PDF/UA je bio poslednji validator PDF standarda bez sloja modela objekata Pdfium
Version 1.92.0
Dodato
- Kreiran je
Tests.PdfR— prva datoteka za testiranje validatora PDF/R-1 (FPdfPdfr), koja pokriva validaciju zaglavlja, zabranu ObjStm-a, detekciju rasterskih markera i zaštitu ispravne datoteke bez lažno pozitivnih rezultata; svih šest testnih paketa za PDF standarde sada imaju namenske testne datoteke: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = ukupno 212 testova
Version 1.91.0
Dodato
ValidatePdfEiValidatePdfVTsu dobili provere na nivou sadržaja koje su ranije bile dostupne samo u validatorima za 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đe dobijaju sloj modela objekata Pdfium (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded) koji prolazi kroz tekstualne objekte stranice prekoFPDFFont_GetIsEmbedded, završavajući rad na prvom neugrađenom fontu
Version 1.90.0
Dodato
TPdf.ValidatePdfXsada postavlja prolaz modela objekata Pdfium preko inspektora na nivou bajtova: obilazi tekstualne objekte svake stranice prekoFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedi prijavljuje neugrađeni font kaopvxiPdfiumFontNotEmbedded— što je preciznije od heuristike na nivou bajtova koja se aktivira samo kada nema nijednog programa fonta; ovaj obilazak se završava na prvom pronađenom neugrađenom fontu
Promenjeno
- Obilazak stabla strukture u
TPdf.ValidatePdfUa: pozivValidatePdfUaPageContentTaggingpo stranici (koji gradi mapu potraživanja ID-a označenog sadržaja i vrši unakrsnu proveru svakog tekstualnog/slikovnog objekta) se sada preskače na narednim stranicama kada jepvuaiUntaggedContentveć pronađen — elementi strukture se i dalje prikupljaju za provere kroz više stranica (jedinstveni ID beleške, redosled naslova), ali se skupi prolaz tagovanja sadržaja po stranici zaustavlja ranije
Version 1.89.0
Promenjeno
- Performanse sloja modela objekata Pdfium u
TPdf.ValidatePdfA: obilazak stranica/objekata sada ima kratak spoj na tri nivoa — petlja stranica se završava kada su svi primenljivi problemi sloja Pdfium već pronađeni, petlja po objektu se završava kada su oba problema po objektu (ugrađivanje fonta + providnost) postavljena, a skeniranje karaktera na tekstualnoj stranici preskače prolaz.notdefkada jeUnicodeMapErrorveć aktiviran; provere dostupnosti API-jaAssigned()i zastavice usklađenosti se keširaju u lokalne logičke vrednosti jednom pre petlje umesto da se ponovo procenjuju na svakoj stranici/objektu/karakteru; na velikom neusklađenom dokumentu obilazak se sada može zaustaviti nakon prve stranice umesto skeniranja svih stranica, dok je na usklađenom dokumentu opterećenje po stranici manje (bez ponovljenih pozivaAssigned)
Version 1.88.0
Dodato
ValidatePdfXje dobio osam novih vrednostiTPdfXValidationIssuena nivou sadržaja koje pokrivaju ograničenja razmene štampe (print-exchange) koja PDF/X nameće izvan markera formata datoteke:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(bez/TrimBoxna bilo kojoj stranici) ipvxiTrappedNotSet(/Trappednedostaje ili je/Unknown); validator PDF/X je ranije proveravao samo XMP/OutputIntent markere, a ovo je njegov prvi prolaz na nivou sadržaja; zajednički pomoćniciPdfStructureBytes/PdfHasName/PdfCountNamesu dodati uFPdfPdfCommonkako bi ih sve jedinice za usklađenost mogle koristiti
Version 1.87.0
Dodato
- PDF/UA validacija sada pokriva pravila za složene fontove prema ISO 14289-1 §7.21.3:
pvuaiCidSystemInfoMismatchoznačava Type0 fontove čiji ugrađeni CMap i potomački CIDFont se ne slažu okoRegistry/Ordering, ili čijiSupplementCIDFonta premašuje onaj u CMap-u;pvuaiCMapNotEmbeddedoznačava CMap-ove referencirane po imenu (kaoEncodingiliUseCMap) koji nisu unapred definisani CMap-ovi iz ISO 32000-1 Tabele 118; apvuaiCMapWModeMismatchoznačava ugrađene CMap-ove čijiWModeu rečniku se razlikuje od WMode-a u sadržaju njihovog stream-a
Popravljeno
- Provera
pvuaiCidFontMissingCidToGidMapiz §7.21.3.2 propuštala je CIDFontType2 rečnike čiji par ključ/vrednostSubtypeje razdvojen novim redom, a sada takođe označava vrednost nazivaCIDToGIDMapkoja nijeIdentity
Version 1.86.0
Dodato
- PDF/UA validacija sada pokriva pravila kodiranja TrueType prema ISO 14289-1 §7.21.6:
pvuaiTrueTypeEncodingInvalidoznačava nesimboličke TrueType fontove čijeEncodingnedostaje ili nije niMacRomanEncodingniWinAnsiEncoding(direktno ili putemBaseEncoding), apvuaiSymbolicTrueTypeEncodingoznačava simboličke TrueType fontove koji nose nestandardno imeEncoding
Version 1.85.1
Promenjeno
- Provera redosleda tabulatora
pvuaiMissingTabsOrderprema ISO 14289-1 §7.18.3 sada se izvršava po stranici: svaka stranica koja nosi anotacije mora deklarisati/Tabs /Su sopstvenom rečniku stranice, tako da usklađena susedna stranica više ne maskira stranicu koja to nema
Version 1.85.0
Dodato
- PDF/UA validacija sada razlikuje dinamičke od statičkih XFA obrazaca prema ISO 14289-1 §7.15:
pvuaiXfaDynamicoznačava obrasce čija XFA konfiguracija postavljadynamicRendernarequired
Promenjeno
- Bivša zastavica kandidata za bilo koji XFA
pvuaiXfaPresentje povučena i više se ne podiže (statički XFA je usklađen sa §7.15); vrednost enum-a ostaje radi API kompatibilnosti
Version 1.84.0
Dodato
- PDF/UA validacija sada otkriva neoznačen stvarni sadržaj koji zahteva ISO 14289-1 §7.1:
pvuaiUntaggedContentoznačava renderovane tekstualne i slikovne objekte koji nisu ni preuzeti od strane stabla strukture stranice (putem njihovih ID-ova označenog sadržaja) ni označeni kao Artifact - Novi pomoćnici na nivou stranice
GetPageContentMarkInfosiValidatePdfUaPageContentTaggingsa zapisomTPdfPageContentMarkInfoza direktnu upotrebu
Version 1.83.0
Dodato
- PDF/UA validacija sada sprovodi model naslova prema ISO 14289-1 §7.4.4:
pvuaiHeadingModelMixedoznačava dokumente koji mešaju generički tagHsa numerisanim naslovimaH1..Hn, apvuaiHeadingMultipleInNodeoznačava čvorove strukture koji nose više od jednog dečijeg naslovaH
Version 1.82.0
Dodato
- PDF/UA validacija sada razrešava RoleMap koji zahteva ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardoznačava RoleMap unose koji redefiniuju standardni tip strukture, apvuaiRoleMapUnresolvedoznačava korišćene nestandardne tipove strukture čiji RoleMap lanac nedostaje, visi ili je cikličan — indirektni lanci koji dosežu standardni tip su prihvaćeni, a nekorišćeni RoleMap unosi se nikada ne ocenjuju - Novi pomoćnici
PdfUaIsStandardStructType,PdfReadRoleMapPairs(sa PDF dekodiranjem escape sekvenci#hhnaziva) iValidatePdfUaRoleMapUsageza direktnu upotrebu
Version 1.81.0
Dodato
- PDF/UA validacija sada pokriva oznake lista prema ISO 32000-1 koje zahteva ISO 14289-1 §7.6:
pvuaiListStructureInvalidoznačava LI stavke izvan L kontejnera i Lbl/LBody delove izvan LI stavke, uz prihvatanje ugnježdenih lista i legitimne Lbl upotrebe unutar elemenata Note i BibEntry
Version 1.80.0
Dodato
- PDF/UA validacija sada pokriva oznake tabela prema ISO 32000-1 koje zahteva ISO 14289-1 §7.5:
pvuaiTableStructureInvalidoznačava TH/TD ćelije izvan TR reda i redove ili grupe redova izvan njihovog Table kontejnera;pvuaiTableHeaderMissingScopeoznačava ćelije zaglavlja čiji odnos nije odrediv ni putem atributa Scope ni putem asocijacije Headers/ID; apvuaiTableHeadersUndefinedIdoznačava Headers reference u dokumentima koji ne definišu ID-ove elemenata strukture TPdfStructureElementizlaže atribute tabeleScope,HasHeaders,HeadersIds,ColSpaniRowSpan, razrešene tokom prolaska kroz stablo strukture
Promenjeno
- Prolazak kroz stablo strukture sada čita sve atribute rasporeda i tabele u jednom prolazu kroz rečnike atributa svakog elementa umesto jednog skeniranja po atributu
Version 1.79.1
Dodato
- Prenesen primer
AnnotationsLabna Lazarus i C++Builder, pridružujući se postojećem Delphi konzolnom primeru
Ispravljeno
TPdf.CreateAnnotationje mogao da izazove grešku “Cannot set attachment points” za markup anotacije koje koriste quad tačke (Highlight, Underline, StrikeOut, Squiggly) jer nova anotacija još uvek nije imala quad slot za zamenu; sada umesto toga dodaje prvi quad na kraj
Version 1.79.0
Dodato
- Novi
AnnotationsLabDelphi konzolni primer: kreira Text, Highlight, Square i Circle anotacije, upisuje ih u PDF, a zatim ponovo učitava datoteku i nabraja listu anotacija na stranici
Version 1.78.0
Dodato
- Novi
TPdf.MeasureTextiTPdf.MeasureTextWidth: mere širinu i visinu renderovanog stringa za dati font i veličinu (PDF korisničke jedinice, 1 jedinica = 1/72 inča) bez dodavanja sadržaja na stranicu, omogućavajući logiku rasporeda i preloma reči povrhAddText; obezbeđeni preko nezavisneFPdfMeasurejedinice kao klasni pomagači (class helper) - Novi
TPdf.WrapText: pohlepni (greedy) prelom reči izgrađen naMeasureTextWidthkoji deli tekst na razmacima i pakuje reči u linije koje nisu šire od date širine (PDF korisničke jedinice); predugačka pojedinačna reč dobija svoju liniju (nema lomljenja unutar reči), vraćajući prelomljene linije kao niz
Version 1.77.0
Dodato
ValidatePdfAje dobio tri noveTPdfAValidationIssuevrednosti koje pokrivaju klauzule prethodno ocenjene sa “NO” ili “reader behaviour” u ranijoj reviziji praznina (dodati redni brojevi, postojeće vrednosti nepromenjene):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — karakter koji se rešava na Unicode 0 bez greške u mapiranju, runtime simptom reference na.notdefglif; detektovano preko Pdfium sloja objektnog modela),pvaiWordBreakMissing(Level A 6.8.3.2 — prikazani string u toku sadržaja duži od 20 karaktera bez razmaka, verovatno kršenje spajanja reči; gruba heuristika koja izbegava CJK lažne pozitive), ipvaiLinkActionMissingTarget(6.6.3 — akcija GoToR/URI/SubmitForm kojoj nedostaje ključ cilja prikaza pa čitač ne može da je prikaže)
Version 1.76.0
Dodato (Added)
ValidatePdfAdobija tri noveTPdfAValidationIssuevrednosti (dodate na kraj, postojeće vrednosti ostaju nepromenjene):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 —/BaseFontili/FontNametoken koji sadrži bajtove ≥ 0x80 koji ne formiraju validan UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — ugrađena (inline) slika u stream-u sadržaja stranice koristi LZW ili Crypt filter), ipvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — nesimbolički TrueType font čiji Encoding rečnik nosi/Differences)
Version 1.75.0
Dodato (Added)
ValidatePdfAje dobio tri noveTPdfAValidationIssuevrednosti (dodate na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — numerički token koji premašuje 32-bitno označeno celobrojno ograničenje od 2.147.483.647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 —/BMvrednost izvan ISO 32000-1 §11.3.5 standardnog skupa režima mešanja; dopunjuje PDF/A-1pvaiTransparentColorSpacekoji dozvoljava samo Normal/Compatible), ipvaiHexStringOddDigits(6.1.6 —<...>heksadekadni string sa neparnim brojem heksadekadnih cifara)
Version 1.74.0
Dodato (Added)
ValidatePdfAje dobio tri noveTPdfAValidationIssuevrednosti (dodate na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvaiPermissionsViolation(6.1.12 —/Permsrečnik koji nosi/DigestLocation,/DigestMethodili/DigestValueuz/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — Trans akcija tranzicije, detektovana putem/S /Transobrasca rečnika akcija radi izbegavanja lažnog poklapanja sa/Transparency), ipvaiPdfiumObjectTransparency(PDF/A-1 6.4 — objekat stranice nosi stvarnu transparentnost premaFPDFPageObj_HasTransparency, proširujući Pdfium sloj modela objekata uveden u v1.73.0 kako bi uhvatio efekte režima mešanja/meke maske koje skeniranje imena na nivou bajta može propustiti)
Version 1.73.0
Dodato (Added)
TPdf.ValidatePdfAsada dodaje prolaz Pdfium modela objekata povrh inspektora na nivou bajta: prolazi kroz tekstualne objekte svake stranice putemFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedi prijavljuje neugrađeni renderovani font kaopvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4), i učitava svaku tekstualnu stranicu kako bi skeniraoFPDFText_HasUnicodeMapErrori prijavljuje pokvareno Unicode mapiranje kaopvaiPdfiumUnicodeMapError(6.3.8). Ovo su provere koje inspektor na nivou bajta ne može da uradi — on vidi samo tokene imena, a ne rešene reference fontova ili stanje mapiranja po karakteru — i spajaju se u rezultat na nivou bajta. SamostalnaValidatePdfACompliancefunkcija na nivou bajta je nepromenjena
Version 1.72.0
Dodato (Added)
ValidatePdfAje dobio pet novihTPdfAValidationIssuevrednosti (dodatih na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalog ne sme nositi/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — OutputIntent ne sme nositi/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — specifikacija datoteke sa/EFmora takođe nositi/UF),pvaiXmpPacketBytesAttr(6.7.5 — zaglavlje XMP paketa ne sme nositi zastarelibytes=iliencoding=atribut), ipvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — ToggleNoView bit anotacije/F, vrednost 512, je zabranjen)
Version 1.71.0
Izmenjeno
ValidatePdfUasada prijavljujepvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): prolazak kroz stablo strukture rešavaListNumberingatribut rasporeda na svakomLelementu putem Pdfium API-ja za atribute i označava svaku vrednost izvan skupa Tabela 347 u ISO 32000-1 (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Odsutan atribut se ne označava, s obzirom na to da lista može biti neuređena; ovim se zatvara poslednji preostali nedostatak za ISO 14289-1 zabeležen na kraju runde 5
Version 1.70.0
Dodato
ValidatePdfUaje dobio četiri noveTPdfUaValidationIssuevrednosti (dodate na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — CID podskupFontDescriptormora da deklariše/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — ToUnicode CMap ne sme da mapira nijedan kod naU+FEFFiliU+FFFE; nekompresovani tokovi se skeniraju za izlazne oblike<FEFF>/<FFFE>),pvuaiLangInvalidFormat(7.2 —/Langmora biti validna RFC 1766 / BCP 47 oznaka; popustljiva gramatika prihvataen,en-US,zh-Hans,es-419i označava jasno neusaglašene vrednosti), ipvuaiOrderedListMissingListNumbering(7.6 — zadržano radi potpunosti API-ja; validator ga još ne prijavljuje jer je za pouzdano razlikovanje uređenih od neuređenih listi potrebna vrednost atributaListNumbering, koju prolazak kroz stablo strukture ne izlaže)
Version 1.69.0
Dodato
ValidatePdfUaje dobio dve noveTPdfUaValidationIssuevrednosti (dodate na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — Widget element strukture mora biti ugnježden unutarFormelementa; prolazak kroz stablo strukture sada proverava direktni roditeljski tip svakog Widget-a) ipvuaiSubsetMissingCharSet(7.21.4.2 — Type 1 podskupFontDescriptormora da deklariše/CharSet, identifikovan putem prefiksa imena podskupa od šest slova+na/FontName)
Version 1.68.0
Dodato
ValidatePdfUaje dobio dve noveTPdfUaValidationIssuevrednosti (dodate na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — rečnik URI akcija ne sme da nosi/IsMapsa vrednošćutrue, jer to onemogućava pristupačni cilj linka) ipvuaiHeadingSequenceViolation(7.4.2 — numerisani naslovi moraju početi odH1, a opadajući niz ne sme da preskoči posredujući nivo, npr.H1→H3predstavlja kršenje). Provera naslova je prvo PDF/UA pravilo na nivou stabla strukture u validatoru:ValidatePdfUaStructureElementssada prolazi kroz listu tipiziranih elemenata i proverava nizH1…H6(iH7+prema 7.4.3) u redosledu dokumenta
Version 1.67.0
Dodato
ValidatePdfUaje dobio pet novihTPdfUaValidationIssuevrednosti (dodatih na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — Link anotacija mora nositi alternativni opis putem/Contents),pvuaiAnnotationMissingContents(7.18.1 — bilo koja neizuzeta anotacija bez/Contentsmora imati alternativni opis; Popup i Widget su izuzeti),pvuaiEmbeddedFileMissingName(7.11 — rečnik specifikacije datoteke mora sadržati/Fi/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — rečnik podataka medijskog klipa mora sadržati/CTi/Alt), ipvuaiCidFontMissingCidToGidMap(7.21.3.2 — ugrađeni Type 2 CIDFont mora sadržati/CIDToGIDMap)
Version 1.66.0
Dodato
ValidatePdfUaje dobio pet novihTPdfUaValidationIssuevrednosti (dodatih na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvuaiRoleMapMissing(ISO 14289-1 7.1 — tagovani dokument sa nestandardnim tipovima strukture mora nositi/RoleMap),pvuaiOptionalContentAsKey(7.10 — konfiguracioni rečnik opcionog sadržaja ne sme nositi/ASauto-state ključ),pvuaiXfaPresent(7.15 — prisustvo AcroForm/XFAse označava jer je dinamički XFA zabranjen),pvuaiTrapNetAnnotation(7.18.2 —/TrapNetanotacije su zabranjene), ipvuaiReferenceXObject(7.20 — Reference XObjects, identifikovani na osnovu/Refmarkera, su zabranjeni)
Ispravljeno
ValidatePdfUaviše ne prijavljuje lažno pozitivne rezultate zapvuaiEncryptionPresentna svakoj šifrovanoj datoteci: PDF/UA dozvoljava šifrovanje sve dok je na/Pključu rečnika šifrovanja postavljen bit na poziciji 10 (vrednost 1024), što omogućava pristup tehnologijama za pomoćne funkcije (7.16). Tačno kršenje se sada prijavljuje putem novogpvuaiEncryptionPBitMissing;pvuaiEncryptionPresentje zadržano u enum-u radi API kompatibilnosti, ali ga bajt-nivo validator više ne prijavljuje
Version 1.65.0
Dodato
ValidatePdfAje dobio pet novihTPdfAValidationIssuevrednosti (dodatih na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — ugrađeni Type 2 CIDFont mora nositi/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — Type 1 podskupFontDescriptormora nositi/CharSet),pvaiSubsetMissingCidSet(6.3.5 — CID podskupFontDescriptormora nositi/CIDSet),pvaiWidgetActionForbidden(6.6.1 — Widget anotacija ne sme nositi/Aili/AA), ipvaiOptionalContentAsKey(ISO 19005-2 6.9 — konfiguracioni rečnik opcionog sadržaja ne sme nositi ključ automatskog stanja/AS, što je postalo relevantno jer PDF/A-2 dozvoljava opcioni sadržaj)
Version 1.64.0
Dodato
ValidatePdfAje dobio osam novihTPdfAValidationIssuevrednosti (dodatih na kraj rednih brojeva, postojeće vrednosti su nepromenjene):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 — zaglavlje%PDF-x.ymora biti praćeno%komentarom sa najmanje četiri bajta veća od 127),pvaiExternalStreamRef(6.1.7 — rečnik toka ne sme nositi/F,/FFilterili/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntent/Smora biti/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDatemoraju se takođe pojaviti kaoxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — Nivo A zahteva/MarkInfosa/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — anotacijski/APrečnik sme sadržati samo/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Aneks E.2 — svaka asocirana specifikacija datoteke mora nositi/AFRelationship), ipvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — JPEG2000 slika mora deklarisati 1, 3 ili 4 komponente)
Ispravljeno
ValidatePdfAviše ne prijavljuje lažno pozitivne rezultate zapvaiAnnotationFlagsViolationna dokumentima koji koriste ime resursa fonta od jednog slova, kao što je/Font << /F 5 0 R >>; skeniranje/Foznake je sada ograničeno na kontekst anotacije (/Subtypetipa anotacije), što odgovara dokumentovanom ponašanju (6.5.3)ValidatePdfAsada prijavljuje PDF/A-3 zahtev za asociranim datotekama po datoteci: dokument se označava samo kada ugrađeni/Type /Filespeckoji referencira ugrađeni tok putem/EFnema/AFRelationship, umesto prethodne provere za ceo dokument po principu sve-ili-ništa (ISO 19005-3 Aneks E.2)- Zastarela
/SetStateakcija dodata je u skup zabranjenih akcija uz/SetOCGState, tako da se naziv akcije iz PDF Reference direktno hvata (6.6.1)
Version 1.63.0
Dodato (Dodato)
- Dodati
TPdf.MeasureTextiTPdf.MeasureTextWidth: mere prikazanu širinu i visinu teksta u zadatom fontu i veličini bez dodavanja sadržaja na stranicu (PDF korisničke jedinice, 1 jedinica = 1/72 inča), omogućavajući proračune rasporeda i automatsko prelamanje redova povrhAddText; pruženo kao samostalna jedinicaFPdfMeasureu obliku class helper-a
Izmenjeno (Izmenjeno)
- Demo-ovi
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDF,Demo\Lazarus\MergePDFpoboljšani za sva tri IDE-a: opseg stranica po fajlu, opcionalna putanja izlaza, deduplikacija, evidencija pokretanja, dugme za otkazivanje, rezime spajanja; obeleživači i metapodaci iz prvog izvora - Demo-ovi
CreatePDFsada uključuju opciju Evropski tekst za akcentovane češke/francuske/nemačke/španske/portugalske/poljske/turske tekstove, čime se proverava odabir fonta i obrada Unicode-a (bivšiEuropeanTextje ujedinjen) - Uklonjeni
ExtractTextPagesiEuropeanText: ekstrakcija stranica pokrivena je opcijama opsega stranica/separatora uExtractText; višejezično renderovanjeEuropeanText-a spojeno je uCreatePDF
Version 1.62.2
Ispravljeno (Ispravljeno)
- Ponovo su generisana C++Builder zaglavlja (
.hpp) za svaku RAD Studio verziju i platformu (Win32/Win64/Win64x); bila su odstupila od Pascal izvora, ostavljajući zastarele potpise funkcija i nedostajuće unit-e koji su do C++Builder korisnika stizali kroz distribuciju izvornog koda
Version 1.62.1
Ispravljeno (Ispravljeno)
- Vraćena je kompilacija izvornog koda na RAD Studio 12 Athens i starijim verzijama: dodela
TArray<Byte>u putanji validacije PDF/UA koristila je implicitnu konverziju niza dostupnu samo u Delphi 13, koja nije mogla da se kompilira na starijim IDE-ovima
Version 1.62.0
Dodato (Dodato)
TPdf.RenderPageThumbnailiscrtava bilo koju stranicu po indeksu u bitmapu prilagođenu odnosu stranica bez menjanja trenutne stranice dokumenta, učitane stranice niti okidanjaOnPageChange
Ispravljeno (Ispravljeno)
TPdfThumbnailViewviše ne upravlja poljemPageNumberhost dokumenta tokom iscrtavanja; ranije je svako ponovno iscrtavanje ponovo učitavalo stranice, okidaloOnPageChangei odbacivalo tekstualnu stranicu, što je moglo da poremeti povezaniTPdfViewi izazove petlje ponovnog iscrtavanja. Minijature sada renderuju prekoRenderPageThumbnailbez takvih sporednih efekata- Provera usklađenosti PDF/X sada pregleda dokumente sa cross-reference stream-om (PDF 1.6, tipično za PDF/X-4) i objekte sačuvane u kompresovanim object stream-ovima, umesto da takve fajlove u celosti proglašava neusaglašenim; marker
GTS_PDFXVersiončita se i iz oblika elementa i iz RDF oblika atributa XMP - Validacija PDF/R sada prijavljuje
pvriInfoXmpMismatchkada se Info rečnik i XMP ne slažu oko Producer ili Creator; problem je ranije bio definisan, ali nikada nije bio prijavljivan - Form-fill tajmeri se sada prate po zahtevu, pa dokument koji istovremeno pokreće više tajmera (na primer JavaScript interval zajedno sa treptajem kursora polja) zadržava sve umesto da izgubi svaki tajmer osim poslednjeg
TPdfViewpri iscrtavanju i njegove javne metodeRenderPage/RenderTilesada drže render lock dokumenta, pa se serijalizuju u odnosu na renderovanje u radničkoj niti istogTPdf(PDFium nije thread-safe)- Ne-ASCII tekst upisan u metapodatke PDF/X, PDF/R i PDF/VT (OutputIntent nazivi uslova, Creator, Producer) sada se kodira kao UTF-16BE string po ISO 32000-1 §7.9.2.2 umesto sirovog UTF-8, koji bi usklađeni čitači pogrešno pročitali
- Pomoćne funkcije za usklađenost sada ispravno čitaju ugnježdene metadata stream-ove čiji je
/Lengthindirektna referenca, učitavaju izvorne bajtove prekoReadBuffer(tako da kratko čitanje propada čisto) i odbacuju negativanstartxrefpomeraj umesto da rizikuju čitanje van opsega
Version 1.61.0
Promenjeno (Izmenjeno)
- Ispravke deklaracija FFI/ABI koje mogu zahtevati ponovno kompiliranje koda koji je implementirao pogođene callback-ove: callback za form-fill
FFI_OpenFilesada nosicdecl(Win32 stack convention), a parametarvalueuFPDFAnnot_SetStringValueiFPDFAttachment_SetStringValuesada jeFPDF_WIDESTRING(UTF-16LE) radi usklađenosti sa PDFium zaglavljima - Callback-ovi progresivnog učitavanja
FX_FILEAVAIL.IsDataAvailiFX_DOWNLOADHINTS.AddSegmentsada primajusize_toffsete, asize_tje širine pokazivača na Free Pascal / Lazarus Win64 (ranije skraćen na 32-bit), čime se popravljaju pozivi za dostupnost podataka i API pozivioutsize_tna FPC Win64
Ispravljeno (Ispravljeno)
- Bezbednost memorije: use-after-free form-fill tajmera pri uništavanju
TPdfsa aktivnim AcroForm treptajućim kursorom; dvostrukiFPDF_CloseDocumentna putanji greške uImportNPagesToOne; Pascal izuzeci koji izlaze izFPDF_FILEWRITE/FPDF_FILEACCESScallback-ova preko C granice tokom čuvanja i JPEG umetanja; i prelivanje celog broja u ekstrakciji teksta pri čitanju od početnog indeksa do kraja stranice TPdfFuture<T>sada pouzdano isporučuje svoj result callback; odgovor je ranije skoro uvek bio odbačen (i mogao je da dotakne oslobođenu nit) zato što se radnik sam oslobodio pre nego što je redom zakazani odgovor mogao da se izvrši- PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT i PDF/UA izlaz sada upisuje cross-reference zapise koji su tačno 20 bajtova, kako zahteva ISO 32000-1 §7.5.4
- Ubacivanje standards marker-a više ne uništava rečnik kada je uklonjeni ključ (na primer
/Trapped) bio poslednja stavka, što je ranije gutalo završni>>i proizvodilo neispravan objekat - Stream-ovi ICC profila u OutputIntent-u sada navode obavezni broj komponenti
/Nza PDF/X i PDF/VT (već je postojao za PDF/A); šifrovani izvorni dokumenti se dešifruju pre nego što se PDF/X, PDF/E, PDF/R, PDF/VT i PDF/UA markeri ubace, pa je izlaz ispravan umesto tiho oštećen - UTF-8 xpacket BOM u generisanom XMP-u sada se emituje kao tačni bajtovi, čime se ispravlja oštećenje na Delphi instalacijama čiji ANSI code page nije Latin-1; trailer-i inkrementalnog ažuriranja sada zadržavaju referencu
/Infodokumenta SaveAssa kompresijom više ne skraćuje stream-ove čiji je/Lengthindirektna referenca, a ponovo izgrađene cross-reference tabele sada koriste zapise od 20 bajtova, stvarne generation brojeve i uklanjaju zastareli pokazivač/Prev- Validacija usklađenosti čita XMP markere verzije iz oblika atributa za PDF/E i PDF/X (pa se PDF/X-4 fajlovi serijalizovani kao atributi prepoznaju), zahteva tačan identifikator
PDF/E-1, ispravno čita metadata stream-ove sa indirektnim/Length, i više ne pravi lažno poklapanje sa ključem/IDili/StructTreeRootstrukturalnog elementa pri proveri PDF/UA trailera; neispravanstartxrefpomeraj više ne izaziva grešku opsega TPdfThumbnailView: poslednja stranica je sada dostupna preko scroll bara, trenutna stranica host dokumenta se obnavlja nakon iscrtavanja minijatura, a standardno rukovanje mouse-leave događajem ponovo se šalje- Sivi bitmapi stranica i slika više se ne renderuju sa pogrešnom paletom;
TPdfViewviše ne ostaje sa visećom referencom kada se njegovTPdfprvo oslobodi - Preflight izveštaji: HTML se sada čuva kao UTF-8 da bi odgovarao deklarisanom charset-u, a JSON escaping stringova proizvodi ispravne
\usekvence za ne-ASCII znakove na Free Pascal-u - Trial build-ovi: dijalog sa podsetnikom za trial sada se pojavljuje umesto da bude potisnut pre nego što je mogao da se prikaže
TPdfStreamAdaptersada odbacuje stream-ove veće od 4 GiB jasnom greškom umesto da tiho skrati dužinu prosleđenu PDFium-u
Version 1.60.1
Promenjeno (Izmenjeno)
- Demos AccessibilityReader za Delphi, Lazarus i C++Builder sada rade read-aloud preko
TPdfReadingSession: svaka stranica se sastavlja u jedan govoreni segment pomoćuBuildSpokenTextFromWords, SAPI pozicije reči puneFeedSpokenPosition, a sesija napreduje kroz stranice i upravlja kursorom reči u prikazu, zamenjujući ručno orkestriranje koje je svaki demo ranije imao - Praćenje karaoke na nivou reči u demo aplikacijama sada radi i kada je NVDA govorni mehanizam:
EstimatePacingtempira čitalački kursor prema proteklom vremenu govora, dok je NVDA ranije čitao naglas bez ikakvog praćenja reči - Pause i Resume u demo aplikacijama sada rade i sa NVDA:
ResumeRestartsChunkponovo izgovara trenutnu stranicu od početka pri Resume, dok SAPI zadržava svoje izvorno in-place pause i resume
Version 1.60.0
Dodato (Dodato)
- Uživo low-vision renderovanje na
TPdfView: nove opcije renderovanjareInvertireNightDuotonemenjaju boje svakog renderovanog dela stranice (potpuna inverzija boja ili noćna duotone paleta) pre nego što budu iscrtani slojevi pretrage, selekcije, čitanja i kursora reči, prenoseći postojeće bitmap color transformacije u interaktivni prikaz za jednokanalni i facing-pages raspored; preklapanje opcija odmah pokreće ponovno iscrtavanje NightDuotoneInkiNightDuotonePaperpodešavaju noćnu paletu, sa podrazumevanim jantarnim tekstom na crnoj stranici;reInvertima prednost kada su obe opcije postavljene
Version 1.59.0
Dodato (Dodato)
TPdfReadingSession: komponenta za read-aloud orkestraciju nezavisna od govornog mehanizma. Čuva kursor segmenta, kursor reči i stanje reprodukcije (Play/PlayFrom/Pause/Resume/Stop), napreduje kroz učitaneTPdfSpokenTextsegmente kada host prijavi da je engine idle prekoTick, prevodi offsete govorenog teksta nazad na znakove stranice i automatski upravlja priključenim kursorom reči uTPdfView; host povezuje bilo koji govorni mehanizam prekoOnSpeaki događaja zahteva za otkazivanje / pauzu / nastavak, pa biblioteka ne vezuje nijedan speech API samaFeedSpokenPositionkoristi pozicije reči iz engine-a (na primer SAPIStatus.InputWordPosition);EstimatePacingsaEstimatedWordsPerMinutetempira engine-ove bez signalizacije pozicije;ResumeRestartsChunkponovo izgovara trenutni segment za engine-ove bez izvorne pauzeOnChunkChange,OnWordChangeiOnFinishedokidaju se samo pri stvarnim promenama, a oslobođeni priključeni prikaz sam se odvaja, pa host kod ostaje bez treperenja i otporan na pad
Version 1.58.0
Dodato (Dodato)
EstimateSpokenWordIndexprocenjuje koju reč govorni mehanizam izgovara na osnovu proteklog vremena i brzine u rečima po minutu, dajući dužim rečima proporcionalno više vremena, tako da engine-ovi koji ne prijavljuju poziciju reči (na primer NVDA controller client) i dalje mogu da upravljaju kursorom čitanja na nivou reči; pozivaoc prosleđuje proteklo vreme, pa rutina ostaje bez sata i pogodna za unit testiranje
Version 1.57.0
Dodato (Dodato)
- Sastavljanje govorenog teksta sa mapiranjem između dva domena za praćenje čitanja naglas:
BuildSpokenTextFromWordsiSpokenTextAppendgrade string prosleđen text-to-speech engine-u iz pravougaonika reči stranice uz beleženje tabele raspona, aSpokenToPageCharprevodi offset koji prijavi engine (na primer SAPIStatus.InputWordPosition) nazad na indeks znaka stranice, tako da praćenje isticanja na nivou reči ostaje ispravno kada govorni tekst nije ceo tekst stranice (preskočeni delovi, čitanje po jedinici, zamene izgovora) TPdfSpokenTextiTPdfSpokenSpantipovi nose govorni string plus opsege izvorne stranice od kojih je sastavljen; offseti na umetnutim separatorima rešavaju se na sledeću mapiranu reč, a offseti posle mapiranih nizova prijavljuju da nema poklapanja
Version 1.56.9
Dodato (Dodato)
Demo\Delphi\PreflightReportdodaje Action Plan pregled koji sabija standarde koji nisu prošli, prioritete, sledeće akcije, kodove problema i preporuke u listu za otklanjanjeDemo\Delphi\PreflightReportCliprihvataplan/actionplankao izlazni format za pojedinačno i batch pokretanje, upisujući istu listu za otklanjanje u tekstualni fajl
Promenjeno (Izmenjeno)
- Oba Delphi PreflightReport demo programa sada prikazuju brojeve statusa pass / action / review zajedno sa ukupnim standardima i problemima
Version 1.56.8
Promenjeno (Izmenjeno)
ViewerInteractionLabsada uključuje kontrole za skok na stranicu, ručne kontrole zumiranja, logging koordinata klikom prekoDeviceToPage/PageToDevicei jasniji interaction log za proveru selekcije, pretrage, rotacije i navigacije- Stranice sa readme uputstvima za
ViewerInteractionLabsada dokumentuju dodati workflow interakcije kroz lokalizovani set demo readme fajlova
Version 1.56.7
Dodato (Dodato)
AccessibilityWorkbenchClisada mapira svaki pokrenuti nalaz na odgovarajuće WCAG 2.1 Success Criteria i oblast klauzule ISO 14289-1 (PDF/UA-1) i prikazuje odeljak sa pokrivenošću standarda u izveštajimaAccessibilityWorkbenchCliračuna dokumentovani accessibility score od 0-100 sa objavljenom kaznenom formulom i opsegom excellent / good / needs work / poor, prikazanim po fajlu i kao batch prosekAccessibilityWorkbenchCliprihvatafailscore=Nda obori pokretanje (exit code 2) kada bilo koji fajl ima ocenu ispod NAccessibilityWorkbenchCliupisuje SARIF 2.1.0 log kada naziv batch sažetka završava na.sarif, sa jednim pravilom po vrsti nalaza koje nosi svoje WCAG 2.1 i PDF/UA oznake za CI i code-scanning unosAccessibilityWorkbenchClidodaje komanduversionkoja ispisuje povezanu PDFiumPas verziju
Version 1.56.6
Dodato (Dodato)
IntakeWorkbenchCliračuna SHA-256 forenzički hash svakog ulaznog fajla (sa degradacijom naunavailablena kompilatorima bezSystem.Hash) i prikazuje ga u svakom formatuIntakeWorkbenchCliprihvatapasswords=file.txtza probno otključavanje dokumenata zaštićenih lozinkom iz liste kandidata, beležeći indeks podudarnog kandidata bez ikada zapisivanja teksta lozinkeIntakeWorkbenchCliprihvatacopyto=dirda usmeri svaki provereni fajl u podfolder po nivou rizika, pretvarajući auditor u sorter ulazaIntakeWorkbenchCliupisuje SARIF 2.1.0 log kada naziv batch sažetka završava na.sarif, sa jednim pravilom po rizičnoj zastavici i jednim rezultatom po označenom fajlu za CI i code-scanning unosIntakeWorkbenchClidodaje komanduversionkoja ispisuje povezanu PDFiumPas verziju
Version 1.56.5
Dodato (Dodato)
IntakeWorkbenchClisada izvodi preporučene post-intake akcije kao što su accept, request-password, manual-review, quarantine i deduplicate, i prikazuje brojeve akcija u batch sažecimaAccessibilityWorkbenchClisada izvodi preporučene remediation akcije kao što su pass-through, remediate-tags, run-ocr, remediate-semantics i manual-review, sa odgovarajućim batch brojevima akcija
Promenjeno (Izmenjeno)
- Oba tool-grade CLI demo programa sada prikazuju preporučenu akciju u konzoli, tekstualnom, HTML, JSON i CSV izlazu tako da batch operatori mogu da usmere fajlove bez naknadne obrade polja rizika ili statusa
Version 1.56.4
Ispravljeno (Ispravljeno)
- Čitanje anotacija, bookmark-ova ili link anotacija u petlji više ne curi tekstualne stringove prethodne stavke: rezultujući zapisi
TPdfAnnotation,TBookmarkiTLinkAnnotationsada se čiste inicijalizacijom koja je svesna upravljanih tipova umesto prostog nultiranja memorije, pa dokumenti sa veoma velikim brojem tekstualnih anotacija više ne povećavaju memoriju procesa tokom celog života aplikacije - Uništavanje
TPdfkoji je registrovaoOnUnsupportedFeaturehandler sada ga odvaja od procesno-globalnog PDFium callback-a, pa kasnije učitavanje dokumenta iz drugogTPdfinstance bez sopstvenog handler-a više ne može da pozove 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 tagovani dokumenti sa praznim separator stranicama zadržavaju ispravan accessibility status; stranice bez čitljivog sadržaja sada se prijavljuju odvojenoAccessibilityWorkbenchClidetekcija zaglavlja tabela više ne pripisuje spoljnoj tabeliTHćelije koje pripadaju ugnježdenoj tabeli, a nazivi form field-ova i fontova sada se porede case-sensitively tako da se različita polja ne spajajuIntakeWorkbenchCliinventari URI hostova sada uklanjaju userinfo, query i fragment delove, pa se napravljeni link kaotrusted.example@evil.examplepripisuje stvarnom hostu, a ciljevimailto:doprinose svom domenu umesto da budu nevidljiviIntakeWorkbenchCliMarkdown izveštaji escape-uju backtick-ove u putanjama, hostovima i nazivima priloga pod kontrolom napadača tako da formatiranje izveštaja ne može da se pokvari iznutra dokumenta
Promenjeno (Izmenjeno)
AccessibilityWorkbenchCliprijavljuje greške skeniranja fontova i form field-ova kao odvojene brojače, označava ne-ugrađene fontove koji imaju i ugrađene instance i ograničava duge liste fontova jasnim markerom za skraćivanjeIntakeWorkbenchClibatch sažeci dodaju kolonu za broj attachment-annotacija, a popis anotacija po stranici ograničen je na 20000 anotacija po stranici, sa prikazom limita u svakom formatu
Version 1.56.2
Dodato (Dodato)
AccessibilityWorkbenchClisada proverava ugrađivanje fontova, tool-tipove form field-ova, izvor reda čitanja, document outline-ove, strukturu tabela i lista, sumnjivi alternate text i bogatije detalje pregleda po stranici, tako da accessibility batch izveštaji identifikuju više ciljeva za otklanjanjeIntakeWorkbenchClisada prijavljuje limite skeniranja stranica, launch i remote-go-to akcije, URI host inventare, brojeve anotacija, nepodržane PDFium funkcije, duple identifikatore dokumenta i proširene rizik zastavice za automatizovani intake pregled
Promenjeno (Izmenjeno)
IntakeWorkbenchCliprihvatamaxpages=Nu single-file i batch režimu da ograniči skeniranje stranica po dokumentu dok i dalje završava metadata, attachment, script, XFA, signature i rizik izveštavanje
Version 1.56.1
Ispravljeno (Ispravljeno)
- Učitavanje starijeg
pdfium.dllkome nedostaje noviji export sada propada čisto: putanja greške resetuje svaku vezanu API ulaznu tačku, paAssigned()provere (na primer zaFPDF_GetLastErroriliFPDF_GetSecurityHandlerRevision) prijavljuju da biblioteka nije učitana umesto da pozovu već otpremljeni modul i padnu sa access violation UnloadLibrarysada čisti sva PDFium API vezivanja umesto samo opcionalnih V8 helper-a, pa nijedan zastareli pokazivač funkcije ne ostaje nakon što se DLL oslobodi
Version 1.56.0
Dodato (Dodato)
- Kursorski pokazivač čitanja na nivou reči na
TPdfView:TrackReadingWordAtmapira trenutni offset znaka govornog mehanizma za trenutnu reč (na primer SAPIStatus.InputWordPosition) na pravougaonike reči stranice, ističe reč koja ga sadrži kao poseban sloj iznad bloka čitanja, skroluje je u vidokrug i vraća indeks reči, tako da izgovorena reč zasvetli kako glas napreduje SetReadingWordiClearReadingWorddirektno postavljaju ili brišu istaknutu reč izTPdfWordBox; ponovno postavljanje iste reči je no-op, pa praćenje po reči nikada ne izaziva treperenje prikazaReadingWordColoriReadingWordFollowkontrolišu boju kursora reči i to da li prikaz automatski skroluje izgovorenu reč u vidokrug
Version 1.55.2
Ispravljeno (Ispravljeno)
- ViewerInteractionLab sada daje toolbar redovima više vertikalnog prostora, pa kontrole Open PDF, Create Sample, navigacija, pretraga i selekcija više ne preklapaju pod skaliranim fontovima
Version 1.55.1
Ispravljeno (Ispravljeno)
- ViewerInteractionLab sada postavlja Prev, Next i Rotate na drugi toolbar red, čime se izbegava preklapanje pri startovanju sa Open PDF i Create Sample
Version 1.55.0
Dodato (Dodato)
- Most od reči ka selekciji za čitanje uz izbor:
TPdfView.SelectWordBoxiSelectWordSpanbiraju jedan okvir reči ili raspon okvira reči na istoj stranici (izPageWordBoxes) po njihovim rasponima znakova, tako da reč ili red koji se trenutno čita može i da se označi i kopira WordBoxIndexAtCharIndexmapira indeks znaka nazad na okvir reči koji ga sadrži, pokrećući isticanje reč po reč dok TTS čitalački kursor napreduje
Version 1.54.0
Dodato (Dodato)
- Pristupni interfejsi za glasovno popunjavanje obrazaca koji čitaju fokusirano polje direktno iz logičkog kursora:
FocusedFormFieldValue,FocusedFormFieldNameiFocusedFormFieldDetailsnaTPdfiTPdfViewprijavljuju vrednost trenutnog polja, ljudski čitljiv naziv (/TUtooltip, sa rezervom na/T) i kompletanTPdfFormFieldInfo(tip, zastavice, opcije) — sve što glasovni UI treba da najavi dok prolazi kroz formular
Ispravljeno (Ispravljeno)
FocusedFormFieldValuečita polje prekoFocusedFormFieldIndexumesto preko pdfium interaktivnog fokusa, pa glasovno vođen popunjivač obrazaca dobija ispravnu vrednost i bez kursorа na ekranu (postojećiFocusedFormFieldTexti dalje odražava pdfium fokus i ne menja se)
Version 1.53.0
Dodato (Dodato)
- Podrška za isticanje na nivou reči:
TPdf.PageWordBoxesiTPdfView.PageWordBoxesdele stranicu naTPdfWordBoxzapise, od kojih svaki nosi tekst reči, njen raspon znakova i pravougaonik u prostoru stranice, tako da čitač pristupačnosti može da istakne svaku izgovorenu reč redom ("karaoke" čitanje) prosleđivanjem pravougaonika uSetReadingHighlight BuildWordBoxesizdvaja tokenizer korak zasebno, pretvarajući tekst stranice u word box-ove sa rasponima znakova
Version 1.52.0
Dodato (Dodato)
- Pomoćne funkcije za low-vision renderovanje
InvertPdfBitmap,GrayscalePdfBitmapiDuotonePdfBitmapprimenjuju in-place color transformacije na renderovani 32-bitni bitmap, tako da čitač pristupačnosti može da prikaže stranice invertovane / tamni režim, u sivim tonovima ili u prilagođenoj dvobojnoj šemi (na primer tamna pozadina sa svetlim tekstom) za korisnike sa slabijim vidom - Transformacije rade po pikselu i ponašaju se identično na VCL i Lazarus/LCL, bez menjanja dimenzija bitmape
Version 1.51.0
Dodato (Dodato)
- Rečenični nivoi čitalačkih jedinica za asistivno čitanje uz slušanje:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsiTPdfView.ReadingUnitslinearizuju tok čitljivog sadržaja u uređeneTPdfReadingUnitzapise veličine rečenice — svaki nosi tekst za izgovor plus svoj semantički tip, stranicu, pravougaonike isticanja i jezičku oznaku, tako da screen-reader aplikacija može da prolazi kroz stranicu ili ceo dokument po jednoj govorenoj jedinici - Semantička navigacija sa
NextReadingUnitOfKind, koja glasovnom UI-ju omogućava skok na sledeći ili prethodni heading, figure, list item ili table cell bez ručnog skeniranja toka BuildReadingUnitsdirektno pretvara bilo kojiTPdfContentFragmentsu čitalačke jedinice: heading-ovi i opisi figure/alt ostaju celina, dok se pasusi dele po granicama rečenica, decimalne tačke se čuvaju, a kursor čitanja je običan indeks u vlasništvu pozivaoca
Version 1.50.0
Dodato (Dodato)
ValidatePdfAsada može da pregleda PDF 1.5+ dokumente koji čuvaju katalog, OutputIntent ili druge rečnike unutar kompresovanih object stream-ova (/Type /ObjStm). Object stream-ovi se šire i objekti koje nose se razrešavaju, pa se takvi dokumenti validiraju po svojoj vrednosti umesto da budu prijavljeni kao da im nedostaju PDF/A markeri
Version 1.49.5
Ispravljeno (Ispravljeno)
ValidatePdfAviše ne prijavljuje nedostatak opisapdfaExtension:schemaskao problem. PDF/A identifikatorska šema (pdfaid) je dobro poznata, pa ni veraPDF ni PDF/A-2/-3 ne zahtevaju opis extension-scheme za nju, a označavanje njenog odsustva pogrešno je prijavljivalo svaki usklađeni treći PDF/A fajl. Dokumenti koje sama biblioteka proizvodi i dalje uključuju taj opis
Version 1.49.4
Ispravljeno (Ispravljeno)
ValidatePdfAsada detektuje nivo usklađenosti kada je PDF/A identifikator zapisan kao XML atributi (pdfaid:part="2") umesto kao child elementi, pa dokumenti u obliku atributa više ne bivaju prijavljeni sa nepoznatim nivoom. Ovo takođe ispravlja lanac u kome nedetektovani nivo tera provere specifične za deo da se vrate na stroga PDF/A-1 pravila i pogrešno označe ugrađene fajlove i transparentnost koje PDF/A-2 i PDF/A-3 dopuštaju
Version 1.49.3
Ispravljeno (Ispravljeno)
ValidatePdfAsada pregleda PDF 1.5+ dokumente čiji su podaci cross-reference u cross-reference stream-u (fajlovi koji nemaju ključnu rečtrailer). Nivo usklađenosti, trailer/IDi drugi markeri čitaju se iz rečnika cross-reference stream-a, pa se takvi dokumenti validiraju po svojoj vrednosti umesto da budu prijavljeni kao potpuno neusaglašeni
Version 1.49.2
Ispravljeno (Ispravljeno)
ValidatePdfAviše ne prijavljuje lažni problem ne-ugrađenog fonta na dokumentima koji ugrađuju sve svoje fontove. Prethodna heuristika je poređivala broj/FontDescriptortokena sa ugrađenim font programima, ali svaki ugrađeni font doprinosi sa dva/FontDescriptortokena (referenca na font rečnik plus descriptor objekat), pa je svaki fajl sa ugrađenim fontom bio pogrešno označen. Provera sada prijavljuje samo dokument koji referencira fontove, a ne ugrađuje nijedan font program, u skladu sa odgovarajućom ispravkomValidatePdfUa
Version 1.49.1
Ispravljeno (Ispravljeno)
- PDF/A izlaz sada prolazi validaciju kao usklađen PDF/A-1b i PDF/A-1a sa veraPDF: ugrađeni sRGB OutputIntent ICC profile stream (na koji pokazuje
/DestOutputProfile) sada navodi obavezan broj komponenti/N(3 za ugrađeni RGB profil), kako nalaže ISO 19005-1 6.2.3.2. Dokumenti koje proizvodiSaveAsPdfAranije su padali na strogoj PDF/A-1 validaciji jer stream odredišnog profila nije sadržao/N; vrednost se izvodi iz zaglavlja ICC profila, pa profil CMYK ili Gray koji prosledi pozivalac takođe dobija ispravan broj
Version 1.49.0
Ispravljeno (Ispravljeno)
ValidatePdfUaviše ne prijavljuje lažno nedostajuću XMP identifikaciju na usklađenim tagovanim PDF-ovima — PDF/UA identifikator (pdfuaid:part),dc:title, XMP datumi i trailer/IDsada se čitaju iz originalnih bajtova dokumenta umesto iz ponovo sačuvane kopije, koja izostavlja/MetadataXMP stream i, za fajlove sa cross-reference stream-om, trailer/ID- Ispravka provere ugradnje fontova u
ValidatePdfUatako da dokument koji ugrađuje sve svoje fontove više ne bude prijavljen kao da ima ne-ugrađene fontove; sada označava samo dokument koji referencira fontove, a ne ugrađuje nijedan font program ValidatePdfUasada prihvataFormulaelement strukture čiji je alternativni tekst dat krozActualTextumesto krozAltunos (ISO 14289-1 §7.7), u skladu sa postojećim pravilom zaFigure
Version 1.48.0
Dodato (Dodato)
- Programski odabir teksta na
TPdfView:SelectTextRange(po stranici i rasponu znakova) iSetSelection(po eksplicitnim rasponima po stranici) biraju tekst iz koda — na primer za čitanje i isticanje odlomka; oba ponovo iscrtavaju i podižuOnSelectionChangekada se selekcija promeni.SelectionRangesčita trenutnu selekciju kao raspone znakova po stranici, aSelectionRectanglesvraća pravougaonike u koordinatama stranice za prilagođeno isticanje ili skok do njih
Version 1.47.0
Dodato (Dodato)
- Navigacija kroz form field-ove za glasovno popunjavanje obrazaca, i na
TPdfi naTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusiFocusedFormFieldText. Ove funkcije pomeraju logički kursor polja preko widget polja stranice po tab redosledu (sa obrtanjem na krajevima), tako da asistivni čitač može da prođe kroz obrazac, najavi svako polje prekoFormFieldInfo[Index].AlternateName(tooltip /TU) i popuni ga prekoFormField[Index] TPdfView.OnFormFieldFocusChangedogađaj, koji se okida kada se kursor polja pomeri (noseći novi indeks polja ili -1 kada je očišćen)
Version 1.46.0
Dodato (Dodato)
- Tok sadržaja za asistivno slušno čitanje:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentiTPdfView.ReadableContentvraćaju uređenu listu semantičkih stavkiTPdfContentFragment, pri čemu svaka nosi izgovoreni tekst (stvarne glifove iliActualText/Alt za figure), vrstu fragmenta (heading sa nivoom, paragraph, figure, list item, table cell, link, plain), jezik, stranicu brojanu od 1 i pravougaonike isticanja po bloku i po liniji. Tagovani PDF-ovi se linearizuju u logičkom redosledu čitanja iz strukturalnog stabla; netagovane stranice padaju nazad na redosled renderovanja, tako da svaki dokument može da se čita naglas - Sinhronizovano isticanje čitanja na
TPdfView:SetReadingHighlight,ClearReadingHighlighti objavljeniReadingHighlightColorističu blok koji se trenutno čita, preko slojeva pretrage i selekcije - Novi javni tipovi
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindiTPdfReadingOrderSource, i novi pomoćni postupakClassifyStructType
Version 1.45.0
Dodato (Dodato)
ValidatePdfUasada takođe prolazi kroz živo tagovano stablo strukture i prijavljuje tri visokopouzdana kršenja sadržaja koja skeniranje na nivou bajta ne može da otkrije:Figureelement bezAltunosa niActualTextvrednosti (ISO 14289-1, 7.3),Formulaelement bezAltatributa (7.7) iNoteelement bez jedinstvenog ID-ja (7.9). Tri nove vrednostiTPdfUaValidationIssueprikazuju ove slučajeve:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltipvuaiNoteMissingId. Prolaz kroz stablo se preskače za netagovane dokumente- Novi javni pomoćni postupak
ValidatePdfUaStructureElementsprimenjuje ta pravila strukturalnog stabla na ravnu listu elemenata (kako je vraćaTPdf.StructureElements), pa se provere mogu pokretati ili unit-testirati bez učitavanja celog dokumenta
Version 1.44.5
Ispravljeno (Ispravljeno)
- Provera ugradnje fontova u
ValidatePdfA(pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) sada takođe otkriva ne-ugrađene simple fontove koji nemaju/FontDescriptor, pre svega 14 standardnih Type 1 fontova (Helvetica, Times, Courier i ostali) koje PDF/A zahteva da budu ugrađeni bez izuzetka. Ranije takav font nije bio primećen; provera sada takođe računa simple-font rečnike (/Type1,/TrueType,/MMType1) u odnosu na ugrađene font programe, prateći ispravku za PDF/UA u 1.44.3
Version 1.44.4
Ispravljeno (Ispravljeno)
ValidatePdfVTsada odbacuje neispravna ISO 16612-2 §6.5 DPart stabla gde je/DPartsravna referentna lista umesto potrebne liste nizova, ili gde list DPart ponavlja svoju stranicu/Startkao/Endiako raspon sadrži samo jednu stranicuValidatePdfVTsada proverava nazive/NodeNameListkao XML NMTOKEN vrednosti nakon proširenja PDF naziva sa escape-om#xx, pa se neispravni nazivi nivoa hijerarhije prijavljuju krozpvviMissingDPartRootumesto da budu prihvaćeni kao upotrebljiva DPart struktura
Version 1.44.3
Ispravljeno (Ispravljeno)
- Provera ugradnje fontova u
ValidatePdfUa(pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) sada takođe otkriva ne-ugrađene simple fontove koji nemaju/FontDescriptor, pre svega 14 standardnih Type 1 fontova (Helvetica, Times, Courier i ostali) za koje PDF/UA ne daje izuzetak od ugradnje. Ranije takav font nije bio primećen i dokument koji ga koristi mogao je biti prijavljen kao usklađen; provera sada takođe računa simple-font rečnike (/Type1,/TrueType,/MMType1) u odnosu na ugrađene font programe
Version 1.44.2
Ispravljeno (Ispravljeno)
ValidatePdfVTsada ostavlja prisutan ali neprepoznatljiv markerpdfvtid:GTS_PDFVTVersionkaopvcUnknownumesto da ga spusti napvcNone. To čini neispravne stringove na nivou fajla kao što jePDF/VT-2srazlikovanim od dokumenata koji nemaju nijedan PDF/VT marker; PDF/VT-2s se identifikuje preko MIME zaglavlja strima u ISO 16612-2 Annex A, a ne preko XMP markera PDF fajla- Provera
/DPartRootsada strože validira semantiku stabla ISO 16612-2 §6.5:/DPartRootNodei/NodeNameListmoraju da opisuju stvarnu dubinu DPart-a, veze roditelja DPart-a moraju da formiraju stablo,/Starti/DPartsse međusobno isključuju, a svaka stranica/DPartmora da pokazuje na pokrivajući list DPart-a u istom redosledu depth-first kao i stablo stranica
Version 1.44.1
Ispravljeno (Ispravljeno)
SaveAsPdfVTsada upisuje minimalnu hijerarhiju delova dokumenta ISO 16612-2 §6.5 kada izvorni PDF nema upotrebljiv/DPartRoot. Generisano stablo povezuje svaku stranicu preko/DPart, čuva postojeću ispravnu hijerarhiju i ostavlja bogatije recipient/DPM metapodatke pozivajućem toku radaValidatePdfVTsada validira upotrebljivu DPart strukturu, čita PDF/VT XMP vrednosti i iz RDF atributa i iz teksta elementa, i primenjuje tačno uparivanje PDF/VT sa PDF/X osnovom: PDF/VT-1 zahteva PDF/X-4, dok PDF/VT-2 zahteva PDF/X-4p, PDF/X-5g ili PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2više ne upisuje neispravne PDF/VT-2 markere za pojedinačni fajl. Pisac za pojedinačni fajl normalizuje izlaz na PDF/VT-1 jer PDF/VT-2 zahteva semantiku file-set-a
Version 1.44.0
Dodato (Dodato)
ValidatePdfUasada takođe prijavljuje sadržajna PDF/UA kršenja koja se mogu proveriti na nivou bajta, pored markera formata fajla: font program koji nije ugrađen (ISO 14289-1, 7.21.4), font koji nema/ToUnicodeCMap kada nije prisutno izuzeto simple-font kodiranje (7.21.7), i dokument koji nosi anotacije ali ne deklarise redosled tabulatora stranice/Tabs /S(7.18.3)- Tri nove vrednosti
TPdfUaValidationIssue—pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeipvuaiMissingTabsOrder— prikazuju se krozValidatePdfUai u preflight izveštaju. To su grube heuristike namenjene kao preflight smernice, a ne kao puna ISO 14289-1 verifikacija
Version 1.43.1
Ispravljeno (Ispravljeno)
SaveAsPdfUasada primenjuje obavezne unose kataloga ISO 14289-1, 7.1/ViewerPreferences/DisplayDocTitle truei/MarkInfo/Marked true/Suspects falsečak i kada izvorni dokument već obezbeđuje te rečnike sa nedostajućim ili kontradiktornim vrednostima. Ranije su markeri ubacivani samo kada su rečnici potpuno odsutni, pa je izvor koji je, na primer, nosio/ViewerPreferencesbezDisplayDocTitleili/MarkInfosa/Marked falsezavršavao kao neusaglašen fajl- Postojeći ključevi u već postojećem
/ViewerPreferencesili/MarkInforečniku se čuvaju, a rečnik dat kao indirektna referenca razrešava se pre nego što se primene obavezni ključevi
Version 1.43.0
Dodato (Dodato)
ValidatePdfAsada primenjuje pravila PDF/A-2 / PDF/A-3 za ugrađene i pridružene fajlove i za Level U tekst. Ugrađeni fajlovi se i dalje odbacuju za PDF/A-1; za PDF/A-3 ugrađeni fajl bez potrebnog ključa/AFRelationship(ISO 19005-3 Annex E) se označava, dok su PDF/A-2 prilozi dozvoljeni (njihova usklađenost se ne proverava rekurzivno). Nova greškapvaiUnicodeMappingMissingprijavljuje PDF/A-2u ili PDF/A-3u dokument čiji fontovi nemaju/ToUnicodemapiranje (ISO 19005-2 6.2.11.7). Transparentnost i optional content ostaju označeni samo za PDF/A-1
Version 1.42.0
Dodato (Dodato)
- PDF/A-2 (ISO 19005-2) i PDF/A-3 (ISO 19005-3) sada su podržani na sva tri nivoa usklađenosti — a, b i u — preko
SaveAsPdfA,ValidatePdfAi osobinePdfAConformance. EnumeracijaTPdfAConformancedobijapac2a,pac2u,pac3aipac3u(PDF/A-1 nema Level u). Čuvanje upisuje odgovarajućipdfaid:part(2 ili 3) ipdfaid:conformance(A, B ili U), zadržavajućiGTS_PDFA1podtip OutputIntent-a koji ISO 19005-2 čuva radi kompatibilnosti. Zahtev za Level A i dalje se spušta na odgovarajući Level B (za bilo koji deo) kada dokument nema tagovanu strukturu koju taj nivo zahteva
Version 1.41.0
Dodato (Dodato)
ValidatePdfAsada otkriva sadržajne PDF/A povrede koje ubacivanje markera ne može da popravi, pored strukturnih markera koje je već prijavljivao: JavaScript i druge zabranjene radnje, additional-actions (/AA), ugrađene fajlove,LZWDecode, transparentnost (soft masks i transparency groups), optional content (/OCProperties), zabranjene annotation podtipove (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances truei/XFA, fontove čiji descriptor-i nemaju ugrađen font program, i Level A tvrdnju bez tagovane strukture koju zahteva ISO 19005-1 6.8. Provere transparentnosti, optional content-a i ugrađenih fajlova primenjuju se samo na PDF/A-1 (ove funkcije su dozvoljene u PDF/A-2 i PDF/A-3). Nove vrednostiTPdfAValidationIssueprikazuju svaki slučaj; postojeće vrednosti ostaju nepromenjene
Version 1.40.3
Ispravljeno (Ispravljeno)
SaveAsPdfAsada uklanja svako šifrovanje iz izvornog dokumenta pre nego što proizvede PDF/A izlaz. ISO 19005-1 6.1.3 zabranjuje trailer/Encryptključ, ali je putanja čuvanja ranije zadržavala bezbednosni handler izvora, pa je čuvanje šifrovanog dokumenta kao PDF/A proizvodilo šifrovan, neusaglašen fajl. PDF/A čuvanje sada prvo dešifruje dokument. Nešifrovani dokumenti nisu pogođeni
Version 1.40.2
Ispravljeno (Ispravljeno)
SaveAsPdfAviše ne izbacuje lažnu PDF/A Level A tvrdnju o usklađenosti. Kada se traži Level A (pac1a), a izvorni dokument nema tagovane strukturalne markere koje zahteva ISO 19005-1 6.8 —/StructTreeRootu katalogu i/MarkInforečnik sa/Marked true— sačuvani fajl se sada identifikuje kao odgovarajući Level B (pdfaid:conformance=B) umesto da tvrdi Level A. Čisto vizuelni PDF/A-1b izlaz nije pogođen
Version 1.40.1
Ispravljeno (Ispravljeno)
- Zatežena je provera usklađenosti sa PDF verzijom tako da se radnja
SetOCGState(set-optional-content-group-state) prepoznaje kao PDF 1.5 funkcija. Čuvanje u PDF 1.2, 1.3 ili 1.4 cilj koji sadrži radnjuSetOCGStatesada se odbacuje da bi odgovaralo ISO 32000-1 (Table 198); ranije je takva radnja mogla da prođe u izlaz niže verzije. Posebna, zastarela PDF 1.2 radnjaSetStatei dalje se prihvata od PDF 1.2 nadalje
Version 1.40.0
Dodato (Dodato)
- Vezan je upstream
FPDFPageObj_AddExistingMark()API, koji pridružuje postojeći content mark page object-u. Kada uzastopni page object-i dele isti mark, sačuvani PDF ih spaja u jedan mark koji obuhvata sve njih; neuzastopni objekti dobijaju odvojene kopije - Vezan je upstream
FPDFTextObj_SetFontSize()API za menjanje veličine teksta postojećeg tekstualnog objekta, kao dopuna postojećemFPDFTextObj_GetFontSize()vezivanju
Promenjeno (Izmenjeno)
- Osveženi su priloženi PDFium runtime DLL-ovi (Win32 i Win64, standardne i V8 verzije) na upstream snapshot od 2026-06-02
Version 1.39.53
Promenjeno (Izmenjeno)
- Izmenjeni su Delphi
PDFViewer,SplitViewiMultiPageViewerdemo programi tako da dokumente otvaraju u režimuZoom to Pagepodrazumevano - Početni render sada uklapa celu stranicu u površinu prikaza pre nego što korisnik izabere ručni nivo zumiranja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.53
Version 1.39.52
Promenjeno (Izmenjeno)
- Unapređen je
Demo\Lazarus\CreatePDFtako da uvodni primer sada generiše PDF od dve stranice sa vektorskim putanjama, sadržajem tabela, ugrađenom slikom, tekstualnom anotacijom, rotiranim tekstom i jasnijim prikazom koraka za izgradnju dokumenta - Dodate su doterane
README.htmlstranice za svaku Delphi, C++Builder i Lazarus demo fasciklu, zamenjujući preostali demo README samo sa tekstom vodičem koji se može čitati u pregledaču - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.52
Version 1.39.51
- Unapređeni su batch sažeci
Demo\Delphi\PreflightReportClisa standardnim ukupnim statusima za Pass, Action required i Review rezultate kroz izabrane standarde - Redovi po fajlu sada uključuju broj action-required i review stavki u TXT / HTML / JSON / CSV sažecima, što CI artefakte čini lakšim za pregled bez otvaranja svakog generisanog izveštaja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.51
Version 1.39.50
- Unapređen je režim batch obrade direktorijuma za
Demo\Delphi\PreflightReportClitako dabatchdir=folderprikuplja otkrivene PDF putanje, sortira ih i zatim generiše izveštaje u stabilnom redosledu - Rekurzivna skeniranja direktorijuma sada proizvode ponovljiv redosled izveštaja i redove sažetka, dok eksplicitna obrada
batch=list.txtnastavlja da čuva redosled liste u fajlu - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.50
Version 1.39.49
- Unapređeni su batch sažeci za
Demo\Delphi\PreflightReportClitako da beleže podešavanja pokretanja: vrstu izvora, putanju izvora, rekurzivno stanje, izlazni direktorijum, format izveštaja, izabrane standarde i režimfailon= - JSON sažeci sada uključuju
runobjekat, TXT i HTML sažeci prikazuju odeljak sa podešavanjima pokretanja, a CSV redovi ponavljaju iste audit kolone za tabelarne i CI tokove rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.49
Version 1.39.48
- Unapređeno je imenovanje izlaza za batch obradu u
Demo\Delphi\PreflightReportClitako da duplikati ulaznih naziva fajlova koji dele jedanoutdir=više ne prepisuju međusobno generisane izveštaje - Batch pokretanja sada dodaju sufikse
-2,-3i dalje kada je putanja generisanog izveštaja već dodeljena u istom pokretanju, a sažeci beleže konačnu putanju izveštaja otpornu na kolizije - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.48
Version 1.39.47
- Unapređeni su batch sažeci za
Demo\Delphi\PreflightReportClitako da TXT i JSON izlazi sada uključuju zbirne ukupne vrednosti za ukupan broj fajlova, obrađene fajlove, neuspele fajlove, probleme i podudaranja zafailon= - CSV sažeci ostaju čista tabela redova za postojeće korisnike, dok HTML sažeci nastavljaju da prikazuju iste zbirne metrike u zaglavlju kontrolne table
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.47
Version 1.39.46
- U
Demo\Delphi\PreflightReportClije dodatosummary=batch.html/.htmtako da batch pokretanja mogu da izbace kontrolnu tablu čitljivu u pregledaču uz TXT / CSV / JSON manifeste - HTML sažeci prikazuju metrike za ukupan broj, obrađene, neuspele i problematične stavke i podudaranja za
failon=, a zatim navode svaki ulaz sa vezama ka izveštajima, statusom, brojevima i tekstom greške - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.46
Version 1.39.45
- U
Demo\Delphi\PreflightReportClidodati subatchdir=folderirecursivetako da skripte mogu direktno da skeniraju PDF fascikle bez prethodnog pisanja liste fajlova - Režim batch obrade direktorijuma ponovo koristi ponašanje
outdir=,summary=,standards=ifailon=iz batch režima zasnovanog na listi, dok nerekurzivna skeniranja obrađuju samo izabranu fasciklu, arecursiveuključuje podfascikle - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.45
Version 1.39.44
- U
Demo\Delphi\PreflightReportClije dodatosummary=batch.csv|json|txttako da batch pokretanja mogu da izbace mašinski čitljiv manifest uz izveštaje po fajlu - Batch sažeci uključuju svaku ulaznu putanju, putanju izveštaja, status, broj standarda, broj prolaza, broj problema, stanje podudaranja za
failon=i tekst greške za CI poslove i spoljne skripte - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.44
Version 1.39.43
- U
Demo\Delphi\PreflightReportClisu dodatibatch=list.txtioutdir=reportstako da skripte mogu da generišu preflight izveštaje za listu PDF fajlova u jednom pokretanju - Batch režim preskače prazne linije i linije komentara sa
#, izvodi ime svakog.preflight.<ext>izveštaja iz ulaznog PDF-a, nastavlja nakon grešaka po fajlu i sumira obrađene i neuspele fajlove pre povratka - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.43
Version 1.39.42
- U
Demo\Delphi\PreflightReportClije dodatofailon=none|issues|action|reviewtako da CI poslovi mogu da pretvore generisane preflight rezultate u determinističke izlazne kodove - CLI sada vraća izlazni kod 2 kada izabrano pravilo
failon=odgovara nakon što su fajl izveštaja i opcioni priloženi PDF izveštaja generisani, dok greške u radu i dalje vraćaju izlazni kod 1 - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.42
Version 1.39.41
- U
Demo\Delphi\PreflightReportClije dodatoattach=output.pdftako da generisani preflight izveštaj može da se ugradi kao prilog na nivou dokumenta u novu PDF kopiju - CLI čuva generisani TXT / HTML / Markdown / JSON / CSV fajl izveštaja na disku i odbija da ga prikači nazad u originalnu ulaznu PDF putanju, smanjujući rizik od slučajnog prepisivanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.41
Version 1.39.40
- Dodat je
Demo\Delphi\PreflightReportCli, Delphi konzolni pratilac za skriptabilno generisanjeFPdfPreflightReportbez otvaranja prikaza - CLI podržava pravljenje primera bez argumenata plus ulazne i izlazne argumente, opcionalnu lozinku, izlazne formate
text/html/md/json/csvi filtriranje prekostandards=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 da prijavljuju 1.39.40
Version 1.39.39
- Unapređen je
FPdfPreflightReportsaTPdfPreflightReport.ToMarkdowniSaveMarkdownToFiletako da se preflight izveštaji mogu izvesti kao Markdown pogodan za issue tracker - Ažurirani su Delphi, C++Builder i Lazarus
PreflightReportprimeri sa prebacivanjem Markdown pregleda i Save MD radnjama uz postojeći TXT / HTML / JSON / CSV tok rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.39
Version 1.39.38
- Unapređeni su Delphi, C++Builder i Lazarus
SecurityAuditprimeri sa izvozom JSON audit izveštaja uz postojeći TXT save / copy tok rada - JSON izveštaj sadrži
format,generatedAt,summary,findingCounti strukturisane redovefindingssa poljima severity, area i detail - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.38
Version 1.39.37
- Unapređen je
FPdfPreflightReportsaTPdfPreflightReport.ToCsviSaveCsvToFiletako da se preflight izveštaji mogu izvesti kao CSV pogodan za tabelarne programe - Ažurirani su Delphi, C++Builder i Lazarus
PreflightReportprimeri sa prebacivanjem CSV pregleda i Save CSV radnjama uz postojeći TXT / HTML / JSON tok rada - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.37
Version 1.39.36
- Unapređen je
FPdfPreflightReportsaTPdfPreflightReport.IssueCategoryCountsplus ponovo upotrebljivim tipovimaTPdfPreflightIssueCategoryCountiTPdfPreflightIssueCategoryCountsza agregiranje problema na nivou markera po kategoriji - Ažurirani su
TPdfPreflightReport.ToText,ToHtmliToJsontako da generisani PreflightReport izlaz uključuje sažetke brojeva po kategorijama problema uz redove po standardu i detaljne preporuke za probleme - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.36
Version 1.39.35
- Prošireni primer
PrintDialogje preimenovan uPrintPreferenceskroz Delphi, C++Builder i Lazarus tako da ime demoa sada odgovara njegovom toku rada za PDF author print preferences, N-up štampanje, filtriranje odd / even, grayscale, cell border i duplex mapping - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.35
Version 1.39.34
Demo\Delphi\PrintPDFje unapređen učitavanjem PDF-a prevlačenjem i otpuštanjem, a postojeći tok radaDemo\CBuilder\PrintPDFje dokumentovan uz Delphi i Lazarus PrintPDF primere- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.34
Version 1.39.33
- Dodat je
Demo\CBuilder\SplitView, čime je matrica SplitView primera kompletirana kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.33
Version 1.39.32
- Dodat je
Demo\Lazarus\SplitView, čime je poredno poređenje PDF-a stiglo u Lazarus sa rasporedima od dva ili tri panela, navigacijom aktivnog prikaza, sinhronizovanim komandama, presetima zumiranja i rotacijom - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.32
Version 1.39.31
- Dodat je
Demo\Lazarus\PrintPDF, čime je standardni PDF tok štampe stigao u Lazarus sa navigacijom pregleda, opsezima stranica, kopijama, režimom collate, napretkom i otkazivanjem - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.31
Version 1.39.30
- Dodat je
Demo\Lazarus\FontProperties, čime je matrica FontProperties primera kompletirana kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.30
Version 1.39.29
- Dodat je
Demo\CBuilder\FontProperties, čime je pregled indeksiranih znakova i metapodataka fonta stigao u C++Builder uz Delphi primer - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.29
Version 1.39.28
- Dodat je
Demo\Delphi\ExtractTextPages, čime je matrica primera za ekstrakciju teksta po stranici kompletirana kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.28
Version 1.39.27
- Dodat je
Demo\Lazarus\PrintDialog, čime je matrica PrintDialog primera kompletirana kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.27
Version 1.39.26
- Dodat je
Demo\CBuilder\PrintDialog, čime je tok rada za N-up štampanje i PDF author print preferences stigao u C++Builder uz Delphi primer - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.26
Version 1.39.25
- Dodat je
Demo\CBuilder\ViewerInteractionLab, čime je matrica ViewerInteractionLab primera kompletirana kroz Delphi, C++Builder i Lazarus - Ažuriran je tok rada za izgradnju biblioteke i Win64 C++Builder package izlazi tako da
TPdfViewmetode za interakciju sa prikazom ispravno budu povezane u Win64 demo programima - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.25
Version 1.39.24
- Dodat je
Demo\Lazarus\ViewerInteractionLab, čime je fokusirani tok rada interakcije sa prikazom stigao u Lazarus uz Delphi primer - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.24
Version 1.39.23
- Dodat je
Demo\Lazarus\SearchAndSelect, čime je matrica SearchAndSelect primera kompletirana kroz Delphi, C++Builder i Lazarus - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.23
Version 1.39.22
- Dodati su
Demo\CBuilder\ContentExtractionLabiDemo\Lazarus\ContentExtractionLab, čime je tok rada za ekstrakciju sadržaja po više kategorija stigao u sve podržane demo IDE-je - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.22
Version 1.39.21
- Unapređeni su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReportpomoću birača formata pregleda tako da korisnici mogu da pregledaju tekstualni ili JSON izlaz pre čuvanja izveštaja - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i metapodaci verzije instalera da prijavljuju 1.39.21
Version 1.39.20
- Dodat je JSON izvoz u
FPdfPreflightReportprekoTPdfPreflightReport.ToJsoniSaveJsonToFile, uz pregleda pogodne za mašinsko čitanje, status / prioritet po standardu, sledeće korake i detalje o problemima - Ažurirani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReportsa akcijama Save JSON uz TXT / HTML izvoz - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.20
Version 1.39.19
- Unapređen je
FPdfPreflightReportsaTPdfPreflightStatus, kategorijama problema, prioritetom po standardu i smernicama za sledeću radnju u TXT / HTML izveštajima - Ažurirani su
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportiDemo\CBuilder\PreflightReportda prikazuju status, prioritet, broj problema i sledeću radnju u zbirnoj tabeli - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.19
Version 1.39.18
- Dodat je
Demo\Lazarus\SecurityAudit, čime je kompletirana matrica demo primera za radni tok revizije PDF rizika samo za čitanje - Lazarus primer nabraja dozvole, priloge, JavaScript akcije, URI / Launch anotacije veza, veb veze, potpise, XFA stanje, dostupnost pomoćnih funkcija V8 / XFA i povratne pozive za nepodržane funkcije, a zatim čuva ili kopira listu nalaza kao TXT izveštaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.18
Version 1.39.17
- Dodat je
Demo\CBuilder\SecurityAudit, čime je radni tok revizije PDF rizika samo za čitanje stigao u C++Builder uz postojeći Delphi primer - C++Builder primer nabraja dozvole, priloge, JavaScript akcije, URI / Launch anotacije veza, veb veze, potpise, XFA stanje, dostupnost pomoćnih funkcija V8 / XFA i povratne pozive za nepodržane funkcije, a zatim čuva ili kopira listu nalaza kao TXT izveštaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.17
Version 1.39.16
- Dodat je
Demo\CBuilder\SearchAndSelect, čime je samostalni tok rada pregleda SearchAndSelect stigao u C++Builder uz postojeći Delphi primer - C++Builder primer kreira ili otvara PDF-ove, prikazuje poklapanja sa svih strana uz preglede stranice / indeksa karaktera, podržava Previous / Next i navigaciju dvostrukim klikom, i ističe poklapanja na trenutnoj stranici pomoću
HighlightSearchText - Takođe izlaže opcije
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangei prošireniDisplayMode; metapodaci verzije sada prijavljuju 1.39.16
Version 1.39.15
- Dodat je
Demo\CBuilder\WatermarkStamp, čime je kompletirana matrica demo primera za ponovo upotrebljive tokove rada za vodene žigove i pečate pomoću Form XObject objekata kroz Delphi, Lazarus i C++Builder - C++Builder primer kreira ciljane i pečatne PDF-ove, ponovo koristi stranicu pečata kroz
CreateXObjectFromPage, primenjuje transformacijeTPdfMatrixi čuva centrirane vodene žigove, pečate u uglu i oznake broja stranice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.15
Version 1.39.14
- Dodat je
Demo\Lazarus\WatermarkStamp, čime je ponovo upotrebljiv tok rada za vodene žigove i pečate pomoću Form XObject objekata stigao u Lazarus - Lazarus primer kreira ciljane i pečatne PDF-ove, ponovo koristi stranicu pečata kroz
CreateXObjectFromPage, primenjuje transformacijeTPdfMatrixi čuva centrirane vodene žigove, pečate u uglu i oznake broja stranice - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.14
Version 1.39.13
- Dodat je
Demo\CBuilder\PreflightReport, čime je kompletirana matrica demo primera za ponovo upotrebljiv tok radaFPdfPreflightReportkroz Delphi, Lazarus i C++Builder - C++Builder primer koristi
FPdfPreflightReport.hppza generisanje sažetaka po standardu, pregleda TXT izveštaja, TXT / HTML datoteka izveštaja i ponašanja Open Last Report - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.13
Version 1.39.12
- Dodat je
Demo\Lazarus\PreflightReport, čime je tok rada preflight izveštaja za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R i PDF/VT stigao u Lazarus - Lazarus primer može da otvori ili kreira PDF, izabere ciljne standarde, prikaže redove sažetka i izlaz TXT izveštaja, sačuva TXT / HTML izveštaje i otvori poslednje sačuvani izveštaj
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.12
Version 1.39.11
- Unapređen je
Demo\Delphi\SearchAndSelectsa listom rezultata pretrage za sve strane koja beleži broj stranice, indeks karaktera i tekst pregleda - Dodati su Previous / Next za navigaciju kroz poklapanja i skok na rezultat dvostrukim klikom, uz zadržavanje ponašanja
HighlightSearchTextna trenutnoj stranici - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.11
Version 1.39.10
- Unapređen je
Demo\Delphi\SecurityAuditakcijama Save Report i Copy Report koje izvoze trenutni sažetak i redove nalaza kao TXT revizorski izveštaj - Primer sada briše stanje izvoza izveštaja kada se revizorski panel resetuje, pa kopirani ili sačuvani izveštaji ostaju usklađeni sa vidljivim nalazima
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.10
Version 1.39.9
- Unapređen je
Demo\Delphi\ContentExtractionLabmogućnošću čuvanja izvornog PDF-a, kopiranja izveštaja u međuspremnik i akcijama za izbor svih / nijedne kategorije - Primer sada poništava trenutni izveštaj kada se izbor kategorija promeni, tako da TXT / JSON izvozi odražavaju vidljivi obim ekstrakcije
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.9
Version 1.39.8
- Dodat je
Demo\Delphi\ContentExtractionLab, objedinjeni primer toka rada za ekstrakciju sadržaja za metapodatke dokumenta, tekst stranice, objekte stranice, slike, priloge, veze, anotacije, obeleživače i metriku fonta / karaktera - Primer može da otvori postojeći PDF ili da kreira sintetički PDF sa tekstom, slikom, prilogom i sadržajem anotacija, a zatim da generiše redove sažetka i detaljne TXT / JSON izveštaje
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.8
Version 1.39.7
- Dodat je
Lib\FPdfPreflightReport.pas, ponovo upotrebljivi pomoćnik za izveštaje koji obuhvataValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRiValidatePdfVTu jedan objekatTPdfPreflightReport - Dodat je
Demo\Delphi\PreflightReport, primer toka rada koji otvara ili kreira PDF, bira ciljne standarde, prikazuje redove sažetka i preporuke za probleme i čuva TXT ili HTML izveštaje - Generisani izveštaji izričito opisuju ugrađenu granicu validacije na nivou markera, tako da ih aplikacije po potrebi mogu upariti sa namenskim alatima za preflight na nivou sadržaja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa, liste projekata paketa i instalacioni metapodaci verzije da prijavljuju 1.39.7
Version 1.39.6
- Dodat je
Demo\Delphi\SearchAndSelect, fokusirani primer toka rada pregleda za isticanje pretrage, izbor teksta, pregled izabranog teksta, kopiranje, čišćenje i režime prikaza sa rasporedom strana - Primer demonstrira
HighlightSearchText, opcije pretrage sa poklapanjem velikih i malih slova / cele reči,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardiClearSelectionbez dodavanja novog API-ja biblioteke - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.6
Version 1.39.5
- Proširen je
Demo\Delphi\ViewerInteractionLabu uzorak UX pregleda nalik SearchAndSelectu saHighlightSearchText, opcijama za poklapanje velikih i malih slova / cele reči, pregledom izabranog teksta i postojećim kontrolama za izbor / međuspremnik - Proširen je
Demo\Delphi\PrintDialogza proveru PDF author postavki štampe:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingi vidljivo mapiranje dupleksaSetPdfPrintPaperHandlingDevMode - Dodat je
Demo\Delphi\SecurityAudit, primer rizika samo za čitanje koji nabraja dozvole, priloge, JavaScript dokumenta, URI / Launch veze, veb veze, potpise, XFA stanje i dostupnost pomoćnih funkcija V8 / XFA - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.5
Version 1.39.4
- Dodati su
Demo\CBuilder\ImageToPDFiDemo\Lazarus\ImageToPDF, čime je kompletirana matrica primera ImageToPDF kroz Delphi, C++Builder i Lazarus - Novi primeri demonstriraju izbor više slika, pregled izabrane slike, jednu PDF stranicu po slici, veličinu stranice A4 uspravno / položeno, centrirano skaliranje slike, napredak po slici i otvaranje generisanog PDF-a nakon čuvanja
- Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.4
Version 1.39.3
- Dodat je
Demo\CBuilder\BatchExport, čime je tok rada za izvoz više PDF fajlova u JPG stigao u C++Builder uz postojeće Delphi i Lazarus primere - Primer demonstrira
LoadCustomDocument,IPdfCancellationTokenSource, ulazni tokTFileStream, napredak po fajlu i po strani, obradu prekida, unos DPI / kvaliteta / lozinke i otvaranje izlazne fascikle nakon završetka - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.3
Version 1.39.2
- Dodat je
Demo\Delphi\WatermarkStamp, primer toka rada za Form XObject koji se može pokrenuti i koji kreira ciljni PDF i ponovo upotrebljiv pečatni PDF, a zatim primenjuje centrirane vodene žigove, pečate gore desno i oznake broja stranice na svakoj strani - Primer demonstrira
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixiFPDFPageObj_SetMatrixbez dodavanja novog API-ja biblioteke - Ažuriran je
Docs\en-us\Examples.htmlda koristi trenutni obrazacTPdfMatrix.Handlepri prosleđivanju matrica uFPDFPageObj_SetMatrix - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.2
Version 1.39.1
- Dodat je
Demo\Delphi\ViewerInteractionLab, fokusirani primerTPdfViewza režime prikaza, režime prilagođavanja, boje stranice, rotaciju, izbor teksta od strane korisnika, akcije međuspremnika i povratnu informaciju o koordinatamaDeviceToPage - Dodati su
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLabkako bi korisnici Lazarusa mogli da pokreću tok rada za validaciju i marker izlaz 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 build DelphiSplitViewprimera je ispravljen uklanjanjem duplogWinapi.ShellAPIimporta - Ispravljeni su blokatori batch-builda Delphi primera u
BatchExport,PDFViewer,MultiPageVieweriSplitViewbez menjanja njihovog izvršnog ponašanja - Ispravljena je kompatibilnost batch-builda C++Builder primera u
PDFVieweriMultiPageViewerzamenomnullptrsaNULLza trenutni režim projekta - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.1
Version 1.39.0
- Dodat je
Demo\Delphi\StandardsLab, primer standardnog toka rada koji se može pokrenuti i koji učitava ili kreira PDF, pokrećeValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRiValidatePdfVT, i prikazuje otkrivenu usaglašenost, status prolaženja / neprolaženja i broj problema u jednoj tabeli - Dugmad za čuvanje u
StandardsLabpozivajuSaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRiSaveAsPdfVT, pa je marker izlaz PDF standarda vidljiv bez pisanja prilagođenog harnessa - Ažurirani su
TPdf.AboutInfo, metapodaci Lazarus paketa i instalacioni metapodaci verzije da prijavljuju 1.39.0
Version 1.38.0
- Preklopi za pretragu i izbor teksta u
TPdfViewsada koriste pravo alpha mešanje umesto logičkog crtanja maske, čuvajući sadržaj stranice ispod isticanja - Dodat je
SetPdfPrintPaperHandlingDevModeza mapiranjeTPrintPaperHandlingu WindowsDEVMODE.dmDuplexvrednosti:DMDUP_SIMPLEX,DMDUP_HORIZONTALiDMDUP_VERTICAL TPdfView.SmoothScrollsada animira komande linijskog / stranicnog klizača u segmentima vođenim tajmerom; praćenje ručice ostaje trenutno- Ažurirani su
TPdf.AboutInfoi instalacioni metapodaci verzije da prijavljuju 1.38.0
Version 1.37.0
TPdfsada poseduje render zaključavanje po instanci koje sekvencira putanjeRenderPage,RenderTile,RenderPageProgressive, ponovnog učitavanja stranice i rasterećenja dokumenta. Renderovanje pokretano radnikom kroz deljeni komponent je sada praktično, dok aplikacije i dalje koordiniraju izmenu dokumenta i životni vek- Ispravljen je zero-copy omotač za bitmap da odbaci bottom-up
TBitmapDIB rasporede i pre kopiranja pređe na bafer u vlasništvu PDFium-a, čime se uklanjaju greške u testovima renderovanja VCL-a izazvane korupcijom stride-a / access violation - Pooštreno je ponašanje selekcije u
TPdfView:AllowUserTextSelectionograničava samo korisnički unos, API-ji za selekciju na nivou koda i dalje crtaju, aSelectAllprati stvarni vidljivi raspored strana tako da naslovna strana više ne bira stranu 2. Testovi za Delphi, Lazarus i C++Builder su prošireni shodno tome - Ažurirani su
TPdf.AboutInfoi instalacioni metapodaci verzije da prijavljuju 1.37.0
Version 1.36.0
- Aktiviran je izbor teksta od strane krajnjeg korisnika u
TPdfView— svojstvoAllowUserTextSelectionrezervisano u v1.17.0 sada pokreće kompletan drag-select tok. Levi klik na znak teksta ulazi u režim izbora (hit-test auto); levi klik na praznu oblast nastavlja pomeranje kao i ranije. Widget za popunjavanje obrazaca zadržava prioritet, pa klik na polje obrasca i dalje fokusira polje umesto da započne izbor - Dvostruki klik bira reč, trostruki klik bira liniju,
Ctrl+Abira trenutnu stranicu (obe strane u režimima rasporeda sa rasporedom strana), aCtrl+Ckopira izbor u Windows clipboard kaoCF_UNICODETEXT Shift+Left/Shift+Rightproširuje izbor po jedan znak u jednom koraku (prelazeći na susednu stranicu u rasporedu sa stranicama);Shift+Home/Shift+Endproširuje do vizuelnog ruba linije koristeći visinu okvira početnog znaka kao toleranciju klastera linije, pa linije sa mešovitim veličinama fonta ostaju ispravno grupisane- Lebdenje iznad teksta menja kursor u
crIBeam; odlebdavanje sa teksta vraća podrazumevani kursor. Dok je prevlačenje za izbor teksta u toku, prevlačenje u mrtvu zonu od 20 piksela na bilo kom rubu pregleda automatski skroluje stranicu (tick od 50 ms, 16 px / tick, ograničeno na iste granice koje koristi putanja pomeranja) tako da se izbor može produžiti van trenutnog prikaza bez puštanja miša - Izbor preko stranica radi u režimima rasporeda sa stranicama (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): prevlačenje započeto na levoj strani i završeno na desnoj strani bira neprekidan opseg koji obuhvata obe.SelectedTextspaja isečke po stranici sa CR/LF tako da vraćeni tekst izgleda kao normalan višelinijski sadržaj - Novo objavljeno svojstvo
SelectionColor(podrazumevanoclHighlight, Windows sistemska boja selekcije) — nezavisno odHighlightColorkoji boji rezultate pretrage žutom. Označavanje pretrage i aktivan izbor prevlačenjem mogu da se prikažu istovremeno bez konflikta boja - Novi objavljeni događaj
OnSelectionChangeokida se svaki put kada se materijalizovani opsezi izbora stvarno promene — nikad pri identičnom ponovnom postavljanju, pa host aplikacije mogu da ga direktno vežu za tekst statusne trake ili stanje dugmeta bez debouncinga - Novi javni API na
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Ovo su ulazne tačke na nivou koda i uvek rade bez obzira naAllowUserTextSelection— zastavica ograničava samo korisnički unos (miš, Ctrl+C, Ctrl+A, Shift+strelice), pa kiosk hostovi mogu da isključe izbor pokretan korisnikom dok i dalje grade dugmad alatne trake "Select All / Copy" koja koriste isti API - Podrazumevani iskačući meni za desni klik
Copy/复制automatski se kači kada host nije dodelio sopstveniPopupMenu— standardno "izaberi tekst, desni klik, copy" radi odmah po izlasku iz kutije. Natpis bira između engleskog i kineskog prekoSysLocale.PriLangID; hostovi kojima treba potpuna lokalizacija (ili bogatiji meni) samo dodele svojPopupMenui podrazumevani meni se potiskuje - Izbor se automatski briše na prelazima
SetPdf,SetPageNumber,SetActive(False)iDisplayMode, uzOnSelectionChangekoji se okida tačno jednom kada je prethodni izbor bio neprazan. Podsistem za popunjavanje obrazaca zadržava prioritet — dok se polje obrasca uređuje, sve prečice za izbor na tastaturi se odlažu tako da polje dobijeCtrl+C/Ctrl+A/Shift+streliceza sopstveni izbor - Prošireni su regresioni skupovi za Delphi i Lazarus na po 202 slučaja, a C++Builder skup na 159 slučajeva, pokrivajući podrazumevane vrednosti, round-trip, ponašanje javnog API-ja, čišćenje pri promeni stanja, prevlačenje mišem (hit-text / hit-blank), klik naspram prevlačenja, prebacivanje kursora u IBeam, dvoklik za reč, troklik za liniju, prečice na tastaturi, podrazumevano kačenje / odlaganje / natpis iskačućeg menija i izbor preko stranica — uključujući proveru clipboard CR/LF round-trip-a
Version 1.35.0
- Dodat je marker injection za PDF/VT (ISO 16612-2:2010):
TPdf.SaveAsPdfVTpretvara trenutni dokument u fajl usaglašen sa PDF/VT-1 ili PDF/VT-2 (podskup PDF-a za promenljivo i transakciono štampanje). PDF/VT je zasnovan na PDF/X-4 — ISO 16612-2 §6.2.1 zahteva da svaki PDF/VT-1 fajl bude i usklađen sa PDF/X-4 — pa ubacivač upisuje kompletan skup markera PDF/X-4 (pdfxid:GTS_PDFXVersion = "PDF/X-4"u XMP-u,/GTS_PDFXVersion (PDF/X-4)u Info-u i/Trapped, katalog/OutputIntentskoji upućuje na OutputIntent rečnik sa ugrađenim ICC profilom) uz svojstva specifična za PDF/VT - Ubacivanje specifično za PDF/VT pokriva XMP
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" ili "PDF/VT-2" po §6.3 Tabela 2) ipdfvtid:GTS_PDFVTModDate(usklađen saxmp:ModifyDatepo §6.3 NOTE 1), plus opispdfaExtension:schemaskoji proglašava ipdfxidipdfvtidnamespace-ove (NPES URI-jevihttp://www.npes.org/pdfx/ns/id/ihttp://www.npes.org/pdfvt/ns/id/) Taj opis nosi/IDniz - Dodat je
TPdf.SaveAsPdfVTToStreamza in-memory PDF/VT izlaz, i skraćeni zapis podrazumevanih opcijaTPdf.SaveAsPdfVT(FileName)koji proizvodi PDF/VT-1 sa ugrađenim sRGB IEC61966-2.1 OutputIntent-om (3144 bytes, isti profil kao SaveAsPdfA / SaveAsPdfX) i/Trapped /False - Dodat je
TPdf.ValidatePdfVT: proverava otvoreni PDF na PDF/VT oznake usaglašenosti (prisustvo XMPpdfvtid:GTS_PDFVTVersioniGTS_PDFVTModDate, jednakost izmeđupdfvtid:GTS_PDFVTModDateixmp:ModifyDate, prisustvo osnovnog identifikatorapdfxid:GTS_PDFXVersion, prisustvo kataloga/DPartRootpo §6.5,/OutputIntentssa/DestOutputProfile, trailer /ID, status enkripcije, prisustvoxmp:CreateDate/ModifyDate) i vraćaTPdfVTValidationResultsa otkrivenim nivoom usaglašenosti i skupom pronađenih problema - Dodat je svojstvo
TPdf.PdfVTConformance: vraća nivo usaglašenosti trenutno otvorenog dokumenta (pvc1, pvc2, pvcNone ili pvcUnknown) bez potrebe da seValidatePdfVTpozove eksplicitno - Novi tipovi izvezeni u novoj jedinici
FPdfPdfvt:TPdfVTConformance(pvcUnknown/None/1/2),TPdfVTTrappedState(ptvUnspecified/True/False/Unknown),TPdfVTValidationResult,TPdfVTValidationIssue,TPdfVTSaveOptions - Hijerarhija delova dokumenta (
DPartRoot/ stabloDPartpo §6.5) je struktura na nivou aplikacije koja zavisi od mapiranja primaoca / opsega stranica u radnom toku štampe promenljivih podataka.SaveAsPdfVTNE sintetiše DPart stablo —ValidatePdfVTizlaže nedostajući/DPartRootkaopvviMissingDPartRoottako da pozivaoci mogu da usmere PDF/VT fajlove kroz poseban korak izgradnje DPart-a. Zahtevi PDF/X-4 na nivou sadržaja (ugrađivanje fontova, transparentnost, ICC upravljana boja, zabrane OPI / JavaScript / Reference XObject, itd.) ostaju odgovornost autora dokumenta i PDFium-ovog render pipeline-a - Ažuriran je string
TPdf.AboutInfoda prijavljuje trenutnu verziju proizvoda
Version 1.34.0
- Dodat je marker injection za PDF/R-1 (ISO 23504-1:2020):
TPdf.SaveAsPdfRpretvara trenutni dokument u fajl usaglašen sa PDF/R-1 (podskup PDF-a za transport raster-slike koji se koristi za skenirane dokumente). Ubacivanje pokriva zahteve na nivou formata fajla koji se mogu dodati naknadnom obradom — jedinstveni komentar identifikacije verzije%PDF-raster-1.0upisan između trailer rečnika i ključne rečistartxref(§5), kataloški rečnik sveden na belu listu iz §6.3 (preživljavaju samo Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata), Document Information Dictionary sveden na belu listu iz §6.4.3 (samo Creator / Producer / CreationDate / ModDate), katalog /Metadata XMP tok sa četiri stavke iz Table 1 u §6.4.4 (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate) i trailer /ID niz - Dodat je
TPdf.SaveAsPdfRToStreamza in-memory PDF/R izlaz, i skraćeni zapis podrazumevanih opcijaTPdf.SaveAsPdfR(FileName)za uobičajeni slučaj - Dodat je
TPdf.ValidatePdfR: proverava otvoreni PDF na oznake usaglašenosti PDF/R-1 (footer komentar%PDF-raster-x.y, verzija zaglavlja, odsustvo/Type /ObjStm, usaglašenost sa belom listom kataloga, usaglašenost sa belom listom Info rečnika, prisustvo XMP metadata toka, trailer /ID) i vraćaTPdfRValidationResultsa otkrivenim nivoom usaglašenosti i skupom pronađenih problema - Dodat je svojstvo
TPdf.PdfRConformance: vraća nivo usaglašenosti trenutno otvorenog dokumenta (prc1, prcNone ili prcUnknown) bez potrebe da seValidatePdfRpozove eksplicitno - Novi tipovi izvezeni u novoj jedinici
FPdfPdfr:TPdfRConformance,TPdfRValidationResult,TPdfRValidationIssue,TPdfRSaveOptions.TPdfRSaveOptions.DefaultpostavljaStripInfoOptionalEntriesiStripCatalogOptionalEntriesna True, pa ubacivač podrazumevano proizvodi katalog i Info rečnik usaglašen sa §6.3 / §6.4.3; pozivaoci mogu da ih postave na False da sačuvaju izvorne stavke (izlaz tada neće zadovoljiti te PDF/R klauzule, ali će drugi markeri ostati prikačeni) - Zahtevi na nivou sadržaja ostaju odgovornost izvornog PDF-a: struktura Contents po strani (§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), odsustvo object stream-ova (§6.2.4) i raspored stripova po §6.6. Ovo se ne može nametnuti naknadnom obradom — PDF/R je strukturno mnogo stroži podskup od ostalih PDF/x standarda i zahteva da se izvorni bajtovi generišu ispravno.ValidatePdfRizlaže probleme formata fajla koje ova jedinica može da otkrije; uparite ga sa TWAIN Working Group PDF/R validatorom za potpunu proveru na nivou sadržaja - Ažuriran je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda
Version 1.33.0
- Dodat je ubacivanje markera za PDF/X (porodica ISO 15930):
TPdf.SaveAsPdfXpretvara trenutni dokument u fajl usaglašen sa PDF/X-1a:2001, PDF/X-3:2002 ili PDF/X-4 tako što naknadnom obradom osnovnog PDF-a primenjuje inkrementalno ažuriranje. Ubacivanje pokriva zahteve na nivou formata fajla koji se mogu dodati naknadnom obradom — XMP metadata tok koji nosipdfxid:GTS_PDFXVersion(ipdfxid:GTS_PDFXConformanceza PDF/X-1a / PDF/X-3) uz odgovarajući opispdfaExtension:schemas, prepisani Document Information Dictionary sa stavkama/GTS_PDFXVersion,/GTS_PDFXConformancei/Trapped, ažurirani katalog sa/OutputIntents [N 0 R]koji upućuje na OutputIntent rečnik sa/S /GTS_PDFXi ugrađenim ICC profilom, i trailer/IDniz - Dodat je
TPdf.SaveAsPdfXToStreamza in-memory PDF/X izlaz, i skraćeni zapis podrazumevanih opcijaTPdf.SaveAsPdfX(FileName)koji proizvodi PDF/X-4 sa ugrađenim sRGB IEC61966-2.1 OutputIntent-om (3144 bytes, identičnim profilu koji koristi SaveAsPdfA) - Dodat je
TPdf.ValidatePdfX: proverava otvoreni PDF na oznake usaglašenosti PDF/X (XMP identifikatorpdfxidi jednakost sa vrednošću u Info rečniku, opis šeme proširenjapdfxid, niz/OutputIntentssa/DestOutputProfile, prisustvo Title, trailer /ID, status enkripcije, prisustvoxmp:CreateDate/xmp:ModifyDate) i vraćaTPdfXValidationResultsa otkrivenim nivoom i skupom pronađenih problema - Dodat je svojstvo
TPdf.PdfXConformance: vraća nivo usaglašenosti trenutno otvorenog dokumenta (pxc1a, pxc3, pxc4, pxcNone ili pxcUnknown) bez potrebe da seValidatePdfXpozove eksplicitno. XMP string verzije se parsira da bi se razlučila tri nivoa usaglašenosti - Novi tipovi izvezeni 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 OutputIntent-om i/Trapped /False; pozivaoci mogu da prepišuConformance, da obezbede CMYKIccProfileDatablob za komercijalne tokove štampe, ili da promeneOutputCondition/OutputConditionIdentifier/RegistryNametako da upućuju na određeni ICC unos u registru karakterizacije (npr. FOGRA39, GRACoL2006_Coated1v2) - Zahtevi na nivou 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.) ostaju odgovornost autora dokumenta i PDFium-ovog render pipeline-a. Uparite
ValidatePdfXsa alatkom za preflight poput callas pdfaPilot ili Ghent PDF Workgroup Output Suite za potpunu proveru usaglašenosti - Ažuriran je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda
Version 1.32.0
- Dodat je marker injection za PDF/E-1 (ISO 24517-1:2008):
TPdf.SaveAsPdfEpretvara trenutni dokument u fajl usaglašen sa PDF/E-1 tako što naknadnom obradom osnovnog PDF-a primenjuje inkrementalno ažuriranje. Ubacivanje pokriva zahteve na nivou formata fajla koji se mogu dodati naknadnom obradom — XMP metadata tok koji nosipdfe:ISO_PDFEVersion = "PDF/E-1"uz odgovarajući opispdfaExtension:schemas, prepisani Document Information Dictionary sa obaveznom stavkom/ISO_PDFEVersion (PDF/E-1)traženom u §5, blokove za premošćavanje Info-XMP nasleđ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) i trailer/IDniz potreban po §6.2 - Dodat je
TPdf.SaveAsPdfEToStreamza in-memory PDF/E izlaz i skraćeni zapis podrazumevanih opcijaTPdf.SaveAsPdfE(FileName)za uobičajeni slučaj - Dodat je
TPdf.ValidatePdfE: proverava otvoreni PDF na oznake usaglašenosti PDF/E-1 (prisustvo XMPpdfe:ISO_PDFEVersioni jednakost sa vrednošću u Info rečniku, opis šeme proširenjapdfe, stavku Info rečnika/ISO_PDFEVersion, trailer /ID, prisustvoxmp:CreateDate/xmp:ModifyDate) i vraća strukturisan rezultat sa otkrivenim nivoom usaglašenosti i skupom pronađenih problema - Dodat je svojstvo
TPdf.PdfEConformance: vraća nivo usaglašenosti trenutno otvorenog dokumenta (pec1, pecNone ili pecUnknown) bez potrebe da seValidatePdfEpozove eksplicitno - Novi tipovi izvezeni u novoj jedinici
FPdfPdfe:TPdfEConformance,TPdfEValidationResult,TPdfEValidationIssue,TPdfESaveOptions - Prepisivanje Info rečnika je prvo takvo rešenje za PDFiumPas-ovu PDF/x putanju naknadne obrade — ono prepisuje postojeći Info objekat sa istim brojem objekta (pa xref subsekcija / trailer /Info reference ostaju važeći) i sintetiše novi Info rečnik kada izvorni trailer nema
/Infostavku. Sam PDFium emituje Info rečnik u svakom SaveAs izlazu, pa je uobičajeni slučaj upravo putanja prepisivanja - Zahtevi na nivou sadržaja (ugrađivanje fontova, ToUnicode CMaps, zabranjeni XObjects / ExtGState ključevi / XFA obrasci, itd.) ostaju odgovornost autora dokumenta —
SaveAsPdfEprikačinje markere formata fajla, ali ne menja sadržaj stranice niti uklanja zabranjene funkcije - Ažuriran je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda
Version 1.31.0
- Dodat je marker injection za PDF/UA-1 (ISO 14289-1:2014):
TPdf.SaveAsPdfUapretvara trenutni dokument u fajl usaglašen sa PDF/UA-1 tako što naknadnom obradom osnovnog PDF-a primenjuje inkrementalno ažuriranje. Ubacivanje pokriva zahteve na nivou formata fajla koji se mogu nametnuti naknadnom obradom — XMP metadata tok koji nosipdfuaid:part = 1uz odgovarajući opispdfaExtension:schemas, obaveznidc:title, katalog/MarkInfo << /Marked true /Suspects false >>i/ViewerPreferences << /DisplayDocTitle true >>(samo kada izvor nema nijedan), katalog/Lang(kada pozivalac prosledi BCP 47 tag) i trailer/IDniz - Dodat je
TPdf.SaveAsPdfUaToStreamza in-memory PDF/UA izlaz, i skraćeni zapis podrazumevanih opcijaTPdf.SaveAsPdfUa(FileName)za uobičajeni slučaj - Dodat je
TPdf.ValidatePdfUa: proverava otvoreni PDF na oznake usaglašenosti PDF/UA-1 (postojanje StructTreeRoot, /Lang,/MarkInfo /Marked truesa/Suspects = false,/ViewerPreferences /DisplayDocTitle true, identifikator XMPpdfuaid:part, prisustvodc:title, trailer /ID, status enkripcije) i vraća strukturisan rezultat sa otkrivenim nivoom usaglašenosti i skupom pronađenih problema - Dodat je svojstvo
TPdf.PdfUaConformance: vraća nivo usaglašenosti trenutno otvorenog dokumenta (puc1, pucNone ili pucUnknown) bez potrebe da seValidatePdfUapozove eksplicitno - Novi tipovi izvezeni u novoj jedinici
FPdfPdfua:TPdfUaConformance,TPdfUaValidationResult,TPdfUaValidationIssue,TPdfUaSaveOptions - Polja
Title/Author/Subject/Keywords/Creator/Producer/CreationDate/ModDate/DocumentId/InstanceId/Languagekoja ostanu prazna uTPdfUaSaveOptionsautomatski se popunjavaju izFPDF_GetMetaText/FPDF_GetFileIdentifier/FPDFCatalog_GetLanguage, pa postojeći pozivaoci mogu da čuvaju sa jednom linijom - Zahtevi na nivou sadržaja (potpuno označavanje StructTreeRoot, Alt tekst za Figure, ToUnicode CMaps, ugrađivanje fontova, itd.) ostaju odgovornost autora dokumenta —
SaveAsPdfUaprikačinje markere formata fajla, ali ne menja sadržaj stranice niti izmišlja tagove.ValidatePdfUaizlaže odsustvo StructTreeRoot kaopvuaiMissingStructTreeRoottako da pozivaoci mogu da usmere neoznačene dokumente kroz zasebnu tagging putanju - Ažuriran je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda
Version 1.30.0
- Izlaz PDF/A-1b sada ispunjava zahteve ISO 19005-1 (sa Cor.1:2007) za jednakost Document Information Dictionary / XMP: svaka Info stavka koju PDFium upisuje u osnovni PDF preslikava se u XMP paket, uključujući Title (dc:title), Author (dc:creator), Subject (dc:description po Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) i ModDate (xmp:ModifyDate). Emituje se i
xmp:MetadataDate - Trailer PDF/A dokumenta sada uvek sadrži
/IDniz (strogi zahtev ISO 19005-1 6.1.3). KadaTPdf.SaveAsPdfAobrađuje dokument čiji izvor već ima identifikator fajla, postojeći 16-bajtni permanentni i promenljivi ID-ovi se ponovo koriste; u suprotnom se deterministički 16-bajtni rezervni ID izvodi iz izvornog bajt toka - Ubrizgani XMP sada ugrađuje opis pdfaid šeme proširenja koji zahteva ISO 19005-1 6.7.8 (zamenjen Cor.1) —
pdfaidse tretira kao šema proširenja u odnosu na XMP Specification 2004, pa svi usaglašeni fajlovi moraju da proglase nazive svojstava, tipove vrednosti i kategorije u kontejnerupdfaExtension:schemas TPdfASaveOptionsje dobio pet novih opcionih polja:Producer,CreationDate,ModDate(PDF date stringovi u formatuD:YYYYMMDDHHmmSSOHH'mm'),DocumentIdiInstanceId(16-bajtni byte stringovi za trailer/IDniz).TPdf.SaveAsPdfA/SaveAsPdfAToStreamautomatski popunjavaju nedostajuća polja izFPDF_GetMetaTextiFPDF_GetFileIdentifier, pa postojeći pozivaoci nastavljaju da rade bez promenaTPdf.ValidatePdfA/TPdf.PdfAConformancesada prijavljuju tri dodatna problema:pvaiMissingTrailerId(nema/IDu trailer-u),pvaiMissingXmpDates(xmp:CreateDateilixmp:ModifyDatenedostaje) ipvaiMissingExtensionSchema(opis pdfaid šeme proširenja nedostaje)- Nenumerički znakovi u Title, Author, Subject, Keywords, Creator i Producer sada se kodiraju kao UTF-8 u XMP paketu (XMP Specification zahteva UTF-8), čuvajući višejezički round-trip metapodataka kroz
SaveAsPdfA - Ažuriran je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda
Version 1.29.0
- Osveženi su priloženi PDFium DLL-ovi (Win32 i Win64, i standardne i V8 gradnje) na upstream snimak od 2026-05-22, preuzimajući upstream ispravke za putanje rušenja
FPDFText_SetText/FPDFText_SetCharcodesi razna interna pooštravanja iz PDFium projekta - Nova PDFium-ova zastavica čuvanja
FPDF_SUBSET_NEW_FONTSizložena je uFPdfPageOps.pas, pa pozivaociFPDF_SaveAsCopymogu da zatraže automatsko izdvajanje podskupa ugrađenih datoteka fontova za novo dodate tekstualne objekte. Postojeće konstanteFPDF_INCREMENTAL,FPDF_NO_INCREMENTALiFPDF_REMOVE_SECURITYsada su definisane u upstream obliku sa pomeranjem bitova (stara numerička vrednost 3 je sačuvana kaoFPDF_REMOVE_SECURITY_DEPRECATEDradi binarne kompatibilnosti) - Dodat je enum
FPDF_FONT_BACKEND_TYPE(FREETYPE/FONTATIONS) i odgovarajuće poljem_FontLibraryTypeuFPDF_LIBRARY_CONFIGuFPdfView.pas, tako da aplikacije koje inicijalizuju PDFium sa Skia rendererom sada mogu da izaberu font backend pri startovanju - Ažuriran je potpis
TFPDFPage_InsertObjectda se uskladi sa upstream-om: C funkcija sada vraćaFPDF_BOOL(TRUEpri uspehu,FALSEako jepage_objectNULLili transfer vlasništva ne uspe) umestovoid. Postojeći pozivaoci PDFiumPas-a i dalje se kompajliraju nepromenjeno jer Delphi / FPC dozvoljavaju ignorisanje povratne vrednosti funkcije - Ispravljen je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda (bio je zastareo na v1.27.0 od dokumentacionog izdanja v1.28.0)
Version 1.28.0
- Značajno je proširena dokumentacija unutar stranica kroz celu API referencu: svaka stavka svojstva, metode, događaja i globalne funkcije sada nosi Description od 3 pasusa, listu Remarks, višelinijski Delphi Example i bogatiji blok See Also — pokrivajući više od 200 ranije tankih strana uključujući sve TPdf brojače, getere metapodataka, pristupe fontu i karakteru, svojstva na nivou stranice, indeksirane zapise, metode na nivou dokumenta i celu površinu stanja / prikaza / događaja za TPdfView
- Fino je doteran raspored pomoći da odgovara vizuelnoj osnovi losLab-a korišćenoj u HotXLS referenci: usklađene su veličine h1/h2, objedinjeni su stilovi API navigacione mreže u zajednički StyleSheet i uklonjene su inline CSS izmene po stranici na
Navigation.html - Dokumentacija sada dolazi sa pomoćnom skriptom (
Docs\Build-Expand-Entries.ps1) koja regeneriše obogaćivanje stranica stavki iz jedne tabele podataka za ponovljivo održavanje
Version 1.27.0
- Dodata je podrška za kreiranje PDF/A-1b:
TPdf.SaveAsPdfAčuva bilo koji otvoren dokument kao fajl usaglašen sa PDF/A-1b tako što naknadnom obradom osnovnog PDF-a primenjuje inkrementalno ažuriranje koje ubacuje XMP metadata tok, sRGB ICC OutputIntent i ažurirani document catalog — sve bez potrebe za dodatnim DLL API-jima. Radi na svakoj platformi koju podržava PDFiumPas - Dodat je
TPdf.SaveAsPdfAToStreamza in-memory PDF/A izlaz - Dodat je
TPdf.ValidatePdfA: proverava otvoreni PDF na usaglašenost sa PDF/A (XMPpdfaidmarkeri,OutputIntentsa ugrađenim ICC profilom, enkripcija) i vraća strukturisan rezultat sa otkrivenim nivoom usaglašenosti i skupom konkretnih pronađenih problema - Dodat je svojstvo
TPdf.PdfAConformance: vraća nivo usaglašenosti trenutno otvorenog dokumenta (pac1b, pac1a, pac2b, pac3b, pacNone ili pacUnknown) bez potrebe da seValidatePdfApozove eksplicitno - Izvezeni su novi tipovi:
TPdfAConformance,TPdfAValidationResult,TPdfAValidationIssue,TPdfASaveOptions(u novoj jediniciFPdfPdfa.pas) - Ažuriran je
TPdf.AboutInfostring da prijavljuje trenutnu verziju proizvoda
Version 1.26.0
- Dodat je
Demo/Lazarus/BatchExport, LCL portv1.14.0DelphiBatchExportprimera. Isti skup mogućnosti: izvoz više fajlova PDF -> JPG sa ukupnim napretkom po fajlu, trenutnim napretkom po strani, unosima DPI / kvaliteta / lozinke i batch obradom koja može da se prekine uz podrškuIPdfCancellationToken. Izlazna fascikla se otvara u platformskom menadžeru datoteka kada se ekstrakcija uspešno završi
Version 1.25.0
- Dodata je ponovna upotreba stranice kao Form XObject u
TPdf, čime su omogućeni tokovi rada za vodeni žig, preklop šablona i “pečatiranje jedne stranice na mnogo njih”:CreateXObjectFromPagepravi ponovo upotrebljiv handle iz bilo koje stranice drugog dokumenta;InsertFormObjectFromXObjectumeće JEDNU kopiju umotane stranice u trenutnu stranicu. Vraća ubačeniFPDF_PAGEOBJECTtako da pozivalac može da ga pozicionira / skalira / rotira pomoćuFPDFPageObj_SetMatrixiTPdfMatrixpomoćnika iz v1.9.0 - Nova Pascal klasa
TPdfXObjectobmotava PDFium-ov handleFPDF_XOBJECTi zatvara ga automatski u destruktoru, čime se uklanja ručni ritualFPDF_CloseXObject - Prošireni su regresioni skupovi za Delphi i Lazarus na po 147 slučajeva, a C++Builder skup na 123 slučaja, pokrivajući kreiranje handla i ugovore za umetanje page-object-a
Version 1.24.0
- Dodat je
TPdf.RenderPageProgressive— verzijaRenderPagekoja može da se prekine i koja pokreće PDFium-ovu progresivnu petlju renderovanja i ispitujeIPdfCancellationTokeniz v1.7.0 između iteracija, pa dugi renderi na visokom DPI-ju mogu da se prekinu usred stranice umesto da blokiraju pozivaoca do završetka - Vraća vrednost
TPdfProgressiveStatus:prsDone,prsCancellediliprsFailed. ProslediteAToken = nilda renderovanje ide do kraja bez pauziranja (bez mogućnostiprsCancelled) - Koristi isti zero-copy brzi put uveden u v1.21.0 — PDFium direktno renderuje u DIB odredišnog
TBitmap-a. Isti stari rezervni put važi kada DIB ne može da se obmota - Prošireni su regresioni skupovi za Delphi i Lazarus na po 145 slučajeva, a C++Builder skup na 121 slučaj, pokrivajući nil-token (završava), unapred poništen token (
prsCancelled) i pixel-equivalence sa sinhronimRenderPageuz aktivan token
Version 1.23.0
- Dodat je šest novih metoda
TPdfViewkoje aplikacijama izlažu PDFium-ov izbor teksta u form-widget-u i Undo/Redo:GetSelectedFormTextvraća trenutno izabrani tekst unutar fokusiranog form widget-a;SelectAllFormTextbira svaki znak;FormUndo/FormRedo/FormCanUndo/FormCanRedoupravljaju istorijom izmena fokusiranog widget-a. Osnovni PDFium API-ji su već bili povezani, ali nisu imali ulaznu tačku na visokom nivou. Svih šest metoda bezbedno izlaze odmah kada je prikaz neaktivan ili dokument nema fokusiran AcroForm widget - Prošireni su regresioni skupovi za Delphi i Lazarus na po 142 slučaja, a C++Builder skup na 119 slučajeva, pokrivajući ugovor bez form-widget-a i bez fokusa za svaku novu metodu
Version 1.22.0
- Dodat je omotač za sastavljanje stranica u
TPdf:ImportPagesByIndexprima niz indeksa sa nultim početkom da kopira određene stranice iz izvornog dokumenta;ImportNPagesToOnevraća potpuno noviTPdfčije su stranice N-up kompoziti ovog dokumenta;MovePagespreuređuje stranice na mestu. Osnovni PDFium API-ji su već bili povezani, ali nisu imali Pascal-prijateljsku ulaznu tačku ImportPagesByIndexprihvata prazan niz da uveze svaku izvornu stranicu (ekvivalentno prosleđivanjunilna nivou C ABI-ja)- Prošireni su regresioni skupovi za Delphi i Lazarus na po 136 slučajeva, a C++Builder skup na 115 slučajeva, pokrivajući uvoz podskupa, uvoz celog dokumenta, preuređivanje stranica i N-up kompozit
Version 1.21.0
- Poboljšane su performanse renderovanja prebacivanjem
TPdf.RenderPage/TPdf.RenderTile(i odgovarajućihTPdfViewpomoćnika) na zero-copy izlaznu putanju. PDFium sada upisuje direktno u DIB bafer odredišnogTBitmap-a umesto u unutrašnji bafer koji je potom kopiran red po red, čime se po renderovanju štedi jedna memorijska kopija od širina x visina x 4 bajta. Poboljšanje je najprimetnije pri visokom DPI-ju (paneli sa sličicama, izvoz za kvalitet štampe, batch izvoz) - Stara putanja po sken liniji ostaje kao bezbednosni rezervni izlaz za malo verovatan slučaj kada odredišni DIB ne može da se obmota (ekstremne dimenzije, neuobičajen stride, OOM). Ponašanje je bajt-po-bajt identično između dve putanje, samo je rezervni izlaz sporiji
- Prošireni su regresioni skupovi za Delphi i Lazarus na po 132 slučaja, a C++Builder skup na 112 slučajeva, pokrivajući nadogradnju pozivaočevog bitmapa na
pf32bit, round-trip dimenzija i sanity test velikog bitmap stride-a
Version 1.20.0
- Dodat je vizuelni naglasak na rezultate pretrage u
TPdfView:HighlightSearchText(Text, MatchCase, MatchWholeWord)skenira trenutnu stranicu prikaza i vraća broj pronađenih poklapanja, crtajući maskuHighlightColorpreko svakog poklapanja pri svakom ponovnom iscrtavanju.ClearHighlightuklanja isticanja; prelazak prikaza na drugu stranicu ih automatski briše jer su poklapanja vezana za stranicu HighlightColorpodrazumevano jeclYellowi objavljeno je tako da aplikacije mogu da usklade naglasak sa svojom UI paletom- Prošireni su regresioni skupovi za Delphi i Lazarus na po 129 slučajeva, a C++Builder skup na 109 slučajeva, pokrivajući podrazumevanu boju, round-trip boje, “stvarna poklapanja reči iz fixture-a” protiv stringa
sample.pdfi ugovor “nedostajuća reč vraća nula poklapanja”
Version 1.19.0
- Dodat je
FitModeuTPdfViewsa četiri vrednosti:pfmNone(ručno zumiranje),pfmActualSize(100%),pfmFitPage(cela stranica staje u viewport) ipfmFitWidth(širina stranice odgovara širini viewport-a). Aktivni režim prilagođavanja se automatski ponovo primenjuje priResizei kada se promeni trenutna stranica, pa dugački dokumenti sa mešovitim veličinama stranica ostaju savršeno uokvireni - Direktno podešavanje
Zoomponištava aktivni režim prilagođavanja (FitModese vraća napfmNone), prateći standardnu konvenciju PDF preglednika gde unos vrednosti zumiranja izlazi izFit Page / Fit Width - Podrazumevano je
pfmNonetako da postojeće aplikacije zadržavaju ponašanje sa eksplicitnim zumom - Prošireni su regresioni skupovi za Delphi i Lazarus na po 124 slučaja, a C++Builder skup na 106 slučajeva, pokrivajući podrazumevanu vrednost, round-trip režima, fit-page koji daje pravi zum na učitanom dokumentu i manual-zoom-cancels-fit-mode
Version 1.18.0
- Dodat je
PageColoruTPdfView, čime je boja pozadine renderovane PDF stranice odvojena odColorsvojstva okolnog kontrola. Podrazumevano jeclWhite, pa se PDF stranice sada renderuju kao bela hartija bez obzira na temu host aplikacije. Pregledači u tamnom režimu sada mogu da zadrže tamnu oblast za skrolovanje dok stvarna PDF stranica ostaje bela (ili bilo koja boja koju aplikacija izabere) - Promena ponašanja: aplikacije koje su ranije postavljale
TPdfView.Colorda bi prebojile PDF stranicu treba da postavePageColor. Podrazumevano iskustvo se poboljšava za uobičajeni slučaj (bele stranice na tematskim pozadinama kontrola) bez ikakve promene koda - Prošireni su regresioni skupovi za Delphi i Lazarus na po 120 slučajeva, a C++Builder skup na 103 slučaja, pokrivajući podrazumevanu vrednost i round-trip boje
Version 1.17.0
- Dodat je set prekidača za zaključavanje korisničkog unosa u
TPdfViewtako da aplikacije koje ugrađuju preglednik u kioske, panele za pregled ili read-only kontekste mogu da isključe navigacione geste bez podklasiranja:AllowUserPageChangekontroliše nove prečice na tastaturiPgUp/PgDn/Ctrl+Home/Ctrl+End;ChangePageOnMouseScrollingkontroliše nova pomeranja stranice točkom miša nagore / nadole;AllowUserTextSelectionje rezervisan za buduću putanju izbora teksta prevlačenjem miša. Sva tri su podrazumevanoTruetako da postojeće aplikacije nadograđuju bez promene ponašanja - Navigacija stranica točkom miša preskače
Ctrl+wheeltako da aplikacije mogu da zadržeCtrl+wheelrezervisan za zumiranje - Prošireni su regresioni skupovi za Delphi i Lazarus na po 118 slučajeva, a C++Builder skup na 101 slučaj, pokrivajući podrazumevane vrednosti i round-trip prekidača
Version 1.16.2
- Proširena je regresiona pokrivenost
TPdfView-a za klikove na anotacione veze kada se stranica pregleda razlikuje od povezaneTPdfstranice, koristeći stvarnu headless putanju klika mišem kroz Delphi, Lazarus i C++Builder - Delphi i Lazarus skupovi sada pokreću po 114 slučajeva, a C++Builder sada pokreće 99 slučajeva
Version 1.16.1
- Ispravljeno je rukovanje klikom na vezu u
TPdfViewtako da automatske akcije anotacija i veb-veza koriste stranicu koju preglednik trenutno prikazuje, čak i kada je povezaniTPdfkomponenta parkirana na drugoj stranici TPdfThumbnailViewje pojačan protiv danglingPdfreferenci kada se povezaniTPdfkomponent uništi- Dodata je regresiona pokrivenost životnog veka reference na sličicu; Delphi i Lazarus skupovi sada pokreću po 113 slučajeva, a C++Builder sada pokreće 98 slučajeva
- Sinhronizovani su
README, test dokumentacija, HTML Help sadržaj za pretragu / indeks i generisani C++ izlazi paketa sa integracionim ažuriranjima od v1.7.0 do v1.16.0
Version 1.16.0
- Dodat je novi Delphi
PrintDialogdemo (Demo/Delphi/PrintDialog) koji se fokusira na N-up štampanje (1 / 2 / 4 / 9 stranica po listu) sa filtriranjem neparnih / parnih stranica, renderovanjem u sivim tonovima i opcionim ćelijskim ivicama od 1 piksela. To je namerno mali pratilac postojećegPrintPDFdemoa, koji već pokriva pregled, nedavne fajlove, zumiranje i skaliranje
Version 1.15.0
- Dodat je novi komponent
TPdfThumbnailView(FPdfThumbnailjedinica) koji prikazuje jednu sličicu po strani u skrolabilnom bočnom panelu sa isticanjem pri prelasku mišem i izboru, plus navigaciju klikom. Dizajniran je da stoji poredTPdfViewtako da krajnji korisnici mogu da pregledaju dugačak dokument po stranama - Komponenta je registrovana na kartici palete
losLabuzTPdfiTPdfView; ključna svojstva:Pdf,CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColori događajOnPageClick - Prošireni su regresioni skupovi za Delphi i Lazarus na po 112 slučajeva, a C++Builder skup na 97 slučajeva, pokrivajući podrazumevane vrednosti, round-trip veličine sličice, ograničavanje ekstremnih vrednosti, round-trip boje i dodelu rukovaoca događaja
Version 1.14.0
- Dodat je novi Delphi
BatchExportdemo (Demo/Delphi/BatchExport) koji pokazuje kako da se mnogo PDF fajlova pretvori u JPG u jednom prolazu koristećiTPdf.LoadCustomDocumentza strimovano učitavanje,IPdfCancellationTokenza kooperativno otkazivanje i trake napretka po fajlu i po strani. Demo koristi jednuTPdfinstancu po fajlu (sam PDFium nije thread-safe) i otvara izlaznu fasciklu u Explorer-u kada se ekstrakcija uspešno završi
Version 1.13.0
- Dodat je UI sloj za asinhrono renderovanje u
TPdfViewpreko tri nova svojstva:AsyncRendering,LoadingTextiLoadingColor. Kada jeAsyncRenderingTrue, putanja crtanja za jednu stranicu iscrtava mali indikator “Loading...” preko renderovane stranice tako da aplikacije koje za duga renderovanja koriste sopstvenog radnika dele dosledan vizuelni signal - Podrazumevane vrednosti zadržavaju postojeće ponašanje:
AsyncRenderingjeFalse, pa aplikacije koje ga ne uključe ne vide nikakvu vizuelnu promenu - Dokumentacija pojašnjava da sam PDFium nije thread-safe — stvarno prebacivanje renderovanja na radnika zahteva da pozivalac drži po jedan
TPdfpo radniku; predstojeći batch-export demo pokazuje taj obrazac - Prošireni su regresioni skupovi za Delphi i Lazarus na po 106 slučajeva, a C++Builder skup na 93 slučaja, pokrivajući podrazumevane vrednosti i round-trip tri svojstva
Version 1.12.0
- Dodat je klikom pokretan rad sa vezama u
TPdfView. Novo svojstvoLinkOptionskontroliše automatsko ponašanje za četiri tipa PDF akcija veza:goto(skok na stranicu),URI(ShellExecute),launch(ShellExecute) i ugrađeniGotoR(rezervisano). Podrazumevane vrednosti uključujuloAutoGotoiloAutoOpenURI;loAutoLaunchiloAutoEmbeddedGotoostaju isključeni da slučajan klik ne bi pokrenuo proizvoljan program - Dodati su događaji
OnAnnotationLinkClickiOnWebLinkClickkoji se okidaju pre svake automatske akcije i omogućavaju aplikacijama da pregledaju vezu, označe je kaoHandledili preusmere je (na primer, na sigurnosni upit) - Detekcija klika na vezu radi samo kada je gest klik a ne prevlačenje, koristeći svež
MouseDownanchor tako da gestovi pomeranja i dalje prolaze kroz postojeću putanju skrolovanja neizmenjeni - Prošireni su regresioni skupovi za Delphi i Lazarus na po 102 slučaja, a C++Builder skup na 91 slučaj, pokrivajući podrazumevani
LinkOptions, set round-trip i dodelu rukovaoca događaja
Version 1.11.0
- Dodata je vizuelna dorada za
TPdfView: svojstvaPageShadowSize,PageShadowColoriPageBorderColorcrtaju opcionu senku ispod pravougaonika stranice i ivicu od jednog piksela oko njega. Podrazumevane vrednosti čuvaju prethodni ravan izgled (PageShadowSize = 0; ivica se crta u podrazumevanojclBlack, ali se stapa sa podrazumevanom belom pozadinom dok korisnik ne promeni boje) - Dodat je
SmoothScrollkao opcioni signal za buduću inkrementalnu animaciju skrolovanja; svojstvo danas prolazi round-trip i povezano je tako da aplikacije mogu da sačuvaju preferencu, dok renderovanje i dalje koristi postojeće trenutno ponašanje skrolovanja - Prošireni su regresioni skupovi za Delphi i Lazarus na po 98 slučajeva, a C++Builder skup na 89 slučajeva, pokrivajući podrazumevane vrednosti, round-trip svojstva i clamp negativne veličine senke
Version 1.10.0
- Dodat je direktan unos slika kroz nove preopterećene metode
TPdf.AddImageiTPdfView.AddImagekoje primaju ili putanju do fajla iliTBitmap, pored postojećegAddPicturezasnovanog naTPicture.AddImage(FileName)prepoznaje svaki format registrovan u VCL ili LCL grafičkim jedinicama (BMP, PNG preko jedinicePngImage, JPG, itd.) i prolazi kroz istu putanju kaoAddPicturepa je ponašanje identično AddImage(TBitmap)preskače posredni slojTPicture, što pojednostavljuje pozivaoce koji već imajuTBitmapiz renderovanja ili batch generisanja- Prošireni su regresioni skupovi za Delphi i Lazarus na po 92 slučaja, a C++Builder skup na 84 slučaja, pokrivajući umetanje bitmapa, granice page-object-a, odbacivanje nil bitmapa i učitavanje BMP fajla
Version 1.9.0
- Dodata je podrška za transformacione matrice višeg nivoa kroz novu klasu
TPdfMatrixu jediniciFPdfMatrix.TPdfMatrixobmotava PDFium-ovuFS_MATRIXOO API-jem zaTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewiMultiply, pogodno za sastavljanje transformacija pre prosleđivanja uFPDFPageObj_SetMatrixi slične PDFium API-je TPdfMatrix.Multiplyispravno snima svih šest elemenata matrice pre računanja novih vrednosti reda, popravljajući latentni problem gde alternativne Pascal implementacije prepisuju ranije elemente tokom istog poziva i daju netačne rezultate za svako sastavljanje osim čiste translacije- Prošireni su regresioni skupovi za Delphi i Lazarus na po 88 slučajeva, a C++Builder skup na 81 slučaj, pokrivajući identitet, reset, translate / scale / flip, redosled post-multiplikativnog sastavljanja i regresioni slučaj za Multiply
Version 1.8.0
- Dodat je učitavanje strima po potrebi kroz novu metodu
TPdf.LoadCustomDocument(AStream, AOwnsStream)i pomoćnu klasuTPdfStreamAdapter, potpomognuto PDFium-ovimFPDF_LoadCustomDocument. PDFium sada čita blokove iz prosleđenogTStream-a samo kada je potrebno, pa veoma veliki ili udaljeni PDF-ovi više ne zahtevaju unapred napravljen in-memory kopiju - Dodat je opciono vlasništvo nad strimom: prosleđivanje
AOwnsStream = Truepredaje životni vekTStream-a u rukeTPdf-u, koji ga oslobađa kada se pokreneUnloadDocument - Prošireni su regresioni skupovi za Delphi i Lazarus na po 79 slučajeva, a C++Builder skup na 75 slučajeva, pokrivajući strimovano učitavanje preko
TFileStream-a, čišćenje vlasničkog strima i ugovor da eksterno vlasnički strim preživljavaUnloadDocument
Version 1.7.0
- Dodat su kooperativni asinhroni mehanizmi za otkazivanje u novoj jedinici
FPdfAsync, koji izlažuIPdfCancellationToken/IPdfCancellationTokenSourcei ponovo upotrebljivi singletonPdfNoCancellationTokentako da dugi tokovi rada renderovanja i izvoza mogu da podrže čisto otkazivanje iz UI-ja - Dodat je lagani pomoćnik
TPdfFuture<T>koji pokreće radnika na pozadinskoj niti i vraća omotačTPdfFutureResult<T>nazad u glavnu nit, razlikujući slučajeve uspeha, otkazivanja i neuspeha - Prošireni su regresioni skupovi za Delphi i Lazarus na po 76 slučajeva, a C++Builder skup na 73 slučaja, sa zajedničkim pokrivanjem stanja otkazivanja, idempotentnog otkazivanja, raspodele callback-a i registracije posle otkazivanja
Version 1.6.10
- Dodat je visok nivo pristupa
TPdf.PrintPageRangesza opseg štampanih stranica iz PDF viewer preference-a, vraćajući opsege stranica sa brojanjem od jedan za aplikacioni kod - Dodati su
TPdf.SetFormFieldFlags/SetFormFieldFlagsAti odgovarajućiTPdfViewpomoćnici tako da aplikacije mogu da ažuriraju AcroForm zastavice polja kroz javni API, uključujući pokrivenost zastavica za lozinku i višestruki izbor - Pojačano je ABI pokrivanje PDFium veza za Windows-sized
FPDF_DWORD,FPDF_FILEACCESScallback-ove i V8 embedder slot polja
Version 1.6.9
- Dodati su niski nivo veze za Skia renderovanje za novizvezene API-je
FPDF_RenderPageSkiaiFPDF_FFLDrawSkiau priloženim standardnim i V8 PDFium DLL-ovima - Proširene su provere pokrivenosti javnih veza tako da učitavanje standardnih i V8 DLL-ova sada proverava Skia ulazne tačke renderovanja zajedno sa postojećim proverama mogućnosti V8/XFA
Version 1.6.8
- Dodati su
TPdf.SetTextPositionsiTPdfSingleArrayza postavljanje pozicija po znaku na postojećim tekstualnim objektima kroz novoizloženiFPDFText_SetPositionsAPI FPDFText_SetPositionsje promovisan u obaveznu vezu za trenutne priložene PDFium DLL-ove, uz potvrdu da Skia ulazne tačke renderovanja i dalje nisu dostupne jer ih DLL-ovi i dalje ne izvoze- Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 65 slučajeva sa pokrivenošću pozicija teksta
Version 1.6.7
- Dodan je visok nivo pristupa
TPdfza JavaScript akcije iz name-tree-a dokumenta, vraćajući nazive akcija i skripte krozJavaScriptActioniJavaScriptActions - Dodat je
TPdf.FileIdentifierza čitanje trajnih i promenljivih trailer ID-jeva kao binarnihTBytesbez PDFium-ovog završnog bajta - Dodati su
TPdf.PageBox,GetPageBoxiSetPageBoxzaMediaBox,CropBox,BleedBox,TrimBoxiArtBoxna trenutnoj stranici - Potvrđeno je da trenutni priloženi PDFium DLL-ovi ostavljaju samo Skia ulazne tačke renderovanja nedostupne u vreme izvođenja jer ti exporti ne postoje
- Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 64 slučaja sa pokrivenošću JavaScript-a dokumenta, trailer ID-ja i page-box-a
Version 1.6.6
- Dodata je podrška u vreme izvođenja za priloženi V8-enabled PDFium DLL. Podešavanje
EnableV8Enginepre učitavanja sada birapdfium.v8.dlliz stablaDLLs\Win32iliDLLs\Win64i izlaže samo V8/XFA veze kada ih učitani DLL pruža - Dodati su
V8FeaturesAvailable,XfaBStrHelpersAvailable,GetRecommendedV8Flagsi niskonivojske opcione veze zaFPDF_BStr_*,FPDF_GetRecommendedV8FlagsiFPDF_GetArrayBufferAllocatorSharedInstance FPDFText_SetPositionsje učinjen opcionim tako daPDFiumPasnastavlja da se učitava sa PDFium DLL-ovima koji ne izvoze taj eksperimentalni setter pozicija teksta- Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 61 slučaj sa pokrivenošću mogućnosti standardnog DLL-a i V8 DLL-a
Version 1.6.5
- Dodat je pregled tagged PDF structure-tree kroz
TPdf.StructureElementsiTPdfView.StructureElements, uključujući tip elementa, naslov, alternativni tekst, stvarni tekst, ekspanzioni tekst, jezik, ID-jeve označenog sadržaja, broj dece i broj atributa - Dodat je izbor režima štampe u Windows PDFium-u kroz
TPdfPrintModeiSetPdfPrintMode, pokrivajući EMF, samo tekst, PostScript, pass-through, image-mask i Type 42 režime štampe - Dodate su niskonivojske veze za preostale javne exporte standardnog DLL PDFium-a, pokrivajući JavaScript akcije, zastavice obrasca anotacije / boju fonta, aktivno stanje page-object-a, indeksirano umetanje, float vrednosti content-mark-a, ICC profile podataka slike, uklanjanje form-object-a i pozicije teksta
- Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 59 slučajeva sa pokrivenošću tagged PDF structure-tree, režima štampe i veza javnih exporta
Version 1.6.4
- Ažurirani su Delphi, C++Builder i Lazarus demo primeri da automatski otvaraju generisane PDF-ove, izvezeni tekst/slike i fascikle sa batch izlazom nakon uspešnog kreiranja
Version 1.6.3
- Prošireni su usklađeni regresioni skupovi za Delphi, C++Builder i Lazarus na po 56 slučajeva sa GUI pokrivenošću
TPdfView-a za pomoćnike fit-zoom, round-trip koordinate uređaj/stranica, hit-testing znakova i pomeranje mišem kroz kontrolu pregleda u skrivenom prozoru TPdfViewfixture-i sada koriste eksplicitnu veličinu pregleda i test-only podklase koje vežbaju zaštićene rukovaoce miša dok skupove zadržavaju potpuno headless
Version 1.6.2
- Ispravljen je
TPdf.AddPage(0, ...)tako da ubačena prva stranica odmah postaje aktivna. Postojeći primer kod i dalje radi, dokPageNumbersada prijavljuje validnu stranicu sa brojanjem od jedan nakon umetanja - Sinhronizovana je verzija Lazarus paketa i prošireni su usklađeni regresioni skupovi za Delphi, C++Builder i Lazarus na po 52 slučaja
Version 1.6.1
- Ispravljena je netačna minimalna verzija u validatoru usaglašenosti PDF verzije iz v1.6.0: akcija
SetStateje reklasifikovana sa PDF 1.5 na PDF 1.2, što odgovara PDF 1.2 Reference 6.9.9. PDF 1.3 / 1.4SaveAsciljevi koji sadržeSetStateakcije sada se čuvaju ispravno umesto da budu odbijeni - Dodate su odgovarajuće leksičke provere za PDF 1.2 po istoj sekciji specifikacije: akcije
Sound,MovieiNOPplus Separation color space sada se blokiraju kada je izabrana ciljna verzija starija od PDF 1.2 - Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 50 slučajeva dodavanjem pozitivnog testa prihvatanja PDF 1.4
SetStatekoji učvršćuje ispravljenu granicu
Version 1.6.0
- Pojačana je eksplicitna podrška za SaveAs ciljeve od PDF 1.0 do PDF 1.7 potpunim validatorom verzija/funkcija koji pokriva čitavu vremensku liniju funkcija od PDF 1.1 do ISO 32000-1. Validator sada blokira čuvanja koja sadrže stavke rečnika, nazive filtera, podtipove anotacija, tipove akcija, fontove, prostore boja ili parametre enkripcije uvedene nakon izabrane ciljne verzije. Primeri:
JBIG2Decode(1.4+),MarkInfo/Tagged PDF(1.4+),OutputIntents(1.4+),ICCBased/DeviceN/BleedBox/TrimBox/ArtBox/StructTreeRoot(1.3+), anotacijePolygon/PolyLine/Caret/Screen/Watermark/Redact, enkripcijaAESiAES-256(CFM AESV2/AESV3), stavke katalogaPerms/Legal/Requirements/NeedsRenderingi akcije vezane za verziju kao što suJavaScript,Trans,SetState,Rendition,GoToEiGoTo3DViewsve se odbijaju kada ciljana PDF verzija ne može da ih predstavi
Version 1.5.13
- Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 49 slučajeva, uz direktnu pokrivenost odbacivanja
ICCBasedprostora boja,Tagged PDFMarkInfo,Polygonanotacija,AES (V2)enkripcije iRedactanotacija prema PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6 ciljevima
Version 1.5.12
- Ispravljena je naknadna obrada
SaveAsza inkrementalna prepisivanja kataloga.PDFiumPassada validira poslednji ponovljeni indirektni objekat, pa se postojeća/Versionprepisivanja kataloga pravilno zamenjuju pri čuvanju u eksplicitno starijoj PDF ciljnoj verziji - Prošireni su regresioni skupovi za Delphi, C++Builder i Lazarus na po 44 slučaja, uz direktnu pokrivenost zamene zastarelog
catalog /Version, normalizacije PDF 1.4 verzije kataloga i odbacivanja transparentnosti i portable-collection funkcija kada izabrana PDF ciljna verzija ne može da ih predstavi
Version 1.5.11
- Pojačan je verzionisani
SaveAsizlaz za eksplicitne PDF 1.3, 1.4, 1.5, 1.6 i 1.7 ciljeve.PDFiumPassada normalizuje markere verzije kataloga, čuva podrazumevaniFit Height OpenActionbezbednim za verziju i odbacuje novije PDF funkcije kada izabrana ciljna verzija ne može da ih predstavi - Dodata je regresiona pokrivenost za Delphi, C++Builder i Lazarus koja čuva i ponovo učitava eksplicitne PDF 1.3 do PDF 1.7 fajlove, proveravajući konačno zaglavlje, podrazumevani
Fit Height OpenActioni prijavljenu PDF verziju
Version 1.5.10
- Prelazak sa opcije B iz specifikacije na opciju C postignut je dodavanjem
TPdfViewsmoke testova u sva tri IDE skupa (Tests.PdfView). Svaki skup pravi skriveni roditeljskiTForm(prekoTForm.CreateNewna Pascal stranama inew TForm(NULL, 0)na C++Builder strani), ponovo roditeljiTPdfView, postavljaActive := Truei zatim proverava round-trip površinu zaPageCount, podrazumevaniPageNumber,Zoom,Rotation,DisplayModei daView.Textodgovara osnovnomTPdf.Text. Svaki IDE skup sada pokreće 39 slučajeva
Version 1.5.9
- Prelazak sa opcije A iz specifikacije na opciju B postignut je dodavanjem smoke testova renderovanja u sva tri IDE skupa. Svaki
Tests.Renderskup pozivaTPdf.RenderPagenadsample.pdfi proverava tri čvrsta signala umesto checksum-a bajt po bajt: vraćeni bitmap tačno odgovara traženoj veličini piksela; različite tražene veličine (200x100, 64x256) daju odgovarajuće bitmap-ove; i renderovana stranica je najmanje 95% bela pozadina sa najmanje 50 (Lazarus: 20) nebelih piksela koji označavaju antialijasti tekst. Svaki IDE skup sada pokreće 33 slučaja
Version 1.5.8
- Zatvorene su originalne A(2) grupe plana testiranja dodavanjem još sedam regresija po IDE-ju:
TPdf.CreateAnnotationpravianHighlightanotaciju plusSaveAs/LoadDocumentround-trip, AcroForm putanja čitanja nadDemo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf(FormTypejeftAcroForm,FormFieldCount > 0,FlattenAllPagesspušta polja na nulu), i tihi read-path zaBookmarks,LinkAnnotationCountiWebLinkCountna dokumentu koji nema nijednu od tih funkcija. Svaki IDE skup sada pokreće 30 slučajeva
Version 1.5.7
- Prošireni su Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest) skupovi sa sedam novih regresija po IDE-ju:
PdfVersion,PageRotation, traženje podniza krozTPdf.FindFirst/FindNext, usklađenostCharacterOrigin/CharacterRectanglesa origin-omAddText-a, registracijaCreateAttachmentplusSaveAs/LoadDocumentround-trip, iAddTextround-trip sa akcentovanim tekstom koji proverava da v1.3.0 evropska putanja ugradnje TrueType-a čuva Latin-1 dopunske kodne tačke netaknutim
Version 1.5.6
- Sačuvani PDF-ovi sada dobijaju podrazumevanu
Fit Heightakciju otvaranja prve stranice kada nema postojećeOpenAction, pa PDF čitači inicijalno prikazuju generisane dokumente u zumu visine stranice - Dodata je regresiona pokrivenost za generisanu
OpenActioniFit Heightpostavku u Delphi, Lazarus i C++Builder skupovima
Version 1.5.5
- Dodati su regresioni testovi kroz Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest) skupove za indeksirano istraživanje karaktera i fonta (
TPdf.FontBaseName,FontFamilyName,FontWeight,FontItalicAngle,FontData,FontIsEmbedded,CharacterFontWeight,CharacterAngle). Lazarus skup namerno preskačeFontData, koji trenutno access violation pravi unutarFPDFFont_GetFontDatapod FPC
Version 1.5.4
- Dodat je C++Builder Attachment demo prenet iz Delphi primera, koji pokriva kreiranje PDF-ova, dodavanje, listanje, izvlačenje, brisanje i čuvanje ugrađenih priloga fajlova sa prikazom MIME podtipa
Version 1.5.3
- Izložena je računica rasporeda strana koja stoji iza dvostraničnih režima
TPdfViewkao pomoćnik na nivou jediniceComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). Ponašanje je nepromenjeno; pomoćnik čini pravilo svesno naslovne strane nezavisno testabilnim bez instanciranja pregledača - Dodato je pet regresionih testova kroz Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest) skupove, pokrivajući prazne dokumente, standardno uparivanje dve stranice, naslovnu stranu koja stoji sama u
dmTwoPageContinuousWithCover, parove posle naslovne strane i ponašanje ograničavanja poslednje strane / van opsega
Version 1.5.2
- Dodata je podrška za jezik dokumenta kroz
TPdf.Language, mapirana na stavku/Langu PDF katalogu - Dodat je pristup MIME podtipu priloga kroz
TPdf.AttachmentType anRedactje dodat uTPdfAnnotationSubtypei dodati su pomoćnici za uklanjanje page-object-a zaTPdfiTPdfView- Ažurirani su demo primeri pregleda i priloga da prikazuju nove informacije o jeziku i tipu priloga kada su dostupne
Version 1.5.1
- Dodat je
dmTwoPageContinuousWithCoverzaTPdfViewtako da rasporedi pregleda mogu da prikažu prvu stranicu samu, a zatim nastave sa dvostraničnim rasporedima - Ažurirani su Delphi, C++Builder i Lazarus
MultiPageViewerdemo primeri da izlože dvostranični režim prikaza koji uzima u obzir naslovnu stranu
Version 1.5.0
- Dodati su automatizovani smoke test skupovi za Delphi (DUnitX), Lazarus (FPCUnit) i C++Builder (GoogleTest). Tri skupa dele jedan fixture PDF u
Tests\TestDatai pokreću istih sedam slučajeva, pokrivajući učitavanje dokumenta, informacije o stranici, ekstrakciju teksta, metapodatke, save round-trip, validaciju zaglavlja PDF-a i svojstvoCompressed
Version 1.4.3
- Unapređen je
FontPropertiesdemo da prikazuje iTPdfViewiTPdfAPI-je za metapodatke fontova, uključujući handlove fontova, veličinu podataka fonta i metrike karaktera - Dodati su indeksirani
TPdfViewsvojstva za pregled karaktera i fonta, aFontPropertiesdemo je ažuriran da upituje metapodatke fonta tekstualnog objekta
Version 1.4.2
- Dodata su indeksirana svojstva za pregled karaktera i fonta u
TPdfza analizu teksta bez potrebe za pregledačem. Svojstva indeksirana po karakteru (CharacterAngle,CharacterFontSize,CharacterFontWeight) upituju metrike po karakteru iz tekstualnog toka trenutne stranice. Svojstva indeksirana po page-object-u (FontAscent,FontBaseName,FontData,FontDescent,FontFamilyName,FontHandle,FontIsEmbedded,FontItalicAngle,FontWeight) upituju metapodatke fonta za bilo koji tekstualni objekat na trenutnoj stranici - Ne-tekstualni page-object-i vraćaju bezbedne nulte ili prazne vrednosti za sva
Font*svojstva umesto da prijave grešku, što olakšava iteriranje kroz svaki page-object i pregled samo tekstualnih FontBaseNamečita direktno osnovni PostScript naziv fonta umesto da pada nazad na naziv porodice fonta, dajući tačniji identifikator za ugrađene fontove
Version 1.4.1
- Dodate su C++Builder i Lazarus verzije
EuropeanTextdemoa tako da sve podržane IDE porodice mogu da provere generisanje evropskog akcentovanog teksta sa sistemskim TrueType fontovima - Dodate su C++Builder i Lazarus verzije
FormFilldemoa, uključujući primer PDF-ove obrasca, uređivanje polja, regeneraciju izgleda, čuvanje popunjenog i čuvanje spljoštenog toka rada
Version 1.4.0
- Dodata je podrška za Lazarus / Free Pascal: novi paket
PDFiumLazobezbeđuje isteTPdf,TPdfViewi povezane komponente podLCLwidget setom, proširujući biblioteku na Lazarus IDE i Free Pascal kompajler uz postojeće Delphi i C++Builder pakete - Dodate su Lazarus verzije demo primera tako da Lazarus programeri mogu da istraže svaku funkciju kroz pokretljive primere
- Ispravljen je Lazarus problem pri kompilaciji gde su se Free Pascal uslovne definicije procenjivale zajedno sa Delphi proverama verzije kompajlera, zbog čega su FPC buildovi pokušavali da razreše Delphi-specifična imena jedinica i neuspevali
Version 1.3.1
- Dokumentovan je tok rada za spljoštavanje obrazaca u help setu:
GenerateFormAppearances,FlattenPage,FlattenAllPagesi povezaneFLAT_*/FLATTEN_*konstante sada su obuhvaćeni uTPdf,TPdfView, API referenci, matrici funkcija i programskim primerima - Ispravljena je tabela arhitekture na stranici pregleda tako da prikazuje stvarne binding jedinice isporučene u
Libfascikli
Version 1.3.0
- Poboljšana je podrška za evropske karaktere pri kreiranju PDF-ova.
TPdf.AddTextsada učitava i kešira odgovarajući sistemski TrueType font pre kreiranja tekstualnog objekta, čuvajući akcentovane karaktere iz češkog, francuskog, nemačkog, španskog, portugalskog, poljskog i turskog koje PDFium-ovi ugrađeni standardni fontovi ne mogu da predstave - Aplikacije koje su ranije prikazivale znake pitanja ili zamenske glifove za ne-ASCII latinični tekst sada će se renderovati ispravno bez ikakve promene koda. Dodat je
EuropeanTextdemo da ilustruje funkciju
Version 1.2.0
- Dodata je osvežavanje izgleda AcroForm-a u
TPdf: pozivanjeGenerateFormAppearancesnakon izmene vrednostiFormField[]ažurira izgled widget-a tako da su popunjene vrednosti vidljive u standardnim PDF čitačima bez potrebe za interaktivnom sesijom uređivanja - Dodati su pomoćnici za spljoštavanje obrazaca u
TPdf(FlattenPage/FlattenAllPages) iTPdfView(FlattenPageza trenutnu stranicu prikaza). Spljoštavanje trajno ugrađuje popunjene vrednosti polja kao običan sadržaj stranice i uklanja interaktivni sloj obrasca, stvarajući statički dokument koji se dosledno renderuje u svim pregledačima - Dodat je
Demo\Delphi\FormFillda demonstrira tokove rada popunjavanja i čuvanja, kao i popunjavanja i spljoštavanja, sa primerom AcroForm PDF-a
Version 1.1.2
- Dodata je kompresija PDF strima pri čuvanju. Novo svojstvo
TPdf.Compressed(podrazumevano uključeno) prepisuje nekompresovane tokove sadržaja uFlateDecode-kompresovane tokove pri čuvanju, značajno smanjujući veličinu fajla za programski generisane PDF-ove. Aplikacije koje zahtevaju običan nekompresovan izlaz mogu postavitiCompressednaFalsepre pozivaSaveAs
Version 1.1.1
- Win64 buildovi paketa više ne uključuju jedinice za registraciju u design-time-u, čime se sprečavaju greške pri izgradnji kada se Win64 paket rasporedi u runtime-only kontekstu
- Učitavač PDFium DLL-ova sada prvo pretražuje Win32 ili Win64 podfasciklu aplikacije, koristeći standardna imena
pdfium.dllipdfium.v8.dll, a zatim pada nazad na ravnu fasciklu aplikacije i Windows sistemsku fasciklu. To odgovara rasporedu DLL-ova koji je priložen uz paket komponente, pa je instalacija jednostavna
Version 1.1.0
- Ispravljena je vizuelna greška sečenja u dvostraničnom režimu
TPdfView: sadržaj stranice je prelazio preko sredine jer su i leva i desna pločica stranice delile jedan clipping pravougaonik. Svaka pločica sada se zasebno seče tako da sadržaj ostaje unutar granice svoje stranice - Poboljšana je poruka o grešci u Delphi demou kada PDFium DLL ne može da se pronađe, uz jasniji prompt sa očekivanim imenom i lokacijom DLL-a