Opombe ob izdaji za PDFiumPas
Ta stran je lokalizirana za slovenščino in ohranja imena API-jev, datotek ter literalne vrednosti nespremenjene
Zgodovina različic za uporabniško vidne funkcije, popravke, izboljšave pregledovalnika, ustvarjanje dokumentov, izvoz PDF/A, izrisovanje in posodobitve dokumentacije
Zadnja izdaja
- Najnovejša različica: 2.57.0; Datum izdaje:
Version 2.57.0
Dodano (Added)
TPdfThumbnailView.Orientationpodpira navpične in vodoravne postavitve sličic ob ohranjanju obstoječe navpične privzete vrednostiFirstVisiblePageIndex,LastVisiblePageIndexinEnsureCurrentPageVisibleizpostavljajo in nadzorujejo vidno polje sličic z eno-osnovnimi indeksi strani
Spremenjeno (Changed)
- Spreminjanje
CurrentPageIndexzdaj drsi izbrano sličico v vidno polje v obeh usmeritvah - Testi Delphi, Lazarus in C++Builder zdaj pokrivajo privzete vrednosti usmeritve, preklapljanje, vidne razpone in vidnost izbrane strani
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.57.0
Version 2.56.2
Spremenjeno (Changed)
HighlightSearchText,AddSearchTextHighlightinClearHighlightzdaj neveljavne le pravokotnike naprave za iskalne razpone, ki so bili dodani ali odstranjeni, namesto ponovnega risanja celotnega pregledovalnika- Zamenjava poudarkov z istimi ujemanji ali dodajanje podvojenih ujemanj ne več razporedi nepotrebnega ponovnega risanja
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo omejeno neveljavnost, idempotentne posodobitve, brisanje in varnost za neaktivne pregledovalnike
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.56.2
Version 2.56.1
Spremenjeno (Changed)
TPdfThumbnailViewzdaj ponovno uporablja upodobljene bitne slike za strani, ki ostanejo vidne čez ponovna risanja in sosednje položaje drsenja- Predpomnilnik obdrži le trenutni vidni razpon strani in sprosti vnose natanko takrat, ko strani zapustijo ta razpon, ko se spremeni dodeljen dokument ali ko se spremenijo dimenzije sličic
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo ponovno uporabo predpomnilnika, obrezovanje vidnega polja, neveljavnost velikosti, zamenjavo dokumenta in uničenje komponente
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.56.1
Version 2.56.0
Dodano (Added)
TPdfView.CutSelectedFormTextToClipboardinTPdfView.PasteFormTextFromClipboardzagotavljata urejanje odložišča Unicode za fokusiranega dodatka obrazca, ki ga je mogoče urejati
Spremenjeno (Changed)
- Fokusirani urejevalniki obrazca zdaj obravnavajo standardne tipkovnične bližnjice copy, cut, paste in select-all, preden posredujejo besedilni vnos v PDFium
- Cut in paste zavrneta polja samo za branje in seje brez dovoljenja za izpolnjevanje obrazca ali spreminjanje, medtem ko cut uspešno kopira pred odstranitvijo izbranega besedila
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo obnašanje brez fokusa, povratno pot bližnjice in zavrnitev samo-za-branje
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.56.0
Version 2.55.0
Dodano (Added)
TPdfView.AddSearchTextHighlightpripne edinstvena ujemanja za še en iskalni izraz trenutni prekrivni plasti strani, kar omogoča, da več poizvedb ostane hkrati poudarjenih
Spremenjeno (Changed)
HighlightSearchTextostaja nadomestna vstopna točka in zdaj deli aditivni optični brskalnik, medtem ko se podvojeni razponi znakov prezrejo inClearHighlightodstrani celotno akumulirano množico- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo akumulacijo različnih poizvedb in zatiranje podvojenih razponov
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.55.0
Version 2.54.0
Dodano (Added)
TPdfzdaj izpostavlja popolne posnetke predmetov strani, paketne posodobitve sloga, afine transformacije predmetov, segmente poti, poti izrezovanja in otroke Form XObject- Inšpekcija znakov zdaj vključuje barve polnila in poteze, ime in zastavice pisave, ohlapne meje glifov, učinkovite matrike, ročnike besedilnih predmetov in pretvorbo iz indeksa znaka v indeks besedila
- Zabilke zdaj povratno prenašajo geometrijo roba in tokove normalnega, rollover in down videza
- Novi dostopi do surovih in dekodiranih sličic, transformacije vsebine strani in zabilk ter
RenderPageWithMatrixzagotavljajo neposredne napredne poti upodabljanja in urejanja
Spremenjeno (Changed)
- Spremembe sloga predmetov strani je zdaj mogoče uveljaviti kot en paket, tako da PDFium regenerira vsebino strani samo enkrat
- Upodabljanje matrik uporablja obstoječo pot bitne slike zero-copy, ko je postavitev ciljne bitne slike združljiva
Version 2.53.1
Popravljeno (Fixed)
- Vgrajeni kitajski napis menija Copy zdaj uporablja neodvisne od kodiranja kodne točke Unicode in se pravilno prikaže v izgradnjah Lazarus
- Starejše orodne verige Delphi lahko zdaj prevedejo
FPdfAsync, ko njihova enotaWinapi.Windowsizpusti deklaracijoGetTickCount64
Version 2.53.0
Dodano (Added)
- Nova testna garnitura
Tests.ApiCoverage, ki pokriva javne TPdf API-je, ki so prej imeli ničelno pokritje end-to-end testov:GetPageBox/SetPageBox(branje/pisanje MediaBox/CropBox, napake manjkajoče škatle in povratna pot shranjevanja),FlattenPage/FlattenAllPages(povratna vrednost in ohranjanje števila strani),GenerateFormAppearances(no-op na dokumentih, ki niso obrazci),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 s povratno potjo gesla — preverja, da šifrirana datoteka odklanja odpiranje brez gesla in se odpre z njim), validacija mejaDeletePage(stran 0 in izven razpona sprožitaEPdfError) ter stražarji zabilkHasContents/HasAuthor, uvedeni v v2.38.0 (preverjajo, daDefault(TPdfAnnotation)puščaFalse)
Version 2.52.0
Dodano (Added)
TPdfView.CopySelectedFormTextToClipboardkopira izbiro besedila znotraj fokusiranega dodatka AcroForm v odložišče Windows kotCF_UNICODETEXT
Spremenjeno (Changed)
- Operacije kopiranja besedila strani in fokusiranega obrazca zdaj delijo isti defenzivni zapisovalnik odložišča Unicode in pustijo odložišče nespremenjeno, ko je njihova izbira prazna
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo neaktivne ali nefokusirane klice kopiranja obrazca in povratno pot izbire fokusiranega obrazca prek odložišča Windows
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.52.0
Version 2.51.0
Dodano (Added)
TPdfView.SelectLineAtizbere vizualno vrstico besedila, ki vsebuje eno-osnovno stran in nič-osnovni indeks znaka, ne da bi zahteval vnos miške
Spremenjeno (Changed)
- Programska izbira vrstice, izbira s trojnim klikom ter
Shift+HomealiShift+Endzdaj delijo en model meje vrstice na podlagi znakovnih škatel - Testi Delphi, Lazarus in C++Builder zdaj pokrivajo stabilno izbiro vrstice in neveljavne indekse strani ali znakov
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.51.0
Version 2.50.0
Dodano (Added)
TPdf.LoadDocumentzdaj sprejema nič-osnovno oknoIndexinCountv medpomnilnikTBytes, kar omogoča, da vdelani PDF-ji naložijo brez dodeljevanja začasnega reza polja bajtov
Spremenjeno (Changed)
- Nalaganje z razponom bajtov zavrne negativna ali izven-mejna okna, preden spremeni stanje dokumenta, in ohranja obstoječe možnosti življenjske dobe za medpomnjenjeni in izposojeni medpomnilnik
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo okne vdelanih PDF-jev in neveljavne argumente razpona bajtov
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.50.0
Version 2.49.1
Dodano (Added)
TPdfView.FitModezdaj podpirapfmFitHeightza prilagoditev trenutne strani vidljivi višini vidnega polja z dovoljenjem vodoravnega pomikanja po potrebi
Popravljeno (Fixed)
- Načini prilagajanja zdaj konvergirajo, potem ko sprememba vidljivosti drsnika spremeni odjemalsko območje, s čimer se rezultati fit-page, fit-width in fit-height ohranjajo dosledni med VCL in LCL
- Testi pregledovalnika Delphi, Lazarus in C++Builder zdaj pokrivajo izbiro
pfmFitHeightin povratne poti naštevanj TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.49.1
Version 2.49.0
Dodano (Added)
- Javna vezna površina PDFium zdaj pokriva vseh 470 izvoženih funkcij v pregledanih glavah, vključno z dostopom do opisov priponk prek
FPDFAttachment_SetDescriptioninFPDFAttachment_GetDescription TPdfzdaj izpostavlja opise priponk, veljavnost navzkrižnih sklicev, odmike konca priklopnika, revizijo security-handler, 64-bitno nalaganje v pomnilnik, razpona bajtov podpisa, razpone besedila spletnih povezav in razširjene posnetke podatkov slike, filtra, metapodatkov in profila ICC- Pomočniki obrazcev zdaj podpirajo domačo fokusiranost polj, poizvedbe in posodobitve fokusiranih možnosti izbire, posredovanje kolesca miške, zapisljive črtalne poteze in prekrivanja obrazcev po postopnem izrisovanju
Spremenjeno (Changed)
FormFieldCount, indeksi polj obrazca in vrstni red tabulatorjev zdaj opisujejo samo pripise gradnikov namesto vključevanja nepovezanih pripisov strani- Strani
TPdfbrez glave zdaj vstopajo in zapuščajo življenjski krog strani polnjenja obrazca, tako da domača fokusiranost in API-ji fokusiranih polj delujejo brezTPdfView - Izvozi opisov priponk so omejeni z zmožnostmi, tako da aplikacije, ki uporabljajo starejšo izgradnjo PDFium, še vedno lahko naložijo knjižnico in zaznajo nedosegljivo funkcijo
Popravljeno (Fixed)
- Postopno izrisovanje strani zdaj riše kontrolnike obrazca, ko je polnjenje obrazca omogočeno
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo novo diagnostiko dokumentov, opise priponk, črtnalne poti, vedenje obrazcev, razpone bajtov podpisa, razpone spletnih povezav in metapodatke slik
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.49.0
Version 2.48.0
Dodano (Added)
TPdfMatrixzdaj izpostavlja tovarne, kloniranje in prirejanje, diagnostiko končnega stanja in obrnljivosti, primerjavo na podlagi tolerance, dostop do translacije, poročanje determinante in afinsko razstavljanje- Sestavljanje prepend, vrtenje, ki upošteva osišče, skaliranje, nagnjenost in zrcaljenja ter preslikava pravokotnikov stretch, contain in cover podpirajo poteke dela v lokalnem prostoru in prilagojene postavitve brez ročne aritmetike koeficientov
- Nemutacijski inverzni dostop, inverzna preslikava točk, transformacije vektorjev in štirikotnikov, dinamična paketa točk in pravokotnikov, in-place različice in enoprehodne transformirane meje razširjajo ponovno uporabno geometrijsko površino
Spremenjeno (Changed)
- Translacija, skaliranje in zrcaljenja osi zdaj posodabljajo samo prizadete koeficiente namesto usmerjanja skozi splošno afinsko množenje
- Transformacija pravokotnikov normalizira svoj vhod enkrat, uporablja specializirano točno z osmi poravnano pot, kjer je mogoče, in izračuna splošne zasukane meje brez začasnih zapisov točk
- Paketne transformacije točk in pravokotnikov dodelijo eno polje rezultatov ali ponovno uporabijo shrambo klicalca, medtem ko se transformirane meje točk akumulirajo v enem prehodu brez vmesnega polja
Popravljeno (Fixed)
- Preslikava pravokotnikov zavrača rezultate ničelne velikosti, nekončne in s prekoračitvijo
Single, preden objavi neuporabno matriko - Testi Delphi, Lazarus in C++Builder zdaj preverjajo vrstni red sestavljanja, invariant osišča, inverzne povratne poti, prilagojene pravokotnike, razstavljanje in vedenje masovne geometrije
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.48.0
Version 2.47.0
Dodano (Added)
FPdfAsynczdaj zagotavlja strukturirane razloge in sporočila preklica, odstranljive registracije povratnih klicev, na časovni omejitvi temelječe vire, čakanje na preklic in atomske operacije try-cancel prek razširjenih vmesnikov, ki ohranjajo izvirni APITPdfFuture<T>.RunExdoda nastavljivo odpošiljanje odgovorov in prioriteto delavca, medtem ko ovojnice rezultatov izpostavljajo ID-je operacij, veljavnost vrednosti, imena razredov izjem, merjenje časa zaključka in ponovno uporabne pomočnike zaključkaTPdfAsyncExecutordoda ponovno uporaben fiksen bazen delavcev s štirimi pasovi prednosti FIFO, izbirno omejitveno-čakalno protitlak, preklicljive ročice nalog, na časovno omejitev občutljivo čakanje, posnetke nalog, združene statistike in elegantno zaustavitev
Spremenjeno (Changed)
- Ponavljajoča se asinhrona opravila lahko ponovno uporabijo niti delavcev in operacije čakalne vrste O(1) namesto ustvarjanja niti za vsako nalogo, medtem ko sinhroniziran zaključek ostaja na voljo za gostitelje uporabniškega vmesnika
- Napake izvajalnika in future ohranjajo diagnostiko razreda in sporočila izjem, preklic ohranja svoj izvirni razlog, izjeme povratnih klicev pa ostajajo izolirane od življenjskega kroga delavca in zaustavitve
- Testi Delphi, Lazarus in C++Builder zdaj pokrivajo razširjeno površino preklica, metapodatkov future, nadzora nalog, protitlaka, razvrščanja prednosti, statistike, napak in zaustavitve
Popravljeno (Fixed)
- Sočasni lastniki preklica zdaj prejmejo determinističen rezultat prvega zapisovalca namesto da bi se zanašali na ločeno zaporedje opazovanja in preklica
- Čakanje nedejavnosti glavne niti obdeluje sinhronizirane odgovore nalog in preprečuje, da bi končani delavec pustil izvajalnika trajno nedejavnega med usklajeno zaustavitvijo
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.47.0
Version 2.46.0
Dodano (Added)
FPdfAsn1zdaj izpostavlja razrede identifikatorjev, 64-bitno kodiranje in dekodiranje številk visokih oznak, razčlenjene zapise TLV, okna podrejenega bralnika s kopiranjem nič, tipizirane primitivne dekodirnike in rezine vsebine ali kodiranih vrednosti- Pisniki DER zdaj podpirajo celoten nepodpisani 64-bitni razpon INTEGER, preverjeno poljubno vsebino INTEGER, ENUMERATED, samodejno izbiro UTCTime ali GeneralizedTime, application in private oznake, večvrednostno SEQUENCE in kanonično razvrščen izhod SET OF
ValidateDervrne napake preverjanja, ki upoštevajo odmik, pri čemer uveljavlja nastavljive omejitve gnezdenja, števila vozlišč, dolžine vsebine, števila napak, korena in izbirnega razvrščanja SET
Spremenjeno (Changed)
- Združevanje DER in večvrednostna sestava uporabljata eno dodelitev izhoda, medpomnilniki pisnika izpostavljajo operacije reserve, count, capacity in prenosa lastništva, razvrščanje SET OF pa zdaj uporablja
O(n log n)zlivanje - Vrednosti BOOLEAN, INTEGER, BIT STRING, OBJECT IDENTIFIER, NULL, UTF8String, PrintableString, IA5String, UTCTime in GeneralizedTime prejmejo preverjanja kanonične oblike med kodiranjem, tipiziranim dekodiranjem ali preverjanjem
- Izvajalni paket Lazarus zdaj izvaža
FPdfAsn1, testne zbirke Delphi, Lazarus in C++Builder pa vajajo isto javno površino DER
Popravljeno (Fixed)
- Kontekstno specifične številke oznak, večje od 30, niso več skrajšane v spodnjih pet bitov identifikatorja
- Deformirani identifikatorji visokih oznak, neminimalne določene dolžine, neveljaven UTF-8, neničelno oblazinjenje BIT STRING, neveljavna časovna polja, končne korenine in kršitve omejitev virov se deterministično zavračajo
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.46.0
Version 2.45.0
Dodano (Added)
FPdfPreflightReportzdaj dodeli resnost Info, Warning ali Error vsaki težavi in izpostavlja API-je resnosti, stanja, kategorije, kode težav, iskanja, pregleda, sploščenja in filtriranja na ravni standarda in poročila- Poročila o predletu zdaj izvažajo SARIF 2.1.0, JUnit XML, NDJSON in domači XML prek ujemajočih se metod
To*inSave*ToFileza cevovode CI, avtomatizacije in pretakanja - Stabilni prstni odtisi poročil SHA-256 identificirajo enakovredne rezultate preverjanja neodvisno od izvornih poti in časovnih žigov generiranja
Spremenjeno (Changed)
- Poročila JSON, CSV, text, Markdown in HTML zdaj vključujejo resnost in razširjene povzetke stanja; HTML doda dostopne napisе tabel in povzetek stanja
- Izgradnja zbirk težav in standardov uporablja geometrično rast kapacitete, rezultati poizvedb so prednastavljene velikosti, ubežni znaki JSON pisje v eni omejeni izhodni medpomnilnik, vsе datoteke poročil pa uporabljajo enega neposrednega pisnika UTF-8
- Povzetki kategorij težav uporabljajo deterministično razvrščanje, časovni žigi vključujejo milisekunde, JSON nosi
formatVersion: 2, celice CSV pa nevtralizirajo formule preglednic
Popravljeno (Fixed)
- Izvoz JSON zdaj ohranja veljavne dopolnilne pare Unicode in nadomešča izolirane nadomestne kodne enote UTF-16 namesto oddajanja deformiranih skalarnih podatkov
- Izvoz HTML zdaj ubeži opuščajim, filtrirani pogledi poročil pa imajo neodvisna polja težav namesto deljenja spremenljive shrambe rezultatov
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki namestilnika zdaj dosledno poročajo o Version 2.45.0
Version 2.44.0
Dodano (Added)
- Zaznamki in cilji izpostavljajo odprto stanje, števila potomcev, cilje dejanj, načine prikaza ciljev ter do štiri parametre prikaza
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissioninUserHasPermissionzagotavljajo tipizirane posnetke pregleda dokumenta in poizvedbe po dovoljenjihExtractThumbnail(PageNumber)izriše zahtevano stran brez spreminjanja aktivne strani, rezultati časovnega žiga RFC 3161 pa izpostavljajo pravila, čas generiranja in podrobnosti nonce
Spremenjeno (Changed)
- Poti zaznamkov, JavaScripta, metapodatkov, ciljev in sličic uporabljajo potrjena dvoprehodna medpomnilnika, geometrično rast zbirk in prehod, varen pred cikli
- Naknadna obdelava shranjevanja razreši aktivni katalog, drevo strani in odprto dejanje skozi trenutno revizijo xref, predpomni razkodirane tokove objektov in pregleda slovarje PDF z leksičnimi mejami
- Skupna razčlenitev PDF zdaj uveljavja točne glave objektov, generacije, ključe slovarjev, dolžine tokov, geometrijo prediktorja, celaštevilske obsege ter meje komentarjev, dobesednih nizov in šestnajstiških nizov
- Preverjanje veljavnosti odgovorov RFC 3161 zdaj vezuje tako nonce kot SHA-256
messageImprint, zahteva strukturno veljavnega podpisnika in uporablja stroga pravila za dolžino DER, OID, INTEGER in GeneralizedTime
Popravljeno (Fixed)
- Inkrementalni dokumenti pri dodajanju privzetega odprtega dejanja ne izberejo več neaktivnih podvojenih katalogov ali nepravilno oblikovanih pripon sklicev
- Žetoni časovnega žiga z dolgooblikovnimi dolžinami DER ohranijo popoln kodiran žeton, medtem ko se nepravilno zaporedje neobveznih polj CMS in prazne množice podpisnikov zavrnejo
- Čisti izdelki Delphi zdaj zapisujejo polja semena nonce PAdES prek poravnanih varnih kopij bajtov in posredujejo bajte odgovora XFA z nativno natančno vrsto kazalca
Version 2.43.0
Dodano (Added)
- Zapisi polj in opomb XFDF zdaj izpostavljajo zastavice prisotnosti, ki razlikujejo izpuščeno vrednost XML od eksplicitno prazne vrednosti
Spremenjeno (Changed)
- Uvoz XFDF sprejema elemente in atribute s predpono imenskega prostora, mešano vsebino besedila in CDATA, reference entitet ter vrednosti, pomembne za belo polje, pri čemer zavrne neveljavne skalarne reference Unicode
- Uvoz in izvoz XFDF uporabljata indeksirano ujemanje polj in omejene geometrične medpomnilnike, kar izboljša prepustnost in najvišje vedenje dodeljevanja za globoko ugnezdene obrazce, velike zbirke opomb, sezname črtanja, oglišča in označevalne štirikotnike
- Preverjanje veljavnosti PDF/A in PDF/UA uporablja omejeno rast za velike zbirke strani, tokov, imen struktur in zbirk RoleMap; razrešitev PDF/UA RoleMap zdaj sledi neposrednim poljem ter posrednim objektom imena ali polja z natančno generacijo
Popravljeno (Fixed)
- Cikli XFDF zdaj ohranjajo globoko ugnezdena polja poti, eksplicitno prazne vrednosti polj, eksplicitno prazne vsebine opomb ter razliko med odsotnimi in praznimi vsebinami
- Neveljavna nalaganja medpomnilnika pomnilnika in dodelitve strani zunaj obsega se zavrnejo brez puščanja delnega stanja dokumenta ali strani, neuspešno ponovno nalaganje nativne strani pa ohrani prej aktivno stran
- Veliki identifikatorji označene vsebine in medpomnilniki metapodatkov podpisa so omejeni in preverjeni pred dodeljevanjem ali nativnim dostopom
Version 2.42.0
Dodano (Added)
TPdfMatrixzdaj zagotavljaInvert,TryInvert,TransformPointinTransformRectza preslikavo koordinat, preizkus zadetkov, normalizirane meje in eksplicitno obravnavo singularne matrikeTPdf.WrapTextje pridobil preobremenitevBreakLongWords, ki razdeli besedilo CJK in druga besedila brez presledkov, pri tem pa drži skupaj veljavne nadomestne pare UTF-16TPdfAnnotation.AttachmentPointSetsizpostavi vsak štirikotnik v večvrstičnih opombah označevanja, medtem ko obstoječe poljeAttachmentPointsostane vzdevek za prvo množico
Spremenjeno (Changed)
- Izvlečka besedila, gradnja berljive vsebine, iskanje besed in preslikava odmikov izgovorjenega besedila zdaj uporabljajo omejeno dodeljevanje in binarne poti iskanja, kar zmanjšuje ponavljajoča se dodeljevanja in linearna pregledovanja na velikih straneh
- Serializacija ASN.1 in generiranje šifriranih PDF zdaj uporabljata geometrične izhodne medpomnilnike; razvrščanje šifriranih objektov uporablja razvrščanje
O(n log n), vrstice xref pa se zapisujejo neposredno v končni medpomnilnik WrapTextohranja meje vrstic CR, LF in CRLF ter za celotno operacijo znova uporablja en nativni objekt merjenja- Uvoz in izvoz XFDF ohranita vsak označevalni štirikotnik; uvoz poleg tega uveljavi barve RGB/notranjosti in razčleni decimalne koordinate neodvisno od kodne strani procesa
Popravljeno (Fixed)
- Zapuščeni klicatelji lahko znova posodobijo vsebino in avtorja opombe z dodelitvijo nepraznih nizov brez nastavitve novejših stražarjev
HasContentsinHasAuthor - Eksplicitno prazni nizi opomb zdaj uporabljajo veljaven nativni medpomnilnik z ničelnim zaključkom, tako da brisanje
/Contents,/Tin drugih neobveznih ključev besedila ne posreduje več kazalca nil v PDFium
Version 2.41.0
Spremenjeno (Changed)
- Preflight poročilo
SaveJsonToFile,SaveMarkdownToFileinSaveTextToFilezdaj v Delphi zapisuje UTF-8 (kar se ujema z obstoječimSaveHtmlToFile) namesto sistemske kodne strani ANSI; ne-ASCII znaki v poteh datotek, priporočilih in opombah obsega so bili v Delphi popačeni, ko so bili shranjeni s temi metodami SaveCsvToFilezdaj zapisuje UTF-8 s predpono BOM, tako da Excel for Windows samodejno zazna kodiranje; brez BOM Excel obravnava UTF-8 CSV kot code-page 1252 in popači vse ne-ASCII znake
Popravljeno (Fixed)
- Predstavitveni program
ExtractImagesje puščal predpomnjene objekteTBitmapvFExtractedImages, ko je bil obrazec zaprt brez predhodnega eksplicitnega čiščenja; obrazec zdaj prepišeDestroyza klicClearExtractedImages, kar sprosti vsako predpomnjeno bitno sliko
Version 2.40.0
Spremenjeno (Changed)
TPdf.RenderPage(HDC, ...)zdaj maskira izjeme FPU/SSE okoli klicaFPDF_RenderPage, kar se ujema sTPdfView.RenderPage(HDC)(popravljeno v v2.25.0) in vsako izrisovalno vstopno točko, ki vrača bitno sliko; neposredna preobremenitev na raven direct-to-DC vTPdfje prej pustila FPU izjeme nemaskirane na prevajalnikih pre-D12
Popravljeno (Fixed)
ColorToARGBzdaj vrne popolnoma prosojno slikovno piko (alpha 0) zaclNoneinclDefaultnamesto obravnave stražarske vrednosti kot dobesedne barve RGB; prejšnje vedenje je povzročilo temno, skoraj neprosojno polnilo, ko je klicatelj poslalclNonev pričakovanju brez barve
Version 2.39.1
Popravljeno (Fixed)
- Eksplicitna shranjevanja v PDF 1.3 zdaj odstranijo vnose
/SMask /None,/AIS falsein/TK true, ki le ponavljajo začetno grafično stanje, medtem ko še naprej zavračajo neprivzeto stanje prosojnosti
Version 2.39.0
Spremenjeno (Changed)
CreatePDFinImageToPDFzdaj uporabljata potrjene cilje shranjevanja in poročata o uspehu le, ko seSaveAsuspešno zaključiBatchExport,PDFtoJpginSplitPDFzdaj dodelijo edinstvene izhodne imenike, tako da ponovljeni zagoni in enako poimenovani vhodi ohranijo prejšnje rezultateSplitViewzdaj enkrat zaokroži iskanje brez puščanja skritega stanja strani po preklicu ali neujemanju ter prekine nepopolna tiskalniška opravila namesto pošiljanja delnega izhoda
Popravljeno (Fixed)
MergePDFzdaj zavrne nepravilno oblikovane žetone obsega strani in izhodne poti, ki prepisujejo vir, prešteje dejansko uvožene strani ter zavrne shranjevanje praznega rezultata- Delphi in C++Builder predstavitvena programa
Attachmentzdaj uveljavljata shranjevanja na isto pot prek varne zamenjave datotek z možnostjo povrnitve, tako da neuspešno preimenovanje ne more odstraniti izvirnega dokumenta PDF
Version 2.38.0
Spremenjeno (Changed)
SetAnnotationDatazdaj varuje zapise v/Contentsin/Authorza stražarjiHasContents/HasAuthornaTPdfAnnotation, kar se ujema z obstoječim vzorcemHasName/HasSubject/HasIcon; prej sta bili ti dve polji zapisani brezpogojno, zato je dodelitev zapisaDefault(TPdfAnnotation)za posodobitev le barve ali zastavic tiho prepisala obstoječo vsebino in avtorja opombe s praznimi nizi;GetPageAnnotationzdaj nastavi te stražarje, tako da cikel branja, spreminjanja in zapisovanja ohrani izvirne vrednosti
Popravljeno (Fixed)
GenerateFormAppearanceszdaj bere vrednost potrditvenega polja ali izbirnega gumba prekFPDFAnnot_GetFormFieldValue(ki se pomakne do nadrejenega slovarja polj po ISO 32000-1 §12.7.5) namesto prekFPDFAnnot_GetStringValue(Annot, 'V', ...)(ki bere slovar gradnikov); gradnik običajno ne vsebuje/V, zato se/ASni nikoli sinhroniziral z označenim stanjem, sploščeno potrditveno polje ali izbirni gumb pa sta se izrisala kot neoznačena
Version 2.37.0
Spremenjeno (Changed)
ParseTsaUrlzdaj po analizi omeji vrata na območje1..65535; prevelika vrednost vrat bi se sicer prelomila zaradi odsekanjaDWORDin bi lahko pristala na veljavnih vratih- XFDF
ParseFieldzdaj sprejme parameter globine (privzeto 0, omejeno na 64) in vrne prazno polje na meji, tako da zlonamerno ugnezdena veriga<field>z globino 100 000 ne more več povzročiti prekoračitve sklada
Popravljeno (Fixed)
- Zahteva TSA HTTP zdaj varuje pred praznim telesom zahteve, preden posreduje
@ReqDer[0]funkcijiWinHttpSendRequest; dereferenciranje dinamičnega polja dolžine nič bi dostopalo do neozemljenega kazalca;BuildTimeStampReqvedno vrne neprazno SEQUENCE, vendar klicno mesto zdaj ščiti pogodbo
Opombe (Notes)
- Komentar glave v
FPdfTsaWino preverjanju preklica HTTPS je bilo popravljeno; WinHttp privzeto potrdi verigo potrdil strežnika, vendar pa **ne** izvede preverjanja preklica CRL/OCSP, razen če je to eksplicitno omogočeno prekWinHttpSetOption; prejšnje besedilo je trdilo, da je preverjanje preklica brezplačno priloženo, kar je bilo zavajajoče
Version 2.36.0
Spremenjeno (Changed)
- Zahteve TSA HTTP zdaj poleg glave
Content-TypeinAcceptpošljejo tudi eksplicitno glavoContent-Length; WinHttp jo sicer sestavi iz skupne dolžine, vendar nekateri posredniki RFC 3161 zahtevajo eksplicitno glavo in brez nje zavrnejo zahtevo z napako411 Length Required - Izvoz XFDF zdaj opusti nadzorne znake C0 (razen TAB/LF/CR, ki so že ubežni) namesto izdajanja neveljavnega zaporedja s poševnico in šestnajstiško vrednostjo; prejšnje ubežno zaporedje
\-01Fni veljaven XML (poševnica v XML nima posebnega pomena), zato bi vsak skladen bralnik zavrnil dokument kot nepravilno oblikovan InjectAssociatedFileszdaj zapiše/Subtypev slovar toka EmbeddedFile, ko klicatelj podaTAssociateFile.MIMEType; polje je bilo deklarirano in dokumentirano, vendar je injektor prej trdo kodiral/Type /EmbeddedFilein ga prezrl (ISO 32000-2 §7.11.4 dovoljuje/Subtypev toku)
Popravljeno (Fixed)
- Uvoz XFDF je preskočil prvi bajt vsebine za oznako UTF-8 BOM in prvi bajt, ko BOM ni bil prisoten; klici
BytesToAnsi(Bytes, 4, ...)(BOM) inBytesToAnsi(Bytes, 1, ...)(brez BOM) so uporabili napačne začetne odmike za ena, kerBytesToAnsisprejme indeks polja z osnovo 0; klici zdaj uporabljajo3in0 - Metoda
ExtractSignatureValueje imela dve napaki zamika visečega if (dangling-if), kjer se jeR.Position:= CNizvedel brezpogojno za neobvezni vejicertificates [0]insignedAttrs [0]; veje so zdaj zavite vbegin/end, tako da se položaj premakne naprej le, ko je bila neobvezna vrednost TLV dejansko prebrana (enaka vrsta napake je bila popravljena vAddSignatureTimestampToCmsv različici v2.22.0)
Version 2.35.0
Spremenjeno (Changed)
- Funkcije
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailinTFPDFAvail_IsFormAvailzdaj sprejmejohints: PFX_DOWNLOADHINTSnamestovar hints: FX_DOWNLOADHINTS, tako da je dokumentirani način samo za poizvedovanjenullptr(preverjanje trenutne razpoložljivosti brez zahteve po dodatnih podatkih) dosegljiv iz Delphi; glava PDFium eksplicitno dovoljuje, da jehintskazalec null, kar je prejšnja vezava zvaronemogočala - Funkcija
TFPDF_SetSystemFontInfozdaj sprejmepFontInfo: PFPDF_SYSFONTINFOnamestovar pFontInfo: FPDF_SYSFONTINFO, tako da lahko klicatelji prenesejonilin s tem naročijo PDFium, naj preneha uporabljati predhodno registriran vmesnik sistemskih pisav (dokumentirana pot za onemogočanje) - Kontrola
TPdfThumbnailView.Paintzdaj izračunaVisibleRowsz enako formulo kotUpdateScrollBarRange(ClientHeight div RowHeight), tako da se število izrisanih vrstic ujema z velikostjo strani drsnika; prejšnja formula samo za izrisovanje ((ClientHeight - FMarginY) div RowHeight + 1) se je pri mejnih višinah lahko razlikovala za eno vrstico, kar je povzročilo nepotrebno izrisovanje vrstice izven strani ali izpustitev zadnje vidne vrstice
Version 2.34.0
Dodano (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— visokonivojski API, ki shrani dokument in ga nato šifrira s PDF 2.0 standardom AES-256-CBC (V=5/R=5/R=6); sprejme strukturoTPdfEncryptOptionsz uporabniškim/lastniškim geslom, dovoljenji in revizijo ter opravilo delegira funkcijiEncryptDocumentBytes- Šifriranje dobesednih nizov StrF:
EncryptDocumentByteszdaj šifrira dobesedne nize(...)v objektih, ki niso tokovi (slovar Info itd.), v šestnajstiške nize AES-256-CBC, kar se ujema s formatom šifriranja toka (16-bajtni IV + šifrirano besedilo PKCS7); šestnajstiški nizi<...>ostanejo nespremenjeni
Version 2.33.0
Dodano (Added)
- Injektor šifriranja celotnega dokumenta AES-256-CBC v enoti
FPdfEncrypt.pas;EncryptDocumentBytessprejme navadno besedilo PDF in geslo, šifrira vsak posredni objekt toka (16-bajtni IV + AES-256-CBC PKCS7 pod ključem datoteke), popravi/Length, doda slovarski objekt/Encryptter znova zgradi celotno klasično tabelo navzkrižnih sklicev in prikolico z/Encryptin/ID; s tem zaključi sklad šifriranja PDF 2.0 (blok AES + GCM + SHA-512/384 + izpeljava ključa R6 + slovar + pregled dokumenta) - Pomožna funkcija
EncryptStreamPayload— format toka PDF 2.0 AES-256 (IV je dodan na začetek šifriranega besedila AES-CBC-PKCS7), ki jo lahko znova uporabijo klicatelji, ki sami upravljajo postavitev svojih objektov
Version 2.32.0
Dodano (Added)
- Zgoščevalna funkcija SHA-512 / SHA-384 (FIPS 180-4) v novi enoti
FPdfSha512.pas; čistokrvni Pure-Pascal, prenesen iz HotPDF; zahteva jo iteracija zgoščevanja gesla PDF 2.0 R6, ki se na podlagi 128-bitne vrednosti mod-3 odloči za uporabo SHA-256/384/512 v vsakem krogu, kar je preverjeno po standardu FIPS-180-4 B.1; - Izpeljava šifrirnega ključa PDF 2.0 in gradnik slovarja Encrypt v novi enoti
FPdfEncrypt.pas; implementira algoritem 2.B po standardu ISO 32000-2 §7.6.4.3 (R6 hash dance: AES-128-CBC + iterativna izbira SHA-256/384/512), izpelje 32-bajtni šifrirni ključ datoteke ter vnose/O,/U,/OE,/UE,/Permsin zgradi slovar Encrypt z V=5/R=5/R=6 in oznakami/CFM /AESV3; preneseno iz PDFlibPas in prilagojeno slogu TBytes
Version 2.31.0
Dodano (Added)
- Primitivi blokovnega šifriranja AES (FIPS 197) v novi enoti
FPdfAes.pas; čistokrvni Pure-Pascal za bločni šifri AES-128 in AES-256 s pomožnimi funkcijami za način CBC in ozadjem CSPRNG, preneseno iz HotPDF; testi z znanimi odgovori po FIPS-197 Appendix C.2 / C.3 potrjujejo pravilnost delovanja, kar predstavlja kriptografsko osnovo za šifrirni sklad PDF 2.0; - Šifriranje z overitvijo AES-GCM (NIST SP 800-38D) v novi enoti
FPdfAesGcm.pas; implementira GHASH (množenje GF(2^128)), GCTR in konstrukcijo GCM AEAD nad bločnimi primitivi AES; testna primera NIST GCM 1 in 3 (AES-128) se natančno ujemata z avtoritativnim šifriranim besedilom in oznako, testni primer 13 (AES-256) pa uspešno izvede celoten krog pretvorbe; GCM je način po standardu ISO/TS 32003 za PDF 2.0; - Preverjanje celovitosti struktur ParentTree in ClassMap za PDF/A Level A (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingoznači StructTreeRoot brez številskega drevesa /ParentTree,pvaiClassMapUnresolvedpa označi sklic razreda /C brez strukture /ClassMap
Version 2.30.0
Dodano (Added)
- Vstavljanje povezanih datotek (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); nova enotaFPdfAssocFilespripne polja sklicev specifikacije datotek/AFv katalog ali kateri koli slovar strani, kar pokriva vseh osem vrednosti/AFRelationshipiz ISO 32000-2 Table 45; znova uporabi vzorec inkrementalne posodobitve, dokazan zInjectPadesDssMarkers - Podpora za PDF/X-6 (ISO 15930-9:2020);
TPdfXConformancedodapxc6, injektor in validator podaljšata to skozi identifikacijopdfxid:GTS_PDFXVersion; PDF/X-6 je naslednik standarda PDF/X-4, temelječ na PDF 2.0, za popolno izmenjavo - PDF/A prepoveduje dejanje
/Thread(vrzel v seznamu dovoljenih dejanj po ISO 19005-1 §6.6.1); seznam prepovedanih dejanj zdaj poleg dejanj Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition in Hide pokriva tudi Thread
Popravljeno (Fixed)
- Validacijska pot za PDF/A-4e zdaj upošteva enake preglede označene strukture, MarkInfo in prelomov besed kot Level A; posodobitev na strani shranjevanja v v2.29.0 je pokrila
PdfAIsLevelE, vendar so tri vrataValidatePdfACompliancepreverjala samoPdfAIsLevelA, zaradi česar je dokument PDF/A-4e brez označene strukture tiho prestal preverjanje - Odstopanje testov OCG
/BaseState: prehod PostProcess v v2.28.0 je pravilno razširil sprejemanje na/ONali/OFF(ISO 32000-1 Table 8.70), vendar sta Delphi in C++ testa še vedno pričakovala zavrnitev/OFF; testi zdaj uporabljajo resnično neveljavno vrednost (/Undefined), nov pozitivni test pa zaklene sprejemanje /OFF; - Prekomerno ujemanje geoprostorskega
/Subtype /GEO: funkcijaContainsDictionarySubtype('GEO')se je ujemala z vsakim slovarjem, ki je vseboval ta žeton, vključno z nepovezanimi, kot je napačen/ViewerPreferences << /Subtype /GEO >>; nova funkcijaContainsMeasureDictionarySubtypedodatno zahteva/Type /Measureali sestrski ključ, ekskluziven za Measure, tako da slovarji, ki niso tipa Measure, ne sprožijo več zahteve po ADBE ExtensionLevel 3
Version 2.29.0
Dodano (Added)
- Podpora za PDF/A-4 (ISO 19005-4:2020) v validatorju, injektorju XMP in objektnem modelu Pdfium;
TPdfAConformancedodapac4base,pac4finpac4e; osnovna raven je PDF 2.0 (ISO 32000-2) in nadomešča starejše ravni A/B/U z osnovno raven + F (obrazec) + E (dostopnost);ValidatePdfAprebere paket XMPpdfaid:part=4(osnova opusti element skladnosti),SaveAsPdfAga izda,SignPadesWithPdfApa sprejmepac4basekot vsebnik za dolgoročno arhiviranje - Vezava
FPDFBookmark_GetColor— zadnji neizvozni javni izvoz PDFium (469/469);TBookmarkpridobi poljiHasColorinColor, napolnjeni iz polja zaznamkov/C(ISO 32000-1 §12.3.3); vezava uporablja tolerantno nalaganje, tako da starejše knjižnice DLL, ki so nastale pred tem izvozom, še naprej delujejo - Preverjanje različice glave za PDF/E-1 (ISO 24517-1 §5) z oznako
pveiBadPdfVersion— PDF/E-1 temelji na PDF 1.6 in glava, ki ni različice 1.6, je zdaj označena - Oznaka
pvriEncryptVersionMismatchza PDF/R-1 (ISO 23504-1) — šifriranje je dovoljeno le na glavi%PDF-2.0; telo 1.x, ki vsebuje/Encrypt, je zdaj označeno, medtem ko je bila prej ta izjava prezrta - Oznaka
pvriBadMediaBoxza PDF/R-1 — vsaka stranMediaBoxmora biti[0 0 w h];PdfRHasNonZeroMediaBoxOriginje lokalno neodvisen bralnik ASCII, ki preskoči strukture MediaBox s posrednimi sklici - Oznaka
pvaiRoleMapUnresolvedza PDF/A Level A (ISO 19005-1 §6.8.3.4) — prisotna, a nepopolna struktura RoleMap, ki pusti prilagojene strukturne tipe/Snepreslikane, je zdaj označena, kar odpravlja vrzel, ki jo je pustil obstoječi pregledpvaiRoleMapMissing, ki je preverjal le prisotnost
Popravljeno (Fixed)
- Funkcija
PdfVersionToName(20)je vrnila"1.0"namesto"2.0", kar je pokvarilo vnos kataloga/Versionin sporočila validatorja za vsako shranjevanje PDF 2.0; oblikovalnik zdaj eksplicitno razdeli major.minor za različice>= 20 - Prevajalnik za negativne vrednosti INTEGER v enoti
FPdfAsn1.passe pod Delphi 12 se ni uspešno prevedel (napakaE2015priInteger(-(V<0))), kar je blokiralo celoten testni projekt; popravljeno z uporabo maskeInt64(-Ord(V<0))za razširitev predznaka - Seznam prepovedanih opomb za PDF/A zdaj vključuje
/RichMediav vseh delih (prej izpuščeno; ISO 32000-1 §12.5.6.35 to prepoveduje v PDF/A)
Version 2.28.0
Dodano (Added)
TPdfVersionzdaj vključujepv20za PDF 2.0 (ISO 32000-2); funkcijaDecodePdfVersion(20)vrnepv20namestopvUnknown, funkcijaEncodePdfVersion(pv20)pa odda vrednost 20, tako da se različica dokumenta PDF 2.0 ne izgubi več pri ponovnem branju in jo je mogoče eksplicitno zapisati
Spremenjeno (Changed)
- Funkcija
DecodeDatezdaj analizira datumske nize PDF z neobveznimi polji na koncu po standardu PDF Reference 3.8.3, namesto da bi zahtevala celotno 23-znakovno oblikoD:YYYYMMDDHHmmSSOHH'mm'; skladni skrajšani datumi, kot soD:20260712,D:20260712153000inD:20260712153000Z, so zdaj sprejeti, medtem ko so bili prej zavrnjeni zaradi stroge omejitveLength=23; odmik časovnega pasu v urah se zdaj preverja glede na realno območje UTC-12..UTC+14 namesto pogoja več kot 23 - Funkcija
FPdfMeasure.MeasureTextzdaj kodira ime pisave kot FPCAnsiString/ DelphiUTF8Encode, kar se ujema z drugimi klicnimi mesti FPDF_BYTESTRING v knjižnici, namesto gole pretvorbe vAnsiString, ki je popačila ne-ASCII imena družin pisav prek trenutne sistemske kodne strani
Popravljeno (Fixed)
- Pot negativnih vrednosti za
TDerWriter.Integerse je sesula ali ustvarila nepravilno oblikovan DER; zankawhile V <> -1 do V := V shr 8je pustila poljeInnerprazno zaValue = -1(napaka obsega pri naslednjemInner[Length(Inner)-1]) in proizvedla preveč bajtov za druge negativne vrednosti; kodirnik zdaj ekstrahira bajte dvojiškega komplementa s premiki za razširitev predznaka in se pravilno ustavi, ko je preostanek le še razširitev predznaka; polja CMS/PAdES INTEGER so sicer pozitivna, zato to vpliva le na klicatelje, ki prenašajo negativne vrednosti, vendar je pot zdaj pravilna - Funkciji
TPdf.GetCharacterOrigininTPdfView.GetCharacterOriginsta prezrli povratno vrednostFPDFText_GetCharOriginin ob napaki vrnili neinicializirano točko; rezultat je zdaj inicializiran na nič, neuspešno branje pa vrne izhodišče, kar se ujema s pogodbo zaGetCharacterRectangle
Version 2.27.0
Spremenjeno (Changed)
- Predstavitvi
PDFViewerinMultiPageViewerza Delphi, C++Builder in Lazarus zdaj podpirataEnterinF3, ponastavita kontekst pri spremembi možnosti ter uporabljataEscza preklic iskanja ali tiskanja - Tiskanje sledi trenutnemu zasuku pregledovalnika in izbere pokončno ali ležečo usmeritev
- Vse tri predstavitve
ViewerInteractionLabpodpirajo bližnjiceCtrl+A,Ctrl+C,Enter,F3inEscbrez prestrezanja izvornih ukazov za urejanje
Popravljeno (Fixed)
- Preklic tiskanja v C++Builderju in Lazarusu prekine tiskalniško opravilo in ugnezdene zanke
- Gumb Cancel v Delphijevem
MultiPageViewerje povezan, iskalna polja pa ohranijo urejanje s puščicami, Home in End
Version 2.26.0
Spremenjeno (Changed)
TPdf.GetObjectBitmap,TPdf.GetBitmap,TPdf.GetThumbnailin ustreznikiTPdfViewpridobijo zaklep izrisovanja okoli klicevFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmapTPdf.RenderPageThumbnailupošteva/Rotatein znova izračuna prileganje za strani/Rotate 90in270
Popravljeno (Fixed)
TPdfView.GetCharacterRectangleob napakiFPDFText_GetCharBoxpravokotnik inicializira z ničlami in vrneRect(0,0,0,0)GetLinkAnnotationszdaj za URI in datotečne poti uporabljasize-1
Version 2.25.0
Spremenjeno (Changed)
TPdf.AddText,SetText,AddPathinInsertFormObjectFromXObjectpred ponovno izdelavo vsebine razveljavijo predpomnjeno besedilno stran in opombe povezavTPdfView.RenderPage(HDC, ...)pridobi zaklep izrisovanja in zakrije izjeme FPU/SSE- Predstavitev
PrintPDFpri preklicu pokličePrinter.Abort
Popravljeno (Fixed)
TPdf.GetCharacterinGetCharcodeza točke nad U+FFFF vrneta U+FFFD; za celoten UTF-16 uporabiteGetTextGetWebLinksnegativno številoFPDFLink_CountRectsomeji na ničTPdf.DestroyizbrišePasswordiz pomnilnika
Version 2.24.0
Dodano (Added)
TPdf.DeletePagein operacije s prilogami preverijo indekse ter izven obsega sprožijoEPdfError
Popravljeno (Fixed)
- Ročaji predmetov strani v
TPdf.AddText,AddBitmapinAddJpegImagese ob izjemi uničijo TPdf.UnloadPageprekFPDFPageObj_Destroyuniči opuščeni ročajFPathTPdf.InsertFormObjectFromXObjectpo vstavljanju pokličeUpdatePage
Version 2.23.0
Popravljeno (Fixed)
- Preverjanje
/BaseStateneobvezne vsebine zdaj sprejme tudi/OFFpoleg/ON - Preverjanje
/Intentsprejme/Designin polja, kot je[/View /Design] - Geoprostorsko zaznavanje Measure ne zahteva več neobveznega
/Type /Measurein prepozna/Subtype /GEO
Version 2.22.0
Spremenjeno (Changed)
- Izračuni prileganja povečave
TPdfViewuporabljajoClientWidth/ClientHeightnamestoWidth/Height, zatopfmFitPage/pfmFitWidth/pfmFitHeightprilagodijo stran vidnemu območju AddSignatureTimestampToCmssprožiExceptionza neberljivo polje CMS SignerInfo (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm)
Popravljeno (Fixed)
- Ročaj zasebnega ključa CNG v
ResolveWinSignerse sprosti zNCryptFreeObject EcDsaP1363ToDerzavrne povsem ničelno polovicoralisin ne izdaINTEGER 0
Version 2.21.12
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.5–PDF 1.7 zdaj zavrača nepravilno oblikovane strukture kataloga
/OCProperties, vključno z manjkajočimi zahtevanimi vnosi/OCGsali/D, neveljavnimi privzetimi vrednostmi konfiguracije in vnosi stanja, ki niso polja
Version 2.21.11
Popravljeno (Fixed)
- Eksplicitno shranjevanje različice PDF zdaj zavrača neposredne ali posredne vnose strani
/Annots, katerih slovarji anotacij izpuščajo zahtevan vnos/Subtypeali/Rect
Version 2.21.10
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.7 zdaj zahteva, da geoprostorski slovarji
/Type /Measure /Subtype /GEOin anotacije Projection deklarirajo/Extensions /ADBEz/BaseVersion /1.7in/ExtensionLevel 3ali novejšim
Version 2.21.9
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.7 zdaj zahteva, da anotacije RichMedia in dejanja
RichMediaExecutedeklarirajo/Extensions /ADBEz/BaseVersion /1.7in/ExtensionLevel 3ali novejšim
Version 2.21.8
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.7 zdaj zahteva, da PRC 3D tokovi deklarirajo
/Extensions /ADBEz/BaseVersion /1.7in/ExtensionLevel 1ali novejšim, namesto da bi obravnavali PRC kot osnovno funkcijo PDF 1.7
Version 2.21.7
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.4 in starejše zdaj zavrača vnose XObject slike
/SMaskInData, vključno z izrecno vrednostjo0, ker vgrajeni kanali mehke maske JPEG 2000 zahtevajo PDF 1.5 ali novejši
Version 2.21.6
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.4 in starejše zdaj zavrača 16-bitne XObject slike, ki zahtevajo PDF 1.5 ali novejši, medtem ko cilji PDF 1.5–PDF 1.7 ohranijo podatke slike
/BitsPerComponent 16
Version 2.21.5
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.4 in starejše zdaj zavrača vrednosti
/PageLayout /TwoPageLeftin/TwoPageRightkataloga dokumenta, ki zahtevajo PDF 1.5 ali novejši, medtem ko cilji PDF 1.5–PDF 1.7 ohranijo zahtevano dvostransko postavitev
Version 2.21.4
Popravljeno (Fixed)
- Eksplicitno shranjevanje v PDF 1.3 zdaj zavrača vnose
/Langkataloga dokumenta, ki zahtevajo PDF 1.4 ali novejši, medtem ko cilji PDF 1.4–PDF 1.7 ohranijo identifikator jezika
Version 2.21.3
Popravljeno (Fixed)
- Eksplicitni zapisi PDF 1.3 zdaj zavračajo drevesa imen
/EmbeddedFilesv dokumentu, ki zahtevajo PDF 1.4 ali novejši, ne da bi zavračali tokove vgrajenih datotek, na katere se sklicujejo starejše specifikacije datotek
Version 2.21.2
Popravljeno (Fixed)
- Zadnja različica: 2.21.4; Datum izdaje:
Version 2.21.1
Popravljeno (Fixed)
- Preverjanje veljavnosti hibridnih referenc zdaj pred klasičnimi xref-nadomestniki iz iste revizije upošteva dopolnilne vnose
/XRefStm, tako da stisnjena opomba in drugi objekti, omejeni z različico, niso več prezrti, ko jih tabela združljivosti označi kot proste
Version 2.21.0
Spremenjeno (Changed)
- Vsi primeri pregledovalnikov Delphi, C++Builder in Lazarus lahko odprejo PDF, posredovan kot prvi argument ukazne vrstice, primeri
MultiPageViewerza C++Builder in Lazarus pa zagotavljajo eksplicitne bližnjice za izbiro vsega in kopiranje
Popravljeno (Fixed)
- Zadnja različica: 2.21.12; Datum izdaje:
Version 2.20.0
Spremenjeno (Changed)
- Vsi primeri pregledovalnikov Delphi, C++Builder in Lazarus zdaj zagotavljajo dosledne bližnjice za odpiranje, iskanje, shranjevanje, tiskanje, povečavo in navigacijo po straneh, vsaka različica
ViewerInteractionLabpa podpira tudi skoke na strani, preverjen ročni zoom 10–600%, trajne dnevnike interakcij in preverjanja povratne poti koordinat klika
Version 2.19.1
Popravljeno (Fixed)
- Eksplicitno preverjanje veljavnosti različice PDF zdaj sledi aktivni verigi revizij klasičnega, hibridnega ali xref-stream formata, vključno z vnosi stisnjenih objektov, tako da zastareli, sproščeni in nereferenciran objekti ne povzročajo več lažnih napak različice funkcije
Version 2.19.0
Spremenjeno (Changed)
- Primeri prilog, ekstrakcije slik, ekstrakcije besedila, pretvorbe strani in razdeljevanja za C++Builder in Lazarus zdaj uporabljajo namenske izhodne mape ali varno zaključene datoteke, stabilna imena z ničelnim polnjenjem, odzivne posodobitve napredka in povzetke zaključka s številom napak na element
Popravljeno (Fixed)
CJKTextLabza C++Builder zdaj meri besedilo prek izvoženih funkcij za urejanje PDFium,MergePDFpa se izogiba dvoumni preobremenitvi sporočila VCL, s čimer obnovi čiste zgradbe v RAD Studio 37
Version 2.18.3
Popravljeno (Fixed)
- Časovni žig dokumenta PAdES B-LTA Document Time-stamp je zdaj registriran kot odkrivljivo polje podpisa — nevidljiv pripomoček Widget, dostopen prek
/Annotsprve strani in/FieldsAcroForm (ETSI EN 319 142-1 §5.4.3) — namesto kot nedosegljiv sirotski objekt, ki ga validatorji, ki naštevajo polja podpisov, niso mogli najti; obstoječe opombe in polja so ohranjeni
Version 2.18.2
Popravljeno (Fixed)
- Podpisovanje PAdES in klasično pisanje navzkrižnih sklicev zdaj sprožita jasno napako, ko odmik bajtov preseže fiksno širino polja s 10 ciframi (~9,3 GB), namesto da tiho pustita nevpisani nadomestnik
/ByteRange(kar ustvari neveljaven podpis) ali prekoračita 20-bajtno vrstico xref (ISO 32000-1 §7.5.4); izhod toka navzkrižnih sklicev uporablja 8-bajtna binarna polja in ni prizadet
Version 2.18.1
Popravljeno (Fixed)
- Podpisovanje PAdES zdaj razrešuje posredne sklice na
/Annots,/AcroFormin/Fieldsprve strani z celotno glavo objekta (ISO 32000-1 §7.5.3) in dejansko generacijsko številko sklica; prejšnje preprosto iskanje podniza je ujelo številko objekta znotraj daljšega (razrešitev5 0 Rv15 0 obj), trdo kodirana generacija pa je preskočila objekte zgen>0, s čimer je pokvarila matrike polj podpisov ali zavrnila veljavne dokumente - Ko katalog, prva stran,
/Annots,/AcroFormali/Fieldsprebiva v toku objektov, podpisovanje zdaj poskusi znova na razširjeni kopiji, preden ne uspe, namesto da takoj zavrne dokument
Version 2.18.0
Dodano (Added)
ReadPdfVersionInfoporoča o različici glave, efektivni osnovni različici, prepisovanju kataloga in ravni razširitve razvijalca Adobe iz toka PDF
Spremenjeno (Changed)
- Eksplicitni zapisi PDF 1.3–1.7 zdaj preverjajo strukture kataloga, virov strani, XFA, redakcije in razširitev razvijalcev v kontekstu lastništvenega objekta; šifriran eksplicitni izhod z različico in inkrementalna normalizacija PDF 1.3 sta zavrnjena za ohranitev celovitosti dokumenta
- Zapisi v pot datoteke zdaj zapisujejo v sosednjo začasno datoteko in zamenjajo cilj šele po uspešnem zaključku vseh preverjanj stiskanja, normalizacije in različice
Popravljeno (Fixed)
- Izhod PDF 1.3 zdaj nosi zahtevani polni vir
/ProcSetin odstrani ključe prosojnosti PDF 1.4, ko le ponavljajo začetne vrednosti grafičnega stanja PDF 1.3 - Datoteke s hibridnimi sklici, xref-stream in object-stream ne prepiše več klasični kompresor xref, kar preprečuje izpuščanje vnosov stisnjenih objektov
- Imena, ki spominjajo na ključe prosojnosti ali funkcij kataloga znotraj nizov, komentarjev ali nepovezanih map virov, ne povzročajo več lažnih napak ciljne različice
Version 2.17.0
Dodano (Added)
- Podpisi PAdES so zdaj registrirani kot nevidne opombe Widget v polju
/Annotsprve strani in v polju/FieldsAcroForm, pri čemer so ohranjene obstoječe opombe in polja obrazca
Spremenjeno (Changed)
- Inkrementalne posodobitve PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA, PDF/VT in PAdES zdaj ohranjajo predstavitev navzkrižnih sklicev izvornega dokumenta: dokumenti xref-stream prejmejo posodobitev xref-stream, kot zahteva ISO 32000-1 §7.5.8.1, medtem ko klasični dokumenti še naprej prejmejo tabelo xref
- Odmiki navzkrižnih sklicev,
startxref,/Prev, vrednosti PAdES ByteRange in obdelava obsegov SHA-256 zdaj uporabljajo 64-bitne položaje z razdelastim razpršanjem, kar omogoča datoteke, večje od 2 GB, v 64-bitnih gradbah - Ustvarjeni zapisljivi paketi XMP zdaj rezervirajo 2048 bajtov oblazinjenja pred zaključno navodilo paketa
Version 2.16.10
Popravljeno (Fixed)
- Razširitev object-stream ne obnavlja več zastarelih kopij objektov, ki jih je inkrementalna posodobitev preselila iz toka objektov v navadno definicijo (ISO 32000-1 §7.5.7); preverjanja skladnosti in vstavljanje oznak sta prej razrešila zastareli katalog ali slovar metapodatkov v takih datotekah
Version 2.16.9
Popravljeno (Fixed)
- V Free Pascal se besedilni nizi, katerih vhod ni veljavna UTF-8, razširijo bajt za bajtom kot Latin-1 in zapišejo kot šestnajstiški nizi UTF-16BE; surovi visoki bajti so se prej znašli v dobesednem nizu, kar ni zakonito kodiranje besedilnega niza PDF 1.7
- Dekodiranje toka zdaj prepozna surove podatke deflate brez ovoja RFC 1950 zlib (pogosta napaka okvarjenih piscev) in jih dekomprimira v surovem načinu, tako da pregledi skladnosti ne ostanejo tiho slepi na takih tokih
Version 2.16.8
Popravljeno (Fixed)
- Inkrementalne posodobitve, ki jih zapiše pot poprocesoriranja shranjevanja, zdaj osvežijo drugi (spreminjajoči se) element prikolice
/ID, kot zahteva ISO 32000-1 §14.4; oba elementa sta bila prej kopirana dobesedno, tako da so orodja za predpomnjenje in sinhronizacijo po vsaki posodobitvi videli nespremenjen identifikator
Version 2.16.7
Popravljeno (Fixed)
- Brisanje telesa toka, ki ga uporabljajo pregledi skladnosti, zdaj zahteva, da za ključno besedo
streamsledi konec vrstice (ISO 32000-1 §7.3.8.1); beseda znotraj dobesednega niza, kot je(downstream), je prej zbrisala vso naslednjo strukturo do naslednjegaendstream, s čimer je skrivala resnične kršitve pred pregledi na ravni bajtov - Pregledi prepovedanih funkcij PDF/X in PDF/E dodatno brišejo dobesedne nize in komentarje (§7.2.2), tako da vrednost, kot je
/Title (see /JavaScript docs), ali komentirani žeton ne ustvari več lažne ugotovitveJavaScript,AcroFormaliLZWDecode
Version 2.16.6
Popravljeno (Fixed)
- Vnosi DPM PDF/VT so zdaj preverjeni ob zapisu, kot je dokumentirano: imena ključev, ki kršijo pravilo NMTOKEN iz ISO 16612-2 §6.6 ali pravilo predpone registranta iz Dodatka E, in podvojena imena so zavrnjena, namesto da bi bila zapisana v slovar DPart — ime, ki vsebuje presledek, se je prej razdelilo v lažni par ključ/vrednost in pokvarilo slovar
Version 2.16.5
Popravljeno (Fixed)
- Odstranjevanje vnosa slovarja, katerega vrednost je šestnajstiški niz (npr.
/Check <...>), zdaj odstrani celoten vnos; vbrizgalniki so prej pustili za seboj osirotel šestnajstiški vrednosti, kar je ustvarilo sintaktično pokvarjen slovar - Odstranjevanje vnosa, katerega posredni sklic med žetoni uporablja nove vrstice (ISO 32000-1 §7.3.10 dovoljuje poljubne bele znake), ne pušča več generacijske številke in ključne besede
R
Version 2.16.4
Popravljeno (Fixed)
- Pregledovanje največje številke objekta ne zahteva več, da glave objektov začnejo vrstico (ISO 32000-1 §7.5.3 dovoljuje poljubne bele znake ali ločilo pred njimi), tako da vbrizgalniki ne morejo več dodeliti številke objekta, ki trči z vgrajeno glavo
N G objin tiho pokvari datoteko; številke objektov so omejene z zgornjo mejo iz Dodatka C - Tokovi, katerih
/Lengthje posredni sklic, zdaj razrešijo sklicevani celoštevilski objekt in uporabijo njegovo vrednost, ko se ujema z zaključnimendstream; takšni tokovi so bili prej omejeni z iskanjem vzorca, ki je skrajšal telesa, ki zakonito vsebujejo zaporedje bajtovendstream— tipično za vgrajene PDF-priponke
Version 2.16.3
Popravljeno (Fixed)
- Prehodi stiskanja toka prenašajo dokumente s tokom navzkrižnih sklicev (datoteke PDF 1.5+, ki nimajo klasične ključne besede
trailer) nespremenjene; pot obnove je prej napačno razčlenilastartxrefkot lokacijo tabele in sintetizirala uganjeno prikolico, kar je lahko ustvarilo datoteko, ki je ni mogoče odpreti - Kompresor preskoči tokove metapodatkov XMP, tako da dokument PDF/A ohrani obvezni nefiltriran tok metapodatkov (ISO 19005-1 §6.7.2), in pusti nedotaknjene zunanje tokove datotek (
/Fz/FFilter) - Obnovljena tabela navzkrižnih sklicev pregleduje kopijo dokumenta brez tokov, tako da binarna vsebina tokov ne more več ponarejati glav objektov ali napihnjati tabele;
/Sizeobnovljene prikolice zdaj odraža dejansko tabelo in številke objektov so omejene z zgornjo mejo iz Dodatka C - Iskanje izvirne tabele navzkrižnih sklicev sprejme samo-CR konce vrstic (ISO 32000-1 §7.5.1) in ne more več ujeti črk
xrefznotrajstartxref; pregledovanje ključnih besed toka je pridobilo enak zaščitni mehanizem repaendstream, ki se uporablja drugod, in zdaj napreduje mimo preskočenih teles tokov
Version 2.16.2
Popravljeno (Fixed)
- Razčlenjevanje celih števil v bralnikih PDF na ravni bajtov zdaj sprejme eksplicitni znak
+, ki ga dovoljuje ISO 32000-1 §7.3.3, in zavrne nize številk, ki bi prekoračili, tako da sovražni ali pokvarjeni dokumenti ne morejo več zaviti razčlenjenih dolžin in odmikov v zavajujoče vrednosti
Version 2.16.1
Popravljeno (Fixed)
- Vbrizgalnik PDF/UA zapiše vrednost kataloga
/Langkot pravilen besedilni niz PDF; prej je vrednost pognal skozi XML-ubežnik, tako da je jezična oznaka, ki vsebuje&ali oklepaje, ustvarila pokvarjen vnos, ne-ASCII vhod pa je bil zapisan kot surovi UTF-8 - Vnos Info PDF/E
/ISO_PDFEVersionuporablja skupni koder besedilnih nizov, s čimer ohranja vrednosti non-ASCII zakonite v PDF 1.7 - XML-ubeganje za pakete XMP zavrže kontrolne znake, ki so nezakoniti v XML 1.0, tako da metapodatki, kopirani iz poškodovanega izvornega dokumenta, ne morejo več povzročiti, da celoten tok metapodatkov ne bi bil pravilno oblikovan
- Pretvorba datuma PDF-v-XMP preveri, da so datumska polja številska, in dopolni manjkajoče minutno polje, s čimer prepreči napačno oblikovane datume ISO 8601 v ustvarjenem XMP; na platformah, ki niso Windows, nadomestni časovni žig zdaj vključuje tudi čas dneva namesto golega datuma
Version 2.16.0
Dodano (Added)
- Dekodiranje toka zdaj rekonstruira napovedovalce
/DecodeParms(napovedovalci PNG 10–15 in napovedovalec TIFF 2, ISO 32000-1 §7.4.4.4) po FlateDecode, pri čemer upošteva/Colors,/BitsPerComponentin/Columns; tokovi objektov, stisnjeni z napovedovalcem — pogosta izbira pisca PDF 1.5+ — so prej prikazali diferencirane bajte, zato so bili objekti, ki jih nosijo, tiho nevidni za preglede skladnosti in vstavljanje oznak
Popravljeno (Fixed)
- Zaznavanje FlateDecode zdaj razčleni vrednost
/Filterkot ime ali matriko namesto ujemanja podniza, tako da kaskadne verige filtrov in pojavljanje besede v nepovezanih vrednostih ne sprožijo več lažnega napihnjevanja; nepodprte verige se vrnejo na surove bajte kot prej
Version 2.15.1
Popravljeno (Fixed)
- Pregledovalnik slovarjev zdaj preskakuje dobesedne nize, šestnajstiške nize in komentarje pri uravnoteževanju
<</>>(ISO 32000-1 §7.2.2), tako da slovarji, ki vsebujejo vrednosti, kot je(A >> B), ali šestnajstiški niz tik ob zaključnem ločilu, niso več skrajšani med razčlenjevanjem prikolice, kataloga in pregledi skladnosti - Ekstrakcija dobesednih nizov zdaj dekodira celoten ubežni niz §7.3.4.2 Tabela 3 —
\n \r \t \b \f, oktalno\ddd, nadaljevanja vrstic in normalizacijo EOL brez ubeganja — namesto dobesednega kopiranja ubežnega znaka, s čimer obnovi pravilne primerjave/Producer,/GTS_PDFXVersionin/ISO_PDFEVersionza pisalce, ki uporabljajo oktalne ubege - Dobesedni nizi, ki jih zapišejo vbrizgalniki oznak, zdaj ubegnejo CR, LF in druge kontrolne znake, tako da vrednosti preživijo normalizacijo EOL na strani bralnika bajt za bajtom
Version 2.15.0
Popravljeno (Fixed)
- Inkrementalne posodobitve, ki jih zapišejo vbrizgalniki oznak PDF/A, PDF/X, PDF/E, PDF/R, PDF/UA in PDF/VT ter poti podpisovanja PAdES in DSS, zdaj ohranjajo trajni identifikator datoteke izvornega dokumenta: prvi element
/IDprikolice je prenesen dobesedno, kot zahteva ISO 32000-1 §14.4, in le drugi (spreminjajoči se) element je osvežen; prej sta bila oba elementa regenerirana, tako da so zunanji sklici in delovni tokovi dolgoročne validacije po vsakem shranjevanju videli drugačno identiteto dokumenta - Podpisi PAdES, vstavljanje DSS in Document Time-stamp B-LTA zdaj prenašajo sklic
/Infoiz izvorne prikolice (ISO 32000-1 §7.5.6), tako da lastnosti dokumenta ne izginejo več iz plošč bralnika po podpisovanju; prikolica Document Time-stamp prav tako pridobi matriko/ID - Nadomestni mehanizem prikolice
/Infoza dokumente s tokom navzkrižnih sklicev zdaj pravilno poišče slovar toka XRef in ohrani generacijsko številko sklica; prej se ni nikoli ujemal v skladnih datotekah PDF 1.5+, s čimer je tiho izpustil/Info
Version 2.14.4
Popravljeno (Fixed)
- Datum
/Mslovarja podpisa, ki ga zapišetaTPdf.SignPadesinSignPadesBytes, zdaj nosi obvezni predponoD:in oznako UTC odmikaZ, ki jo zahteva ISO 32000-1 §7.9.4; strogi validatorji so prej zavrnili čas podpisovanjam kot napačno oblikovan niz datuma
Version 2.14.3
Popravljeno (Fixed)
- Iskanje ključev slovarja v skupnem bralniku PDF zdaj ujame cele žetone imen (ISO 32000-1 §7.3.5); prej je bil tok, katerega slovar je navedel
/Length1pred/Length(značilno za tokove FontFile), skrajšan na napačno število bajtov, kar je tiho zaslepilo preglede PDF/A, PDF/UA in druge preglede skladnosti, ki so brali tokove pisav, CMap ali metapodatkov - Iskanje ključev prikolice
/Encrypt,/Root,/Sizein/Infone ujame več daljših ključev, ki si delijo isti predpono (npr./EncryptMetadata) - Razširitev object-stream ne zaupa več poškodovani ali sovražni vrednosti
/N: vrednosti, ki niso cela števila, zdaj dajo 0 namesto neinicializiranega števila, zgornja meja, izpeljana iz/First, pa preprečuje prekomerne dodelitve pri pregledovanju napačno oblikovanih dokumentov
Version 2.14.2
Popravljeno (Fixed)
- Vbrizgalniki oznak PDF/X, PDF/VT, PDF/UA, PDF/E in PDF/R zdaj kopirajo šifrirane izvorne dokumente nespremenjene, namesto da dodajajo razdelke posodobitev v navadnem besedilu; prejšnje vedenje je ustvarilo datoteke, katerih najnovejša prikolica je izgubila vnos
/Encrypt(ISO 32000-1 §7.5.6), zato so skladni bralniki brali šifrirano telo kot navadno besedilo TPdf.SignPades,SignPadesBytesinInjectPadesDssMarkerszdaj sprožijoEPadesCrypto, ko je izvorni dokument šifriran, namesto da tiho izdajo pokvarieno ali nepreverjeno datoteko; pred podpisovanjem ali vgrajevanjem gradiva DSS odstranite šifriranje
Version 2.14.1
Popravljeno (Fixed)
TPdf.SignPadesinSignPadesByteszdaj retroaktivno izpolnita vsa štiri polja/ByteRangeslovarja podpisov; prej so zadnja tri polja ostala pri svojih ničelnih nadomestnikih, tako da so ustvarjeni podpisi razglasili prazen obseg bajtov in pri preverjanju v skladnih validatorjih niso uspeli- Slovarji Document Time-stamp PAdES B-LTA prejmejo enako popravo retroaktivnega izpolnjevanja
/ByteRange ValidatePadesCompliancezdaj sprejme standardno postavitev podpisa, kjer vrzel v obsegu bajtov vsebuje šestnajstiško vrednost/Contents, in preveri, da se drugi segment obsega konča natanko na koncu datoteke; prej so preverjanje pokritosti prestali le obsegi brez vrzeli
Version 2.14.0
Dodano (Added)
TPdf.ExportXFDFserializira vsako vrednost polja obrazca in opombo na vseh straneh v dokument XFDF (ISO 19444-1), pri čemer oddaja<fields>za hierarhične vrednosti obrazca in<annots>za vse podprte podtipe opomb (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact)TPdf.ImportXFDFprebere dokument XFDF nazaj v naloženi PDF, znova ustvari opombe na ustreznih straneh in uveljavi vrednosti polj na njihove pripomočke Widget- Zapis
TPdfAnnotationje pridobilName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), končne točke vrstice, oglišča poligona/polivirvice in polja gest ink-list, tako da kroži XFDF ohranjajo popolne metapodatke opomb - Novi vzorec
XfdfLabv demo kompletih Delphi, C++Builder in Lazarus prikazuje kroži izvoz/uvoz
Version 2.13.6
Popravljeno (Fixed)
ValidatePdfAzdaj obravnava tokove/Metadatakataloga brez/Type /Metadataali/Subtype /XMLkot manjkajoče metapodatke XMP prekpvaiMissingXmpMetadata- Poročila o predletnem pregledu PDF/A zdaj razvrščajo
pvaiMissingXmpMetadatakot Metapodatke in priporočajo tok/Metadatakataloga z/Type /Metadata,/Subtype /XML, nefiltriranim XMP in oznakamipdfaid
Version 2.13.5
Popravljeno (Fixed)
ValidatePdfAzdaj poroča o opombah Widget brez slovarja videza in opombah PDF/A-2 / PDF/A-3, ki zahtevajo, a nimajo/AP, prekpvaiAnnotationApDictViolation- Poročila o predletnem pregledu PDF/A zdaj razvrščajo
pvaiAnnotationApDictViolationkot vsebino, ki je vstavljanje oznak ne more popraviti
Version 2.13.4
Popravljeno (Fixed)
ValidatePdfAzdaj poroča o vgrajenih slikah PDF/A-2 in PDF/A-3, katerih vrednost/Iali/Interpolatejetrue, prekpvaiImageDictionaryViolation, kar ustreza obstoječi pokritosti slovarja XObject Image- Poročila o predletnem pregledu PDF/A zdaj razvrščajo
pvaiImageDictionaryViolationkot vsebino, ki je vstavljanje oznak ne more popraviti
Version 2.13.3
Popravljeno (Fixed)
ValidatePdfAzdaj poroča o vgrajenih slikah PDF/A-1, ki v tokovih vsebine uporabljajo filtre/LZWDecodeali skrajšani/LZW, prekpvaiInlineImageLzwForbidden, kar ustreza obstoječi pokritosti vgrajenih slik PDF/A-2 in PDF/A-3- Pregledovalnik filtrov vgrajenih slik zdaj napreduje mimo vodilnih imen virov, kot je
/GS1, s čimer se izogiba zastojem pri pregledovanju širših tokov vsebine PDF/A-1
Version 2.13.2
Dodano (Added)
TPdf.SetFocusedFormFieldTextzapiše besedilo v urejevalni vmesnik trenutno osredinjenega polja obrazca prekFORM_ReplaceSelection, simetrično zFocusedFormFieldText. Za polja besedilo/kombinirano polje AcroForm se vrednost ob izgubi fokusa potrdi v/Vin obstaja; za besedilna polja XFA zapis pristane le v vmesnem pomnilniku v pomnilniku (PDFium ne razkriva nobenega javnega API za uskladitev vrednosti XFA nazaj v paket naborov podatkov, zato ne vztraja čez shranjevanje)- Gostiteljska platforma JavaScript je zdaj pripojena vsakič, ko je motor V8 na voljo, ne glede na to, ali je dokument XFA — tako se lahko izvaja vgrajeni JavaScript AcroForm (skripte na ravni dokumenta, izračuni polj,
app.alert). Prej je bilm_pJsPlatformpriključen le za dokumente XFA, pri čemer je bil JS AcroForm tiho onemogočen
Spremenjeno (Changed)
- Priključitev platforme JavaScript je zdaj neodvisna od odločitve XFA v
InitializeFormFill— tabelam_pJsPlatformje zgrajena vsakič, ko jeV8FeaturesAvailabletrue, se uveljavi po žičnem povezovanju različice/povratnega klica XFA, ne znotraj njega
Version 2.13.1
Dodano (Added)
- Novi gostiteljski dogodki izpostavljajo informacije, ki so jih povratni klici zapolnjevanja obrazcev v2.13.0 prej požrli:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Vsak dogodek privzeto prevzame obstoječe vedenje no-op, ko ni dodeljen, zato obstoječe gostiteljske aplikacije niso prizadete - Lastnost samo za branje
TPdf.XfaFormPacketsvrne enkratni posnetek vseh paketov XFA (TXfaPacketList), s čimer izpolni vrsteTXfaPacket/TXfaPacketList, prej deklarirane, a neuporabljene - Kode napak PDFium, specifične za XFA,
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUT, so zdaj vezane in izpostavljene prekLastPdfError, s čimer nadomeščajo splošno napako "Unknown error" za napake nalaganja/postavitve XFA
Spremenjeno (Changed)
FFI_DoURIActionWithKeyboardModifierzdaj posvetujeOnXfaUriActionpred zagonom URI iz polja XFA, s čimer da gostitelju pravico veta (varnost: zlonamerno polje XFA je prej lahko brezpogojno zagnalo poljubne URL-je). Nedodeljeni upravljalniki ohranijo prejšnjo privzeto nastavitevShellExecuteWDecodeFormFieldTypezdaj usmerja vrste polj XFA prekIsXfaFormFieldnamesto eksplicitnega primera z 8 vejami, s čimer ohranja oštevilčenje poravnano zFPDF_FORMFIELD_XFA_*po ordinalnem odmiku
Popravljeno (Fixed)
ValidatePdfAzdaj poroča o trditvah PDF/A-1, ki uporabljajo tokove navzkrižnih sklicev PDF 1.5 ali tokove objektov, z novo težavopvaiPdfA1Pdf15Structure, hkrati pa še naprej dovoljuje tokove objektov za PDF/A-2 in PDF/A-3
Version 2.13.0
Dodano (Added)
- Polna podpora izvajanja XFA (XML Forms Architecture):
TPdf.InitializeFormFillzdaj poveže vseh 14 povratnih klicevFPDF_FORMFILLINFOrazličice 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) in priložiIPDF_JsPlatform, tako da z XFA omogočenpdfium.dlllahko upodablja in skriptira dinamične obrazce XFA - Nova enota
Lib\FPdfXfa.pas, ki razglasi konstante XFA (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) in vrsteTXfaPacket/TXfaSaveFormat, ki so bile prej omenjene le v komentarjih - Statični bralnik paketov XFA na
TPdf:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNameplusGetXfaTemplate/GetXfaDatasets/GetXfaConfigizvlečejo pakete XFAtemplate,datasetsinconfigkot surovi XML, ne da bi potreboval z XFA omogočeno izvajalsko okolje — koristno za revizijo skladnosti in migracijo podatkov - Sonde zmogljivosti: globalni
XfaFeaturesAvailablein per-dokumentTPdf.XfaRuntimeAvailable(ali je bilFPDF_LoadXFAdejansko uspešen) inTPdf.XfaStaticReadable(ali se izvozi bralnika paketov razrešijo) TPdfFormFieldTyperazširjen zfiXfa,fiXfaCheckBox,fiXfaComboBox,fiXfaImageField,fiXfaListBox,fiXfaPushButton,fiXfaSignature,fiXfaTextField, pri čemerDecodeFormFieldTypepreslika nove vrednostiFPDF_FORMFIELD_XFA_*- Gostiteljski dogodki JavaScript na
TPdf:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrlinOnXfaRuntimeMissinggostitelju omogočajo prilagajanje dialogov JS in navigacije XFA ali odzivanje, ko dokument XFA ne more zagnati motorja - Novi vzorec Delphi
XfaLab, ki prikazuje zaznavanje XFA, ekstrakcijo paketov, sondiranje zmogljivosti in nadomestno pot manjkajočega izvajanja
Spremenjeno (Changed)
TPdf.LoadDocumentzdaj predhodno pregleduje vhod za oznake XFA (/XFAv slovarju AcroForm ali katalog/NeedsRendering) in po najdbi samodejno izberepdfium.v8.dllz nastavitvijoEnableV8Engine := Truepred prvim nalaganjem knjižnice singleton; ko je enkrat naložen navadenpdfium.dll, postopek ne more preklopiti, zatoOnXfaRuntimeMissingsignalizira ta primerTPdf.GetPageCountzdaj odraža število strani, ki ga motor XFA poroča prekFFI_PageEventpo dinamičnem ponovnem razdeljevanju, ne le statičnega drevesa strani PDF- Ko je odprt dokument XFA, a izvajanje ni na voljo,
InitializeFormFillzdaj pritrdiversion=1inxfa_disabled=1namesto zahtevanja različice 2 z nedodeljenimi povratnimi klici, kar je prej tvegalo razvezavo slabega kazalca povratnega klica
Version 2.12.2
Popravljeno (Fixed)
ValidatePdfACompliancezdaj poroča o uporabljenih prostorih imen XMP po meri brezpdfaExtension:schemas, hkrati pa še vedno sprejema standardne metapodatkepdfaidbrez deklaracij razširitev- Preverjanje vgrajenih datotek PDF/A-3 zdaj zahteva vnose
/Fin/UFna najvišji ravni v slovarjih filespec ter prezre vgnezdene ključe toka/EFpri preverjanju teh imen
Version 2.12.1
Popravljeno (Fixed)
ValidatePdfACompliancezdaj dekodira ubežne žetone imen PDF pred ujemanjem JavaScript, LZWDecode, Type1 in drugih prepovedanih imen, tako da so zakrita, a sémantično enaka imena pravilno sporočena- Preverjanja vgrajenih slik PDF/A zdaj zavračajo vrednosti
/Filterin/F, ki uporabljajo/LZWDecode, skrajšani/LZWali/Crypt, vključno z oblikami matrik in ubežnih imen - Preverjanje veljavnosti PDF/A zdaj poroča o tokovih metapodatkov s prepovedanimi filtri tokov, profilih ICC OutputIntent, katerih število komponent
/Nmanjka ali ni skladno, in specifikacijah vgrajenih datotek PDF/A-3 z manjkajočim ali neveljavnim/AFRelationship
Version 2.12.0
Dodano (Added)
- Zahteve HTTP TSA zdaj nastavljajo eksplicitne časovne omejitve 30 s za vsako fazo (resolve/connect/send/receive) prek
WinHttpSetTimeouts, tako da počasen ali nedosegljiv organ za časovne žige ne more za nedoločen čas obesiti niti za podpisovanje namesto zanašanja na implicitne privzete vrednosti WinHttp - Izpeljava nonce na zahtevo za zahteve po časovnih žigih PAdES B-T / B-LTA, ko klicatelj izpusti
TPadesSignOptions.Nonce: zlaganje SHA-256 monotonega števca + sistemske ure +GetTickCount64+ id procesa nadomešča prejšnji fiksni nadomestni$100000000, tako da dve zahtevi, izdani v isti milisekundi, ne znova uporabita istega nonce anti-replay PdfInflatezdaj omeji stisnjeni izhod na 256 MiB, da ustavi zlib-stisnjen tok, ki izčrpa pomnilnik pri sovražnem ali pokvarjenem vhodu (t. i. “zlib bomba”); omejitev je radodarna za kateri koli pravi tok PDF
Spremenjeno (Changed)
- Prekrivno mešanje
TPdfView(poudarjanje iskanja, izbira besedila, beseda branja, razprostranjena izbira) ne uporablja večGetPixel/SetPixelVna piksel; pravokotnik je zdaj zmešan prek 32-bpp zunaj zaslonaTBitmapinScanLinev enem prehodu, s čimer se odpravijo tisoči prehodov jedra GDI na eno risanje in so velike izbire odzivne FPdfAsn1.TDerReader.ReadIntegerzdaj zavrne polja INTEGER, daljša od 8 bajtov (in 8-bajtne negativne vrednosti, katerih znakovni bit bi zahtevalshl >= 64), in vrne 0 namesto izračuna napačne vrednosti z nedefiniranim vedenjem premika na vhodu ASN.1 CMS/PAdESParseTimeStampRespne odmeva več nonce zahteve nazaj kotTPadesTimestamp.Nonce; dokler ne prispe hodnik TSTInfo, ki preveri vrnjeni nonce, polje ostaja 0, da signalizira “nepreverjeno”, namesto da daje klicateljem lažno zaupanje, da je odgovor na časovni žig svež
Popravljeno (Fixed)
PointsToPixelsje vrnil vhod nespremenjen za vsak DPI: delilec je bilPointsPerInch(konstanta 72) namesto dobesednega 72, s čimer se je formula zrušila naResult := Points. Vsak zunanji klicatelj, ki opravlja določanje velikosti točke→slikovne pike naprave prek tega pomočnika, zdaj dobi pravilniPoints × PixelsPerInch / 72PdfMaxObjNumje v dokumentih, ki uporabljajo tokove objektov (PDF 1.5+ ObjStm), podceneval: objekti, stisnjeni znotraj/ObjStm, ne nosijo oznakeN 0 obj, zato je pregledovanje surovih bajtov zgrešilo, vbrizgalniki, ki dodelijoMaxObj+1za nove objekte, pa bi trčili s skritimi člani ObjStm in tiho pokvarili datoteko. Pregledovanje zdaj najprej razširi tokove objektov, tako da je vsaka številka objekta vidnaInjectPdfAMarkersne ponaredi več trditve o skladnosti PDF/A na šifriranem dokumentu: PDF/A (ISO 19005-1 §7.1) prepoveduje šifriranje, vbrizgalnik pa je prej kopiral vir z oznakami, čeprav bi ga naslednje preverjanje veljavnosti zavrnilo. Ko jeHasEncryptnastavljen, se vir zdaj prenese nespremenjen. Normalna potTPdf.SaveAsPdfAže odstrani šifriranje (saRemoveSecurity) pred vbrizgavanjem, zato to vpliva le na neposredne klicateljePdfReadStreamByteszdaj zavrne/Length, ki je večji od celotne datoteke, pred dodelitvijo vmesnega pomnilnika, s čimer zapre zgodnjo dodelitev na pokvarjeni ali sovražni posredni dolžini
Version 2.11.0
Dodano (Added)
- Zapis PDFium
FPDF_FILEHANDLERzdaj razglasi svojih šest povratnih klicev (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) kot prava polja namesto komentarjev, kar ustreza postavitvi glave C. Povratni klici prenosa datotek FFI XFA (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL), ki vrnejo ali porabijoPFPDF_FILEHANDLER, ostanejo neimplementirani v plasti zapolnjevanja obrazcev Pascal, a vrsta je zdaj strukturno pravilna za vsako prihodnjo pot pošiljanja/nalaganja XFA - Nalaganje in razlaganje knjižnice PDFium (
LoadLibrary/UnloadLibrary) sta zdaj serializirana z globalnim kritičnim oddelkom procesa, tako da dve delovni nitiTPdfFuture<T>(ali delavec, ki tekmuje z glavno nitjo) ne moreta obe opazitiPDFiumLibrary=0in se dvojno vezati ali sprostiti DLL, medtem ko je druga nit sredi vezave - Razdelek
initialization/finalizationzdaj pokličeUnloadLibraryob razlaganju enote, s čimer zagotovi, daFPDF_DestroyLibrarydeluje (združitev delovne niti, razgradnja izolata V8, razgradnja pisave/predpomnilnika) namesto zanašanja na OS za pridobitev DLL
Spremenjeno (Changed)
TPdf.SetActivezdaj požre kakršno koli izjemo med nalaganjem (prej leEPdfError), tako da napaka toka ali kršitev dostopa med nastavljanjem obrazca/strani pustiActive=Falsenamesto delno naložene komponente z nedoločenim stanjem- Dosledno kodiranje znakov za argumente ključa metapodatkov PDFium:
TPdf.GetMetaTextzdaj uporablja isti razdelitev FPCAnsiString/ DelphiUTF8EncodekotGetViewerPreferencein poti nalaganja, namesto golega pretvornikaAnsiString(Tag) - Podvojeni pomočniki
BytesToAnsi,AnsiToBytes,WriteBytesinWriteStrso bili deduplicirani:FPdfCompressjih zdaj uvozi izFPdfPdfCommon(njegovi vzdevkiWriteBytesToStream/WriteAnsiToStreamso upokojeni) in odvečna tro-argumentna preobremenitevBytesToAnsivFPdfPdfaje odstranjena.FPdfAsn1ohrani svojo lokalno kopijo po zasnovi, da kriptografska plast ostane brez enote plasti skladnosti
Popravljeno (Fixed)
- Uhajanje virov v
TPdf.LoadDocument(datoteka, pomnilnik,TBytes,TMemoryStream, tok po meri) inTPdf.CreateDocument: če staInitializeFormFillaliReloadPagedvignila po uspešnemFPDF_LoadDocument/FPDF_CreateNewDocument, je izvorni ročajFPDF_DOCUMENTušel, ker je bilFActivetakrat še False. Vsaka pot zdaj ovije nastavitev po nalaganju vtry/exceptin pri neuspehu zapre dokument, pri čemer pusti komponento v čisto neaktivnem stanju - Prijaznejša diagnostika nalaganja DLL PDFium:
CheckLoadLibraryzaznaERROR_BAD_EXE_FORMAT(193) in poroča o neujemanju arhitekture 32/64-bit, ki kaže na ustrezno gradnjoDLLs/Win32aliDLLs/Win64, namesto posredovanja le splošne napake OS.CheckGetProcAddresszdaj navaja, da je nameščenipdfium.dllstarejši od vezave, ko manjka zahtevan izvoz, namesto golega besedila OS "procedure not found"
Version 2.10.1
Odpravljeno (Fixed)
- Standardizacija PAdES SignerInfo sid: identifikator podpisnika zdaj uporablja obliko RFC 5652 §5.3
issuerAndSerialNumber(issuer Name + serialNumber, oboje dobesedno izvlečeno iz DER certifikata podpisnika), ki nadomešča prejšnji nestandardni nadomesteksubjectKeyIdentifier+ SHA-256 celotnega certifikata, ki sta ga Adobe Acrobat in drugi skladni validatorji zavrnili. Nov sprehajalec TbsCertificate DER (ExtractIssuerAndSerial) prebere SEQUENCE izdajatelja in INTEGER serije kot surove bajte TLV — serijske številke pogosto presežejo obsegInt64, zato je surova TLV obvezna. OblikasubjectKeyIdentifierostaja le kot rezerva, ko razčlenjevanje DER certifikata spodleti
Spremenjeno (Changed)
TCmsSignerId.SerialNumber: Int64je zamenjan zSerialDer: TBytes(surova serialNumber TLV). Graditelj CMS vgradi rezani TLV dobesedno vIssuerAndSerialNumber, s čimer se izogne prekoračitviInt64pri 20-bajtnih CA serijskih številkah (zgornja meja RFC 5280 §4.1.2.2)
Version 2.10.0
Dodano (Added)
- PAdES B-LT dolgoročno preverjanje: ko je
TPadesSignOptions.Level >= plB_LT,SignPadesBytespripne inkrementalno posodobitev, ki nosi slovar/DSSs certifikatom podpisnika in celotno vmesno verigo (samopodpisani root je izključen skladno z RFC 5652 §10.2.3), plus oznako/Extensions /ESICLevel 1 (EN 319 142-1 §5.4.2) - PAdES B-LTA arhivski časovni žig: ko je
Level >= plB_LTAin jeTsaUrlnastavljen, se pripne slovar podpisa Document Time-stamp (/SubFilter /ETSI.RFC3161), katerega/ByteRangepokriva celotno datoteko; oznaka ESIC je povišana na Level 2. S tem se zaključijo štiri PAdES osnovne ravni (B-B, B-T, B-LT, B-LTA) - Zbiranje verige certifikatov:
ResolveWinSignerzdaj kličeCertGetCertificateChainin napolniTPadesResolvedSigner.ChainCertDerz vmesnimi certifikati CA, tako da/DSS /Certsza B-LT nosi vsak certifikat, ki je potreben za preverjanje podpisa brez zunanjih poizvedb.CertFreeCertificateContextje zdaj vezan, kar zapre en-kontekst-na-podpis uhajanje, opaženo v v2.8.0 - Delovni tok integracije PDF/A:
TPdf.SignPadesWithPdfAnajprej pretvori dokument v PDF/A (najvišja raven, ki jo knjižnica danes izdaja) in nato uveljavi zahtevan podpis PAdES — vzorec vsebnika za dolgoročno arhiviranje, ki ga priporoča EN 319 142-1 Dodatek A.7
Version 2.9.0
Dodano (Added)
- PAdES B-T zaupanja vreden časovni žig:
TPadesSignOptionsdobi poljaLevel,TsaUrlinNonce. Ko jeLevel >= plB_Tin jeTsaUrlnastavljen,SignPadesBytesizvleče vrednost podpisa iz zgrajenega CMS, zahteva nad njo časovni žig RFC 3161 in vgradi vrnjeni TimeStampToken kot nepodpisan atribut SignerInfosignature-time-stamp— korak B-T zaupanja vrednega časa (EN 319 142-1 §6.3 req o) FPdfTsa: medplatformni odjemalec RFC 3161 —BuildTimeStampReq(različica 1, SHA-256 messageImprint nad vrednostjo podpisa, nonce, certReq=true),ParseTimeStampResp(sprejme PKIStatus 0/1, zavrne 2+, dobesedno izvleče TimeStampToken ContentInfo) inRequestTimestamp(enkratni sestavi+POST+razčleni).PadesTsaAvailableomogoča funkcijo na platformah brez ozadja HTTPFPdfTsaWin: ozadje Windows WinHttp, dinamično vezano iz winhttp.dll (ni novih odvisnosti ob prevajanju; HTTPS pogajata shramba certifikatov Windows). Zrcali vzorec dinamičnega vezanjaFPdfCryptoWinFPdfCms:ExtractSignatureValuesprehaja po zgrajenem CMS, da povrne surove podpisne oktete (vhod za razpršilo TSA), inAddSignatureTimestampToCmsponovno zgradi ContentInfo z novimunsignedAttrs [1](0xA1), ki nosi atribut časovnega žiga. Validator 1. faze rezultat prepozna kot podpis B-T
Version 2.8.0
Dodano (Added)
- Sklad podpisov PAdES B-B: štirje novi gradniki iz čistega Pascala/medplatformni (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) plus ozadje Windows CNG (FPdfCryptoWin) omogočataTPdf.SignPades/SignPadesToStream, da ustvarita podpis PAdES B-B od konca do konca. Certifikat podpisnika se razreši s prstnim odtisom SHA-1 iz shramabe Current User “MY”; RSA-PSS (priporočeno), RSA PKCS#1 v1.5 in ECDSA so vsi podprti prekNCryptSignHash FPdfSha256: samostojni FIPS 180-4 SHA-256 (Init/Update/Final + enkratni pomožniki). FPC 3.2.2 ne vsebuje enote SHA-2, zato knjižnica poseduje eno, da vsaka kodna pot CMS ostane na eni sami vrstiTSHA256Digestbrez razvejitev RTLFPdfAsn1: kodirnik DER (TDerWriter) in bralnik (TDerReader), ki pokriva SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontekstno-specifične oznake, z določeno-dolžinskim kodiranjem in obravnavo IMPLICIT-oznak, ki ga CMS zahtevaFPdfCms: graditelj CAdES SignedData (BuildSignedData), ki izdaja podpisane atribute content-type, message-digest in signing-certificate-v2, ki jih osnova PAdES odreka, z izbirnima signing-time in commitment-type-indication. Razpršilo signedAttrs se izračuna nad obliko, označeno s SET (0x31), in znova izda z oznako IMPLICIT [0] (0xA0) skladno z RFC 5652 §5.4FPdfCrypto+FPdfCryptoWin: abstrakcija kriptografskega ozadja sPadesCryptoAvailable/ResolvePadesSigner, implementacija za Windows pa dinamično veže crypt32.dll / ncrypt.dll (brez novih odvisnosti DLL ob prevajanju). Podpisi ECDSA se prekodirajo iz oblike Windows IEEE P1363 r¦s v obliko DERECDSA-Sig-Value, ki jo CMS zahtevaSignPadesBytes: vstavljanje podpisa na ravni bajtov — rezervira šestnajstiško mesto/Contentsstalne širine, izračuna pokrivajoči/ByteRange, izračuna razpršilo dokumenta, zgradi in vgradi CMS ter pripne inkrementalno posodobitev. Validator (v2.7.0) rezultat prepozna kot podpis PAdES B-B
Version 2.7.0
Dodano (Added)
- Strukturni validator PAdES (ETSI EN 319 142-1 V1.2.1): nova enota
FPdfPadesin metodaTPdf.ValidatePadespregledata slovarje vrednosti podpisa, dosegljive iz/ByteRange, sprehodita se po CMSSignedDataznotraj/Contentsdovolj daleč, da potrdita obliko CAdES detached, in zaznata štiri osnovne ravni (B-B, B-T, B-LT, B-LTA) ter slovarje Document Time-stamp (/SubFilter /ETSI.RFC3161) - Nabor težav na ravni klavzul PAdES: 26 naštev
ppei*pokriva sprejemljivost/SubFilter(adbe.pkcs7.sha1inadbe.x509.rsa_sha1označena kot prepovedana), pokritost datoteke/ByteRange, prepoved/Cert, obliko CMSSignedData(en podpisnik, detached eContent, obseg različic), zahtevane podpisane atribute (content-type,message-digest,signing-certificate/v2), prepovedana razpršila (MD5, SHA-1), izključitev/Reasonvscommitment-type-indication(req d), zahtevo B-T za zaupanja vreden čas, oznako B-LT/DSS+/Certs+ ESIC Level 1 ter oznako B-LTA Document Time-stamp + ESIC Level 2 - Vstavljalnik DSS:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreampripneta inkrementalno posodobitev, ki na kopijo dokumenta nosi slovar/DSS(s polji/Certs,/OCSPs,/CRLs) in oznako/Extensions /ESIC(Level 1 ali 2), pri čemer ohrani izvorne bajte — korak vgradnje gradiva za preverjanje B-LT/B-LTA (klavzula 5.4.2) - Medplatformna, z ničelnimi odvisnostmi faza: validator in vstavljalnik sta iz čistega Pascala in delujeta na vsakem podprtem IDE-ju (Delphi, Lazarus, FPC, C++Builder); za to izdajo kriptografsko ozadje ni potrebno in nova odvisnost DLL ni uvedena
Version 2.6.0
Spremenjeno (Changed)
- Deduplikacija med standardi: še sedem podvojenih pomožnih funkcij (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) je odstranjenih iz posameznih standardnih enot in konsolidiranih v
FPdfPdfCommon, kar zmanjša približno 300 vrstic bremena vzdrževanja kopiraj-prilepi - Kakovost PreflightReport: težave razreda vsebine PDF/X in PDF/E, ki so prej padle v splošno kategorijo “manjkajoči označevalec”, zdaj nosijo natančne kategorije Content/Metadata/Security in klavzuli specifična priporočila (~15 naštev v obeh standardih)
- Pokritost testov PDF/E in PDF/R: še šest naštev z ničelno pokritostjo je dobilo pozitivne teste (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Popravek izgradnje Lazarus:
Tests.PdfVT(enota DUnitX samo za Delphi, dodana v v2.5.x) je zdaj izključena iz projekta Lazarus, da se obnovi prevajanje
Version 2.5.3
Dodano (Added)
- Popolnost OutputIntent (PDF/X-4 §6.2.4):
pvviOutputIntentSchemeoznači OutputIntent, katerega/Sni/GTS_PDFX;pvviOutputIntentMissingIdentifieroznači manjkajoči/OutputConditionIdentifier - Izjema PDF/VT-2 Reference XObject (§6.2.2):
pvviReferenceXObjectForbiddense ne sproži več za datotekoPDF/VT-2, ki sme zakonito uporabljati Reference XObject na osnovi X-5g/5pg - Preverjanje znakov meje MIME (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharoznači mejo, katere znaki padajo izven niza bchars ali katere dolžina presega 70
Odpravljeno (Fixed)
InjectPdfVTMarkerszdaj zapiše Info/CreationDatein/ModDateiz možnosti shranjevanja, tako da ustvarjena datoteka opraviValidatePdfVTCompliancebrez napačnegapvviInfoModDateMismatch(vstavljalnik je prej prepisoval datume XMP, a pustil datume slovarja Info zastarele)
Version 2.5.2
Dodano (Added)
- Doslednost Info
/ModDate(§6.3 NOTE 2, osnova PDF/X-4):pvviInfoModDateMismatchoznači/ModDateslovarja Info, ki po normalizaciji iz datuma PDF v datum XMP ni enakxmp:ModifyDate - Skladnost vgrajenega bloka PDF/VT-2s (Dodatek A.2): validator MIME zdaj zažene
ValidatePdfVTCompliancena vsakem vgrajenem deluapplication/pdfin označi telo, ki ni PDF/VT, prekvtmviInlinePdfNotPdfVT
Version 2.5.1
Dodano (Added)
- Preverjanje razrezovanja DParts (ISO 16612-2 §6.5 Tabela 4):
pvviDPartsBadChunkingoznači polje/DParts, katerega nekončni podpolji nimata natanko 8192 vnosov ali katerega zadnje podpolje pade izven 1..8192 - Doslednost RecordLevel med tokovi (Dodatek A.2): validator MIME PDF/VT-2s zdaj izvleče
/RecordLevelvsake vgrajene PDF in označi nestrinjanje prekvtmviRecordLevelMismatch, kar dopolnjuje obstoječi preverjanje NodeNameList - Namigi ponavljajočega se grafičnega predmeta (§6.7):
pvviGtsScopeInvalidValueoznači/GTS_Scopezunaj množice {SingleUse, Record, File, Stream, Global, Unknown};pvviGtsScopeRecordWithoutRecordLeveloznači/Recordbrez/RecordLevel;pvviGtsXidNotUuidoznači/GTS_XID, ki ni uuid: URI po RFC 4122;pvviGtsEnvMissingoznači manjkajoči/GTS_Env, ko je/GTS_ScopeStream ali Global (§6.7.4) - Zaznavanje naprej-podatkov v MIME (Dodatek A.2):
vtmviForwardReferenceoznači vgrajeno PDF, ki navaja ime datoteke (prek/EF /F), ki ga ne uvede prejšnji del priloge v toku
Odpravljeno (Fixed)
ExtractNodeNameListFromPdfinExtractRecordLevelFromPdfvFPdfPdfvtMimesta rešila ponavljajočo se napako off-by-one, kjer je bil 1-osnovni odmik, ki ga vrneAnsiFindKey, obravnavan kot absolutni odmik bajtov v razširjeni PDF
Version 2.5.0
Dodano (Added)
- PDF/VT Document Part Metadata (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionsje dobilDpmEntriesinDpmTarget, tako da lahko zapisovalec pripne slovar/DPMsintetiziranemu vozlišču DPart, s preverjanjem imena ključa glede na pravilo second-class-prefix Dodatka E in pravila §6.6 NMTOKEN / enoličnost / oblikaGTS_Managedna strani validatorja - Izmenjava toka PDF/VT-2s (Dodatek A): nova enota
FPdfPdfvtMimezagotavljaBuildPdfVT2sStreaminValidatePdfVT2sStreamza ovojnico MIMEmultipart/mixed, ki nosi vgrajene koščke PDF/VT plus priložene profile ICC, s pravilom vrstnega reda glaveX-PDFVT-Stream-version: 1in preverjanjem doslednostiNodeNameListmed tokovi TPdf.ValidatePdfVTzdaj izvede avtoritativno štetje dejanj JavaScript prekFPDFDoc_GetJavaScriptActionCount, kar dopolnjuje iskanje imena/JavaScriptna ravni bajtov
Odpravljeno (Fixed)
- Pravilnost PDF/VT
Trappedna osnovi PDF/X-4: naštevptvUnknownje odstranjen (PDF/X-4 prepoveduje/Unknown),ptvUnspecifiedse ob času zapisovanja normalizira v/False(manjkajoči/Trappedje prav tako prepovedan), nova težavapvviTrappedInvalidpa označi odsotno ali vrednostUnknown ValidatePdfVTCompliancezdaj razširi tokove objektov (PdfExpandObjectStreams) pred iskanjem, tako da so katalog, slovar OutputIntent ali Metadata, shranjeni znotraj stisnjenega ObjStm (PDF 1.5+, tipično za izdelovalce PDF/X-4), dosegljivi iskanjem na ravni bajtov
Spremenjeno (Changed)
- PDF/VT-1 zdaj podeduje vse prepovedi vsebine PDF/X-4:
pvviAcroFormForbidden(/AcroFormali/XFA),pvviAdditionalActionsForbidden(katalog/AA),pvviMissingTrimBoxinpvviReferenceXObjectForbidden(Reference XObject, samo X-5g/5pg) - Deduplikacija med standardi:
BuildDictObj,IccComponentCount, vgrajeni profil ICC sRGB (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNuminPdfExpandObjectStreamsso bili povišani iz podvojenih krajevnih kopij vFPdfPdfa/FPdfPdfx/FPdfPdfvtv en sam kanonični dom vFPdfPdfCommon; 3144-bajtni literal ICC zdaj obstaja natanko enkrat v zbirki kode
Version 2.4.0
Odpravljeno (Fixed)
InjectPdfUaMarkersne opušča več referenc trailer/Infona osnovi toka navzkrižnih sklicev (cross-reference-stream): lokalniSourceTrailerInfoRef(ki ni imel varnostne rezerve za tok xref) je bil zamenjan s skupnimPdfSourceTrailerInfoRef(prevzetim iz kopije PDF/A, ki je to varnostno rezervo imela že od različice v2.0.0)- Skupni
PdfReadStreamByteszdaj podpira posredne reference/Length N G R(preneseno iz lokalne kopije PDF/A), tako da validatorji PDF/VT, PDF/R in PDF/E ne berejo več napačno ali preskakujejo tokov metapodatkov XMP, ki jih ustvarijo orodja z uporabo posredne določitve Length (Acrobat, Ghostscript)
Spremenjeno (Changed)
- Deduplikacija med standardi: lokalne kopije
PdfReadTrailervFPdfPdfainFPdfPdfx, lokalne kopijeSourceTrailerInfoRefvFPdfPdfainFPdfPdfuater lokalniPdfReadStreamBytesvFPdfPdfaso bili izbrisani — skupne različice izFPdfPdfCommonzdaj veljajo povsod, s čimer se odstrani približno ~330 vrstic podvojene kode in odpravi breme vzdrževanja za usklajenost kopij - Zmanjšanje dolga pri testiranju PDF/X: sedem enums razredov vsebine z vnaprej ničelno pokritostjo je dobilo pozitivne teste (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Spremenjeno (Changed)
- Nadaljevanje zmanjševanja dolga pri testiranju PDF/A: še trije enums z ničelno pokritostjo so dobili pozitivne teste;
pvaiForbiddenRenderingIntent(§6.2.9) označuje nestandardno ime rendering-intent v toku vsebine;pvaiJpeg2000Violation(§6.2.2) označuje sliko JPXDecode z/NumComponentszunaj obsega {1,3,4} pri Part 2;pvaiInlineImageLzwForbidden(§6.1.10) označuje v vrstico vstavljeno sliko, ki uporablja filter LZW pri Part 2
Version 2.2.0
Spremembe
- Regresijski testi za tok navzkrižnih sklicev (cross-reference-stream): obstoječi
Validate_XrefStreamTrailer_DetectsConformancezdaj preverja tudi, da je referenca kataloga/Metadatarazrešena in da se XMPpdfaid:partprebere na osnovi xref-toka (ne le/Root+/ID); nov testInjectPdfA_XrefStreamBase_RoundTripsščiti pot xref-toka injektorja, ki je bila dodana v različici v2.0.0; dva testiranja med standardi (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) potrjujeta, da validatorja za PDF/E in PDF/R ne zavračata več PDF-jev z xref-tokom kot nerazčlenljivih - Zaprtje testnega dolga za PDF/A:
Validate_MinimalPdf_FlagsRequiredMarkerspotrjuje, da goli minimalni PDF sprožipvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadatainpvaiMissingXmpDates— s čimer se zapre simetrična vrzel z validatorjema za PDF/E in PDF/X, ki sta že imela enakovredne teste; dve dodatni enumeraciji z ničelno pokritostjo sta pridobili pozitivne teste:pvaiUnembeddedFontinpvaiSubsetMissingCidSet
Version 2.1.0
Popravljeno
- Standard PDF/E je bil nenamerno izpuščen iz popravka toka navzkrižnih sklicev v v2.0.0: tako
InjectPdfEMarkerskotValidatePdfECompliancesta še vedno klicalaPdfReadTrailerbrezAcceptXrefStream, zato je injektor za PDF/E tiho odpovedal pri izhodu PDF 1.5+ (privzeto zaSaveAsCopyv pdfium); obe mesti klica zdaj podajataTrue - Skupna varovalna pot (fallback)
PdfReadTrailerza tok navzkrižnih sklicev zdaj vsebuje zaščito/Type /XRef, ki sta jo lokalni kopiji za PDF/A in PDF/X že imeli, tako da pokvarjen odmikstartxref, ki kaže na nepovezan slovar, čisto odpove, namesto da bi bil napačno razčlenjen kot trailer - Razreševalnik posrednih referenc
/LangvValidatePdfUaCompliance(v2.0.0) je bil nedosegljiv:PdfFindObjDictnajde le slovarje<<, toda nizovni objekt/Langje(...)ali<...>brez slovarja; nadomeščen je z neposrednim pregledom telesa objekta, ki poišče žeton niza
Spremembe
- Sedem podvojenih neuporabljenih pomožnih funkcij (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj), ki so bile bajtno enake kopijam skupne različice
FPdfPdfCommon, je bilo odstranjenih izFPdfPdfainFPdfPdfua— skupne različice zdaj veljajo povsod prek klavzuleuses
Version 2.0.0
Popravljeno
- Tiha odpoved med standardi: skupni pomočnik
PdfReadTrailer(ki ga uporabljajo injektorji in validatorji oznak PDF/UA, PDF/X, PDF/VT in PDF/R) zdaj sprejema parameterAcceptXrefStreamin se vrne na slovar objektov toka navzkrižnih sklicev, ko ključna besedatrailerni prisotna (PDF 1.5+); prej je izhodSaveAsCopyiz pdfium (ki uporablja tok navzkrižnih sklicev) povzročil tiho odpoved vsakega injektorja oznak — izvorne bajte so se kopirale nespremenjene, klic pa je še vedno vrnil uspeh; validator PDF/R-1.0 (katerega osnova PDF 2.0 je vedno tok navzkrižnih sklicev) je bil dejansko brez učinka; zrela implementacija validatorja PDF/A je bila prenesena na skupnega pomočnika, tako da imajo korist vsi standardi - Pregledovanje slovarja trailer v
InjectPdfUaMarkersinInjectPdfAMarkerszdaj uporablja globinsko ozaveščenPdfDictEndnamesto golega iskanja>>, tako da se trailer, ki vsebuje ugnezden slovar (npr./Encrypt << ... >>), ne zaključi več predčasno pred končnim vnosom/Info
Spremembe
TPdf.ValidatePdfUazdaj zavira grobo preverjanjepvuaiFontNotEmbeddedna ravni bajtov, ko se je natančen objektni model PdfiumpvuaiPdfiumFontNotEmbeddedže sprožil, tako da poročilo pred poletom (preflight report) ne vsebuje več dveh skoraj podvojenih vrstic “embed your fonts” za isto napakopvuaiLangInvalidFormat(§7.2) zdaj razreši posredno referenco/Lang(N 0 R) v njen nizovni objekt in preveri vsebino, tako da posredno sklicujevana jezikovna oznaka ni več slepa pega
Version 1.99.0
Popravljeno
pvuaiLangInvalidFormat(§7.2) več ne dopušča poljubnih šestnajstiško kodiranih (hex-encoded) nizov/Lang: pari UTF-16BE (z oznakoFE FFBOM) in čisti ASCII hex nizi se zdaj dekodirajo in preverijo z enakim preverjanjem slovnice BCP 47 kot dobesedni nizi(...), s čimer se ujame napačno oblikovan hex/Lang, medtem ko skladen (npr. UTF-16BEen-US) ni več v nevarnosti, da bi bil označen kot napačen
Spremembe
pvuaiFontMissingToUnicode(§7.21.7) zdaj izključuje/MacExpertEncodingpoleg/WinAnsiEncodingin/MacRomanEncoding, kar ustreza štirim pogojem za izključitev, ki jih navaja člen
Version 1.98.0
Dodano
pvuaiNeedAppearancesTrue(§7.18.4) označi AcroForm, katerega zastavica/NeedAppearancesje nastavljena na True, zaradi česar videz gradnikov (widget appearances) ni zanesljivo zaklenjen in ga podporna tehnologija ne more povezati z drevesom strukture; preneseno iz validatorja PDF/A in omejeno na prisotnost/AcroFormza zožitev obsega preiskovanja
Spremembe
- Regresija korpusa veraPDF: povezan par uspešnih in neuspešnih vzorcev (pass+fail) za Reference-XObject iz §7.20 ter par uspešnih in neuspešnih vzorcev za podmnožico CharSet/CIDSet iz §7.21.4.2 v
Live_Corpus_ValidatePdfUaMatchesConformance; vzorci uspešnih testov za ToUnicode-forbidden-value iz §7.21.7 in media-clip iz §7.18.6.2 so bili prav tako povezani kot zaščita pred lažno pozitivnimi rezultati (njihovi vzorci neuspešnih testov uporabljajo postavitve slovarjev, ki jih pregled na ravni bajtov ne zazna, zato je povezana le uspešna stran) - Seznam trditev o uspešni poti korpusa je pridobil 15 novih zaščit pred lažno pozitivnimi rezultati, tako da se vsak aktivni pregled na ravni bajtov in strukture
pvuai*zdaj izvaja na skladnih vzorcih (prej je bilo zaščitenih le približno 30 od 60 aktivnih težav); zaščitapvuaiLangInvalidFormatje bila namerno izpuščena, ker preverjevalnik na ravni bajtov konservativno označuje šestnajstiško kodirane nize/Lang, ki jih ne more dekodirati
Version 1.97.0
Popravljeno
- Utrjevanje
ValidatePdfUaStructureElements: prehod starševske verigeEnclosingTablezdaj vsebuje števec skokov (omejen s številom elementov), tako da napačno oblikovan cikelParentIndexv sintetični matriki strukturnih elementov ne more več zaustaviti klicatelja; dodelitev matrike ID-jev označene vsebine vValidatePdfUaPageContentTaggingje zdaj omejena na en milijon vnosov, kar preprečuje več-gigabajtno dodelitev pomnilnika pri napačno oblikovanem ali zlonamernemMarkedContentID
Spremembe
- Dokumentacijski komentar za enumeracijo
pvuaiOrderedListMissingListNumberingzdaj natančno opisuje delovanje preverjanja: označi elementL, katerega vrednostListNumberingje zunaj nabora v tabeli 347 standarda ISO 32000-1 (odsoten atribut ni označen); prejšnji komentar je namigoval, da zazna tudi urejene sezname, ki jim atribut manjka, česar implementacija ne počne - Dva neuspešna vzorca korpusa
7.21.3.3-t02za neskladje WMode sta zdaj povezana vLive_Corpus_ValidatePdfUaMatchesConformance— od različice v1.95.0 dalje se tok CMap razširi s FlateDecode, tako da primerjava slovarja z vsebino zdaj poteka na berljivi strani; zastarel komentar “not wired” je bil odstranjen
Version 1.96.0
Dodano
- Doslednost med standardi:
TPdf.ValidatePdfUapridobi dve preverjanji, preneseni iz validatorja PDF/A;pvuaiAnnotationFlagsViolation(§7.18.1) označi neizključeno anotacijo, ki nosi zastavico Hidden / Invisible / NoView, kar prekine bralni tok podporne tehnologije;pvuaiActionTargetMissing(§7.18.5) označi dejanje GoToR / URI / SubmitForm, ki nima zahtevanega ciljnega ključa (/F+/D, /URI, /F), zaradi česar je povezava neuporabna za podporno tehnologijo
Popravljeno
- Združevanje strukturnega drevesa med stranmi: zanka za kopičenje
AllElemsvTPdf.ValidatePdfUazdaj ponovno določi osnovoParentIndexvsakega elementa iz lokalne matrike strani v združeno matriko; brez tega so podrejeni elementi druge strani ohranili lokalni indeks strani, ki je kazal v rez prve strani, kar je tiho pokvarilo vsako preverjanje, odvisno od ParentIndex (struktura tabel/seznamov, štetje otrok H po §7.4.4, EnclosingTable) - Razčlenjevanje RoleMap:
PdfReadRoleMapPairsne prekine več celotnega pregleda ključev/vrednosti, ko je vrednost posredna referenca (N 0 R) ali matrika ([...]) — obe sta veljavni obliki RoleMap po standardu ISO 32000-1 14.8.5.1; zdaj le preskoči ta vnos (Continue) namesto prekinitve (Break), kar odpravlja lažno pozitivne napakepvuaiRoleMapUnresolvedpri tipih, preslikanih za posrednim/matričnim vnosom
Spremembe
FPdfPreflightReport: 18 aktivnih vrednostiTPdfUaValidationIssue, ki so prej spadale pod splošno kategorijo in priporočilo “missing marker”, zdaj nosi točne kategorije (Structure / Content / Metadata / Security) in priporočila za posamezne člene; prav tako je odpravljena tiskarska napakapuaNone / pua1→pucNone / puc1vPDFSpecComplianceMatrix.md
Version 1.95.0
Spremembe
- Prehod za izboljšanje priklica in zanesljivosti
TPdf.ValidatePdfUa: preverjanje §7.21.3.3pvuaiCMapWModeMismatchin preverjanje §7.21.7pvuaiToUnicodeForbiddenValuezdaj pred pregledom razširita sFlateDecodestisnjene toke CMap / ToUnicode (prej so bili ocenjeni le nestisnjeni tokovi, kar je bil znan lažno negativen rezultat); skupna pomočnikaPdfInflate/PdfReadAndDecodeStreamsta bila povišana izFPdfPdfa/FPdfPdfxvFPdfPdfCommon, tako da si vsaka enota za skladnost deli eno kopijo
Dodano
pvuaiSubsetCharSetEmpty(§7.21.4.2) označi podmnožicoFontDescriptorType 1, ki vsebuje ključ/CharSets prazno vrednostjo niza — obstoječe preverjanjepvuaiSubsetMissingCharSetje zaznalo le manjkajoči ključ; prazen/CIDSetni označen, saj lahko pisava brez CID-ov zakonito vsebuje prazno bitno sliko
Version 1.94.0
Dodano
- Revizija drugega prehoda
TPdf.ValidatePdfUaje odpravila šest vrzeli ISO 14289-1, ki so se pokazale pri pregledu členov in ponovnem pregledu domorodnih API-jev Pdfium, ki so že oviti, a neuporabljeni v poti PDF/UA;pvuaiHeadingFormatInvalid(§7.4.3) označi uporabniško definirane oznake naslovov, ki se začnejo s H, vendar vsebujejo ločila, presledke ali rimske številke namesto čistih arabskih številk;pvuaiMissingDocumentOutline(§7.17, should) označi večstranski dokument, ki nima strukture zaznamkov (večstranski dokumenti so izvzeti);pvuaiStructElementLangInvalid(§7.2) označi vrednost/Langstrukturnega elementa, ki ni veljavna oznaka BCP 47;pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) označi strukturni element Widget, ki nima lastnika atributa PrintField;pvuaiLinkNotInStructureTree(§7.18.5) označi dokument, katerega anotacije/Subtype /Linkniso izpostavljene kot strukturni elementi Link;pvuaiPdfiumAnnotationMissingContentsinpvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) dodata natančen pregled anotacij objekta Pdfium, ki izključuje skrite, zunaj CropBox, Popup in Widget anotacije — kar odpravlja lažno pozitivne rezultate bajtne heuristike, ki ne more prebrati zastavic/Fali/Rect
Version 1.93.0
Dodano
TPdf.ValidatePdfUazdaj nadgradi preiskovalnik na ravni bajtov s prehodom po objektnem modelu Pdfium, kar zrcali arhitekturo PDF/A krog-7: sprehodi se skozi besedilne objekte vsake strani prekFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) in pregleda vsak znak prekFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) inFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — kar je natančneje od heuristike na ravni bajtov, ki se sproži le, ko ni prisotnih programov pisav ali sploh ni/ToUnicode; sprehod se kratkostično prekine na treh ravneh: zanka strani se zaključi, ko so vse tri težave na ravni Pdfium že nastavljene, zanka po objektu se zaključi ob prvi nevdelani pisavi, pregled znakov pa preskoči prehod.notdef, ko jeUnicodeMapErrorže zabeležen; PDF/UA je bil zadnji validator standardov PDF brez plasti objektnega modela Pdfium
Version 1.92.0
Dodano
- Ustvarjen
Tests.PdfR— prva testna datoteka za validator PDF/R-1 (FPdfPdfr), ki pokriva preverjanje glave, prepoved ObjStm, zaznavanje rastrskih oznak in zaščito pred lažno pozitivnimi rezultati pri čistih datotekah; vseh šest testnih paketov standardov PDF ima zdaj namenske testne datoteke: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = skupaj 212 testov
Version 1.91.0
Dodano
ValidatePdfEinValidatePdfVTsta pridobila preverjanja na ravni vsebine, ki so bila prej na voljo le v validatorjih PDF/A, PDF/UA in PDF/X:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(samo PDF/E),pveiEmbeddedFilesForbidden(samo PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden;TPdf.ValidatePdfEinTPdf.ValidatePdfVTprav tako pridobita plast objektnega modela Pdfium (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded), ki se sprehodi skozi besedilne objekte strani prekFPDFFont_GetIsEmbeddedin se kratkostično prekine ob prvi nevdelani pisavi
Version 1.90.0
Dodano
TPdf.ValidatePdfXzdaj nadgradi preiskovalnik na ravni bajtov s prehodom po objektnem modelu Pdfium: sprehodi se skozi besedilne objekte vsake strani prekFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedin sporoči nevdelano pisavo kotpvxiPdfiumFontNotEmbedded— kar je natančneje od heuristike na ravni bajtov, ki se sproži le, ko programi pisav niso prisotni; sprehod se kratkostično prekine ob prvi najdeni nevdelani pisavi
Spremembe
- Sprehod po drevesu strukture
TPdf.ValidatePdfUa: klicValidatePdfUaPageContentTaggingna posamezno stran (ki zgradi zemljevid zahtevkov za ID označene vsebine in navzkrižno preveri vsak besedilni/slikovni objekt) je zdaj preskočen na naslednjih straneh, ko jepvuaiUntaggedContentže najden — strukturni elementi se še vedno zbirajo za preverjanja med stranmi (edinstveni ID opombe, zaporedje naslovov), vendar se drag prehod označevanja vsebine na posamezno stran zaključi predčasno
Version 1.89.0
Spremembe
- Zmogljivost plasti objektnega modela Pdfium za
TPdf.ValidatePdfA: sprehod po straneh/objektih se zdaj kratkostično prekine na treh ravneh — zanka strani se zaključi, ko so že najdene vse ustrezne težave plasti Pdfium, zanka po posameznem objektu se zaključi, ko sta nastavljeni obe težavi za objekt (vdelava pisave + prosojnost), pregled znakov na besedilni strani pa preskoči prehod.notdef, ko jeUnicodeMapErrorže zabeležen; preverjanja razpoložljivosti API-jaAssigned()in zastavice skladnosti se enkrat pred zanko predpomnijo v lokalne logične vrednosti (booleans), namesto da bi se znova ocenjevali za vsako stran/objekt/znak; pri velikem neskladnem dokumentu se lahko sprehod zdaj ustavi po prvi strani namesto pregledovanja vseh strani, pri skladnem dokumentu pa so režijski stroški na stran nižji (brez ponavljajočih se klicevAssigned)
Version 1.88.0
Dodano
ValidatePdfXje pridobil osem novih vrednostiTPdfXValidationIssuena ravni vsebine, ki pokrivajo omejitve tiskarske izmenjave (print-exchange), ki jih PDF/X predpisuje poleg oznak formata datoteke:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(brez/TrimBoxna kateri koli strani) inpvxiTrappedNotSet(/Trappedodsoten ali/Unknown); validator PDF/X je prej preverjal le oznake XMP/OutputIntent, to pa je njegov prvi prehod na ravni vsebine; skupni pomočnikiPdfStructureBytes/PdfHasName/PdfCountNameso bili dodani vFPdfPdfCommon, tako da jih lahko uporabljajo vse enote za preverjanje skladnosti
Version 1.87.0
Dodano
- Preverjanje PDF/UA zdaj pokriva pravila za sestavljene pisave iz ISO 14289-1 §7.21.3:
pvuaiCidSystemInfoMismatchoznači pisave Type0, katerih vdelana CMap in podrejena CIDFont se ne strinjata gledeRegistry/Orderingali katerihSupplementv CIDFont presega vrednost v CMap,pvuaiCMapNotEmbeddedoznači CMap-e, ki se sklicujejo po imenu (kotEncodingaliUseCMap) in niso standardne vnaprej definirane CMap-e iz ISO 32000-1 Tabela 118, terpvuaiCMapWModeMismatchoznači vdelane CMap-e, katerihWModev slovarju se razlikuje od WMode v vsebini toka
Popravljeno
- Preverjanje
pvuaiCidFontMissingCidToGidMapiz §7.21.3.2 je spregledalo slovarje CIDFontType2, pri katerih sta ključ in vrednostSubtypeločena z novo vrstico; zdaj označi tudi vrednost poljaCIDToGIDMap, ki niIdentity
Version 1.86.0
Dodano
- Preverjanje PDF/UA zdaj pokriva pravila kodiranja TrueType iz ISO 14289-1 §7.21.6:
pvuaiTrueTypeEncodingInvalidoznači nesimbolične pisave TrueType, pri katerihEncodingmanjka ali ni nitiMacRomanEncodingnitiWinAnsiEncoding(neposredno ali prekBaseEncoding), terpvuaiSymbolicTrueTypeEncodingoznači simbolične pisave TrueType z nestandardnim imenomEncoding
Version 1.85.1
Spremembe
- Preverjanje vrstnega reda zavihkov
pvuaiMissingTabsOrderpo ISO 14289-1 §7.18.3 zdaj deluje na ravni posamezne strani: vsaka stran, ki vsebuje anotacije, mora v lastnem slovarju strani deklarirati/Tabs /S, tako skladno sosednja stran ne more prikriti strani, pri kateri ta deklaracija manjka
Version 1.85.0
Dodano
- Preverjanje PDF/UA zdaj po ISO 14289-1 §7.15 razlikuje med dinamičnimi in statičnimi obrazci XFA:
pvuaiXfaDynamicoznači obrazce, katerih konfiguracija XFA nastavidynamicRendernarequired
Spremembe
- Nekdanja splošna zastavica
pvuaiXfaPresentje umaknjena in se ne sproži več (statični XFA je skladen z §7.15); vrednost enumeracije ostaja za združljivost API-ja
Version 1.84.0
Dodano
- Preverjanje PDF/UA zdaj zazna neoznačeno resnično vsebino, ki jo zahteva ISO 14289-1 §7.1:
pvuaiUntaggedContentoznači izrisane besedilne in slikovne objekte, ki niso niti zatrjeni v drevesu strukture strani (prek njihovih ID-jev označene vsebine) niti označeni kot Artefakt - Novi pomočniki na ravni strani
GetPageContentMarkInfosinValidatePdfUaPageContentTaggingskupaj z zapisomTPdfPageContentMarkInfoza neposredno uporabo
Version 1.83.0
Dodano
- Preverjanje PDF/UA zdaj uveljavlja model naslovov po ISO 14289-1 §7.4.4:
pvuaiHeadingModelMixedoznači dokumente, ki mešajo splošno oznakoHz oštevilčenimi nasloviH1..Hn, terpvuaiHeadingMultipleInNodeoznači vozlišča strukture, ki nosijo več kot en podrejeni naslovH
Version 1.82.0
Dodano
- Preverjanje PDF/UA zdaj razreši preslikavo RoleMap, ki jo zahteva ISO 14289-1 §7.1:
pvuaiRoleMapRemapsStandardoznači vnose RoleMap, ki redefinirajo standardni tip strukture, terpvuaiRoleMapUnresolvedoznači rabljene nestandardne tipe struktur, katerih veriga RoleMap manjka, visi ali je ciklična — posredne verige, ki dosežejo standardni tip, so sprejete, neuporabljeni vnosi RoleMap pa se nikoli ne ocenijo - Novi pomočniki
PdfUaIsStandardStructType,PdfReadRoleMapPairs(z dekodiranjem PDF-skih imen z ubežnimi znaki#hh) inValidatePdfUaRoleMapUsageza neposredno uporabo
Version 1.81.0
Dodano
- Preverjanje PDF/UA zdaj pokriva označevanje seznamov po ISO 32000-1, ki ga zahteva ISO 14289-1 §7.6:
pvuaiListStructureInvalidoznači elemente LI zunaj vsebnika L ter dele Lbl/LBody zunaj elementa LI, pri tem pa sprejema ugnezdene sezname in veljavno uporabo Lbl znotraj elementov Note in BibEntry
Version 1.80.0
Dodano
- Preverjanje PDF/UA zdaj pokriva označevanje tabel po ISO 32000-1, ki ga zahteva ISO 14289-1 §7.5:
pvuaiTableStructureInvalidoznači celice TH/TD zunaj vrstice TR ter vrstice ali skupine vrstic zunaj vsebnika Table,pvuaiTableHeaderMissingScopeoznači celice glave, katerih razmerje ni določljivo niti prek atributa Scope niti prek združevanja Headers/ID, terpvuaiTableHeadersUndefinedIdoznači sklice Headers v dokumentih, ki ne definirajo nobenih ID-jev elementov strukture TPdfStructureElementizpostavlja atribute tabelScope,HasHeaders,HeadersIds,ColSpaninRowSpan, razrešene med sprehodom po drevesu strukture
Spremembe
- Sprehod po drevesu strukture zdaj v enem prehodu bere vse atribute postavitve in tabel iz slovarjev atributov posameznega elementa, namesto enega pregleda na atribut
Version 1.79.1
Dodano
- Preneseni primer
AnnotationsLabv Lazarus in C++Builder, s čimer se pridružuje obstoječemu primeru konzole Delphi
Odpravljeno
TPdf.CreateAnnotationje lahko sprožil napako “Cannot set attachment points” za pripise z označevanjem, ki uporabljajo quad točke (Označevanje, Podčrtano, Prečrtano, Vijugasto), ker novi pripis še ni imel quad reže, ki bi jo zamenjal; zdaj namesto tega doda prvo quad točko
Version 1.79.0
Dodano
- Novi primer konzole Delphi
AnnotationsLab: ustvari pripise z besedilom, označevanjem, kvadratom in krogom, jih zapiše v PDF, nato znova naloži datoteko in oštevilči seznam pripisov na strani
Version 1.78.0
Dodano
- Novi
TPdf.MeasureTextinTPdf.MeasureTextWidth: izmerita upodobljeno širino in višino niza za dano pisavo in velikost (uporabniške enote PDF, 1 enota = 1/72 palca) brez dodajanja vsebine na stran, kar omogoča logiko postavitve in preloma besedila povrhAddText; omogočeno s samostojno enotoFPdfMeasurekot pomočnikom razreda (class helper) - Novi
TPdf.WrapText: pohlepno prelamljanje besedila, zgrajeno naMeasureTextWidth, ki razdeli besedilo na presledkih in združi besede v vrstice, ki niso širše od določene širine (uporabniške enote PDF); predolga posamezna beseda dobi svojo vrstico (brez lomljenja znotraj besede), pri čemer vrne prelomljene vrstice kot matriko
Version 1.77.0
Dodano
ValidatePdfAje dobil tri nove vrednostiTPdfAValidationIssue, ki pokrivajo klavzule, ki so bile v prejšnjem pregledu vrzeli ocenjene kot “NO” ali “reader behaviour” (dodani ordinali, obstoječe vrednosti nespremenjene):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — znak, ki se razreši v Unicode 0 brez napake preslikave, simptom pri izvajanju sklica na glif.notdef; zaznan prek plasti objektnega modela Pdfium),pvaiWordBreakMissing(Stopnja A 6.8.3.2 — prikazani niz vsebinskega toka, daljši od 20 znakov brez presledka, verjetna kršitev združenih besed; groba hevristika, ki se izogne lažnim pozitivnim rezultatom CJK) inpvaiLinkActionMissingTarget(6.6.3 — dejanje GoToR/URI/SubmitForm nima ciljnega ključa prikaza, zato ga bralnik ne more predstaviti)
Version 1.76.0
Dodano (Added)
ValidatePdfAje pridobil tri nove vrednostiTPdfAValidationIssue(dodane na konec, obstoječe vrednosti nespremenjene):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 — žeton/BaseFontali/FontNamevsebuje bajte ≥ 0x80, ki ne tvorijo veljavnega UTF-8),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — vdelana slika v toku vsebine strani uporablja filter LZW ali Crypt) inpvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — nesimbolna pisava TrueType, katere slovar Encoding vsebuje/Differences)
Version 1.75.0
Dodano (Added)
ValidatePdfAje pridobil tri nove vrednostiTPdfAValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — numerični žeton, ki presega omejitev 32-bitnega predznačenega celega števila 2.147.483.647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 — vrednost/BMizven standardnega nabora načinov mešanja ISO 32000-1 §11.3.5; dopolnjuje PDF/A-1pvaiTransparentColorSpace, ki dovoljuje le Normal/Compatible) inpvaiHexStringOddDigits(6.1.6 — šestnajstiški niz<...>z lihim številom šestnajstiških števk)
Version 1.74.0
Dodano (Added)
ValidatePdfAje pridobil tri nove vrednostiTPdfAValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvaiPermissionsViolation(6.1.12 — slovar/Perms, ki nosi/DigestLocation,/DigestMethodali/DigestValuepoleg/DocMDP),pvaiTransActionForbidden(PDF/A-2 6.5.1 — akcija prehoda Trans, zaznana prek vzorca/S /Transv slovarju akcij, da bi se izognili napačnemu ujemanju z/Transparency) inpvaiPdfiumObjectTransparency(PDF/A-1 6.4 — objekt na strani vsebuje pravo prosojnost poFPDFPageObj_HasTransparency, kar razširja objektni model Pdfium, predstavljen v različici 1.73.0, za zaznavanje učinkov načina mešanja/mehke maske, ki jih pregled imen na ravni bajtov lahko zgreši)
Version 1.73.0
Dodano (Added)
TPdf.ValidatePdfAsedaj preko preverjalnika na ravni bajtov nalaga tudi prehod objektnega modela Pdfium: sprehodi se skozi tekstovne objekte vsake strani prekoFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedin poroča o nevgrajeni izrisani pisavi kotpvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4), naloži vsako besedilno stran in preveriFPDFText_HasUnicodeMapErrorter prijavi pokvarjeno preslikavo Unicode kotpvaiPdfiumUnicodeMapError(6.3.8). To so preverjanja, ki jih preverjalnik na ravni bajtov ne more opraviti — vidi samo žetone imen, ne pa tudi razrešenih ročajev pisav ali stanja preslikave posameznega znaka — in so združena v rezultat na ravni bajtov. Samostojna funkcija na ravni bajtovValidatePdfAComplianceostaja nespremenjena
Version 1.72.0
Dodano (Added)
ValidatePdfAje pridobil pet novih vrednostiTPdfAValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — katalog ne sme vsebovati/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — OutputIntent ne sme vsebovati/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — specifikacija datoteke z/EFmora vsebovati tudi/UF),pvaiXmpPacketBytesAttr(6.7.5 — glava paketa XMP ne sme vsebovati zastarelih atributovbytes=aliencoding=) inpvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — bit ToggleNoView v anotaciji/F, z vrednostjo 512, je prepovedan)
Version 1.71.0
Spremenjeno
ValidatePdfUasedaj sprožipvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): sprehajalec strukturnega drevesa razreši atribut razporeditveListNumberingna vsakem elementuLprek atributnega API-ja Pdfium in označi vsako vrednost zunaj nabora ISO 32000-1 tabela 347 (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Odsoten atribut ni označen, saj je seznam lahko neurejen; to zapira zadnjo preostalo vrzel ISO 14289-1, zabeleženo na koncu 5. kroga
Version 1.70.0
Dodano
ValidatePdfUaje pridobil štiri nove vrednostiTPdfUaValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — podmnožica CIDFontDescriptormora deklarirati/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — ToUnicode CMap ne sme preslikati nobene kode vU+FEFFaliU+FFFE; nestisnjeni tokovi se pregledajo za izhodni obliki<FEFF>/<FFFE>),pvuaiLangInvalidFormat(7.2 —/Langmora biti veljavna oznaka RFC 1766 / BCP 47; popustljiva slovnica sprejmeen,en-US,zh-Hans,es-419in označi jasno neskladne vrednosti) inpvuaiOrderedListMissingListNumbering(7.6 — obdržano zaradi popolnosti API-ja; preverjevalnik ga še ne sproži, ker je za zanesljivo razlikovanje urejenih in neurejenih seznamov potrebna vrednost atributaListNumbering, ki je sprehajalec strukturnega drevesa ne izpostavi)
Version 1.69.0
Dodano
ValidatePdfUaje pridobil dve novi vrednostiTPdfUaValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — strukturni element Widget mora biti ugnezden v elementForm; sprehajalec strukturnega drevesa sedaj preveri neposredno vrsto starša vsakega gradnika Widget) inpvuaiSubsetMissingCharSet(7.21.4.2 — podmnožica Type 1FontDescriptormora deklarirati/CharSet, ki ga identificira šestčrkovna predpona imena podmnožice+na/FontName)
Version 1.68.0
Dodano
ValidatePdfUaje pridobil dve novi vrednostiTPdfUaValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — slovar dejanja URI ne sme vsebovati/IsMapz vrednostjotrue, saj onemogoči dostopni cilj povezave) inpvuaiHeadingSequenceViolation(7.4.2 — oštevilčeni naslovi se morajo začeti priH1in padajoče zaporedje ne sme preskočiti vmesne ravni, npr.H1→H3je kršitev). Preverjanje naslovov je prvo pravilo PDF/UA na ravni strukturnega drevesa v preverjevalniku:ValidatePdfUaStructureElementssedaj prehodi seznam tipiziranih elementov in preveri zaporedjeH1…H6(inH7+po 7.4.3) v vrstnem redu dokumenta
Version 1.67.0
Dodano
ValidatePdfUaje pridobil pet novih vrednostiTPdfUaValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — anotacija Link mora nositi alternativni opis prek/Contents),pvuaiAnnotationMissingContents(7.18.1 — vsaka neizvzeta anotacija brez/Contentsmora imeti alternativni opis; Popup in Widget sta izvzeta),pvuaiEmbeddedFileMissingName(7.11 — slovar specifikacije datoteke mora vsebovati/Fin/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — slovar podatkov medijskega posnetka mora vsebovati/CTin/Alt) inpvuaiCidFontMissingCidToGidMap(7.21.3.2 — vdelan Type 2 CIDFont mora vsebovati/CIDToGIDMap)
Version 1.66.0
Dodano
ValidatePdfUaje pridobil pet novih vrednostiTPdfUaValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvuaiRoleMapMissing(ISO 14289-1 7.1 — označen dokument z nestandardnimi vrstami struktur mora vsebovati/RoleMap),pvuaiOptionalContentAsKey(7.10 — slovar konfiguracije neobvezne vsebine ne sme vsebovati ključa samodejnega stanja/AS),pvuaiXfaPresent(7.15 — prisotnost AcroForm/XFAje označena, ker je dinamični XFA prepovedan),pvuaiTrapNetAnnotation(7.18.2 — anotacije/TrapNetso prepovedane) inpvuaiReferenceXObject(7.20 — Reference XObjects, prepoznani po oznaki/Ref, so prepovedani)
Popravljeno
ValidatePdfUane vrača več lažno pozitivnih rezultatov zapvuaiEncryptionPresentpri vsaki šifrirani datoteki: PDF/UA dovoljuje šifriranje, dokler ima ključ/Pv slovarju šifriranja nastavljen bit na položaju 10 (vrednost 1024), kar omogoča dostop podporni tehnologiji (7.16). Natančna kršitev se sedaj poroča prek novegapvuaiEncryptionPBitMissing;pvuaiEncryptionPresentje ohranjen v oštevilčenju za združljivost API-ja, vendar ga preverjevalnik na ravni bajtov ne sproži več
Version 1.65.0
Dodano
ValidatePdfAje pridobil pet novih vrednostiTPdfAValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — vdelan Type 2 CIDFont mora vsebovati/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — podmnožica Type 1FontDescriptormora vsebovati/CharSet),pvaiSubsetMissingCidSet(6.3.5 — podmnožica CIDFontDescriptormora vsebovati/CIDSet),pvaiWidgetActionForbidden(6.6.1 — anotacija Widget ne sme vsebovati/Aali/AA) inpvaiOptionalContentAsKey(ISO 19005-2 6.9 — slovar konfiguracije neobvezne vsebine ne sme vsebovati ključa samodejnega stanja/AS, kar je na novo pomembno, ker PDF/A-2 dovoljuje neobvezno vsebino)
Version 1.64.0
Dodano
ValidatePdfAje pridobil osem novih vrednostiTPdfAValidationIssue(dodane redne številke, obstoječe vrednosti ostajajo nespremenjene):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 — glavi%PDF-x.ymora slediti komentar%z vsaj štirimi bajti, večjimi od 127),pvaiExternalStreamRef(6.1.7 — slovar toka ne sme vsebovati/F,/FFilterali/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntent/Smora biti/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfoCreationDate/ModDatese mora pojaviti tudi kotxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — Raven A zahteva/MarkInfoz/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — slovar anotacije/APsme vsebovati samo/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Priloga E.2 — vsaka povezana specifikacija datoteke mora vsebovati/AFRelationship) inpvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — slika JPEG2000 mora deklarirati 1, 3 ali 4 komponente)
Popravljeno
ValidatePdfAne vrača več lažno pozitivnih rezultatov zapvaiAnnotationFlagsViolationpri dokumentih, ki uporabljajo enočrkovno ime vira pisave, kot je/Font << /F 5 0 R >>; pregled zastavice/Fje sedaj omejen na kontekst anotacije (/Subtypevrste anotacije), kar se ujema z dokumentiranim obnašanjem (6.5.3)ValidatePdfAsedaj poroča o zahtevi PDF/A-3 za povezano datoteko na datoteko: dokument je označen samo takrat, ko vdelan/Type /Filespec, ki se sklicuje na vdelan tok prek/EF, nima/AFRelationship, namesto prejšnjega preverjanja celotnega dokumenta vse-ali-nič (ISO 19005-3 Priloga E.2)- Zastarelo dejanje
/SetStateje dodano v nabor prepovedanih dejanj poleg/SetOCGState, tako da je ime dejanja iz reference PDF ujeto neposredno (6.6.1)
Version 1.63.0
Dodano (Dodano)
- Dodani
TPdf.MeasureTextinTPdf.MeasureTextWidth: merita prikazano širino in višino besedila v podani pisavi in velikosti brez dodajanja vsebine na stran (enote PDF, 1 enota = 1/72 palca), kar omogoča izračune postavitve in samodejno prelomljenje vrstic nadAddText; na voljo kot pomožni razred v samostojni enotiFPdfMeasure
Spremembe (Spremenjeno)
- Primeri
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFinDemo\Lazarus\MergePDFso izboljšani za vsa tri razvojna okolja: obseg strani za vsako datoteko, izbirna izhodna pot, odstranjevanje dvojnikov, dnevnik izvajanja, gumb za preklic, povzetek združevanja; zaznamki in metapodatki iz prve izvorne datoteke - Primeri
CreatePDFzdaj vključujejo možnost evropskega besedila za naglašeno češko, francosko, nemško, špansko, portugalsko, poljsko in turško besedilo ter preverjajo izbiro pisave in ravnanje z Unicode (nekdanjiEuropeanTextje bil vključen) - Odstranjeni sta
ExtractTextPagesinEuropeanText: ekstrakcijo po straneh pokrivajo možnosti obsega strani in ločilnika vExtractText; večjezično upodabljanjeEuropeanTextje vključeno vCreatePDF
Version 1.62.2
Popravljeno (Popravljeno)
- Na novo smo ustvarili glave C++Builderja (
.hpp) za vsako različico in platformo RAD Studio (Win32/Win64/Win64x); odmaknile so se od Pascal izvorne kode, zato so v distribuciji izvorne kode do uporabnikov C++Builderja prišle zastarele funkcijske signaure in manjkajoče enote
Version 1.62.1
Popravljeno (Popravljeno)
- Ponovno je omogočeno prevajanje izvorne kode v RAD Studio 12 Athens in starejših: dodelitev
TArray<Byte>v poti preverjanja PDF/UA je uporabljala implicitno pretvorbo polj, ki obstaja samo v Delphiju 13, zato se na starejših IDE ni prevedla
Version 1.62.0
Dodano (Dodano)
TPdf.RenderPageThumbnailizriše katero koli stran po indeksu v bitno sliko, prilagojeno razmerju stranic, ne da bi spremenil trenutno stran dokumenta, naloženo stran ali sprožilOnPageChange
Popravljeno (Popravljeno)
TPdfThumbnailViewmed risanjem ne krmili več gostiteljskega dokumenta prekPageNumber; prej je vsak ponovni izris znova naložil strani, sprožilOnPageChangein zavrgel besedilno stran, kar je lahko zmotilo povezanTPdfViewin sprožilo zanke ponovnega izrisa. Sličice se zdaj izrisujejo skoziRenderPageThumbnailbrez takih stranskih učinkov- Preverjanje skladnosti PDF/X zdaj pregleda dokumente s tokovi navzkrižnih sklicev (PDF 1.6, značilno za PDF/X-4) in objekte, shranjene v stisnjenih tokovih objektov, namesto da bi takšne datoteke v celoti označilo kot neskladne; oznaka
GTS_PDFXVersionse bere tako iz oblike elementa kot iz XMP z atributi RDF - Preverjanje PDF/R zdaj poroča
pvriInfoXmpMismatch, kadar se slovar Info in XMP ne ujemata glede Producer ali Creator; ta težava je bila prej deklarirana, vendar nikoli sprožena - Časovniki za izpolnjevanje obrazcev se spremljajo po posamezni zahtevi, zato dokument, ki hkrati poganja več časovnikov (na primer interval JavaScript ob utripanju kazalke v polju), obdrži vse namesto da bi izgubil vse razen zadnjega
TPdfViewpri risanju in njegovi javni metodiRenderPage/RenderTilezdaj držita zaklep za izris dokumenta, zato se serializirata z izrisom istegaTPdfv delovnem niti (PDFium ni varen za več niti)- Besedilo brez ASCII znakov, zapisano v metapodatke PDF/X, PDF/R in PDF/VT (imena pogojev OutputIntent, Creator, Producer), je zdaj kodirano kot niz UTF-16BE po ISO 32000-1 §7.9.2.2 namesto kot surov UTF-8, ki bi ga skladni bralniki napačno prebrali
- Pomočniki za skladnost pravilno preberejo vdelane tokove metapodatkov, katerih
/Lengthje posredna referenca, izvorne bajte naložijo sReadBuffer(tako da kratek bralni dostop odpove čisto) in zavrnejo negativni odmikstartxrefnamesto da bi tvegali branje izven obsega
Version 1.61.0
Spremenjeno (Spremenjeno)
- Popravki deklaracij FFI/ABI, ki lahko zahtevajo ponovno prevajanje kode, ki je implementirala prizadete povratne klice: povratni klic
FFI_OpenFileza izpolnjevanje obrazcev zdaj uporabljacdecl(sklad klica Win32), parametervaluevFPDFAnnot_SetStringValueinFPDFAttachment_SetStringValuepa je zdajFPDF_WIDESTRING(UTF-16LE), da se ujema z glavami PDFium - Povratna klica za progresivno nalaganje
FX_FILEAVAIL.IsDataAvailinFX_DOWNLOADHINTS.AddSegmentzdaj sprejemata odmikesize_t, pri čemer jesize_tna Free Pascal / Lazarus Win64 širine kazalca (prej je bil okrnjen na 32 bitov), kar popravlja klice API za razpoložljivost podatkov inoutsize_tna FPC Win64
Popravljeno (Popravljeno)
- Varnost pomnilnika: uporaba po sprostitvi časovnika za izpolnjevanje obrazcev pri uničevanju
TPdfz aktivnim kazalcem AcroForm; dvojniFPDF_CloseDocumentna poti napake vImportNPagesToOne; Pascalove izjeme, ki uidejo iz povratnih klicevFPDF_FILEWRITE/FPDF_FILEACCESSčez mejo C med shranjevanjem in vstavljanjem JPEG; ter celoštevilski preliv pri izločanju besedila pri branju od začetnega indeksa do konca strani TPdfFuture<T>zdaj zanesljivo dostavi svoj povratni klic z rezultatom; odgovor je bil prej skoraj vedno izgubljen (in je lahko dosegel sproščeno nit), ker se je delovni nit končal, preden je uvrščeni odgovor stekel- Izhod PDF/A, PDF/X, PDF/E, PDF/R, PDF/VT in PDF/UA zdaj zapisuje vnose navzkrižnega sklica, ki so natančno 20 bajtov, kot zahteva ISO 32000-1 §7.5.4
- Vstavljanje označevalcev skladnosti ne uniči več slovarja, ko je bil odstranjeni ključ (na primer
/Trapped) zadnji vnos, kar je prej pogoltnilo zaključni>>in ustvarilo okvarjen objekt - Tokovi profilov ICC v OutputIntent zdaj navedejo zahtevano komponentno število
/Nza PDF/X in PDF/VT (že prej prisotno za PDF/A); šifrirani izvorni dokumenti se pred vstavitvijo oznak PDF/X, PDF/E, PDF/R, PDF/VT in PDF/UA dešifrirajo, zato je izhod veljaven namesto tiho pokvarjen - BOM UTF-8 xpacket v ustvarjenem XMP je izpisan kot natančni bajti, kar popravlja okvaro na namestitvah Delphi, kjer ANSI kodna tabela ni Latin-1; okviri pri postopnih posodobitvah zdaj ohranijo sklic dokumenta
/Info SaveAss stiskanjem ne skrajša več tokov, katerih/Lengthje posredna referenca, na novo zgrajene tabele navzkrižnih sklicev pa zdaj uporabljajo vnose dolžine 20 bajtov, dejanske številke generacij in odstranijo zastareli kazalec/Prev- Preverjanje skladnosti bere označevalce različice XMP v obliki atributov za PDF/E in PDF/X (zato se datoteke PDF/X-4, zapisane z atributi, prepoznajo), zahteva natančen identifikator
PDF/E-1, pravilno bere posredne tokove metapodatkov/Lengthin pri preverjanju priključka PDF/UA ne ujame več napačnega ujemanja ključa/IDali/StructTreeRootv strukturskem elementu; napačno oblikovan odmikstartxrefne povzroči več napake obsega TPdfThumbnailView: zadnja stran je zdaj dosegljiva z drsnikom, trenutna stran gostiteljskega dokumenta se po izrisu sličic obnovi, standardno obravnavanje odhoda miške pa se znova sproži- Sive bitne slike strani in slik se ne izrisujejo več z napačno paleto;
TPdfViewne ostane več z visečo referenco, ko se njegovTPdfsprosti prej - Poročila preflight: HTML se shrani kot UTF-8, da se ujema z deklariranim znakovnim naborom, in ubežno zapisovanje nizov JSON na Free Pascal ustvari pravilne zaporedja
\uza znake brez ASCII - Preizkusne izdaje: pogovorno okno z opomnikom preizkusne različice se zdaj prikaže, namesto da bi bilo potlačeno, preden bi se lahko pokazalo
TPdfStreamAdapterzdaj zavrne tokove, večje od 4 GiB, z jasnim sporočilom o napaki namesto da bi tiho skrajšal dolžino, posredovano PDFiumu
Version 1.60.1
Spremenjeno (Spremenjeno)
- Predstavitve AccessibilityReader za Delphi, Lazarus in C++Builder zdaj izvajajo branje na glas prek
TPdfReadingSession: vsaka stran se sestavi v en izgovorjen kos sBuildSpokenTextFromWords, položaji besed SAPI se vnašajo vFeedSpokenPosition, seja pa napreduje po straneh in krmili besedni kazalec pogleda, s čimer nadomešča ročno orkestracijo, ki jo je prej nosila vsaka predstavitev - Sledenje karaokam na ravni besed v predstavitvah zdaj deluje tudi, ko je govorni pogon NVDA:
EstimatePacinguravnava bralni kazalec po pretečenem govornem času, medtem ko je NVDA prej bral na glas brez kakršnega koli sledenja besedam - Premor in nadaljevanje v predstavitvah zdaj delujeta tudi z NVDA:
ResumeRestartsChunkob nadaljevanju ponovno izgovori trenutno stran od začetka, medtem ko SAPI ohrani svoje izvorno premor in nadaljevanje na mestu
Version 1.60.0
Dodano (Dodano)
- Živo izrisovanje za slabovidne v
TPdfView: novi možnosti izrisareInvertinreNightDuotonepred izrisom prekrivnih slojev za iskanje, izbiro, branje in besedni kazalec ponovno obarvata vsako izrisano ploščico strani (polni barvni obrat ali nočno dvobarvno paleto), s čimer obstoječe barvne pretvorbe bitnih slik preneseta v interaktivni pregledovalnik za postavitve ene strani in obraznih strani; preklop možnosti takoj sproži ponovni izris NightDuotoneInkinNightDuotonePapernastavljata nočno paleto, privzeto z jantarno besedilo na črni strani; kadar sta nastavljeni obe možnosti, zmagareInvert
Version 1.59.0
Dodano (Dodano)
TPdfReadingSession: komponenta za orkestracijo branja na glas, neodvisna od govornega pogona. Ohranja kazalec kosa, besedni kazalec in stanje predvajanja (Play/PlayFrom/Pause/Resume/Stop), napreduje skozi naložene koseTPdfSpokenText, ko gostitelj prekTicksporoča, da je pogon neaktiven, preslika odmike izgovorjenega besedila nazaj na znake strani in samodejno krmili priklopljen besedni kazalecTPdfView; gostitelj poveže kateri koli govorni pogon prekOnSpeakter dogodkov za zahteve preklica, premora in nadaljevanja, zato knjižnica sama ne povezuje nobenega govornega APIFeedSpokenPositionporablja položaje besed pogona (na primer SAPIStatus.InputWordPosition);EstimatePacingzEstimatedWordsPerMinuteuravnava pogone brez signala položaja;ResumeRestartsChunkza pogone brez izvornega premora ponovno izgovori trenutni kosOnChunkChange,OnWordChangeinOnFinishedse sprožijo le ob resničnih spremembah, osvobojen priklopljen pogled pa se samodejno odklopi, zato gostiteljska koda ostane brez utripanja in varna pred zrušitvami
Version 1.58.0
Dodano (Dodano)
EstimateSpokenWordIndexoceni, katero besedo govorni pogon trenutno izgovarja, na podlagi pretečenega časa in hitrosti v besedah na minuto, pri čemer daljšim besedam dodeli sorazmerno več časa, tako da lahko tudi pogoni brez poročanja položaja besede (na primer odjemalec NVDA controller) še vedno krmilijo bralni kazalec na ravni besed; klicatelj posreduje pretečeni čas, zato rutina ostane brez odvisnosti od ure in primerna za enotske teste
Version 1.57.0
Dodano (Dodano)
- Sestavljanje izgovorjenega besedila z dvo-domenskim preslikavanjem za sledenje branju na glas:
BuildSpokenTextFromWordsinSpokenTextAppendsestavita niz, ki se preda pogonu za govor iz polj besed na strani, pri tem pa beležita tabelo razponov,SpokenToPageCharpa pretvori izgovorjeni odmik, ki ga sporoči pogon (na primer SAPIStatus.InputWordPosition), nazaj v indeks znaka strani, zato sledenje označevanju na ravni besed ostane pravilno tudi takrat, ko izgovorjeno besedilo ni celotno besedilo strani (preskočena območja, branje po enotah, preglasitve izgovorjave) - Tipa
TPdfSpokenTextinTPdfSpokenSpannosita izgovorjeni niz ter izvorne razpone strani, iz katerih je bil zgrajen; odmiki na vstavljenih ločilih se razrešijo na naslednjo preslikano besedo, odmiki za preslikanimi zaporedji pa poročajo, da zadetka ni
Version 1.56.9
Dodano (Dodano)
Demo\Delphi\PreflightReportdoda predogled akcijskega načrta, ki neuspešne standarde, prioritete, naslednje korake, kode težav in priporočila strne v popravljalni kontrolni seznamDemo\Delphi\PreflightReportClisprejmeplan/actionplankot izhodno obliko za enojne in paketne zagone ter isti popravljalni kontrolni seznam zapiše v besedilno datoteko
Spremenjeno (Spremenjeno)
- Obe predstavitvi Delphi PreflightReport zdaj prikazujeta števce stanj pass / action / review poleg skupnega števila standardov in težav
Version 1.56.8
Spremenjeno (Spremenjeno)
ViewerInteractionLabzdaj vključuje gumbe za skok na stran, ročne gumbe za povečavo, beleženje koordinatDeviceToPage/PageToDevices klikom in jasnejši dnevnik interakcij za preverjanje izbire, iskanja, vrtenja in krmarjenja- Strani readme za
ViewerInteractionLabzdaj dokumentirajo dodani potek interakcij v celotnem lokaliziranem naboru predstavitvenih readmejev
Version 1.56.7
Dodano (Dodano)
AccessibilityWorkbenchClivsako sproženo ugotovitev preslika na ustrezna merila uspešnosti WCAG 2.1 in območje določb ISO 14289-1 (PDF/UA-1) ter v poročilih prikaže razdelek o pokritosti standardovAccessibilityWorkbenchCliizračuna dokumentirano dostopnostno oceno 0-100 z objavljeno rubriko kazni in razponom excellent / good / needs work / poor, prikazanim po datoteki in kot paketno povprečjeAccessibilityWorkbenchClisprejmefailscore=N, da ob zagonu vrne napako (izhodna koda 2), kadar katera koli datoteka doseže manj kot NAccessibilityWorkbenchClizapiše dnevnik SARIF 2.1.0, kadar se ime paketnega povzetka konča z.sarif, pri čemer ima vsaka vrsta ugotovitve svoje oznake WCAG 2.1 in PDF/UA za CI in uvoz v code-scanningAccessibilityWorkbenchClidoda ukazversion, ki izpiše povezano različico PDFiumPas
Version 1.56.6
Dodano (Dodano)
IntakeWorkbenchCliizračuna forenzični hash SHA-256 vsake vhodne datoteke (zamenja ga zunavailablena prevajalnikih brezSystem.Hash) in ga izpiše v vseh oblikahIntakeWorkbenchClisprejmepasswords=file.txtza poskusno odklepanje dokumentov, zaščitenih z geslom, iz seznama kandidatov, pri čemer zabeleži ujemajoči se indeks kandidata, ne da bi kadar koli zabeležil besedilo geslaIntakeWorkbenchClisprejmecopyto=dir, da vsako pregledano datoteko usmeri v podmapo glede na raven tveganja in tako pregledovalnik spremeni v razvrščevalnik vhodovIntakeWorkbenchClizapiše dnevnik SARIF 2.1.0, kadar se ime paketnega povzetka konča z.sarif, pri čemer ima vsaka zastavica tveganja svoje pravilo in vsaka označena datoteka svoj rezultat za CI in uvoz v code-scanningIntakeWorkbenchClidoda ukazversion, ki izpiše povezano različico PDFiumPas
Version 1.56.5
Dodano (Dodano)
IntakeWorkbenchClizdaj izpelje priporočena dejanja po sprejemu, kot so accept, request-password, manual-review, quarantine in deduplicate, ter v paketnih povzetkih prikaže števce dejanjAccessibilityWorkbenchClizdaj izpelje priporočena popravna dejanja, kot so pass-through, remediate-tags, run-ocr, remediate-semantics in manual-review, z ustreznimi paketnimi števci dejanj
Spremenjeno (Spremenjeno)
- Obe CLI predstavitvi orodnega razreda priporočeno dejanje prikažeta v konzolnem, besedilnem, HTML, JSON in CSV izhodu, tako da lahko paketni operaterji usmerjajo datoteke brez naknadne obdelave tveganja ali polj stanja
Version 1.56.4
Popravljeno (Popravljeno)
- Branje anotacij, zaznamkov ali povezav v zanki ne pušča več besedilnih nizov prejšnjega elementa: rezultatski zapisi
TPdfAnnotation,TBookmarkinTLinkAnnotationse zdaj čistijo z inicializacijo, ki upošteva upravljane tipe, namesto z ničlenjem surovega pomnilnika, zato dokumenti z zelo velikim številom besedilnih anotacij ne napihnejo več pomnilnika procesa za celotno življenjsko dobo aplikacije - Ob uničenju
TPdf, ki je registriral obravnavalecOnUnsupportedFeature, se ta zdaj odklopi iz procesno globalnega povratnega klica PDFium, zato poznejše nalaganje dokumenta iz drugega primerkaTPdfbrez lastnega obravnavalca ne more več usmeriti izvajanja v sproščeno komponento (use-after-free)
Version 1.56.3
Popravljeno (Popravljeno)
AccessibilityWorkbenchClipraznih strani ne šteje več kot hevristične strani bralnega reda, zato označeni dokumenti s praznimi ločilnimi stranmi ohranijo pravilen status dostopnosti; strani brez berljive vsebine so zdaj prijavljene ločenoAccessibilityWorkbenchClizaznavanje glave tabele ne pripiše več zunanje tabele celicamTH, ki pripadajo ugnezdeni tabeli, imena polj obrazca in pisav pa se ujemajo občutljivo na velike in male črke, zato se različna polja ne združijoIntakeWorkbenchCliseznami gostiteljev URL zdaj odstranijo dele userinfo, query in fragment, zato je sestavljena povezava, kot jetrusted.example@evil.example, pripisana resničnemu gostitelju, ciljimailto:pa prispevajo svojo domeno namesto da bi bili nevidniIntakeWorkbenchCliporočila Markdown ubežno zapisujejo povratne apostrofe v poteh, gostiteljih in imenih prilog, ki jih nadzira napadalec, tako da oblikovanja poročila ni mogoče pokvariti iz dokumenta
Spremenjeno (Spremenjeno)
AccessibilityWorkbenchClinapake pri pregledu pisav in polj obrazcev poroča kot ločene števce, označi nevgrajene pisave, ki imajo tudi vgrajene primerke, in dolge sezname pisav omeji z jasnim označevalcem krajšanjaIntakeWorkbenchClipaketni povzetki dodajo stolpec s številom anotacij prilog, popis anotacij na strani pa je omejen na 20000 anotacij na stran, pri čemer je omejitev navedena v vsaki obliki
Version 1.56.2
Dodano (Dodano)
AccessibilityWorkbenchClizdaj preverja vgrajevanje pisav, namige polj obrazcev, izvor bralnega reda, orise dokumenta, strukturo tabel in seznamov, sumljivo nadomestno besedilo in bogatejše podrobnosti pregleda po strani, tako da paketna poročila o dostopnosti prepoznajo več ciljnih popravkovIntakeWorkbenchClizdaj poroča o omejitvah pregleda strani, dejanjih launch in remote-go-to, seznamih gostiteljev URI, številu anotacij, nepodprtih zmožnostih PDFium, podvojenih identifikatorjih dokumentov in razširjenih zastavicah tveganja za avtomatiziran pregled vhodov
Spremenjeno (Spremenjeno)
IntakeWorkbenchClisprejmemaxpages=Nv načinu ene datoteke in paketnem načinu, da omeji preglede strani na dokument, hkrati pa še vedno dokonča poročanje o metapodatkih, prilogah, skriptih, XFA, podpisih in tveganjih
Version 1.56.1
Popravljeno (Popravljeno)
- Nalaganje starejše
pdfium.dll, ki ji manjka novejši izvoz, zdaj odpove čisto: pot napake ponastavi vsako vezano vstopno točko API, zato preverjanjaAssigned()(na primer priFPDF_GetLastErroraliFPDF_GetSecurityHandlerRevision) knjižnico prijavijo kot nenaloženo, namesto da bi klicala v že razloženi modul in se sesula z dostopovno kršitvijo UnloadLibraryzdaj počisti vse povezave PDFium API in ne le neobveznih pomočnikov V8, zato po sprostitvi DLL ne ostanejo zastareli kazalci na funkcije
Version 1.56.0
Dodano (Dodano)
- Bralni kazalec za karaoke na ravni besed v
TPdfView:TrackReadingWordAtpreslika odmik znaka trenutne besede govornega pogona (na primer SAPIStatus.InputWordPosition) na besedna polja strani, izpostavi besedo, ki ga vsebuje, kot ločen prekrivni sloj nad bralnim blokom, jo pomakne v pogled in vrne indeks besede, tako da se izgovorjena beseda osvetli, ko glas napreduje SetReadingWordinClearReadingWordneposredno nastavljata ali čistita označeno besedo izTPdfWordBox; ponovna nastavitev iste besede ne naredi ničesar, zato sledenje po besedah nikoli ne povzroča utripanja pogledaReadingWordColorinReadingWordFollownadzorujeta barvo besednega kazalca in to, ali pogled samodejno pomakne izgovorjeno besedo v vidno območje
Version 1.55.2
Popravljeno (Popravljeno)
ViewerInteractionLabzdaj vrsticam orodne vrstice namenja več navpičnega prostora, tako da se kontrolniki Open PDF, Create Sample, krmarjenje, iskanje in izbira pri povečanih pisavah ne prekrivajo več
Version 1.55.1
Popravljeno (Popravljeno)
ViewerInteractionLabzdaj Premik nazaj, Naprej in Zasuk postavi v drugo vrstico orodne vrstice, s čimer se ob zagonu izogne prekrivanju z Open PDF in Create Sample
Version 1.55.0
Dodano (Dodano)
- Most od besede do izbire za branje tipa "preberi in izberi":
TPdfView.SelectWordBoxinSelectWordSpanizbereta eno besedno polje ali razpon besednih polj na isti strani izPageWordBoxespo njihovih razponih znakov, tako da je lahko tudi trenutno brana beseda ali vrstica izbrana in kopirana WordBoxIndexAtCharIndexpreslika indeks znaka nazaj na besedno polje, ki ga vsebuje, in tako krmili označevanje besedo za besedo, ko napreduje bralni kazalec TTS
Version 1.54.0
Dodano (Dodano)
- Glasovni dostopniki za izpolnjevanje obrazcev, ki fokusirano polje berejo neposredno iz logičnega kazalca:
FocusedFormFieldValue,FocusedFormFieldNameinFocusedFormFieldDetailsnaTPdfinTPdfViewporočajo o vrednosti trenutnega polja, človeku berljivem imenu (namig/TU, z vračanjem na/T) in celotnemTPdfFormFieldInfo(vrsta, zastavice, možnosti) — vse, kar glasovni vmesnik potrebuje za napovedovanje med premikanjem skozi obrazec
Popravljeno (Popravljeno)
FocusedFormFieldValueprebere polje prekFocusedFormFieldIndexin ne prek interaktivnega fokusa PDFium, zato dobi z glasom voden izpolnjevalnik obrazcev pravo vrednost tudi brez kazalke na zaslonu (obstoječiFocusedFormFieldTextše vedno odraža fokus PDFium in ostaja nespremenjen)
Version 1.53.0
Dodano (Dodano)
- Podpora za označevanje na ravni besed:
TPdf.PageWordBoxesinTPdfView.PageWordBoxesrazdelita stran na zapiseTPdfWordBox, pri čemer vsak nosi besedilo besede, njen razpon znakov in omejitveni pravokotnik v prostoru strani, tako da lahko bralnik za dostopnost vsako izgovorjeno besedo označi po vrsti ("karaoke" branje) tako, da pravokotnik posreduje vSetReadingHighlight BuildWordBoxesizpostavi sam korak tokenizacije in pretvori besedilo strani v besedna polja z razponi znakov
Version 1.52.0
Dodano (Dodano)
- Pomočniki za izris za slabovidne
InvertPdfBitmap,GrayscalePdfBitmapinDuotonePdfBitmapuporabijo pretvorbe barv na že izrisani 32-bitni bitni sliki na mestu, tako da lahko bralnik za dostopnost prikaže strani obrnjene / v temi, v sivinah ali v prilagojeni dvobarvni shemi (na primer temno ozadje s svetlim besedilom) za slabovidne uporabnike - Pretvorbe tečejo po posameznem pikslu in se enako obnašajo v VCL in Lazarus/LCL, pri čemer pustijo dimenzije bitne slike nespremenjene
Version 1.51.0
Dodano (Dodano)
- Bralne enote na ravni povedi za pomožno poslušno branje:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsinTPdfView.ReadingUnitspretvorijo tok berljive vsebine v urejene zapiseTPdfReadingUnitvelikosti povedi — vsak nosi besedilo za izgovorjavo skupaj s svojo semantično vrsto, stranjo, pravokotniki za označitev in jezikovno oznako, tako da lahko aplikacija z bralnikom zaslona napreduje po strani ali po celotnem dokumentu po eni izgovorjeni enoti naenkrat - Semantično krmarjenje s
NextReadingUnitOfKind, ki glasovnemu vmesniku omogoča skok na naslednjo ali prejšnjo naslovno enoto, sliko, element seznama ali celico tabele brez ročnega pregledovanja toka BuildReadingUnitskaterikoliTPdfContentFragmentsneposredno pretvori v bralne enote: naslovi ter opisi slik/alt ostanejo celi, odstavki pa se razdelijo po mejah povedi, decimalne pike se ohranijo in bralni kazalec je navaden indeks v lasti klicatelja
Version 1.50.0
Dodano (Dodano)
ValidatePdfAlahko zdaj pregleda dokumente PDF 1.5+, ki hranijo katalog, OutputIntent ali druge slovarje v stisnjenih tokovih objektov (/Type /ObjStm). Tokovi objektov se razširijo in objekti v njih se razrešijo, zato se takšni dokumenti preverijo po vsebini, namesto da bi bili prijavljeni kot dokumenti brez označevalcev PDF/A
Version 1.49.5
Popravljeno (Popravljeno)
ValidatePdfAmanjkajočega opisapdfaExtension:schemasne prijavlja več kot težavo. Shema identifikatorja PDF/A (pdfaid) je dobro poznana, zato zanjo ne veraPDF ne PDF/A-2/-3 ne zahtevajo opisa razširitvene sheme, in označevanje njene odsotnosti je napačno prijavilo vsak skladen PDF/A tretje strani. Dokumenti, ki jih sama knjižnica ustvari, opis še vedno vključujejo
Version 1.49.4
Popravljeno (Popravljeno)
ValidatePdfAzdaj zazna raven skladnosti, kadar je identifikator PDF/A zapisan kot XML atribut (pdfaid:part="2") in ne kot podrejeni element, zato dokumenti v obliki atributov niso več prijavljeni z neznano ravnjo. S tem se popravi tudi verižna napaka, pri kateri je nezaznana raven povzročila, da so se preverjanja za posamezen del vrnila na stroga pravila PDF/A-1 in napačno označila vdelane datoteke ter prosojnost, ki ju PDF/A-2 in PDF/A-3 dovoljujeta
Version 1.49.3
Popravljeno (Popravljeno)
ValidatePdfAzdaj pregleda dokumente PDF 1.5+, katerih podatki o navzkrižnih sklicih so tok navzkrižnih sklicev (datoteke brez ključne besedetrailer). Raven skladnosti, priključek/IDin drugi označevalci se preberejo iz slovarja toka navzkrižnih sklicev, zato se takšni dokumenti preverijo po vsebini, namesto da bi bili prijavljeni kot popolnoma neskladni
Version 1.49.2
Popravljeno (Popravljeno)
ValidatePdfAdokumentov, ki imajo vdelane vse svoje pisave, ne prijavlja več z lažno težavo z nevdelanimi pisavami. Prejšnja hevristika je primerjala število žetonov/FontDescriptors programi vdelanih pisav, vendar vsaka vdelana pisava prispeva dva žetona/FontDescriptor(sklic na slovar pisave in objekt opisa), zato je bil napačno označen vsak dokument z vdelanimi pisavami. Preverjanje zdaj prijavi le dokument, ki se sklicuje na pisave, vendar ne vgradi nobenega programa pisave, kar se ujema s pripadajočim popravkomValidatePdfUa
Version 1.49.1
Popravljeno (Popravljeno)
- Izhod PDF/A se zdaj z veraPDF preveri kot skladen s PDF/A-1b in PDF/A-1a: vdelani tok ICC profila sRGB OutputIntent, na katerega kaže
/DestOutputProfile, zdaj navede zahtevano število komponent/N(3 za vgrajeni profil RGB), kot zahteva ISO 19005-1 6.2.3.2. Dokumenti, ki jih ustvariSaveAsPdfA, so prej padli na strogem preverjanju PDF/A-1, ker je tok ciljnega profila izpustil/N; vrednost se izpelje iz glave ICC profila, zato pravilno število dobi tudi profil CMYK ali Gray, ki ga posreduje klicatelj
Version 1.49.0
Popravljeno (Popravljeno)
ValidatePdfUana skladnih označenih PDF ne prijavlja več napačnega manjkajočega XMP-označevanja — identifikator PDF/UA (pdfuaid:part),dc:title, datumi XMP in priključek/IDse zdaj berejo iz izvirnih bajtov dokumenta in ne iz ponovno shranjene kopije, ki izpusti tok XMP/Metadatain pri datotekah s tokom navzkrižnih sklicev tudi priključek/ID- Preverjanje vdelave pisav v
ValidatePdfUaje popravljeno, tako da dokument, ki vdeluje vse svoje pisave, ni več prijavljen kot dokument z nevdelanimi pisavami; zdaj označi samo dokument, ki se sklicuje na pisave, vendar sploh ne vdeluje nobenega programa pisave ValidatePdfUazdaj sprejme strukturni elementFormula, katerega nadomestno besedilo je podano prekActualTextnamesto vnosaAlt(ISO 14289-1 §7.7), skladno z obstoječim pravilom zaFigure
Version 1.48.0
Dodano (Dodano)
- Programatična izbira besedila v
TPdfView:SelectTextRange(po strani in razponu znakov) inSetSelection(po izrecnih razponih na strani) izbereta besedilo iz kode — na primer za branje in označitev odlomka; oba sprožita ponovni izris in dogodekOnSelectionChange, ko se izbira spremeni.SelectionRangesprebere trenutno izbiro kot razpone znakov na strani,SelectionRectanglespa vrne njene pravokotnike v koordinatah strani za lastno označevanje ali pomik do njih
Version 1.47.0
Dodano (Dodano)
- Krmarjenje po poljih obrazca za izpolnjevanje z glasom, tako v
TPdfkot vTPdfView:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusinFocusedFormFieldText. Ti premikajo logični kazalec polj po gradnikih strani po vrstnem redu zavihkov (z ovijanjem na koncih), zato lahko pomožni bralnik prehodi obrazec, napove vsako polje prekFormFieldInfo[Index].AlternateName(namig /TU) in ga izpolni prekFormField[Index] - Dogodek
TPdfView.OnFormFieldFocusChange, ki se sproži, ko se kazalec polja premakne (in nosi nov indeks polja ali -1, ko je počistjen)
Version 1.46.0
Dodano (Dodano)
- Tok vsebine za pomožno poslušno branje:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentinTPdfView.ReadableContentvrnejo urejen seznam semantičnih elementovTPdfContentFragment, pri čemer vsak nosi izgovorjeno besedilo (resnične glife aliActualText/Alt za slike), vrsto fragmenta (naslov z ravnjo, odstavek, slika, element seznama, celica tabele, povezava, navaden), jezik, 1-osnovano stran ter pravokotnike za označitev po bloku in po vrstici. Označeni PDF se linearizirajo v logičnem bralnem redu iz drevesa strukture; neoznačene strani se vrnejo na vrstni red izrisa, tako da je mogoče prebrati na glas vsak dokument - Sinhronizirano označevanje branja v
TPdfView:SetReadingHighlight,ClearReadingHighlightin objavljeniReadingHighlightColoroznačijo trenutno brani blok nad prekrivnimi sloji iskanja in izbire - Novi javni tipi
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindinTPdfReadingOrderSourceter nov pomočnikClassifyStructType
Version 1.45.0
Dodano (Dodano)
ValidatePdfUazdaj prehodi tudi živo označeno drevo strukture in prijavi tri vsebinske kršitve z visoko zanesljivostjo, ki jih pregled na ravni bajtov ne more zaznati: elementFigurebrez vnosa Alt ali ActualText (ISO 14289-1, 7.3), elementFormulabrez atributa Alt (7.7) in elementNotebrez enoličnega ID (7.9). To razkrijejo tri nove vrednostiTPdfUaValidationIssue:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltinpvuaiNoteMissingId. Pregled drevesa se preskoči za neoznačene dokumente- Novi javni pomočnik
ValidatePdfUaStructureElementsuporabi ta pravila drevesa strukture na ravnem seznamu elementov (kot ga vrneTPdf.StructureElements), zato je mogoče preverjanja izvesti ali enotno testirati brez nalaganja celotnega dokumenta
Version 1.44.5
Popravljeno (Popravljeno)
- Preverjanje vdelave pisav pri
ValidatePdfA(pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) zdaj zazna tudi nevdelane preproste pisave brez/FontDescriptor, predvsem 14 standardnih pisav Type 1 (Helvetica, Times, Courier in podobne), ki jih PDF/A brez izjeme zahteva vdelane. Prej takšna pisava ni bila opažena; preverjanje zdaj primerja tudi slovarje preprostih pisav (/Type1,/TrueType,/MMType1) s programi vdelanih pisav, podobno kot popravek PDF/UA v 1.44.3
Version 1.44.4
Popravljeno (Popravljeno)
ValidatePdfVTzdaj zavrne napačno oblikovana drevesa DPart po ISO 16612-2 §6.5, kjer je/DPartsraven seznam referenc namesto zahtevanega seznama seznamov ali kjer list DPart ponovi svojo stran/Startkot/End, čeprav obseg vsebuje samo eno stranValidatePdfVTzdaj po razširitvi ubežnih zapisov imen PDF#xxpreveri imena/NodeNameListkot vrednosti XML NMTOKEN, zato se neveljavna imena ravni hierarhije prijavijo prekpvviMissingDPartRoot, namesto da bi bila sprejeta kot uporabna struktura DPart
Version 1.44.3
Popravljeno (Popravljeno)
- Preverjanje vdelave pisav v
ValidatePdfUa(pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) zdaj zazna tudi nevdelane preproste pisave brez/FontDescriptor, predvsem 14 standardnih pisav Type 1 (Helvetica, Times, Courier in podobne), za katere PDF/UA ne dovoljuje izjeme od vdelave. Prej takšna pisava ni bila opažena in dokument, ki jo je uporabljal, je lahko bil prijavljen kot skladen; preverjanje zdaj primerja tudi slovarje preprostih pisav (/Type1,/TrueType,/MMType1) z vdelanimi programi pisav
Version 1.44.2
Popravljeno (Popravljeno)
ValidatePdfVTzdaj prisoten, vendar neprepoznan označevalecpdfvtid:GTS_PDFVTVersionpusti kotpvcUnknown, namesto da bi ga znižal napvcNone. Tako neveljavni nizi na ravni datoteke, kot jePDF/VT-2s, ostanejo ločljivi od dokumentov brez označevalca PDF/VT; PDF/VT-2s se prepozna po glavi toka MIME v ISO 16612-2 Annex A, ne po označevalcu XMP datoteke PDF- Preverjanje
/DPartRootzdaj strožje preverja semantiko drevesa po ISO 16612-2 §6.5:/DPartRootNodein/NodeNameListmorata opisovati dejansko globino DPart, nadrejene povezave DPart morajo tvoriti drevo,/Startin/DPartssta medsebojno izključujoča, vsak/DPartstrani pa mora kazati na prekrivajoči list DPart v istem zaporedju prehoda po globini kot drevo strani
Version 1.44.1
Popravljeno (Popravljeno)
SaveAsPdfVTzdaj zapiše minimalno hierarhijo delov dokumenta po ISO 16612-2 §6.5, kadar izvorni PDF nima uporabnega/DPartRoot. Ustvarjeno drevo poveže vsako stran prek/DPart, ohrani obstoječo veljavno hierarhijo, bogatejše metapodatke prejemnikov/DPM pa prepusti klicnemu poteku delaValidatePdfVTzdaj preveri uporabno strukturo DPart, bere vrednosti XMP za PDF/VT tako iz atributov RDF kot iz besedila elementov ter uveljavi natančno osnovno ujemanje PDF/VT s PDF/X: PDF/VT-1 zahteva PDF/X-4, PDF/VT-2 pa zahteva PDF/X-4p, PDF/X-5g ali PDF/X-5pgTPdfVTSaveOptions.Conformance = pvc2ne zapisuje več neveljavnih označevalcev enojne datoteke PDF/VT-2. Zapisovalnik enojne datoteke izhod normalizira na PDF/VT-1, ker PDF/VT-2 zahteva semantiko nabora datotek
Version 1.44.0
Dodano (Dodano)
ValidatePdfUazdaj poleg označevalcev oblike datoteke prijavi tudi vsebinske kršitve PDF/UA, ki jih je mogoče preveriti na ravni bajtov: program pisave, ki ni vdelan (ISO 14289-1, 7.21.4), pisavo brez CMap/ToUnicode, kadar ni prisotno izvzeto kodiranje preproste pisave (7.21.7), in dokument z anotacijami, ki ne deklarira vrstnega reda zavihkov strani/Tabs /S(7.18.3)- Tri nove vrednosti
TPdfUaValidationIssue—pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodeinpvuaiMissingTabsOrder— se prikažejo prekValidatePdfUain v poročilu preflight. To so grobe hevristike, namenjene kot namigi za preflight in ne kot popolno preverjanje ISO 14289-1
Version 1.43.1
Popravljeno (Popravljeno)
SaveAsPdfUazdaj uveljavi obvezne kataloške vnose ISO 14289-1, 7.1/ViewerPreferences/DisplayDocTitle truein/MarkInfo/Marked true/Suspects falsetudi takrat, ko izvorni dokument te slovarje že vsebuje z manjkajočimi ali nasprotujočimi vrednostmi. Prej so bili označevalci vstavljeni samo, kadar slovarjev sploh ni bilo, zato se je vir, ki je na primer vseboval/ViewerPreferencesbrezDisplayDocTitleali/MarkInfoz/Marked false, pri kroženju shranil v neskladno datoteko- Obstoječi ključi v že obstoječem slovarju
/ViewerPreferencesali/MarkInfose ohranijo, slovar, podan kot posredna referenca, pa se razreši, preden se uporabijo obvezni ključi
Version 1.43.0
Dodano (Dodano)
ValidatePdfAzdaj uporablja pravila PDF/A-2 / PDF/A-3 za vdelane in povezane datoteke ter za besedilo Level U. Vdelane datoteke so še vedno zavrnjene za PDF/A-1; pri PDF/A-3 se označi vdelana datoteka brez zahtevanega ključa/AFRelationship(ISO 19005-3 Annex E), medtem ko so priloge PDF/A-2 dovoljene (njihova lastna skladnost se ne preverja rekurzivno). Nova težavapvaiUnicodeMappingMissingprijavi dokument PDF/A-2u ali PDF/A-3u, katerega pisave nimajo preslikave/ToUnicode(ISO 19005-2 6.2.11.7). Prosojnost in izbirna vsebina ostajata označeni samo za PDF/A-1
Version 1.42.0
Dodano (Dodano)
- PDF/A-2 (ISO 19005-2) in PDF/A-3 (ISO 19005-3) sta zdaj podprta na vseh treh ravneh skladnosti — a, b in u — prek
SaveAsPdfA,ValidatePdfAin lastnostiPdfAConformance. NaštevalnikTPdfAConformancedobipac2a,pac2u,pac3ainpac3u(PDF/A-1 nima ravni u). Shranjevanje zapiše ustreznapdfaid:part(2 ali 3) inpdfaid:conformance(A, B ali U) ter ohrani podvrsto OutputIntentGTS_PDFA1, ki jo ISO 19005-2 ohrani zaradi združljivosti. Zahteva za raven A se še vedno zniža na ustrezno raven B (za katerikoli del), kadar dokumentu manjka označena struktura, ki jo ta raven zahteva
Version 1.41.0
Dodano (Dodano)
ValidatePdfAzdaj poleg strukturnih označevalcev, ki jih je že prijavljal, zazna tudi vsebinske kršitve PDF/A, ki jih vstavljanje označevalcev ne more popraviti: JavaScript in druga prepovedana dejanja, dodatna dejanja (/AA), vdelane datoteke,LZWDecode, prosojnost (mehke maske in skupine prosojnosti), izbirno vsebino (/OCProperties), prepovedane podtipe anotacij (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances truein/XFA, pisave, katerih opisi nimajo vdelanega programa pisave, ter zahtevo po ravni A brez označene strukture, ki jo zahteva ISO 19005-1 6.8. Preverjanja prosojnosti, izbirne vsebine in vdelanih datotek veljajo le za PDF/A-1 (te zmožnosti so dovoljene v PDF/A-2 in PDF/A-3). Nove vrednostiTPdfAValidationIssuepokrijejo vsak primer; obstoječe vrednosti ostanejo nespremenjene
Version 1.40.3
Popravljeno (Popravljeno)
SaveAsPdfAzdaj pred ustvarjanjem izhoda PDF/A odstrani vsako šifriranje izvornega dokumenta. ISO 19005-1 6.1.3 prepoveduje priključek/Encrypt, vendar je pot shranjevanja prej ohranila varnostni obravnavalec vira, zato je shranjevanje šifriranega dokumenta kot PDF/A ustvarilo šifrirano, neskladno datoteko. Shranjevanje PDF/A zdaj dokument najprej dešifrira. Nešifrirani dokumenti niso prizadeti
Version 1.40.2
Popravljeno (Popravljeno)
SaveAsPdfAne izpisuje več napačne izjave o skladnosti PDF/A raven A. Kadar je zahtevana raven A (pac1a), vendar izvorni dokument nima označevalcev označene strukture, ki jih zahteva ISO 19005-1 6.8 —/StructTreeRootv katalogu in slovar/MarkInfos/Marked true— je shranjena datoteka zdaj prepoznana kot ustrezna raven B (pdfaid:conformance=B) namesto da bi trdila raven A. Čisto vizualni izhod PDF/A-1b ni prizadet
Version 1.40.1
Popravljeno (Popravljeno)
- Zaostrena je preverba skladnosti z različico PDF, tako da je dejanje
SetOCGState(set-optional-content-group-state) prepoznano kot zmožnost PDF 1.5. Shranjevanje v cilj PDF 1.2, 1.3 ali 1.4, ki vsebuje dejanjeSetOCGState, je zdaj zavrnjeno v skladu z ISO 32000-1 (tabela 198); prej je takšno dejanje lahko prešlo v izhod nižje različice. Ločeno, zastarelo dejanje PDF 1.2SetStateje še vedno sprejeto od PDF 1.2 naprej
Version 1.40.0
Dodano (Dodano)
- Povezan je bil nadrejeni API
FPDFPageObj_AddExistingMark(), ki obstoječo oznako vsebine pripne na objekt strani. Kadar zaporedni objekti strani delijo isto oznako, jih shranjeni PDF združi v eno samo oznako, ki pokrije vse; nezaporedni objekti dobijo ločene kopije - Povezan je bil nadrejeni API
FPDFTextObj_SetFontSize()za spreminjanje velikosti v točkah obstoječega besedilnega objekta, kar dopolnjuje obstoječo povezavoFPDFTextObj_GetFontSize()
Spremenjeno (Spremenjeno)
- Vdelane izvajalne knjižnice PDFium DLL (Win32 in Win64, standardne in V8 zgradbe) so osvežene na nadrejeni posnetek 2026-06-02
Version 1.39.53
Spremenjeno (Spremenjeno)
- Predstavitve Delphi
PDFViewer,SplitViewinMultiPageViewerzdaj dokumente privzeto odprejo v načinuZoom to Page - Začetni izris zdaj prilega celotno stran v površino pregledovalnika, preden uporabnik izbere ročno stopnjo povečave
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.53
Version 1.39.52
Spremenjeno (Spremenjeno)
Demo\Lazarus\CreatePDFje razširjen tako, da uvodni vzorec zdaj ustvari dvostranski PDF z vektorskimi potmi, vsebino tabele, vdelano sliko, besedilno anotacijo, zasukanim besedilom in jasnejšim prikazom gradnje dokumenta- Dodane so dodelane strani
README.htmlza vsako mapo s predstavitvijo za Delphi, C++Builder in Lazarus, s čimer je preostali demo README samo z besedilom zamenjan z vodnikom, ki ga je mogoče brati v brskalniku TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.52
Version 1.39.51
- Paketni povzetki
Demo\Delphi\PreflightReportCliso razširjeni s skupnimi statusi standardov za Pass, Action required in Review po izbranih standardih - Vrstice po datoteki zdaj v povzetkih TXT / HTML / JSON / CSV vključujejo števce action-required in review, zato je artefakte CI lažje pregledati brez odpiranja vsakega ustvarjenega poročila
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.51
Version 1.39.50
- Način paketnega dela po mapi v
Demo\Delphi\PreflightReportClije razširjen tako, dabatchdir=folderzbere odkrite poti PDF, jih razvrsti in nato ustvari poročila v stabilnem vrstnem redu - Rekurzivni pregledi map zdaj ustvarijo ponovljiv vrstni red poročil in povzetkov, medtem ko izrecna obdelava
batch=list.txtše naprej ohranja vrstni red seznama datotek TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.50
Version 1.39.49
- Paketni povzetki
Demo\Delphi\PreflightReportCliso razširjeni tako, da beležijo nastavitve zagona: vrsto vira, pot vira, rekurzivno stanje, izhodno mapo, obliko poročila, izbrane standarde in načinfailon= - Povzetki JSON zdaj vključujejo objekt
run, povzetki TXT in HTML prikazujejo razdelek z nastavitvami zagona, vrstice CSV pa ponavljajo iste nadzorne stolpce za preglednice in cevovode CI TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.49
Version 1.39.48
- Poimenovanje paketnega izhoda v
Demo\Delphi\PreflightReportClije razširjeno tako, da podvojena imena vhodnih datotek, ki delijo istioutdir=, ne prepisujejo več ustvarjenih poročil druga druge - Paketni zagoni zdaj dodajo pripone
-2,-3in nadaljnje, kadar je bila ustvarjena pot poročila v istem zagonu že dodeljena, povzetki pa zabeležijo končno pot poročila, varno pred trki TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.48
Version 1.39.47
- Paketni povzetki
Demo\Delphi\PreflightReportCliso razširjeni tako, da izhoda TXT in JSON zdaj vključujeta skupne vsote za skupne datoteke, obdelane datoteke, neuspešne datoteke, težave in zadetkefailon= - Povzetki CSV ostajajo čista tabela vrstic za obstoječe porabnike, povzetki HTML pa še naprej prikazujejo iste agregatne metrike v glavi nadzorne plošče
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.47
Version 1.39.46
Demo\Delphi\PreflightReportClije razširjen ssummary=batch.html/.htm, tako da lahko paketni zagoni poleg manifestov TXT / CSV / JSON izpišejo tudi nadzorno ploščo, berljivo v brskalniku- Povzetki HTML prikazujejo metrike za skupno število, obdelane, neuspešne, težave in ujemanje
failon=, nato pa navedejo vsak vnos s povezavami do poročil, stanjem, števci in besedilom napake TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.46
Version 1.39.45
Demo\Delphi\PreflightReportClije razširjen sbatchdir=folderinrecursive, tako da lahko skripte pregledajo mape PDF neposredno, brez predhodnega zapisovanja seznama datotek- Način paketnega dela po mapi znova uporabi vedenje
outdir=,summary=,standards=infailon=iz paketnega načina s seznamom, medtem ko nerekurzivni pregled pregleda le izbrano mapo,recursivepa vključi podmape TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.45
Version 1.39.44
Demo\Delphi\PreflightReportClije razširjen ssummary=batch.csv|json|txt, tako da lahko paketni zagoni poleg poročil po datotekah izpišejo tudi strojno berljiv manifest- Paketni povzetki vključujejo vsako vhodno pot, pot poročila, stanje, število standardov, število uspešnih, število težav, stanje ujemanja
failon=in besedilo napake za opravila CI in zunanje skripte TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.44
Version 1.39.43
Demo\Delphi\PreflightReportClije razširjen sbatch=list.txtinoutdir=reports, tako da lahko skripte v enem zagonu ustvarijo poročila preflight za seznam datotek PDF- Paketni način preskoči prazne vrstice in vrstice komentarjev
#, ime vsakega poročila.preflight.<ext>izpelje iz vhodnega PDF, nadaljuje po napakah posamezne datoteke in pred vrnitvijo povzame obdelane in neuspešne datoteke TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.43
Version 1.39.42
Demo\Delphi\PreflightReportClije razširjen sfailon=none|issues|action|review, tako da lahko opravila CI ustvarjene rezultate preflight pretvorijo v deterministične izhodne kode- CLI zdaj vrne izhodno kodo 2, kadar se izbrano pravilo
failon=ujema po ustvarjanju datoteke poročila in izbirnega pripetega PDF poročila, medtem ko napake med izvajanjem še vedno vrnejo izhodno kodo 1 TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.42
Version 1.39.41
Demo\Delphi\PreflightReportClije razširjen zattach=output.pdf, tako da je mogoče ustvarjeno poročilo preflight vgraditi kot prilogo na ravni dokumenta v novo kopijo PDF- CLI ohrani ustvarjeno datoteko poročila TXT / HTML / Markdown / JSON / CSV na disku in zavrne ponovno pripenjanje v izvorno vhodno pot PDF, s čimer zmanjša tveganje nenamernega prepisovanja
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.41
Version 1.39.40
- Dodana je
Demo\Delphi\PreflightReportCli, konzolna spremljevalka Delphi za skriptno ustvarjanjeFPdfPreflightReportbrez odpiranja pregledovalnika - CLI podpira ustvarjanje vzorca brez argumentov ter vhodne / izhodne argumente, izbirno geslo, izhodne oblike
text/html/md/json/csvin filtriranjestandards=za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R in PDF/VT TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.40
Version 1.39.39
FPdfPreflightReportje razširjen sTPdfPreflightReport.ToMarkdowninSaveMarkdownToFile, tako da je mogoče poročila preflight izvoziti kot Markdown, prijazen sledilnikom težav- Vzorci
PreflightReportza Delphi, C++Builder in Lazarus so posodobljeni s preklopom predogleda Markdown in dejanji Save MD poleg obstoječega poteka TXT / HTML / JSON / CSV TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.39
Version 1.39.38
- Vzorci
SecurityAuditza Delphi, C++Builder in Lazarus so razširjeni z izvozom nadzornega poročila JSON poleg obstoječega poteka shranjevanja / kopiranja TXT - Poročilo JSON vsebuje
format,generatedAt,summary,findingCountin strukturirane vrsticefindingss polji za resnost, območje in podrobnosti TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.38
Version 1.39.37
FPdfPreflightReportje razširjen sTPdfPreflightReport.ToCsvinSaveCsvToFile, tako da je mogoče poročila preflight izvoziti kot CSV, prijazen preglednicam- Vzorci
PreflightReportza Delphi, C++Builder in Lazarus so posodobljeni s preklopom predogleda CSV in dejanji Save CSV poleg obstoječega poteka TXT / HTML / JSON TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.37
Version 1.39.36
FPdfPreflightReportje razširjen sTPdfPreflightReport.IssueCategoryCountster ponovno uporabnima tipomaTPdfPreflightIssueCategoryCountinTPdfPreflightIssueCategoryCountsza združevanje težav na ravni označevalcev po kategorijahTPdfPreflightReport.ToText,ToHtmlinToJsonso posodobljeni, da izhod ustvarjenega PreflightReport vključuje povzetke števil težav po kategorijah poleg vrstic po standardih in podrobnih priporočil za težaveTPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.36
Version 1.39.35
- Razširjen vzorec
PrintDialogje bil preimenovan vPrintPreferencesv Delphi, C++Builder in Lazarus, tako da se ime predstavitve zdaj ujema z njenim delovnim tokom za nastavitve tiskanja avtorja PDF, tiskanje N-up, filtriranje liho / sodo, sivine, obrobe celic in preslikavo obojestranskega tiskanja TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.35
Version 1.39.34
Demo\Delphi\PrintPDFje razširjen z nalaganjem PDF z vleci-in-spusti, obstoječi potekDemo\CBuilder\PrintPDFpa je dokumentiran skupaj z vzorci PrintPDF za Delphi in LazarusTPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.34
Version 1.39.33
- Dodana je
Demo\CBuilder\SplitView, s čimer je matrika vzorcev SplitView za Delphi, C++Builder in Lazarus dokončana TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.33
Version 1.39.32
- Dodana je
Demo\Lazarus\SplitView, ki v Lazarus prinaša primerjavo PDF drug ob drugem z dvopanelno ali tripanelno postavitvijo, krmarjenjem po aktivnem pogledu, sinhroniziranimi ukazi, prednastavitvami povečave in vrtenjem TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.32
Version 1.39.31
- Dodana je
Demo\Lazarus\PrintPDF, ki v Lazarus prinaša standardni potek tiskanja PDF s krmarjenjem po predogledu, razponi strani, kopijami, načinom collate, napredkom in preklicem TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.31
Version 1.39.30
- Dodana je
Demo\Lazarus\FontProperties, s čimer je matrika vzorcev FontProperties za Delphi, C++Builder in Lazarus dokončana TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.30
Version 1.39.29
- Dodana je
Demo\CBuilder\FontProperties, ki v C++Builder prinaša pregled indeksiranih znakov in metapodatkov pisave poleg vzorca Delphi TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.29
Version 1.39.28
- Dodana je
Demo\Delphi\ExtractTextPages, s čimer je matrika vzorcev za izločanje besedila po straneh za Delphi, C++Builder in Lazarus dokončana TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.28
Version 1.39.27
- Dodana je
Demo\Lazarus\PrintDialog, s čimer je matrika vzorcev PrintDialog za Delphi, C++Builder in Lazarus dokončana TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.27
Version 1.39.26
- Dodana je
Demo\CBuilder\PrintDialog, ki v C++Builder prinaša potek tiskanja N-up in nastavitve tiskanja avtorja PDF poleg vzorca Delphi TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.26
Version 1.39.25
- Dodana je
Demo\CBuilder\ViewerInteractionLab, s čimer je matrika vzorcev ViewerInteractionLab za Delphi, C++Builder in Lazarus dokončana - Posodobljen je potek gradnje knjižnice in izhodi paketa C++Builder za Win64, tako da se metode interakcije pregledovalnika
TPdfViewpravilno povežejo v predstavitvah Win64 TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.25
Version 1.39.24
- Dodana je
Demo\Lazarus\ViewerInteractionLab, ki v Lazarus prinaša osredotočen potek interakcije s pregledovalnikom poleg vzorca Delphi TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.24
Version 1.39.23
- Dodana je
Demo\Lazarus\SearchAndSelect, s čimer je matrika vzorcev SearchAndSelect za Delphi, C++Builder in Lazarus dokončana TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.23
Version 1.39.22
- Dodana sta
Demo\CBuilder\ContentExtractionLabinDemo\Lazarus\ContentExtractionLab, ki večkategorijski potek izločanja vsebine prinašata v vse podprte demo IDE TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.22
Version 1.39.21
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportinDemo\CBuilder\PreflightReportso razširjeni z izbirnikom oblike predogleda, tako da lahko uporabniki pred shranjevanjem poročil pregledajo besedilni ali JSON izhodTPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.21
Version 1.39.20
- Dodana je izvozna oblika JSON v
FPdfPreflightReportprekTPdfPreflightReport.ToJsoninSaveJsonToFile, ki ustvari strojno berljive povzetke, status / prioriteto po standardih, naslednja dejanja in podrobnosti težav Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportinDemo\CBuilder\PreflightReportso posodobljeni z dejanji Save JSON poleg izvoza TXT / HTMLTPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.20
Version 1.39.19
FPdfPreflightReportje razširjen sTPdfPreflightStatus, kategorijami težav, prioriteto po standardih in navodili za naslednje dejanje v poročilih TXT / HTMLDemo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportinDemo\CBuilder\PreflightReportso posodobljeni, da v mreži povzetka prikazujejo status, prioriteto, število težav in naslednje dejanjeTPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.19
Version 1.39.18
- Dodana je
Demo\Lazarus\SecurityAudit, s čimer je matrika demojev za Delphi, C++Builder in Lazarus za potek nadzora bralno-predstavitvene PDF površine tveganja dokončana - Vzorec Lazarus našteje dovoljenja, priloge, dejanja JavaScript, anotacije povezav URI / Launch, spletne povezave, podpise, stanje XFA, razpoložljivost pomočnikov V8 / XFA in povratne klice nepodprtih zmožnosti, nato pa seznam ugotovitev shrani ali kopira kot poročilo TXT
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.18
Version 1.39.17
- Dodana je
Demo\CBuilder\SecurityAudit, ki potek nadzora bralno-predstavitvene PDF površine tveganja prinaša v C++Builder poleg obstoječega vzorca Delphi - Vzorec C++Builder našteje dovoljenja, priloge, dejanja JavaScript, anotacije povezav URI / Launch, spletne povezave, podpise, stanje XFA, razpoložljivost pomočnikov V8 / XFA in povratne klice nepodprtih zmožnosti, nato pa seznam ugotovitev shrani ali kopira kot poročilo TXT
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.17
Version 1.39.16
- Dodana je
Demo\CBuilder\SearchAndSelect, ki samostojen potek pregledovalnika SearchAndSelect prinaša v C++Builder poleg obstoječega vzorca Delphi - Vzorec C++Builder ustvarja ali odpira PDF, našteje zadetke na vseh straneh s predogledom strani / indeksa znaka, podpira krmarjenje Previous / Next in z dvojnim klikom ter označi zadetke na trenutni strani z
HighlightSearchText - Izpostavlja tudi možnosti
AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection,OnSelectionChangein razpršene možnostiDisplayMode; metapodatki različice zdaj poročajo 1.39.16
Version 1.39.15
- Dodana je
Demo\CBuilder\WatermarkStamp, s čimer je matrika demojev za Delphi, Lazarus in C++Builder za ponovno uporabne poteke vodnih žigov in žigov Form XObject dokončana - Vzorec C++Builder ustvari ciljni PDF in PDF žiga, znova uporabi stran žiga prek
CreateXObjectFromPage, uporabi pretvorbeTPdfMatrixter shrani centrirane vodne žige, vogalne žige in oznake številk strani TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.15
Version 1.39.14
- Dodana je
Demo\Lazarus\WatermarkStamp, ki v Lazarus prinaša ponovno uporabni potek vodnih žigov in žigov Form XObject - Vzorec Lazarus ustvari ciljni PDF in PDF žiga, znova uporabi stran žiga prek
CreateXObjectFromPage, uporabi pretvorbeTPdfMatrixter shrani centrirane vodne žige, vogalne žige in oznake številk strani TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.14
Version 1.39.13
- Dodana je
Demo\CBuilder\PreflightReport, s čimer je matrika demojev za Delphi, Lazarus in C++Builder za ponovno uporabni potekFPdfPreflightReportdokončana - Vzorec C++Builder uporablja
FPdfPreflightReport.hppza ustvarjanje povzetkov standardov, predogledov poročil TXT, datotek poročil TXT / HTML in vedenje Open Last Report TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.13
Version 1.39.12
- Dodana je
Demo\Lazarus\PreflightReport, ki v Lazarus prinaša potek poročila preflight za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R in PDF/VT - Vzorec Lazarus lahko odpre ali ustvari PDF, izbere ciljne standarde, predogleda vrstice povzetka in izhod poročila TXT, shrani poročila TXT / HTML ter odpre nazadnje shranjeno poročilo
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.12
Version 1.39.11
Demo\Delphi\SearchAndSelectje razširjen s seznamom rezultatov iskanja po vseh straneh, ki beleži številko strani, indeks znaka in besedilo predogleda- Dodana sta krmarjenje po zadetkih Previous / Next in skok na rezultat z dvojnim klikom, pri čemer je vedenje
HighlightSearchTextna trenutni strani ohranjeno TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.11
Version 1.39.10
Demo\Delphi\SecurityAuditje razširjen z dejanji Save Report in Copy Report, ki trenutni povzetek in vrstice ugotovitev izvozijo kot nadzorno poročilo TXT- Predstavitev zdaj počisti stanje izvoza poročila, ko se ponastavi nadzorna plošča, tako da so kopirana ali shranjena poročila usklajena z vidnimi ugotovitvami
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.10
Version 1.39.9
Demo\Delphi\ContentExtractionLabje razširjen s shranjevanjem izvornega PDF, kopiranjem poročila v odložišče ter dejanji izbire kategorij all / none- Predstavitev zdaj razveljavi trenutno poročilo, ko se izbire kategorij spremenijo, zato izvozi TXT / JSON odražajo vidni obseg izločanja
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.9
Version 1.39.8
- Dodana je
Demo\Delphi\ContentExtractionLab, enoten vzorec poteka izločanja vsebine za metapodatke dokumenta, besedilo strani, objekte strani, slike, priloge, povezave, anotacije, zaznamke ter meritve pisave / znakov - Vzorec lahko odpre obstoječi PDF ali ustvari sintetični PDF z vsebino besedila, slike, priloge in anotacije, nato pa ustvari vrstice povzetka in podrobna poročila TXT / JSON
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.8
Version 1.39.7
- Dodana je
Lib\FPdfPreflightReport.pas, ponovno uporaben pomočnik za poročila, ki v en objektTPdfPreflightReportzdružiValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRinValidatePdfVT - Dodana je
Demo\Delphi\PreflightReport, vzorec poteka, ki odpre ali ustvari PDF, izbere ciljne standarde, predogleda vrstice povzetka in priporočila za težave ter shrani poročila TXT ali HTML - Ustvarjena poročila izrecno opišejo vgrajeno mejo preverjanja na ravni označevalcev, tako da jih lahko aplikacije po potrebi združijo z namenskim orodjem za preflight na ravni vsebine
TPdf.AboutInfo, metapodatki paketa Lazarus, seznami projektov paketov in metapodatki različice namestitvenega programa zdaj poročajo 1.39.7
Version 1.39.6
- Dodana je
Demo\Delphi\SearchAndSelect, osredotočen vzorec poteka pregledovalnika za označevanje iskanja, izbiro besedila, predogled izbranega besedila, kopiranje, brisanje in načine prikaza razprtja - Vzorec prikazuje
HighlightSearchText, možnosti iskanja match-case / whole-word,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboardinClearSelectionbrez dodajanja novega API knjižnice TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.6
Version 1.39.5
Demo\Delphi\ViewerInteractionLabje razširjen v vzorec uporabniške izkušnje pregledovalnika tipa SearchAndSelect sHighlightSearchText, možnostmi match-case / whole-word, predogledom izbranega besedila in obstoječimi kontrolami izbire / odložiščaDemo\Delphi\PrintDialogje razširjen za pregled nastavitev tiskanja avtorja PDF:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingin vidno preslikavo dupleksaSetPdfPrintPaperHandlingDevMode- Dodana je
Demo\Delphi\SecurityAudit, vzorec bralne površine tveganja, ki našteje dovoljenja, priloge, document JavaScript, povezave URI / Launch, spletne povezave, podpise, stanje XFA in razpoložljivost pomočnikov V8 / XFA TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.5
Version 1.39.4
- Dodana sta
Demo\CBuilder\ImageToPDFinDemo\Lazarus\ImageToPDF, s čimer je matrika vzorcev ImageToPDF za Delphi, C++Builder in Lazarus dokončana - Nova vzorca prikazujeta izbiro več slik, predogled izbrane slike, eno stran PDF na sliko, velikost strani A4 portrait / landscape, centrirano skaliranje slike, napredek po sliki in odpiranje ustvarjenega PDF po shranjevanju
TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.4
Version 1.39.3
- Dodana je
Demo\CBuilder\BatchExport, ki potek izvažanja več datotek PDF v JPG prinaša v C++Builder poleg obstoječih vzorcev Delphi in Lazarus - Vzorec prikazuje
LoadCustomDocument,IPdfCancellationTokenSource, pretočni vhodTFileStream, napredek po datoteki in po strani, obravnavo preklica, vhode DPI / kakovost / geslo ter odpiranje izhodne mape po končanem delu TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.3
Version 1.39.2
- Dodana je
Demo\Delphi\WatermarkStamp, zagonski vzorec poteka Form XObject, ki ustvari ciljni PDF in ponovno uporabni PDF žiga, nato pa na vsako stran uporabi centrirane vodne žige, žige v zgornjem desnem kotu in oznake številk strani - Vzorec prikazuje
CreateXObjectFromPage,InsertFormObjectFromXObject,TPdfMatrixinFPDFPageObj_SetMatrixbrez dodajanja novega API knjižnice Docs\en-us\Examples.htmlje posodobljen, da pri posredovanju matrik vFPDFPageObj_SetMatrixuporablja trenutni vzorecTPdfMatrix.HandleTPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.2
Version 1.39.1
- Dodana je
Demo\Delphi\ViewerInteractionLab, osredotočen vzorecTPdfViewza načine prikaza, načine prilagajanja, barve strani, vrtenje, izbiro besedila uporabnika, dejanja odložišča in povratne informacije o koordinatahDeviceToPage - Dodana sta
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLab, tako da lahko uporabniki Lazarus izvajajo potek preverjanja in izhoda označevalcev za PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R in PDF/VT - Naštete so standardne enote v
Lib\37.0\PDFiumPas.dprojinLib\FPC\PDFiumLaz.lpkter odpravljena gradnja predstavitvenega programa DelphiSplitViewz odstranitvijo podvojenega uvozaWinapi.ShellAPI - Odpravljene so blokade paketne gradnje demojev Delphi v
BatchExport,PDFViewer,MultiPageViewerinSplitViewbrez spremembe njihovega izvajalnega vedenja - Združljivost paketne gradnje demojev C++Builder v
PDFViewerinMultiPageViewerje odpravljena z zamenjavonullptrzNULLza trenutni način projekta TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.1
Version 1.39.0
- Dodana je
Demo\Delphi\StandardsLab, zagonski vzorec poteka standardov, ki naloži ali ustvari PDF, zaženeValidatePdfA,ValidatePdfUa,ValidatePdfE,ValidatePdfX,ValidatePdfRinValidatePdfVTter v eni mreži prikaže zaznano skladnost, stanje pass/fail in število težav - Gumbi za shranjevanje v StandardsLab kličejo
SaveAsPdfA,SaveAsPdfUa,SaveAsPdfE,SaveAsPdfX,SaveAsPdfRinSaveAsPdfVT, tako da je izhod označevalcev standardov PDF viden brez pisanja lastnega ogrodja TPdf.AboutInfo, metapodatki paketa Lazarus in metapodatki različice namestitvenega programa zdaj poročajo 1.39.0
Version 1.38.0
- Prekrivne plasti iskanja in izbire besedila v
TPdfViewzdaj uporabljajo resnično alfa mešanje namesto logičnega risanja mask, kar ohranja vsebino strani pod poudarki - Dodan je
SetPdfPrintPaperHandlingDevModeza preslikavoTPrintPaperHandlingv vrednostiDEVMODE.dmDuplexsistema Windows:DMDUP_SIMPLEX,DMDUP_HORIZONTALinDMDUP_VERTICAL TPdfView.SmoothScrollzdaj animira ukaze drsnika vrstica/stran v s časovnikom vodenih odsekih; sledenje palici ostane takojšnje- Posodobljena
TPdf.AboutInfoin metapodatki različice namestitvenega programa zdaj poročajo 1.38.0
Version 1.37.0
TPdfzdaj ima zaklep za izris na ravni posameznega primerka, ki serializira potiRenderPage,RenderTile,RenderPageProgressive, ponovnega nalaganja strani in odlaganja dokumenta. Izris, voden z delavcem prek skupne komponente, je zdaj praktičen, medtem ko aplikacije še vedno usklajujejo spreminjanje dokumenta in življenjski cikel- Popravljena je ovojnica bitne slike brez kopiranja, da zavrne postavitve DIB odspodaj-navzgor
TBitmapin se vrne na medpomnilnik v lasti PDFiuma pred kopiranjem ven, s čimer se odpravijo odpovedi zaradi poškodbe koraka ali kršitve dostopa v preizkusih upodabljanja VCL - Zaostreno je obnašanje izbire v
TPdfView:AllowUserTextSelectionomejuje le uporabniški vnos, API-ji za izbiro na ravni kode še vedno rišejo,SelectAllpa sledi dejanskemu vidnemu razponu, tako da naslovna stran ne izbere več strani 2. Testi v Delphiju, Lazarusu in C++Builderju so bili temu ustrezno razširjeni - Posodobljena
TPdf.AboutInfoin metapodatki različice namestitvenega programa zdaj poročata 1.37.0
Version 1.36.0
- Aktivirana je uporabniška izbira besedila v
TPdfView— lastnostAllowUserTextSelection, rezervirana v v1.17.0, zdaj poganja celovit cevovod izbire s povleci-in-spusti. Levi klik na znak besedila vnese način izbire (samodejni preizkus zadetka); levi klik na prazno območje nadaljuje s premikanjem kot prej. Gradnik izpolnjevanja obrazca obdrži prednost, zato klik na polje obrazca še vedno osredotoči polje namesto da bi začel izbiro - Dvoklik izbere besedo, trikratni klik izbere vrstico,
Ctrl+Aizbere trenutno stran (obe strani v načinih prikaza z razponom),Ctrl+Cpa kopirano izbiro shrani v odložišče sistema Windows kotCF_UNICODETEXT Shift+Left/Shift+Rightrazširjata izbiro po en znak naenkrat (v načinu razpona prelivata na sosednjo stran);Shift+Domov/Shift+Endjo razširita do roba vidne vrstice z uporabo višine okvirja semenskega znaka kot tolerance za združevanje vrstice, tako da vrstice z mešanimi velikostmi pisave ostanejo pravilno združene- Lebdenje nad besedilom spremeni kazalec v
crIBeam; odmik z besedila vrne privzeti kazalec. Med vlečenjem izbire besedila premik v 20-pikselno mrtvo območje na katerem koli robu pregledovalnika samodejno drsi stran (50 ms korak, 16 px / korak, omejeno na iste meje, ki jih uporablja pot premikanja), tako da se izbira lahko raztegne čez trenutno vidno območje, ne da bi najprej spustili miško - Navzkrižna izbira deluje v načinih prikaza z razponom (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): vlečenje, ki se začne na levi strani in konča na desni strani, izbere zvezen razpon, ki zajame obe strani.SelectedTextzdruži odrezke po straneh s CR/LF, tako da se ponovno dobljeno besedilo bere kot običajna večvrstična vsebina - Nova objavljena lastnost
SelectionColor(privzetoclHighlight, sistemska barva izbire Windows) — neodvisna odHighlightColor, ki v rumeni barvi obarva rezultate iskanja. Poudarki iskanja in živa izbira s potegom se lahko na zaslonu prikažeta hkrati brez barvnega spora - Nov objavljen dogodek
OnSelectionChangese sproži vsakič, ko se materializirani razponi izbire dejansko spremenijo — nikoli ob enaki ponovni uporabi, zato ga lahko gostiteljske aplikacije neposredno povežejo z besedilom vrstice stanja ali omogočenim stanjem gumbov brez odstranjevanja tresov - Nov javni API na
TPdfView:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. To so vstopne točke na ravni kode in vedno delujejo ne glede naAllowUserTextSelection— zastavica vrata le uporabniški vnos (miška, Ctrl+C, Ctrl+A, Shift+puščice), zato lahko kioski gostitelji onemogočijo uporabniško vodeno izbiro in ob tem še vedno zgradijo gumbe orodne vrstice "Select All / Copy", ki poganjajo isti API - Privzeti pojavní meni desnega klika
Copy/复制se samodejno pripne, kadar gostitelj ni dodelil svojegaPopupMenu— standardno "izberi besedilo, desni klik, kopiraj" deluje takoj. Napis se izbere med angleščino in kitajščino glede naSysLocale.PriLangID; gostitelji, ki potrebujejo polno lokalizacijo (ali bogatejši meni), preprosto dodelijo svojPopupMenuin privzeti se zatira - Izbira se samodejno počisti ob prehodih
SetPdf,SetPageNumber,SetActive(False)inDisplayMode, pri čemer seOnSelectionChangesproži natanko enkrat, ko je bila prejšnja izbira neprazna. Podsistem izpolnjevanja obrazca obdrži prednost — med urejanjem polja obrazca vse tipkovnične bližnjice izbire se odložijo, tako da polje prejmeCtrl+C/Ctrl+A/Shift+puščiceza lastno izbiro - Razširjeni regresijski zbirki Delphi in Lazarus na 202 primera vsaka, zbirka C++Builder pa na 159 primerov, kar pokriva privzete vrednosti, kroženje, obnašanje javnega API-ja, čiščenja ob spremembi stanja, poteg miške (zadetek-besedilo / zadetek-prazno), klik proti potegu, preklop kazalca IBeam, dvojni klik besede, trojni klik vrstice, tipkovne bližnjice, privzeto pripenjanje / odložitev / napis pojavnega menija in razprto izbiro med stranmi — vključno s preverjanjem kroženja CR/LF v odložišču
Version 1.35.0
- Dodana je podpora za vbrizgavanje označevalnika PDF/VT (ISO 16612-2:2010): TPdf.SaveAsPdfVT trenutni dokument pretvori v datoteko, skladno s PDF/VT-1 ali PDF/VT-2 (PDF podnabor za variabilno in transakcijsko tiskanje). PDF/VT temelji na PDF/X-4 — ISO 16612-2 §6.2.1 zahteva, da mora biti vsak PDF/VT-1 dokument tudi skladen s PDF/X-4 — zato vbrizgalnik zapiše celoten nabor označevalnikov PDF/X-4 (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)in/Trapped, katalog/OutputIntentsz navedbo OutputIntent slovarja z vdelanim ICC profilom) skupaj s PDF/VT-specifičnimi lastnostmi - Vbrizgavanje, specifično za PDF/VT, zajema XMP
pdfvtid:GTS_PDFVTVersion(= "PDF/VT-1" ali "PDF/VT-2" po §6.3 Table 2) inpdfvtid:GTS_PDFVTModDate(usklajen sxmp:ModifyDatepo §6.3 NOTE 1), poleg opisa pdfaExtension:schemas, ki razglasi oba imenska prostora pdfxid in pdfvtid (NPES URIhttp://www.npes.org/pdfx/ns/id/inhttp://www.npes.org/pdfvt/ns/id/). Trailer nosi polje/ID - Dodana je TPdf.SaveAsPdfVTToStream za izpis PDF/VT v pomnilnik in bližnjica privzetih možnosti
TPdf.SaveAsPdfVT(FileName), ki izdela PDF/VT-1 z vključenim sRGB IEC61966-2.1 OutputIntentom (3144 bytes, isti profil kot SaveAsPdfA / SaveAsPdfX) in/Trapped /False - Dodana je TPdf.ValidatePdfVT: preveri odprt PDF za oznake skladnosti PDF/VT (prisotnost XMP
pdfvtid:GTS_PDFVTVersioninGTS_PDFVTModDate, ujemanje medpdfvtid:GTS_PDFVTModDateinxmp:ModifyDate, prisotnost osnovnega identifikatorjapdfxid:GTS_PDFXVersion, prisotnost kataloga/DPartRootpo §6.5,/OutputIntentsz/DestOutputProfile, trailer/ID, stanje šifriranja, prisotnostxmp:CreateDate/ModifyDate) in vrne TPdfVTValidationResult z zaznano stopnjo skladnosti in naborom najdenih težav - Dodana je lastnost TPdf.PdfVTConformance: vrne stopnjo skladnosti trenutno odprtega dokumenta (pvc1, pvc2, pvcNone ali pvcUnknown) brez izrecnega klica ValidatePdfVT
- Novi izvoženi tipi v novi enoti FPdfPdfvt: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue, TPdfVTSaveOptions
- Hierarhija dokumentnih delov (
DPartRoot/ drevoDPartpo §6.5) je struktura na ravni aplikacije, ki je odvisna od preslikave prejemnika / obsega strani v poteku tiskanja variabilnih podatkov. SaveAsPdfVT NE ustvari drevesa DPart — ValidatePdfVT manjkajoči/DPartRootizpostavi kotpvviMissingDPartRoot, da lahko klicatelji PDF/VT datoteke usmerijo skozi ločen korak gradnje DPart. Zahteve PDF/X-4 na ravni vsebine (vdelava pisav, prosojnost, ICC vodeno barvno upravljanje, prepovedi OPI / JavaScript / Reference XObject itd.) ostajajo odgovornost avtorja dokumenta in PDFiumove verige upodabljanja - Posodobljen niz TPdf.AboutInfo poroča trenutno različico izdelka
Version 1.34.0
- Dodana je podpora za vbrizgavanje označevalnika PDF/R-1 (ISO 23504-1:2020): TPdf.SaveAsPdfR trenutni dokument pretvori v datoteko, skladno s PDF/R-1 (rasterno-slikovni transportni podnabor PDF za optično prebrane dokumente). Vbrizgavanje zajema zahteve na ravni zapisa datoteke, ki jih je mogoče dodati z naknadno obdelavo — edinstven komentar za identifikacijo različice
%PDF-raster-1.0, zapisan med trailer slovarjem in ključem startxref (§5), katalog zreduciran na beli seznam iz §6.3 (ostanejo samo Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata), Document Information Dictionary zreduciran na beli seznam iz §6.4.3 (ostanejo samo Creator / Producer / CreationDate / ModDate), katalog /Metadata XMP tok, ki nosi štiri vnose iz §6.4.4 Table 1 (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate), in trailer polje/ID - Dodana je TPdf.SaveAsPdfRToStream za izpis PDF/R v pomnilnik in bližnjica privzetih možnosti
TPdf.SaveAsPdfR(FileName)za običajen primer - Dodana je TPdf.ValidatePdfR: preveri odprt PDF za oznake skladnosti PDF/R-1 (komentar v nogi
%PDF-raster-x.y, glavo različice, odsotnost/Type /ObjStm, skladnost s katalogskim belim seznamom, skladnost s seznamom Document Information Dictionary, prisotnost XMP metapodatkovnega toka, trailer/ID) in vrne TPdfRValidationResult z zaznano stopnjo skladnosti in naborom najdenih težav - Dodana je lastnost TPdf.PdfRConformance: vrne stopnjo skladnosti trenutno odprtega dokumenta (prc1, prcNone ali prcUnknown) brez izrecnega klica ValidatePdfR
- Novi izvoženi tipi v novi enoti FPdfPdfr: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue, TPdfRSaveOptions.
TPdfRSaveOptions.Defaultnastavi StripInfoOptionalEntries in StripCatalogOptionalEntries na True, zato vbrizgalnik privzeto izdela katalog in Info slovar, skladna s §6.3 / §6.4.3; klicatelji lahko te vrednosti nastavijo na False, da ohranijo izvorne vnose (izhod nato ne bo izpolnjeval teh PDF/R klavzul, vendar bodo drugi označevalniki ostali priloženi) - Zahteve na ravni vsebine ostajajo odgovornost izvornega PDF: struktura Contents za vsako stran (§6.5.1), oblika MediaBox
[0 0 w h](§6.5.3), omejitve filtrov (§6.2.2 — samo FlateDecode, CCITTFaxDecode za bitonalno, DCTDecode za 8-bitno sivo/RGB), odsotnost objektnih tokov (§6.2.4) in postavitev stripov po §6.6. Tega ni mogoče uveljaviti z naknadno obdelavo — PDF/R je strukturno precej strožji podnabor kot drugi standardi PDF/x in zahteva pravilno generiranje izvornih bajtov. ValidatePdfR izpostavi težave zapisa datoteke, ki jih ta enota lahko zazna; za popoln pregled na ravni vsebine jo združite z validatorjem PDF/R združenja TWAIN Working Group - Posodobljen niz TPdf.AboutInfo poroča trenutno različico izdelka
Version 1.33.0
- Dodana je podpora za vbrizgavanje označevalnika PDF/X (družina ISO 15930): TPdf.SaveAsPdfX trenutni dokument pretvori v datoteko, skladno s PDF/X-1a:2001, PDF/X-3:2002 ali PDF/X-4, z naknadno obdelavo osnovnega PDF z inkrementalno posodobitvijo. Vbrizgavanje zajema zahteve na ravni zapisa datoteke, ki jih je mogoče dodati z naknadno obdelavo — XMP metapodatkovni tok z
pdfxid:GTS_PDFXVersion(inpdfxid:GTS_PDFXConformanceza PDF/X-1a / PDF/X-3) ter ujemajočim opisom pdfaExtension:schemas, ponovno zapisan Document Information Dictionary z vnosi/GTS_PDFXVersion,/GTS_PDFXConformancein/Trapped, posodobljen katalog z/OutputIntents [N 0 R], ki se sklicuje na OutputIntent slovar s/S /GTS_PDFXin vdelanim ICC profilom, ter trailer polje/ID - Dodana je TPdf.SaveAsPdfXToStream za izpis PDF/X v pomnilnik in bližnjica privzetih možnosti
TPdf.SaveAsPdfX(FileName), ki izdela PDF/X-4 z vgrajenim sRGB IEC61966-2.1 OutputIntentom (3144 bytes, enak profil kot SaveAsPdfA) - Dodana je TPdf.ValidatePdfX: preveri odprt PDF za oznake skladnosti PDF/X (identifikator XMP pdfxid in ujemanje z vrednostjo v Info slovarju, opis razširitvene sheme pdfxid, polje /OutputIntents z /DestOutputProfile, prisotnost Title, trailer
/ID, stanje šifriranja, prisotnostxmp:CreateDate/xmp:ModifyDate) in vrne TPdfXValidationResult z zaznano stopnjo in naborom najdenih težav - Dodana je lastnost TPdf.PdfXConformance: vrne stopnjo skladnosti trenutno odprtega dokumenta (pxc1a, pxc3, pxc4, pxcNone ali pxcUnknown) brez izrecnega klica ValidatePdfX. Niz različice XMP je razčlenjen, da se loči med tremi stopnjami skladnosti
- Novi izvoženi tipi v novi enoti FPdfPdfx: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue, TPdfXSaveOptions.
TPdfXSaveOptions.Defaultcilja PDF/X-4 s sRGB OutputIntentom in/Trapped /False; klicatelji lahko prepišejoConformance, podajo CMYKIccProfileDatablob za komercialne tiskarske poteke ali spremenijoOutputCondition/OutputConditionIdentifier/RegistryName, da kažejo na določen vnos registra karakterizacije ICC (na primer FOGRA39, GRACoL2006_Coated1v2) - Zahteve na ravni vsebine (vse pisave vdelane, brez JavaScript, brez vidnih opomb, prepoved OPI, pravila prosojnosti za PDF/X-1a / PDF/X-3 itd.) ostajajo odgovornost avtorja dokumenta in PDFiumove verige upodabljanja. ValidatePdfX združite z orodjem za preflight, kot sta callas pdfaPilot ali Ghent PDF Workgroup Output Suite, za popolno preverjanje skladnosti
- Posodobljen niz TPdf.AboutInfo poroča trenutno različico izdelka
Version 1.32.0
- Dodana je podpora za vbrizgavanje označevalnika PDF/E-1 (ISO 24517-1:2008): TPdf.SaveAsPdfE trenutni dokument pretvori v datoteko, skladno s PDF/E-1, z naknadno obdelavo osnovnega PDF z inkrementalno posodobitvijo. Vbrizgavanje zajema zahteve na ravni zapisa datoteke, ki jih je mogoče dodati z naknadno obdelavo — XMP metapodatkovni tok z
pdfe:ISO_PDFEVersion = "PDF/E-1"ter ujemajočim opisom pdfaExtension:schemas, ponovno zapisan Document Information Dictionary z obveznim vnosom/ISO_PDFEVersion (PDF/E-1), zahtevanim v §5, premostitvenimi bloki Info-XMP, podedovanimi iz ISO 19005-1 §6.7 prek §13.1 (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool), in trailer poljem/ID, zahtevanim v §6.2 - Dodana je TPdf.SaveAsPdfEToStream za izpis PDF/E v pomnilnik in bližnjica privzetih možnosti
TPdf.SaveAsPdfE(FileName)za običajen primer - Dodana je TPdf.ValidatePdfE: preveri odprt PDF za oznake skladnosti PDF/E-1 (prisotnost XMP pdfe:ISO_PDFEVersion in ujemanje z vrednostjo v Info slovarju, opis razširitvene sheme pdfe, vnos /ISO_PDFEVersion v Info slovarju, trailer
/ID, prisotnostxmp:CreateDate/xmp:ModifyDate) in vrne strukturiran rezultat z zaznano stopnjo skladnosti in naborom najdenih težav - Dodana je lastnost TPdf.PdfEConformance: vrne stopnjo skladnosti trenutno odprtega dokumenta (pec1, pecNone ali pecUnknown) brez izrecnega klica ValidatePdfE
- Novi izvoženi tipi v novi enoti FPdfPdfe: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue, TPdfESaveOptions
- Prepis Document Information Dictionary je pri poti PDF/x naknadne obdelave novost za PDFiumPas — obstoječi Info objekt prepiše z isto številko objekta (tako ostaneta subsekcija xref / trailer /Info veljavna) in ustvari nov Info slovar, kadar izvorni trailer nima vnosa /Info. Sam PDFium v vsakem izhodu SaveAs že ustvari Info slovar, zato je prepis najpogostejši primer
- Zahteve na ravni vsebine (vdelava pisav, ToUnicode CMaps, prepovedani XObjects / ExtGState ključi / XFA obrazci itd.) ostajajo odgovornost avtorja dokumenta — SaveAsPdfE pritrdi označevalnike zapisa datoteke, vendar ne spremeni vsebine strani in ne odstrani prepovedanih funkcij
- Posodobljen niz TPdf.AboutInfo poroča trenutno različico izdelka
Version 1.31.0
- Dodana je podpora za vbrizgavanje označevalnika PDF/UA-1 (ISO 14289-1:2014): TPdf.SaveAsPdfUa trenutni dokument pretvori v datoteko, skladno s PDF/UA-1, z naknadno obdelavo osnovnega PDF z inkrementalno posodobitvijo. Vbrizgavanje zajema zahteve na ravni zapisa datoteke, ki jih je mogoče uveljaviti z naknadno obdelavo — XMP metapodatkovni tok z
pdfuaid:part = 1ter ujemajočim opisom pdfaExtension:schemas, obveznidc:title, katalog/MarkInfo << /Marked true /Suspects false >>in/ViewerPreferences << /DisplayDocTitle true >>(samo kadar ju izvor nima), katalog/Lang(ko klicatelj poda oznako BCP 47) in trailer polje/ID - Dodana je TPdf.SaveAsPdfUaToStream za izpis PDF/UA v pomnilnik in bližnjica privzetih možnosti
TPdf.SaveAsPdfUa(FileName)za običajen primer - Dodana je TPdf.ValidatePdfUa: preveri odprt PDF za oznake skladnosti PDF/UA-1 (obstoj StructTreeRoot, /Lang, /MarkInfo /Marked true z /Suspects = false, /ViewerPreferences /DisplayDocTitle true, identifikator XMP pdfuaid:part, prisotnost dc:title, trailer
/ID, stanje šifriranja) in vrne strukturiran rezultat z zaznano stopnjo skladnosti in naborom najdenih težav - Dodana je lastnost TPdf.PdfUaConformance: vrne stopnjo skladnosti trenutno odprtega dokumenta (puc1, pucNone ali pucUnknown) brez izrecnega klica ValidatePdfUa
- Novi izvoženi tipi v novi enoti FPdfPdfua: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue, TPdfUaSaveOptions
- Polja Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language, ki v TPdfUaSaveOptions ostanejo prazna, se samodejno napolnijo iz FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, zato lahko obstoječi klicatelji shranijo z eno samo vrstico
- Zahteve na ravni vsebine (popolnost označevanja StructTreeRoot, Alt besedilo Figure, ToUnicode CMaps, vdelava pisav itd.) ostajajo odgovornost avtorja dokumenta — SaveAsPdfUa pritrdi označevalnike zapisa datoteke, vendar ne spremeni vsebine strani in ne izmišljuje oznak. ValidatePdfUa odsotnost StructTreeRoot izpostavi kot
pvuaiMissingStructTreeRoot, da lahko klicatelji neoznačene dokumente usmerijo skozi ločen potek označevanja - Posodobljen niz TPdf.AboutInfo poroča trenutno različico izdelka
Version 1.30.0
- Izhod PDF/A-1b zdaj izpolnjuje zahteve ISO 19005-1 (s Cor.1:2007) za enakovrednost Document Information Dictionary / XMP: vsak vnos Info slovarja, ki ga PDFium zapiše v osnovni PDF, se preslika v XMP paket, vključno s Title (dc:title), Author (dc:creator), Subject (dc:description po Cor.1), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) in ModDate (xmp:ModifyDate). Izdaja se tudi xmp:MetadataDate
- Trailer PDF/A dokumenta zdaj vedno vsebuje polje
/ID(stroga zahteva ISO 19005-1 6.1.3). Ko TPdf.SaveAsPdfA obdela dokument, katerega izvor že ima identifikator datoteke, se obstoječa 16-bajtna trajna in spreminjajoča se ID-ja znova uporabita; sicer se iz izvornih bajtov izpelje determinističen 16-bajtni nadomestni ID - Vbrizgani XMP zdaj vgradi opis razširitvene sheme pdfaid, zahtevan v ISO 19005-1 6.7.8 (nadomeščen s Cor.1) — pdfaid se glede na XMP Specification 2004 obravnava kot razširitvena shema, zato morajo vse skladne datoteke v vsebniku pdfaExtension:schemas prijaviti imena svojih lastnosti, vrste vrednosti in kategorije
- TPdfASaveOptions je dobil pet novih izbirnih polj: Producer, CreationDate, ModDate (PDF datum nizov v obliki “D:YYYYMMDDHHmmSSOHH'mm'”), DocumentId in InstanceId (16-bajtna niza bajtov za trailer polje
/ID). TPdf.SaveAsPdfA / SaveAsPdfAToStream manjkajoča polja samodejno napolnita iz FPDF_GetMetaText in FPDF_GetFileIdentifier, zato obstoječi klicatelji delujejo brez sprememb - TPdf.ValidatePdfA / TPdf.PdfAConformance zdaj poročata še tri dodatne težave: pvaiMissingTrailerId (brez
/IDv trailerju), pvaiMissingXmpDates (manjkata xmp:CreateDate ali xmp:ModifyDate) in pvaiMissingExtensionSchema (opis razširitvene sheme pdfaid manjka) - Ne-ASCII znaki v Title, Author, Subject, Keywords, Creator in Producer so zdaj v XMP paketu kodirani kot UTF-8 (XMP Specification zahteva UTF-8), kar ohrani kroženje večjezičnih metapodatkov skozi SaveAsPdfA
- Posodobljen niz TPdf.AboutInfo poroča trenutno različico izdelka
Version 1.29.0
- Osveženi priloženi DLL-i PDFium (Win32 in Win64, standardna in V8 gradnja) na stanje iz nadgradnje 2026-05-22, s čimer so prevzeti popravki poti zrušitve FPDFText_SetText / FPDFText_SetCharcodes in razna notranja utrjevanja iz projekta PDFium
- V FPdfPageOps.pas je izpostavljena nova zastavica shranjevanja PDFium FPDF_SUBSET_NEW_FONTS, ki klicateljem FPDF_SaveAsCopy omogoča zahtevati samodejno podskupinjenje vdelanih datotek pisav za novo dodane besedilne objekte. Obstoječi konstanti FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL in FPDF_REMOVE_SECURITY sta zdaj definirani z izvirno obliko bitnega zamika (stara numerična vrednost 3 je ohranjena kot FPDF_REMOVE_SECURITY_DEPRECATED zaradi binarne združljivosti)
- Dodan je enum FPDF_FONT_BACKEND_TYPE (FREETYPE / FONTATIONS) in ustrezno polje m_FontLibraryType v FPDF_LIBRARY_CONFIG v FPdfView.pas, tako da lahko aplikacije, ki PDFium inicializirajo z upodabljalnikom Skia, ob zagonu izberejo zaledje pisav
- Podpis TFPDFPage_InsertObject je usklajen z izvirnikom: C funkcija zdaj vrača FPDF_BOOL (TRUE ob uspehu, FALSE če je page_object NULL ali prenos lastništva ne uspe) namesto void. Obstoječi klicatelji PDFiumPas se še naprej prevedejo nespremenjeno, ker Delphi / FPC dovoljujeta ignoriranje vrnjene vrednosti funkcije
- Popravljen je niz TPdf.AboutInfo, da poroča trenutno različico izdelka (ostal je zastarel pri v1.27.0 od dokumentacijske izdaje v1.28.0)
Version 1.28.0
- Notranja dokumentacija na straneh je bila občutno razširjena po celotnem referenčnem vodniku API: vsak vnos za lastnost, metodo, dogodek in globalno funkcijo zdaj vsebuje opis iz treh odstavkov, seznam Remarks, večvrstični Delphi Example in bogatejši blok See Also — pokrite so več kot 200 prej skopo opisanih strani, vključno z vsemi števci TPdf, pridobivanjem metapodatkov, dostopi do pisav in znakov, lastnostmi na ravni strani, indeksiranimi zapisi, metodami na ravni dokumenta in celotnim površjem stanja / prikaza / dogodkov TPdfView
- Postavitev pomoči je bila natančno prilagojena skupni vizualni osnovi losLab: usklajene so velikosti h1/h2, slogi mreže za krmarjenje API so združeni v skupni StyleSheet, in odstranjeni so bili vdelani slogi CSS po posameznih straneh na Navigation.html
- Dokumentacija zdaj vključuje pomožni skript (Docs\Build-Expand-Entries.ps1), ki iz ene same podatkovne tabele znova ustvari obogatitev strani vnosov za ponovljivo vzdrževanje
Version 1.27.0
- Dodana je podpora za ustvarjanje PDF/A-1b: TPdf.SaveAsPdfA shrani vsak odprt dokument kot datoteko, skladno s PDF/A-1b, z naknadno obdelavo osnovnega PDF z inkrementalno posodobitvijo, ki vstavi XMP metapodatkovni tok, sRGB ICC OutputIntent in posodobljen katalog dokumenta — vse brez dodatnih API-jev DLL. Deluje na vsaki platformi, ki jo podpira PDFiumPas
- Dodana je TPdf.SaveAsPdfAToStream za izpis PDF/A v pomnilnik
- Dodana je TPdf.ValidatePdfA: preveri odprt PDF za skladnost s PDF/A (oznake XMP pdfaid, OutputIntent z vdelanim ICC profilom, šifriranje) in vrne strukturiran rezultat z zaznano stopnjo skladnosti in naborom najdenih specifičnih težav
- Dodana je lastnost TPdf.PdfAConformance: vrne stopnjo skladnosti trenutno odprtega dokumenta (pac1b, pac1a, pac2b, pac3b, pacNone ali pacUnknown) brez izrecnega klica ValidatePdfA
- Izvoženi so novi tipi: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue, TPdfASaveOptions (v novi enoti FPdfPdfa.pas)
- SaveAsPdfA prek TPdfASaveOptions.IccProfileData podpira prilagojen ICC profil; kadar je to polje prazno, se samodejno uporabi vgrajeni profil sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes)
- Monolitni HTML referenčni priročnik je zamenjan s preoblikovanim spletnim sistemom pomoči: 302 posameznih strani z vnosi API (ena na lastnost, metodo, dogodek in globalno funkcijo) za TPdf in TPdfView, vsaka z opisom, tabelo parametrov, Delphi primerom kode in povezavami See Also
- Dodana je Navigation.html: obsežen enostranski indeks za krmarjenje po API, razdeljen v šest odsekov (lastnosti/metode/dogodki TPdf, lastnosti/metode/dogodki TPdfView, globalne funkcije) s 5-stolpčno mrežo flex za hitro pregledovanje
- TPdf.html in TPdfView.html sta ponovno zgrajena kot zgoščeni strani s pregledom komponent, ki ohranjata odseke sklicev na tipe (Types, Constants, Global Variables) in povezujeta na posamezne strani vnosov za vse člane
- Dodano je celotno besedilno iskanje, ki ga poganja Search.js, z inkrementalnim ujemanjem na strani odjemalca čez vseh 312 indeksiranih strani
- Vse navigacijske vrstice po spletišču so posodobljene tako, da kažejo na Navigation.html
Version 1.26.0
- Dodan je Demo/Lazarus/BatchExport, LCL prenos Delphi demoja BatchExport iz v1.14.0. Enak nabor funkcij: izvoz več datotek PDF -> JPG z napredkom na ravni celotne datoteke, trenutnim napredkom na ravni strani, vnosi za DPI / kakovost / geslo in paketom, ki ga je mogoče sodelovalno preklicati, podprtim z IPdfCancellationToken. Ko se ekstrakcija uspešno konča, se izhodna mapa odpre v sistemskem upravljalniku datotek
Version 1.25.0
- Dodana je ponovna uporaba strani Form XObject v TPdf, kar omogoča poteke vodnih žigov, prekrivanja predlog in “žigosanje ene strani na več strani”: CreateXObjectFromPage izdela ponovno uporaben ročaj iz katere koli strani drugega dokumenta; InsertFormObjectFromXObject vstavi EN izvod zavite strani v trenutno stran. Vrne vstavljeni FPDF_PAGEOBJECT, tako da ga lahko klicatelj postavi / pomanjša / zavrti z FPDFPageObj_SetMatrix in pomočniki TPdfMatrix iz v1.9.0
- Nova razredna zgradba TPdfXObject v Pascalu ovije ročaj FPDF_XOBJECT iz PDFium in ga samodejno zapre v destruktorju, s čimer odpade ročno postopanje FPDF_CloseXObject
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 147 primerov vsaka, zbirka C++Builder pa na 123 primerov, kar pokriva ustvarjanje ročajev in pogodbe vstavljanja page-objecta
Version 1.24.0
- Dodana je TPdf.RenderPageProgressive — preklicljiva različica RenderPage, ki poganja PDFiumov progresivni krog upodabljanja in med iteracijami preverja IPdfCancellationToken iz v1.7.0, tako da se dolgi visokoločljivi upodobitvi lahko prekinejo sredi strani namesto da bi klicatelja blokirali do konca
- Vrne vrednost TPdfProgressiveStatus: prsDone, prsCancelled ali prsFailed. AToken = nil pomeni, da se upodobitev izvede do konca brez premora (prsCancelled ni mogoč)
- Uporablja isto pot brez kopiranja, uvedeno v v1.21.0 — PDFium neposredno upodablja v DIB ciljnega TBitmap. Enaka stara rezerva velja, kadar DIB ni mogoče oviti
- Razširjeni regresijski zbirki Delphi in Lazarus na 145 primerov vsaka, zbirka C++Builder na 121 primerov, kar pokriva nil-token (konča), predhodno preklican token (prsCancelled) in slikovno enakost s sinhronim RenderPage na živem tokenu
Version 1.23.0
- Dodanih je šest novih metod TPdfView, ki aplikacijam razkrijejo PDFiumov izbor besedila v obrazčnem gradniku in Undo/Redo: GetSelectedFormText vrne trenutno izbrano besedilo v osredotočenem obrazčnem gradniku; SelectAllFormText izbere vsak znak; FormUndo / FormRedo / FormCanUndo / FormCanRedo upravljajo zgodovino urejanja osredotočenega gradnika. Osnovni PDFium API-ji so bili že vezani, vendar ni bilo vstopne točke na visoki ravni. Vseh šest se varno prekine, kadar pregledovalnik ni dejaven ali dokument nima osredotočenega AcroForm gradnika
- Razširjeni regresijski zbirki Delphi in Lazarus na 142 primerov vsaka, zbirka C++Builder na 119 primerov, kar pokriva pogodbo brez-obrazca-brez-osredotočenja za vsako novo metodo
Version 1.22.0
- Dodane so ovojnice za sestavljanje strani v TPdf: ImportPagesByIndex uporablja ničelno indeksirano polje, da kopira določene strani iz izvornega dokumenta; ImportNPagesToOne vrne povsem nov TPdf, katerega strani so N-up sestavljeni izvodi tega dokumenta; MovePages preuredi strani na mestu. Osnovni PDFium API-ji so bili že vezani, vendar ni bilo vstopne točke, prijazne Pascalu
- ImportPagesByIndex sprejme prazno polje, da uvozi vsako izvorno stran (kar je enakovredno posredovanju nil na ravni C ABI)
- Razširjeni regresijski zbirki Delphi in Lazarus na 136 primerov vsaka, zbirka C++Builder na 115 primerov, kar pokriva uvoz podmnožice, uvoz celotnega dokumenta, preurejanje strani in N-up sestavljeni izvod
Version 1.21.0
- Izboljšana je zmogljivost upodabljanja s preklopom TPdf.RenderPage / TPdf.RenderTile (in ustreznih pomočnikov TPdfView) na pot izpisa brez kopiranja. PDFium zdaj piše neposredno v DIB medpomnilnik ciljnega TBitmap namesto v notranji medpomnilnik, ki je bil nato kopiran vrstico za vrstico, kar pri vsaki upodobitvi prihrani en pomnilniški prenos širina x višina x 4 bajte. Izboljšava je najbolj opazna pri visoki DPI (sličicni paneli, izvoz za tiskarsko kakovost, paketni izvoz)
- Stara pot po posameznih vrsticah je ohranjena kot varnostna rezerva za malo verjeten primer, ko ciljnega DIB ni mogoče oviti (skrajne dimenzije, nenavadna širina koraka, OOM). Obnašanje je med obema potema bajtno enako, le rezerva je počasnejša
- Razširjeni regresijski zbirki Delphi in Lazarus na 132 primerov vsaka, zbirka C++Builder na 112 primerov, kar pokriva nadgradnjo klicateljevega bitmapa na pf32bit, kroženje dimenzij in preizkus zdrave širine koraka pri velikem bitmapu
Version 1.20.0
- Dodano je označevanje rezultatov iskanja v TPdfView: HighlightSearchText(Text, MatchCase, MatchWholeWord) pregleda trenutno stran pogleda in vrne število najdenih zadetkov, pri vsakem prerisu pa čez vsak zadetek nariše masko HighlightColor. ClearHighlight odstrani poudarke; preklop pogleda na drugo stran jih samodejno počisti, ker so zadetki vezani na stran
- HighlightColor je privzeto clYellow in je objavljen, tako da lahko aplikacije poudarek prilagodijo svoji UI paleti
- Razširjeni regresijski zbirki Delphi in Lazarus na 129 primerov vsaka, zbirka C++Builder na 109 primerov, kar pokriva privzeto barvo, kroženje barve, “resnične ujemajoče se besede vzorca” proti nizu sample.pdf in pogodbo “manjkajoča beseda vrne nič zadetkov”
Version 1.19.0
- Dodana je lastnost FitMode v TPdfView s štirimi vrednostmi: pfmNone (ročni zoom), pfmActualSize (100%), pfmFitPage (celotna stran se prilega v izrisno površino) in pfmFitWidth (širina strani se ujema s širino izrisne površine). Aktivni način prileganja se samodejno znova uporabi ob Resize in ob spremembi trenutne strani, zato dolgi dokumenti z mešanimi velikostmi strani ostanejo popolnoma uokvirjeni
- Neposredna nastavitev Zoom prekliče aktivni način prileganja (FitMode se vrne v pfmNone), kar sledi običajni konvenciji pregledovalnikov PDF, kjer vnos vrednosti zooma pomeni izhod iz Fit Page / Fit Width
- Privzeta vrednost je pfmNone, zato obstoječe aplikacije ohranijo svoje obnašanje z eksplicitnim zoomom
- Razširjeni regresijski zbirki Delphi in Lazarus na 124 primerov vsaka, zbirka C++Builder na 106 primerov, kar pokriva privzeto vrednost, kroženje načina, fit-page, ki na naloženem dokumentu ustvari pravi zoom, in ročni zoom, ki prekliče način prileganja
Version 1.18.0
- Dodana je lastnost PageColor v TPdfView, ki loči ozadje izrisane PDF strani od barve okoliškega kontrolnika Color. Privzeta je clWhite, zato se PDF strani zdaj izrisujejo kot papirnato bele ne glede na temo gostiteljske aplikacije. Pregledovalniki v temnem načinu lahko zdaj ohranijo drsno območje temno, medtem ko dejanska PDF stran ostane bela (ali katera koli barva, ki jo izbere aplikacija)
- Sprememba obnašanja: aplikacije, ki so prej nastavile TPdfView.Color za prebarvanje PDF strani, naj zdaj nastavijo PageColor. Privzeta izkušnja je boljša za običajen primer (bele strani na tematskih ozadjih kontrolnikov) brez kakršnekoli spremembe kode
- Razširjeni regresijski zbirki Delphi in Lazarus na 120 primerov vsaka, zbirka C++Builder na 103 primere, kar pokriva privzeto vrednost in kroženje barve
Version 1.17.0
- Dodani so preklopi za zaklepanje uporabniškega vnosa v TPdfView, tako da lahko aplikacije, ki pregledovalnik vgrajujejo v kioske, podokna za predogled ali samo-bralne kontekste, onemogočijo navigacijske geste brez podrazvrščanja: AllowUserPageChange upravlja nove tipkovne bližnjice PgUp / PgDn / Ctrl+Home / Ctrl+End; ChangePageOnMouseScrolling upravlja nove skoke strani z miškinim koleščkom navzgor / navzdol; AllowUserTextSelection je rezerviran za prihodnjo pot izbire besedila z vlečenjem miške. Vse tri so privzeto True, zato obstoječe aplikacije nadgradijo brez spremembe obnašanja
- Navigacija po straneh z miškinim koleščkom preskoči Ctrl+wheel, tako da lahko aplikacije Ctrl+wheel ohranijo za zoom
- Razširjeni regresijski zbirki Delphi in Lazarus na 118 primerov vsaka, zbirka C++Builder na 101 primer, kar pokriva privzete vrednosti in kroženje preklopov
Version 1.16.2
- Razširjeno je regresijsko pokritje TPdfView za klike na povezave opomb, kadar se stran pregledovalnika razlikuje od povezane strani TPdf, z uporabo resnične poti klika miške brez uporabniškega vmesnika čez Delphi, Lazarus in C++Builder
- Regresijski zbirki Delphi in Lazarus zdaj izvajata po 114 primerov, C++Builder pa 99 primerov
Version 1.16.1
- Popravljeno je obravnavanje klikov povezav v TPdfView, tako da samodejna dejanja za opombe in spletne povezave uporabljajo stran, ki jo pregledovalnik trenutno prikazuje, tudi kadar je povezani komponenti TPdf dodeljena druga stran
- TPdfThumbnailView je utrjen proti visečim referencam Pdf, ko je povezana komponenta TPdf uničena
- Dodano je regresijsko pokritje življenjske dobe reference sličice; zbirki Delphi in Lazarus zdaj izvajata po 113 primerov, C++Builder pa 98 primerov
- README, testna dokumentacija, vsebina iskanja/indeksa HTML Help in generirani izhodi paketov C++ so sinhronizirani s posodobitvami integracije v1.7.0 do v1.16.0
Version 1.16.0
- Dodan je nov Delphi demo PrintDialog (Demo/Delphi/PrintDialog), ki se osredotoča na N-up tiskanje (1 / 2 / 4 / 9 strani na list) s filtriranjem lihe / sode strani, sivinskim upodabljanjem in neobveznimi 1-pikselnimi robovi celic. Namenoma je majhen spremljevalec obstoječemu demu PrintPDF, ki že pokriva predogled, nedavne datoteke, povečavo in skaliranje
Version 1.15.0
- Dodan je nov komponent TPdfThumbnailView (enota FPdfThumbnail), ki v drsnem stranskem podoknu izriše eno sličico strani na vrstico z označevanjem ob prehodu miške in izbiri ter navigacijo s klikom. Zasnovan je tako, da stoji ob TPdfView, da lahko končni uporabniki po dolgih dokumentih brskajo po straneh
- Komponenta je registrirana na zavihku palete losLab skupaj s TPdf in TPdfView; ključne lastnosti so Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor in dogodek OnPageClick
- Razširjeni regresijski zbirki Delphi in Lazarus na 112 primerov vsaka, zbirka C++Builder na 97 primerov, kar pokriva privzete vrednosti, kroženje velikosti sličice, omejevanje skrajnih vrednosti, kroženje barve in dodelitev obdelovalca dogodka
Version 1.14.0
- Dodan je nov Delphi demo BatchExport (Demo/Delphi/BatchExport), ki prikazuje, kako v enem prehodu pretvoriti številne datoteke PDF v JPG z uporabo TPdf.LoadCustomDocument za pretočno nalaganje, IPdfCancellationToken za sodelovalno preklicanje in vrstic napredka za posamezno datoteko ter posamezno stran. Demo uporablja eno instanco TPdf na datoteko (PDFium sam ni varen za niti) in ob uspešno končanem izvažanju odpre izhodno mapo v Raziskovalcu
Version 1.13.0
- V TPdfView je dodana UI prekrivna plast za asinhrono upodabljanje prek treh novih lastnosti: AsyncRendering, LoadingText in LoadingColor. Ko je AsyncRendering True, pot risanja ene strani čez izrisano stran nariše majhen kazalnik “Loading...”, tako da imajo aplikacije, ki za dolge upodobitve uporabljajo svojega delavca, enoten vizualni znak
- Privzete vrednosti ohranijo obstoječe obnašanje: AsyncRendering je False, zato aplikacije, ki te možnosti ne izberejo, ne opazijo vizualne spremembe
- Dokumentacija pojasnjuje, da PDFium sam ni varen za niti — dejansko prelaganje upodabljanja na delavca od klicatelja zahteva, da obdrži en TPdf na delavca; prihajajoči demo paketnega izvoza kaže ta vzorec
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 106 primerov vsaka, zbirka C++Builder na 93 primerov, kar pokriva privzete vrednosti in kroženje treh lastnosti
Version 1.12.0
- V TPdfView je dodano obravnavanje povezav na klik. Nova lastnost LinkOptions nadzoruje samodejno obnašanje za štiri vrste dejanj povezav PDF: goto (skok na stran), URI (ShellExecute), launch (ShellExecute) in vdelani GotoR (rezerviran). Privzete vrednosti omogočijo loAutoGoto in loAutoOpenURI; loAutoLaunch in loAutoEmbeddedGoto ostaneta izklopljena, da naključni klik ne more zagnati poljubnega programa
- Dodana sta dogodka OnAnnotationLinkClick in OnWebLinkClick, ki se sprožita pred katerim koli samodejnim dejanjem in aplikacijam omogočita pregled povezave, označitev kot Handled ali preusmeritev, na primer v varnostni poziv
- Zaznavanje klika na povezavo teče samo, kadar je gib klik in ne vlečenje, pri čemer uporabi svežo sidrno točko MouseDown, tako da geste za premikanje še vedno tečejo skozi obstoječo pot drsenja nespremenjene
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 102 primera vsaka, zbirka C++Builder na 91 primerov, kar pokriva privzete LinkOptions, kroženje nastavitev in dodelitev obdelovalca dogodka
Version 1.11.0
- TPdfView je vizualno dodelan: lastnosti PageShadowSize, PageShadowColor in PageBorderColor narišejo neobvezno senco pod pravokotnikom strani in enopikselni rob okoli njega. Privzete vrednosti ohranijo prejšnji raven videz (PageShadowSize = 0; rob je narisan v privzeti clBlack, vendar se zlije s privzetim belim ozadjem, dokler klicatelj ne spremeni barv)
- Dodana je lastnost SmoothScroll kot izbirni preklop za prihodnjo inkrementalno animacijo drsenja; lastnost se danes vrača iz kroženja in je priključena tako, da lahko aplikacije trajno shranijo to nastavitev, medtem ko stran za upodabljanje še naprej uporablja obstoječe takojšnje drsenje
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 98 primerov vsaka, zbirka C++Builder na 89 primerov, kar pokriva privzete vrednosti, kroženje lastnosti in omejitev negativne velikosti sence
Version 1.10.0
- Dodan je neposreden vnos slike prek novih preobremenitev TPdf.AddImage in TPdfView.AddImage, ki sprejmeta bodisi pot do datoteke bodisi TBitmap, poleg obstoječega AddPicture na osnovi TPicture. AddImage(FileName) prepozna kateri koli zapis, registriran v grafičnih enotah VCL ali LCL (BMP, PNG prek enote PngImage, JPG itd.) in gre skozi isti cevovod kot AddPicture, zato je obnašanje enako
- AddImage(TBitmap) preskoči vmesni korak TPicture, kar poenostavi klicatelje, ki že imajo TBitmap iz upodabljanja ali paketnega ustvarjanja
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 92 primerov vsaka, zbirka C++Builder na 84 primerov, kar pokriva vstavljanje bitne slike, meje page-objecta, zavrnitev nil bitmapa in nalaganje datoteke BMP
Version 1.9.0
- Dodana je podpora za transformacijsko matriko na višji ravni prek novega razreda TPdfMatrix v enoti FPdfMatrix. TPdfMatrix ovije PDFiumov FS_MATRIX z objektno usmerjenim API-jem za Translate, Scale, Rotate, HorizontalFlip, VerticalFlip, CentralFlip, Skew in Multiply, kar je primerno za sestavljanje transformacij pred predajo funkciji FPDFPageObj_SetMatrix in podobnim PDFium API-jem
- TPdfMatrix.Multiply pravilno posname vseh šest elementov matrike, preden izračuna nove vrednosti vrstic, s čimer popravi prikrito težavo, kjer alternativne Pascalove izvedbe med istim klicem prepišejo prejšnje elemente in ustvarijo napačne rezultate pri katerem koli sestavljanju, ki presega goli premik
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 88 primerov vsaka, zbirka C++Builder na 81 primerov, kar pokriva identiteto, ponastavitev, translate / scale / flip, vrstni red post-multiplikativnega sestavljanja in regresijski primer Multiply
Version 1.8.0
- Dodano je nalaganje toka na zahtevo prek nove metode TPdf.LoadCustomDocument(AStream, AOwnsStream) in pomožnega razreda TPdfStreamAdapter, podprto s PDFiumovim FPDF_LoadCustomDocument. PDFium zdaj bere bloke iz podanega TStream le, kadar je to potrebno, zato zelo veliki ali oddaljeni PDF-ji ne potrebujejo več vnaprejšnje kopije v pomnilnik
- Dodan je neobvezni prevzem lastništva toka: posredovanje AOwnsStream = True prepusti življenjsko dobo TStream razredu TPdf, ki ga sprosti, ko se izvede UnloadDocument
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 79 primerov vsaka, zbirka C++Builder na 75 primerov, kar pokriva pretočno nalaganje prek TFileStream, čiščenje toka v lasti in pogodbo, da tok v zunanjem lastništvu preživi UnloadDocument
Version 1.7.0
- Dodane so sodelovalne asinhrone preklicne gradnike v novi enoti FPdfAsync, ki izpostavlja IPdfCancellationToken / IPdfCancellationTokenSource in ponovno uporabljiv singleton PdfNoCancellationToken, tako da lahko dolgotrajni poteki upodabljanja in izvoza podpirajo čisto semantiko preklica iz uporabniškega vmesnika
- Dodan je lahek pomočnik TPdfFuture<T>, ki požene delavca v ozadju in ovojnico TPdfFutureResult<T> pošlje nazaj v glavno nit, pri čemer razlikuje primere uspeha, preklica in napake
- Regresijski zbirki Delphi in Lazarus sta razširjeni na 76 primerov vsaka, zbirka C++Builder na 73 primerov, s skupnim pokritjem stanja preklica, idempotentnega preklica, razpršitve povratnih klicev in registracije po preklicu
Version 1.6.10
- Dodan je visokonivojski dostop TPdf.PrintPageRanges do obsega strani za tiskanje iz nastavitve PDF pregledovalnika, ki za aplikacijsko kodo vrača obsege strani z enobaznim oštevilčenjem
- Dodani so TPdf.SetFormFieldFlags / SetFormFieldFlagsAt in ustrezni pomočniki TPdfView, tako da lahko aplikacije prek javnega API-ja posodabljajo zastavice polj AcroForm, vključno s pokritjem zastavic za geslo in večizbirnost
- Utrjeno je ABI pokritje vezav PDFium za FPDF_DWORD v velikosti Windows, povratne klice FPDF_FILEACCESS in polja reže vdelovalnika V8
Version 1.6.9
- Dodane so nizkonivojske vezave za izris Skia za novo izvožena API-ja FPDF_RenderPageSkia in FPDF_FFLDrawSkia v priloženih standardnih in V8 PDFium DLL-jih
- Razširjena so javna preverjanja pokritosti vezav, tako da nalaganje standardne in V8 DLL zdaj preverja vstopne točke za izris Skia poleg obstoječih preverjanj zmožnosti V8/XFA
Version 1.6.8
- Dodana sta TPdf.SetTextPositions in TPdfSingleArray za nastavitev položajev posameznih znakov na obstoječih besedilnih objektih prek novo izvoženega API-ja FPDFText_SetPositions
- FPDFText_SetPositions je povzdignjen v zahtevano vezavo za trenutne priložene DLL-je PDFium, hkrati pa je potrjeno, da vstopne točke za izris Skia ostajajo nedosegljive, ker jih DLL-ji še vedno ne izvažajo
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 65 primerov vsaka s pokritjem položajev besedila
Version 1.6.7
- Dodan je visokonivojski dostop TPdf do dejanj JavaScript name-tree dokumenta, ki prek JavaScriptAction in JavaScriptActions vrača imena dejanj in skripte
- Dodan je TPdf.FileIdentifier za branje trajnih in spreminjajočih se trailer ID-jev kot binarnih TBytes brez PDFiumovega zaključnega bajta
- Dodani so TPdf.PageBox, GetPageBox in SetPageBox za MediaBox, CropBox, BleedBox, TrimBox in ArtBox na trenutni strani
- Potrjeno je, da v trenutnih priloženih DLL-jih PDFium v času izvajanja ostanejo nedosegljive le vstopne točke za izris Skia, ker ti izvozi niso prisotni
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 64 primerov vsaka s pokritjem dokumentnega JavaScript, trailer ID in page-box
Version 1.6.6
- Dana je podpora med izvajanjem za priloženi V8-podprti DLL PDFium. Nastavitev EnableV8Engine pred nalaganjem zdaj izbere pdfium.v8.dll iz drevesa DLLs\Win32 ali DLLs\Win64 in razkrije vezave samo za V8/XFA, kadar jih naloženi DLL ponuja
- Dodani so V8FeaturesAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags in nizkonivojske neobvezne vezave za FPDF_BStr_*, FPDF_GetRecommendedV8Flags in FPDF_GetArrayBufferAllocatorSharedInstance
- FPDFText_SetPositions je narejen neobvezen, tako da se PDFiumPas še naprej nalaga s PDFium DLL-ji, ki tega eksperimentalnega nastavljalnika položajev besedila ne izvažajo
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 61 primerov vsaka s pokritjem zmožnosti standardne DLL in V8 DLL
Version 1.6.5
- Dodano je pregledovanje strukturiranega drevesa označenega PDF prek TPdf.StructureElements in TPdfView.StructureElements, vključno z vrsto elementa, naslovom, nadomestnim besedilom, dejanskim besedilom, razširitvenim besedilom, jezikom, ID-ji označene vsebine, številom otrok in številom atributov
- Dodana je izbira načina tiskanja PDFium za Windows prek TPdfPrintMode in SetPdfPrintMode, ki pokriva EMF, samo besedilo, PostScript, pass-through, image-mask in Type 42 načine tiskanja
- Dodane so nizkonivojske vezave za preostale javne izvoze standardne DLL PDFium, ki pokrivajo dejanja JavaScript, zastavice obrazčnih opomb/barvo pisave, aktivno stanje page-objecta, indeksirano vstavljanje, vrednosti content-mark float, podatke ICC profila slike, odstranjevanje form-objecta in položaje besedila
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 59 primerov vsaka s pokritjem strukturiranega drevesa označenega PDF, načina tiskanja in vezav javnih izvozov
Version 1.6.4
- Posodobljeni so demoji Delphi, C++Builder in Lazarus, tako da po uspešnem ustvarjanju samodejno odprejo ustvarjene PDF-je, izvoženo besedilo/slike in mape za paketni izhod
Version 1.6.3
- Usklajeni regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 56 primerov vsaka s pokritjem GUI TPdfView za pomočnike fit-zoom, kroženje koordinat naprava/stran, preverjanje zadetkov znakov in premikanje z miško skozi kontrolnike pregledovalnika v skritem oknu
- Vzorci TPdfView zdaj uporabljajo izrecno velikost pregledovalnika in podrazrede samo za teste, ki izvajajo zaščitene obravnavalce miške, medtem ko zbirke ostajajo povsem brez vmesnika
Version 1.6.2
- Popravljeno je TPdf.AddPage(0, ...), tako da vstavljena prva stran takoj postane aktivna stran. Obstoječa vzorčna koda še naprej deluje, medtem ko PageNumber po vstavljanju zdaj poroča veljavno enobazno stran
- Sinhronizirana je različica paketa Lazarus in razširjeni so usklajeni regresijski zbirki Delphi, C++Builder in Lazarus na 52 primerov vsaka
Version 1.6.1
- Popravljena je napačna zahteva po najmanjši različici v preverjalniku skladnosti PDF različic iz v1.6.0: dejanje SetState je bilo prerazvrščeno iz PDF 1.5 navzdol na PDF 1.2, skladno s PDF 1.2 Reference 6.9.9. Cilji SaveAs za PDF 1.3 / 1.4, ki vsebujejo dejanja SetState, se zdaj shranijo pravilno namesto da bi bili zavrnjeni
- Dodani so ustrezni leksikalni preizkusi PDF 1.2 po istem odseku specifikacije: dejanja Sound, Movie in NOP ter barvni prostor Separation so zdaj blokirani, kadar je izbrana ciljna različica starejša od PDF 1.2
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 50 primerov vsaka z dodanim pozitivnim preizkusom sprejema PDF 1.4 SetState, ki utrdi popravljeno mejo
Version 1.6.0
- Utrjeni so eksplicitni cilji SaveAs za PDF 1.0 do PDF 1.7 s celotnim preverjalnikom različic in funkcij, ki pokriva celoten časovni trak funkcij od PDF 1.1 do ISO 32000-1. Preverjalnik zdaj blokira shranjevanja, ki vsebujejo vnose slovarja, imena filtrov, podtipe opomb, vrste dejanj, pisave, barvne prostore ali parametre šifriranja, dodane po izbrani ciljni različici. Primeri: JBIG2Decode (1.4+), MarkInfo / Tagged PDF (1.4+), OutputIntents (1.4+), ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+), opombe Polygon / PolyLine / Caret / Screen / Watermark / Redact, šifriranje AES in AES-256 (CFM AESV2 / AESV3), vnosi kataloga Perms / Legal / Requirements / NeedsRendering ter dejanja z omejitvijo različice, kot so JavaScript, Trans, SetState, Rendition, GoToE, GoTo3DView, so zavrnjeni, kadar ciljna različica PDF tega ne more predstavljati
Version 1.5.13
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 49 primerov vsaka, z neposrednim pokritjem zavrnitve barvnih prostorov ICCBased, MarkInfo za Tagged PDF, opomb Polygon, šifriranja AES (V2) in opomb Redact proti ciljem PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6
Version 1.5.12
- Popravljena je naknadna obdelava SaveAs za inkrementalne ponovne zapise kataloga. PDFiumPas zdaj preveri zadnji ponovljeni indirektni objekt, zato se obstoječi preglasi kataloga /Version pravilno zamenjajo pri shranjevanju v izrecno starejšo ciljno različico PDF
- Regresijski zbirki Delphi, C++Builder in Lazarus sta razširjeni na 44 primerov vsaka, z neposrednim pokritjem zamenjave zastarelega kataloga /Version, normalizacije različice kataloga PDF 1.4 in zavrnitve funkcij prosojnosti ter prenosnih zbirk, kadar jih izbrana ciljna različica PDF ne more predstavljati
Version 1.5.11
- Utrjen je različicno označen izpis SaveAs za izrecne cilje PDF 1.3, 1.4, 1.5, 1.6 in 1.7. PDFiumPas zdaj normalizira oznake različice kataloga, ohranja privzeti OpenAction Fit Height varen glede na različico in zavrača novejše funkcije PDF, kadar jih izbrana ciljna različica ne more predstavljati
- Dodano je regresijsko pokritje Delphi, C++Builder in Lazarus, ki shranjuje in znova naloži izrecne datoteke PDF 1.3 do PDF 1.7, preverja končno glavo, privzeti OpenAction Fit Height in prijavljeno različico PDF
Version 1.5.10
- Prešlo se je z možnosti B specifikacije na možnost C z dodajanjem dimnih preizkusov TPdfView v vseh treh zbirkah IDE (Tests.PdfView). Vsaka zbirka zgradi skrit nadrejeni TForm (prek TForm.CreateNew na Pascal straneh in
new TForm(NULL, 0)na strani C++Builder), ponovno nadreji TPdfView, nastavi Active := True in nato preveri kroženje za PageCount, privzeti PageNumber, Zoom, Rotation, DisplayMode ter to, da View.Text ustreza osnovnemu TPdf.Text. Vsaka zbirka IDE zdaj izvaja 39 primerov
Version 1.5.9
- Prešlo se je z možnosti A specifikacije na možnost B z dodajanjem dimnih preizkusov izrisa v vseh treh zbirkah IDE. Vsaka zbirka Tests.Render pokliče TPdf.RenderPage na sample.pdf in preveri tri zanesljive signale namesto preverjanja po bajtih: vrnjeni bitmap se natančno ujema z zahtevano velikostjo slikovnih točk; različni zahtevani velikosti (200x100, 64x256) ustvarita ujemajoča se bitmapa; izrisana stran pa ima vsaj 95% belo ozadje in vsaj 50 (Lazarus: 20) nebelih slikovnih točk, ki označujejo zmehčano besedilo. Vsaka zbirka IDE zdaj izvaja 33 primerov
Version 1.5.8
- Zaključene so izvorne skupine testnega načrta A(2) z dodanimi sedmimi dodatnimi regresijami na posamezno zbirko IDE: TPdf.CreateAnnotation, ki ustvari opombo anHighlight in nato izvede kroženje SaveAs/LoadDocument, bralna pot AcroForm na Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf (FormType je ftAcroForm, FormFieldCount > 0, FlattenAllPages polja zniža na nič) ter tiho pokritje bralne poti za Bookmarks, LinkAnnotationCount in WebLinkCount na dokumentu, ki teh funkcij nima. Vsaka zbirka IDE zdaj izvaja 30 primerov
Version 1.5.7
- Regresijski zbirki Delphi (DUnitX), Lazarus (FPCUnit) in C++Builder (GoogleTest) sta razširjeni s sedmimi novimi regresijami na posamezno zbirko IDE: PdfVersion, PageRotation, iskanje podniza TPdf.FindFirst / FindNext, ujemanje CharacterOrigin / CharacterRectangle z izhodiščem AddText, registracija CreateAttachment ter kroženje SaveAs/LoadDocument in kroženje AddText z naglašenim besedilom, ki preveri, da pot vdelave evropskih TrueType iz v1.3.0 ohrani dodatne kode točk Latin-1
Version 1.5.6
- Shranjeni PDF-ji zdaj dobijo privzeto dejanje odpiranja Fit Height na prvi strani, kadar ni prisoten obstoječi OpenAction, tako da pregledovalniki PDF sprva prikažejo ustvarjene dokumente pri povečavi na višino strani
- Dodano je regresijsko pokritje za ustvarjeni OpenAction in nastavitev Fit Height v Delphi, Lazarus in C++Builder
Version 1.5.5
- Dodani so regresijski preizkusi v zbirkah Delphi (DUnitX), Lazarus (FPCUnit) in C++Builder (GoogleTest) za indeksiran vmesnik za pregled znakov in pisav (TPdf.FontBaseName, FontFamilyName, FontWeight, FontItalicAngle, FontData, FontIsEmbedded, CharacterFontWeight, CharacterAngle). Zbirka Lazarus namerno preskoči FontData, ki trenutno pod FPC povzroči kršitev dostopa v FPDFFont_GetFontData
Version 1.5.4
- Dodan je demo C++Builder Attachment, prenesen iz vzorca Delphi, ki pokriva ustvarjanje PDF-jev, dodajanje, izpis, izločanje, brisanje in shranjevanje vdelanih datotečnih prilog z prikazom podvrste MIME
Version 1.5.3
- Izpostavljen je izračun razprtih strani, ki podpira načine z dvema stranema v TPdfView, kot pomočnik na ravni enote ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). Obnašanje je nespremenjeno; pomočnik naredi pravilo, ki upošteva ovitnico, posamično testabilno brez ustvarjanja pregledovalnika
- Dodani so bili pet regresijskih preizkusov v zbirkah Delphi (DUnitX), Lazarus (FPCUnit) in C++Builder (GoogleTest), ki pokrivajo prazne dokumente, standardno parjenje dveh strani, naslovno stran, ki ostane sama v dmTwoPageContinuousWithCover, pare za naslovno stranjo in obnašanje omejevanja zadnje strani / izven območja
Version 1.5.2
- Dana je podpora za jezik dokumenta prek TPdf.Language, preslikana na vnos /Lang v PDF katalogu
- Dodan je dostop do podvrste MIME priloge prek TPdf.AttachmentType
- V TPdfAnnotationSubtype je dodan anRedact in dodani so pomočniki za odstranjevanje page-objectov za TPdf in TPdfView
- Demoji pregledovalnika in prilog so posodobljeni tako, da ob razpoložljivosti prikažejo nove informacije o jeziku in vrsti priloge
Version 1.5.1
- Dodan je dmTwoPageContinuousWithCover za TPdfView, tako da lahko postavitve pregledovalnika pokažejo prvo stran ločeno in nato nadaljujejo z razprtimi dvo-stranskimi prikazi
- Demoji Delphi, C++Builder in Lazarus MultiPageViewer so posodobljeni tako, da izpostavijo način prikaza dveh strani, ki upošteva naslovnico
Version 1.5.0
- Dodane so avtomatizirane zbirke testov na ravni dimnih preizkusov za Delphi (DUnitX), Lazarus (FPCUnit) in C++Builder (GoogleTest). Vse tri zbirke delijo en sam vzorčni PDF v Tests\TestData in izvajajo enakih sedem primerov, ki pokrivajo nalaganje dokumenta, informacije o strani, izvleček besedila, metapodatke, kroženje Save, preverjanje glave PDF in lastnost Compressed
Version 1.4.3
- Demo FontProperties je nadgrajen tako, da prikazuje API-ja za metapodatke pisav TPdfView in TPdf, vključno z ročaji pisav, velikostjo podatkov pisave in metričnimi podatki znakov
- Dodane so indeksirane lastnosti za pregled znakov in pisav TPdfView, demo FontProperties pa je posodobljen, da poizveduje po metapodatkih pisave besedilnega objekta
Version 1.4.2
- TPdf je dobil indeksirane lastnosti za pregled znakov in pisav za analizo besedila brez potrebe po pregledovalniku. Lastnosti, indeksirane po znaku (CharacterAngle, CharacterFontSize, CharacterFontWeight), poizvedujejo po metričnih podatkih za posamezen znak iz besedilnega toka trenutne strani. Lastnosti, indeksirane po page-objectu (FontAscent, FontBaseName, FontData, FontDescent, FontFamilyName, FontHandle, FontIsEmbedded, FontItalicAngle, FontWeight), poizvedujejo po metapodatkih pisave za vsak besedilni objekt na trenutni strani
- Ne-besedilni page-objecti za vse lastnosti Font* vrnejo varne ničelne ali prazne vrednosti namesto napake, zato je preprosto prečkati vsak page-object in pregledati samo besedilne
- FontBaseName prebere PostScript osnovno ime pisave neposredno namesto vračanja na ime družine pisave, kar daje natančnejši identifikator za vdelane pisave
Version 1.4.1
- Dodani so različici demoja EuropeanText za C++Builder in Lazarus, tako da lahko vse podprte družine IDE preverijo ustvarjanje evropskega naglašenega besedila s sistemskimi pisavami TrueType
- Dodani so različici demoja FormFill za C++Builder in Lazarus, vključno z vzorčnimi obrazčnimi PDF-ji, urejanjem polj, regeneracijo videza, shranjevanjem izpolnjenih dokumentov in poteki sploščenega shranjevanja
Version 1.4.0
- Dodana je podpora za Lazarus / Free Pascal: novi paket PDFiumLaz zagotavlja iste komponente TPdf, TPdfView in povezane komponente pod naborom pripomočkov LCL, s čimer razširi knjižnico na Lazarus IDE in prevajalnik Free Pascal poleg obstoječih paketov Delphi in C++Builder
- Dodane so različice demojev za Lazarus, tako da lahko razvijalci Lazarus raziskujejo vsako funkcijo s poganjljivimi primeri
- Popravljena je težava pri prevajanju Lazarus, kjer so bili pogojni definiciji Free Pascal ovrednoteni skupaj s preverjanji različice prevajalnika Delphi, zaradi česar so gradnje FPC poskušale razreševati imena enot, značilna za Delphi, in so odpovedale
Version 1.3.1
- Potek sploščevanja obrazcev je dokumentiran v kompletu pomoči: GenerateFormAppearances, FlattenPage, FlattenAllPages in povezane konstante FLAT_* / FLATTEN_* so zdaj obravnavani v TPdf, TPdfView, referenci API, matriki funkcij in programskih primerih
- Popravljena je tabela arhitektur na pregledni strani, tako da navaja dejanske vezavne enote, ki so priložene v mapi Lib
Version 1.3.0
- Izboljšana je podpora za evropske znake pri ustvarjanju PDF-jev. TPdf.AddText zdaj pred ustvarjanjem besedilnega objekta naloži in predpomni ujemajočo sistemsko pisavo TrueType, s čimer ohrani naglašene znake iz češčine, francoščine, nemščine, španščine, portugalščine, poljščine in turščine, ki jih vgrajene standardne pisave PDFium ne morejo predstaviti
- Aplikacije, ki so prej za ne-ASCII latinično besedilo prikazovale vprašaje ali nadomestne znake, se bodo zdaj izrisale pravilno brez kakršnekoli spremembe kode. Dodan je demo EuropeanText za prikaz te funkcije
Version 1.2.0
- TPdf je dobil osveževanje videza AcroForm: klic GenerateFormAppearances po spremembi vrednosti FormField[] posodobi videz gradnika, tako da so izpolnjene vrednosti vidne v standardnih pregledovalnikih PDF brez potrebe po interaktivni seji urejanja
- Dodani so pomočniki za sploščevanje obrazcev v TPdf (FlattenPage / FlattenAllPages) in TPdfView (FlattenPage za trenutno stran pogleda). Sploščevanje trajno vgradi izpolnjene vrednosti polj kot navadno vsebino strani in odstrani interaktivno plast obrazca, kar ustvari statičen dokument, ki se dosledno izriše v vseh pregledovalnikih
- Dodan je Demo\Delphi\FormFill za prikaz poteka izpolni-in-shrani ter izpolni-in-splošči z vzorčnim AcroForm PDF
Version 1.1.2
- Dodan je stisk toka PDF ob shranjevanju. Nova lastnost TPdf.Compressed (privzeto omogočena) pri shranjevanju prepiše nestisnjene tokove vsebine v tokove, stisnjene s FlateDecode, kar znatno zmanjša velikost datoteke za programsko ustvarjene PDF-je. Aplikacije, ki potrebujejo navaden nestisnjen izhod, lahko pred klicem SaveAs nastavijo Compressed na False
Version 1.1.1
- Gradnje paketa Win64 ne vključujejo več enot za registracijo ob času načrtovanja, kar prepreči napake med gradnjo, kadar je paket Win64 nameščen v okolje samo za izvajanje
- Nalagalnik DLL PDFium zdaj najprej poišče podmapo aplikacije Win32 ali Win64, pri čemer uporablja standardni imeni pdfium.dll in pdfium.v8.dll, nato pa preide na ravno mapo aplikacije in sistemsko mapo Windows. To ustreza razporeditvi DLL, priloženi paketu komponente, zato je namestitev preprosta
Version 1.1.0
- Popravljena je vizualna napaka obrezovanja v dvostranskem načinu TPdfView: vsebina strani je prehajala čez sredinski razmik, ker sta levi in desni ploščici strani delili en sam pravokotnik za obrezovanje. Vsaka ploščica se zdaj obrezuje neodvisno, tako da vsebina ostane znotraj meje svoje strani
- Izboljšano je sporočilo o napaki za demo Delphi, kadar DLL PDFium ni mogoče najti, z jasnejšim pozivom, ki vsebuje pričakovano ime DLL in lokacijo