PDFiumPas Julkaisutiedot
PDFiumPasin käyttäjälle näkyvien ominaisuuksien, korjausten, katselun parannusten, dokumenttien luonnin, PDF/A-ulostulon, renderöinnin ja dokumentaatiopäivitysten versiohistoria
Viimeisin julkaisu
- Viimeisin versio: 2.57.0; Julkaisupäivä:
Version 2.57.0
Lisätty (Added)
TPdfThumbnailView.Orientationtukee pysty- ja vaaka-suuntaisia pienoiskuvan asetteluja säilyttäen olemassa olevan pystysuuntaisen oletuksenFirstVisiblePageIndex,LastVisiblePageIndexjaEnsureCurrentPageVisiblepaljastavat ja ohjaavat pienoiskuvan näkymää ykkösestä alkavilla sivuindekseillä
Muutettu (Changed)
CurrentPageIndex-arvon muuttaminen vierittää nyt valitun pienoiskuvan näkyviin kummassakin suuntauksessa- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt suuntauksen oletukset, vaihtamisen, näkyvät välit ja valitun sivun näkyvyyden
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.57.0
Version 2.56.2
Muutettu (Changed)
HighlightSearchText,AddSearchTextHighlightjaClearHighlightmitätöivät nyt vain ne laiteruudut, jotka koskivat lisättyjä tai poistettuja hakualueita, sen sijaan että koko katselin maalattaisiin uudelleen- Korostusten korvaaminen samoilla osumilla tai tuplaosumien lisääminen ei enää ajasta tarpeetonta uudelleenmaalausta
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt rajoitetun mitätöinnin, idempotentit päivitykset, tyhjentämisen ja passiivisen näkymän turvallisuuden
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.56.2
Version 2.56.1
Muutettu (Changed)
TPdfThumbnailViewkäyttää nyt uudelleen renderöityjä bitmappeja sivuille, jotka pysyvät näkyvissä uudelleenmaalausten ja vierekkäisten vierityskohtien välillä- Välimuisti säilyttää vain nykyisen näkyvän sivuvälin ja vapauttaa merkinnät tarkasti silloin kun sivut poistuvat tästä välistä, määritetty asiakirja muuttuu tai pienoiskuvan mitat muuttuvat
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt välimuistin uudelleenkäytön, näkymän karsimisen, koon mitätöinnin, asiakirjan korvaamisen ja komponentin tuhoamisen
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.56.1
Version 2.56.0
Lisätty (Added)
TPdfView.CutSelectedFormTextToClipboardjaTPdfView.PasteFormTextFromClipboardtarjoavat Unicode-leikepöydän muokkauksen kohdistetulle muokattavalle lomakewidgetille
Muutettu (Changed)
- Kohdistetut lomake-editorit käsittelevät nyt tavalliset copy-, cut-, paste- ja select-all-näppäinoikotiet ennen tekstinsyötön välittämistä PDFiumille
- Cut ja paste hylkäävät vain luku -kentät ja istunnot ilman lomakkeen täyttö- tai muokkausoikeutta, kun taas cut kopioi onnistuneesti ennen valitun tekstin poistamista
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt ei-kohdistus-, oikotie-edestakaismatka- ja vain luku -hylkäyskäyttäytymisen
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.56.0
Version 2.55.0
Lisätty (Added)
TPdfView.AddSearchTextHighlightlisää yksilöllisiä osumia toiselle hakutermin nykyisen sivun peittokuvaan sallien useiden kyselyjen pysyä korostettuina yhdessä
Muutettu (Changed)
HighlightSearchTextpysyy korvaavana sisääntulopisteenä ja jakaa nyt additiivisen skannerin, kun taas duplikaatti-merkkialueet ohitetaan jaClearHighlightpoistaa koko kertyneen joukon- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt erillisten kyselyiden kertymisen ja duplikaattialueiden tukahduttamisen
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.55.0
Version 2.54.0
Lisätty (Added)
TPdfpaljastaa nyt täydelliset sivuobjektien tilannevedokset, erätyylipäivitykset, affiinit objektimuunnokset, polkusegmentit, leikkauspolket ja Form XObject -lapset- Merkkitarkastus sisältää nyt täyttö- ja piirtovärit, fontin nimen ja liput, löyhät glyph-rajat, tehokkaat matriisit, tekstiobjektikahvat ja merkistä teksti-indeksiin -muunnoksen
- Kommentit kierrättävät nyt reunageometrian sekä normal-, rollover- ja down-ulkoasuvirrat
- Uudet raaka- ja puretut pienoiskuva-aksessorit, sivusisällön ja kommenttien muunnokset sekä
RenderPageWithMatrixtarjoavat suorat edistyneet renderöinti- ja muokkauspolket
Muutettu (Changed)
- Sivuobjektin tyylimuutokset voidaan nyt sitoa yhtenä eränä, jolloin PDFium regeneroi sivusisällön vain kerran
- Matriisirenderöinti käyttää olemassa olevaa zero-copy-bitmappipolkua, kun kohdebitmap-asettelu on yhteensopiva
Version 2.53.1
Korjattu (Fixed)
- Sisäänrakennettu kiinalainen Copy-valikon kuvake käyttää nyt koodauksesta riippumattomia Unicode-koodipisteitä ja näkyy oikein Lazarus-koosteissa
- Vanhemmat Delphi-työkaluketjut voivat kääntää
FPdfAsync-yksikön, kun heidänWinapi.Windows-yksikkönsä jättääGetTickCount64-julistuksen pois
Version 2.53.0
Lisätty (Added)
- Uusi
Tests.ApiCoverage-testikokoelma, joka kattaa julkiset TPdf-API:t, joilla ei aiemmin ollut lainkaan end-to-end-testikattavuutta:GetPageBox/SetPageBox(MediaBox/CropBox luku/kirjoitus, puuttuvan laatikon virheet ja tallennuksen edestakaismatka),FlattenPage/FlattenAllPages(paluuarvo ja sivumäärän säilyminen),GenerateFormAppearances(no-op ei-lomakeasiakirjoilla),SaveAsEncrypted/SaveAsEncryptedToStream(AES-256 salasanalla edestakaisin — varmistaa, että salattu tiedosto kieltäytyy aukeamasta ilman salasanaa ja aukeaa sen kanssa),DeletePage-raja-validointi (sivu 0 ja arvoalueen ulkopuolella nostavatEPdfError), sekä v2.38.0:ssa esitellytHasContents/HasAuthor-kommentin vartijat (varmistaen, ettäDefault(TPdfAnnotation)jättää neFalse-tilaan)
Version 2.52.0
Lisätty (Added)
TPdfView.CopySelectedFormTextToClipboardkopioi tekstivalinnan kohdistetun AcroForm-widgetin sisältä Windows-leikepöydälle muodossaCF_UNICODETEXT
Muutettu (Changed)
- Sivutekstin ja kohdistetun lomakkeen kopiointitoiminnot jakavat nyt saman puolustavan Unicode-leikepöydän kirjoittajan ja jättävät leikepöydän ennalleen, kun heidän valintansa on tyhjä
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt passiiviset tai kohdistamattomat lomakekopiokutsut ja kohdistetun lomakevalinnan edestakaismatkan Windows-leikepöydän kautta
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.52.0
Version 2.51.0
Lisätty (Added)
TPdfView.SelectLineAtvalitsee visuaalisen tekstirivin, joka sisältää ykkösestä alkavan sivun ja nollasta alkavan merkki-indeksin ilman hiirisyötön tarvetta
Muutettu (Changed)
- Ohjelmoitu rivinvalinta, kolmoisklikkauksen valinta ja
Shift+HometaiShift+Endjakavat nyt yhden merkkilaatikko-rivirajamallin - Delphi-, Lazarus- ja C++Builder-testit kattavat nyt vakaan rivivalinnan ja virheelliset sivu- tai merkki-indeksit
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.51.0
Version 2.50.0
Lisätty (Added)
TPdf.LoadDocumenthyväksyy nyt nollasta alkavanIndex- jaCount-ikkunanTBytes-pusuriin sallien upotettujen PDF:ien latautua ilman tilapäisen tavutaulukon osan varaamista
Muutettu (Changed)
- Tavuvälin lataus hylkää negatiiviset tai arvoalueen ulkopuoliset ikkunat ennen asiakirjan tilan muuttamista ja säilyttää olemassa olevat puskuroidut ja lainatun puskurin elinkaaren vaihtoehdot
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt upotettujen PDF-ikkunat ja virheelliset tavuväliargumentit
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.50.0
Version 2.49.1
Lisätty (Added)
TPdfView.FitModetukee nytpfmFitHeight-tilaa nykyisen sivun sovittamiseksi näkyvän näkymän korkeuteen sallien vaakavierityksen tarvittaessa
Korjattu (Fixed)
- Sovitustilat suppenevat nyt sen jälkeen kun vierityspalkin näkyvyyden muutos muuttaa asiakasaluetta pitäen fit-page-, fit-width- ja fit-height-tulokset yhdenmukaisina VCL:n ja LCL:n välillä
- Delphi-, Lazarus- ja C++Builder-katselintestit kattavat nyt
pfmFitHeight-valinnan ja luetteloiden edestakaiset matkat TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.49.1
Version 2.49.0
Lisätty (Added)
- Julkisen PDFium-sidontapinnan kattavuus kattaa nyt kaikki 470 vietävää funktiota tarkastetuissa otsikoissa mukaan lukien liitteen kuvauksen käyttö
FPDFAttachment_SetDescription- jaFPDFAttachment_GetDescription-kutsuilla TPdfpaljastaa nyt liitteiden kuvaukset, ristiviittausten kelpoisuuden, trailerin loppusiirrokset, security-handler-revision, 64-bittisen muistin latauksen, allekirjoitustavuvälit, verkkolinkkitekstivälit sekä laajennetut kuvatietojen, suodattimen, metatietojen ja ICC-profiilin tilannevedokset- Lomakeavustajat tukevat nyt kentän alkuperäistä kohdistusta, kohdistettujen valintavaihtoehtojen kyselyitä ja päivityksiä, hiiren rullan välitystä, kirjoitettavia mustevetoja ja lomakkeen peittokuvia progressiivisen renderöinnin jälkeen
Muutettu (Changed)
FormFieldCount, lomakekenttien indeksit ja sarkainjärjestys kuvaavat nyt vain widget-huomautuksia sen sijaan että ne sisällyttäisivät aiheeseen liittymättömiä sivuhuomautuksia- Päättömät
TPdf-sivut siirtyvät nyt lomakkeen täyttösivun elinkaareen ja pois siitä jotta alkuperäinen kohdistus ja kohdistetun kentän API:t toimivat ilmanTPdfView-komponenttia - Liitteen kuvauksen viennit on portattu ominaisuuksien mukaan niin että vanhempaa PDFium-koontiversiota käyttävät sovellukset voivat silti ladata kirjaston ja tunnistaa puuttuvan ominaisuuden
Korjattu (Fixed)
- Progressiivinen sivun renderöinti piirtää nyt lomakkeen ohjausobjektit kun lomakkeen täyttö on käytössä
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt uudet asiakirjadiagnostiikat, liitteiden kuvaukset, mustepolut, lomakkeen käyttäytymisen, allekirjoitustavuvälit, verkkolinkkivälit ja kuvien metatiedot
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.49.0
Version 2.48.0
Lisätty (Added)
TPdfMatrixpaljastaa nyt tehtaat, kloonauksen ja sijoituksen, äärellisen tilan ja kääntyvyyden diagnostiikan, toleranssiperusteisen vertailun, siirtymän käyttöoikeuden, determinantin raportoinnin ja affiinin hajotelman- Prepend-koostumus, niveliin reagoiva kierto, skaalaus, vinoutus ja käännökset sekä stretch-, contain- ja cover-suorakulkuvaus tukevat paikallisen tilan ja sovitetun asettelun työnkulkuja ilman manuaalista kerroinaritmetiikkaa
- Ei-mutoiva käänteinen käyttöoikeus, käänteinen pistekuvaus, vektori- ja nelikulmiomuunnokset, dynaamiset piste- ja suorakulmaerät, in-place-muunnelmat ja yksivaiheiset muunnetut rajat laajentavat uudelleenkäytettävää geometriapintaa
Muutettu (Changed)
- Siirto, skaalaus ja akselikäännökset päivittävät nyt vain kyseessä olevat kertoimet sen sijaan että ne reititettäisiin yleisen affiinin kertolaskun kautta
- Suorakulmion muunnos normalisoi syötteensä kerran, käyttää erikoistunutta tarkkaa akselisuuntaista polkua mahdollisuuksien mukaan ja laskee yleiset käännetyt rajat ilman väliaikaisia pistetietueita
- Piste- ja suorakulmaerämuunnokset varaavat yhden tulosjoukon tai käyttävät uudelleen kutsujan tallennustilaa, kun taas muunnetut pisterajat kertyvät yhdessä vaiheessa ilman välijoukkoa
Korjattu (Fixed)
- Suorakulkukuvaus hylkää nollakokoiset, äärettömät ja
Single-ylivuotavat tulokset ennen käyttökelvottoman matriisin julkaisemista - Delphi-, Lazarus- ja C++Builder-testit varmistavat nyt koostamisjärjestyksen, niveliin liittyvät invarianssit, käänteiset edestakaiset matkat, sovitetut suorakulmat, hajotelman ja massageometrian käyttäytymisen
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.48.0
Version 2.47.0
Lisätty (Added)
FPdfAsynctarjoaa nyt jäsennellyt peruutussyyt ja -viestit, poistettavat takaisinkutsurekisteröinnit, aikarajaan perustuvat lähteet, peruutusodottamisen ja atomiset try-cancel-toiminnot laajennettujen rajapintojen kautta jotka säilyttävät alkuperäisen API:nTPdfFuture<T>.RunExlisää määritettävän vastauslähetystavan ja työntekijän prioriteetin, kun taas tulostekuoret paljastavat operaatiotunnisteet, arvojen kelpoisuuden, poikkeusluokkien nimet, valmistumisen ajoituksen ja uudelleenkäytettävät valmistumisavustajatTPdfAsyncExecutorlisää uudelleenkäytettävän kiinteän työntekijäallasen jolla on neljä FIFO-prioriteettirataa, valinnainen rajatun jonon vastapaine, peruutettavissa olevat tehtävakahvat, aikarajatietoinen odottaminen, tehtävätilannevedokset, koostetut tilastot ja sulava sammutus
Muutettu (Changed)
- Toistuvat asynkroniset työt voivat käyttää uudelleen työntekijäsaieita ja O(1)-jono-operaatioita sen sijaan että ne loisivat saieen jokaista tehtävää varten, kun taas synkronoitu valmistuminen pysyy saatavilla UI-isännille
- Suorittimen ja futuren virheet säilyttävät poikkeusluokan ja -viestin diagnostiikan, peruutus säilyttää alkuperäisen syynsä ja takaisinkutsupoikkeukset pysyvät eristettyinä työntekijän elinkaaresta ja sammutuksesta
- Delphi-, Lazarus- ja C++Builder-testit kattavat nyt laajennetun peruutus-, future-metatieto-, tehtävähallinta-, vastapaine-, prioriteettijärjestys-, tilasto-, virhe- ja sammutuspinnan
Korjattu (Fixed)
- Rinnakkaiset peruutuksen omistajat saavat nyt deterministisen ensimmäisen kirjoittajan tuloksen sen sijaan että ne luottaisivat erilliseen havainto- ja peruutussekvenssiin
- Pääsaieen tyhjäkäyntiodottaminen käsittelee synkronoidut tehtävävastaukset estäen valmistuneen työntekijää jättämästä suoritinta pysyvästi ei-tyhjäkäyntiin koordinoidun sammutuksen aikana
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.47.0
Version 2.46.0
Lisätty (Added)
FPdfAsn1paljastaa nyt tunnisteluokat, 64-bittisen korkean tunnistenumeron koodauksen ja purkamisen, jäsennetyt TLV-tietueet, nollakopioinnin lapsilukija-ikkunat, tyypitetyt primitiivipurkajat sekä sisällön tai koodattujen arvojen viipaleet- DER-kirjoittajat tukevat nyt täyttä etumerkitöntä 64-bittaista INTEGER-aluetta, validoituja mielivaltaisia INTEGER-sisältöjä, ENUMERATED-arvoja, automaattista UTCTime- tai GeneralizedTime-valintaa, application- ja private-tunnisteita, moniarvoisia SEQUENCE-rakenteita ja kanonisesti lajiteltua SET OF -tulosta
ValidateDerpalauttaa siirrostietoisia validointivirheitä pakottaen määritettäviä sisäkkäisyys-, solmumäärä-, sisältöpituus-, virhemäärä-, juuri- ja valinnaiset SET-lajittelurajat
Muutettu (Changed)
- DER-ketjutus ja moniarvoinen koostaminen käyttävät yhtä tulosallokaatiota, kirjoittajapuskurit paljastavat reserve-, count-, capacity- ja omistajuuden siirto-operaatiot ja SET OF -lajittelu käyttää nyt
O(n log n)-lomitelajittelua - BOOLEAN-, INTEGER-, BIT STRING-, OBJECT IDENTIFIER-, NULL-, UTF8String-, PrintableString-, IA5String-, UTCTime- ja GeneralizedTime-arvot saavat kanonisia muototarkistuksia koodauksen, tyypatun purkamisen tai validoinnin aikana
- Lazarus-ajonaikaispaketti vie nyt
FPdfAsn1-yksikön ja Delphi-, Lazarus- ja C++Builder-testisarjat harjoittavat samaa julkista DER-pintaa
Korjattu (Fixed)
- Kontekstikohtaisia tunnistenumeroita jotka ovat suurempia kuin 30 ei enää typistetä tunnisteen viiteen alimpaan bittiin
- Vääränmuotoiset korkean tunnisteen tunnisteet, ei-minimaaliset määrätyshatkat, virheellinen UTF-8, ei-nolla BIT STRING -täyte, virheelliset aikakentät, jälkijuuret ja resurssirajoitusrikkomukset hylätään deterministisesti
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.46.0
Version 2.45.0
Lisätty (Added)
FPdfPreflightReportmäärittää nyt jokaiselle ongelmalle Info-, Warning- tai Error-vakavuuden ja paljastaa standardi- ja raporttikohtaiset vakavuus-, tila-, luokka-, ongelmatunnus-, lookup-, search-, litistys- ja suodatus-API-rajapinnat- Preflight-raportit vievät nyt SARIF 2.1.0-, JUnit XML-, NDJSON- ja natiivia XML-muotoa vastaavien
To*- jaSave*ToFile-menetelmien kautta CI-, automaatio- ja suoratoistoputkille - Vakaat SHA-256-raporttisormenjäljet tunnistavat yhtäpitävät validointitulokset riippumatta lähdopoluista ja luomisen aikaleimoista
Muutettu (Changed)
- JSON-, CSV-, text-, Markdown- ja HTML-raportit sisältävät nyt vakavuuden ja laajennetut tilayhteenvedot; HTML lisää saavutettavat taulukointikirjoitukset ja tilayhteenvedon
- Ongelma- ja standardikokoelmien rakentaminen käyttää geometrista kapasiteetin kasvua, kyselytulokset on esimitoitetty, JSON-escape kirjoittaa yhteen rajoitettuun tulospuskuriin ja kaikki raporttitiedostot käyttävät yhtä suoraa UTF-8-kirjoittajaa
- Ongelmaluokkayhteenvedot käyttävät determinististä järjestystä, aikaleimat sisältävät millisekunnit, JSON kantaa
formatVersion: 2ja CSV-solut neutraloivat taulukkolaskentakaavat
Korjattu (Fixed)
- JSON-vienti säilyttää nyt kelvolliset täydentävät Unicode-parit ja korvaa erilliset UTF-16-korvikoodiyksiköt sen sijaan että se lähettäisi vääränmuotoista skalaaridataa
- HTML-vienti escapeaa nyt heittomerkit ja suodatetut raporttinäkymät omistavat itsenäiset ongelma-arrayout sen sijaan että ne jakaisivat muuttuvan tulostallennustilan
TPdf.AboutInfo, Lazarus-paketin metatiedot ja asentimen metatiedot raportoivat nyt yhdenmukaisesti Version 2.45.0
Version 2.44.0
Lisätty (Added)
- Kirjanmerkit ja kohteet paljastavat avoimen tilan, jälkeläismäärät, toimintakohteet, kohdenäkymätilat ja enintään neljä näkymäparametria
Metadata,GrantedPermissions,UserGrantedPermissions,HasPermissionjaUserHasPermissiontarjoavat tyypitettyjä dokumentin tarkastustilannekuvia ja käyttöoikeuskyselyitäExtractThumbnail(PageNumber)renderöi pyydetyn sivun muuttamatta aktiivista sivua, ja RFC 3161 -aikaleimatulokset paljastavat käytäntö-, generointiaika- ja nonce-tiedot
Muutettu (Changed)
- Kirjanmerkki-, JavaScript-, metadata-, kohde- ja pienoiskuvapolut käyttävät vahvistettuja kaksivaiheisia puskureita, geometrista kokoelman kasvua ja sykliturvallista läpikäyntiä
- Tallennuksen jälkikäsittely ratkaisee aktiivisen luettelon, sivupuun ja avoimen toiminnan nykyisen xref-revision kautta, välimuistittaa puretut objektivirrat ja skannaa PDF-sanakirjat leksikaalisilla rajoilla
- Jaettu PDF-jäsennys pakottaa nyt tarkat objektiotsikot, generoinnit, sanakirja-avaimet, virtapituudet, ennustageometrian, kokonaislukualueet sekä kommentti-, literaalimerkkijono- ja heksadesimaalimerkkijonorajat
- RFC 3161 -vastauksen validointi sitoo nyt sekä noncen että SHA-256-
messageImprint-kentän, vaatii rakenteellisesti kelvollisen allekirjoittajan ja soveltaa tiukkoja DER-pituus-, OID-, INTEGER- ja GeneralizedTime-sääntöjä
Korjattu (Fixed)
- Kasvavat dokumentit eivät enää valitse passiivisia kaksoiskappaleluetteloita tai virheellisiä viittaussuffikseja lisätessään oletusarvoista avointa toimintoa
- Aikaleimatokenit, joilla on pitkän muodon DER-pituudet, säilyttävät täydellisen koodatun tokenin, kun taas virheellinen CMS-valinnaiskenttäjärjestys ja tyhjät allekirjoittajajoukot hylätään
- Puhtaat Delphi-käännökset kirjoittavat nyt PAdES-nonce-siemenkentät kohdistusturvallisten tavukopioiden kautta ja välittävät XFA-vastaus tavut tarkalla natiivilla osoitintyypillä
Version 2.43.0
Lisätty (Added)
- XFDF-kenttä- ja huomautustietueet paljastavat nyt läsnäololiput, jotka erottavat pois jätetyn XML-arvon eksplisiittisesti tyhjästä arvosta
Muutettu (Changed)
- XFDF-tuonti hyväksyy nimiavaruudellisia etuliitteellisiä elementtejä ja attribuutteja, sekatekstiä ja CDATA-sisältöä, entiteettiviittauksia ja välilyönnimerkitseviä arvoja ja hylkää virheelliset Unicode-skalaariviittaukset
- XFDF-tuonti ja -vienti käyttävät indeksoitua kenttäsovitusta ja rajoitettuja geometrisia puskureita, mikä parantaa läpimenoa ja huippuvarauksen toimintaa syvälle sisäkkäille lomakkeille, suurille huomautuskokoelmille, mustelistaolioille, kärkipisteille ja merkintänelikulmioille
- PDF/A- ja PDF/UA-validointi käyttävät rajoitettua kasvua suurille sivu-, virta-, rakenne- ja RoleMap-kokoelmille; PDF/UA RoleMap -ratkaisu seuraa nyt suoria taulukoita ja eksaktin sukupolven epäsuoria nimi- tai taulukko-objekteja
Korjattu (Fixed)
- XFDF-edestakaiset matkat säilyttävät nyt syvälle sisäkkäiset kenttäpolut, eksplisiittiset tyhjät kenttäarvot, eksplisiittiset tyhjät huomautussisällöt ja eron puuttuvien ja tyhjien sisältöjen välillä
- Virheelliset muistipuskurilataukset ja alueen ulkopuoliset sivumääritykset hylätään jättämättä osittaista dokumentti- tai sivutilaa, ja epäonnistunut natiivi sivun uudelleenlataus säilyttää aiemmin aktiivisen sivun
- Suuret merkityn sisällön tunnisteet ja allekirjoitusmetadatapuskurit rajataan ja vahvistetaan ennen varausta tai natiivia käyttöä
Version 2.42.0
Lisätty (Added)
TPdfMatrixtarjoaa nytInvert-,TryInvert-,TransformPoint- jaTransformRect-metodit koordinaattikartoitukseen, osumatestaukseen, normalisoituihin rajoihin ja eksplisiittiseen yksittäismatriisikäsittelyynTPdf.WrapTextsaiBreakLongWords-ylikuormituksen, joka jakaa CJK- ja muuta välilyönnitöntä tekstiä pitäen silti kelvolliset UTF-16-sijaparit koossaTPdfAnnotation.AttachmentPointSetspaljastaa jokaisen nelikulmion monirivisissä merkintähuomautuksissa, kun taas olemassa olevaAttachmentPoints-kenttä pysyy aliaksena ensimmäiselle joukolle
Muutettu (Changed)
- Tekstin poiminta, luettavan sisällön rakentaminen, sanahaun ja puhutun tekstin siirtymäkartoitus käyttävät nyt rajoitettua varausta ja binäärihakupolkuja, mikä vähentää toistuvia varauksia ja lineaarisia skannauksia suurilla sivuilla
- ASN.1-sarjamuotoistus ja salatun PDF:n luonti käyttävät nyt geometrisia tulostuspuskureita; salattujen objektien järjestys käyttää
O(n log n)-lajittelua ja xref-rivit kirjoitetaan suoraan lopulliseen puskuriin WrapTextsäilyttää CR-, LF- ja CRLF-rivirajat ja käyttää yhtä natiivia mittausobjektia koko toiminnon ajan- XFDF-tuonti ja -vienti säilyttävät jokaisen merkintänelikulmion; tuonti soveltaa myös RGB-/sisävärejä ja jäsentää desimaalikoordinaatit prosessin kielestä riippumatta
Korjattu (Fixed)
- Vanhat kutsujat voivat jälleen päivittää huomautussisältöä ja tekijää sijoittamalla ei-tyhjiä merkkijonoja asettamatta uudempia
HasContents- jaHasAuthor-vartioita - Eksplisiittisesti tyhjät huomautusmerkkijonot käyttävät nyt kelvollista nollaan päättyvää natiivipuskuria, joten
/Contents-,/T- ja muiden valinnaisten tekstiavainten tyhjentäminen ei enää välitä nil-osoitinta PDFiumille
Version 2.41.0
Muutettu (Changed)
- Preflight-raportti
SaveJsonToFile,SaveMarkdownToFilejaSaveTextToFilekirjoittavat nyt UTF-8-muodossa Delphi-ympäristössä (vastaa nykyistäSaveHtmlToFile-metodia) järjestelmän ANSI-koodisivun sijaan; tiedostopolkujen, suositusten ja soveltamisalaan liittyvien huomautusten ei-ASCII-merkit vioittuivat Delphi-ympäristössä tallennettaessa näillä metodeilla SaveCsvToFilekirjoittaa nyt UTF-8-muodossa BOM-etuliitteellä, jotta Excel for Windows tunnistaa koodauksen automaattisesti; ilman BOM-etuliitettä Excel käsittelee UTF-8 CSV -tiedostoa koodisivuna 1252 ja vioittaa ei-ASCII-merkit
Korjattu (Fixed)
ExtractImages-demo vuosi välimuistiin tallennetutTBitmap-objektit kohteessaFExtractedImages, kun lomake suljettiin tyhjentämättä niitä ensin nimenomaisesti; lomake korvaa nytDestroy-metodin kutsuakseenClearExtractedImages-metodia, mikä vapauttaa jokaisen välimuistissa olevan bittikartan
Version 2.40.0
Muutettu (Changed)
TPdf.RenderPage(HDC, ...)peittää nyt FPU/SSE-poikkeuksetFPDF_RenderPage-kutsun ympärillä, vastatenTPdfView.RenderPage(HDC)-metodia (korjattu versiossa v2.25.0) ja jokaista bittikartan palauttavaa renderöinnin aloituspistettä;TPdf-tason suora DC-ylikuormitus jätti aiemmin FPU-poikkeukset peittämättä D12-versiota edeltävillä kääntäjillä
Korjattu (Fixed)
ColorToARGBpalauttaa nyt täysin läpinäkyvän pikselin (alfa 0) arvoilleclNonejaclDefaultsen sijaan, että käsittelisi vartioarvoa kirjaimellisena RGB-värinä; aiempi toiminta tuotti tumman, melkein läpinäkymättömän täytön, kun kutsuja välitti arvonclNoneodottaen “ei väriä”
Version 2.39.1
Korjattu (Fixed)
- Eksplisiittiset PDF 1.3 -tallennukset poistavat nyt merkinnät
/SMask /None,/AIS falseja/TK true, jotka vain toistavat alkuperäisen grafiikkatilan, samalla kun ne hylkäävät edelleen ei-oletusarvoisen läpinäkyvyystilan
Version 2.39.0
Muutettu (Changed)
CreatePDFjaImageToPDFkäyttävät nyt vahvistettuja tallennuskohteita ja raportoivat onnistumisesta vain, kunSaveAssuoritetaan onnistuneestiBatchExport,PDFtoJpgjaSplitPDFvaraavat nyt yksilölliset tuloshakemistot, jotta toistuvat ajot ja samannimiset syötteet säilyttävät aiemmat tuloksetSplitViewkietoo nyt haun kerran jättämättä piilotettua sivutilaa peruutuksen tai osumattomuuden jälkeen, ja keskeyttää keskeneräiset tulostustyöt sen sijaan, että lähettäisi osittaisen tulosteen
Korjattu (Fixed)
MergePDFhylkää nyt virheelliset sivualuetunnukset ja lähdetiedoston ylikirjoittavat tulospolut, laskee todella tuodut sivut ja kieltäytyy tallentamasta tyhjää tulosta- Delphin ja C++Builderin
Attachment-demot tekevät nyt samalla polulla olevat tallennukset palautusturvallisen tiedostonvaihdon kautta, jotta epäonnistunut uudelleennimeäminen ei voi poistaa alkuperäistä PDF-tiedostoa
Version 2.38.0
Muutettu (Changed)
SetAnnotationDatasuojaa nyt kirjoitukset kohteisiin/Contentsja/AuthorvartioillaHasContents/HasAuthortietyypissäTPdfAnnotation, vastaten olemassa olevaa malliaHasName/HasSubject/HasIcon; aiemmin nämä kaksi kenttää kirjoitettiin ehdottomasti, joten tietueenDefault(TPdfAnnotation)sijoittaminen vain värin tai lippujen päivittämiseksi ylikirjoitti hiljaa huomautuksen olemassa olevan sisällön ja tekijän tyhjillä merkkijonoilla;GetPageAnnotationasettaa nyt vartiot, jotta luku-muokkaus-kirjoitus-sykli säilyttää alkuperäiset arvot
Korjattu (Fixed)
GenerateFormAppearanceslukee nyt valintaruunun/valintapainikkeen arvon metodillaFPDFAnnot_GetFormFieldValue(joka siirtyy ylempään kenttäsanakirjaan standardin ISO 32000-1 §12.7.5) metodinFPDFAnnot_GetStringValue(Annot, 'V', ...)sijaan (joka lukee käyttöliittymäkomponentin sanakirjan); käyttöliittymäkomponentti ei yleensä sisällä avainta/V, joten arvoa/ASei koskaan synkronoitu valittuun tilaan ja litistetty valintaruutu/valintapainike renderöitiin valitsemattomana
Version 2.37.0
Muutettu (Changed)
ParseTsaUrlrajoittaa nyt portin arvoon1..65535jäsennyksen jälkeen; liian suuri portin arvo muuten kiertyisiDWORD-tavun katkaisun vuoksi ja voisi osua kelvolliseen porttiin- XFDF-muodon
ParseFieldottaa nyt vastaan syvyysparametrin (oletus 0, rajoitettu arvoon 64) ja palauttaa tyhjän kentän rajalla, joten haitallisesti sisäkkäinen 100 000 tasoa syvä<field>-ketju ei voi enää aiheuttaa pinon ylivuotamista
Korjattu (Fixed)
- TSA HTTP -pyyntö suojautuu nyt tyhjältä pyyntörungolta ennen kuin se välittää osoitteen
@ReqDer[0]funktiolleWinHttpSendRequest; nollapituinen dynaamisen taulukon viittauksen purkaminen viittaisi alustamattomaan osoittimeen;BuildTimeStampReqpalauttaa aina ei-tyhjän SEQUENCE-rakenteen, mutta kutsuva paikka puolustaa nyt sopimusta
Huomautukset (Notes)
- Otsikon
FPdfTsaWinkommenttia HTTPS-varmenteiden kumoamistarkistuksesta on korjattu: WinHttp vahvistaa palvelimen varmenneketjun oletuksena, mutta se **ei** suorita CRL/OCSP-kumoamistarkistusta, ellei sitä ole erikseen otettu käyttöön metodillaWinHttpSetOption; aiempi sanamuoto väitti kumoamistarkistuksen tulevan “ilmaiseksi”, mikä oli harhaanjohtavaa
Version 2.36.0
Muutettu (Changed)
- TSA HTTP -pyynnöt lähettävät nyt eksplisiittisen
Content-Length-otsikon koodienContent-TypejaAcceptlisäksi; WinHttp muodostaa sen kokonaispituudesta, mutta jotkin RFC 3161 -välityspalvelimet vaativat eksplisiittisen otsikon ja hylkäävät pyynnön virheellä411 Length Requiredilman sitä - XFDF-vienti pudottaa nyt C0-ohjausmerkit (lukuun ottamatta koodeja TAB/LF/CR, jotka on jo suojattu) sen sijaan, että se tuottaisi virheellisen kenoviiva-heksadesimaalisekvenssin; aiempi suojakoodi
\-01Fei ole kelvollista XML-kieltä (kenoviivalla ei ole erityistä merkitystä XML-kielessä), joten mikä tahansa standardinmukainen lukija olisi hylännyt dokumentin virheellisenä InjectAssociatedFileskirjoittaa nyt merkinnän/SubtypeEmbeddedFile-tietovirtasanakirjaan, kun kutsuja toimittaa arvonTAssociateFile.MIMEType; kenttä oli ilmoitettu ja dokumentoitu, mutta injektori käytti aiemmin kovakoodattua arvoa/Type /EmbeddedFileja sivuutti sen (ISO 32000-2 §7.11.4 sallii merkinnän/Subtypetietovirrassa)
Korjattu (Fixed)
- XFDF-tuonti ohitti ensimmäisen sisältötavun UTF-8 BOM -tunnuksen jälkeen ja ensimmäisen tavun, kun BOM-tunnusta ei ollut:
BytesToAnsi(Bytes, 4, ...)(BOM) jaBytesToAnsi(Bytes, 1, ...)(ei BOM-tunnusta) käyttivät yhden verran pielessä olevia aloituspoikkeamia, koskaBytesToAnsiottaa 0-pohjaisen taulukkoindeksin; kutsut käyttävät nyt arvoja3ja0 - Metodissa
ExtractSignatureValueoli kaksi roikkuvaaif-sisennysvirhettä, joissaR.Position:= CNsuoritettiin ehdottomasti valinnaisille haaroillecertificates [0]jasignedAttrs [0]; haarat on nyt kääritty lohkoihinbegin/end, joten sijaintia siirretään eteenpäin vain silloin, kun valinnainen TLV todella luettiin (sama virhetyyppi korjattu metodissaAddSignatureTimestampToCmsversiossa v2.22.0)
Version 2.35.0
Muutettu (Changed)
TFPDFAvail_IsDocAvail,TFPDFAvail_IsPageAvailjaTFPDFAvail_IsFormAvailottavat nyt vastaan parametrinhints: PFX_DOWNLOADHINTSparametrinvar hints: FX_DOWNLOADHINTSsijaan, jotta dokumentoitu vain kyselyyn tarkoitettunullptr-tila (tarkista nykyinen saatavuus pyytämättä lisätietoja) on saavutettavissa Delphi-ympäristöstä; PDFium-otsikkotiedosto sallii nimenomaisesti parametrinhintsolevan null, minkä aiempivar-sidonta teki mahdottomaksiTFPDF_SetSystemFontInfoottaa nyt vastaan parametrinpFontInfo: PFPDF_SYSFONTINFOparametrinvar pFontInfo: FPDF_SYSFONTINFOsijaan, jotta kutsujat voivat välittää arvonnilkertoakseen PDFiumille, että se lopettaa aiemmin rekisteröidyn järjestelmäfonttirajapinnan käytön (dokumentoitu poistopolku)TPdfThumbnailView.Paintlaskee nyt arvonVisibleRowssamalla kaavalla kuinUpdateScrollBarRange(ClientHeight div RowHeight), jotta maalattujen rivien määrä vastaa vierityspalkin sivukokoa; aiempi vain maalaamiseen käytetty kaava ((ClientHeight - FMarginY) div RowHeight + 1) saattoi poiketa yhdellä rivillä reunakorkeuksilla, mikä tuhlasi renderöinnin sivun ulkopuoliseen riviin tai jätti viimeisen näkyvän rivin puuttumaan
Version 2.34.0
Lisätty (Added)
TPdf.SaveAsEncrypted/SaveAsEncryptedToStream— korkean tason API, joka tallentaa dokumentin ja kryptaa sen PDF 2.0 AES-256-CBC -algoritmilla (V=5/R=5/R=6); se ottaa vastaan tietueenTPdfEncryptOptions, joka sisältää käyttäjän/omistajan salasanan, oikeudet ja version, ja delegoi tehtävän metodilleEncryptDocumentBytes- StrF-merkkijonoliteraalien salaus:
EncryptDocumentByteskryptaa nyt(...)-muotoiset literaalimerkkijonot muissa kuin tietovirtaobjekteissa (kuten Info-sanakirjassa) AES-256-CBC-heksadesimaalimerkkijonoiksi, vastaten tietovirran salausmuotoa (16-tavuinen IV + PKCS7-salateksti); heksadesimaalimerkkijonot<...>jätetään koskemattomiksi
Version 2.33.0
Lisätty (Added)
- Koko dokumentin kattava AES-256-CBC-salauksen injektori tiedostossa
FPdfEncrypt.pas;EncryptDocumentBytesottaa vastaan selkokielisen PDF-tiedoston ja salasanan, kryptaa jokaisen epäsuoran tietovirtaobjektin (16-tavuinen IV + AES-256-CBC PKCS7 tiedostoavaimella), paikkaa arvon/Length, liittää mukaan/Encrypt-sanakirjaobjektin ja rakentaa uudelleen täydellisen klassisen ristiinviittaustaulukon ja trailerin arvoilla/Encryptja/ID; viimeistelee PDF 2.0 -salauspinon (AES-lohko + GCM + SHA-512/384 + R6-avaimenmuodostus + sanakirja + dokumentin läpikäynti) - Apumetodi
EncryptStreamPayload— PDF 2.0 AES-256 -tietovirtamuoto (IV lisätään AES-CBC-PKCS7-salatekstin alkuun), jota voivat käyttää uudelleen kutsujat, jotka hallitsevat omaa objektiasetteluaan
Version 2.32.0
Lisätty (Added)
- SHA-512 / SHA-384 -tiiviste (FIPS 180-4) uudessa yksikössä
FPdfSha512.pas; puhdasta Pascal-koodia, siirretty HotPDF-kirjastosta; tarvitaan PDF 2.0 R6 -salasanatiivisteen iteraatiossa, joka haarautuu 128-bittisen mod-3-arvon perusteella valitsemaan SHA-256/384/512-algoritmin jokaisella kierroksella; varmistettu FIPS-180-4 B.1 -testitapauksilla - PDF 2.0 -salausavaimen johtaminen ja Encrypt-sanakirjan rakentaja uudessa yksikössä
FPdfEncrypt.pas; toteuttaa standardin ISO 32000-2 §7.6.4.3 algoritmin 2.B (R6-tiivistealgoritmi: AES-128-CBC + iteratiivinen SHA-256/384/512-valinta), johtaa 32-tavuisen tiedoston salausavaimen sekä merkinnät/O,/U,/OE,/UEja/Perms, ja rakentaa V=5/R=5/R=6 Encrypt-sanakirjan arvoilla/CFM /AESV3; siirretty PDFlibPas-kirjastosta ja sovitettu TBytes-tyyliin
Version 2.31.0
Lisätty (Added)
- AES-lohkosalausprimitiivit (FIPS 197) uudessa yksikössä
FPdfAes.pas; puhdasta Pascal-koodia sisältävät AES-128- ja AES-256-lohkosalaukset sekä CBC-tilan apuvälineet ja CSPRNG-taustaosa, siirretty HotPDF-kirjastosta; FIPS-197 Appendix C.2 / C.3 -testitapaukset varmistavat oikeellisuuden; tämä on PDF 2.0 -salauspinon kryptografinen perusta - Todennettu AES-GCM-salaus (NIST SP 800-38D) uudessa yksikössä
FPdfAesGcm.pas; toteuttaa GHASH- (GF(2^128)-kertolasku), GCTR- ja GCM AEAD -rakenteen AES-lohkoelementtien päällä; NIST GCM -testitapaukset 1 ja 3 (AES-128) vastaavat täsmälleen virallista salatekstiä ja tunnistetta; testitapaus 13 (AES-256) suorittaa edestakaisen kierron; GCM on standardin ISO/TS 32003 mukainen tila PDF 2.0 -versiolle - PDF/A Level A -tason ParentTree- ja ClassMap-rakenteiden eheyden validointi (ISO 19005-1 §6.8.3);
pvaiParentTreeMissingmerkitsee StructTreeRoot-objektin, josta puuttuu /ParentTree-numeropuu;pvaiClassMapUnresolvedmerkitsee /C-luokkaviittauksen, jolla ei ole /ClassMap-sanakirjaa
Version 2.30.0
Lisätty (Added)
- Liitostiedostojen injektio (
InjectAssociateFiles/TPdf.SaveAsWithAssociateFiles, ISO 32000-2 §7.11.4); uusi yksikköFPdfAssocFilesliittää tiedostomäärittelyviittausten/AF-taulukot luetteloon tai mihin tahansa sivusanakirjaan, kattaen kaikki kahdeksan standardin ISO 32000-2 Table 45 mukaista/AFRelationship-arvoa; käyttää uudelleen inkrementaalisen päivityksen mallia, joka todettiin toimivaksi metodissaInjectPadesDssMarkers - PDF/X-6 (ISO 15930-9:2020) -tuki;
TPdfXConformancelisää tyypinpxc6; injektori ja validaattori ohjaavat sen tunnisteenpdfxid:GTS_PDFXVersionläpi; PDF/X-6 on PDF 2.0 -pohjainen seuraaja PDF/X-4-standardille täydellistä tiedonvaihtoa varten - PDF/A kieltää toiminnon
/Thread(ISO 19005-1 §6.6.1 sallittujen toimintojen listan puute); kiellettyjen toimintojen luettelo kattaa nyt toiminnon Thread toimintojen Launch, ResetForm, ImportData, SetOCGState, SetState, GoTo3DView, Rendition ja Hide ohella
Korjattu (Fixed)
- PDF/A-4e -validointipolku kunnioittaa nyt samoja merkittyjä rakenteita, MarkInfo- ja sanarajantarkistuksia kuin Level A -taso; version v2.29.0 tallennuspuolen alennus kattoi tilan
PdfAIsLevelE, mutta kolmeValidatePdfACompliance-porttia tarkisti vain tilanPdfAIsLevelA, joten PDF/A-4e-dokumentti, josta puuttui merkitty rakenne, meni läpi ilman huomautusta - OCG-määrittelyn
/BaseStatetestipoikkeama: version v2.28.0 PostProcess-vaihe laajensi hyväksynnän oikein arvoihin/ONtai/OFF(ISO 32000-1 Table 8.70), mutta Delphi- ja C++-testit odottivat edelleen arvon/OFFhylkäämistä; testit käyttävät nyt todella virheellistä arvoa (/Undefined) ja uusi positiivinen testi lukitsee arvon/OFFhyväksynnän - Paikkatietojen
/Subtype /GEO-liiallinen täsmäys:ContainsDictionarySubtype('GEO')täsmäsi mihin tahansa sanakirjaan, joka sisälsi kyseisen tunnuksen, mukaan lukien asiaankuulumattomat kuten ylimääräinen/ViewerPreferences << /Subtype /GEO >>; uusi metodiContainsMeasureDictionarySubtypevaatii lisäksi avaimen/Type /Measuretai Measure-yksinomaisen sisarusavaimen, joten muut kuin Measure-sanakirjat eivät enää laukaise ADBE ExtensionLevel 3 -vaatimusta
Version 2.29.0
Lisätty (Added)
- PDF/A-4 (ISO 19005-4:2020) -tuki validaattorissa, XMP-injektorissa ja Pdfium-objektimallikerroksessa;
TPdfAConformancelisää arvotpac4base,pac4fjapac4e; perustaso on PDF 2.0 (ISO 32000-2) ja se korvaa vanhat A/B/U-tasot yhdistelmällä base + F (lomake) + E (saavutettavuus);ValidatePdfAlukeepdfaid:part=4XMP-paketin (perustaso jättää yhteensopivuuselementin pois),SaveAsPdfAtuottaa sen jaSignPadesWithPdfAhyväksyy tyypinpac4basepitkäaikaiseksi arkistosäiliöksi - Sidonta metodille
FPDFBookmark_GetColor— viimeinen sitomaton PDFiumin julkinen vienti (469/469);TBookmarksaa kentätHasColorjaColor, jotka täytetään kirjanmerkin/C-taulukosta (ISO 32000-1 §12.3.3); sidonta käyttää suvaitsevaa latausta, jotta vanhemmat DLL-tiedostot, jotka ovat ennen kyseistä vientiä, toimivat edelleen - PDF/E-1 (ISO 24517-1 §5) -otsikkoversion tarkistus
pveiBadPdfVersion— PDF/E-1 perustuu PDF 1.6 -versioon ja muu kuin 1.6-otsikko merkitään nyt virheelliseksi - PDF/R-1 (ISO 23504-1)
pvriEncryptVersionMismatch— salaus on sallittu vain%PDF-2.0-otsikolla; 1.x-runko, joka sisältää avaimen/Encrypt, merkitään nyt (aiemmin operaatio ohitettiin) - PDF/R-1
pvriBadMediaBox— jokaisen sivunMediaBox-koon on oltava[0 0 w h];PdfRHasNonZeroMediaBoxOriginon kieliasetuksesta riippumaton ASCII-lukija, joka ohittaa epäsuorat MediaBox-viittaukset - PDF/A Level A
pvaiRoleMapUnresolved(ISO 19005-1 §6.8.3.4) — olemassa oleva mutta puutteellinen RoleMap, joka jättää mukautetut/S-rakennetyypit kartoittamatta, merkitään nyt virheelliseksi, mikä paikkaa pelkkää olemassaoloa testanneenpvaiRoleMapMissing-tarkistuksen jättämän aukon
Korjattu (Fixed)
PdfVersionToName(20)palautti arvon"1.0"arvon"2.0"sijaan, mikä vioitti luettelon/Version-merkintää ja validaattorin viestejä jokaisessa PDF 2.0 -tallennuksessa; muotoilija jakaa nyt pää- ja aliversion nimenomaisesti versiokoodeille>= 20- Yksikön
FPdfAsn1.pasnegatiivisten INTEGER-arvojen koodain ei kääntynyt Delphi 12 -ympäristössä (virheE2015kohdassaInteger(-(V<0))), mikä esti koko testiprojektin kääntämisen; korjattu käyttämällä merkkiulotuksen peitteenä lausekettaInt64(-Ord(V<0)) - Kiellettyjen PDF/A-huomautusten luettelo sisältää nyt merkinnän
/RichMediakaikissa osissa (puuttui aiemmin; ISO 32000-1 §12.5.6.35 kieltää sen PDF/A-muodossa)
Version 2.28.0
Lisätty (Added)
TPdfVersionsisältää nyt arvonpv20PDF 2.0 -versiolle (ISO 32000-2);DecodePdfVersion(20)palauttaa arvonpv20arvonpvUnknownsijaan, jaEncodePdfVersion(pv20)tuottaa arvon 20, joten PDF 2.0 -dokumentin versio ei enää häviä takaisinluvussa ja se voidaan kirjoittaa eksplisiittisesti
Muutettu (Changed)
DecodeDatejäsentää nyt PDF-päivämäärämerkkijonot valinnaisilla perässä olevilla kentillä PDF Reference 3.8.3 -määrityksen mukaisesti sen sijaan, että vaatisi täyden 23-merkkisen muodonD:YYYYMMDDHHmmSSOHH'mm'; standardinmukaiset katkaistut päivämäärät, kutenD:20260712,D:20260712153000 ja D:20260712153000Z, hyväksytään nyt; aiemmin nämä hylättiin tiukanLength=23-tarkistuksen vuoksi; aikavyöhykkeen tuntisiirtymä vahvistetaan nyt todellista aluetta UTC-12..UTC+14 vasten arvon> 23sijaanFPdfMeasure.MeasureTextkoodaa nyt fontin nimen FPC-tyyppinäAnsiString/ DelphinäUTF8Encode, vastaten kirjaston muita FPDF_BYTESTRING-kutsukohtia, paljaanAnsiString-muunnoksen sijaan, joka vioitti ei-ASCII-perhenimet nykyisen koodisivun kautta
Korjattu (Fixed)
- Metodin
TDerWriter.Integernegatiivisten arvojen polku kaatui tai tuotti virheellistä DER-tietoa: silmukkawhile V <> -1 do V := V shr 8jättiInner-taulukon tyhjäksi, kunValue = -1(aluerajat ylittävä virhe myöhempien kohdassaInner[Length(Inner)-1]), ja tuotti liikaa tavuja muille negatiivisille arvoille; koodain purkaa nyt kahden komplementtihavun merkkiulotetuilla siirroilla ja pysähtyy oikein, kun jäljellä oleva osa on pelkkää merkkiulotusta; CMS/PAdES INTEGER -kentät ovat positiivisia, joten tämä vaikuttaa vain kutsujiin, jotka välittävät negatiivisia arvoja, mutta polku on nyt oikea - Metodit
TPdf.GetCharacterOriginjaTPdfView.GetCharacterOriginsivuuttivat funktionFPDFText_GetCharOriginpalautusarvon ja palauttivat alustamattoman pisteen epäonnistuessa; tulos alustamattetaan nyt nollaksi ja epäonnistunut luku palauttaa origon (vastaten metodinGetCharacterRectanglesopimusta)
Version 2.27.0
Muutettu (Changed)
- Delphin, C++Builderin ja Lazaruksen
PDFViewer- jaMultiPageViewer-demot käärivät haut kerran, hyväksyvätEnter- jaF3-näppäimet seuraavalle tulokselle, nollaavat hakukontekstin asetusten muuttuessa ja käyttävätEsc-näppäintä aktiivisen haun tai tulostuksen peruuttamiseen - Katselimen tulostus seuraa nykyistä kiertoa ja valitsee pysty- tai vaakasuuntaisen tulosteen sen mukaan
- Kaikki
ViewerInteractionLab-demot tukevat nytCtrl+A-,Ctrl+C-,Enter-,F3- jaEsc-pikanäppäimiä sieppaamatta muokkausohjainten omia valinta- ja kopiointikomentoja
Korjattu (Fixed)
- C++Builderin ja Lazaruksen tulostuksen peruutus keskeyttää nyt tulostintyön lähettämättä ennen peruutusta renderöityjä sivuja, ja Lazarus poistuu jokaisesta sisäkkäisestä kopio-, sivu- ja lajittelusilmukasta
- Delphin
MultiPageViewer-peruutuspainike on yhdistetty käsittelijäänsä, ja C++Builderin/Lazaruksen hakukentät säilyttävät nuoli-, Home- ja End-näppäinten muokkauksen
Version 2.26.0
Muutettu (Changed)
TPdf.GetObjectBitmap-,TPdf.GetBitmap-,TPdf.GetThumbnail- jaTPdfView-kutsut hankkivat nyt renderöintilukonFPDFImageObj_GetBitmap/FPDFPage_GetThumbnailAsBitmap-kutsun ympärilleRenderPage/RenderTile-kutsujen tapaanTPdf.RenderPageThumbnailkunnioittaa/Rotate-merkintää ja laskee sovituksen uudelleen kierretyille/Rotate 90- ja270-sivuille
Korjattu (Fixed)
TPdfView.GetCharacterRectanglealustaa suorakulmion nyt nollaksi, josFPDFText_GetCharBoxepäonnistuu, ja palauttaaRect(0,0,0,0)GetLinkAnnotationskäyttää nyt URI- ja tiedostopuskurille arvoasize-1eikä kirjoita allokaation yli
Version 2.25.0
Muutettu (Changed)
TPdf.AddText-,SetText-,AddPath- jaInsertFormObjectFromXObject-kutsut mitätöivät nyt välimuistissa olevan tekstisivun ja linkkimerkinnät ennen sisällön luontia uudelleenTPdfView.RenderPage(HDC, ...)hankkii renderöintilukon ja peittää FPU/SSE-poikkeuksetFPDF_RenderPage-kutsun ympärillä- Delphin
PrintPDF-demo kutsuu peruutettaessaPrinter.Abort-metodia ennenPrinter.EndDoc-kutsua
Korjattu (Fixed)
TPdf.GetCharacter- jaGetCharcode-kutsut palauttavat nyt U+FFFD:n U+FFFF:n ylittäville pisteille; käytäGetText-metodia täydelliseen UTF-16-koodaukseenGetWebLinksrajoittaa negatiivisenFPDFLink_CountRects-määrän nollaanTPdf.DestroypuhdistaaPassword-merkkijonon muistista ennen puskurin vapautusta
Version 2.24.0
Lisätty (Added)
TPdf.DeletePageja liitekutsut tarkistavat nyt indeksit ja nostavatEPdfError-virheen alueen ulkopuolisesta arvosta
Korjattu (Fixed)
TPdf.AddText-,AddBitmap- jaAddJpegImage-objektikahvat tuhotaan nyt epäonnistumisen yhteydessä vuotojen estämiseksiTPdf.UnloadPagetuhoaa keskeneräisenFPath-kahvanFPDFPageObj_Destroy-kutsullaTPdf.InsertFormObjectFromXObjectkutsuu nyt lisäyksen jälkeenUpdatePage-metodia
Version 2.23.0
Korjattu (Fixed)
- Valinnaisen sisällön
/BaseState-validointi hyväksyy nyt/OFF-arvon/ON-arvon lisäksi /Intent-validointi hyväksyy nyt/Design-arvon ja taulukot kuten[/View /Design]- Geospatiaalinen Measure-tunnistus ei enää vaadi valinnaista
/Type /Measure-merkintää ja täsmää/Subtype /GEO-arvoon
Version 2.22.0
Muutettu (Changed)
TPdfView-sovituszoomit käyttävät nytClientWidth/ClientHeight-arvojaWidth/Height-arvojen sijaan, jotenpfmFitPage/pfmFitWidth/pfmFitHeightsovittavat sivun näkyvään alueeseenAddSignatureTimestampToCmsnostaa nyt selkeänException-poikkeuksen lukukelvottomasta CMS SignerInfo -kentästä (version / sid / digestAlgorithm / signedAttrs / signatureAlgorithm)
Korjattu (Fixed)
ResolveWinSigner-kutsun CNG-yksityisavainkahva vapautetaan nytNCryptFreeObject-kutsulla epäonnistumisen jälkeenEcDsaP1363ToDerhylkää täysin nollanr- tais-puoliskon eikä tuotaINTEGER 0-arvoa
Version 2.21.12
Korjattu (Fixed)
- Eksplisiittiset PDF 1.5:stä PDF 1.7:ään -tallennukset hylkäävät nyt virheellisesti muotoillut katalogi-
/OCProperties-rakenteet, mukaan lukien puuttuvat vaaditut/OCGs- tai/D-merkinnät, virheelliset oletuskonfigurointiarvot ja ei-taulukko-tilamerkinnät
Version 2.21.11
Korjattu (Fixed)
- Eksplisiittiset PDF-versiota koskevat tallennukset hylkäävät nyt suorat tai epäsuorat sivun
/Annots-merkinnät, joiden merkintäsanakirjoista puuttuu vaadittu/Subtype- tai/Rect-merkintä
Version 2.21.10
Korjattu (Fixed)
- Eksplisiittiset PDF 1.7 -tallennukset vaativat nyt geospatiaalisten
/Type /Measure /Subtype /GEO-sanakirjojen ja Projection-merkintöjen ilmoittavan/Extensions /ADBEkohteilla/BaseVersion /1.7ja/ExtensionLevel 3tai uudempi
Version 2.21.9
Korjattu (Fixed)
- Eksplisiittiset PDF 1.7 -tallennukset vaativat nyt RichMedia-merkintöjen ja
RichMediaExecute-toimintojen ilmoittavan/Extensions /ADBEkohteilla/BaseVersion /1.7ja/ExtensionLevel 3tai uudempi
Version 2.21.8
Korjattu (Fixed)
- Eksplisiittiset PDF 1.7 -tallennukset vaativat nyt PRC 3D -virtojen ilmoittavan
/Extensions /ADBEkohteilla/BaseVersion /1.7ja/ExtensionLevel 1tai uudempi, sen sijaan että PRC käsiteltäisiin PDF 1.7:n ydinominaisuutena
Version 2.21.7
Korjattu (Fixed)
- Eksplisiittiset PDF 1.4- ja sitä vanhempien versioiden tallennukset hylkäävät nyt kuva-XObject-
/SMaskInData-merkinnät, mukaan lukien eksplisiittinen arvo0, koska upotetut JPEG 2000 -pehmeän maskin kanavat vaativat PDF 1.5:n tai uudemman
Version 2.21.6
Korjattu (Fixed)
- Eksplisiittiset PDF 1.4- ja sitä vanhempien versioiden tallennukset hylkäävät nyt 16-bittiset kuva-XObjectit, jotka vaativat PDF 1.5:n tai uudemman, kun taas PDF 1.5:stä PDF 1.7:ään kohteet säilyttävät
/BitsPerComponent 16-kuvatietonsa
Version 2.21.5
Korjattu (Fixed)
- Eksplisiittiset PDF 1.4- ja sitä vanhempien versioiden tallennukset hylkäävät nyt asiakirjakatalogissa olevat
/PageLayout /TwoPageLeft- ja/TwoPageRight-arvot, jotka vaativat PDF 1.5:n tai uudemman, kun taas PDF 1.5:stä PDF 1.7:ään kohteet säilyttävät pyydetyn kaksisivuisen asettelun
Version 2.21.4
Korjattu (Fixed)
- Eksplisiittiset PDF 1.3 -tallennukset hylkäävät nyt asiakirjakatalogissa olevat
/Lang-merkinnät, jotka vaativat PDF 1.4:n tai uudemman, kun taas PDF 1.4:stä PDF 1.7:ään kohteet säilyttävät kieliidentifikaattorin
Version 2.21.3
Korjattu (Fixed)
- Eksplisiittiset PDF 1.3 -tallennukset hylkäävät nyt asiakirjan
/EmbeddedFiles-nimimuuttujapuut, jotka vaativat PDF 1.4:n tai uudemman, hylkäämättä upotettujen tiedostovirtoihin viittaavia vanhempia tiedostomäärittelytä
Version 2.21.2
Korjattu (Fixed)
- Viimeisin versio: 2.21.2; Julkaisupäivä:
Version 2.21.1
Korjattu (Fixed)
- Hybridivisausvahvistus käyttää nyt täydentäviä
/XRefStm-merkintöjä ennen saman revision klassisia xref-paikkamerkkejä, joten pakattuja huomautuksia ja muita versiorajoitteisia objekteja ei enää jätä huomiotta
Version 2.21.0
Muutettu (Changed)
- Kaikki Delphi-, C++Builder- ja Lazarus-katseluesimerkit voivat nyt avata ensimmäisenä komentoriviargumenttina annetun PDF:n, ja C++Builder- ja Lazarus-
MultiPageViewer-esimerkit tarjoavat eksplisiittiset valitse kaikki- ja kopioi-pikakuvakkeet
Korjattu (Fixed)
- Viimeisin versio: 2.21.3; Julkaisupäivä:
Version 2.20.0
Muutettu (Changed)
- Kaikki Delphi-, C++Builder- ja Lazarus-katseluesimerkit tarjoavat nyt johdonmukaiset pikakuvakkeet avaamiseen, hakuun, tallentamiseen, tulostamiseen, zoomáukseen ja sivunavigoinnin, ja jokainen
ViewerInteractionLab-muunnelma tukee myös sivuhyppyjä, vahvistettua manuaalista zoomausta 10–600 %, pysyviä vuorovaikutuslokeja ja napsautuskoordinaattien edestakaisen tarkistuksia
Version 2.19.1
Korjattu (Fixed)
- Viimeisin versio: 2.21.4; Julkaisupäivä:
Version 2.19.0
Muutettu (Changed)
- Viimeisin versio: 2.21.12; Julkaisupäivä:
Korjattu (Fixed)
- C++Builder
CJKTextLabmittaa nyt tekstin vietyjen PDFium-muokkaustoimintojen kautta jaMergePDFvälttää monitulkintaisen VCL-viestin ylikuormituksen, palauttaen puhtaat RAD Studio 37 -käännökset
Version 2.18.3
Korjattu (Fixed)
- PAdES B-LTA Document Time-stamp rekisteröidään nyt havaittavana allekirjoituskentänä — näkymätön Widget, joka on saavutettavissa ensimmäisen sivun
/Annots-taulukon ja AcroFormin/Fields-taulukon kautta (ETSI EN 319 142-1 §5.4.3) — sen sijaan että se olisi tavoittamaton orpo-objekti, jota allekirjoituskenttien luetteloivat validointityökalut eivät löytäneet; olemassa olevat merkinnät ja kentät säilytetään
Version 2.18.2
Korjattu (Fixed)
- PAdES-allekirjoitus ja klassinen ristiviitetaulukon kirjoitus nostavat nyt selkeän virheen, kun tavuosoite ylittää kiinteän 10-numeroisen kentän leveyden (~9,3 Gt) sen sijaan, että
/ByteRange-paikkamerkki jäisi hiljaisesti kirjoittamatta (tuottaen virheellisen allekirjoituksen) tai 20-tavuinen xref-rivi ylittyisi (ISO 32000-1 §7.5.4); ristiviite-stream-ulostulo käyttää 8-tavuisia binaarikenttiä eikä ole vaikuttunut
Version 2.18.1
Korjattu (Fixed)
- PAdES-allekirjoitus ratkaisee nyt epäsuorat ensimmäisen sivun
/Annots-,/AcroForm- ja/Fields-viittaukset koko objektiotsikon mukaan (ISO 32000-1 §7.5.3) ja viittauksen todellisen generointinumeron mukaan; pelkkä alimerkkijonohaku sovitti aiemmin objektinumeron pidemmän sisällä (ratkaistiin5 0 Rkohteeseen15 0 obj) ja kovakoodattu generointi ohittigen>0-objektit, turmelemalla allekirjoituskenttätaulukot tai hylkäämällä kelvollisia asiakirjoja - Kun luettelo, ensimmäinen sivu,
/Annots,/AcroFormtai/Fieldssijaitsee objektivirrassa, allekirjoitus yrittää nyt uudelleen laajennetussa kopiossa ennen epäonnistumista sen sijaan, että asiakirja hylättäisiin suoraan
Version 2.18.0
Lisätty (Added)
ReadPdfVersionInforaportoi otsikkoversion, tehokkaan ydinversion, luettelon ohituksen ja Adoben kehittäjälaajennuksen tason PDF-virrasta
Muutettu (Changed)
- Eksplisiittiset PDF 1.3–1.7 -tallennukset validoivat nyt luettelon, sivuresurssien, XFA:n, redaktion ja kehittäjälaajennuksen rakenteet niiden omistavan objektin kontekstissa; salattu eksplisiittinen versiomuodostus ja PDF 1.3 -inkrementaalinen normalisointi hylätään dokumentin eheyden säilyttämiseksi
- Tiedostopolun tallennukset kirjoitetaan nyt sisarustiedostoon ja korvaavat kohteen vasta kun kaikki pakkaus-, normalisointi- ja versiotarkistukset onnistuvat
Korjattu (Fixed)
- PDF 1.3 -ulostulo sisältää nyt vaaditun täyden
/ProcSet-resurssin ja poistaa PDF 1.4 -läpinäkyvyysavaimet silloin, kun ne vain toistavat PDF 1.3 -alkugrafiikkatilan arvot - Hybridivistiviite-, xref-stream- ja objektivirtatiedostoja ei enää kirjoiteta uudelleen klassisella xref-pakkaajalla, estäen pakattujen objektimerkintöjen putoamisen
- Nimet, jotka muistuttavat läpinäkyvyys- tai luettelotoiminnon avaimia merkkijonojen, kommenttien tai asiaan liittymättömien resurssikarttojen sisällä, eivät enää aiheuta vääriä kohdeversiovirheitä
Version 2.17.0
Lisätty (Added)
- PAdES-allekirjoitukset rekisteröidään nyt näkymättöminä Widget-merkintöinä ensimmäisen sivun
/Annots-taulukossa ja AcroFormin/Fields-taulukossa, säilyttäen olemassa olevat merkinnät ja lomakekentät
Muutettu (Changed)
- Inkrementaaliset PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/UA-, PDF/VT- ja PAdES-päivitykset säilyttävät nyt lähteen ristiviittausesityksen: xref-stream-asiakirjat saavat xref-stream-päivityksen, kuten ISO 32000-1 §7.5.8.1 vaatii, kun taas klassiset asiakirjat saavat edelleen xref-taulukon
- Ristiviite-offsetit,
startxref,/Prev, PAdES ByteRange-arvot ja SHA-256-alueen käsittely käyttävät nyt 64-bittisiä sijainteja lohkoittaisella tiivistyksellä, mahdollistaen yli 2 Gt:n tiedostot 64-bittisissä käännöksissä - Generoidut kirjoitettavat XMP-paketit varaavat nyt 2048 tavua täytettä ennen sulkevaa paketti-käskyä
Version 2.16.10
Korjattu (Fixed)
- Objektivirran laajennus ei enää herätä vanhentuneita kopioita objekteista, jotka inkrementaalinen päivitys on siirtänyt objektivirrasta yksinkertaiseen määrittelyyn (ISO 32000-1 §7.5.7); vaatimustenmukaisuustarkistukset ja merkintöjen injektio ratkaisivat aiemmin vanhentuneen luettelon tai metatietosanakirjan tällaisissa tiedostoissa
Version 2.16.9
Korjattu (Fixed)
- Free Pascalissa tekstimerkkijonot, joiden syöte ei ole kelvollista UTF-8:a, laajennetaan tavu kerrallaan Latin-1-koodauksena ja kirjoitetaan UTF-16BE hex-merkkijonoina; raa'at korkeat tavut vuosivat aiemmin literaalimerkkijonoon, mikä ei ole laillinen PDF 1.7 tekstimerkkijonojen koodaus
- Virran purkaminen tunnistaa nyt raa'an deflate-datan ilman RFC 1950 zlib-käärettä (rikkinäisten kirjoittajien yleinen vika) ja purkaa sen raa'assa tilassa, joten vaatimustenmukaisuuden skannaukset eivät enää jää hiljaa sokeiksi tällaisille virroille
Version 2.16.8
Korjattu (Fixed)
- Tallennetun jälkikäsittelypolun kirjoittamat inkrementaaliset päivitykset päivittävät nyt toisen (muuttuvan) trailer-
/ID-elementin, kuten ISO 32000-1 §14.4 vaatii; molemmat elementit kopioitiin aiemmin sellaisenaan, joten välimuisti- ja synkronointityökalut näkivät muuttumattoman tunnisteen jokaisen päivityksen jälkeen
Version 2.16.7
Korjattu (Fixed)
- Vaatimustenmukaisuuden skannauksissa käytetty virran rungon tyhjennys edellyttää nyt, että
stream-avainsanan jälkeen seuraa rivinloppu (ISO 32000-1 §7.3.8.1); sana literaalimerkkijonossa kuten(downstream)tyhjensi aiemmin kaiken seuraavan rakenteen seuraavaanendstream-avainsanaan asti, piilottaen todelliset rikkomukset tavutason tarkistuksilta - PDF/X- ja PDF/E-kiellettyjen ominaisuuksien skannaukset tyhjentävät lisäksi literaalimerkkijonot ja kommentit (§7.2.2), joten arvo kuten
/Title (see /JavaScript docs)tai kommentoitu token ei enää tuota vääriäJavaScript-,AcroForm- taiLZWDecode-löydöksiä
Version 2.16.6
Korjattu (Fixed)
- PDF/VT DPM-merkinnät validoidaan nyt kirjoitushetkellä dokumentoidusti: ISO 16612-2 §6.6 NMTOKEN-sääntöä tai Liite E -rekisteröintietuliitesääntöä rikkovat avainnimet sekä kaksoiskappaleet hylätään sen sijaan, että ne kirjoitettaisiin DPart-sanakirjaan — välilyönnin sisältävä nimi hajosi aiemmin harhaiseksi avain/arvo-pariksi ja turmelsi sanakirjan
Version 2.16.5
Korjattu (Fixed)
- Sanakirjamerkinnän poistaminen, jonka arvo on hex-merkkijono (kuten
/Check <...>), poistaa nyt koko merkinnän; injektorit jättivät aiemmin orpon hex-arvon jäljelle, tuottaen syntaktisesti rikkinäisen sanakirjan - Merkinnän poistaminen, jonka epäsuora viittaus käyttää rivinvaihtoja tokenien välillä (ISO 32000-1 §7.3.10 sallii minkä tahansa tyhjätilan), ei enää jätä generointinumeroa ja
R-avainsanaa jäljelle
Version 2.16.4
Korjattu (Fixed)
- Suurimman objektinumeron skannaus ei enää vaadi objektiotsikoiden aloittavan rivin (ISO 32000-1 §7.5.3 sallii minkä tahansa tyhjätilan tai rajoittimen ennen niitä), joten injektorit eivät voi enää varata objektinumeroa, joka törmää inline-
N G obj-otsikkoon ja turmella tiedoston hiljaisesti; objektinumerot on rajattu Liite C:n enimmäisarvoon - Virrat, joiden
/Lengthon epäsuora viittaus, ratkaisevat nyt viitattun kokonaislukuluobjektin ja käyttävät sen arvoa, kun se vastaa sulkevaaendstream-avainsanaa; aiemmin tällaiset virrat rajoitettiin kaaviohakulla, mikä katkaisi rungot, jotka laillisesti sisälsivätendstream-tavusekvenssin — tyypillistä upotettujen PDF-liitteiden yhteydessä
Version 2.16.3
Korjattu (Fixed)
- Virran pakkaus läpäisee ristiviite-stream-asiakirjat (PDF 1.5+ -tiedostot ilman klassista
trailer-avainsanaa) muuttumattomina; uudelleenrakennuspolku jäsensi aiemmin virheellisestistartxref:n taulukon sijainniksi ja syntetisoi arvaillun trailer-lohkon, mikä saattoi tuottaa avaamattoman tiedoston - Pakkaaja ohittaa XMP-metatietovirrat, jotta PDF/A-asiakirja säilyttää pakollisen suodattamattoman metatietovirran (ISO 19005-1 §6.7.2), ja jättää ulkoiset tiedostovirrat (
/Fja/FFilter) koskemattomiksi - Uudelleenrakennettu ristiviitetaulukko skannaa virrattoman kopion asiakirjasta, joten binaarinen virransisältö ei voi enää väärentää objektiotsikoita tai täyttää taulukkoa; uudelleenrakennetun trailer-lohkon
/Sizeheijastaa nyt todellista taulukkoa ja objektinumerot on rajattu Liite C:n enimmäisarvoon - Alkuperäisen ristiviitetaulukon paikannus hyväksyy pelkät CR-rivinlopetukset (ISO 32000-1 §7.5.1) eikä voi enää sovittaa
xref-kirjaimiastartxref:n sisällä; virran avainsanajäsennys sai samanendstream-hännänsuojauksen, jota käytetään muualla, ja etenee nyt ohitettujen virtarunkojen ohi
Version 2.16.2
Korjattu (Fixed)
- Kokonaislukujen jäsennys tavutason PDF-lukijoissa hyväksyy nyt ISO 32000-1 §7.3.3:n salliman eksplisiittisen
+-merkin ja hylkää numerosarjat, jotka ylivuotaisivat, joten vihamieliset tai vioittuneet asiakirjat eivät voi enää kietoa jäsennettyjä pituuksia ja osoitteita harhaanjohtaviksi arvoiksi
Version 2.16.1
Korjattu (Fixed)
- PDF/UA-injektori kirjoittaa luettelon
/Lang-arvon nyt kunnollisena PDF-tekstimerkkijonona; aiemmin se ajoi arvon XML-escaperin läpi, joten&-merkkiä tai sulkuja sisältävä kielitunniste tuotti vioittuneen merkinnän ja ei-ASCII-syöte kirjoitettiin raakamuotoisena UTF-8:na - PDF/E
/ISO_PDFEVersionInfo-merkintä käyttää jaettua tekstimerkkijonoenkoodaajaa, pitäen ei-ASCII-arvot laillisina PDF 1.7:ssä - XML-eskapointi XMP-paketeille poistaa XML 1.0:ssa laittomia ohjausmerkkejä, joten vioittuneesta lähdetiedostosta kopioitu metatietorakenne ei enää voi tehdä koko metatietovirrasta rakenteellisesti virheellistä
- PDF-XMP-päivämuunnos tarkistaa, että päiväkentät ovat numeerisia ja täyttää puuttuvan minuuttikentän, estäen epämuodostuneet ISO 8601 -päivämäärät generoituun XMP:hen; muilla kuin Windows-alustoilla varapäiväleima sisältää nyt myös kellonajan eikä pelkästään päivämäärää
Version 2.16.0
Lisätty (Added)
- Virran purkaminen rekonstruoi nyt
/DecodeParms-ennustajat (PNG-ennustajat 10–15 ja TIFF-ennustaja 2, ISO 32000-1 §7.4.4.4) FlateDecode-purun jälkeen, noudattaen/Colors-,/BitsPerComponent- ja/Columns-arvoja; ennustajan kanssa pakatut objektivirrat — yleinen PDF 1.5+ -kirjoittajavalinne — paljastivat aiemmin differentioituja tavuja, joten niiden sisältämät objektit olivat hiljaisesti näkymättömiä vaatimustenmukaisuuden skannauksille ja merkintöjen injektiolle
Korjattu (Fixed)
- FlateDecode-tunnistus jäsentää nyt
/Filter-arvon nimen tai taulukon muodossa alimerkkijonohaun sijaan, joten ketjutetut suodatinketjut ja sanan esiintymät asiaan liittymättömissä arvoissa eivät enää laukaise harhaa inflate-toimintoa; tuetut ketjut palaavat raakiin tavuihin kuten ennenkin
Version 2.15.1
Korjattu (Fixed)
- Sanakirjajäsennin ohittaa nyt literaalimerkkijonot, hex-merkkijonot ja kommentit tasapainottaessaan
<</>>(ISO 32000-1 §7.2.2), joten sanakirjat, jotka sisältävät arvoja kuten(A >> B)tai sulkevaan rajoittimeen vierekkäistä hex-merkkijonoa, eivät enää katkea trailer-, luettelo- ja vaatimustenmukaisuuden skannauksessa - Literaalimerkkijonojen poimiminen purkaa nyt täyden §7.3.4.2 Taulukko 3 -escape-joukon —
\n \r \t \b \f, oktaali\ddd, rivinjatkukset ja ohittamattoman EOL-normalisoinnin — sen sijaan, että escape-kirjain kopioitaisiin sellaisenaan, palauttaen oikeat/Producer-,/GTS_PDFXVersion- ja/ISO_PDFEVersion-vertailut kirjoittajille, jotka käyttävät oktaaliescapeita - Merkintöjen injektoreiden kirjoittamat literaalimerkkijonot escapoivat nyt CR-, LF- ja muut ohjausmerkit, joten arvot säilyvät lukijan puolen rivinlopetuksen normalisoinnissa tavu kerrallaan
Version 2.15.0
Korjattu (Fixed)
- PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/UA- ja PDF/VT-merkintöjen injektoreiden sekä PAdES-allekirjoituksen ja DSS-polkujen kirjoittamat inkrementaaliset päivitykset säilyttävät nyt lähdetiedoston pysyvän tunnisteen: ensimmäinen trailer-
/ID-elementti siirretään sellaisenaan, kuten ISO 32000-1 §14.4 vaatii, ja vain toinen (muuttuva) elementti päivitetään; aiemmin molemmat elementit regeneroitiin, joten ulkoiset viittaukset ja pitkäaikaiset validointityökulut näkivät eri asiakirjatunnisteen jokaisen tallennuksen jälkeen - PAdES-allekirjoitukset, DSS-injektio ja B-LTA Document Time-stamp siirtävät nyt lähteen trailer-
/Info-viittauksen eteenpäin (ISO 32000-1 §7.5.6), joten asiakirjan ominaisuudet eivät enää häviä lukijapaneeleista allekirjoittamisen jälkeen; Document Time-stamp -trailer saa myös/ID-taulukon - Trailer-
/Info-varapolku ristiviite-stream-asiakirjoille löytää nyt XRef-stream-sanakirjan oikein ja säilyttää viittauksen generointinumeron; se ei aiemmin koskaan täsmännyt vaatimusten mukaisissa PDF 1.5+ -tiedostoissa, pudoten hiljaisesti/Info:n
Version 2.14.4
Korjattu (Fixed)
- Allekirjoitussanakirjan
/M-päivämäärä, jonkaTPdf.SignPadesjaSignPadesByteskirjoittavat, sisältää nyt pakollisenD:-etuliitteen ja ISO 32000-1 §7.9.4 vaatimanZUTC-offset-merkin; tiukat validointiohjelmat hylkäsivät aiemmin allekirjoitusajan epämuodostuneena päivämäärämerkkijonona
Version 2.14.3
Korjattu (Fixed)
- Sanakirja-avainten haut jaetussa PDF-lukijassa vastaavat nyt kokonaisia nimitokeneja (ISO 32000-1 §7.3.5); aiemmin virta, jonka sanakirja luetteli
/Length1:n ennen/Length:a (tyypillistä FontFile-virroille), katkaistiin väärään tavumäärään, sokaistaen hiljaisesti PDF/A-, PDF/UA- ja muut vaatimustenmukaisuuden skannaukset, jotka lukevat fontti-, CMap- tai metatietovirrat /Encrypt-,/Root-,/Size- ja/Info-trailer-haut eivät enää täsmää pidempiä avaimia, joilla on sama etuliite (kuten/EncryptMetadata)- Objektivirran laajennus ei enää luota korruptoituneeseen tai vihamieliseen
/N-arvoon: ei-kokonaislukuarvot tuottavat nyt 0 alustamattoman numeron sijaan, ja/First:sta johdettu yläraja estää ylimitoitetut allokaatiot epämuodostuneiden asiakirjojen skannauksen aikana
Version 2.14.2
Korjattu (Fixed)
- PDF/X-, PDF/VT-, PDF/UA-, PDF/E- ja PDF/R-merkintöjen injektorit kopioivat nyt salatut lähdetiedostot muuttumattomina sen sijaan, että liittäisivät selkotekstiset päivitysosiot; aiempi toiminta tuotti tiedostoja, joiden uusin trailer menetti
/Encrypt-merkinnän (ISO 32000-1 §7.5.6), joten vaatimustenmukaiset lukijat lukivat salatun rungon selkotekstinä TPdf.SignPades,SignPadesBytesjaInjectPadesDssMarkersnostavat nytEPadesCrypto-poikkeuksen, kun lähdetiedosto on salattu, sen sijaan, että hiljaisesti lähettäisivät korruptoituneen tai todentamattoman tiedoston; poista salaus ennen allekirjoittamista tai DSS-materiaalin upottamista
Version 2.14.1
Korjattu (Fixed)
TPdf.SignPadesjaSignPadesBytestäyttävät nyt kaikki neljä allekirjoitussanakirjan/ByteRange-kenttää; aiemmin kolme viimeistä kenttää jäivät nollapaikkamerkkeihinsä, joten tuotetut allekirjoitukset julistivat tyhjän tavualueen ja epäonnistuivat varmentavissa validaattoreissa- PAdES B-LTA Document Time-stamp -sanakirjat saavat saman
/ByteRange-täyttökorjauksen ValidatePadesCompliancehyväksyy nyt standardin allekirjoituksen asettelun, jossa tavualueen aukko sisältää hex-/Contents-arvon, ja tarkistaa, että toinen alueen segmentti päättyy täsmälleen tiedoston loppuun; aiemmin vain aukottomat alueet läpäisivät kattavuustarkistuksen
Version 2.14.0
Lisätty (Added)
TPdf.ExportXFDFsarjoittaa jokaisen lomakekentän arvon ja merkinnän kaikilta sivuilta XFDF-asiakirjaan (ISO 19444-1), lähettäen<fields>hierarkkisille lomakearvoille ja<annots>kaikille tuetuille merkintäalatyypeille (text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link, redact)TPdf.ImportXFDFlukee XFDF-asiakirjan takaisin ladattuun PDF:ään, luoden uudelleen merkinnät vastaavilla sivuilla ja soveltaen kenttäarvoja niiden widget-merkintöihinTPdfAnnotation-tietue sai kentätName(NM),Subject,ModificationDate(M),CreationDate,Icon,Opacity(CA), viivanpäätepisteet, monikulmion/moniviivan kärkipisteet ja ink-listan elekentät, joten XFDF-kierrokset säilyttävät täyden merkintämetatiedon- Uusi
XfdfLab-näyte Delphi-, C++Builder- ja Lazarus-demo-sarjoissa esittelee vienti/tuonti-kierroksen
Version 2.13.6
Korjattu (Fixed)
ValidatePdfAkäsittelee nyt luettelon/Metadata-virrat, joista puuttuu/Type /Metadatatai/Subtype /XML, puuttuvana XMP-metatietonapvaiMissingXmpMetadata-koodin kautta- PDF/A-preflightraportit luokittelevat nyt
pvaiMissingXmpMetadata-koodin Metatiedoksi ja suosittelevat luettelon/Metadata-virtaa, jolla on/Type /Metadata,/Subtype /XML, suodattamaton XMP japdfaid-merkinnät
Version 2.13.5
Korjattu (Fixed)
ValidatePdfAraportoi nyt Widget-merkinnät ilman ulkoasusuunkuvaussanakirjaa ja PDF/A-2- / PDF/A-3-merkinnät, jotka tarvitsevat mutta joilta puuttuu/AP,pvaiAnnotationApDictViolation-koodin kautta- PDF/A-preflightraportit luokittelevat nyt
pvaiAnnotationApDictViolation:n sisällöksi, jota merkintöjen injektio ei voi korjata
Version 2.13.4
Korjattu (Fixed)
ValidatePdfAraportoi nyt PDF/A-2- ja PDF/A-3-inline-kuvat, joiden/I- tai/Interpolate-arvo ontrue,pvaiImageDictionaryViolation-koodin kautta, vastaten olemassa olevaa Image XObject -sanakirjakatetta- PDF/A-preflightraportit luokittelevat nyt
pvaiImageDictionaryViolation:n sisällöksi, jota merkintöjen injektio ei voi korjata
Version 2.13.3
Korjattu (Fixed)
ValidatePdfAraportoi nyt PDF/A-1-inline-kuvat, jotka käyttävät/LZWDecode- tai lyhennettyä/LZW-suodatinta sisältövirtojen sisällä,pvaiInlineImageLzwForbidden-koodin kautta, vastaten olemassa olevaa PDF/A-2- ja PDF/A-3-inline-kuvakatetta- Inline-kuvasuodattimen skannaus etenee nyt ohi johtavien resurssinimien kuten
/GS1, välttäen pysähtymistä laajempien PDF/A-1-sisältövirtojen skannauksen aikana
Version 2.13.2
Lisätty (Added)
TPdf.SetFocusedFormFieldTextkirjoittaa tekstin tällä hetkellä aktiivisen lomakekentän muokkausbufferiinFORM_ReplaceSelection-toiminnon kautta, symmetrisestiFocusedFormFieldText:lle. AcroForm-teksti/combo-kentille arvo sitoutuu/V:hen fokuksen menetyksen yhteydessä ja säilyy; XFA-tekstikentille kirjoitus kohdistuu vain muistissa olevaan bufferiin (PDFium ei paljasta julkista API:a XFA-arvojen sovittamiseksi takaisin datasets-pakettiin, joten se ei säily tallennuksen yli)- JavaScript-isäntäalusta kytketään nyt aina, kun V8-moottori on käytettävissä, riippumatta siitä, onko asiakirja XFA — joten upotettu AcroForm JavaScript (doc-tason skriptit, kentän laskelmat,
app.alert) voi suorittaa myös. Aiemminm_pJsPlatformkytkettiin vain XFA-asiakirjoihin, jättäen AcroForm JS:n hiljaisesti pois käytöstä
Muutettu (Changed)
- JavaScript-isäntäalustan kytkentä on nyt riippumaton XFA-päätöksestä
InitializeFormFill:ssä —m_pJsPlatform-taulukko rakennetaan aina, kunV8FeaturesAvailableon tosi, ja sitä sovelletaan XFA-versio/callback-kytkennän jälkeen eikä sen sisällä
Version 2.13.1
Lisätty (Added)
- Uudet isäntätapahtumat paljastavat tietoja, jotka v2.13.0:n lomakkeentäyttö-callbackit aiemmin nielivät:
OnXfaUriAction,OnXfaPageCountChanged,OnXfaFocusChange,OnXfaEmail,OnXfaHttpRequest,OnXfaOpenFile,OnJavaScriptBeep,OnJavaScriptPrint,OnJavaScriptMail,OnJavaScriptSubmitForm. Jokainen tapahtuma on oletusarvoisesti ei-op-toiminto, kun sitä ei ole määritetty, joten olemassa olevat isännät eivät ole vaikutuneita TPdf.XfaFormPacketsvain-luku-ominaisuus palauttaa kertakuvaannoksen kaikista XFA-paketeista (TXfaPacketList), täyttäen aiemmin julistetuista mutta käyttämättömistä tyypeistäTXfaPacket/TXfaPacketList- XFA-kohtaiset PDFium-virhekoodit
FPDF_ERR_XFALOAD/FPDF_ERR_XFALAYOUTon nyt sidottu ja ne näkyvätLastPdfError:n kautta, korvaten yleisen “Unknown error” XFA-lataus/-asetteluvirheiden yhteydessä
Muutettu (Changed)
FFI_DoURIActionWithKeyboardModifierkuulee nytOnXfaUriAction-tapahtumaa ennen XFA-kentän URI:n suorittamista shellissä, antaen isännälle veto-oikeuden (tietoturva: vihamielinen XFA-kenttä saattoi aiemmin käynnistää mielivaltaisia URL-osoitteita ehdoitta). Määrittämättömät käsittelijät säilyttävät aiemmanShellExecuteW-oletuksenDecodeFormFieldTypereitittää nyt XFA-kenttätyypitIsXfaFormField:n kautta eikä eksplisiittisen 8-haaran case-rakenteen kautta, pitäen enumin linjassaFPDF_FORMFIELD_XFA_*:n kanssa järjestysnumeron perusteella
Korjattu (Fixed)
ValidatePdfAraportoi nyt PDF/A-1-vaatimukset, jotka käyttävät PDF 1.5 -ristiviite-streameja tai objektivirtoja uudellapvaiPdfA1Pdf15Structure-koodilla, samalla kun se sallii objektivirrat PDF/A-2:lle ja PDF/A-3:lle
Version 2.13.0
Lisätty (Added)
- Täysi XFA (XML Forms Architecture) -ajonaikaiseen tuki:
TPdf.InitializeFormFillkytkee nyt kaikki 14 versio-2FPDF_FORMFILLINFO-callbackia (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) ja liittääIPDF_JsPlatform:n, jotta XFA-yhteensopivapdfium.dllvoi renderöidä ja skriptata dynaamisia XFA-lomakkeita - Uusi
Lib\FPdfXfa.pas-yksikkö, joka julistaa XFA-vakiot (FXFA_PAGEVIEWEVENT_*,FXFA_MENU_*,FXFA_SAVEAS_*,FPDF_FORMFIELD_XFA_*) jaTXfaPacket/TXfaSaveFormat-tyypit, jotka aiemmin esiintyivät vain kommenteissa - XFA-staattinen paketinlukija
TPdf:ssä:GetXfaPacketCount/GetXfaPacketName/GetXfaPacketContent/GetXfaPacketByNamesekäGetXfaTemplate/GetXfaDatasets/GetXfaConfigpoimivat XFA-template-,datasets- jaconfig-paketit raaka-XML:nä ilman XFA-yhteensopivaa ajonaikaa — hyödyllistä vaatimustenmukaisuuden tarkastukseen ja datan migraatioon - Kapasiteettikoettimet: globaali
XfaFeaturesAvailableja asiakirjakohtaisetTPdf.XfaRuntimeAvailable(onnistuikoFPDF_LoadXFAtodella) jaTPdf.XfaStaticReadable(ratkaistiinko pakettilukijaviennit) TPdfFormFieldTypelaajennettufiXfa-,fiXfaCheckBox-,fiXfaComboBox-,fiXfaImageField-,fiXfaListBox-,fiXfaPushButton-,fiXfaSignature-,fiXfaTextField-kentillä, jaDecodeFormFieldTypeyhdistää uudetFPDF_FORMFIELD_XFA_*-arvot- JavaScript-isäntätapahtumat
TPdf:ssä:OnJavaScriptAlert,OnJavaScriptResponse,OnXfaGotoUrljaOnXfaRuntimeMissingantavat isännän mukauttaa JS-valintaikkunoita ja XFA-navigointia tai reagoida tilanteeseen, jossa XFA-asiakirja ei voi käynnistää moottoria - Uusi
XfaLab-Delphi-näyte, joka esittelee XFA-tunnistuksen, paketinpoiminnan, kapasiteettimittauksen ja ajonaikaisen puuttumisenvarapolun
Muutettu (Changed)
TPdf.LoadDocumentesiskannaa nyt syötteen XFA-merkkien varalta (/XFAAcroForm-sanakirjassa tai luettelon/NeedsRendering) ja löytyessään automaattisesti valitseepdfium.v8.dll:n asettamallaEnableV8Engine := Trueennen kuin singleton-kirjasto ladataan ensimmäistä kertaa; kun tavallinenpdfium.dllon jo ladattu, prosessi ei voi vaihtaa, jotenOnXfaRuntimeMissingsignaloi kyseisen tapauksenTPdf.GetPageCountheijastaa nyt sivumäärän, jonka XFA-moottori raportoiFFI_PageEvent:n kautta dynaamisen sivutuksen jälkeen, eikä vain staattista PDF-sivupuuta- Kun XFA-asiakirja avataan, mutta ajonaikainen ympäristö ei ole käytettävissä,
InitializeFormFillkiinnittää nytversion=1:n jaxfa_disabled=1:n sen sijaan, että pyytäisi versiota 2 määrittämättömillä callbackeilla, mikä aiemmin saattoi aiheuttaa virheellisen callback-osoittimen viittauksen
Version 2.12.2
Korjattu (Fixed)
ValidatePdfAComplianceraportoi nyt käytetyt mukautetut XMP-nimiavaruudet ilmanpdfaExtension:schemas-rakennetta, samalla hyväksyen standardinpdfaid-metatiedot ilman laajennusilmoituksia- PDF/A-3:n upotettujen tiedostojen validointi edellyttää nyt sekä ylimmän tason
/F- että/UF-merkintöjä tiedostomääritysten sanakirjoissa ja jättää huomiotta sisäkkäiset/EF-stream-avaimet tarkistaessaan niitä nimiä
Version 2.12.1
Korjattu (Fixed)
ValidatePdfACompliancepurkaa nyt escapatut PDF-nimitokenit ennen JavaScript-, LZWDecode-, Type1- ja niihin liittyvien kiellettyjen nimien sovittamista, joten obfuskoituneita mutta semanttisesti identtisiä nimiä raportoidaan oikein- PDF/A-inline-kuvatarkistukset hylkäävät nyt
/Filter- ja/F-arvot, jotka käyttävät/LZWDecode:a, lyhennettyä/LZW:ta tai/Crypt:a, taulukko- ja escapettu-nimi-muodot mukaan lukien - PDF/A-validointi raportoi nyt metatietovirrat, joissa on kielletyt virransuodattimet, OutputIntent ICC-profiilit, joiden
/N-komponenttimäärä puuttuu tai on epäjohdonmukainen, ja PDF/A-3:n upotetut tiedostomääritteet, joista puuttuu tai joissa on virheellinen/AFRelationship
Version 2.12.0
Lisätty (Added)
- TSA HTTP-pyynnöt asettavat nyt eksplisiittiset 30 sekunnin aikakatkaisut jokaiselle vaiheelle (resolve/connect/send/receive)
WinHttpSetTimeouts:n kautta, joten hidas tai tavoittamaton aikaleima-auktoriteetti ei voi jättää allekirjoitussäiettä roikkumaan loputtomasti WinHttp:n implisiittisiin oletuksiin luottamisen sijaan - Pyyntokohtainen nonce-johdannaisuus PAdES B-T / B-LTA -aikaleimapyynöille, kun kutsuja jättää
TPadesSignOptions.Nonce:n pois: monotonisen laskurin + seinäkellon +GetTickCount64:n + prosessitunnuksen SHA-256-kooste korvaa aiemman kiinteän$100000000-varavoimana, joten samalla millisekunnilla lähetetyt kaksi pyyntöä eivät enää käytä samaa toistohyökkäysnonceja PdfInflaterajoittaa nyt puretun ulostulon 256 Mt:hen estääkseen zlib-pakatun virran muistin tyhjentämisen vihamielisellä tai vioittuneella syötteellä (“zlib bomb”); raja on riittävä kaikille todellisille PDF-virroille
Muutettu (Changed)
TPdfView-peittokuvan sekoitus (hakukorostus, tekstivalinta, lukusana, leviämisvalinta) ei enää käytä pikselikohtaistaGetPixel/SetPixelV:tä; suorakulmio sekoitetaan nyt 32-bpp:n näyttöruutuTBitmap:n jaScanLine:n kautta yhdessä läpäisyssä, poistamalla tuhannet GDI-kernel-ylitykset maalauksen aikana ja tehden suuret valinnat reagoiviksiFPdfAsn1.TDerReader.ReadIntegerhylkää nyt INTEGER-kentät, jotka ovat yli 8 tavua pitkiä (ja 8-tavuiset negatiiviset, joiden etumerkki-bitti vaatisishl >= 64), palauttamalla 0 sen sijaan, että laskisi väärän arvon määrittelemättömän siirron kautta CMS/PAdES ASN.1 -syötteessäParseTimeStampRespei enää heijasta pyyntönonce:a takaisinTPadesTimestamp.Nonce:na; kunnes TSTInfo-kävelijä, joka tarkistaa palautetun nonce:n, on valmis, kenttä pysyy 0:na signaloimassa “not verified” sen sijaan, että annettaisiin kutsuville väärää luottamusta siihen, että aikaleimavastaus on tuore
Korjattu (Fixed)
PointsToPixelspalautti syötteensä muuttumattomana jokaiselle DPI:lle: jakaja oliPointsPerInch(72-vakio) eikä literaali 72, jolloin kaava kutistui muotoonResult := Points. Kaikki ulkoiset kutsujat, jotka tekevät pisteet→laitepikseli-mitoitusta tämän avustajan kautta, saavat nyt oikeanPoints × PixelsPerInch / 72:nPdfMaxObjNumaliarvioi objektivirrat käyttävillä asiakirjoilla (PDF 1.5+ ObjStm):/ObjStm:n sisällä pakatuilla objekteilla ei oleN 0 obj-merkkiä, joten raaka-tavuskannaus ei löytänyt niitä, ja injektorit, jotka allokoivatMaxObj+1:n uusille objekteille, törmäisivät piilotettuihin ObjStm-jäseniin ja turmellisivat tiedoston hiljaisesti. Skannaus laajentaa nyt objektivirrat ensin, joten jokainen objektinumero on näkyvissäInjectPdfAMarkersei enää vääristä PDF/A-vaatimustenmukaisuusväittämää salatulla asiakirjalla: PDF/A (ISO 19005-1 §7.1) kieltää salauksen, ja injektori kopioi lähteen aiemmin merkkeineen, vaikka juuri seuraava validointi hylkäisi sen. KunHasEncrypton asetettu, lähde kulkee nyt muuttumattomana läpi. NormaaliTPdf.SaveAsPdfA-polku riisuu jo salauksen (saRemoveSecurity) ennen injektiota, joten tämä koskee vain suoria kutsujiaPdfReadStreamByteskieltäytyy nyt/Length-arvosta, joka on suurempi kuin koko tiedosto, ennen tulosbufferin allokointia, sulkemalla varhaisen allokaatiopolun korruptoituneessa tai vihamielisessä epäsuorassa pituudessa
Version 2.11.0
Lisätty (Added)
- PDFium
FPDF_FILEHANDLER-tietue julistaa nyt kuusi callbackiaan (Release,GetSize,ReadBlock,WriteBlock,Flush,Truncate) todellisina kenttinä kommenttien sijaan, vastaten C-otsikon rakennetta. XFA FFI -tiedostonsiirto-callbackit (FFI_OpenFile/FFI_EmailTo/FFI_UploadTo/FFI_DownloadFromURL), jotka palauttavat tai kuluttavatPFPDF_FILEHANDLER:ia, jäävät edelleen toteuttamatta Pascal-lomakkeentäyttökerroksessa, mutta tyyppi on nyt rakenteellisesti oikea tulevaa XFA-lähetys/latauspolkua varten - PDFium-kirjaston lataus ja purkaminen (
LoadLibrary/UnloadLibrary) on nyt serialisoitu prosessilaajuisella kriittisellä osalla, joten kaksiTPdfFuture<T>-työsäiettä (tai pääsäiettä kilpaileva työsäie) ei voi molemmat havaitaPDFiumLibrary=0:n ja tehdä kaksinkertaista sidontaa tai vapauttaa DLL:ää, kun toinen säie on kesken sidonnassa initialization/finalization-osa kutsuu nytUnloadLibrary:a yksikön purkamisen yhteydessä, varmistaen, ettäFPDF_DestroyLibrarysuoritetaan (työsäikeen liittyminen, V8-isolaatin hävittäminen, fontti/välimuisti-teardown) sen sijaan, että luotettaisiin OS:n DLL:n vapauttamiseen
Muutettu (Changed)
TPdf.SetActivenielee nyt kaikki latauksen aikaiset poikkeukset (aiemmin vainEPdfError), joten virta-virhe tai käyttöoikeusrikkomus lomakkeen/sivun asetuksen aikana jättääActive=Falseosittain ladatun komponentin epämääräiseen tilaan sijaan- Johdonmukainen merkistöenkoodaus PDFium-metatietoavaimen argumenteille:
TPdf.GetMetaTextkäyttää nyt samaa FPCAnsiString/ DelphiUTF8Encode-jakoa kuinGetViewerPreferenceja latauspolut, eikä pelkkääAnsiString(Tag)-muunnosta BytesToAnsi-,AnsiToBytes-,WriteBytes- jaWriteStr-avustajien deduplikointi:FPdfCompresstuo ne nytFPdfPdfCommon:sta (senWriteBytesToStream/WriteAnsiToStream-aliakset on poistettu) ja ylimääräinen kolmiargumenttinenBytesToAnsi-ylikuormitusFPdfPdfa:ssa poistetaan.FPdfAsn1säilyttää paikallisen kopiansa tarkoituksella, jotta kryptografiakerros pysyy vapaana vaatimustenmukaisuuskerroksen yksiköstä
Korjattu (Fixed)
- Resurssivuoto
TPdf.LoadDocument:ssa (tiedosto, muisti,TBytes,TMemoryStream, mukautettu virta) jaTPdf.CreateDocument:ssa: josInitializeFormFilltaiReloadPagenosti poikkeuksenFPDF_LoadDocument/FPDF_CreateNewDocument:n onnistumisen jälkeen, natiiviFPDF_DOCUMENT-kahva vuosi, koskaFActiveoli tuolloin vielä False. Jokainen polku käärii nyt latauksen jälkeisen asetuksentry/except:iin ja sulkee asiakirjan virheen yhteydessä, jättäen komponentin puhtaasti passiiviseksi - Ystävällisempi PDFium DLL -latauksen diagnostiikka:
CheckLoadLibraryhavaitseeERROR_BAD_EXE_FORMAT(193) ja raportoi 32/64-bittisen arkkitehtuuriristiriidan osoittamalla vastaavaanDLLs/Win32- taiDLLs/Win64-käännökseen, yleisen OS-virheen välittämisen sijaan.CheckGetProcAddressilmoittaa nyt, että käyttöönotettupdfium.dllon sidontaa vanhempi, kun tarvittu vienti puuttuu, eikä pelkästään OS:n “procedure not found” -tekstiä
Version 2.10.1
Korjattu (Fixed)
- PAdES SignerInfo sid -standardointi: allekirjoittajan tunniste käyttää nyt RFC 5652 §5.3 -määrittelyä
issuerAndSerialNumber-muodossa (myöntäjä Name + serialNumber, molemmat purettu sellaisenaan allekirjoittajavarmenteen DER-koodauksesta), korvaten aiemman ei-standardinsubjectKeyIdentifier+ koko varmenteen SHA-256 -paikkamerkin, jonka Adobe Acrobat ja muut vaatimustenmukaiset validointiohjelmat hylkäsivät. Uusi TbsCertificate DER-kävelijä (ExtractIssuerAndSerial) lukee myöntäjän SEQUENCE-rakenteen ja serial INTEGER-arvon raakoina TLV-tavuina — sarjanumerot ylittävät useinInt64-alueen, joten raaka TLV on pakollinen.subjectKeyIdentifier-muoto säilyy varavoimena vain silloin, kun varmenteen DER-jäsentäminen epäonnistuu
Muutettu (Changed)
TCmsSignerId.SerialNumber: Int64on korvattu kentälläSerialDer: TBytes(raaka serialNumber TLV). CMS-rakentaja upottaa viipaloitun TLV:n sellaisenaan rakenteeseenIssuerAndSerialNumber, välttäenInt64-ylivuodon 20-tavuisissa CA-sarjanumeroissa (RFC 5280 §4.1.2.2 yläraja)
Version 2.10.0
Lisätty (Added)
- PAdES B-LT pitkäaikainen validointi: kun
TPadesSignOptions.Level >= plB_LT,SignPadesBytesliittää inkrementaalisen päivityksen, joka sisältää/DSS-sanakirjan allekirjoittajavarmenteella ja täydellisellä välillisellä ketjulla (itseallekirjoitettu juuri poissuljetaan RFC 5652 §10.2.3 mukaisesti) sekä/Extensions /ESICLevel 1 -merkin (EN 319 142-1 §5.4.2) - PAdES B-LTA arkistointiaikaleima: kun
Level >= plB_LTAjaTsaUrlon asetettu, liitetään Document Time-stamp -allekirjoitussanakirja (/SubFilter /ETSI.RFC3161), jonka/ByteRangekattaa koko tiedoston; ESIC-merkki korotetaan Level 2 -tasolle. Tämä täydentää neljä PAdES perustason tasoa (B-B, B-T, B-LT, B-LTA) - Varmenneketjun kerääminen:
ResolveWinSignerkutsuu nytCertGetCertificateChain-funktiota ja täyttääTPadesResolvedSigner.ChainCertDer-kentän välisten CA-varmenteiden tiedoilla, jotta B-LT/DSS /Certssisältää jokaisen allekirjoituksen validointiin tarvittavan varmenteen ilman ulkoisia hakuja.CertFreeCertificateContexton nyt sidottu, mikä sulkee v2.8.0:ssa huomatun yhden-konteksti-per-allekirjoitus -vuodon - PDF/A-integraatiotyökulku:
TPdf.SignPadesWithPdfAmuuntaa asiakirjan ensin PDF/A-muotoon (korkein taso, jonka kirjasto tällä hetkellä tuottaa) ja soveltaa sitten pyydettyä PAdES-allekirjoitusta — pitkäaikaisen arkistoinnin säiliömalli, jota EN 319 142-1 Liite A.7 suosittelee
Version 2.9.0
Lisätty (Added)
- PAdES B-T luotettu aikaleima:
TPadesSignOptionssaa uudet kentätLevel,TsaUrljaNonce. KunLevel >= plB_TjaTsaUrlon asetettu,SignPadesBytespurkaa allekirjoitusarvon rakennetusta CMS:stä, pyytää sille RFC 3161 -aikaleimaa ja upottaa palautetun TimeStampTokenin SignerInfo-allekirjoittamattomana attribuuttinasignature-time-stamp— B-T luotetun ajan vaihe (EN 319 142-1 §6.3 vaatimus o) FPdfTsa: alustariippumaton RFC 3161 -asiakas —BuildTimeStampReq(versio 1, SHA-256 messageImprint allekirjoitusarvon yli, nonce, certReq=true),ParseTimeStampResp(hyväksyy PKIStatus 0/1, hylkää 2+, purkaa TimeStampToken ContentInfon sellaisenaan) jaRequestTimestamp(yhdellä kertaa rakenna+POST+jäsentä).PadesTsaAvailablerajoittaa ominaisuuden alustoilla ilman HTTP-taustajärjestelmääFPdfTsaWin: Windows WinHttp-taustajärjestelmä, sidottu dynaamisesti winhttp.dll:stä (nolla uutta käännösaikaista riippuvuutta; Windowsin varmennesäilö neuvottelee HTTPS:stä). PeilaaFPdfCryptoWin-dynaamisen sidonnan malliaFPdfCms:ExtractSignatureValuekäy rakennetun CMS:n läpi palauttaakseen raaka allekirjoituskoketit (TSA-häntösyöte), jaAddSignatureTimestampToCmsrakentaa ContentInfon uudelleen uudellaunsignedAttrs [1](0xA1) -rakenteella, joka kantaa aikaleima-attribuutin. Vaiheen-1-validaattori tunnistaa tuloksen B-T-allekirjoituksena
Version 2.8.0
Lisätty (Added)
- PAdES B-B -allekirjoituspinou: neljä uutta puhdasta Pascal/alustariippumatonta rakennuspalikkaa (
FPdfSha256,FPdfAsn1,FPdfCms,FPdfCrypto) sekä Windows CNG -taustajärjestelmä (FPdfCryptoWin) antavatTPdf.SignPades- jaSignPadesToStream-metodeille mahdollisuuden tuottaa PAdES B-B -allekirjoituksen päästä päähän. Allekirjoittajavarmenne ratkaistaan SHA-1-peukalojäljen perusteella Current User “MY” -säilöstä; RSA-PSS (suositeltu), RSA PKCS#1 v1.5 ja ECDSA ovat kaikki tuettujaNCryptSignHash:n kautta FPdfSha256: itsenäinen FIPS 180-4 SHA-256 (Init/Update/Final + kerta-apurit). FPC 3.2.2 ei sisällä SHA-2-yksikköä, joten kirjasto omistaa yhden, jotta jokainen CMS-koodipolku pysyy yhdelläTSHA256Digest-tyypillä ilman RTL-haaroitustaFPdfAsn1: DER-koodaaja (TDerWriter) ja lukija (TDerReader), jotka kattavat SEQUENCE/SET/OID/INTEGER/OCTET STRING/UTCTime/GeneralizedTime/kontekstikohtaiset tagit, tietyllä pituuskoodauksella ja IMPLICIT-tagi-käsittelyllä, joita CMS vaatiiFPdfCms: CAdES SignedData -rakentaja (BuildSignedData), joka tuottaa content-type-, message-digest- ja signing-certificate-v2 -allekirjoitetut attribuutit, joita PAdES perustaso edellyttää, valinnaisilla signing-time- ja commitment-type-indication-attribuuteilla. SignedAttrs-tiiviste lasketaan SET-tagistetun (0x31) muodon yli ja uudelleenemitoidaan IMPLICIT [0] (0xA0) -tagilla RFC 5652 §5.4 mukaisestiFPdfCrypto+FPdfCryptoWin: kryptografisen taustajärjestelmän abstraktio, jossa onPadesCryptoAvailable/ResolvePadesSigner, sekä Windows-toteutus, joka sitoo crypt32.dll:n / ncrypt.dll:n dynaamisesti (ei uutta käännöaikaista DLL-riippuvuutta). ECDSA-allekirjoitukset koodataan uudelleen Windowsin IEEE P1363 r¦s -muodosta DERECDSA-Sig-Value-muotoon, jota CMS vaatiiSignPadesBytes: tavutason allekirjoituksen injektointi — varaa kiinteän levyisen/Contents-heksapaikan, laskee kattavan/ByteRange-alueen, tiivistää asiakirjan, rakentaa ja upottaa CMS:n sekä liittää inkrementaalisen päivityksen. Validointiohjelma (v2.7.0) tunnistaa tuloksen PAdES B-B -allekirjoituksena
Version 2.7.0
Lisätty (Added)
- PAdES rakenteellinen validointiohjelma (ETSI EN 319 142-1 V1.2.1): uusi
FPdfPades-yksikkö jaTPdf.ValidatePades-metodi tutkivat allekirjoitusarvosanakirjoja, jotka ovat tavoitettavissa/ByteRange-kautta, käyvät CMSSignedData-rakenteen/Contents:n sisällä riittävän pitkälle vahvistaakseen CAdES-detached-muodon ja tunnistavat neljä perustason tasoa (B-B, B-T, B-LT, B-LTA) sekä Document Time-stamp -sanakirjat (/SubFilter /ETSI.RFC3161) - PAdES lauseketason ongelma-aineisto: 26
ppei*-enumia kattavat/SubFilter-hyväksyttävyyden (adbe.pkcs7.sha1jaadbe.x509.rsa_sha1merkitty kielletyiksi),/ByteRange-tiedoston kattavuuden,/Cert-kiellon, CMSSignedData-muodon (yksi allekirjoittaja, detached eContent, versioalue), vaaditut allekirjoitetut attribuutit (content-type,message-digest,signing-certificate/v2), kielletyt tiivisteet (MD5, SHA-1),/Reasonvscommitment-type-indication-keskinäispoissulkavuuden (vaatimus d), B-T luotetun ajan vaatimuksen, B-LT/DSS+/Certs+ ESIC Level 1 -merkin sekä B-LTA Document Time-stamp + ESIC Level 2 -merkin - DSS-injektori:
TPdf.SaveAsPadesDss/SaveAsPadesDssToStreamliittävät inkrementaalisen päivityksen, joka kantaa/DSS-sanakirjan (/Certs-,/OCSPs-,/CRLs-virtataulukot) ja/Extensions /ESIC-merkin (Level 1 tai 2), asiakirjan kopioon säilyttäen alkuperäiset tavut — B-LT/B-LTA-validointimateriaalin upotusvaihe (lauseke 5.4.2) - Alustariippumaton, nollariippuvuinen vaihe: validointiohjelma ja injektori ovat puhdasta Pascal-koodia ja toimivat jokaisessa tuetussa IDE:ssä (Delphi, Lazarus, FPC, C++Builder); tämä julkaisu ei vaadi kryptografista taustajärjestelmää, eikä uutta DLL-riippuvuutta esitellä
Version 2.6.0
Muutettu (Changed)
- Standardien välinen deduplikointi: seitsemän muuta monistettua apufunktiota (PdfEnclosingObjNum, PdfDictRefNum, PdfExpandObjectStreams, PdfTextStr, ExtractLiteralString, ExtractXmpAttr) on poistettu yksittäisistä standardiyksiköistä ja yhdistetty moduuliin
FPdfPdfCommon, mikä vähentää noin 300 rivin kopioidu-koodin ylläpitotaakkaa - PreflightReport-laatu: PDF/X- ja PDF/E-sisältöluokan ongelmat, jotka aiemmin putosivat yleiseen “puuttuva merkki” -luokkaan, kantavat nyt tarkkoja Content/Metadata/Security-luokkia ja lausekekohtaisia suosituksia (noin 15 enumia molemmissa standardeissa)
- PDF/E- ja PDF/R-testikattavuus: kuusi muuta nollakattavuuden enumia sai positiivisia testejä (
pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden,pveiEmbeddedFilesForbidden,pvriBadHeader,pvriProhibitedInfoEntry) - Lazarus-käännöskorjaus:
Tests.PdfVT(Delphi-kohtainen DUnitX-yksikkö, joka lisättiin v2.5.x:ssä) on nyt poissuljettu Lazarus-projektista käännöksen palauttamiseksi
Version 2.5.3
Lisätty (Added)
- OutputIntent-täydellisyys (PDF/X-4 §6.2.4):
pvviOutputIntentSchememerkitsee OutputIntentin, jonka/Sei ole/GTS_PDFX;pvviOutputIntentMissingIdentifiermerkitsee puuttuvan/OutputConditionIdentifier-arvon - PDF/VT-2 Reference XObject -poikkeus (§6.2.2):
pvviReferenceXObjectForbiddenei enää laukeaPDF/VT-2-tiedostolle, joka saa laillisesti käyttää Reference XObjecteja X-5g/5pg-pohjalla - MIME-erottimen merkkivalidointi (RFC 2046 §5.1.1):
vtmviBoundaryInvalidCharmerkitsee erottimen, jonka merkit ovat bchars-joukon ulkopuolella tai jonka pituus ylittää 70
Korjattu (Fixed)
InjectPdfVTMarkerskirjoittaa nyt Info/CreationDate- ja/ModDate-arvot tallennusvalinnoista, jotta tuotettu tiedosto käy läpiValidatePdfVTCompliance-tarkistuksen ilman virheellistäpvviInfoModDateMismatch-ilmoitusta (injektori kirjoitti aiemmin XMP-päiväykset uudelleen mutta jätti Info-sanakirjan päiväykset vanhentuneiksi)
Version 2.5.2
Lisätty (Added)
- Info
/ModDate-yhteensopivuus (§6.3 NOTE 2, PDF/X-4-pohja):pvviInfoModDateMismatchmerkitsee Info-sanakirjan/ModDate-arvon, joka PDF-päiväyksestä XMP-päiväykseen normalisoinnin jälkeen ei vastaaxmp:ModifyDate-arvoa - PDF/VT-2s inline-lohkon vaatimustenmukaisuus (Liite A.2): MIME-validaattori suorittaa nyt
ValidatePdfVTCompliance-tarkistuksen jokaiselle inline-application/pdf-osalle ja merkitsee ei-PDF/VT-rungonvtmviInlinePdfNotPdfVT-koodilla
Version 2.5.1
Lisätty (Added)
- DParts-lohkojako-validointi (ISO 16612-2 §6.5 Taulukko 4):
pvviDPartsBadChunkingmerkitsee/DParts-taulukon, jonka ei-lopulliset alitaulukot eivät sisällä tasan 8192 alkiota tai jonka viimeinen alitaulukko on alueen 1..8192 ulkopuolella - RecordLevel-virtojenvälinen yhdenmukaisuus (Liite A.2): PDF/VT-2s MIME-validaattori purkaa nyt jokaisen inline-PDF:n
/RecordLevel-arvon ja merkitsee erimielisyydenvtmviRecordLevelMismatch-koodilla, täydentäen olemassa olevaa NodeNameList-tarkistusta - Toistuvat graafisen olion vihjeet (§6.7):
pvviGtsScopeInvalidValuemerkitsee/GTS_Scope-arvon joukon {SingleUse, Record, File, Stream, Global, Unknown} ulkopuolella;pvviGtsScopeRecordWithoutRecordLevelmerkitsee/Record-arvon ilman/RecordLevel-arvoa;pvviGtsXidNotUuidmerkitsee/GTS_XID-arvon, joka ei ole RFC 4122 uuid: URI;pvviGtsEnvMissingmerkitsee puuttuvan/GTS_Env-arvon, kun/GTS_Scopeon Stream tai Global (§6.7.4) - MIME-etäviittauksen tunnistus (Liite A.2):
vtmviForwardReferencemerkitsee inline-PDF:n, joka viittaa tiedostonimeen (/EF /F-kautta), jota ei ole esitellyt aiempi liiteosa virrassa
Korjattu (Fixed)
ExtractNodeNameListFromPdfjaExtractRecordLevelFromPdfmoduulissaFPdfPdfvtMimeratkaisivat toistuvan off-by-one-virheen, jossaAnsiFindKey:n palauttama 1-pohjainen siirtymä käsiteltiin absoluuttisena tavusiirtymänä laajennettuun PDF:ään
Version 2.5.0
Lisätty (Added)
- PDF/VT Document Part Metadata (DPM, ISO 16612-2 §6.6):
TPdfVTSaveOptionssai kentätDpmEntriesjaDpmTarget, jotta kirjoittaja voi liittää/DPM-sanakirjan syntetisoituun DPart-solmuun, avaimen nimen validoinnilla Liitteen E second-class-prefix-säännön ja §6.6 NMTOKEN- / ainutlaatuisuus- /GTS_Managed-muotosääntöjen mukaisesti validointiohjelman puolella - PDF/VT-2s suoratoistovaihto (Liite A): uusi
FPdfPdfvtMime-yksikkö tarjoaaBuildPdfVT2sStream- jaValidatePdfVT2sStream-funktiotmultipart/mixed-MIME-kuorolle, joka kantaa inline-PDF/VT-lohkoja ja liite-ICC-profiileja, sekäX-PDFVT-Stream-version: 1-otsikon järjestyssäännön ja virtojenvälisenNodeNameList-yhdenmukaisuustarkistuksen TPdf.ValidatePdfVTsuorittaa nyt virallisen JavaScript-toimintojen määrän laskennanFPDFDoc_GetJavaScriptActionCount-kautta, täydentäen tavutason/JavaScript-nimiskannausta
Korjattu (Fixed)
- PDF/VT
Trapped-oikeellisuus PDF/X-4-pohjalla:ptvUnknown-enumiarvo on poistettu (PDF/X-4 kieltää/Unknown-arvon),ptvUnspecifiednormalisoidaan/False-arvoksi kirjoitushetkellä (myös puuttuva/Trappedon kielletty), ja uusipvviTrappedInvalid-ongelma merkitsee puuttuvan taiUnknown-arvon ValidatePdfVTCompliancelaajentaa nyt objektivirrat (PdfExpandObjectStreams) ennen skannausta, joten katalogi, OutputIntent tai Metadata-sanakirja, joka on tallennettu pakatun ObjStm:n sisään (PDF 1.5+, tyypillistä PDF/X-4-tuottajille), on tavutason hakujen tavoitettavissa
Muutettu (Changed)
- PDF/VT-1 perii nyt täydelliset PDF/X-4-sisältökiellot:
pvviAcroFormForbidden(/AcroFormtai/XFA),pvviAdditionalActionsForbidden(katalogi/AA),pvviMissingTrimBoxjapvviReferenceXObjectForbidden(Reference XObject, vain X-5g/5pg) - Standardien välinen deduplikointi:
BuildDictObj,IccComponentCount, sisäänrakennettu sRGB ICC-profiili (GetSrgbIccProfile),PdfTextStr,PdfEnclosingObjNum,PdfDictRefNumjaPdfExpandObjectStreamson siirretty kolminkertaisista paikallisista kopioista moduuleissaFPdfPdfa/FPdfPdfx/FPdfPdfvtyhteen kanoniseen kotiin moduulissaFPdfPdfCommon; 3144-tavuinen ICC-literaali on nyt koodikannassa tasan kerran
Version 2.4.0
Korjattu (Fixed)
InjectPdfUaMarkersei enää pudota trailerin/Info-viitettä cross-reference-stream-pohjassa: paikallinenSourceTrailerInfoRef(josta puuttui xref-stream fallback) on korvattu yhteiselläPdfSourceTrailerInfoRef-viitteellä (siirretty PDF/A-kopiosta, jossa fallback on ollut mukana versiosta v2.0.0 lähtien)- Yhteinen
PdfReadStreamByteskäsittelee nyt epäsuoria/Length N G R-viitteitä (siirretty paikallisesta PDF/A-kopiosta), joten PDF/VT-, PDF/R- ja PDF/E-validaattorit eivät enää lue väärin tai ohita XMP-metatietovirtoja, jotka on luotu epäsuoraa Length-arvoa käyttävillä työkaluilla (Acrobat, Ghostscript)
Muutettu (Changed)
- Standardien välinen deduplikointi: paikalliset
PdfReadTrailer-kopiot moduuleissaFPdfPdfajaFPdfPdfx, paikallisetSourceTrailerInfoRef-kopiot moduuleissaFPdfPdfajaFPdfPdfuasekä paikallinenPdfReadStreamBytesmoduulissaFPdfPdfaon poistettu — yhteisetFPdfPdfCommon-versiot ovat nyt käytössä kaikkialla; tämä poistaa noin 330 riviä monistettua koodia ja poistaa kopioiden synkronoinnista aiheutuvan ylläpitotaakan - PDF/X-testikattavuuden parantaminen: seitsemän aiemmin nollakattavuuden content-class-enumia sai positiivisia testejä (
pvxiLzwForbidden,pvxiJavaScriptForbidden,pvxiFormFieldsForbidden,pvxiAdditionalActions,pvxiEmbeddedFilesForbidden,pvxiMissingTrimBox,pvxiTrappedNotSet)
Version 2.3.0
Muutettu (Changed)
- PDF/A-testikattavuuden parantaminen jatkuu: kolme muuta aiemmin nollakattavuuden enumia sai positiivisia testejä;
pvaiForbiddenRenderingIntent(§6.2.9) merkitsee ei-standardin rendering-intent-nimen content streamissa;pvaiJpeg2000Violation(§6.2.2) merkitsee JPXDecode-kuvan, jonka/NumComponentson alueen {1,3,4} ulkopuolella osassa Part 2;pvaiInlineImageLzwForbidden(§6.1.10) merkitsee LZW-suodatinta käyttävän upotetun kuvan osassa Part 2
Version 2.2.0
Muutettu
- Ristiviittaustietovirran (cross-reference-stream) regressiotestit: olemassa oleva
Validate_XrefStreamTrailer_DetectsConformancevarmistaa nyt myös, että katalogin/Metadata-viite ratkaistaan ja XMP-skeemanpdfaid:partluetaan ristiviittaustietovirran pohjalta (eikä vain/Root+/ID); uusiInjectPdfA_XrefStreamBase_RoundTrips-testi suojaa versioon v2.0.0 lisättyä injektorin ristiviittaustietovirran polkua, ja kaksi standardien välistä testiä (PdfE_XrefStreamBase_NotRejectedAsUnparsable,PdfR_XrefStreamBase_NotRejectedAsUnparsable) varmistavat, että PDF/E- ja PDF/R-validaattorit eivät enää hylkää ristiviittaustietovirtaa käyttäviä PDF-tiedostoja jäsentämättöminä - PDF/A-testikattavuuden parannus:
Validate_MinimalPdf_FlagsRequiredMarkersvarmistaa, että paljas minimaalinen PDF-tiedosto laukaisee virheetpvaiMissingPdfAIdentifier,pvaiMissingOutputIntent,pvaiMissingIccProfile,pvaiMissingXmpMetadatajapvaiMissingXmpDates— tämä sulkee symmetriaeron PDF/E- ja PDF/X-validaattoreihin, joilla oli jo vastaavat testit; lisäksi kaksi aiemmin testaamatonta enum-arvoa saivat positiiviset testit:pvaiUnembeddedFontjapvaiSubsetMissingCidSet
Version 2.1.0
Korjattu
- PDF/E jäi vahingossa pois version v2.0.0 ristiviittaustietovirtojen korjauksesta: sekä
InjectPdfEMarkersettäValidatePdfECompliancekutsuivat edelleen funktiotaPdfReadTrailerilmanAcceptXrefStream-parametria, joten PDF/E-injektori epäonnistui hiljaisesti PDF 1.5+ -tulosteilla (pdfiumin oletusarvoinenSaveAsCopy); molemmat kutsuvaiheet välittävät nyt arvonTrue - Jaettu
PdfReadTrailer-ristiviittaustietovirran varamekanismi sisältää nyt/Type /XRef-suojauksen, joka oli jo PDF/A:n ja PDF/X:n paikallisissa kopioissa, jolloin korruptoitunutstartxref-siirtymä, joka osoittaa riippumattomaan sanakirjaan, epäonnistuu siististi sen sijaan, että se tulkittaisiin virheellisesti trailer-sanakirjaksi - Epäsuorien viittausten
/Lang-ratkaisija kohdassaValidatePdfUaCompliance(v2.0.0) ei ollut saavutettavissa:PdfFindObjDictlöytää vain<<-sanakirjoja, mutta/Lang-merkkijono-objekti on muotoa(...)tai<...>ilman sanakirjaa; tämä on korvattu suoralla objektin rungon skannauksella, joka paikantaa merkkijonotunnisteen
Muutettu
- Seitsemän kuollutta apufunktiokopiota (PdfStructureBytes, PdfHasName, PdfCountName, BuildStreamObj), jotka olivat tavuilleen identtisiä kopioita jaetun
FPdfPdfCommon-yksikön versioista, on poistettu yksiköistäFPdfPdfajaFPdfPdfua— jaetut versiot ovat nyt käytössä kaikkiallauses-lausekkeen kautta
Version 2.0.0
Korjattu
- Standardien välinen hiljainen epäonnistuminen: jaettu
PdfReadTrailer-apuohjelma (jota käyttävät PDF/UA-, PDF/X-, PDF/VT- ja PDF/R-merkkien injektorit ja validaattorit) hyväksyy nytAcceptXrefStream-parametrin ja siirtyy käyttämään ristiviittaustietovirran objektisanakirjaa, kuntrailer-avainsanaa ei ole (PDF 1.5+); aiemmin pdfiuminSaveAsCopy-tuloste (joka käyttää ristiviittaustietovirtaa) sai jokaisen merkkien injektorin epäonnistumaan hiljaisesti — lähdetavut kopioitiin muuttumattomina ja kutsu palautti silti onnistumisen; PDF/R-1.0-validaattori (jonka PDF 2.0 -perusta on aina ristiviittaustietovirta) oli käytännössä toimimaton; PDF/A-validaattorin kehittynyt toteutus siirrettiin jaettuun apuohjelmaan, jotta kaikki standardit hyötyvät siitä - Trailer-sanakirjan skannaus funktioissa
InjectPdfUaMarkersjaInjectPdfAMarkerskäyttää nyt syvyystietoistaPdfDictEnd-funktiota paljaan>>-haun sijaan, joten sisäkkäisen sanakirjan (kuten/Encrypt << ... >>) sisältävää traileria ei enää katkaista ennenaikaisesti ennen lopussa olevaa/Info-tietuetta
Muutettu
TPdf.ValidatePdfUavaimentaa nyt karkean tavutasonpvuaiFontNotEmbedded-ilmoituksen, kun tarkempi Pdfiumin objektimallinpvuaiPdfiumFontNotEmbeddedon jo laukaistu, jotta esitarkastusraportti ei enää sisällä kahta lähes identtistä riviä samasta virheestäpvuaiLangInvalidFormat(§7.2) ratkaisee nyt epäsuoran viittauksen/Lang(N 0 R) sen merkkijono-objektiksi ja validoi sen sisällön, joten epäsuorasti viitattu kielitunniste ei ole enää katvealue
Version 1.99.0
Korjattu
pvuaiLangInvalidFormat(§7.2) ei enää ohita heksadesimaalikoodattuja/Lang-merkkijonoja: UTF-16BE-parit (jossa onFE FFBOM) ja puhtaat ASCII-heksamerkkijonot dekoodataan nyt ja ajetaan saman BCP 47 -kielioppitarkistuksen läpi kuin literaalimerkinnät(...), jolloin virheellinen heksamuotoinen/Langhavaitaan, eikä yhteensopivaa (kuten UTF-16BEen-US) enää vaaranneta virheellisellä liputuksella
Muutettu
pvuaiFontMissingToUnicode(§7.21.7) vapauttaa nyt/MacExpertEncoding-koodauksen/WinAnsiEncoding- ja/MacRomanEncoding-koodausten rinnalla, vastaten pykälän luettelemia neljää vapautusehtoa
Version 1.98.0
Lisätty
pvuaiNeedAppearancesTrue(§7.18.4) liputtaa AcroForm-lomakkeen, jonka/NeedAppearances-lippu on tosi, jolloin käyttöliittymäkomponenttien ulkoasua ei lukita luotettavasti eivätkä apuvälineteknologiat voi yhdistää niitä rakenne-puun; tämä on siirretty PDF/A-validaattorista ja rajattu/AcroForm-olemassaoloon skannausalan kaventamiseksi
Muutettu
- veraPDF-aineiston regressiotestaus: kytketty §7.20 Reference-XObject pass/fail-pari sekä §7.21.4.2 subset CharSet/CIDSet pass/fail-parit testiin
Live_Corpus_ValidatePdfUaMatchesConformance; lisäksi §7.21.7 ToUnicode-forbidden-value- ja §7.18.6.2 media-clip pass-näytteet kytkettiin suojaamaan vääriä positiivisia tuloksia (niiden epäonnistuvat näytteet käyttävät sanakirjarakenteita, joita tavutason skannaus ei havaitse, joten vain onnistuva puoli on kytketty) - Aineiston onnistumispolun varmistusluettelo sai 15 uutta väärän positiivisen suojauksen suojaa, joten jokainen aktiivinen tavutason ja rakenteen
pvuai*-tarkistus ajetaan nyt yhteensopivia näytteitä vastaan (aiemmin vain noin 30 aktiivisesta 60 ongelmasta oli suojattu);pvuaiLangInvalidFormat-suoja jätettiin tarkoituksella pois, koska tavutason tarkistus liputtaa konservatiivisesti heksadesimaalikoodatut/Lang-merkkijonot, joita se ei pysty dekoodaamaan
Version 1.97.0
Korjattu
- Funktion
ValidatePdfUaStructureElementskovennus: parent-ketjun läpikäynti kohdassaEnclosingTablesisältää nyt hyppyjenvälin laskurin (rajoitettu elementtimäärään), joten vioittunutParentIndex-sykli synteettisessä rakenne-elementtitaulukossa ei voi enää jumiuttaa kutsujaa; funktionValidatePdfUaPageContentTaggingmerkityn sisällön tunnusten (marked-content-ID) taulukon allokointi on nyt rajoitettu enintään miljoonaan tietueeseen, mikä estää monen gigatavun allokoinnin vioittuneilla tai haitallisillaMarkedContentID-arvoilla
Muutettu
- Tyyppiä
pvuaiOrderedListMissingListNumberingedustavan enumin dokumenttikommentti kuvaa nyt tarkasti sen tekemän tarkistuksen: se liputtaaL-elementin, jonkaListNumbering-arvo on ISO 32000-1 -standardin taulukon 347 ulkopuolella (puuttuvaa määritettä ei liputeta); aiempi kommentti antoi ymmärtää sen havaitsevan myös järjestyksessä olevat luettelot, joilta puuttuu määrite, mitä toteutus ei todellisuudessa tee - Kaksi
7.21.3.3-t02WMode-mismatch-aineiston epäonnistuvaa näytettä on nyt kytketty testiinLive_Corpus_ValidatePdfUaMatchesConformance— versiosta v1.95.0 lähtien CMap-tietovirta puretaan FlateDecode-menetelmällä, joten sanakirjan ja sisällön välinen vertailu suoritetaan nyt luettavassa muodossa; vanhentunut "not wired" -kommentti poistettiin
Version 1.96.0
Lisätty
- Standardien välinen johdonmukaisuus:
TPdf.ValidatePdfUasaa kaksi PDF/A-validaattorista siirrettyä tarkistusta;pvuaiAnnotationFlagsViolation(§7.18.1) liputtaa ei-vapautetun merkinnän, jossa on Hidden-, Invisible- tai NoView-lippu, mikä rikkoo apuvälinetekniikan lukuvirran;pvuaiActionTargetMissing(§7.18.5) liputtaa GoToR-, URI- tai SubmitForm-toiminnon, jolta puuttuu vaadittu kohdeavain (/F/D, /URI, /F), mikä tekee linkistä käyttökelvottoman apuvälineille
Korjattu
- Sivujen välinen rakenne-puun yhdistäminen: keräyssilmukka
AllElemsmetodissaTPdf.ValidatePdfUasijoittaa nyt jokaisen elementinParentIndex-arvon uudelleen sivukohtaisesta taulukosta yhdistettyyn taulukkoon; ilman tätä sivun 2 lapsielementit säilyttivät sivukohtaisen indeksin, joka osoitti sivun 1 alueelle, korruptoiden hiljaisesti jokaisen indeksistä riippuvaisen tarkistuksen (taulukko/luettelorakenne, §7.4.4 H-lapsielementtien määrä, EnclosingTable) - RoleMap-jäsennys:
PdfReadRoleMapPairsei enää keskeytä koko avain-arvo-parin skannausta, kun arvo on epäsuora viittaus (N 0 R) tai taulukko ([...]) — molemmat ovat sallittuja RoleMap-muotoja ISO 32000-1 14.8.5.1 -standardin mukaan; se ohittaa nyt vain kyseisen tietueen (Continue) keskeyttämisen (Break) sijaan, mikä poistaa tyypinpvuaiRoleMapUnresolvedväärät positiiviset tulokset tyypeillä, jotka on kartoitettu epäsuoran tai taulukkomuotoisen tietueen jälkeen
Muutettu
FPdfPreflightReport: 18 aktiivistaTPdfUaValidationIssue-arvoa, jotka aiemmin päätyivät yleiseen "missing marker" -luokkaan ja -suositukseen, sisältävät nyt tarkat luokat (Structure / Content / Metadata / Security) ja pykäläkohtaiset suositukset; korjattu myös kirjoitusvirhepuaNone / pua1→pucNone / puc1tiedostossaPDFSpecComplianceMatrix.md
Version 1.95.0
Muutettu
- Metodin
TPdf.ValidatePdfUakattavuus- ja luotettavuuspäivitys: §7.21.3.3-kohdanpvuaiCMapWModeMismatch-tarkistus ja §7.21.7-kohdanpvuaiToUnicodeForbiddenValue-tarkistus purkavat nytFlateDecode-pakatut CMap- ja ToUnicode-tietovirrat ennen skannausta (aiemmin arvioitiin vain pakkaamattomia virtoja, mikä oli tunnettu väärä negatiivinen); jaetut apuohjelmatPdfInflatejaPdfReadAndDecodeStreamsiirrettiin yksiköistäFPdfPdfa/FPdfPdfxyksikköönFPdfPdfCommon, jotta jokainen yhteensopivuusyksikkö käyttää samaa koodia
Lisätty
pvuaiSubsetCharSetEmpty(§7.21.4.2) liputtaa tyypin 1 osajoukonFontDescriptor-sanakirjan, joka sisältää/CharSet-avaimen tyhjällä merkkijonoarvolla — olemassa olevapvuaiSubsetMissingCharSethavaitsi vain puuttuvan avaimen; tyhjää/CIDSet-arvoa ei liputeta, koska fontti ilman CID-tunnuksia voi laillisesti sisältää tyhjän bittikartan
Version 1.94.0
Lisätty
- Metodin
TPdf.ValidatePdfUatoisen vaiheen auditointi sulki kuusi ISO 14289-1 -standardin puutetta, jotka havaittiin pykäläkohtaisessa arvioinnissa ja skannaamalla uudelleen ne Pdfium-natiivi-rajapinnat, jotka oli jo kääritetty mutta joita ei käytetty PDF/UA-polussa;pvuaiHeadingFormatInvalid(§7.4.3) liputtaa käyttäjän määrittelemät otsikkotunnisteet, jotka alkavat H-kirjaimella mutta sisältävät erottimia, välilyöntejä tai roomalaisia numeroita puhtaiden arabialaisten numeroiden sijaan;pvuaiMissingDocumentOutline(§7.17, pitäisi) liputtaa monisivuisen dokumentin, josta puuttuu kirjanmerkkirakenne (yksisivuiset dokumentit on vapautettu);pvuaiStructElementLangInvalid(§7.2) liputtaa rakenne-elementin/Lang-arvon, joka ei ole kelvollinen BCP 47 -tunniste;pvuaiWidgetMissingPrintField(§7.14 / §7.18.4) liputtaa Widget-rakenne-elementin, jolta puuttuu PrintField-määriteomistaja;pvuaiLinkNotInStructureTree(§7.18.5) liputtaa dokumentin, jonka/Subtype /Link-merkintöjä ei ole esitetty Link-rakenne-elementteinä;pvuaiPdfiumAnnotationMissingContentsjapvuaiPdfiumLinkMissingContents(§7.18.1 / §7.18.5) lisäävät tarkan Pdfiumin objektimallin merkintäskannauksen, joka vapauttaa piilotetut, crop-boxin ulkopuoliset, Popup- ja Widget-merkinnät — poistaen tavutason heuristiikan väärät positiiviset tulokset, sillä se ei pysty lukemaan/F-lippuja tai/Rect-aluetta
Version 1.93.0
Lisätty
TPdf.ValidatePdfUalisää nyt Pdfiumin objektimallin läpikäynnin tavutason tarkastuksen päälle, jäljitellen PDF/A-validaattorin round-7-arkkitehtuuria: se käy läpi jokaisen sivun tekstiobjektit kutsuillaFPDFTextObj_GetFont→FPDFFont_GetIsEmbedded(pvuaiPdfiumFontNotEmbedded, §7.21.4) ja skannaa jokaisen merkin kutsuillaFPDFText_HasUnicodeMapError(pvuaiPdfiumUnicodeMapError, §7.21.7) jaFPDFText_GetUnicode(pvuaiPdfiumNotDefGlyph, §7.21.8) — tämä on tarkempi kuin tavutason heuristiikat, jotka käynnistyvät vain, kun fonttiohjelmia ei ole lainkaan tai/ToUnicode-koodausta ei löydy; läpikäynti oikosuljetaan kolmella tasolla: sivusilmukka päättyy, kun kaikki kolme Pdfium-tason ongelmaa on jo asetettu, objektikohtainen silmukka päättyy ensimmäiseen ei-upotettuun fonttiin, ja merkkiskannaus ohittaa.notdef-vaiheen, kunUnicodeMapErroron jo havaittu; PDF/UA oli viimeinen PDF-standardin validaattori, josta puuttui Pdfium-objektimallitaso
Version 1.92.0
Lisätty
- Luotu tiedosto
Tests.PdfR— ensimmäinen testitiedosto PDF/R-1-validaattorille (FPdfPdfr), joka kattaa otsikkorivin validoinnin, ObjStm-kiellon, rasterimerkkien tunnistuksen ja virheettömän tiedoston väärän positiivisen suojauksen; kaikilla kuudella PDF-standardin testisarjalla on nyt omat testitiedostonsa: PdfA(80), PdfUa(101), PdfX(7), PdfE(5), PdfVT(15), PdfR(4) = yhteensä 212 testiä
Version 1.91.0
Lisätty
- Valinnat
ValidatePdfEjaValidatePdfVTsaivat sisältötason tarkistuksia, jotka olivat aiemmin saatavilla vain PDF/A-, PDF/UA- ja PDF/X-validaattoreissa:pveiLzwForbidden,pveiJavaScriptForbidden,pveiFormFieldsForbidden(vain PDF/E),pveiEmbeddedFilesForbidden(vain PDF/E),pveiOpiForbidden,pvviLzwForbidden,pvviJavaScriptForbidden,pvviEmbeddedFilesForbidden,pvviOpiForbidden; lisäksiTPdf.ValidatePdfEjaTPdf.ValidatePdfVTsaavat Pdfium-objektimallitason (pveiPdfiumFontNotEmbedded/pvviPdfiumFontNotEmbedded), joka käy läpi sivun tekstiobjektit metodillaFPDFFont_GetIsEmbedded, oikosulkien haku ensimmäisen ei-upotetun fontin kohdalla
Version 1.90.0
Lisätty
TPdf.ValidatePdfXkerrostaa nyt Pdfium-objektimallitason tavutason tarkastuksen päälle: se käy läpi jokaisen sivun tekstiobjektit kutsuillaFPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedja raportoi ei-upotetun fontin muodossapvxiPdfiumFontNotEmbedded— tämä on tarkempi kuin tavutason heuristiikka, joka käynnistyy vain, kun fonttiohjelmia ei ole lainkaan; läpikäynti oikosuljetaan ensimmäisen löydetyn ei-upotetun fontin kohdalla
Muutettu
- Metodin
TPdf.ValidatePdfUarakenne-puun läpikäynti: sivukohtainen kutsuValidatePdfUaPageContentTagging(joka rakentaa merkityn sisällön tunnuskartan ja ristiintarkistaa jokaisen teksti-/kuvaobjektin) ohitetaan nyt seuraavilla sivuilla, kunpvuaiUntaggedContenton jo löydetty — rakenne-elementtejä kerätään edelleen sivujen välisiä tarkistuksia varten (muistiinpanon yksilöllinen tunniste, otsikkosekvenssi), mutta kallis sivukohtainen sisällönmerkintävaihe päättyy aikaisin
Version 1.89.0
Muutettu
- Metodin
TPdf.ValidatePdfAPdfium-objektimallitason suorituskyky: sivu-/objektiläpikäynti oikosuljetaan nyt kolmella tasolla — sivusilmukka päättyy, kun kaikki soveltuvat Pdfium-tason ongelmat on jo havaittu, objektikohtainen silmukka päättyy, kun molemmat objektikohtaiset ongelmat (fontin upotus + läpinäkyvyys) on asetettu, ja tekstisivun merkkiskannaus ohittaa.notdef-vaiheen, kunUnicodeMapErroron jo havaittu;Assigned()-rajapinnan saatavuustarkistukset ja yhteensopivuusliput tallennetaan paikallisiin boolean-muuttujiin kerran ennen silmukkaa sen sijaan, että ne arvioitaisiin uudelleen jokaisella sivulla/objektilla/merkillä; suuressa epäyhteensopivassa dokumentissa läpikäynti voi nyt pysähtyä ensimmäisen sivun jälkeen kaikkien sivujen skannaamisen sijaan; yhteensopivassa dokumentissa sivukohtainen lisärasitus on pienempi (ei toistuviaAssigned-kutsuja)
Version 1.88.0
Lisätty
- Valinta
ValidatePdfXsai kahdeksan uutta sisältötasonTPdfXValidationIssue-arvoa, jotka kattavat PDF/X:n asettamat painonvaihdon rajoitukset tiedostomuotomerkkien lisäksi:pvxiLzwForbidden(/LZWDecode),pvxiJavaScriptForbidden(/JavaScript),pvxiFormFieldsForbidden(/AcroForm//XFA),pvxiAdditionalActions(/AA),pvxiEmbeddedFilesForbidden(/EmbeddedFiles//FileAttachment),pvxiOpiForbidden(/OPI//Alternates),pvxiMissingTrimBox(ei/TrimBox-asetusta millään sivulla) japvxiTrappedNotSet(/Trappedpuuttuu tai sen arvo on/Unknown); PDF/X-validaattori tarkisti aiemmin vain XMP-/OutputIntent-merkit; tämä on sen ensimmäinen sisältötason tarkistus; jaetut apuohjelmatPdfStructureBytes,PdfHasNamejaPdfCountNamelisättiin yksikköönFPdfPdfCommonkaikkien yhteensopivuusyksiköiden käyttöön
Version 1.87.0
Lisätty
- PDF/UA-validointi kattaa nyt ISO 14289-1 §7.21.3 yhdistelmäfonttisäännöt:
pvuaiCidSystemInfoMismatchmerkitsee Type0-fontit, joiden upotettu CMap ja alilaskettu CIDFont eroavat toisistaanRegistry/Ordering-kenttien osalta tai joiden CIDFont-Supplementylittää CMap-arvon,pvuaiCMapNotEmbeddedmerkitsee nimellä viitatut CMap-taulukot (nimelläEncodingtaiUseCMap), jotka eivät ole ISO 32000-1 Table 118 -esimääriteltyjä CMap-taulukoita, japvuaiCMapWModeMismatchmerkitsee upotetut CMap-taulukot, joiden sanakirjanWModeeroaa virransisällön WMode-arvosta
Korjattu
- §7.21.3.2-kohdan
pvuaiCidFontMissingCidToGidMap-tarkistus jätti huomiotta CIDFontType2-sanakirjat, joissaSubtype-avain/arvo-pari on erotettu rivinvaihdolla, ja merkitsee nyt myösCIDToGIDMap-nimiarvot, jotka poikkeavat arvostaIdentity
Version 1.86.0
Lisätty
- PDF/UA-validointi kattaa nyt ISO 14289-1 §7.21.6 TrueType-koodaussäännöt:
pvuaiTrueTypeEncodingInvalidmerkitsee ei-symboliset TrueType-fontit, joilta puuttuuEncodingtai joidenEncodingei oleMacRomanEncodingeikäWinAnsiEncoding(suoraan taiBaseEncoding-kentän kautta), japvuaiSymbolicTrueTypeEncodingmerkitsee symboliset TrueType-fontit, joilla on epästandardiEncoding-nimi
Version 1.85.1
Muutettu
- ISO 14289-1 §7.18.3 -välilehtijarjestyskäytäntö
pvuaiMissingTabsOrdersuoritetaan nyt sivukohtaisesti: jokaisen annotaatioita sisältävän sivun on ilmoitettava/Tabs /Somassa sivusanakirjassaan, joten vaatimustenmukainen sisarsivusto ei enää peitä sivua, jolta se puuttuu
Version 1.85.0
Lisätty
- PDF/UA-validointi erottaa nyt dynaamisen XFA-lomakkeen staattisesta ISO 14289-1 §7.15 mukaisesti:
pvuaiXfaDynamicmerkitsee lomakkeet, joiden XFA-konfiguraatio asettaadynamicRender-arvoksirequired
Muutettu
- Entinen yleinen XFA-ehdokaslipuke
pvuaiXfaPresenton poistettu käytöstä eikä sitä enää nosteta (staattinen XFA täyttää §7.15-vaatimukset); enum-arvo säilyy API-yhteensopivuuden vuoksi
Version 1.84.0
Lisätty
- PDF/UA-validointi havaitsee nyt ISO 14289-1 §7.1 vaatiman merkitsemättömän todellisen sisällön:
pvuaiUntaggedContentmerkitsee renderöidyt teksti- ja kuvakohteet, jotka eivät ole sivun rakenneosastossa (merkittyjen sisältöjen tunnisteiden kautta) eivätkä Artefakti-merkittyjä - Uudet sivutason aputoiminnot
GetPageContentMarkInfosjaValidatePdfUaPageContentTaggingsekäTPdfPageContentMarkInfo-tietue suoraan käytettäväksi
Version 1.83.0
Lisätty
- PDF/UA-validointi noudattaa nyt ISO 14289-1 §7.4.4 otsikkomallia:
pvuaiHeadingModelMixedmerkitsee asiakirjat, joissa käytetään sekä yleistäH-tunnistetta että numeroitujaH1..Hn-otsikoita, japvuaiHeadingMultipleInNodemerkitsee rakennesolmut, joissa on useampi kuin yksi lapsi-H-otsikko
Version 1.82.0
Lisätty
- PDF/UA-validointi ratkaisee nyt ISO 14289-1 §7.1 vaatiman RoleMap-taulukon:
pvuaiRoleMapRemapsStandardmerkitsee RoleMap-merkinnät, jotka määrittelevät uudelleen standardin rakennetyypin, japvuaiRoleMapUnresolvedmerkitsee käytetyt epästandardit rakennetyypit, joiden RoleMap-ketju puuttuu, on katkennut tai syklinen — epäsuorat ketjut, jotka päätyvät standardityyppiin, hyväksytään, eikä käyttämättömiä RoleMap-merkintöjä koskaan arvioida - Uudet aputoiminnot
PdfUaIsStandardStructType,PdfReadRoleMapPairs(PDF-nimen#hh-escape-dekoodauksella) jaValidatePdfUaRoleMapUsagesuoraan käytettäväksi
Version 1.81.0
Lisätty
- PDF/UA-validointi kattaa nyt ISO 14289-1 §7.6 edellyttämän ISO 32000-1 -luettelon merkitsemisen:
pvuaiListStructureInvalidmerkitsee L-säiliön ulkopuolella olevat LI-kohteet sekä LI-kohteen ulkopuolella olevat Lbl/LBody-osat, mutta sallii sisäkkäiset luettelot ja Lbl-tunnisteen käytön Note- ja BibEntry-elementeissä
Version 1.80.0
Lisätty
- PDF/UA-validointi kattaa nyt ISO 14289-1 §7.5 edellyttämän ISO 32000-1 -taulukon merkitsemisen:
pvuaiTableStructureInvalidmerkitsee TH/TD-solut TR-rivin ulkopuolella sekä rivit ja riviryhmät Table-säiliönsä ulkopuolella,pvuaiTableHeaderMissingScopemerkitsee otsikkosolut, joiden suhde ei ole määritettävissä Scope-attribuutin eikä Headers/ID-yhdistyksen kautta, japvuaiTableHeadersUndefinedIdmerkitsee Headers-viittaukset asiakirjoissa, joissa ei ole määriteltyjä rakenneosan tunnuksia TPdfStructureElementpaljastaa taulukkoattribuutitScope,HasHeaders,HeadersIds,ColSpanjaRowSpan, jotka ratkaistaan rakenneosaston läpikäynnin aikana
Muutettu
- Rakenneosaston läpikäynti lukee nyt kaikki asettelu- ja taulukkoattribuutit yhdellä läpäisyllä kunkin elementin attribuuttisanakirjojen yli yhden skannauksen sijaan attribuuttia kohden
Version 1.79.1
Lisätty
AnnotationsLab-esimerkkisovellus käännettiin toimimaan Lazaruksessa ja C++Builderissa liittyen aiempaan Delphi-konsoliesimerkkiin
Korjattu
TPdf.CreateAnnotationsaattoi antaa virheilmoituksen “Cannot set attachment points” sellaisten merkintäannotaatioiden osalta, jotka käyttävät quad-pisteitä (Highlight, Underline, StrikeOut, Squiggly), koska uudella annotaatiolla ei vielä ollut quad-paikkaa korvattavana; sen sijaan ominaisuus nyt liittää ensimmäisen quad-pisteen
Version 1.79.0
Lisätty
- Uusi
AnnotationsLab-Delphi-konsoliesimerkki: luo Text-, Highlight-, Square- ja Circle-annotaatioita, kirjoittaa ne PDF-tiedostoon, ja tämän jälkeen lataa tiedoston uudelleen ja luettelee sivun annotaatiolistan
Version 1.78.0
Lisätty
- Uudet metodit
TPdf.MeasureTextjaTPdf.MeasureTextWidth: mittaavat merkkijonon esityksen leveyden ja korkeuden tietyllä fontilla ja koolla (PDF-käyttäjäyksikköinä, 1 yksikkö = 1/72 tuumaa) lisäämättä sisältöä sivulle, mikä mahdollistaa asettelun ja sananrivityksen toteuttamisenAddText-toiminnon päälle; toimitetaan erillisessäFPdfMeasure-yksikössä luokan apuohjelmana - Uusi
TPdf.WrapText: nopea (greedy) sanarivitys, joka rakentuuMeasureTextWidth-toiminnon varaan ja jakaa tekstin välilyöntien kohdalta sekä pakkaa sanat riveille, jotka eivät ylitä annettua leveyttä (PDF-käyttäjäyksiköinä); liian pitkä yksittäinen sana saa oman rivinsä (ei sanan sisäistä katkaisua), palauttaen rivitetyt rivit taulukkona
Version 1.77.0
Lisätty
ValidatePdfAsai kolme uuttaTPdfAValidationIssue-arvoa, jotka kattavat kohdat, jotka aiemmassa auditointitarkastuksessa luokiteltiin tilaan “NO” tai “reader behaviour” (lisätty olemassa olevien arvojen loppuun, vanhat arvot muuttumattomina):pvaiPdfiumNotDefGlyph(PDF/A-2 6.2.11.8 — merkki, joka ratkeaa Unicode 0:ksi ilman kartoitusvirhettä, mikä on.notdef-kuvakeviittauksen ajonaikainen oire; tunnistetaan Pdfium-objektimallikerroksen kautta),pvaiWordBreakMissing(Taso A 6.8.3.2 — sisältövirran tekstimerkkijono, joka on pidempi kuin 20 merkkiä ilman välilyöntiä, mikä on todennäköinen yhdistettyjen sanojen rikkomus; karkea heuristiikka, joka välttää CJK-virheelliset positiiviset), japvaiLinkActionMissingTarget(6.6.3 — GoToR/URI/SubmitForm-toiminto, josta puuttuu näyttökohdeavain, joten lukija ei pysty esittämään sitä)
Version 1.76.0
Lisätty (Added)
ValidatePdfAsai kolme uuttaTPdfAValidationIssue-arvoa (lisätty loppuun, olemassa olevat arvot muuttumattomina):pvaiNameNotValidUtf8(PDF/A-2/3 6.1.8 —/BaseFont- tai/FontName-tunniste sisältää tavuja ≥ 0x80, jotka eivät muodosta kelvollista UTF-8:aa),pvaiInlineImageLzwForbidden(PDF/A-2/3 6.1.10 — sivun sisältövirrassa oleva upotettu kuva käyttää LZW- tai Crypt-suodatinta) japvaiTrueTypeDifferencesForbidden(6.3.7 Cor.2 — ei-symbolinen TrueType-fontti, jonka Encoding-sanakirjassa on/Differences)
Version 1.75.0
Lisätty (Added)
ValidatePdfAsai kolme uuttaTPdfAValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvaiIntegerImplementationLimit(PDF/A-2/3 6.1.13 — numeerinen token, joka ylittää 32-bittisen etumerkillisen kokonaisluvun rajan 2 147 483 647),pvaiBlendModeNotWhitelisted(PDF/A-2/3 6.2.10 —/BM-arvo ISO 32000-1 §11.3.5 -standardin sekoitustilajoukon ulkopuolella; täydentää PDF/A-1:npvaiTransparentColorSpacea, joka sallii vain Normal/Compatible-tilat) japvaiHexStringOddDigits(6.1.6 —<...>-heksadesimaalimerkkijono, jossa on pariton määrä heksadesimaalinumeroita)
Version 1.74.0
Lisätty (Added)
ValidatePdfAsai kolme uuttaTPdfAValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvaiPermissionsViolation(6.1.12 —/Perms-sanasto, joka kantaa/DigestLocation,/DigestMethodtai/DigestValue/DocMDP:n ohella),pvaiTransActionForbidden(PDF/A-2 6.5.1 — Trans-siirtymätoiminto, havaittu/S /Trans-toimintosanastokuvion kautta, jotta vältetään virheellinen täsmäys/Transparency-arvoon) japvaiPdfiumObjectTransparency(PDF/A-1 6.4 — sivuobjekti sisältää todellista läpinäkyvyyttäFPDFPageObj_HasTransparencyn mukaisesti, mikä laajentaa versiossa 1.73.0 esiteltyä Pdfium-objektimallikerrosta napatakseen sekoitustila/pehmeä maski -efektit, joita tavutason nimiskannaus ei huomaa)
Version 1.73.0
Lisätty (Added)
TPdf.ValidatePdfAlisää nyt Pdfium-objektimallikerroksen tavutason tarkastajan päälle: se käy läpi jokaisen sivun tekstiobjektit ketjullaFPDFPage_GetObject→FPDFTextObj_GetFont→FPDFFont_GetIsEmbeddedja raportoi upottamattoman renderöidyn fontin muodossapvaiPdfiumFontNotEmbedded(ISO 19005 6.3.4), sekä lataa jokaisen tekstisivun skannatakseenFPDFText_HasUnicodeMapError-arvon ja raportoi rikkinäisen Unicode-kartoituksen muodossapvaiPdfiumUnicodeMapError(6.3.8). Nämä ovat tarkistuksia, joita tavutason tarkastaja ei pysty tekemään — se näkee vain nimitokenit, ei ratkaistuja fonttikahvoja tai merkkikohtaisia kartoitustiloja — ja ne yhdistetään tavutason tulokseen. ErillinenValidatePdfACompliance-tavutasofunktio pysyy muuttumattomana
Version 1.72.0
Lisätty (Added)
ValidatePdfAsai viisi uuttaTPdfAValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvaiNeedsRenderingPresent(PDF/A-2 6.4.2 — luettelo ei saa kantaa/NeedsRendering),pvaiDestOutputProfileRef(PDF/A-3 6.2.3 — OutputIntent ei saa kantaa/DestOutputProfileRef),pvaiEmbeddedFileMissingUF(PDF/A-3 6.8 — tiedostomäärityksen, jossa on/EF, on kannettava myös/UF),pvaiXmpPacketBytesAttr(6.7.5 — XMP-paketin otsikko ei saa kantaa vanhentunuttabytes=- taiencoding=-määritettä) japvaiAnnotationToggleNoView(PDF/A-2 6.3.2 — huomautuksen/FToggleNoView -bitti, arvo 512, on kielletty)
Version 1.71.0
Muutettu
ValidatePdfUanostaa nyt virheenpvuaiOrderedListMissingListNumbering(ISO 14289-1 7.6): rakennepuun läpikävijä ratkaiseeListNumbering-asetteluattribuutin jokaiselleL-elementille Pdfiumin attribuutti-API:n kautta ja liputtaa kaikki arvot, jotka ovat ISO 32000-1 -standardin taulukon 347 joukon ulkopuolella (Decimal,UpperRoman,LowerRoman,UpperAlpha,LowerAlpha,None,Circle,Disc,Square). Puuttuvaa attribuuttia ei liputeta, koska luettelo voi olla järjestämätön; tämä sulkee viimeisen jäljellä olevan ISO 14289-1 -puutteen, joka kirjattiin kierroksen 5 lopussa
Version 1.70.0
Lisätty
ValidatePdfUasai neljä uuttaTPdfUaValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvuaiSubsetMissingCidSet(ISO 14289-1 7.21.4.2 — CID-osajoukonFontDescriptoron ilmoitettava/CIDSet),pvuaiToUnicodeForbiddenValue(7.21.7 — ToUnicode CMap ei saa yhdistää mitään koodia arvoonU+FEFFtaiU+FFFE; pakkaamattomista virroista etsitään tulostusmuotoja<FEFF>/<FFFE>),pvuaiLangInvalidFormat(7.2 —/Langon oltava kelvollinen RFC 1766 / BCP 47 -tunniste; salliva kielioppi hyväksyy arvoten,en-US,zh-Hans,es-419ja liputtaa selvästi sääntöjenvastaiset arvot) sekäpvuaiOrderedListMissingListNumbering(7.6 — säilytetty API:n täydellisyyden vuoksi; validaattori ei vielä nosta sitä, koska järjestettyjen ja järjestämättömien luetteloiden luotettava erottaminen vaatiiListNumbering-attribuutin arvon, jota rakennepuun läpikävijä ei paljasta)
Version 1.69.0
Lisätty
ValidatePdfUasai kaksi uuttaTPdfUaValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvuaiWidgetOutsideForm(ISO 14289-1 7.18.4 — Widget-rakenne-elementin on oltava sisäkkäinForm-elementin kanssa; rakennepuun läpikävijä varmistaa nyt jokaisen Widgetin suoran yläelementin tyypin) japvuaiSubsetMissingCharSet(7.21.4.2 — Type 1 -osajoukonFontDescriptoron ilmoitettava/CharSet, joka tunnistetaan/FontName-määritteen kuusikirjaimisesta+-osajoukon nimen etuliitteestä)
Version 1.68.0
Lisätty
ValidatePdfUasai kaksi uuttaTPdfUaValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvuaiUriActionIsMap(ISO 14289-1 7.18.5 — URI-toimintosanastossa ei saa olla/IsMap-arvoatrue, koska se poistaa käytöstä saavutettavan linkin kohteen) japvuaiHeadingSequenceViolation(7.4.2 — numeroitujen otsikoiden on alettava tasostaH1, eikä laskeva sarja saa ohittaa väliin jäävää tasoa, esim.H1→H3on rikkomus). Otsikkotarkistus on validaattorin ensimmäinen rakennepuutason PDF/UA-sääntö:ValidatePdfUaStructureElementskäy nyt läpi tyypitetyn elementtiluettelon ja varmistaa sarjanH1…H6(jaH7+säännön 7.4.3 mukaisesti) asiakirjan järjestyksessä
Version 1.67.0
Lisätty
ValidatePdfUasai viisi uuttaTPdfUaValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvuaiLinkMissingContents(ISO 14289-1 7.18.5 — Link-huomautuksella on oltava vaihtoehtoinen kuvaus/Contents-kentän kautta),pvuaiAnnotationMissingContents(7.18.1 — kaikilla ei-vapautetuilla huomautuksilla, joilta puuttuu/Contents, on oltava vaihtoehtoinen kuvaus; Popup ja Widget on vapautettu),pvuaiEmbeddedFileMissingName(7.11 — tiedostomäärityssanaston on sisällettävä/Fja/UF),pvuaiMediaClipMissingAlt(7.18.6.2 — medialeikkeen tietosanaston on sisällettävä/CTja/Alt) sekäpvuaiCidFontMissingCidToGidMap(7.21.3.2 — upotetun Type 2 CIDFont -fontin on sisällettävä/CIDToGIDMap)
Version 1.66.0
Lisätty
ValidatePdfUasai viisi uuttaTPdfUaValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvuaiRoleMapMissing(ISO 14289-1 7.1 — tunnistetulla asiakirjalla, jossa on epätyypillisiä rakennetyyppejä, on oltava/RoleMap),pvuaiOptionalContentAsKey(7.10 — valinnaisen sisällön määrityssanastossa ei saa olla/AS-automaattitilan avainta),pvuaiXfaPresent(7.15 — AcroFormin/XFA-esiintyminen liputetaan, koska dynaaminen XFA on kielletty),pvuaiTrapNetAnnotation(7.18.2 —/TrapNet-huomautukset ovat kiellettyjä) japvuaiReferenceXObject(7.20 — Reference XObject -objektit, jotka tunnistaa/Ref-merkinnästä, ovat kiellettyjä)
Korjattu
ValidatePdfUaei enää anna vääriä positiivisiapvuaiEncryptionPresent-liputuksia jokaisesta salatusta tiedostosta: PDF/UA sallii salauksen, kunhan salaussanaston/P-avaimen bittipaikka 10 (arvo 1024) on asetettu, mikä sallii apuvälinetekniikoiden pääsyn (7.16). Tarkka rikkomus raportoidaan nyt uudenpvuaiEncryptionPBitMissing-arvon kautta;pvuaiEncryptionPresenton säilytetty enum-luettelossa API-yhteensopivuuden vuoksi, mutta tavutason validaattori ei enää nosta sitä
Version 1.65.0
Lisätty
ValidatePdfAsai viisi uuttaTPdfAValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvaiCidFontMissingCidToGidMap(ISO 19005-1 6.3.3.2 Cor.2 — upotetun Type 2 CIDFont -fontin on sisällettävä/CIDToGIDMap),pvaiSubsetMissingCharSet(6.3.5 — Type 1 -osajoukonFontDescriptoron sisällettävä/CharSet),pvaiSubsetMissingCidSet(6.3.5 — CID-osajoukonFontDescriptoron sisällettävä/CIDSet),pvaiWidgetActionForbidden(6.6.1 — Widget-huomautuksessa ei saa olla/A- tai/AA-toimintoa) japvaiOptionalContentAsKey(ISO 19005-2 6.9 — valinnaisen sisällön määrityssanastossa ei saa olla/AS-automaattitilan avainta; tämä on uusi asia, koska PDF/A-2 sallii valinnaisen sisällön)
Version 1.64.0
Lisätty
ValidatePdfAsai kahdeksan uuttaTPdfAValidationIssue-arvoa (lisätyt järjestysluvut, olemassa olevat arvot muuttumattomina):pvaiHeaderBinaryMarkerMissing(ISO 19005-1 6.1.2 —%PDF-x.y-otsikon perässä on oltava%-kommentti, jossa on vähintään neljä yli 127:n tavua),pvaiExternalStreamRef(6.1.7 — virtasanastossa ei saa olla/F,/FFiltertai/FDecodeParms),pvaiOutputIntentScheme(6.2.2 — OutputIntentin/Son oltava/GTS_PDFA1),pvaiInfoXmpDateMismatch(6.7.3 — InfonCreationDate/ModDateon esiinnyttävä myös muodossaxmp:CreateDate/xmp:ModifyDate),pvaiMarkInfoMissing(6.8.2.2 — taso A vaatii/MarkInfo, jolla on/Marked true),pvaiAnnotationApDictViolation(6.5.3 Cor.2 — huomautuksen/AP-sanasto saa sisältää vain/N),pvaiEmbeddedFileMissingAFRelationship(ISO 19005-3 Annex E.2 — jokaisessa siihen liittyvässä tiedostomäärityksessä on oltava/AFRelationship) sekäpvaiJpeg2000Violation(ISO 19005-2 6.2.8.3 — JPEG2000-kuvan on ilmoitettava 1, 3 tai 4 komponenttia)
Korjattu
ValidatePdfAei enää anna vääriä positiivisiapvaiAnnotationFlagsViolation-liputuksia asiakirjoissa, jotka käyttävät yksikirjaimista fonttiresurssin nimeä, kuten/Font << /F 5 0 R >>;/F-lipun skannaus on nyt rajattu huomautuskontekstiin (huomautustyypin/Subtype), mikä vastaa dokumentoitua toimintaa (6.5.3)ValidatePdfAraportoi nyt PDF/A-3:n liittyvän tiedoston vaatimuksen tiedostokohtaisesti: asiakirja liputetaan vain silloin, kun upotetusta/Type /Filespec-elementistä, joka viittaa upotettuun virtaan/EF:n kautta, puuttuu/AFRelationship, aiemman koko asiakirjaa koskevan kaikki tai ei mitään -tarkistuksen sijaan (ISO 19005-3 Annex E.2)- Lisätty vanhentunut
/SetState-toiminto kiellettyjen toimintojen joukkoon/SetOCGState:n rinnalle, jotta PDF-viitteen toiminnon nimi otetaan suoraan kiinni (6.6.1)
Version 1.63.0
Lisätty (Lisätty)
- Lisätty
TPdf.MeasureTextjaTPdf.MeasureTextWidth: mittaa tekstin renderöidyn leveyden ja korkeuden annetussa fontissa ja koossa lisäämättä sisältöä sivulle (PDF-käyttäjäyksiköt, 1 yksikkö = 1/72 tuumaa), mahdollistaen asettelulaskut ja automaattisen rivinvaihdonAddText-kutsun päälle; toimitetaan erillisenä yksikkönäFPdfMeasureluokka-apurina
Muutettu (Muutettu)
Demo\Delphi\MergePDF,Demo\CBuilder\MergePDFjaDemo\Lazarus\MergePDFparanneltu kaikille kolmelle IDE:lle: tiedostokohtainen sivualue, valinnainen tulostuspolku, deduplikointi, ajokirjanpito, peruutuspainike, yhdistämisyhteenveto; kirjanmerkit ja metatiedot ensimmäisestä lähteestä- CreatePDF-demoihin lisätty eurooppalainen teksti ‑vaihtoehto tšekki/ranska/saksa/espanja/portugali/puola/turkki-korostekielten aksenteille, varmistaen fonttivalinnan ja Unicode-käsittelyn (entinen EuropeanText yhdistetty)
- Poistettu
ExtractTextPagesjaEuropeanText: sivukohtainen poiminta katetaan sivualue/erotin-toiminnollaExtractText:ssä; monikielinen renderöinti yhdistettyCreatePDF-demoon
Version 1.62.2
Korjattu (Korjattu)
- C++Builder-otsikot (
.hpp) luotiin uudelleen kaikille RAD Studio -versioille ja alustoille (Win32/Win64/Win64x); ne olivat erkaantuneet Pascal-lähteistä ja jättäneet vanhentuneita funktioallekirjoituksia sekä puuttuvia uniteja, jotka päätyivät C++Builder-käyttäjille lähdekoodijakelun mukana
Version 1.62.1
Korjattu (Korjattu)
- Lähdekoodin kääntyminen palautettiin RAD Studio 12 Athensissa ja sitä vanhemmissa versioissa: PDF/UA-validointipolun
TArray<Byte>-sijoitus käytti vain Delphi 13:ssa olevaa implisiittistä taulukkomuunnosta, joka ei kääntynyt vanhemmissa IDE-versioissa
Version 1.62.0
Lisätty (Lisätty)
TPdf.RenderPageThumbnailrenderöi minkä tahansa sivun indeksin perusteella kuvasuhteeseen sovitettuun bitmapiin muuttamatta dokumentin nykyistä sivua, ladattua sivua tai laukaisemattaOnPageChange-tapahtumaa
Korjattu (Korjattu)
TPdfThumbnailViewei enää ohjaa isäntädokumentinPageNumber-arvoa piirtämisen aikana; aiemmin jokainen uudelleenpiirto latasi sivut uudelleen, laukaisiOnPageChange-tapahtuman ja hylkäsi tekstisivun, mikä saattoi häiritä linkitettyäTPdfView-näkymää ja käynnistää uudelleenpiirtosilmukoita. Pienoiskuvat renderöidään nytRenderPageThumbnail-toiminnon kautta ilman näitä sivuvaikutuksia- PDF/X-vaatimustenmukaisuuden validointi tarkistaa nyt cross-reference stream -dokumentit (PDF 1.6, tyypillinen PDF/X-4:lle) ja pakattuihin object streameihin tallennetut objektit sen sijaan, että ilmoittaisi tällaiset tiedostot kokonaisuutena ei-vaatimustenmukaisiksi;
GTS_PDFXVersion-merkintä luetaan sekä elementtimuotoisesta että RDF-attribuuttimuotoisesta XMP:stä - PDF/R-validointi ilmoittaa nyt
pvriInfoXmpMismatch, kun Info dictionary ja XMP ovat eri mieltä Producer- tai Creator-arvosta; ongelma oli aiemmin määritelty, mutta sitä ei koskaan nostettu - Form-fill-ajastimia seurataan pyyntökohtaisesti, joten dokumentti, joka ajaa useita ajastimia yhtä aikaa (esimerkiksi JavaScript interval kentän caret-vilkun vieressä), säilyttää ne kaikki eikä menetä kaikkia paitsi viimeisintä
TPdfView-piirto ja sen julkisetRenderPage/RenderTile-metodit pitävät nyt dokumentin renderöintilukon ja sarjallistavat samanTPdf-dokumentin worker-thread-renderöinnin kanssa (PDFium ei ole thread-safe)- PDF/X-, PDF/R- ja PDF/VT-metadataan kirjoitettu muu kuin ASCII-teksti (OutputIntent-ehtonimet, Creator, Producer) koodataan nyt UTF-16BE-merkkijonona ISO 32000-1 §7.9.2.2:n mukaisesti raakamuotoisen UTF-8:n sijaan, jonka vaatimustenmukaiset lukijat lukisivat väärin
- Vaatimustenmukaisuuden helperit lukevat upotetut metadata streamit oikein, kun niiden
/Lengthon indirect reference, lataavat lähdetavutReadBuffer-kutsulla (jotta lyhyt luku epäonnistuu siististi) ja hylkäävät negatiivisenstartxref-siirtymän alueen ulkopuolisen luvun riskin sijaan
Version 1.61.0
Muutettu (Muutettu)
- FFI/ABI-määritysten korjaukset, jotka saattavat vaatia affected callbackit toteuttaneen koodin kääntämistä uudelleen:
FFI_OpenFile-form-fill-kutsu käyttää nytcdecl-kutsukonventiota (Win32 stack convention), javalue-parametri kutsuissaFPDFAnnot_SetStringValuejaFPDFAttachment_SetStringValueon nytFPDF_WIDESTRING(UTF-16LE) PDFium-otsikoiden mukaisesti - Progressive-load-kutsut
FX_FILEAVAIL.IsDataAvailjaFX_DOWNLOADHINTS.AddSegmentottavat nytsize_t-siirtymiä, jasize_ton Free Pascal / Lazarus Win64:ssa osoitinleveä (aiemmin katkaistu 32-bittiseksi), mikä korjaa data-availability- jaoutsize_tAPI-kutsut FPC Win64:ssa
Korjattu (Korjattu)
- Muistiturvallisuus: form-fill-ajastimen use-after-free, kun aktiivisen AcroForm-caretin sisältävä
TPdftuhottiin; kaksinkertainenFPDF_CloseDocumentImportNPagesToOne-toiminnon virhepolulla; Pascal-poikkeukset, jotka karkaavatFPDF_FILEWRITE/FPDF_FILEACCESS-kutsuista C-rajan yli tallennuksen ja JPEG-lisäyksen aikana; sekä kokonaislukuylivuoto tekstinpoiminnassa, kun luetaan aloitusindeksistä sivun loppuun TPdfFuture<T>toimittaa nyt tuloscallbackinsa luotettavasti; vastaus jäi aiemmin lähes aina pudotetuksi (ja saattoi osua vapautettuun säikeeseen), koska worker vapautti itsensä ennen kuin jonotettu vastaus ehti ajaa- PDF/A-, PDF/X-, PDF/E-, PDF/R-, PDF/VT- ja PDF/UA-tulosteet kirjoittavat nyt cross-reference-merkinnät, jotka ovat täsmälleen 20 tavua ISO 32000-1 §7.5.4:n vaatimuksen mukaisesti
- Standards marker injection ei enää tuhoa sanakirjaa, kun poistettu avain (esimerkiksi
/Trapped) oli viimeinen merkintä; aiemmin se nieli sulkevan>>-merkkijonon ja tuotti virheellisen objektin - OutputIntent-ICC-profiilistreamit ilmoittavat nyt vaaditun
/N-komponenttimäärän PDF/X:lle ja PDF/VT:lle (joka oli jo käytössä PDF/A:ssa); salatut lähdedokumentit puretaan ennen PDF/X-, PDF/E-, PDF/R-, PDF/VT- ja PDF/UA-merkintöjen lisäämistä, joten tulos on kelvollinen eikä hiljaisesti vioittunut - Luodun XMP:n UTF-8 xpacket BOM kirjoitetaan täsmälleen oikeina tavuina, mikä korjaa korruption Delphi-asennuksissa, joiden ANSI-koodisivu ei ole Latin-1; inkrementaalipäivityksen trailerit säilyttävät nyt asiakirjan
/Info-viitteen SaveAspakkauksen kanssa ei enää katkaise streameja, joiden/Lengthon indirect reference, ja uudelleenrakennetut cross-reference-taulukot käyttävät nyt 20 tavun merkintöjä, oikeita generation number -arvoja ja pudottavat vanhentuneen/Prev-osoittimen- Vaatimustenmukaisuuden validointi lukee PDF/E- ja PDF/X-tiedostojen attribute-form XMP -versionmerkit (joten attribute-serialised PDF/X-4 -tiedostot tunnistetaan), vaatii täsmällisen
PDF/E-1-tunnisteen, lukee indirect-/Length-metadata-streamit oikein eikä enää virheellisesti täsmää rakenneelementin/ID- tai/StructTreeRoot-avainta PDF/UA-traileria tarkistettaessa; virheellinenstartxref-siirtymä ei enää aiheuta aluevirhettä TPdfThumbnailView: viimeinen sivu on nyt saavutettavissa vierityspalkilla, isäntädokumentin nykyinen sivu palautetaan pikkukuvien piirtämisen jälkeen, ja tavallinen hiiren poistumisen käsittely lähetetään uudelleen- Harmaasävyisten sivu- ja kuvabitmapien väripaletti ei enää ole väärä;
TPdfViewei enää jää roikkuvaan viittaukseen, kun senTPdfvapautetaan ensin - Preflight-raportit: HTML tallennetaan UTF-8-muodossa vastaamaan ilmoitettua charsetiä, ja JSON-merkkijonon escaping tuottaa oikeat
\u-sekvenssit muille kuin ASCII-merkeille Free Pascalissa - Trial builds: trial reminder dialog näkyy nyt sen sijaan, että se estettäisiin ennen kuin se ehtii tulla näkyviin
TPdfStreamAdapterhylkää nyt yli 4 GiB:n streamit selkeällä virheellä sen sijaan, että se hiljaisesti katkaisisi PDFiumille välitetyn pituuden
Version 1.60.1
Muutettu (Muutettu)
- Delphi-, Lazarus- ja C++Builder-demoissa ääneenlukutoiminto toimii nyt
TPdfReadingSessionin kautta: jokainen sivu kootaan yhdeksi puhejaksiBuildSpokenTextFromWords-toiminnolla, SAPI:n sanapaikat syötetäänFeedSpokenPosition-toiminnolle, ja istunto etenee sivuilla sekä ohjaa näkymän sanakohdistinta korvaten kunkin demon aiemman käsin tehdyn ohjauksen - Demon sanatasoinen karaoke-seuranta toimii nyt myös NVDA:n ollessa puhemoottorina:
EstimatePacingtahdistaa lukukohdistinta kuluneen puheajan mukaan, kun NVDA aiemmin luki ääneen ilman lainkaan sanaseurantaa - Pysäytys ja jatkaminen toimivat demoissa nyt myös NVDA:n kanssa:
ResumeRestartsChunkpuhuu nykyisen sivun alusta uudelleen Resume-käskyllä, kun taas SAPI säilyttää oman paikallisen pysäytys- ja jatkotoimintonsa
Version 1.60.0
Lisätty (Lisätty)
- Reaaliaikainen heikkonäköisyyttä tukeva renderöinti
TPdfView:ssä: uudetreInvert- jareNightDuotone-renderöintivaihtoehdot värittävät jokaisen renderöidyn sivuruudun uudelleen (täysi värikäänteisyys tai yöduotone-paletti) ennen kuin haku-, valinta-, luku- ja sanakohdistinpäällykset piirretään, tuoden olemassa olevat bittikartan värimuunnokset interaktiiviseen katselimeen sekä yhden sivun että vastakkaissivujen asetteluissa; vaihtoehtojen vaihtaminen piirtää näkymän heti uudelleen NightDuotoneInkjaNightDuotonePapermäärittävät yöpaletin, oletuksena meripihkanvärinen teksti mustalla sivulla;reInvertvoittaa, kun molemmat vaihtoehdot on asetettu
Version 1.59.0
Lisätty (Lisätty)
TPdfReadingSession: puhemoottoriagnostinen ääneenlukun ohjauskomponentti. Se pitää yllä puhejakokohdistinta, sanakohdistinta ja toistotilaa (Play/PlayFrom/Pause/Resume/Stop), etenee ladattujenTPdfSpokenText-puhejakojen läpi isännän ilmoittaessa moottorin olevan joutilasTick-kutsulla, muuntaa puhetekstin siirtymät takaisin sivun merkeiksi ja ohjaa liitetynTPdfView-näkymän sanakohdistinta automaattisesti; isäntä liittää minkä tahansa puhemoottorinOnSpeak-tapahtuman sekä peruutus-, pysäytys- ja jatkopyyntötapahtumien kautta, joten kirjasto ei sido itseensä mitään puhe-API:aFeedSpokenPositionkäyttää moottorin sanapaikkoja (kuten SAPI:nStatus.InputWordPosition);EstimatePacingyhdessäEstimatedWordsPerMinute-arvon kanssa tahdistaa moottoreita ilman paikkasignaalia;ResumeRestartsChunkpuhuu nykyisen puhejakson uudelleen moottoreille, joilla ei ole natiivia taukoaOnChunkChange,OnWordChangejaOnFinishedlaukeavat vain todellisista muutoksista, ja vapautettu liitetty näkymä irrottaa itsensä automaattisesti, joten isäntäkoodi pysyy välkkymättömänä ja kaatumisilta suojattuna
Version 1.58.0
Lisätty (Lisätty)
EstimateSpokenWordIndexarvioi kuluneen ajan ja sanojen minuutissa -nopeuden perusteella, mitä sanaa puhemoottori lausuu, antaen pidemmille sanoille suhteellisesti enemmän aikaa, joten moottorit, jotka eivät raportoi sanapaikkaa (kuten NVDA controller client), voivat silti ohjata sanatasoista lukukohdistinta; kutsuja antaa kuluneen ajan, joten rutiini pysyy kellottomana ja yksikkötestattavana
Version 1.57.0
Lisätty (Lisätty)
- Puhetekstin kokoaminen kahden tason kartoituksella ääneenlukuseurantaa varten:
BuildSpokenTextFromWordsjaSpokenTextAppendrakentavat sivun sanalaatikoista tekstin, joka annetaan teksti puheeksi -moottorille, samalla kun span-taulukko tallennetaan, jaSpokenToPageCharmuuntaa moottorin ilmoittaman puhesiirtymän (kuten SAPI:nStatus.InputWordPosition) takaisin sivun merkkipaikaksi, joten sanatason korostuksen seuranta pysyy oikein silloin, kun puhuttu teksti ei ole koko sivun teksti (ohitetut alueet, yksikkökohtainen lukeminen, ääntämisen ohitukset) TPdfSpokenTextjaTPdfSpokenSpan-tyypit kantavat puhutun merkkijonon sekä lähdesivuvälit, joista se rakennettiin; lisättyihin erottimiin osuvat siirtymät ratkeavat seuraavaan kartoitettuun sanaan ja kartoitettujen jaksojen ulkopuolelle osuvat siirtymät ilmoittavat, ettei osumaa ole
Version 1.56.9
Lisätty
Demo\Delphi\PreflightReportlisää Action Plan -esikatselun, joka tiivistää läpäisemättömät standardit, prioriteetit, seuraavat toimet, issue-koodit ja suositukset korjauslistaksiDemo\Delphi\PreflightReportClihyväksyyplan/actionplan-muodon tulostusmuodoksi yhden tiedoston ja eräajojen ajoissa ja kirjoittaa saman korjauslistan tekstitiedostoon
Muutettu
- Molemmat Delphi PreflightReport -demot näyttävät nyt läpäisy-, toiminto- ja tarkistusstatuslaskurit yhdessä standardien ja issueiden kokonaismäärän kanssa
Version 1.56.8
Muutettu
ViewerInteractionLabsisältää nyt sivuhypyn ohjaukset, manuaaliset zoom-ohjaukset, klikkipohjaisenDeviceToPage/PageToDevice-koordinaattilokin sekä selkeämmän vuorovaikutuslokin valinnan, haun, kierron ja navigoinnin tarkistuksiinViewerInteractionLab-readme-sivut kuvaavat nyt lisätyn vuorovaikutustyönkulun koko lokalisoidussa demo-readmejoukossa
Version 1.56.7
Lisätty
AccessibilityWorkbenchCliliittää jokaisen käynnistyneen löydöksen sen WCAG 2.1 Success Criteria- ja ISO 14289-1 (PDF/UA-1) -kohtaan ja näyttää raporteissa standards-coverage-osionAccessibilityWorkbenchClilaskee dokumentoidun 0-100-saavutettavuuspisteytyksen julkaistulla rangaistusperusteella ja excellent / good / needs work / poor -luokituksella, joka näkyy tiedostokohtaisesti ja eräajon keskiarvonaAccessibilityWorkbenchClihyväksyyfailscore=N-arvon ja epäonnistaa ajon (poistumiskoodi 2), kun mikään tiedosto saa alle N pistettäAccessibilityWorkbenchClikirjoittaa SARIF 2.1.0 -lokin, kun eräyhteenvetotiedoston nimi päättyy.sarif-päätteeseen, ja yksi sääntö per löydöstyyppi kuljettaa omat WCAG 2.1- ja PDF/UA-tunnisteensa CI- ja code-scanning-syöttöä vartenAccessibilityWorkbenchClilisääversion-komennon, joka tulostaa linkitetyn PDFiumPas-version
Version 1.56.6
Lisätty
IntakeWorkbenchClilaskee jokaisesta syötetiedostosta SHA-256-forensisen tiivisteen (ja putoaa arvoonunavailablekääntäjillä, joilta puuttuuSystem.Hash) ja raportoi sen kaikissa muodoissaIntakeWorkbenchClihyväksyypasswords=file.txt-syötteen ja kokeilee salasanalla suojattujen asiakirjojen avaamista ehdokaslistasta, tallentaen täsmäävän ehdokasindeksin koskaan kirjaamatta salasanatekstiäIntakeWorkbenchClihyväksyycopyto=dir-parametrin ja ohjaa jokaisen tarkastetun tiedoston riskitason mukaiseen alikansioon, jolloin auditorista tulee intake-lajittelijaIntakeWorkbenchClikirjoittaa SARIF 2.1.0 -lokin, kun eräyhteenvetotiedoston nimi päättyy.sarif-päätteeseen, ja yksi sääntö per riskilippu sekä yksi tulos per liputettu tiedosto tukevat CI- ja code-scanning-syöttöäIntakeWorkbenchClilisääversion-komennon, joka tulostaa linkitetyn PDFiumPas-version
Version 1.56.5
Lisätty
IntakeWorkbenchClijohtaa nyt suositellut vastaanoton jälkeiset toimet, kuten accept, request-password, manual-review, quarantine ja deduplicate, ja näyttää toimintolaskurit eräyhteenvedoissaAccessibilityWorkbenchClijohtaa nyt suositellut korjaustoimet, kuten pass-through, remediate-tags, run-ocr, remediate-semantics ja manual-review, ja näyttää vastaavat toimintolaskurit eräyhteenvedoissa
Muutettu
- Molemmat työkalutason CLI-demot näyttävät suositellun toiminnon konsoli-, teksti-, HTML-, JSON- ja CSV-tulosteissa, jotta eräoperaattorit voivat reitittää tiedostot ilman jälkikäsittelyn riskiä tai tilakenttiä
Version 1.56.4
Korjattu
- Merkintöjen, kirjanmerkkien tai linkkimerkintöjen lukeminen silmukassa ei enää vuoda edellisen kohteen tekstijonoja:
TPdfAnnotation-,TBookmark- jaTLinkAnnotation-tulosrecordit alustetaan nyt hallittujen tyyppien huomioivalla alustuksella raakamuistin nollauksen sijaan, joten erittäin suuren määrän tekstiä sisältäviä merkintöjä kantavat asiakirjat eivät enää paisuta prosessin muistia sovelluksen koko eliniän ajaksi - Sellaisen
TPdf-olion tuhoaminen, joka oli rekisteröinytOnUnsupportedFeature-käsittelijän, irrottaa sen nyt prosessikohtaisesta PDFium-kutsusta, joten myöhempi asiakirjan lataus toisestaTPdf-instanssista ilman omaa käsittelijää ei enää voi lähettää kutsua vapautettuun komponenttiin (use-after-free)
Version 1.56.3
Korjattu
AccessibilityWorkbenchCliei enää laske tyhjiä sivuja heuristisen lukujärjestyksen sivuiksi, joten tyhjät erotinsivut sisältävät tagatut asiakirjat säilyttävät oikean saavutettavuustilansa; lukukelvottomat sivut raportoidaan nyt erikseenAccessibilityWorkbenchClin taulukko-otsikon tunnistus ei enää kirjaa ulompaa taulukkoaTH-soluista, jotka kuuluvat sisäkkäiseen taulukkoon, ja lomakekenttien sekä fonttien nimet verrataan kirjainkoon tarkkuudella, jotta erillisiä kenttiä ei yhdistetäIntakeWorkbenchClin URL-isäntäinventaario poistaa nyt userinfo-, query- ja fragment-osat, joten sellainen linkki kuintrusted.example@evil.exampleluetaan todellisen isännän mukaan, jamailto:-kohteet tuovat mukanaan oman verkkotunnuksensa sen sijaan että ne olisivat näkymättömiäIntakeWorkbenchClin Markdown-raportit pakenevat backtickit hyökkääjän hallitsemissa poluissa, isännissä ja liite-nimissä, joten raportin muotoilua ei voi rikkoa asiakirjan sisältä
Muutettu
AccessibilityWorkbenchCliraportoi fontti- ja lomakekenttäskennoinnin epäonnistumiset erillisinä laskureina, merkitsee fontit, joita ei ole upotettu mutta joista on myös upotettuja esiintymiä, ja katkaisee pitkät fonttilistat selkeällä katkaisumerkilläIntakeWorkbenchClieräyhteenvedot lisäävät liitemerkintöjen lukumääräsarakkeen, ja sivukohtainen merkintälaskenta on rajattu 20000 merkintään per sivu siten, että raja raportoidaan kaikissa muodoissa
Version 1.56.2
Lisätty
AccessibilityWorkbenchClitarkastaa nyt fonttien upotuksen, lomakekenttien työkaluvihjeet, lukujärjestyksen lähteen, asiakirjan ääriviivat, taulukko- ja luettelorakenteen, epäilyttävän vaihtoehtoisen tekstin ja rikkaammat sivukohtaiset tarkastustiedot, jotta saavutettavuuseräraportit löytävät enemmän korjauskohteitaIntakeWorkbenchCliraportoi nyt sivuskannauksen rajat, launch- ja remote-go-to-toiminnot, URI-isäntäinventaarit, merkintämäärät, tukemattomat PDFium-ominaisuudet, asiakirjojen kaksoistunnisteet ja laajennetut riskiliput automaattista intake-tarkastusta varten
Muutettu
IntakeWorkbenchClihyväksyymaxpages=N-arvon yhden tiedoston ja eräajojen tiloissa rajoittaakseen asiakirjakohtaisia sivuskannauksia samalla kun metadata-, liite-, script-, XFA-, allekirjoitus- ja riskiraportointi valmistuu edelleen
Version 1.56.1
Korjattu
- Vanhemman
pdfium.dll-kirjaston lataaminen, josta puuttuu uudempi vienti, epäonnistuu nyt siististi: virhepolku nollaa jokaisen sidotun API-pisteen, jotenAssigned()-tarkistukset (esimerkiksiFPDF_GetLastErrortaiFPDF_GetSecurityHandlerRevision) raportoivat kirjaston lataamattomaksi sen sijaan, että kutsuisivat jo purettuun moduuliin ja kaatuisivat access violationiin UnloadLibrarytyhjentää nyt kaikki PDFium-API-sidokset eikä vain valinnaisia V8-apureita, joten mitään vanhentuneita funktiopointereita ei jää eloon DLL:n vapauttamisen jälkeen
Version 1.56.0
Lisätty
TPdfView:n sanatasoinen karaoke-lukukohdistin:TrackReadingWordAtkartoittaa tekstistä puheeksi -moottorin nykyisen sanan merkkisiirtymän (kuten SAPI:nStatus.InputWordPosition) sivun sanalaatikoihin, korostaa sitä sisältävän sanan erillisenä päällyksenä lukulohkon yläpuolella, vierittää sen näkyviin ja palauttaa sanan indeksin, jotta lausuttu sana syttyy sitä mukaa kun ääni eteneeSetReadingWordjaClearReadingWordasettavat tai tyhjentävät korostetun sanan suoraanTPdfWordBoxista; saman sanan asettaminen uudelleen ei tee mitään, joten sanakohtainen seuranta ei koskaan saa näkymää värisemäänReadingWordColorjaReadingWordFollowohjaavat sanakohdistimen väriä ja sitä, vierittääkö näkymä lausutun sanan automaattisesti näkyviin
Version 1.55.2
Korjattu
- ViewerInteractionLab antaa nyt työkalurivin riveille enemmän pystysuuntaista tilaa, jotta Open PDF-, Create Sample-, navigointi-, haku- ja valintakontrollit eivät enää mene päällekkäin suurennettujen fonttien alla
Version 1.55.1
Korjattu
- ViewerInteractionLab sijoittaa nyt Prev-, Next- ja Rotate-painikkeet toiselle työkaluriville, jolloin käynnistyksen aikainen päällekkäisyys Open PDF- ja Create Sample -toimintojen kanssa vältetään
Version 1.55.0
Lisätty
- Sana-valinnan siltatoiminto "read it, select it" -lukemista varten:
TPdfView.SelectWordBoxjaSelectWordSpanvalitsevat yhden sanalaatikon tai saman sivun sanalaatikoiden jakson (PageWordBoxesista) niiden merkkialueiden perusteella, joten parhaillaan luettava sana tai rivi voidaan myös valita ja kopioida WordBoxIndexAtCharIndexmapittaa merkkisijainnin takaisin sitä sisältävään sanalaatikkoon ja ohjaa sana sanalta -korostusta, kun TTS-lukukohdistin etenee
Version 1.54.0
Lisätty
- Ääniohjauksen lomakkeentäyttöavaimet, jotka lukevat kohdistetun kentän suoraan loogisesta kohdistimesta:
FocusedFormFieldValue,FocusedFormFieldNamejaFocusedFormFieldDetailsTPdf:ssä jaTPdfView:ssä raportoivat nykyisen kentän arvon, ihmisen luettavan nimen (/TU-työkaluvihje, varalla/T) ja kokoTPdfFormFieldInfo-tiedon (tyyppi, liput, valinnat) - kaiken, mitä äänikäyttöliittymä tarvitsee ilmoittaessaan lomakkeen läpikäyntiä
Korjattu
FocusedFormFieldValuelukee kentänFocusedFormFieldIndex-arvon perusteella eikä pdfiumin interaktiivisen kohdistuksen perusteella, joten ääni-ohjattu lomakkeentäyttäjä saa oikean arvon myös ilman näytön kohdistinta (olemassa olevaFocusedFormFieldTextheijastaa edelleen pdfiumin kohdistusta eikä ole muuttunut)
Version 1.53.0
Lisätty
- Sanatasoisen korostuksen tuki:
TPdf.PageWordBoxesjaTPdfView.PageWordBoxesjakavat sivunTPdfWordBox-tietueiksi, joista kukin sisältää sanan tekstin, sen merkkivälin ja sivutilan rajauslaatikon, joten saavutettavuuslukija voi korostaa jokaista lausuttua sanaa vuorollaan ("karaoke"-luku) antamalla laatikonSetReadingHighlight-kutsulle BuildWordBoxestuo tokenisointivaiheen näkyviin omana toimintonaan ja muuntaa sivutekstin sanalaatikoiksi, joilla on merkkivälit
Version 1.52.0
Lisätty
- Heikkonäköisten renderöintiä tukevat apurit
InvertPdfBitmap,GrayscalePdfBitmapjaDuotonePdfBitmapsoveltavat paikan päällä värimuunnoksia renderöityyn 32-bittiseen bitmapiin, joten saavutettavuuslukija voi näyttää sivut käänteisinä / dark-mode-tilassa, harmaasävyisinä tai omassa kaksivärisessä skeemassa (esimerkiksi tumma tausta ja vaalea teksti) heikkonäköisille käyttäjille - Muunnokset toimivat pikseli pikseliltä ja käyttäytyvät identtisesti VCL:ssä sekä Lazarusissa/LCL:ssä muuttamatta bitmapin mittoja
Version 1.51.0
Lisätty
- Lausekohtaiset lukuyksiköt avustettuun kuuntelu- ja lukutoimintoon:
TPdf.ReadingUnits,TPdf.DocumentReadingUnitsjaTPdfView.ReadingUnitslinearisoi luettavan sisältövirran järjestetyiksi, lausekokoisiksiTPdfReadingUnit-tietueiksi — jokainen kantaa lausuttavan tekstin sekä sen semanttisen tyypin, sivun, korostuslaatikot ja kielitagin, jotta ruudunlukijasovellus voi edetä sivun tai koko asiakirjan läpi yksi lausuttu yksikkö kerrallaan - Semanttinen navigointi
NextReadingUnitOfKind-toiminnolla, jolloin äänikäyttöliittymä voi hypätä seuraavaan tai edelliseen otsikkoon, kuvaan, luettelokohtaan tai taulukon soluun ilman että virtaa tarvitsee skannata käsin BuildReadingUnitsmuuntaa minkä tahansaTPdfContentFragments-rakenteen suoraan lukuyksiköiksi: otsikot ja kuva-/alt-kuvaukset pysyvät kokonaisina, kun taas kappaleet pilkkoutuvat lauseiden rajoista, desimaalipisteet säilyvät ja lukukohdistin on tavallinen kutsujan omistama indeksi
Version 1.50.0
Lisätty
ValidatePdfAvoi nyt tarkastaa PDF 1.5+ -asiakirjat, jotka säilyttävät catalogin, OutputIntentin tai muut sanakirjat pakatuissa object stream -virroissa (/Type /ObjStm). Object streamit puretaan ja niiden kantamat objektit ratkaistaan, joten tällaiset asiakirjat validoidaan ansioidensa perusteella sen sijaan, että ne raportoitaisiin PDF/A-merkkien puuttumisena
Version 1.49.5
Korjattu
ValidatePdfAei enää raportoi puuttuvaapdfaExtension:schemas-kuvausta ongelmana. PDF/A identifier schema (pdfaid) on tunnettu, joten eivät veraPDF eivätkä PDF/A-2/-3 vaadi sille extension-schema-kuvausta, ja sen puuttumisen liputtaminen raportoi virheellisesti jokaisen vaatimustenmukaisen kolmannen osapuolen PDF/A:n. Kirjaston itse tuottamat asiakirjat sisältävät kuvauksen edelleen
Version 1.49.4
Korjattu
ValidatePdfAtunnistaa nyt vaatimustenmukaisuustason, kun PDF/A-tunniste kirjoitetaan XML-attribuutteina (pdfaid:part="2") eikä lapsielementteinä, joten attribuuttimuotoiset asiakirjat eivät enää saa tuntematonta tasoa. Tämä korjaa myös ketjureaktion, jossa havaitsematon taso sai part-kohtaiset tarkistukset palaamaan tiukkoihin PDF/A-1-sääntöihin ja liputtamaan virheellisesti upotetut tiedostot ja läpinäkyvyyden, jotka PDF/A-2 ja PDF/A-3 sallivat
Version 1.49.3
Korjattu
ValidatePdfAtutkii nyt PDF 1.5+ -asiakirjat, joiden cross-reference-data on cross-reference stream (tiedostot, joissa ei oletrailer-avainsanaa). Vaatimustenmukaisuustaso, trailerin/IDja muut merkit luetaan cross-reference stream -sanakirjasta, joten tällaiset asiakirjat validoidaan ansioidensa perusteella sen sijaan, että ne raportoitaisiin kokonaan vaatimustenvastaisiksi
Version 1.49.2
Korjattu
ValidatePdfAei enää raportoi virheellistä upottamattoman fontin ongelmaa asiakirjoissa, jotka upottavat kaikki fonttinsa. Aiempi heuristiikka vertasi/FontDescriptor-tokenien määrää upotettuihin fonttiohjelmiin, mutta jokainen upotettu fontti tuottaa kaksi/FontDescriptor-tokenia (fonttisanakirjan viite sekä descriptor-objekti), joten jokainen upotettu fontti sai virheellisen lipun. Tarkistus raportoi nyt vain asiakirjan, joka viittaa fontteihin mutta ei upota lainkaan fonttiohjelmaa, vastaten vastaavaaValidatePdfUa-korjausta
Version 1.49.1
Korjattu
- PDF/A-ulostulo validoituu nyt vaatimustenmukaiseksi PDF/A-1b:ksi ja PDF/A-1a:ksi veraPDF:n kanssa: upotettu sRGB OutputIntent ICC -profiilivirta (
/DestOutputProfile) ilmoittaa nyt vaaditun/N-komponenttimäärän (3 sisäiselle RGB-profiilille), kuten ISO 19005-1 6.2.3.2 edellyttää.SaveAsPdfA:lla tuotetut asiakirjat epäonnistuivat aiemmin tiukassa PDF/A-1-validoinnissa, koska kohdeprofiilivirta jätti/N-arvon pois; arvo johdetaan ICC-profiilin otsakkeesta, joten myös kutsujan antama CMYK- tai Gray-profiili saa oikean määrän
Version 1.49.0
Korjattu
ValidatePdfUaei enää raportoi vaatimustenmukaisissa tagatuissa PDF-tiedostoissa virheellistä puuttuvaa XMP-tunnistusta — PDF/UA-tunniste (pdfuaid:part),dc:title, XMP-päivämäärät ja trailerin/IDluetaan nyt alkuperäisistä asiakirjatavuista sen sijaan, että niitä luettaisiin uudelleentallennetusta kopiosta, josta puuttuu/Metadata-XMP-virta ja cross-reference-stream-tiedostoissa trailerin/IDValidatePdfUan fonttien upotustarkistus on korjattu niin, että asiakirjaa, joka upottaa kaikki fonttinsa, ei enää raportoida ei-upotettuja fontteja sisältävänä; se liputtaa nyt vain asiakirjan, joka viittaa fontteihin mutta ei upota lainkaan fonttiohjelmaaValidatePdfUahyväksyy nytFormula-rakenneselementin, jonka vaihtoehtoinen teksti annetaanActualText-kentän kautta eikäAlt-merkinnällä (ISO 14289-1 §7.7), mikä vastaa olemassa olevaaFigure-sääntöä
Version 1.48.0
Lisätty
- Ohjelmallinen tekstivalinta
TPdfView:ssä:SelectTextRange(sivun ja merkkivälin perusteella) jaSetSelection(selkeillä sivukohtaisilla väleillä) valitsevat tekstiä koodista — esimerkiksi kohdan lukemiseen ja korostamiseen; molemmat piirtävät uudelleen ja laukaisevatOnSelectionChange-tapahtuman, kun valinta muuttuu.SelectionRangeslukee nykyisen valinnan sivukohtaisina merkkiväleinä jaSelectionRectanglespalauttaa sen suorakulmiot sivukoordinaateissa omaa korostusta tai näkyviin vieritystä varten
Version 1.47.0
Lisätty
- Lomakekenttien navigointi ääniohjattua lomakkeentäyttöä varten sekä
TPdf:ssä ettäTPdfView:ssä:FormFieldTabOrder,FocusedFormFieldIndex,FocusFormField,FocusNextFormField,FocusPreviousFormField,ClearFormFieldFocusjaFocusedFormFieldText. Nämä liikuttavat loogista kenttäkohdistinta sivun widget-kenttien yli tab-järjestyksessä (kääntyen päissä), joten saavutettavuuslukija voi käydä lomakkeen läpi, ilmoittaa jokaisen kentänFormFieldInfo[Index].AlternateName-nimen kautta ("/TU"-työkaluvihje) ja täyttää senFormField[Index]-kentän kautta TPdfView.OnFormFieldFocusChange-tapahtuma, joka laukeaa kenttäkohdistimen liikkuessa ja kuljettaa uuden kenttäindeksin tai -1:n, kun kohdistus tyhjennetään
Version 1.46.0
Lisätty
- Avustettuun kuuntelu- ja lukutoimintaan tarkoitettu sisällön virta:
TPdf.ReadableContent,TPdf.ReadablePageContent,TPdf.DocumentReadableContentjaTPdfView.ReadableContentpalauttavat järjestetyn luettelon semanttisistaTPdfContentFragment-kohteista, joista kukin kantaa puhutun tekstin (todelliset glyphit tai kuvienActualText/Alt), fragmenttityypin (otsikko tasoineen, kappale, kuva, luettelokohta, taulukon solu, linkki, tavallinen), kielen, 1-pohjaisen sivun sekä lohko- ja rivikohtaiset korostuslaatikot. Tagatut PDF-tiedostot linearisoidaan loogisen lukujärjestyksen mukaan rakennepuusta; tagittomat sivut palautuvat piirtojärjestykseen, jotta mikä tahansa asiakirja voidaan lukea ääneen - Synkronoitu lukukorostus
TPdfView:ssä:SetReadingHighlight,ClearReadingHighlightja julkaistuReadingHighlightColorkorostavat parhaillaan luettavaa lohkoa hakus- ja valintapäällysten päällä - Uudet julkiset tyypit
TPdfContentFragment,TPdfContentFragments,TPdfReadableContent,TPdfContentFragmentKindjaTPdfReadingOrderSourcesekä uusi apuriClassifyStructType
Version 1.45.0
Lisätty
ValidatePdfUakäy nyt myös läpi elävän tagatun rakennepuun ja raportoi kolme korkean varmuuden sisältörikkomusta, joita tavutason skannaus ei havaitse:Figure-elementin ilman Alt-merkintää tai ActualTextiä (ISO 14289-1, 7.3),Formula-elementin ilman Alt-attribuuttia (7.7) jaNote-elementin ilman yksilöllistä ID:tä (7.9). Kolme uuttaTPdfUaValidationIssue-arvoa tuovat nämä näkyviin:pvuaiFigureMissingAlt,pvuaiFormulaMissingAltjapvuaiNoteMissingId. Puun läpikäynti ohitetaan tagittomilta asiakirjoilta- Uusi julkinen apuri
ValidatePdfUaStructureElementssoveltaa näitä rakennepuun sääntöjä tasattuun elementtiluetteloon (kutenTPdf.StructureElementspalauttaa), joten tarkistukset voidaan ajaa tai yksikkötestata lataamatta koko asiakirjaa
Version 1.44.5
Korjattu
ValidatePdfA:n fonttien upotustarkistus (pvaiFontNotEmbedded, ISO 19005-1, 6.3.4) havaitsee nyt myös ei-upotetut yksinkertaiset fontit, joilta puuttuu/FontDescriptor, etenkin 14 vakiota Type 1 -fonttia (Helvetica, Times, Courier ja niin edelleen), jotka PDF/A edellyttää upotettaviksi ilman poikkeusta. Aiemmin tällainen fontti jäi huomaamatta; tarkistus laskee nyt myös yksinkertaiset fonttisanakirjat (/Type1,/TrueType,/MMType1) upotettuja fonttiohjelmia vasten, samaan tapaan kuin 1.44.3:n PDF/UA-korjaus
Version 1.44.4
Korjattu
ValidatePdfVThylkää nyt virheelliset ISO 16612-2 §6.5 DPart-puut, joissa/DPartson tasainen viitejoukko vaaditun joukosta joukkoja -rakenteen sijaan tai joissa lehtimäinen DPart toistaa/Start-sivunsa/End-sivuksi, vaikka alue sisältää vain yhden sivunValidatePdfVTvalidoi nyt/NodeNameList-nimet XML NMTOKEN -arvoina PDF-nimen#xx-escape-laajennuksen jälkeen, joten virheelliset hierarkiatasojen nimet raportoidaanpvviMissingDPartRoot-kautta sen sijaan, että ne hyväksyttäisiin käyttökelpoiseksi DPart-rakenteeksi
Version 1.44.3
Korjattu
ValidatePdfUa-fonttien upotustarkistus (pvuaiFontNotEmbedded, ISO 14289-1, 7.21.4) havaitsee nyt myös upottamattomat yksinkertaiset fontit, joilla ei ole/FontDescriptor:ia, ennen kaikkea 14 vakiota Type 1 -fonttia (Helvetica, Times, Courier ja muut), joille PDF/UA ei anna upotusvapautusta. Aiemmin tällainen fontti jäi huomaamatta ja sitä käyttävä dokumentti voitiin raportoida vaatimustenmukaiseksi; tarkistus laskee nyt myös yksinkertaisten fonttien sanakirjat (/Type1,/TrueType,/MMType1) upotettuihin fonttiohjelmiin
Version 1.44.2
Korjattu
ValidatePdfVTjättää nyt läsnä olevan mutta tunnistamattomanpdfvtid:GTS_PDFVTVersion-merkinnän arvoonpvcUnknowneikä alenna sitä arvoonpvcNone. Tämä pitää virheelliset tiedostotason merkkijonot, kutenPDF/VT-2s, erotettavissa dokumenteista, joissa ei ole PDF/VT-merkintää; PDF/VT-2s tunnistetaan ISO 16612-2 Annex A:n MIME-virran otsakkeesta, ei PDF-tiedoston XMP-merkinnästä/DPartRoot-tarkistus validoi nyt ISO 16612-2 §6.5:n puurakenteen semantiikan aiempaa tiukemmin:/DPartRootNodeja/NodeNameListon kuvattava todellinen DPart-syvyys, DPartin ylätason linkkien on muodostettava puu,/Startja/DPartssulkevat toisensa pois, ja kunkin sivun/DPart:n on osoitettava peittävään lehtimaiseen DPartiin samassa syvyyssuuntaisessa järjestyksessä kuin sivupuu
Version 1.44.1
Korjattu
SaveAsPdfVTkirjoittaa nyt minimitasoisen ISO 16612-2 §6.5:n Document Part Hierarchy -rakenteen, kun lähde-PDF:stä puuttuu käyttökelpoinen/DPartRoot. Luotu puu liittää jokaisen sivun/DPart:n kautta, säilyttää olemassa olevan kelvollisen hierarkian ja jättää rikkaamman recipient/DPM-metadatan kutsuvalle työnkululleValidatePdfVTvalidoi nyt käyttökelpoisen DPart-rakenteen, lukee PDF/VT XMP -arvot sekä RDF-attribuuteista että elementtitekstistä ja pakottaa tarkan PDF/VT- ja PDF/X-perusparin: PDF/VT-1 vaatii PDF/X-4:n, kun taas PDF/VT-2 vaatii PDF/X-4p:n, PDF/X-5g:n tai PDF/X-5pg:nTPdfVTSaveOptions.Conformance = pvc2ei enää kirjoita virheellisiä yksittäisen tiedoston PDF/VT-2-merkintöjä. Yksittäisen tiedoston kirjoitin normalisoi tuloksen PDF/VT-1:ksi, koska PDF/VT-2 edellyttää file-set-semantikkaa
Version 1.44.0
Lisätty
ValidatePdfUaraportoi nyt myös tavutason tarkistettavat sisältötason PDF/UA-rikkomukset tiedostomuotomerkkien lisäksi: fonttiohjelman, jota ei ole upotettu (ISO 14289-1, 7.21.4), fontin, jolta puuttuu/ToUnicode-CMap silloin kun mikään vapautettu simple-font encoding ei ole käytössä (7.21.7), ja asiakirjan, joka sisältää merkintöjä mutta ei ilmoita sivun/Tabs /S-tab-järjestystä (7.18.3)- Kolme uutta
TPdfUaValidationIssue-arvoa —pvuaiFontNotEmbedded,pvuaiFontMissingToUnicodejapvuaiMissingTabsOrder— tuodaan näkyviinValidatePdfUa:ssa ja preflight-raportissa. Ne ovat karkeita heuristiikkoja, joiden tarkoitus on antaa preflight-vihjeitä eikä tehdä täydellistä ISO 14289-1 -varmennusta
Version 1.43.1
Korjattu
SaveAsPdfUapakottaa nyt ISO 14289-1, 7.1 -kohdan pakolliset/ViewerPreferences-merkinnät/DisplayDocTitle trueja/MarkInfo-merkinnät/Marked true/Suspects falsesilloinkin, kun lähdeasiakirja tarjoaa kyseiset sanakirjat puutteellisilla tai ristiriitaisilla arvoilla. Aiemmin merkit lisättiin vain silloin, kun sanakirjat puuttuivat kokonaan, joten esimerkiksi lähde, joka sisälsi/ViewerPreferences-sanakirjan ilmanDisplayDocTitle-arvoa tai/MarkInfo-sanakirjan jossa/Marked false, pyöristyi takaisin vaatimustenvastaiseen tiedostoon- Olemassa olevat avaimet valmiiksi olemassa olevassa
/ViewerPreferences- tai/MarkInfo-sanakirjassa säilytetään, ja epäsuorana viitteenä annettu sanakirja ratkaistaan ennen kuin pakolliset avaimet lisätään
Version 1.43.0
Lisätty
ValidatePdfAsoveltaa nyt PDF/A-2- ja PDF/A-3-sääntöjä upotettuihin ja liitettyihin tiedostoihin sekä Level U -tekstiin. Upotetut tiedostot hylätään edelleen PDF/A-1:ssä; PDF/A-3:ssa upotettu tiedosto, jolta puuttuu vaadittu/AFRelationship-avain (ISO 19005-3 Annex E), liputetaan, kun taas PDF/A-2-liitteet sallitaan (niiden omaa vaatimustenmukaisuutta ei tarkisteta rekursiivisesti). UusipvaiUnicodeMappingMissing-ongelma raportoi PDF/A-2u- tai PDF/A-3u-asiakirjan, jonka fontit eivät sisällä/ToUnicode-kartoitusta (ISO 19005-2 6.2.11.7). Läpinäkyvyys ja optional content liputetaan edelleen vain PDF/A-1:ssä
Version 1.42.0
Lisätty
- PDF/A-2 (ISO 19005-2) ja PDF/A-3 (ISO 19005-3) ovat nyt tuettuja kaikilla kolmella vaatimustenmukaisuustasolla — a, b ja u —
SaveAsPdfA:ssa,ValidatePdfA:ssa jaPdfAConformance-ominaisuudessa.TPdfAConformance-enum saa arvotpac2a,pac2u,pac3ajapac3u(PDF/A-1:llä ei ole Level u:ta). Tallennus kirjoittaa vastaavanpdfaid:part-arvon (2 tai 3) japdfaid:conformance-arvon (A, B tai U) säilyttäenGTS_PDFA1OutputIntent-tyypin, jonka ISO 19005-2 säilyttää yhteensopivuuden vuoksi. Level A -pyyntö laskeutuu edelleen vastaavaan Level B:hen (mille tahansa osalle), kun asiakirjasta puuttuu kyseisen tason vaatima tagattu rakenne
Version 1.41.0
Lisätty
ValidatePdfAhavaitsee nyt sisältötason PDF/A-rikkomukset, joita merkintöjen lisääminen ei voi korjata, niiden rakenteellisten merkkien lisäksi joita se jo raportoi: JavaScript ja muut kielletyt toiminnot, additional-actions (/AA), upotetut tiedostot,LZWDecode, läpinäkyvyys (soft maskit ja transparency groupit), optional content (/OCProperties), kielletyt annotation-subtypet (FileAttachment, Sound, Movie, 3D, Screen), AcroForm/NeedAppearances trueja/XFA, fontit joiden descriptorit eivät sisällä upotettua fonttiohjelmaa, sekä Level A -väite ilman ISO 19005-1 6.8:n vaatimaa tagattua rakennetta. Läpinäkyvyys-, optional-content- ja upotetun tiedoston tarkistukset koskevat vain PDF/A-1:tä (nämä ominaisuudet sallitaan PDF/A-2:ssa ja PDF/A-3:ssa). UudetTPdfAValidationIssue-arvot tuovat näkyviin jokaisen tapauksen; olemassa olevat arvot pysyvät muuttumattomina
Version 1.40.3
Korjattu
SaveAsPdfApoistaa nyt kaiken lähdeasiakirjan salauksen ennen PDF/A-ulostulon tuottamista. ISO 19005-1 6.1.3 kieltää trailerin/Encrypt-avaimen, mutta tallennuspolku säilytti aiemmin lähteen security handlerin, joten salatun asiakirjan tallentaminen PDF/A:ksi tuotti salatun, vaatimustenvastaisen tiedoston. PDF/A-tallennus purkaa asiakirjan nyt ensin. Salaamattomiin asiakirjoihin tällä ei ole vaikutusta
Version 1.40.2
Korjattu
SaveAsPdfAei enää tuota väärää PDF/A Level A -vaatimustenmukaisuusväitettä. Kun Level A (pac1a) pyydetään mutta lähdeasiakirjasta puuttuvat ISO 19005-1 6.8:n vaatimat tagatun rakenteen merkit —/StructTreeRootcatalogissa ja/MarkInfo-sanakirja, jossa/Marked true— tallennettu tiedosto tunnistetaan nyt vastaavana Level B:nä (pdfaid:conformance=B) sen sijaan, että se väittäisi Level A:ta. Pelkästään visuaalinen PDF/A-1b-ulostulo ei muutu
Version 1.40.1
Korjattu
- PDF-version vaatimustenmukaisuustarkistusta tiukennettiin niin, että
SetOCGState-toiminto (set-optional-content-group-state) tunnistetaan PDF 1.5 -ominaisuudeksi. Tallennus PDF 1.2-, 1.3- tai 1.4-kohteeseen, joka sisältääSetOCGState-toiminnon, hylätään nyt ISO 32000-1:n (Table 198) mukaisesti; aiemmin tällainen toiminto saattoi kulkea läpi alemman version ulostulossa. Erillinen, vanhentunut PDF 1.2SetState-toiminto hyväksytään edelleen PDF 1.2:sta alkaen
Version 1.40.0
Lisätty
- Sidoimme ylävirran
FPDFPageObj_AddExistingMark()-API:n, joka liittää olemassa olevan content mark -merkinnän sivuobjektiin. Kun peräkkäiset sivuobjektit jakavat saman merkin, tallennettu PDF tiivistää ne yhdeksi merkiksi, joka kattaa ne kaikki; ei-peräkkäiset objektit saavat omat erilliset kopionsa - Sidoimme ylävirran
FPDFTextObj_SetFontSize()-API:n olemassa olevan tekstiobjektin pistekoon muuttamista varten täydentämään olemassa olevaaFPDFTextObj_GetFontSize()-sidosta
Muutettu
- Päivitettiin mukana toimitetut PDFium-ajoaikaiset DLL:t (Win32 ja Win64, standardi- ja V8-rakenteet) 2026-06-02 ylävirran snapshotiin
Version 1.39.53
Muutettu
- Muutettiin Delphin
PDFViewer-,SplitView- jaMultiPageViewer-demot avaamaan asiakirjat oletuksenaZoom to Page-tilassa - Alkuperäinen renderöinti sovittaa nyt koko sivun katselupintaan ennen kuin käyttäjä valitsee manuaalisen zoom-tason
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.53
Version 1.39.52
Muutettu
- Parannettiin
Demo\Lazarus\CreatePDF:ää niin, että johdantonäyte luo nyt kaksisivuisen PDF:n, jossa on vektoripolkuja, taulukkoaineistoa, upotettu kuva, tekstiannotaatio, käännetty teksti ja selkeämpi asiakirjan rakentamisen läpikäynti - Lisättiin viimeistellyt
README.html-sivut jokaiseen Delphi-, C++Builder- ja Lazarus-demo-kansioon, korvaten jäljellä olleen pelkän tekstin README:n selainluettavalla oppaalla - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.52
Version 1.39.51
- Parannettiin
Demo\Delphi\PreflightReportCli-eräyhteenvedot standardien tilasummilla, jotka kattavat Pass-, Action required- ja Review-tulokset valittujen standardien yli - Tiedostokohtaiset rivit sisältävät nyt action-required- ja review-laskurit TXT / HTML / JSON / CSV -yhteenvedoissa, mikä tekee CI-artifakteista helpompia tarkastaa avaamatta jokaista luotua raporttia
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.51
Version 1.39.50
- Parannettiin
Demo\Delphi\PreflightReportCli:n hakemistopohjaista erätilaa niin, ettäbatchdir=folderkerää löydetyt PDF-polut, lajittelee ne ja luo sitten raportit vakaassa järjestyksessä - Rekursiiviset hakemistoskannaukset tuottavat nyt toistettavan raporttijärjestyksen ja yhteenvetorivit, kun taas eksplisiittinen
batch=list.txt-käsittely säilyttää edelleen listatiedoston järjestyksen - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.50
Version 1.39.49
- Parannettiin
Demo\Delphi\PreflightReportCli-eräyhteenvedot tallentamaan ajon asetukset: lähdetyyppi, lähdepolku, rekursiivinen tila, tuloshakemisto, raporttimuoto, valitut standardit jafailon=-tila - JSON-yhteenvedot sisältävät nyt
run-olion, TXT- ja HTML-yhteenvedot näyttävät ajon asetukset -osion ja CSV-rivit toistavat samat tarkastussarakkeet taulukko- ja CI-putkia varten - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.49
Version 1.39.48
- Parannettiin
Demo\Delphi\PreflightReportCli-erätulosteiden nimeämistä niin, että toistuvat syötetiedostonimet, jotka jakavat samanoutdir=-arvon, eivät enää yliaja toistensa luotuja raportteja - Eräajot lisäävät nyt
-2-,-3- ja myöhempiä jälkiliitteitä, kun luotu raporttipolku on jo osoitettu samassa ajossa, ja yhteenvedot tallentavat lopullisen törmäykseltä suojatun raporttipolun - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.48
Version 1.39.47
- Parannettiin
Demo\Delphi\PreflightReportCli-eräyhteenvedot niin, että TXT- ja JSON-ulostulot sisältävät nyt kokonaissummat kaikille tiedostoille, käsitellyille tiedostoille, epäonnistuneille tiedostoille, ongelmille jafailon=-osumille - CSV-yhteenvedot pysyvät edelleen pelkkänä rivitaulukkona olemassa oleville kuluttajille, kun taas HTML-yhteenvedot näyttävät samat koontimittarit edelleen kojelautan otsakkeessa
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.47
Version 1.39.46
- Parannettiin
Demo\Delphi\PreflightReportCli:täsummary=batch.html/.htm-tuella, jotta eräajot voivat tuottaa selainluettavan kojelaudan TXT / CSV / JSON -manifestien rinnalle - HTML-yhteenvedot näyttävät total-, processed-, failed-, issue- ja
failon=-osumamittarit ja listaavat sitten jokaisen syötteen raporttilinkkeineen, tiloineen, lukumäärineen ja virhetekstineen - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.46
Version 1.39.45
- Parannettiin
Demo\Delphi\PreflightReportCli:täbatchdir=folder- jarecursive-tuella, jotta skriptit voivat skannata PDF-kansioita suoraan ilman, että listatiedostoa tarvitsee kirjoittaa ensin - Hakemistopohjainen erätila käyttää uudelleen listapohjaisen erätilan
outdir=-,summary=-,standards=- jafailon=-käyttäytymisen, kun taas ei-rekursiivinen skannaus kattaa vain valitun kansion jarecursivemyös alikansiot - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.45
Version 1.39.44
- Parannettiin
Demo\Delphi\PreflightReportCli:täsummary=batch.csv|json|txt-tuella, jotta eräajot voivat tuottaa koneellisesti luettavan manifestin tiedostokohtaisten raporttien rinnalle - Eräyhteenvedot sisältävät jokaisen syötepolun, raporttipolun, tilan, standardimäärän, läpäisymäärän, issue-määrän,
failon=-osumatilan ja virhetekstin CI-ajoja ja ulkoisia skriptejä varten - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.44
Version 1.39.43
- Parannettiin
Demo\Delphi\PreflightReportCli:täbatch=list.txt- jaoutdir=reports-tuella, jotta skriptit voivat luoda preflight-raportit PDF-tiedostolistalle yhdessä ajossa - Erätila ohittaa tyhjät ja
#-kommenttirivit, johtaa kunkin.preflight.<ext>-raportin nimen syöte-PDF:stä, jatkaa tiedostokohtaisten virheiden jälkeen ja tekee yhteenvedon käsitellyistä ja epäonnistuneista tiedostoista ennen paluuta - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.43
Version 1.39.42
- Parannettiin
Demo\Delphi\PreflightReportCli:täfailon=none|issues|action|review-tuella, jotta CI-työt voivat muuntaa luodut preflight-tulokset deterministisiksi poistumiskoodeiksi - CLI palauttaa nyt poistumiskoodin 2, kun valittu
failon=-sääntö täsmää sen jälkeen kun raporttitiedosto ja valinnainen liitetty raportti-PDF on luotu, kun taas ajonaikaiset virheet palauttavat edelleen poistumiskoodin 1 - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.42
Version 1.39.41
- Parannettiin
Demo\Delphi\PreflightReportCli:täattach=output.pdf-tuella, jotta luotu preflight-raportti voidaan upottaa asiakirjatasoiseksi liitteeksi uuteen PDF-kopioon - CLI pitää luodun TXT / HTML / Markdown / JSON / CSV -raporttitiedoston levyllä eikä suostu liittämään sitä takaisin alkuperäiseen syöte-PDF-polkuun, mikä vähentää vahingossa tapahtuvan ylikirjoituksen riskiä
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.41
Version 1.39.40
- Lisättiin
Demo\Delphi\PreflightReportCli, Delphi-konsoliapuohjelma skriptattavaaFPdfPreflightReport-luontia varten ilman katselimen avaamista - CLI tukee esimerkin luontia ilman argumentteja sekä input / output -argumentteja, valinnaista salasanaa,
text/html/md/json/csv-tulostemuotoja jastandards=-suodatusta PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- ja PDF/VT-tiloille - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.40
Version 1.39.39
- Parannettiin
FPdfPreflightReport:täTPdfPreflightReport.ToMarkdown- jaSaveMarkdownToFile-toiminnoilla, jotta preflight-raportit voidaan viedä issue-seurannan kanssa hyvin toimivana Markdown-muotona - Päivitettiin Delphin, C++Builderin ja Lazaruksen
PreflightReport-esimerkit Markdown-esikatselun vaihdolla ja Save MD -toiminnoilla olemassa olevan TXT / HTML / JSON / CSV -työnkulun rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.39
Version 1.39.38
- Päivitettiin Delphin, C++Builderin ja Lazaruksen
SecurityAudit-esimerkit JSON-tarkastusraportin viennillä olemassa olevan TXT-tallennus- ja kopiointityönkulun rinnalle - JSON-raportti sisältää
format-,generatedAt-,summary- jafindingCount-kentät sekä jäsennellytfindings-rivit, joissa on severity-, area- ja detail-kentät - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.38
Version 1.39.37
- Parannettiin
FPdfPreflightReport:täTPdfPreflightReport.ToCsv- jaSaveCsvToFile-toiminnoilla, jotta preflight-raportit voidaan viedä taulukkolaskentaan sopivana CSV:nä - Päivitettiin Delphin, C++Builderin ja Lazaruksen
PreflightReport-esimerkit CSV-esikatselun vaihdolla ja Save CSV -toiminnoilla olemassa olevan TXT / HTML / JSON -työnkulun rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.37
Version 1.39.36
- Parannettiin
FPdfPreflightReport:täTPdfPreflightReport.IssueCategoryCounts-ominaisuudella sekä uudelleenkäytettävilläTPdfPreflightIssueCategoryCount- jaTPdfPreflightIssueCategoryCounts-tyypeillä, jotta merkkitasoiset ongelmat voidaan koota kategorioittain - Päivitettiin
TPdfPreflightReport.ToText,ToHtmljaToJsonniin, että luotu PreflightReport-ulostulo sisältää issue-kategorioiden lukumääräyhteenvedot standardikohtaisten rivien ja yksityiskohtaisten issue-suositusten rinnalla - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.36
Version 1.39.35
- Nimettiin laajennettu
PrintDialog-esimerkki uudelleen muotoonPrintPreferencesDelphissä, C++Builderissa ja Lazaruksessa, jotta demon nimi vastaa nyt sen PDF-tekijän tulostusasetuksia, N-up-tulostusta, pariton / parillinen -suodatusta, harmaasävyä, solureunaa ja duplex-mäppäyksen työnkulkua - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.35
Version 1.39.34
- Parannettiin
Demo\Delphi\PrintPDF:tä drag-and-drop-PDF-latauksella ja dokumentoitiin olemassa olevaDemo\CBuilder\PrintPDF-työnkulku Delphin ja Lazaruksen PrintPDF-esimerkkien rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.34
Version 1.39.33
- Lisättiin
Demo\CBuilder\SplitView, joka täydentää SplitView-esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.33
Version 1.39.32
- Lisättiin
Demo\Lazarus\SplitView, joka tuo rinnakkaisen PDF-vertailun Lazarukseen kahden tai kolmen paneelin asettelulla, aktiivisen näkymän navigoinnilla, synkronoiduilla komennoilla, zoom-esiasetuksilla ja kierrolla - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.32
Version 1.39.31
- Lisättiin
Demo\Lazarus\PrintPDF, joka tuo tavanomaisen PDF-tulostustyönkulun Lazarukseen esikatselunavigoinnilla, sivuväleillä, kopioilla, lajittelutilalla, edistymisellä ja peruutuksella - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.31
Version 1.39.30
- Lisättiin
Demo\Lazarus\FontProperties, joka täydentää FontProperties-esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.30
Version 1.39.29
- Lisättiin
Demo\CBuilder\FontProperties, joka tuo indeksoidun merkin ja fonttimetadatan tarkastelun C++Builderiin Delphin esimerkin rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.29
Version 1.39.28
- Lisättiin
Demo\Delphi\ExtractTextPages, joka täydentää sivukohtaisen tekstinpoiston esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.28
Version 1.39.27
- Lisättiin
Demo\Lazarus\PrintDialog, joka täydentää PrintDialog-esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.27
Version 1.39.26
- Lisättiin
Demo\CBuilder\PrintDialog, joka tuo N-up-tulostuksen ja PDF-tekijän tulostusasetusten työnkulun C++Builderiin Delphin esimerkin rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.26
Version 1.39.25
- Lisättiin
Demo\CBuilder\ViewerInteractionLab, joka täydentää ViewerInteractionLab-esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Päivitettiin kirjaston build-työnkulkua ja Win64 C++Builder -paketin ulostuloja niin, että
TPdfView-näkymän vuorovaikutusmetodit linkittyvät oikein Win64-demoissa - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.25
Version 1.39.24
- Lisättiin
Demo\Lazarus\ViewerInteractionLab, joka tuo kohdistetun katselimen vuorovaikutustyönkulun Lazarukseen Delphin esimerkin rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.24
Version 1.39.23
- Lisättiin
Demo\Lazarus\SearchAndSelect, joka täydentää SearchAndSelect-esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.23
Version 1.39.22
- Lisättiin
Demo\CBuilder\ContentExtractionLabjaDemo\Lazarus\ContentExtractionLab, jotka tuovat monikategorisen sisällönpoistotyönkulun kaikkiin tuettuihin demo-IDE-ympäristöihin - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.22
Version 1.39.21
- Parannettiin
Demo\Delphi\PreflightReport:tä,Demo\Lazarus\PreflightReport:tä jaDemo\CBuilder\PreflightReport:tä esikatselumuodon valitsimella, jotta käyttäjät voivat tarkastaa teksti- tai JSON-ulostulon ennen raporttien tallentamista - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.21
Version 1.39.20
- Lisättiin
FPdfPreflightReport:iin JSON-vientiTPdfPreflightReport.ToJson- jaSaveJsonToFile-toiminnoilla, jotka tuottavat koneellisesti luettavia yhteenvetoja, standardikohtaisen tilan / prioriteetin, seuraavat toimet ja issue-tiedot - Päivitettiin
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportjaDemo\CBuilder\PreflightReportSave JSON -toiminnoilla TXT / HTML -viennin rinnalle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.20
Version 1.39.19
- Parannettiin
FPdfPreflightReport:täTPdfPreflightStatus-tilalla, issue-kategorioilla, standardikohtaisella prioriteetilla ja seuraavan toimen ohjauksella TXT / HTML -raporteissa - Päivitettiin
Demo\Delphi\PreflightReport,Demo\Lazarus\PreflightReportjaDemo\CBuilder\PreflightReportnäyttämään tila, prioriteetti, issue-määrä ja seuraava toimi yhteenvetoruudukossa - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.19
Version 1.39.18
- Lisättiin
Demo\Lazarus\SecurityAudit, joka täydentää Delphin, C++Builderin ja Lazaruksen demo-matriisin vain luettavan PDF:n riskipinta-auditoinnin työnkululle - Lazarus-esimerkki luettelee oikeudet, liitteet, JavaScript-toiminnot, URI / Launch -linkkimerkinnät, web-linkit, allekirjoitukset, XFA-tilan, V8 / XFA -apuohjelmien saatavuuden ja tukemattoman ominaisuuden callbackit ja tallentaa tai kopioi löydösluettelon TXT-raporttina
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.18
Version 1.39.17
- Lisättiin
Demo\CBuilder\SecurityAudit, joka tuo vain luettavan PDF:n riskipinta-auditoinnin työnkulun C++Builderiin Delphin olemassa olevan esimerkin rinnalle - C++Builder-esimerkki luettelee oikeudet, liitteet, JavaScript-toiminnot, URI / Launch -linkkimerkinnät, web-linkit, allekirjoitukset, XFA-tilan, V8 / XFA -apuohjelmien saatavuuden ja tukemattoman ominaisuuden callbackit ja tallentaa tai kopioi löydösluettelon TXT-raporttina
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.17
Version 1.39.16
- Lisättiin
Demo\CBuilder\SearchAndSelect, joka tuo erillisen SearchAndSelect-katselintyönkulun C++Builderiin Delphin olemassa olevan esimerkin rinnalle - C++Builder-esimerkki luo tai avaa PDF:iä, listaa kaikkien sivujen osumat sivu- / merkkisiirtymäesikatseluilla, tukee Previous / Next -navigointia ja kaksoisklikkausta sekä korostaa nykyisen sivun osumat
HighlightSearchText-toiminnolla - Se tuo myös näkyviin
AllowUserTextSelection-,SelectedText-,SelectAll-,CopySelectionToClipboard-,ClearSelection-,OnSelectionChange- ja spreadDisplayMode-valinnat; version metadata raportoi nyt 1.39.16
Version 1.39.15
- Lisättiin
Demo\CBuilder\WatermarkStamp, joka täydentää Delphin, Lazaruksen ja C++Builderin demo-matriisin uudelleenkäytettäville Form XObject -vesileima- ja leimatyönkuluille - C++Builder-esimerkki luo kohde- ja leima-PDF:t, käyttää leimasivua uudelleen
CreateXObjectFromPage-toiminnon kautta, soveltaaTPdfMatrix-muunnoksia ja tallentaa keskitetyt vesileimat, kulmaleimat ja sivunumero-otsikot - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.15
Version 1.39.14
- Lisättiin
Demo\Lazarus\WatermarkStamp, joka tuo uudelleenkäytettävän Form XObject -vesileima- ja leimatyönkulun Lazarukseen - Lazarus-esimerkki luo kohde- ja leima-PDF:t, käyttää leimasivua uudelleen
CreateXObjectFromPage-toiminnon kautta, soveltaaTPdfMatrix-muunnoksia ja tallentaa keskitetyt vesileimat, kulmaleimat ja sivunumero-otsikot - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.14
Version 1.39.13
- Lisättiin
Demo\CBuilder\PreflightReport, joka täydentää Delphin, Lazaruksen ja C++Builderin demo-matriisin uudelleenkäytettävälleFPdfPreflightReport-työnkululle - C++Builder-esimerkki käyttää
FPdfPreflightReport.hpp-tiedostoa standardiyhteenvetojen, TXT-raportin esikatselujen, TXT / HTML -raporttitiedostojen ja Open Last Report -käyttäytymisen luomiseen - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.13
Version 1.39.12
- Lisättiin
Demo\Lazarus\PreflightReport, joka tuo PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- ja PDF/VT-preflight-raportointityönkulun Lazarukseen - Lazarus-esimerkki voi avata tai luoda PDF:n, valita kohdestandardit, esikatsella yhteenvetorivejä ja TXT-raportin ulostuloa, tallentaa TXT / HTML -raportteja ja avata viimeksi tallennetun raportin
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.12
Version 1.39.11
- Parannettiin
Demo\Delphi\SearchAndSelect:tä kaikkien sivujen hakutuloslistalla, joka tallentaa sivunumeron, merkkisiirtymän ja esikatselutekstin - Lisättiin Previous / Next -osumanavigointi ja tuloksen kaksoisklikkaushyppäys säilyttäen nykyisen sivun
HighlightSearchText-käyttäytyminen - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.11
Version 1.39.10
- Parannettiin
Demo\Delphi\SecurityAudit:tä Save Report- ja Copy Report -toiminnoilla, jotka vievät nykyisen yhteenvedon ja löydösrivit TXT-auditointiraportiksi - Demo tyhjentää nyt raportin vientitilan, kun auditointipaneeli nollataan, jotta kopioidut tai tallennetut raportit pysyvät näkyvien löydösten mukaisina
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.10
Version 1.39.9
- Parannettiin
Demo\Delphi\ContentExtractionLab:tä lähde-PDF:n tallennuksella, raportin kopioinnilla leikepöydälle ja all / none -kategoriavalintatoiminnoilla - Demo mitätöi nyt nykyisen raportin, kun kategoriavalinnat muuttuvat, joten TXT / JSON -viennit heijastavat näkyvää poiminta-aluetta
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.9
Version 1.39.8
- Lisättiin
Demo\Delphi\ContentExtractionLab, yhtenäinen sisällönpoiston työnkulkuesimerkki asiakirjаметadatalle, sivutekstille, sivuobjekteille, kuville, liitteille, linkeille, merkinnöille, kirjanmerkeille ja fontti- / merkkimittareille - Esimerkki voi avata olemassa olevan PDF:n tai luoda synteettisen PDF:n, jossa on teksti-, kuva-, liite- ja annotaatiosisältöä, ja tuottaa sitten yhteenvetorivejä sekä yksityiskohtaiset TXT / JSON -raportit
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.8
Version 1.39.7
- Lisättiin
Lib\FPdfPreflightReport.pas, uudelleenkäytettävä raporttiapuohjelma, joka kokoaaValidatePdfA:n,ValidatePdfUa:n,ValidatePdfE:n,ValidatePdfX:n,ValidatePdfR:n jaValidatePdfVT:n yhdeksiTPdfPreflightReport-olioksi - Lisättiin
Demo\Delphi\PreflightReport, työnkulkuesimerkki, joka avaa tai luo PDF:n, valitsee kohdestandardit, esikatselee yhteenvetorivit ja issue-suositukset sekä tallentaa TXT- tai HTML-raportit - Luodut raportit kuvaavat selvästi sisäänrakennetun merkkitason validointirajan, jotta sovellukset voivat yhdistää ne tarvittaessa erillisiin sisältötason preflight-työkaluihin
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata, pakettiprojektilistat ja asennusohjelman version metadata raportoimaan 1.39.7
Version 1.39.6
- Lisättiin
Demo\Delphi\SearchAndSelect, kohdennettu katselintyönkulkuesimerkki hakukorostukselle, tekstivalinnalle, valitun tekstin esikatselulle, kopioinnille, tyhjentämiselle ja spread-näyttötiloille - Esimerkki näyttää
HighlightSearchText-toiminnon, match-case / whole-word -hakuvalinnat,AllowUserTextSelection:n,SelectedText:n,SelectAll:n,CopySelectionToClipboard:n jaClearSelection:n lisäämättä uutta kirjasto-API:a - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.6
Version 1.39.5
- Laajennettiin
Demo\Delphi\ViewerInteractionLabSearchAndSelect-tyyliseksi katselimen UX-esimerkiksi, jossa onHighlightSearchText, match-case / whole-word -valinnat, valitun tekstin esikatselu ja olemassa olevat valinta- / leikepöytäohjaukset Demo\Delphi\PrintDialoglaajennettiin tarkastelemaan PDF-tekijän tulostusasetuksia:PrintCopies,PrintPageRanges,PrintScaling,PrintPaperHandlingja näkyväSetPdfPrintPaperHandlingDevMode-duplex-mäppäys- Lisättiin
Demo\Delphi\SecurityAudit, vain luettava riskipintaesimerkki, joka listaa oikeudet, liitteet, asiakirjan JavaScriptin, URI / Launch -linkit, web-linkit, allekirjoitukset, XFA-tilan ja V8 / XFA -apuohjelmien saatavuuden - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.5
Version 1.39.4
- Lisättiin
Demo\CBuilder\ImageToPDFjaDemo\Lazarus\ImageToPDF, jotka täydentävät ImageToPDF-esimerkkimatriisin Delphin, C++Builderin ja Lazaruksen yli - Uudet esimerkit näyttävät monikuvavalinnan, valitun kuvan esikatselun, yhden PDF-sivun per kuva -logiikan, A4 pysty / vaaka -sivukoon, keskitetyn kuvan skaalaamisen, kuvakohtaisen edistymisen ja luodun PDF:n avaamisen tallennuksen jälkeen
- Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.4
Version 1.39.3
- Lisättiin
Demo\CBuilder\BatchExport, joka tuo monitiedostoisen PDF->JPG-vientityönkulun C++Builderiin Delphin ja Lazaruksen olemassa olevien esimerkkien rinnalle - Esimerkki näyttää
LoadCustomDocument:n,IPdfCancellationTokenSource:n,TFileStream-syötteen suoratoiston, tiedosto- ja sivukohtaisen edistymisen, peruutuskäsittelyn, DPI- / laatu- / salasana-syötteet sekä tuloshakemiston avaamisen valmistumisen jälkeen - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.3
Version 1.39.2
- Lisättiin
Demo\Delphi\WatermarkStamp, ajettava Form XObject -työnkulkuesimerkki, joka luo kohde-PDF:n ja uudelleenkäytettävän leima-PDF:n ja soveltaa sitten keskitettyjä vesileimoja, oikeaan yläkulmaan sijoitettuja leimoja ja sivunumero-otsikoita jokaiseen sivuun - Esimerkki näyttää
CreateXObjectFromPage:n,InsertFormObjectFromXObject:n,TPdfMatrix:n jaFPDFPageObj_SetMatrix:n ilman uutta kirjasto-API:a - Päivitettiin
Docs\en-us\Examples.htmlkäyttämään nykyistäTPdfMatrix.Handle-mallia, kun matriiseja välitetäänFPDFPageObj_SetMatrix:lle - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.2
Version 1.39.1
- Lisättiin
Demo\Delphi\ViewerInteractionLab, kohdennettuTPdfView-esimerkki näyttötiloille, sovitustiloille, sivuväreille, kierrolle, käyttäjän tekstivalinnalle, leikepöytätoiminnoille jaDeviceToPage-koordinaattipalautteelle - Lisättiin
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLab, jotta Lazarus-käyttäjät voivat ajaa PDF/A-, PDF/UA-, PDF/E-, PDF/X-, PDF/R- ja PDF/VT-validointi- ja merkkitulostyönkulun - Lueteltiin standardiyksiköt tiedostoissa
Lib\37.0\PDFiumPas.dprojjaLib\FPC\PDFiumLaz.lpkja korjattiin DelphinSplitView-demon buildi poistamalla päällekkäinenWinapi.ShellAPI-tuonti - Korjattiin Delphin demojen batch-buildin estäjät kohdissa
BatchExport,PDFViewer,MultiPageViewerjaSplitViewmuuttamatta niiden ajonaikaista käyttäytymistä - Korjattiin C++Builder-demon batch-build-yhteensopivuus kohdissa
PDFViewerjaMultiPageViewerkorvaamallanullptrarvollaNULLnykyistä projektitilaa varten - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.1
Version 1.39.0
- Lisättiin
Demo\Delphi\StandardsLab, ajettava standardien työnkulkuesimerkki, joka lataa tai luo PDF:n, ajaaValidatePdfA:n,ValidatePdfUa:n,ValidatePdfE:n,ValidatePdfX:n,ValidatePdfR:n jaValidatePdfVT:n, ja näyttää havaitun vaatimustenmukaisuuden, läpäisy- / hylkäystilan ja issue-määrät yhdessä ruudukossa - StandardsLabin tallennuspainikkeet kutsuvat
SaveAsPdfA:ta,SaveAsPdfUa:ta,SaveAsPdfE:tä,SaveAsPdfX:ää,SaveAsPdfR:ää jaSaveAsPdfVT:tä, jolloin PDF-standardien merkkituloste näkyy ilman omaa harnessia - Päivitettiin
TPdf.AboutInfo, Lazarus-paketin metadata ja asennusohjelman version metadata raportoimaan 1.39.0
Version 1.38.0
TPdfView:n haku- ja tekstivalintapäällysteet käyttävät nyt oikeaa alpha-blendausta loogisen maskimaalauksen sijaan, mikä säilyttää sivun sisällön korostusten alla- Lisättiin
SetPdfPrintPaperHandlingDevModekartoittamaanTPrintPaperHandlingWindowsinDEVMODE.dmDuplex-arvoihin:DMDUP_SIMPLEX,DMDUP_HORIZONTALjaDMDUP_VERTICAL TPdfView.SmoothScrollanimoi nyt viiva- ja sivupalkkikomentoja ajastinohjatuissa osissa; peukalon seuranta pysyy välittömänä- Päivitettiin
TPdf.AboutInfoja asennusohjelman version metadata raportoimaan 1.38.0
Version 1.37.0
TPdfomistaa nyt per-instanssin renderöintilukon, joka sarjallistaaRenderPage-,RenderTile-,RenderPageProgressive-, sivun uudelleenlataus- ja asiakirjan purkupolut. Työntekijäohjattu renderöinti jaetun komponentin kautta on nyt käytännöllistä, vaikka sovellukset edelleen koordinoivat asiakirjan muokkausta ja elinikää- Korjattiin zero-copy-bittikarttawrapperi hylkäämään alhaalta ylöspäin asetellut
TBitmap-DIB-rakenteet ja palaamaan PDFiumin omistamaan puskuriin ennen kopiointia, mikä poistaa stride-korruptio- ja access violation -virheet VCL-renderöintitesteistä TPdfView:n valintakäyttäytymistä tiukennettiin:AllowUserTextSelectionrajoittaa vain käyttäjän syötettä, kooditason valinta-API:t maalaavat edelleen, jaSelectAllseuraa todellista näkyvää spreadiä, joten kansisivu ei enää valitse sivua 2. Delphi-, Lazarus- ja C++Builder-testit laajennettiin sen mukaisesti- Päivitettiin
TPdf.AboutInfoja asennusohjelman version metadata raportoimaan 1.37.0
Version 1.36.0
- Käyttöön otettiin loppukäyttäjän tekstivalinta
TPdfView:ssa —AllowUserTextSelection-ominaisuus, joka varattiin v1.17.0:ssa, ohjaa nyt täydellistä vedä-ja-valitse-putkea. Tekstimerkin vasen napsautus siirtää valintatilaan (hit-test auto), kun taas vasen napsautus tyhjään kohtaan jatkaa panorointia kuten ennenkin. Lomakkeiden täyttöwidgetillä on edelleen etusija, joten lomakekentän napsautus kohdistaa kentän eikä aloita valintaa - Kaksoisnapsautus valitsee sanan, kolmoisnapsautus valitsee rivin,
Ctrl+Avalitsee nykyisen sivun (molemmat sivut jaetun näkymän tiloissa), jaCtrl+Ckopioi valinnan Windowsin leikepöydälle muodossaCF_UNICODETEXT Shift+Left/Shift+Rightlaajentaa valintaa yhden merkin kerrallaan (ulottuen viereiselle sivulle jaetussa tilassa);Shift+Home/Shift+Endulottuu visuaalisen rivin reunaan käyttäen aloitusmerkin laatikon korkeutta riviklusterin toleranssina, joten erikokoisia fontteja sisältävät rivit pysyvät oikein ryhmiteltyinä- Tekstin päällä vieminen vaihtaa osoittimen muotoon
crIBeam; tekstin päältä poistuminen palauttaa oletusosoittimen. Kun tekstivalinnan veto on käynnissä, vetäminen 20 pikselin kuolleelle alueelle minkä tahansa katselualueen reunalla vierittää sivua automaattisesti (50 ms:n väli, 16 px / väli, rajattu samoihin rajoihin kuin panorointipolku käyttää), joten valinta voi jatkua nykyisen näkymäalueen ulkopuolelle ilman että hiirtä tarvitsee ensin vapauttaa - Sivujen välinen valinta toimii jaetun näkymän tiloissa (
dmTwoPageContinuous,dmTwoPageContinuousWithCover): vasemmalta sivulta alkanut ja oikealle sivulle päättynyt veto valitsee molemmat sivut kattavan yhtenäisen alueen.SelectedTextyhdistää sivukohtaiset osat CR/LF:llä, jotta teksti säilyy tavallisen monirivisen sisällön kaltaisena - Uusi julkaistu
SelectionColor-ominaisuus (oletusclHighlight, Windowsin järjestelmän valintaväri) — erillinenHighlightColor-ominaisuudesta, joka värittää hakutulokset keltaisiksi. Hakukorostukset ja reaaliaikainen vedolla tehtävä valinta voivat näkyä ruudulla samanaikaisesti ilman väriristiriitaa - Uusi julkaistu
OnSelectionChange-tapahtuma laukeaa aina, kun valinnan materialisoituneet alueet todella muuttuvat — ei koskaan identtisen uudelleenasetuksen yhteydessä, joten isäntäsovellukset voivat kytkeä sen suoraan tilarivin tekstiin tai painikkeen käytössä-tilaan ilman erillistä debouncingia - Uusi
TPdfView:n julkinen API:HasSelection,SelectionCharCount,SelectedText,ClearSelection,SelectAll,CopySelectionToClipboard. Nämä ovat kooditason sisäänpääsypisteitä ja toimivat aina riippumattaAllowUserTextSelection-asetuksesta — lippu rajoittaa vain käyttäjän syötettä (hiiri, Ctrl+C, Ctrl+A, Shift+arrows), joten kioskisovellukset voivat estää käyttäjän ohjaaman valinnan ja silti rakentaa "Select All / Copy" -työkalupainikkeita, jotka ohjaavat samaa APIa - Oletusarvoinen hiiren oikean painikkeen
Copy/复制-ponnahdusvalikko liitetään automaattisesti, kun isäntä ei ole määrittänyt omaaPopupMenu-valikkoaan — tavallinen "valitse teksti, napsauta oikealla, kopioi" toimii heti. Otsikko valitaan englannin ja kiinan välilläSysLocale.PriLangID:n perusteella; täydellistä lokalisointia tai monipuolisempaa valikkoa tarvitsevat isännät määrittävät vain omanPopupMenu-valikkonsa, ja oletus poistuu käytöstä - Valinta tyhjennetään automaattisesti
SetPdf-,SetPageNumber-,SetActive(False)- jaDisplayMode-siirtymissä, jaOnSelectionChangelaukeaa täsmälleen kerran, kun aiempi valinta ei ollut tyhjä. Lomaketäyttöalajärjestelmä säilyttää etusijan — kun lomakekenttää muokataan, kaikki valinnan pikanäppäimet väistyvät, jotta kenttä saa oman valintansa vartenCtrl+C/Ctrl+A/Shift+arrows - Delphin ja Lazaruksen regressiosarjat laajennettiin 202 tapaukseen kumpikin ja C++Builder-sarja 159 tapaukseen, kattaen oletusarvot, edestakaisen kierroksen, julkisen API:n käyttäytymisen, tilamuutosten tyhjennykset, hiiren vedon (hit-text / hit-blank), napsautuksen ja vedon, IBeam-osoittimen vaihdon, sanan kaksoisnapsautuksen, rivin kolmoisnapsautuksen, pikanäppäimet, oletusponnahdusvalikon liittämisen / lykkäämisen / otsikon sekä jaetun näkymän sivujen välisen valinnan — mukaan lukien leikepöydän CR/LF-edestakaiskierroksen tarkistus
Version 1.35.0
- Lisättiin PDF/VT (ISO 16612-2:2010) -merkkien upotustuki: TPdf.SaveAsPdfVT nostaa nykyisen asiakirjan PDF/VT-1- tai PDF/VT-2 -vaatimustenmukaiseksi tiedostoksi (muuttuvan ja transaktionaalisen tulostuksen PDF-alijoukko). PDF/VT rakentuu PDF/X-4:n päälle — ISO 16612-2 §6.2.1 edellyttää jokaisen PDF/VT-1-tiedoston olevan myös PDF/X-4:n mukainen — joten upottaja kirjoittaa koko PDF/X-4-merkkijoukon (XMP
pdfxid:GTS_PDFXVersion = "PDF/X-4", Info/GTS_PDFXVersion (PDF/X-4)ja/Trapped, catalog/OutputIntentsjoka viittaa OutputIntent-sanakirjaan upotetulla ICC-profiililla) PDF/VT-kohtaisten ominaisuuksien rinnalle - PDF/VT-kohtainen upotus kattaa XMP
pdfvtid:GTS_PDFVTVersion-arvon (= "PDF/VT-1" tai "PDF/VT-2" §6.3 Table 2:n mukaan) japdfvtid:GTS_PDFVTModDate-arvon (pidetään synkronissaxmp:ModifyDate:n kanssa §6.3 NOTE 1:n mukaan) sekä pdfaExtension:schemas-kuvauksen, joka ilmoittaa sekä pdfxid- että pdfvtid-nimiavaruudet (NPES-URI:thttp://www.npes.org/pdfx/ns/id/jahttp://www.npes.org/pdfvt/ns/id/). Trailer sisältää/ID-taulukon - Lisättiin TPdf.SaveAsPdfVTToStream muistissa tapahtuvaa PDF/VT-ulostuloa varten ja oletusasetusten lyhenne
TPdf.SaveAsPdfVT(FileName), joka tuottaa PDF/VT-1:n mukana toimitetulla sRGB IEC61966-2.1 OutputIntentillä (3144 bytes, sama profiili kuin SaveAsPdfA / SaveAsPdfX) ja/Trapped /False-arvolla - Lisättiin TPdf.ValidatePdfVT: tarkistaa avoimesta PDF:stä PDF/VT-vaatimustenmukaisuusmerkit (XMP
pdfvtid:GTS_PDFVTVersionjaGTS_PDFVTModDate-läsnäolo,pdfvtid:GTS_PDFVTModDate:n jaxmp:ModifyDate:n yhtäsuuruus, taustalla olevanpdfxid:GTS_PDFXVersion-tunnisteen läsnäolo, catalogin/DPartRoot-läsnäolo §6.5:n mukaan,/OutputIntents/DestOutputProfile:lla, trailer /ID, salauksen tila,xmp:CreateDate/ModifyDate-läsnäolo) ja palauttaa TPdfVTValidationResultin, jossa on havaittu vaatimustenmukaisuustaso ja löydettyjen ongelmien joukko - Lisättiin TPdf.PdfVTConformance-ominaisuus: palauttaa nykyisen avoimen asiakirjan vaatimustenmukaisuustason (pvc1, pvc2, pvcNone tai pvcUnknown) ilman että ValidatePdfVT:tä tarvitsee kutsua erikseen
- Uudet tyypit uuden FPdfPdfvt-yksikön viennissä: TPdfVTConformance (pvcUnknown/None/1/2), TPdfVTTrappedState (ptvUnspecified/True/False/Unknown), TPdfVTValidationResult, TPdfVTValidationIssue ja TPdfVTSaveOptions
- Document Part Hierarchy (
DPartRoot/DPart-puu §6.5:n mukaan) on sovellustason rakenne, joka riippuu muuttuvan datan tulostustyönkulun vastaanottaja- / sivuvälikartoituksesta. SaveAsPdfVT EI rakenna DPart-puuta automaattisesti — ValidatePdfVT tuo puuttuvan/DPartRoot:n näkyviin muodossapvviMissingDPartRoot, jotta kutsujat voivat ohjata PDF/VT-tiedostot erillisen DPart-rakennusvaiheen kautta. Sisältötason PDF/X-4-vaatimukset (fonttien upotus, läpinäkyvyys, ICC-hallittu väri, OPI / JavaScript / Reference XObject -kiellot jne.) pysyvät asiakirjan tekijän ja PDFiumin renderöintiputken vastuulla - Päivitettiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio
Version 1.34.0
- Lisättiin PDF/R-1 (ISO 23504-1:2020) -merkkien upotustuki: TPdf.SaveAsPdfR nostaa nykyisen asiakirjan PDF/R-1 -vaatimustenmukaiseksi tiedostoksi (rasterikuvien kuljetukseen tarkoitettu PDF-alijoukko skannatuille asiakirjoille). Upotus kattaa tiedostomuototason vaatimukset, jotka voidaan liittää jälkikäsittelyllä — ainutlaatuisen
%PDF-raster-1.0-versiontunnistekommentin, joka kirjoitetaan trailerisanakirjan ja startxref-avainsanan väliin (§5), §6.3:n valkoiseksi listaksi kutistetun catalog-sanakirjan (vain Version / ViewerPreferences / PageLayout / PageMode / AcroForm / Metadata säilyvät), §6.4.3:n valkoiseksi listaksi kutistetun Document Information Dictionaryn (vain Creator / Producer / CreationDate / ModDate), catalog /Metadata XMP -virran, joka kantaa §6.4.4 Table 1:n neljää kenttää (xmp:CreatorTool / pdf:Producer / xmp:CreateDate / xmp:ModifyDate), sekä trailer /ID -taulukon - Lisättiin TPdf.SaveAsPdfRToStream muistissa tapahtuvaa PDF/R-ulostuloa varten ja oletusasetusten lyhenne
TPdf.SaveAsPdfR(FileName)tavallista tapausta varten - Lisättiin TPdf.ValidatePdfR: tarkistaa avoimesta PDF:stä PDF/R-1-vaatimustenmukaisuusmerkit (footer-kommentin
%PDF-raster-x.y, otsakeversion, /Type /ObjStm -puutteen, catalogin valkoisen listan vaatimustenmukaisuuden, Info-sanakirjan valkoisen listan vaatimustenmukaisuuden, XMP-metadata-virran läsnäolon, trailer /ID:n) ja palauttaa TPdfRValidationResultin, jossa on havaittu vaatimustenmukaisuustaso ja löydettyjen ongelmien joukko - Lisättiin TPdf.PdfRConformance-ominaisuus: palauttaa nykyisen avoimen asiakirjan vaatimustenmukaisuustason (prc1, prcNone tai prcUnknown) ilman että ValidatePdfR:tä tarvitsee kutsua erikseen
- Uudet tyypit uuden FPdfPdfr-yksikön viennissä: TPdfRConformance, TPdfRValidationResult, TPdfRValidationIssue ja TPdfRSaveOptions.
TPdfRSaveOptions.Defaultasettaa StripInfoOptionalEntries- ja StripCatalogOptionalEntries-arvot Trueksi, joten upottaja tuottaa oletuksena §6.3 / §6.4.3:n mukaisen catalogin ja Info-sanakirjan; kutsujat voivat asettaa nämä arvoon False säilyttääkseen lähde-merkinnät (ulostulo ei silloin täytä kyseisiä PDF/R-lausekkeita, mutta muut merkit säilyvät liitettyinä) - Sisältötason vaatimukset ovat edelleen lähde-PDF:n vastuulla: sivukohtainen Contents-rakenne (§6.5.1), MediaBox
[0 0 w h]-muoto (§6.5.3), suodatinrajoitukset (§6.2.2 — vain FlateDecode, CCITTFaxDecode bitonal, DCTDecode 8-bit gray/RGB), object stream -puute (§6.2.4) ja strip layout §6.6:n mukaan. Näitä ei voi pakottaa jälkikäsittelyllä — PDF/R on rakenteellisesti paljon tiukempi alijoukko kuin muut PDF/x-standardit ja vaatii lähdetavujen tuottamisen oikein. ValidatePdfR tuo näkyviin tämän yksikön havaitsemat tiedostomuotovirheet; yhdistä se TWAIN Working Group PDF/R -validointiin täydellisiä sisältötason tarkistuksia varten - Päivitettiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio
Version 1.33.0
- Lisättiin PDF/X (ISO 15930 -perhe) -merkkien upotustuki: TPdf.SaveAsPdfX nostaa nykyisen asiakirjan PDF/X-1a:2001-, PDF/X-3:2002- tai PDF/X-4 -vaatimustenmukaiseksi tiedostoksi jälkikäsittelemällä perus-PDF:n inkrementaalisella päivityksellä. Upotus kattaa tiedostomuototason vaatimukset, jotka voidaan liittää jälkikäsittelyllä — XMP-metadata-virran, joka kantaa
pdfxid:GTS_PDFXVersion-arvon (japdfxid:GTS_PDFXConformance-arvon PDF/X-1a:lle / PDF/X-3:lle) sekä vastaavan pdfaExtension:schemas-kuvauksen, uudelleenkirjoitetun Document Information Dictionaryn, jossa on/GTS_PDFXVersion-,/GTS_PDFXConformance- ja/Trapped-merkinnät, päivitetyn catalogin, jossa on/OutputIntents [N 0 R]viittaamassa OutputIntent-sanakirjaan, jossa on/S /GTS_PDFXja upotettu ICC-profiili, sekä trailer/ID-taulukon - Lisättiin TPdf.SaveAsPdfXToStream muistissa tapahtuvaa PDF/X-ulostuloa varten ja oletusasetusten lyhenne
TPdf.SaveAsPdfX(FileName), joka tuottaa PDF/X-4:n mukana toimitetulla sRGB IEC61966-2.1 OutputIntentillä (3144 bytes, identtinen SaveAsPdfA:ssa käytetyn profiilin kanssa) - Lisättiin TPdf.ValidatePdfX: tarkistaa avoimesta PDF:stä PDF/X-vaatimustenmukaisuusmerkit (XMP pdfxid -tunnisteen ja Info-sanakirjan arvon yhtäsuuruus, pdfxid extension schema -kuvaus, /DestOutputProfilella varustettu /OutputIntents-taulukko, Title-läsnäolo, trailer /ID, salauksen tila, xmp:CreateDate / xmp:ModifyDate -läsnäolo) ja palauttaa TPdfXValidationResultin, jossa on havaittu taso ja löydettyjen ongelmien joukko
- Lisättiin TPdf.PdfXConformance-ominaisuus: palauttaa nykyisen avoimen asiakirjan vaatimustenmukaisuustason (pxc1a, pxc3, pxc4, pxcNone tai pxcUnknown) ilman että ValidatePdfX:tä tarvitsee kutsua erikseen. XMP-version merkkijono puretaan kolmen vaatimustenmukaisuustason erottamiseksi
- Uudet tyypit uuden FPdfPdfx-yksikön viennissä: TPdfXConformance (pxcUnknown/None/1a/3/4), TPdfXTrappedState (ptUnspecified/True/False/Unknown), TPdfXValidationResult, TPdfXValidationIssue ja TPdfXSaveOptions.
TPdfXSaveOptions.Defaultkohdistaa PDF/X-4:ään sRGB OutputIntentillä ja/Trapped /False-arvolla; kutsujat voivat ohittaaConformance-arvon, antaa CMYKIccProfileData-blobin kaupallisia tulostustyönkulkuja varten tai muuttaaOutputCondition/OutputConditionIdentifier/RegistryName-arvoja osoittamaan tiettyyn ICC characterization registry -merkintään (esim. FOGRA39, GRACoL2006_Coated1v2) - Sisältötason vaatimukset (kaikki fontit upotettuina, ei JavaScriptiä, ei näkyviä merkintöjä, OPI-kielto, läpinäkyvyyssäännöt PDF/X-1a:lle / PDF/X-3:lle jne.) pysyvät asiakirjan tekijän ja PDFiumin renderöintiputken vastuulla. Yhdistä ValidatePdfX preflight-työkaluun, kuten callas pdfaPilotiin tai Ghent PDF Workgroup Output Suiteen, täydellistä vaatimustenmukaisuuden varmennusta varten
- Päivitettiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio
Version 1.32.0
- Lisättiin PDF/E-1 (ISO 24517-1:2008) -merkkien upotustuki: TPdf.SaveAsPdfE nostaa nykyisen asiakirjan PDF/E-1 -vaatimustenmukaiseksi tiedostoksi jälkikäsittelemällä perus-PDF:n inkrementaalisella päivityksellä. Upotus kattaa tiedostomuototason vaatimukset, jotka voidaan liittää jälkikäsittelyllä — XMP-metadata-virran, joka kantaa
pdfe:ISO_PDFEVersion = "PDF/E-1"-arvon sekä vastaavan pdfaExtension:schemas-kuvauksen, uudelleenkirjoitetun Document Information Dictionaryn, jossa on §5:n vaatima pakollinen/ISO_PDFEVersion (PDF/E-1)-merkintä, ISO 19005-1 §6.7:stä §13.1:n kautta perityt Info-XMP-sillityskohdat (dc:title / dc:creator / dc:description / pdf:Producer / pdf:Keywords / xmp:CreateDate / xmp:ModifyDate / xmp:MetadataDate / xmp:CreatorTool) sekä §6.2:n vaatima trailer/ID-taulukko - Lisättiin TPdf.SaveAsPdfEToStream muistissa tapahtuvaa PDF/E-ulostuloa varten ja oletusasetusten lyhenne
TPdf.SaveAsPdfE(FileName)tavallista tapausta varten - Lisättiin TPdf.ValidatePdfE: tarkistaa avoimesta PDF:stä PDF/E-1-vaatimustenmukaisuusmerkit (XMP pdfe:ISO_PDFEVersion -läsnäolon ja yhtäsuuruuden Info-sanakirjan arvon kanssa, pdfe extension schema -kuvauksen, Info-sanakirjan /ISO_PDFEVersion-merkinnän, trailer /ID:n, xmp:CreateDate / xmp:ModifyDate -läsnäolon) ja palauttaa jäsennellyn tuloksen, jossa on havaittu vaatimustenmukaisuustaso ja löydettyjen ongelmien joukko
- Lisättiin TPdf.PdfEConformance-ominaisuus: palauttaa nykyisen avoimen asiakirjan vaatimustenmukaisuustason (pec1, pecNone tai pecUnknown) ilman että ValidatePdfE:tä tarvitsee kutsua erikseen
- Uudet tyypit uuden FPdfPdfe-yksikön viennissä: TPdfEConformance, TPdfEValidationResult, TPdfEValidationIssue ja TPdfESaveOptions
- Info-sanakirjan uudelleenkirjoitus on PDFiumPasin PDF/x-jälkikäsittelypolussa ensimmäinen laatuaan — se kirjoittaa olemassa olevan Info-objektin uudelleen samalla objektinumerolla (joten xref-aliosa / trailer /Info-viite pysyvät kelvollisina) ja muodostaa uuden Info-sanakirjan, kun lähdetrailerissa ei ole /Info-merkintää. PDFium itse tuottaa Info-sanakirjan jokaisessa SaveAs-ulostulossa, joten tavallisin tapaus on uudelleenkirjoituspolku
- Sisältötason vaatimukset (fonttien upotus, ToUnicode CMapit, kielletyt XObjectit / ExtGState-avaimet / XFA-lomakkeet jne.) pysyvät asiakirjan tekijän vastuulla — SaveAsPdfE liittää tiedostomuotomerkit, mutta ei muuta sivun sisältöä eikä poista kiellettyjä ominaisuuksia
- Päivitettiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio
Version 1.31.0
- Lisättiin PDF/UA-1 (ISO 14289-1:2014) -merkkien upotustuki: TPdf.SaveAsPdfUa nostaa nykyisen asiakirjan PDF/UA-1 -vaatimustenmukaiseksi tiedostoksi jälkikäsittelemällä perus-PDF:n inkrementaalisella päivityksellä. Upotus kattaa tiedostomuototason vaatimukset, jotka voidaan pakottaa jälkikäsittelyllä — XMP-metadata-virran, joka kantaa
pdfuaid:part = 1-arvon sekä vastaavan pdfaExtension:schemas-kuvauksen, pakollisendc:title:n, catalogin/MarkInfo << /Marked true /Suspects false >>ja/ViewerPreferences << /DisplayDocTitle true >>-merkinnät (vain kun lähteessä ei ole niitä), catalogin/Lang-arvon (kun kutsuja antaa BCP 47 -tunnisteen) sekä trailer/ID-taulukon - Lisättiin TPdf.SaveAsPdfUaToStream muistissa tapahtuvaa PDF/UA-ulostuloa varten ja oletusasetusten lyhenne
TPdf.SaveAsPdfUa(FileName)tavallista tapausta varten - Lisättiin TPdf.ValidatePdfUa: tarkistaa avoimesta PDF:stä PDF/UA-1-vaatimustenmukaisuusmerkit (StructTreeRootin olemassaolo, /Lang, /MarkInfo /Marked true /Suspects = false -arvolla, /ViewerPreferences /DisplayDocTitle true, XMP pdfuaid:part -tunniste, dc:title-läsnäolo, trailer /ID, salauksen tila) ja palauttaa jäsennellyn tuloksen, jossa on havaittu vaatimustenmukaisuustaso ja löydettyjen ongelmien joukko
- Lisättiin TPdf.PdfUaConformance-ominaisuus: palauttaa nykyisen avoimen asiakirjan vaatimustenmukaisuustason (puc1, pucNone tai pucUnknown) ilman että ValidatePdfUa:tä tarvitsee kutsua erikseen
- Uudet tyypit uuden FPdfPdfua-yksikön viennissä: TPdfUaConformance, TPdfUaValidationResult, TPdfUaValidationIssue ja TPdfUaSaveOptions
- TPdfUaSaveOptionsissa tyhjäksi jätetyt Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language -kentät täytetään automaattisesti arvoista FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, joten olemassa olevat kutsujat voivat tallentaa yhdellä rivillä
- Sisältötason vaatimukset (StructTreeRoot-tagauksen täydellisyys, Figure Alt -teksti, ToUnicode CMapit, fonttien upotus jne.) pysyvät asiakirjan tekijän vastuulla — SaveAsPdfUa liittää tiedostomuotomerkit, mutta ei muuta sivun sisältöä eikä keksi tageja. ValidatePdfUa tuo StructTreeRootin puuttumisen näkyviin muodossa
pvuaiMissingStructTreeRoot, jotta kutsujat voivat ohjata tagittomat asiakirjat erilliseen tagging-putkeen - Päivitettiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio
Version 1.30.0
- PDF/A-1b-ulostulo täyttää nyt ISO 19005-1:n (Cor.1:2007:n kanssa) Document Information Dictionary / XMP -vastaavuusvaatimukset: jokainen Info-sanakirjan kenttä, jonka PDFium kirjoittaa perus-PDF:ään, peilataan XMP-pakettiin, mukaan lukien Title (dc:title), Author (dc:creator), Subject (dc:description Cor.1:n mukaan), Keywords (pdf:Keywords), Creator (xmp:CreatorTool), Producer (pdf:Producer), CreationDate (xmp:CreateDate) ja ModDate (xmp:ModifyDate). Myös xmp:MetadataDate kirjoitetaan
- PDF/A-asiakirjan trailer sisältää nyt aina /ID-taulukon (ISO 19005-1 6.1.3:n kova vaatimus). Kun TPdf.SaveAsPdfA käsittelee asiakirjaa, jonka lähteellä on jo tiedostoidentiteetti, olemassa olevat 16-tavuiset pysyvä ja muuttuva ID käytetään uudelleen; muuten lähdetavuista johdetaan deterministinen 16-tavuinen varamuotoinen ID
- Upotettu XMP sisältää nyt ISO 19005-1 6.7.8:n vaatiman pdfaid extension schema -kuvauksen (Cor.1 korvasi kohdan) — pdfaid käsitellään extension schemana suhteessa XMP Specification 2004:ään, joten kaikkien vaatimustenmukaisten tiedostojen on ilmoitettava sen ominaisuuksien nimet, arvotyypit ja kategoriat pdfaExtension:schemas-kontainerissa
- TPdfASaveOptions sai viisi uutta valinnaista kenttää: Producer, CreationDate, ModDate (PDF-päivämäärämerkkijonot muodossa “D:YYYYMMDDHHmmSSOHH'mm'”), DocumentId ja InstanceId (16-tavuiset merkkijonot trailerin /ID-taulukkoa varten). TPdf.SaveAsPdfA / SaveAsPdfAToStream täyttää puuttuvat kentät automaattisesti arvoista FPDF_GetMetaText ja FPDF_GetFileIdentifier, joten olemassa olevat kutsujat jatkavat toimintaansa ilman muutoksia
- TPdf.ValidatePdfA / TPdf.PdfAConformance raportoivat nyt kolme lisäongelmaa: pvaiMissingTrailerId (trailerissa ei ole /ID:tä), pvaiMissingXmpDates (xmp:CreateDate tai xmp:ModifyDate puuttuu) ja pvaiMissingExtensionSchema (pdfaid extension schema -kuvaus puuttuu)
- Ei-ASCII-merkit Title-, Author-, Subject-, Keywords-, Creator- ja Producer-kentissä koodataan nyt UTF-8:na XMP-paketissa (XMP Specification vaatii UTF-8:n), mikä säilyttää monikielisen metadatan round-tripin SaveAsPdfA:n läpi
- Päivitettiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio
Version 1.29.0
- Päivitettiin mukana toimitetut PDFium DLL:t (Win32 ja Win64, sekä standardi- että V8-rakenteet) 2026-05-22:n ylävirran snapshotiin, jolloin saatiin mukaan FPDFText_SetText / FPDFText_SetCharcodes -kaatumispolkujen ylävirran korjaukset ja muita PDFium-projektin sisäisiä kovennuksia
- Otettiin näkyviin PDFiumin uusi FPDF_SUBSET_NEW_FONTS-tallennuslippu tiedostossa FPdfPageOps.pas, jolloin FPDF_SaveAsCopy -kutsujat voivat pyytää upotettujen fonttitiedostojen automaattista alijoukotusta uusille tekstiobjekteille. Olemassa olevat FPDF_INCREMENTAL-, FPDF_NO_INCREMENTAL- ja FPDF_REMOVE_SECURITY -vakiot määritellään nyt ylävirran bit shift -muodossa (vanha numeerinen arvo 3 säilytetään muodossa FPDF_REMOVE_SECURITY_DEPRECATED binääriyhteensopivuuden vuoksi)
- Lisättiin FPDF_FONT_BACKEND_TYPE-enum (FREETYPE / FONTATIONS) ja vastaava m_FontLibraryType-kenttä FPDF_LIBRARY_CONFIGiin tiedostossa FPdfView.pas, joten sovellukset, jotka alustavat PDFiumin Skia-renderöijällä, voivat nyt valita fonttitaustan käynnistyksessä
- Päivitettiin TFPDFPage_InsertObjectin allekirjoitus vastaamaan ylävirtaa: C-funktio palauttaa nyt FPDF_BOOLin (TRUE onnistumisesta, FALSE jos page_object on NULL tai omistajuuden siirto epäonnistuu) voian sijasta. Olemassa olevat PDFiumPas-kutsujat kääntyvät edelleen muuttumattomina, koska Delphi / FPC sallivat funktion paluuarvon sivuuttamisen
- Korjattiin TPdf.AboutInfo-merkkijono raportoimaan nykyinen tuotteen versio (oli jumissa arvossa v1.27.0 v1.28.0:n vain dokumentaatiota koskeneen julkaisun jälkeen)
Version 1.28.0
- Sivun sisäinen dokumentaatio laajennettiin huomattavasti koko API-viitteessä: jokaisella property-, method-, event- ja global function -merkinnällä on nyt 3-kappaleinen Kuvaus, Huomautukset-lista, monirivinen Delphi Esimerkki ja rikkaampi Katso myös -lohko — kattaen yli 200 aiemmin ohutta sivua, mukaan lukien kaikki TPdf-laskurit, metadata-getterit, fontti- ja merkkien avaajat, sivutason ominaisuudet, indeksoidut recordit, asiakirjatasoiset metodit ja koko TPdfView:n tila / näyttö / event-pinta
- Ohjeen asettelua hienosäädettiin vastaamaan losLabin visuaalista peruslinjaa HotXLS-viitteessä: h1/h2-koot sovitettiin, API-navigointiruudukon tyylit yhdistettiin yhteiseen StyleSheetiin ja sivukohtaiset inline CSS -ylikirjoitukset poistettiin Navigation.html:stä
- Dokumentaation mukana toimitetaan nyt apuskripti (Docs\Build-Expand-Entries.ps1), joka regeneroi entry-sivujen rikastuksen yhdestä tietotaulukosta toistettavaa ylläpitoa varten
Version 1.27.0
- Lisättiin PDF/A-1b-luontituki: TPdf.SaveAsPdfA tallentaa minkä tahansa avoimen asiakirjan PDF/A-1b -vaatimustenmukaiseksi tiedostoksi jälkikäsittelemällä perus-PDF:n inkrementaalisella päivityksellä, joka upottaa XMP-metadata-virran, sRGB ICC OutputIntentin ja päivitetyn asiakirjaluettelon — kaikki ilman lisä-DLL-API:a. Toimii kaikilla PDFiumPasin tukemilla alustoilla
- Lisättiin TPdf.SaveAsPdfAToStream muistissa tapahtuvaa PDF/A-ulostuloa varten
- Lisättiin TPdf.ValidatePdfA: tarkistaa avoimesta PDF:stä PDF/A-vaatimustenmukaisuuden (XMP pdfaid -merkit, OutputIntent upotetulla ICC-profiililla, salaus) ja palauttaa jäsennellyn tuloksen, jossa on havaittu vaatimustenmukaisuustaso ja löydettyjen yksittäisten ongelmien joukko
- Lisättiin TPdf.PdfAConformance-ominaisuus: palauttaa nykyisen avoimen asiakirjan vaatimustenmukaisuustason (pac1b, pac1a, pac2b, pac3b, pacNone tai pacUnknown) ilman että ValidatePdfA:tä tarvitsee kutsua erikseen
- Uudet tyypit vietiin esiin: TPdfAConformance, TPdfAValidationResult, TPdfAValidationIssue ja TPdfASaveOptions (uudessa FPdfPdfa.pas-yksikössä)
- SaveAsPdfA tukee mukautettua ICC-profiilia TPdfASaveOptions.IccProfileData:n kautta; kun kenttä jätetään tyhjäksi, sisäinen sRGB IEC61966-2.1 (HP/Microsoft, 3144 bytes) -profiili käytetään automaattisesti
- Monoliittinen HTML-viite korvattiin jäsennellyllä web-ohjejärjestelmällä: 302 yksittäistä API-entry-sivua (yksi propertylle, metodille, eventille ja global functionille), jotka kattavat TPdf:n ja TPdfView:n, ja joissa jokaisessa on täydellinen kuvaus, parametritaulukko, Delphi-koodiesimerkki ja Katso myös -linkit
- Lisättiin Navigation.html: kattava yhden sivun API-navigointi-indeksi, joka on järjestetty kuuteen osioon (TPdf properties/methods/events, TPdfView properties/methods/events, global functions) ja jossa on 5-sarakkeinen flex-ruudukko nopeaa silmäilyä varten
- TPdf.html ja TPdfView.html rakennettiin uudelleen kompakteiksi komponenttiyhteenvetosivuiksi, jotka säilyttävät tyyppiviiteosiot (Types, Constants, Global Variables) ja linkittävät kaikkiin jäsenkohtaisiin entry-sivuihin
- Lisättiin täystekstihaku Search.js:n avulla inkrementaalisella selainpuolen haulla kaikkien 312 indeksoidun sivun yli
- Päivitettiin kaikki navigointipalkit koko sivustolla osoittamaan Navigation.html:ään
Version 1.26.0
- Lisättiin Demo/Lazarus/BatchExport, v1.14.0:n Delphi BatchExport -demon LCL-porttaus. Sama ominaisuusjoukko: usean tiedoston PDF -> JPG -vienti tiedostokohtaisella kokonaisedistymällä, sivukohtaisella nykyisellä edistymällä, DPI / laatu / salasana -syötteillä ja yhteistyössä peruutettavalla erällä, jota IPdfCancellationToken ohjaa. Tulostuskansio avataan alustan tiedostonhallinnassa, kun poiminta valmistuu onnistuneesti
Version 1.25.0
- Lisättiin Form XObject -sivujen uudelleenkäyttö TPdf:ään, mikä mahdollistaa vesileima-, mallipohja- ja “stamp one page onto many” -työnkulut: CreateXObjectFromPage luo uudelleenkäytettävän kahvan minkä tahansa toisen dokumentin sivusta; InsertFormObjectFromXObject lisää yhden kopion kapseloidusta sivusta nykyiselle sivulle. Palauttaa lisätyn FPDF_PAGEOBJECTin, jotta kutsuja voi sijoittaa / skaalata / kiertää sitä FPDFPageObj_SetMatrix- ja v1.9.0 TPdfMatrix-apureilla
- Uusi TPdfXObject Pascal-luokka kapseloi PDFiumin FPDF_XOBJECT-kahvan ja sulkee sen automaattisesti destruktorissaan, mikä poistaa manuaalisen FPDF_CloseXObject-rutiinin
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 147 tapaukseen kumpikin ja C++Builder-sarja 123 tapaukseen, kattaen kahvanluonnin ja sivuobjektin lisäyksen sopimukset
Version 1.24.0
- TPdf.RenderPageProgressive — peruutettava RenderPage-muunnos, joka ohjaa PDFiumin progressiivista renderöintisilmukkaa ja kysyy v1.7.0 IPdfCancellationToken -tokeneita iterointien välillä, jotta pitkät korkearesoluutioiset renderöinnit voivat keskeytyä kesken sivun sen sijaan että ne estäisivät kutsujan valmistumiseen asti
- Palauttaa TPdfProgressiveStatus-arvon: prsDone, prsCancelled tai prsFailed. Anna AToken = nil, jos haluat renderöidä loppuun ilman koskaan pysähtymistä (ei mahdollisuutta prsCancelled-tilaan)
- Käyttää samaa v1.21.0:ssa esiteltyä zero-copy-pikapolkua — PDFium renderöi suoraan kohteen TBitmapin DIB:iin. Sama perinteinen varapolku pätee, kun DIB:iä ei voi kapseloida
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 145 tapaukseen kumpikin ja C++Builder-sarja 121 tapaukseen, kattaen nil-tokenin (valmistuu), ennakkoon peruutetun tokenin (prsCancelled) ja pikselivastaavuuden synkronisen RenderPage:n kanssa elävällä tokenilla
Version 1.23.0
- Lisättiin kuusi uutta TPdfView-metodia, jotka tuovat PDFiumin lomakewidgetin tekstivalinnan ja Undo/Redo-toiminnat sovellusten käyttöön: GetSelectedFormText palauttaa parhaillaan valitun tekstin kohdistetun lomakewidgetin sisältä; SelectAllFormText valitsee kaikki merkit; FormUndo / FormRedo / FormCanUndo / FormCanRedo ohjaavat kohdistetun widgetin muokkaushistoriaa. Taustalla olevat PDFium-API:t oli jo sidottu, mutta niille ei ollut korkean tason sisääntulopistettä. Kaikki kuusi oikaisevat turvallisesti, kun näkymä ei ole aktiivinen tai dokumentissa ei ole kohdistettua AcroForm-widgetiä
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 142 tapaukseen kumpikin ja C++Builder-sarja 119 tapaukseen, kattaen jokaisen uuden metodin no-form-no-focus-sopimuksen
Version 1.22.0
- Lisättiin TPdf:ään sivujen sommittelun kääreet: ImportPagesByIndex ottaa nollapohjaisen indeksitaulukon kopioidakseen tietyt sivut lähdedokumentista; ImportNPagesToOne palauttaa täysin uuden TPdf:n, jonka sivut ovat tämän dokumentin N-up-yhdistelmiä; MovePages järjestää sivut uudelleen paikoillaan. Taustalla olevat PDFium-API:t olivat jo sidottu, mutta niille ei ollut Pascal-ystävällistä sisääntulopistettä
- ImportPagesByIndex hyväksyy tyhjän taulukon kaikkien lähdesivujen tuontiin (vastaa nil-parametrin välittämistä C ABI -tasolla)
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 136 tapaukseen kumpikin ja C++Builder-sarja 115 tapaukseen, kattaen osajoukon tuonnin, koko dokumentin tuonnin, sivujen uudelleenjärjestelyn ja N-up-yhdistelmän
Version 1.21.0
- Renderointisuorituskykyä parannettiin vaihtamalla TPdf.RenderPage / TPdf.RenderTile (ja vastaavat TPdfView-apurit) zero-copy-ulostulopolkuun. PDFium kirjoittaa nyt suoraan kohteen TBitmapin DIB-puskuriin sen sijaan, että kirjoittaisi sisäiseen puskuriin, joka kopioitiin sitten rivi kerrallaan, mikä säästää yhden width x height x 4 bytes -muistokopion renderöintiä kohden. Parannus näkyy selvimmin korkealla DPI:llä (pienoispaneelit, tulostuslaatuinen vienti, eräajo)
- Per vanha rivikohtainen polku pidetään varana epätodennäköistä tapausta varten, jossa kohteen DIB:iä ei voi kapseloida (äärimitat, epätavallinen stride, OOM). Käyttäytyminen on biteittäin identtinen molemmissa poluissa, vain varapolku on hitaampi
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 132 tapaukseen kumpikin ja C++Builder-sarja 112 tapaukseen, kattaen kutsujan bittikartan pf32bit-päivityksen, mittojen round-tripin ja suuren bittikartan stride-järjestyksen terveystestin
Version 1.20.0
- Lisättiin hakutulosten korostus TPdfView:ään: HighlightSearchText(Text, MatchCase, MatchWholeWord) skannaa nykyisen näkymäsivun ja palauttaa löydettyjen osumien määrän, maalaten jokaisen osuman päälle HighlightColor-maskin jokaisella uudelleenpiirrolla. ClearHighlight poistaa korostukset; näkymän vaihtaminen toiselle sivulle poistaa ne automaattisesti, koska osumat ovat sivukohtaisia
- HighlightColor on oletuksena clYellow ja julkaistu, jotta sovellukset voivat teemoittaa korostuksen oman käyttöliittymäpalettinsa mukaiseksi
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 129 tapaukseen kumpikin ja C++Builder-sarja 109 tapaukseen, kattaen oletusvärin, värin round-tripin, “todelliset testiarkiston sanaosumat” sample.pdf-merkkijonoa vasten ja “puuttuva sana palauttaa nolla osumaa” -sopimuksen
Version 1.19.0
- Lisättiin TPdfView:ään FitMode-ominaisuus neljällä arvolla: pfmNone (manuaalinen zoomaus), pfmActualSize (100%), pfmFitPage (koko sivu mahtuu näkymään) ja pfmFitWidth (sivun leveys vastaa näkymän leveyttä). Aktiivinen sovitusmoodi asetetaan uudelleen automaattisesti Resize-tapahtumassa ja nykyisen sivun vaihtuessa, joten pitkät dokumentit eri sivukooilla pysyvät siististi rajattuina
- Zoomin asettaminen suoraan peruuttaa aktiivisen sovitusmoodin (FitMode palautuu arvoon pfmNone), mikä vastaa tavallista PDF-katselimen käytäntöä, jossa zoom-arvon kirjoittaminen poistaa Fit Page / Fit Width -tilan
- Oletus on pfmNone, joten olemassa olevat sovellukset säilyttävät suoran zoomauksen käyttäytymisen
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 124 tapaukseen kumpikin ja C++Builder-sarja 106 tapaukseen, kattaen oletusarvon, moodin round-tripin, fit-page-toiminnon, joka tuottaa oikean zoomin ladatulle dokumentille, ja manuaalisen zoomin, joka peruuttaa sovitusmoodin
Version 1.18.0
- Lisättiin TPdfView:ään PageColor-ominaisuus, joka erottaa renderöidyn PDF-sivun taustan ympäröivän ohjauksen Color-arvosta. Oletus on clWhite, joten PDF-sivut renderöityvät nyt paperinvalkoisina isäntäsovelluksen teemasta riippumatta. Tumma-teemaiset katselimet voivat nyt pitää vieritysalueen tummana ja jättää varsinaisen PDF-sivun valkoiseksi (tai miksi tahansa sovellus valitsee)
- Käyttäytymismuutos: sovellusten, jotka aiemmin asettivat TPdfView.Colorin PDF-sivun värittämiseksi, tulisi asettaa PageColor sen sijaan. Oletuskokemus paranee yleisessä tapauksessa (valkoiset sivut teematuille ohjaustaustoille) ilman koodimuutoksia
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 120 tapaukseen kumpikin ja C++Builder-sarja 103 tapaukseen, kattaen oletusarvon ja värin round-tripin
Version 1.17.0
- Lisättiin TPdfView:ään käyttäjän syötteen lukituskytkimet, jotta katselimen kioskeihin, esikatselupaneeleihin tai vain-luku-konteksteihin upottavat sovellukset voivat poistaa navigointieleet ilman aliluokitusta: AllowUserPageChange ohjaa uusia PgUp / PgDn / Ctrl+Home / Ctrl+End -näppäinoikoteitä; ChangePageOnMouseScrolling ohjaa uusia pyörän ylös / pyörän alas -sivuhyppyjä; AllowUserTextSelection on varattu tulevaa hiirellä vedettävää tekstivalinnan polkua varten. Kaikki kolme ovat oletuksena True, joten olemassa olevat sovellukset päivittyvät ilman käyttäytymismuutosta
- Hiiren rullan sivunvaihto ohittaa Ctrl+wheelin, joten sovellukset voivat pitää Ctrl+wheelin varattuna zoomaukselle
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 118 tapaukseen kumpikin ja C++Builder-sarja 101 tapaukseen, kattaen oletusarvot ja kytkimien round-tripin
Version 1.16.2
- Laajennettiin TPdfView-regressiokatetta huomautuslinkkien klikkauksille silloin, kun katselimen sivu eroaa siihen liittyvästä TPdf-sivusta, käyttäen oikeaa headless-hiiriklikkauspolkua Delphi-, Lazarus- ja C++Builder-ympäristöissä
- Delphi- ja Lazarus-sarjoissa ajetaan nyt 114 tapausta kummassakin, ja C++Builderissä 99 tapausta
Version 1.16.1
- Korjattiin TPdfView:n linkkiklikkikäsittely niin, että automaattiset huomautus- ja verkkolinkkitoiminnot käyttävät sivua, joka on tällä hetkellä katselimessa näkyvissä, vaikka siihen liittyvä TPdf-komponentti olisi toisella sivulla
- Vahvistettiin TPdfThumbnailView dangling Pdf -viittauksia vastaan silloin, kun linkitetty TPdf-komponentti tuhotaan
- Lisättiin pikkukuvan viitteen elinkaaren regressiokate; Delphi- ja Lazarus-sarjoissa ajetaan nyt 113 tapausta kummassakin ja C++Builderissä 98 tapausta
- Synkronoitiin README, testidokumentaatio, HTML Helpin haku-/indeksisisältö ja generoidut C++-pakettien ulostulot v1.7.0:n ja v1.16.0:n integraatiopäivitysten kanssa
Version 1.16.0
- Lisättiin uusi Delphi PrintDialog -demo (Demo/Delphi/PrintDialog), joka keskittyy N-up-tulostukseen (1 / 2 / 4 / 9 sivua arkille) parillisten ja parittomien sivujen suodatuksella, harmaasävyisellä renderöinnillä ja valinnaisilla 1 pikselin solureunoilla. Se on tarkoituksella pieni kumppani olemassa olevalle PrintPDF-demolle, joka kattaa jo esikatselun, viimeisimmät tiedostot, zoomauksen ja skaalauksen
Version 1.15.0
- Lisättiin uusi TPdfThumbnailView-komponentti (FPdfThumbnail-yksikkö), joka renderöi yhden sivun pienoiskuvan riville vieritettävään sivupaneeliin hover- ja valintakorostuksella sekä klikkaamalla siirtymisen navigoinnilla. Suunniteltu sijoitettavaksi TPdfView:n viereen, jotta loppukäyttäjät voivat selata pitkää dokumenttia sivu sivulta
- Komponentti on rekisteröity losLab-palettivälilehdelle TPdf:n ja TPdfView:n rinnalle; keskeiset ominaisuudet: Pdf, CurrentPageIndex, ThumbnailWidth, ThumbnailHeight, TextColor, HoverColor, SelectionColor, BorderColor ja OnPageClick-tapahtuma
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 112 tapaukseen kumpikin ja C++Builder-sarja 97 tapaukseen, kattaen oletusarvot, pikkukuvan koon round-tripin, äärimmäisten arvojen rajoituksen, värin round-tripin ja tapahtumankäsittelijän asettamisen
Version 1.14.0
- Lisättiin uusi Delphi BatchExport -demo (Demo/Delphi/BatchExport), joka näyttää, miten monia PDF-tiedostoja muunnetaan JPG:ksi yhdellä ajolla käyttäen TPdf.LoadCustomDocumentia virtauslukuun, IPdfCancellationTokenia yhteistyössä peruutettavaan käsittelyyn ja tiedostokohtaista kokonaisedistymää sekä sivukohtaista edistymää. Demo käyttää yhtä TPdf-instanssia tiedostoa kohti (PDFium ei ole itse säieturvallinen) ja avaa tuloskansion Explorerissa, kun poiminta valmistuu onnistuneesti
Version 1.13.0
- Lisättiin TPdfView:ään asynkronisen renderöinnin käyttöliittymäpeite kolmen uuden ominaisuuden kautta: AsyncRendering, LoadingText ja LoadingColor. Kun AsyncRendering on True, yhden sivun piirto polku näyttää pienen “Loading...”-ilmaisimen renderöidyn sivun päällä, joten sovellukset, jotka käyttävät omaa työntekijäänsä pitkille renderöinneille, saavat yhtenäisen visuaalisen vihjeen
- Oletukset säilyttävät nykyisen käyttäytymisen: AsyncRendering on False, joten sovellukset, jotka eivät ota ominaisuutta käyttöön, eivät näe visuaalista muutosta
- Dokumentaatio selventää, että PDFium ei itse ole säieturvallinen — renderöinnin todellinen siirtäminen työntekijälle edellyttää, että kutsuja pitää yhden TPdf:n kutakin työntekijää kohti; tuleva batch-export-demo näyttää tämän mallin
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 106 tapaukseen kumpikin ja C++Builder-sarja 93 tapaukseen, kattaen oletusarvot ja kolmen ominaisuuden round-tripin
Version 1.12.0
- Lisättiin klikkipohjainen linkkikäsittely TPdfView:ään. Uusi LinkOptions-ominaisuus ohjaa automaattista käyttäytymistä neljälle PDF-linkkitoimintotyypille: goto (sivuhyppy), URI (ShellExecute), launch (ShellExecute) ja upotettu GotoR (varattu). Oletukset ottavat käyttöön loAutoGoto- ja loAutoOpenURI-toiminnot; loAutoLaunch ja loAutoEmbeddedGoto pysyvät pois päältä, jotta yksittäinen klikkaus ei voi käynnistää mielivaltaista ohjelmaa
- Lisättiin OnAnnotationLinkClick- ja OnWebLinkClick-tapahtumat, jotka laukeavat ennen mitä tahansa automaattista toimintoa ja antavat sovelluksille mahdollisuuden tarkastaa linkin, merkitä sen Handled-tilaan tai ohjata sen uudelleen (esimerkiksi suojauskehotteeseen)
- Linkkiklikkauksen tunnistus toimii vain, kun ele on klikkaus eikä vedätys, käyttäen tuoretta MouseDown-ankkuria, joten panorointieleet kulkevat edelleen olemassa olevan vierityspolun kautta muuttumattomina
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 102 tapaukseen kumpikin ja C++Builder-sarja 91 tapaukseen, kattaen oletus-LinkOptionsit, asetetun round-tripin ja tapahtumankäsittelijän asettamisen
Version 1.11.0
- Lisättiin TPdfView:ään visuaalista viimeistelyä: PageShadowSize-, PageShadowColor- ja PageBorderColor-ominaisuudet piirtävät valinnaisen pudotusvarjon sivun suorakulmion alle ja yhden pikselin reunuksen sen ympärille. Oletukset säilyttävät aiemman tasaisen ulkoasun (PageShadowSize = 0; reunus piirretään oletuksena clBlack-värillä, mutta sulautuu oletuksena valkoiseen taustaan, kunnes kutsujat vaihtavat värejä)
- Lisättiin SmoothScroll-ominaisuus valinnaiseksi lipuksi tulevaa asteittaista vieritysanimointia varten; ominaisuus round-trippaa nykyään ja on kytketty niin, että sovellukset voivat säilyttää asetuksen, kun taas renderöintipuoli käyttää edelleen nykyistä välitöntä vierityskäyttäytymistä
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 98 tapaukseen kumpikin ja C++Builder-sarja 89 tapaukseen, kattaen oletusarvot, ominaisuuksien round-tripin ja negatiivisen shadow size -rajoituksen
Version 1.10.0
- Lisättiin suora kuvanlisäys uusilla TPdf.AddImage- ja TPdfView.AddImage-overloadeilla, jotka ottavat joko tiedostopolun tai TBitmapin olemassa olevan TPicture-pohjaisen AddPictureen lisäksi. AddImage(FileName) tunnistaa minkä tahansa VCL- tai LCL-grafiikkayksiköissä rekisteröidyn muodon (BMP, PNG PngImage-yksikön kautta, JPG ja muut) ja kulkee saman putken läpi kuin AddPicture, joten käyttäytyminen on identtinen
- AddImage(TBitmap) ohittaa TPicture-välikerroksen, mikä yksinkertaistaa kutsujia, joilla on jo TBitmap renderöinnistä tai erägeneroinnista
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 92 tapaukseen kumpikin ja C++Builder-sarja 84 tapaukseen, kattaen bittikartan lisäyksen, sivuobjektin rajat, nil-bittikartan hylkäämisen ja BMP-tiedoston latauksen
Version 1.9.0
- Lisättiin korkean tason muunnosmatriisituki uuden TPdfMatrix-luokan kautta FPdfMatrix-yksikössä. TPdfMatrix kapseloi PDFiumin FS_MATRIXin oliopohjaisella API:lla Translate-, Scale-, Rotate-, HorizontalFlip-, VerticalFlip-, CentralFlip-, Skew- ja Multiply-operaatioita varten, sopien muunnosten koostamiseen ennen niiden antamista FPDFPageObj_SetMatrixille ja vastaaville PDFium-API:ille
- TPdfMatrix.Multiply ottaa kuuden matriisielementin tilannekuvan oikein ennen uusien riviarvojen laskemista, korjaten piilevän ongelman, jossa vaihtoehtoiset Pascal-toteutukset ylikirjoittivat aiempia elementtejä saman kutsun aikana ja tuottivat virheellisiä tuloksia kaikille koostumuksille, jotka menevät puhdasta siirtoa pidemmälle
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 88 tapaukseen kumpikin ja C++Builder-sarja 81 tapaukseen, kattaen identiteetin, nollauksen, siirron / skaalauksen / peilauksen, post-multiplikatiivisen koostamisjärjestyksen ja Multiply-regressiotapauksen
Version 1.8.0
- Lisättiin pyynnöstä tapahtuva virtauslataus uuden TPdf.LoadCustomDocument(AStream, AOwnsStream) -metodin ja TPdfStreamAdapter-apuluokan kautta, PDFiumin FPDF_LoadCustomDocumentin tukemana. PDFium lukee nyt blokkeja annetusta TStreamistä vain tarvittaessa, joten hyvin suuria tai etäisiä PDF:iä ei enää tarvitse kopioida kokonaan muistiin etukäteen
- Lisättiin valinnainen virran omistus: AOwnsStream = True siirtää TStreamin elinkaaren TPdf:lle, joka vapauttaa sen UnloadDocumentin ajon yhteydessä
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 79 tapaukseen kumpikin ja C++Builder-sarja 75 tapaukseen, kattaen virtauslatauksen TFileStreamin kautta, omistetun virran siivouksen ja ulkoisesti omistetun virran selviytymisen unloadista -sopimuksen
Version 1.7.0
- Lisättiin yhteistyöhön perustuvat asynkronisen peruutuksen perusrakenteet uuteen FPdfAsync-yksikköön, tuoden näkyviin IPdfCancellationToken / IPdfCancellationTokenSource -tyypit ja uudelleenkäytettävän PdfNoCancellationToken-singletonin, jotta pitkät renderöinti- ja vientityönkulut voivat tukea siistiä UI:sta peruutettavaa toimintaa
- Lisättiin kevyt TPdfFuture<T>-apu, joka ajaa työntekijän taustasäikeessä ja lähettää TPdfFutureResult<T>-kuoren takaisin pääsäikeeseen erottaen onnistumisen, peruutuksen ja epäonnistumisen tapaukset
- Laajennettiin Delphi- ja Lazarus-regressiosarjat 76 tapaukseen kumpikin ja C++Builder-sarja 73 tapaukseen, kattaen yhteisesti peruutustilan, idempotentin peruutuksen, callback-jakelun ja peruutuksen jälkeisen rekisteröinnin
Version 1.6.10
- Lisättiin korkean tason TPdf.PrintPageRanges-käyttö PDF-katselimen preference print page range -asetukseen, palauttaen sovelluskoodille yksipohjaiset sivuvälit
- Lisättiin TPdf.SetFormFieldFlags / SetFormFieldFlagsAt ja vastaavat TPdfView-apurit, jotta sovellukset voivat päivittää AcroForm-kenttälippuja julkisen API:n kautta, mukaan lukien salasana- ja monivalintalippujen kattavuus
- Vahvistettiin PDFium-sidosten ABI-kattavuutta Windows-kokoisille FPDF_DWORD-arvoille, FPDF_FILEACCESS-callbackeille ja V8-embedder-slot-kentille
Version 1.6.9
- Lisättiin matalan tason Skia-renderöintisidokset vastikään viedyille FPDF_RenderPageSkia- ja FPDF_FFLDrawSkia-API:ille mukana toimitettuihin standardi- ja V8-PDFium-DLL:iin
- Laajennettiin julkisen sidoskattavuuden tarkistuksia niin, että standardi- ja V8-DLL:n lataus varmistaa nyt Skia-renderöintipisteet nykyisten V8/XFA-kyvykkyystarkistusten rinnalla
Version 1.6.8
- Lisättiin TPdf.SetTextPositions ja TPdfSingleArray asettamaan merkkikohtaiset sijainnit olemassa oleville tekstikohteille vastikään viedyn FPDFText_SetPositions-API:n kautta
- FPDFText_SetPositions nostettiin vaadituksi sidokseksi mukana toimitetuille nykyisille PDFium-DLL:ille, samalla vahvistaen, että Skia-renderöintipäätepisteet pysyvät edelleen poissa käytöstä, koska DLL:t eivät vieläkään vie niitä
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 65 tapaukseen kumpikin tekstisijaintikattavuudella
Version 1.6.7
- Lisättiin korkean tason TPdf-käyttö dokumentin JavaScript-nimipuutoimintoihin, palauttaen toimintojen nimet ja skriptit JavaScriptAction- ja JavaScriptActions-rakenteiden kautta
- Lisättiin TPdf.FileIdentifier lukemaan pysyvät ja muuttuvat trailer-ID:t binäärisinä TBytes-arvoina ilman PDFiumin pääteterminaattorimerkkiä
- Lisättiin TPdf.PageBox, GetPageBox ja SetPageBox MediaBoxille, CropBoxille, BleedBoxille, TrimBoxille ja ArtBoxille nykyiselle sivulle
- Vahvistettiin, että mukana toimitetut nykyiset PDFium-DLL:t jättävät runtime-tilassa poissa käytöstä vain Skia-renderöintipisteet, koska kyseisiä exportteja ei ole olemassa
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 64 tapaukseen kumpikin dokumentin JavaScript-, trailer ID- ja page-box-kattavuudella
Version 1.6.6
- Lisättiin runtime-tuki mukana toimitetulle V8-kyvylliselle PDFium-DLL:lle. Ennen latausta asetettu EnableV8Engine valitsee nyt pdfium.v8.dll:n DLLsWin32- tai DLLsWin64-puusta ja tuo näkyviin vain V8/XFA-sidokset, kun ladattu DLL tarjoaa ne
- Lisättiin V8FeaturesAvailable, XfaBStrHelpersAvailable, GetRecommendedV8Flags sekä matalan tason valinnaiset sidokset FPDF_BStr_*, FPDF_GetRecommendedV8Flags- ja FPDF_GetArrayBufferAllocatorSharedInstance -toimintoihin
- FPDFText_SetPositions tehtiin valinnaiseksi, jotta PDFiumPas jatkaa latautumista PDFium-DLL:ien kanssa, jotka eivät vie tätä kokeellista tekstisijainnin asettajaa
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 61 tapaukseen kumpikin standardi-DLL:n ja V8-DLL:n kyvykkyyskattavuudella
Version 1.6.5
- Lisättiin tagged PDF -rakennepuun tarkastelu TPdf.StructureElementsin ja TPdfView.StructureElementsin kautta, mukaan lukien elementtityyppi, otsikko, vaihtoehtoinen teksti, todellinen teksti, laajennusteksti, kieli, marked-content-ID:t, lapsimäärät ja attribuuttimäärät
- Lisättiin Windows PDFium -tulostustilan valinta TPdfPrintMode- ja SetPdfPrintMode-toimintojen kautta, kattaen EMF-, vain-teksti-, PostScript-, pass-through-, image-mask- ja Type 42 -tulostustilat
- Lisättiin matalan tason sidokset jäljellä oleviin standardi-DLL PDFiumin julkisiin exportteihin, kattaen JavaScript-toiminnot, huomautuslomakkeen liput / fontin värin, page-objectin aktiivisen tilan, indeksoidun lisäyksen, content-markin liukulukuarvot, kuvan ICC-profiilitiedot, form-objectin poistamisen ja tekstisijainnit
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 59 tapaukseen kumpikin tagged PDF -rakennepuun, tulostustilan ja julkisten export-sidosten kattavuudella
Version 1.6.4
- Päivitettiin Delphi-, C++Builder- ja Lazarus-demoja niin, että ne avaavat nyt automaattisesti luodut PDF:t, viedyt tekstit ja kuvat sekä eräajon tuloskansiot onnistuneen luomisen jälkeen
Version 1.6.3
- Laajennettiin yhdenmukaistetut Delphi-, C++Builder- ja Lazarus-regressiosarjat 56 tapaukseen kumpikin TPdfView:n GUI-kattavuudella fit-zoom-apureille, laite- / sivukoordinaattien round-tripeille, merkkien osumatestaukseen ja hiiren panorointiin piilotetun ikkunan katselinohjauksien kautta
- TPdfView-fixturet käyttävät nyt eksplisiittistä katselimen kokoa ja vain testeihin tarkoitettuja aliluokkia, jotka käyttävät suojattuja hiilikäsittelijöitä samalla kun sarjat pysyvät täysin headless-tilassa
Version 1.6.2
- Korjattiin TPdf.AddPage(0, ...) niin, että lisätty ensimmäinen sivu muuttuu heti aktiiviseksi sivuksi. Olemassa oleva esimerkkikoodi toimii edelleen, ja PageNumber raportoi nyt kelvollisen yksipohjaisen sivun lisäyksen jälkeen
- Synkronoitiin Lazarus-paketin versio ja laajennettiin yhdenmukaistetut Delphi-, C++Builder- ja Lazarus-regressiosarjat 52 tapaukseen kumpikin
Version 1.6.1
- Korjattiin virheellinen vähimmäisversiovaatimus v1.6.0 PDF-version yhteensopivuusvalidointorissa: SetState-toiminto luokiteltiin uudelleen PDF 1.5:stä alas PDF 1.2:ksi, mikä vastaa PDF 1.2 Reference 6.9.9:ää. PDF 1.3 / 1.4 SaveAs -kohteet, jotka sisältävät SetState-toimintoja, tallentuvat nyt oikein hylkäämisen sijaan
- Lisättiin vastaavat PDF 1.2:n leksikaaliset tarkistukset saman spesifikaatio-osan mukaisesti: Sound-, Movie- ja NOP-toiminnot sekä Separation-väriavaruus estetään nyt, kun valittu kohdeversio on vanhempi kuin PDF 1.2
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 50 tapaukseen kumpikin lisäämällä myönteinen PDF 1.4 SetState -hyväksymistesti, joka lukitsee korjatun rajan
Version 1.6.0
- Kovennettiin eksplisiittiset PDF 1.0 - PDF 1.7 SaveAs -kohteet täydellisellä versio-ominaisuusvalidoinnilla, joka kattaa koko PDF 1.1 - ISO 32000-1 -ominaisuusaikajanan. Validointi estää nyt tallennukset, jotka sisältävät sanakirjamerkintöjä, suodatinimiä, huomautustyyppejä, toimintotyyppejä, fontteja, väriavaruuksia tai salausparametreja, jotka on lisätty valitun kohdeversion jälkeen. Esimerkkejä: JBIG2Decode (1.4+), MarkInfo / Tagged PDF (1.4+), OutputIntents (1.4+), ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+), Polygon / PolyLine / Caret / Screen / Watermark / Redact -huomautukset, AES- ja AES-256-salaus (CFM AESV2 / AESV3), Perms / Legal / Requirements / NeedsRendering -catalog-merkinnät sekä versiokohtaiset toiminnot kuten JavaScript, Trans, SetState, Rendition, GoToE, GoTo3DView hylätään kaikki, kun kohde-PDF:n versio ei pysty kuvaamaan niitä
Version 1.5.13
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 49 tapaukseen kumpikin, lisäten suoran kattavuuden ICCBased-väriavaruuksien, Tagged PDF MarkInfo -merkintöjen, Polygon-huomautusten, AES (V2) -salauksen ja Redact-huomautusten hylkäämiselle PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6 -kohteita vastaan
Version 1.5.12
- Korjattiin SaveAsin jälkikäsittely inkrementaalisille catalogin uudelleenkirjoituksille. PDFiumPas validoi nyt viimeisimmän toistuvan epäsuoran objektin, joten olemassa olevat catalogin /Version-ylikirjoitukset korvataan oikein, kun tallennetaan eksplisiittisesti vanhempaan PDF-kohdeversioon
- Laajennettiin Delphi-, C++Builder- ja Lazarus-regressiosarjat 44 tapaukseen kumpikin lisäämällä suora kattavuus vanhentuneen catalogin /Version-korvaukselle, PDF 1.4 -catalogin version normalisoinnille sekä läpinäkyvyyden ja kokoelman ominaisuuksien hylkäämiselle, kun valittu PDF-kohdeversio ei pysty kuvaamaan niitä
Version 1.5.11
- Kovennettiin versionoidun SaveAsin ulostuloa eksplisiittisille PDF 1.3-, 1.4-, 1.5-, 1.6- ja 1.7-kohteille. PDFiumPas normalisoi nyt catalogin versiomerkinnät, pitää oletuksena Fit Height OpenActionin versioturvallisena ja hylkää uudemmat PDF-ominaisuudet, kun valittu kohdeversio ei pysty kuvaamaan niitä
- Lisättiin Delphi-, C++Builder- ja Lazarus-regressiokate, joka tallentaa ja lataa uudelleen eksplisiittisiä PDF 1.3 - PDF 1.7 -tiedostoja, varmistaen lopullisen otsakkeen, oletuksena olevan Fit Height OpenActionin ja raportoidun PDF-version
Version 1.5.10
- Siirryttiin spesifikaation vaihtoehdosta B vaihtoehtoon C lisäämällä TPdfView-smoketestit kaikkiin kolmeen IDE-sarjaan (Tests.PdfView). Kukin sarja rakentaa piilotetun TFormin vanhemman (Pascal-puolella TForm.CreateNew:n avulla ja
new TForm(NULL, 0)C++Builder-puolella), reparentoi TPdfView:n, asettaa Active := True -arvon ja varmistaa sitten round-trip-pinnan PageCountille, PageNumber-oletusarvolle, Zoomille, Rotationille, DisplayModelle ja sille, että View.Text vastaa taustalla olevaa TPdf.Textiä. Jokainen IDE-sarja ajaa nyt 39 tapausta
Version 1.5.9
- Siirryttiin spesifikaation vaihtoehdosta A vaihtoehtoon B lisäämällä render-smoketestit kaikkiin kolmeen IDE-sarjaan. Kukin Tests.Render-sarja kutsuu TPdf.RenderPagea sample.pdf:lle ja varmistaa kolme vakaata signaalia bittitarkkojen tarkistussummien sijaan: palautettu bittikartta vastaa täsmälleen pyydettyä pikselikokoa; eri pyydetyt koot (200x100, 64x256) tuottavat vastaavat bittikartat; ja renderöity sivu on vähintään 95% valkoista taustaa, jossa vähintään 50 (Lazarus: 20) ei-valkoista pikseliä merkitsee antialiasoidun tekstin. Jokainen IDE-sarja ajaa nyt 33 tapausta
Version 1.5.8
- Alkuperäiset A(2)-testisuunnitelmaryhmät saatiin päätökseen lisäämällä seitsemän regressiota lisää kutakin IDE:tä kohti: TPdf.CreateAnnotation rakentaa anHighlight-huomautuksen sekä SaveAs/LoadDocument-round-tripin, AcroForm-lukupolku Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf:lle (FormType on ftAcroForm, FormFieldCount > 0, FlattenAllPages pudottaa kentät nollaan), sekä hiljaisen lukupolun kattavuus Bookmarksille, LinkAnnotationCountille ja WebLinkCountille dokumentissa, jossa ei ole mitään näistä ominaisuuksista. Jokainen IDE-sarja ajaa nyt 30 tapausta
Version 1.5.7
- Laajennettiin Delphi (DUnitX), Lazarus (FPCUnit) ja C++Builder (GoogleTest) -sarjoja seitsemällä uudella regressiolla kutakin IDE:tä kohti: PdfVersion, PageRotation, TPdf.FindFirst / FindNext -alimerkkijonohaku, CharacterOrigin / CharacterRectangle -yhteensopivuus AddText-alkuperää vasten, CreateAttachment-rekisteröinti sekä SaveAs/LoadDocument-round-trip, ja aksentoitua tekstiä koskeva AddText-round-trip, joka varmistaa, että v1.3.0:n eurooppalainen TrueType-upotuspolku säilyttää Latin-1:n täydennysmerkkipisteet ehjinä
Version 1.5.6
- Tallennetut PDF:t saavat nyt oletuksena ensimmäisen sivun Fit Height -avaustoiminnon, kun olemassa olevaa OpenActionia ei ole, joten PDF-lukijat näyttävät luodut dokumentit aluksi sivukorkuisella zoomauksella
- Lisättiin Delphi-, Lazarus- ja C++Builder-regressiokate luodulle OpenActionille ja Fit Height -asetukselle
Version 1.5.5
- Lisättiin regressiotestit Delphi (DUnitX), Lazarus (FPCUnit) ja C++Builder (GoogleTest) -sarjoihin indeksoidulle merkkien ja fonttien tarkastus-API-pinnalle (TPdf.FontBaseName, FontFamilyName, FontWeight, FontItalicAngle, FontData, FontIsEmbedded, CharacterFontWeight, CharacterAngle). Lazarus-sarja ohittaa tarkoituksella FontDatan, joka aiheuttaa tällä hetkellä access violationin FPDFFont_GetFontData:ssa FPC:ssä
Version 1.5.4
- Lisättiin C++Builder Attachment -demo, joka on portattu Delphi-esimerkistä ja kattaa PDF:ien luomisen, liitetiedostojen lisäämisen, listaamisen, poiminnan, poiston ja tallennuksen MIME-alatyypin näyttöineen
Version 1.5.3
- Paljastettiin TPdfView:n kaksisivutilojen taustalla oleva aukeamasivulaskenta yksikkötason apuna ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). Käyttäytyminen ei muutu; apu tekee kansiota huomioivan säännön itsenäisesti testattavaksi ilman katselimen luontia
- Lisättiin viisi regressiotestiä Delphi (DUnitX), Lazarus (FPCUnit) ja C++Builder (GoogleTest) -sarjoihin kattaen tyhjät dokumentit, tavallisen kaksisivuparituksen, kansisivun yksinään dmTwoPageContinuousWithCoverissa, kannen jälkeiset parit sekä viimeisen sivun / alueen ulkopuolisen sivun rajoituskäyttäytymisen
Version 1.5.2
- Lisättiin dokumentin kielituki TPdf.Language-ominaisuuden kautta, mapattuna PDF-catalogin /Lang-merkintään
- Lisättiin liitetiedostojen MIME-alatyypin käyttö TPdf.AttachmentTypen kautta
- Lisättiin anRedact TPdfAnnotationSubtypeen ja lisättiin sivuobjektien poistoapuja TPdfille ja TPdfView:lle
- Päivitettiin katselin- ja liite-demot näyttämään uusi kieli- ja liitetyyppitieto silloin, kun se on saatavilla
Version 1.5.1
- Lisättiin dmTwoPageContinuousWithCover TPdfView:lle, jotta katselinasettelut voivat näyttää ensimmäisen sivun yksinään ja jatkaa sitten kaksisivuisina aukeamina
- Päivitettiin Delphi-, C++Builder- ja Lazarus MultiPageViewer -demot tuomaan näkyviin kansitietoinen kaksisivuinen näyttötila
Version 1.5.0
- Lisättiin smoke-tason automatisoidut testisarjat Delphi (DUnitX), Lazarus (FPCUnit) ja C++Builder (GoogleTest) -ympäristöille. Kolme sarjaa jakaa yhden fixture-PDF:n Tests\TestData-kansiossa ja ajaa samat seitsemän tapausta kumpikin kattaen dokumentin latauksen, sivutiedot, tekstin poiminnan, metadatan, save round-tripin, PDF-otsakkeen validoinnin ja Compressed-ominaisuuden
Version 1.4.3
- Parannettiin FontProperties-demoa näyttämään sekä TPdfView- että TPdf-fonttimetatieto-API:t, mukaan lukien fonttikahvat, fonttitietojen koko ja merkkimittarit
- Lisättiin indeksoidut TPdfView:n merkki- ja fonttitarkastusominaisuudet ja päivitettiin FontProperties-demo kyselemään tekstikohteen fonttimetatietoja
Version 1.4.2
- Lisättiin TPdf:ään indeksoidut merkkien ja fonttien tarkistusominaisuudet tekstianalyysia varten ilman katselinta. Merkkikohtaiset ominaisuudet (CharacterAngle, CharacterFontSize, CharacterFontWeight) kyselevät nykyisen sivun tekstivirrasta merkkikohtaiset mittarit. Sivuobjekti-indeksoidut ominaisuudet (FontAscent, FontBaseName, FontData, FontDescent, FontFamilyName, FontHandle, FontIsEmbedded, FontItalicAngle, FontWeight) kyselevät fonttimetatietoja miltä tahansa tekstikohteelta nykyisellä sivulla
- Ei-tekstiset sivuobjektit palauttavat turvalliset nolla- tai tyhjät arvot kaikille Font*-ominaisuuksille sen sijaan että ne nostaisivat virheen, mikä tekee jokaisen sivuobjektin läpikäynnistä ja vain tekstikohteiden tarkastamisesta suoraviivaista
- FontBaseName lukee PostScript-perusfontin nimen suoraan eikä pudota takaisin fonttiperheen nimeen, mikä antaa tarkemman tunnisteen upotetuille fonteille
Version 1.4.1
- Lisättiin C++Builder- ja Lazarus-versiot EuropeanText-demosta, jotta kaikki tuetut IDE-perheet voivat varmistaa aksentoidun eurooppalaisen tekstin luonnin järjestelmän TrueType-fonteilla
- Lisättiin C++Builder- ja Lazarus-versiot FormFill-demosta, mukaan lukien esimerkkilomake-PDF:t, kenttien editointi, ulkoasun uudelleenluonti, täytetty tallennus ja litistetty tallennus -työnkulut
Version 1.4.0
- Lisättiin Lazarus / Free Pascal -tuki: uusi PDFiumLaz-paketti tarjoaa samat TPdf-, TPdfView- ja niihin liittyvät komponentit LCL-widgettijoukossa, laajentaen kirjaston Lazarus IDE:hen ja Free Pascal -kääntäjään olemassa olevien Delphi- ja C++Builder-pakettien rinnalle
- Lisättiin Lazarus-versiot demoista, jotta Lazarus-kehittäjät voivat tutkia jokaista ominaisuutta ajettavilla esimerkeillä
- Korjattiin Lazarus-käännösongelma, jossa Free Pascalin ehdolliset define-määreet arvioitiin yhdessä Delphi-kääntäjäversiotarkistusten kanssa, mikä sai FPC-rakennukset yrittämään Delphi-kohtaisten yksikkönimien ratkaisemista ja epäonnistumaan
Version 1.3.1
- Dokumentoitiin lomakkeiden litistysvirta ohjesarjassa: GenerateFormAppearances, FlattenPage, FlattenAllPages ja niihin liittyvät FLAT_* / FLATTEN_* -vakiot on nyt katettu TPdf:ssä, TPdfView:ssä, API-viitteessä, ominaisuusmatriisissa ja ohjelmointiesimerkeissä
- Korjattiin yleiskatsaus-sivun arkkitehtuuritaulukko, jotta se listaa todelliset sidontayksiköt Lib-kansiossa
Version 1.3.0
- Parannettiin eurooppalaisten merkkien tukea PDF:ien luonnissa. TPdf.AddText lataa ja välimuistittaa vastaavan järjestelmän TrueType-fontin ennen tekstikohteen luomista, mikä säilyttää PDFiumin sisäänrakennettujen vakiofonttien ulottumattomissa olevat aksentoidut merkit tšekistä, ranskasta, saksasta, espanjasta, portugalista, puolasta ja turkista
- Sovellukset, jotka aiemmin tuottivat kysymysmerkkejä tai korvaavia glyfejä ei-ASCII-latinalaiselle tekstille, renderöityvät nyt oikein ilman koodimuutoksia. Lisättiin EuropeanText-demo ominaisuuden havainnollistamiseksi
Version 1.2.0
- Lisättiin AcroForm-ulkoasun päivitys TPdf:ään: GenerateFormAppearancesin kutsuminen FormField[]-arvojen muokkaamisen jälkeen päivittää widgetin ulkoasun niin, että täytetyt arvot näkyvät tavallisissa PDF-lukijoissa ilman interaktiivista editointisessiota
- Lisättiin lomakkeiden litistysapuja TPdf:ään (FlattenPage / FlattenAllPages) ja TPdfView:ään (FlattenPage nykyiselle näkymäsivulle). Litistys upottaa täytetyt kenttäarvot pysyvästi tavalliseksi sivusisällöksi ja poistaa interaktiivisen lomakerroksen, tuottaen staattisen dokumentin, joka renderöityy yhdenmukaisesti kaikissa katselimissa
- Lisättiin Demo\Delphi\FormFill näyttämään täyttö- ja tallennus sekä täyttö- ja litistys -työnkulut esimerkin AcroForm-PDF:n avulla
Version 1.1.2
- Lisättiin tallennusaikainen PDF-virran pakkaus. Uusi TPdf.Compressed-ominaisuus (oletuksena käytössä) kirjoittaa pakkaamattomat sisältövirrat FlateDecode-pakattuina virtoina tallennuksen yhteydessä, mikä pienentää merkittävästi ohjelmallisesti luotujen PDF:ien tiedostokokoa. Sovellukset, jotka tarvitsevat tavallisen pakkaamattoman ulostulon, voivat asettaa Compressed-arvoksi False ennen SaveAsin kutsumista
Version 1.1.1
- Win64-paketin buildit eivät enää sisällä design-time-rekisteröintiyksiköitä, mikä estää build-vaiheen epäonnistumiset, kun Win64-paketti otetaan käyttöön vain runtime-kontekstissa
- PDFium-DLL-lataaja etsii nyt ensin Win32- tai Win64-sovelluksen alihakemiston käyttäen tavanomaisia pdfium.dll- ja pdfium.v8.dll-nimiä ja siirtyy sitten sovelluksen litteään kansioon ja Windowsin järjestelmäkansioon. Tämä vastaa komponenttipaketin mukana toimitettua DLL-asettelua ja tekee asennuksesta suoraviivaista
Version 1.1.0
- Korjattiin visuaalinen leikkausvirhe TPdfView:n kaksisivutilassa: sivun sisältö vuoti kynnyksen yli, koska sekä vasen että oikea sivulaatta jakoivat yhden leikkausalueen. Jokainen laatta leikkaa nyt itsenäisesti, joten sisältö pysyy sivun rajojen sisällä
- Parannettiin Delphi-demon virheilmoitusta, kun PDFium-DLL:ää ei löydy, tarjoamalla selkeämpi kehote odotetulla DLL-nimellä ja sijainnilla