Versionsinformation
Versionshistorik
« Tillbaka till dokumentationsindex
Versionshistorik för PDF Library for Delphi-biblioteket. Poster listas med den senaste först; varje release följer semantisk versionshantering enligt projektets releasepolicy.
Senaste version
- Senaste versionsnummer: v3.555.0; Utgivningsdatum: 2026-10-10
Version 3.555.0
Tillagt
- Windows 11 on ARM stödjer nativa Free Pascal ARM64- och Delphi ARM64EC-källbyggen, med separata byggutdata för bibliotek och DLL
Ändrat
- Windows ARM använder systemets AES CBC/GCM- och JPEG-leverantörer, portabel komprimering och ett arkitekturanpassat OpenJPEG-delat bibliotek för JPEG 2000
- Windows ARM-DLL:en exponerar namngivna C ABI-exporter och positiva opaka instanshandtag utan att trunkera 64-bitarspekare
Åtgärdat
- Delphi ARM64EC XMP använder namnrymdsmedvetna MSXML-gränssnitt med avgränsad XML-parsning för att undvika fel i senbundna OLE-anrop
Version 3.554.0
Tillagt
- Det nativa headless-stödet omfattar nu Linux ARM64 och macOS x64, med arkitekturanpassade FPC-byggen och Delphi-dylib-filer för Intel-Mac
- De nativa verifieringsverktygen stödjer Linux och macOS på både x64 och ARM64
Åtgärdat
- Intel macOS väljer nu rätt nativa platser för OpenSSL-, Cairo-, Fontconfig- och OpenJPEG-leverantörer i stället för Apple silicon-sökvägar
- Länkningen av Delphi Intel macOS löser absoluta systembiblioteks- och framework-indata mot den valda Windows SDK-cachen när LLVM LLD används
Version 3.553.1
Tillagt
- Delphi macOS ARM64 stödjer nativ redigering och round trips av XMP-metadata, inklusive anpassade egenskaper, standardidentifierare och bevarande av främmande namnrymder
Åtgärdat
- Nativ Delphi macOS PFX-signering och RFC 3161-tidsstämplar väljer macOS OpenSSL-leverantören; RSA- och EC-PDF-signaturer, uttryckliga förtroendekedjor, signaturtidsstämplar och dokumenttidsstämplar verifieras på ARM64
- Nativa XMP-spar-/inläsningscykler bevarar ett enda paketomslag i stället för att ackumulera behandlingsinstruktioner
Version 3.553.0
Tillagt
- Delphi kan nu bygga det nativa dynamiska headless-biblioteket för macOS ARM64, med samma 880 C-ingångspunkter som Free Pascal-bygget
- Delphi macOS-backend:en använder nativa typsnitt, Cairo-rendering, OpenSSL-kryptering och sammandrag, systemets zlib och libcurl, OpenJPEG samt ImageIO JPEG-kodning och -avkodning
Åtgärdat
- macOS-filåtkomst, resurssökning, binärstrukturer med fast bredd och nativa codec-bindningar använder nu plattformskorrekta deklarationer
- Bakgrundsrendering använder en portabel paushändelse på macOS
- Delphi macOS dekrypterar krypterade PDF-strängar och objektströmmar korrekt utan att frigöra sina indatabuffertar under avkodningen
Version 3.552.2
Åtgärdat
- Återställd kompatibilitet med äldre Delphi-kompilatorer för fakturavalidering och OCR-leverantörer, inklusive Win32- och Win64-trial-byggen av biblioteket
Version 3.552.1
Åtgärdat
- Buffertar i det dynamiska macOS-biblioteket exponerar nu sina faktiska data, bevarar inbäddade nollbyte och rapporterar lyckade frigivelser korrekt
- Instanshandtag i dynamiska bibliotek förblir giltiga på 64-bitarsmål utan att trunkera objektadresser eller återanvända frigivna handtag
- Vid urladdning av biblioteket frigörs utestående instanser och buffertar
Version 3.552.0
Tillagt
- Inbyggd headless-PDF-generering, -inläsning, textarbetsflöden och Cairo-bitmappsrendering i Free Pascal på Linux x86_64 och macOS arm64, med systemtypsnitt och inbyggda PNG-, JPEG- och JPEG 2000-leverantörer
- Inbyggd OpenSSL-kryptering, sammandrag, PKCS12-signering och CMS-verifiering, med explicita certifikatförtroendeankare och kontrollerade verifieringstider
- Inbyggd libcurl-åtkomst till HTTP-intervall och RFC 3161-tidsstämpelarbetsflöden på inbyggda Free Pascal-mål, inklusive tidsstämpelattribut för signaturer och verifiering av dokumenttidsstämplar
- Inbyggd XMP-metadataanalys och -skrivning bevarar namnrymdsbaserade egenskaper och avvisar DTD:er samt för stora eller djupt nästlade XML-dokument innan DOM:en byggs upp
Åtgärdat
- Inbyggd bandad bitmappsrendering initierar sidtransformen och bevarar Cairos utjämning vid bandgränser
- Gemensamma deklarationer för tidsstämplar, validering och taggning kräver inte längre ett valfritt PDFium-bygge
Version 3.551.0
Tillagt
- Exakt Unicode-innehållsersättning bevarar omgivande tecken, befintliga TJ-avstånd och efterföljande textankare, stöder borttagning och verifierade ersättningstypsnitt samt rapporterar mappningar som inte stöds innan vald sidtext ersätts
- Strukturerad extraktion följer taggad läsordning, löser semantiska roller och namnrymder, känner igen kolumner och återkommande sidoelement samt behåller tomma, sammanslagna och sidöverskridande tabellceller i JSON-, CSV-, Markdown- och DOCX-exporter
- Valfria Tesseract OCR-adaptrar stöder hOCR- och TSV-resultat, orienteringskonfidens och baslinjer, med explicita gränser och diagnostik per steg
- OCR-textlager kan hoppa över befintlig text eller ersätta bara lager som biblioteket ägde tidigare, vilket bevarar sidpixlar och delat innehåll
- Nya Delphi-, DLL- och ActiveX-kontroller exponerar alternativ för strukturerad analys, OCR-konfiguration och diagnostik för exakt ersättning
Ändrat
- Strukturerad JSON använder schemaversion 2 med stabila semantiska nodidentifierare, källor i läsordning, tabellspan och inferenskonfidens
- Unicode-ersättningen avvisar ofullständiga mappningar, partiella glyfkluster och källor som inte stöds utan att gissa typsnittsbyte
Åtgärdat
- TJ:s numeriska avstånd tillämpar nu horisontell skalning en gång i både rendering och textgeometri
- Typsnittsmätning väljer om den faktiska resursen när samlingar delas och återanvänder direkt typsnittsanalys inom varje resursomfattning
- Innehållsfingeravtryck bevarar sina hashvärden när intervall- och spillkontroller är aktiverade
Version 3.550.0
Ändrat
- SVG-exporten bevarar nu sidans ritordning, nästlat Form-innehåll, exakta klippbanor och transformerad streckgeometri
Tillagt
- En avgränsad inbyggd rasterreservlösning hanterar ritoperationer som inte stöds när exportinställningarna tillåter en ögonblicksbild av bakgrunden
- GetLastSVGExportDiagnostics rapporterar utelämnade pixlar, approximeringar och rasterreservlösning, inklusive synliga annoteringsutseenden utanför exporten av sidinnehållet
Version 3.549.0
Tillagt
- Versionerat faktura-XML-schema och Schematron-validering accepterar valfria leverantörer och returnerar slutförandestatus per steg, regelidentifierare, fältsökvägar, allvarlighetsgrad och motordiagnostik
- Validering av affärsregler för inbäddade fakturor läser den valda bilagan med avgränsad avkodning och avvisar saknade eller tvetydiga filnamn
- Delphi, DLL och ActiveX kan köra xmllint- och SaxonJ-validering med explicita regelfiler, tidsgränser och utdatagränser
Version 3.548.0
Tillagt
- PDF/UA-2-läskontroller validerar identifiering, PDF-version, namnrymdsreferenser, rollmappningar, dokumentrötter och strukturföräldrar genom explicit eller automatiskt profilval
- Delphi-, DLL- och ActiveX-API:er väljer ett PDF/UA-mål inom en återanvändbar valideringspipeline och exponerar kontrollerad, overifierad och avgränsad valideringstäckning
Ändrat
- Validerings- och förkontrollrapporter identifierar PDF/UA-2 oberoende av PDF/UA-1 och redogör för att godkända implementerade kontroller inte utgör en fullständig tillgänglighetscertifiering
Version 3.547.0
Tillagt
- Visuell jämförelse av renderade sidor med kanaltolerans, ignorerade regioner, ändrade områden, pixelräkning, skillnadsmasker och överlägg
- Visuell dokumentjämförelse förankrar identiska sidbilder runt infogade och borttagna sidor samt rapporterar sidpar som ändrats eller fått ny storlek
- Visuell filjämförelse via Delphi, DLL och ActiveX returnerar en strukturerad JSON-rapport
Version 3.546.0
Tillagt
- Arlington-rapporter över valideringstäckning skiljer mellan fullständiga godkännanden, kända fel, ofullständigt regelstöd och åtgärdsfel via Delphi-, DLL- och ActiveX-API:er
Åtgärdat
- Modelluttryck som inte stöds ger nu explicit diagnostik i stället för att tyst bidra till ett lyckat valideringsresultat
Version 3.545.0
Tillagt
- C#- och VB.NET-DLL-exemplen WorkflowWorkbench demonstrerar flersidig rapportgenerering, textextraktion, siduppdelning och sammanslagning, binära minnesöverföringar och explicit ägarskap av native-resurser
- DocumentInspectionWorkbench tillhandahåller nu sidinventeringar och konfigurerbara allvarlighetsgränser för diagnostik i Delphi, C++Builder och Lazarus, med genererade indata för en självständig första körning
Ändrat
- C++ DLL-exemplet LinkDemo skapar nu ett komplett navigeringsdokument med sidlänkar och dispositioner, tar emot explicita DLL- och utdatasökvägar, verifierar det sparade dokumentet och rapporterar fel via processens slutkoder
- WorkflowGallery verifierar sitt sparade dokument och sin HTTP-svarstext genom round-trip-kontroller och publicerar en verifieringsrapport
- DocumentLabs snabbtur omfattar dokumentinspektion, och de inbyggda exempelsamlingarna och paketintroduktionen länkar till en dedikerad DLL-arbetsflödeskatalog
Åtgärdat
- Delphis dokumentinspektion initierar räknare per fil före analysen, inklusive rapporter för indata som inte kan läsas in; Delphi och C++Builder skriver språkoberoende JSON-tal
- C++ DLL-diagnostikexemplet frigör native-instanser innan biblioteket lastas ur, även i det lyckade fallet
Version 3.544.0
Tillagt
- Nio inbyggda domänlabbar erbjuder scenarioval, guideade snabbturer, loggar per scenario och offline-HTML-upplevelser som öppnas automatiskt när labben startas utan argument
Ändrat
- Exempelsamlingarna för Delphi, C++Builder och Lazarus fokuserar nu på Showcase, HelloWorld och nio labbar, där Delphi behåller sin interaktiva Reader
- Specialiserade demonstrationer och fokuserade handledningar är integrerade som lokala scenariomoduler inuti varje labb, vilket bevarar deras ursprungliga åtgärder utan separata exempelprojekt eller en gemensam demokällkatalog
- Labbturerna kör sina egna scenarier med isolerade utdatamappar och tidsgränser, så de är inte längre beroende av separat byggda körbara grannexempel
- Scenarionoteringar länkas från domänguiderna, och valfria Delphi-integrationer med rapportramverket grupperas under ContentLab
- Lazarus kodekmatriser för skanning markerar kodningsvägar som inte kan färdigställa den genererade testfixuren som överhoppade, och publicerar JBIG2-mätvärden först när den begärda externa kodaren finns tillgänglig
Åtgärdat
- Svärtningscenarierna genererar nu PDF 1.7-dokument så att innehållsborttagning klarar de nödvändiga versionskontrollerna
- Sidfångstscenarierna bevarar en tillfällig dokumentsida medan den sista innehållssidan fångas, vilket undviker misslyckade fångster av ensidiga dokument
- C++Builder-streckkodsgalleriet accepterar nu lyckade dokument- och sidhandtag med annat värde än noll i stället för att avvisa handtag vars värde är större än ett
- Lazarus navigeringsscenario rapporterar nu misslyckade PDF-skrivningar innan lyckorapporter publiceras, inklusive dess tillhörande dokument för fjärrmål
Version 3.543.0
Ändrat
- Den inbyggda demosamlingen lyfter nu fram flaggskeppsturerna och funktionsworkbencharna, medan fokuserade API-handledningar samlas i varje plattforms Miscellaneous-mapp
Borttaget
- Tog bort metadataanpassningen i C++Builder Reader, den körbara ReportBridges-filen som endast visade förutsättningar, det duplicerade Lazarus-exemplet TextExtract och den överflödiga Delphi-posten AddWebLinkConsole; använd i stället de riktiga exemplen för visare, rapportbrygga, inspektion, extraktion och AddWebLink
Åtgärdat
- C++Builder LoggerDemo stänger nu sin loggskrivare innan den färdiga sessionsloggen läses och skriver ut den som UTF-8, vilket undviker fildelningsfel och konsolkrascher vid långa loggar efter PDF-skapandet
Version 3.542.0
Ändrat
- Showcase och AdvancedWorkflowMatrix innehåller nu sina implementationsunits i varje Delphi-, C++Builder- och Lazarus-exempelmapp, så att kopiering av ett projekt inte längre kräver en gemensam katalog för demo-units
- Showcase-källguiden pekar på sin lokala byggare medan det niosidiga dokumentet, de redigerbara formulären, de växlingsbara lagren och offline-exporterna behålls
Åtgärdat
- C++Builder-arbetsflödessviten skriver den kompletta arbetsflödeslistan och konsolrapporten innan programmet avslutas
Version 3.541.0
Tillagt
- Den niosidiga Showcaseen innehåller en redigerbar projektbeskrivning och en planritning med lager, med sparade formulärvärden och valfria designanteckningar
- C++Builder innehåller nu samma flaggskepps-Showcase som Delphi och Lazarus
- Konsollkörningar av Showcase skapar en offline-upplevelsesida med helsidiga PNG-förhandsvisningar, den interaktiva PDF:en och UTF-8-textexporter
Ändrat
- Delphi-Showcasen öppnas med en guidad förhandsvisning, direkt formulärredigering, en synlighetskontroll för designanteckningar, sparande av redigerad PDF samt åtgärder för bild- och textexport
- Alla tre inbyggda Showcase-poster delar sin dokumentbyggare och sin implementation av offline-export
Åtgärdat
- Showcasens tabellavsnitt, annoteringsexempel och streckkodssymboler passar sina avsedda områden, och sidetiketterna förblir läsbara
- Delphi-Showcasen skriver till en användarägd utdatakatalog och hanterar fel vid förhandsvisning, export och sparande explicit
Version 3.540.0
Ändrat
- AdvancedWorkflowMatrix delar en enda arbetsflödesstartare mellan Delphi, C++Builder och Lazarus, kör specialistdemonstrationerna med isolerade utdata, stöder val och tidsgränser samt registrerar saknade binärfiler och underprocessfel i CSV- och HTML-rapporter
- Lazarus TextExtract och ExtractText delar en enda skrivskyddad extraktionssession, accepterar lösenord, skriver UTF-8-utdata och behåller den minimala konsollposten och jämförelsen av extraktionslägen
- C# ActiveX HelloWorld är en fokuserad skapa-och-spara-startmall med headless-utdataalternativ, explicit COM-städning och tydlig driftsättningsdiagnostik
Åtgärdat
- C# Table2PDF undviker en extra tom sida, använder returnerade typsnitts-ID:n och hittar DLL:en för sin processarkitektur
- Visual Basic DLL-startmallen innehåller den native-bindning den behöver för att byggas och hanterar arkitekturspecifik DLL-inläsning
- C++Builder-guiden för rapportmotorn rapporterar saknad integration och presenterar inte längre en platshållar-PDF som ett verkligt bryggresultat
- C++Builder Reader misslyckas explicit när en medföljande PDF inte kan läsas, i stället för att ersätta den med sitt genererade exempel
Version 3.539.53
Åtgärdat
- TextPaging-demon stoppar med ett fel när nödvändiga typsnitt inte kan läsas in eller dess sidgräns lämnar text orenderad; en ofullständig PDF sparas därför inte längre och öppnas som ett lyckat resultat
Version 3.539.52
Åtgärdat
- Konsoldemon ActionNavigationMatrix kontrollerar skrivningar av huvud- och kompanjon-PDF samt FDF-export innan den rapporterar lyckat, och avslutar med en exitkod skild från noll när en utdataåtgärd misslyckas
Version 3.539.51
Åtgärdat
- Uppslag i name-träd och number-träd ignorerar omvända gränser i stället för att gömma giltiga underposter i felformade PDF-filer
Version 3.539.50
Åtgärdat
- Heltalssortering hanterar hela det signerade intervallet utan att jämförelsen svämmar över
- Tomma sorterade heltals- och filpositionslistor returnerar noll vid successor-frågor; sparse integer membership slipper allokera vartenda mellanliggande intervall och behåller samtidigt insättningsordning och dubbletter
Version 3.539.49
Åtgärdat
- PNG-import avvisar avklippta chunks, felformade headers och paletter, interlace-värden som inte stöds samt saknade eller felformade slut-chunks innan bilden behandlas som användbar
- När en PNG läses in igen rensas tidigare bilddata och metadata medan läsaralternativen behålls; läsningar med enbart metadata hoppar över bilddata utan att allokera deras buffertar
Version 3.539.48
Åtgärdat
- Filströmmar respekterar den begärda längden vid storleksändring, och långa filnamn expanderas till kompletta absoluta sökvägar
- Insättning i en ström bevarar 64-bitars längder och cursorer, avvisar insättningspunkter utanför strömmen innan data ändras och rapporterar ofullständiga läsningar eller skrivningar
- Filnamn med sidnummer får nummeret tillagt före filändelsen; katalognamn bevaras och namn utan filändelse hanteras också
Version 3.539.47
Åtgärdat
- HTML-textrendering och fortsättning bevarar escapeda vinkelparenteser och ordagrannta entitetsskrivningar i stället för att tolka den avkodade texten en gång till
- Markdown-kodspann och kodblock bevarar et-tecken och entitetsskrivningar i den genererade HTML:en och den renderade PDF:en; dataset-exporter för vidare samma bokstavliga text i cellvärden
Version 3.539.46
Åtgärdat
- Delphi-demon ExtractImage hoppar över bilder som inte kan väljas, räknar lyckade skrivningar och rapporterar ofullständig extraktion i stället för att visa ett villkorslöst lyckat meddelande
- ExtractImage skapar utdatakatalogen och tar bara bort indatafilens filändelse när de extraherade bilderna namnges; ExtractAnnotAttach stoppar när inläsningen returnerar något annat resultat än lyckat
Version 3.539.45
Åtgärdat
- Frågor i name-träd och number-träd hoppar över cykliska eller upprepade barnnoder, fortsätter till giltiga syskon och hanterar djupt nästlade träd utan att call stacken svämmar över
- Uppräkning av ett name-träd ignorerar ogiltiga namnnycklar, och uppslag och borttag behåller hela postens offset i blad med fler än 32 768 namn-/värdepar
Version 3.539.44
Åtgärdat
- Page box-frågor och capture ignorerar icke ärftliga bleed-, trim- och art-rutor på överordnade sidträdsnoder och använder i stället bladsidans page box eller dess effektiva crop box
HasPageBoxrapporterar direkt ärvda media- och crop-rutor konsekvent med indirekta arrayer
Version 3.539.43
Åtgärdat
- EMF-vektorimport börjar med standardpennan i svart och vit pensel, så att ritposter utan explicit objektval förblir synliga
- 32-bitars och 16-bitars polylinjer bevarar oberoende figurer inuti parenteserna i sökvägen, och 16-bitars multipolylinjer skjuter upp ritningen tills sökvägen ritas och respekterar en null-penna
Version 3.539.42
Åtgärdat
- CapturePageEx med alternativet bleed, trim eller art box fångar nu på en sida som inte definierar den rutan crop box, som dokumenterat, i stället för hela media box; rutan som fylls i på sidan följer samma ISO 32000-1-standard
Version 3.539.41
Åtgärdat
- EMF-import ritar 32-bitars PolyBezier-poster från sin första punkt i stället för att använda den som kontrollpunkt, så kurvorna matchar 16-bitarsposterna
- EMF Polyline-poster ritas som öppna linjer med bara pennan i stället för som slutna, fyllda former
- EMF PolylineTo-poster börjar vid den aktuella positionen och stängs inte längre, och en post vars två första punkter ligger på en vågrät linje stänger inte längre av pennan för varje form som ritas därefter
- 32-bitars EMF PolyPolyline-poster ritar varje polylinje; poster med mer än en polylinje hoppades tidigare över och enstaka polylinjer ritade ingenting
Version 3.539.40
Åtgärdat
- ImportAnnotationsFromFDFString och ImportAnnotationsFromFDF returnerar antalet annoteringar som faktiskt lades till, liksom XFDF-importen; poster som hoppas över för att deras sida ligger utanför dokumentet eller för att de saknar /Subtype räknas inte längre med
Version 3.539.39
Åtgärdat
- EMF-import ritar PolyDraw-poster helt: punkter som stänger en figur medan de ritar en linje eller kurva kastas inte längre bort, så slutna former behåller sitt sista segment och de efterföljande kurvorna håller takten; en 16-bitars PolyDraw-post med flera figurer behåller dem alla, och en figur som inte börjar med ett move börjar vid den aktuella positionen
- EMF-import hoppar över Polyline-, PolyBezier-, Polygon-, PolyDraw- samt 16-bitars PolyPolyline- och PolyPolygon-poster som deklarerar fler punkter än de innehåller, i stället för att läsa förbi posten, vilket tidigare ritade villårliga linjer ur de efterföljande posterna eller kunde få konverteringen att haverera
Version 3.539.38
Åtgärdat
- JBIG2-halftoneregioner vars rutnät börjar vänster om eller ovanför regionen, eller vars roterade rutnät placerar celler vid negativa koordinater, avkodas nu korrekt: sådana celler beskärs vid regionens kant i stället för att kastas bort eller flyttas, rutnätets origo dras inte längre in till regionens hörn, och celler som ligger helt utanför hoppas över exakt som ITU-T T.88 föreskriver
Version 3.539.37
Åtgärdat
- JBIG2-bilder med en halftoneregion som hoppar över rutnätsceller utanför regionen avkodas nu korrekt när halftonerutnätet inte är kvadratiskt; skip-masken byggdes med rader och kolumner ombytta, så celler som skulle ha hoppats över avkodades och resten av regionen blev helt förvrängd
Version 3.539.36
Åtgärdat
- En sida som flyttas med MovePage får egna kopior av de page boxes, rotationen och resurserna den ärvde från sin gamla Pages-nod, så att anrop av SetPageBox eller ritning av text och bilder på den flyttade sidan inte längre ändrar den gamla noden och de sidor som fortfarande ärver från den
- SetPageBox ger sidan sin egen ruta när den befintliga rutan är ett indirekt objekt som delas med andra sidor eller med en Pages-nod, i stället för att ändra storlek på varje sida som hänvisar till den
- CopyPageRanges låter de kopierade källsidorna inte längre dela sina page boxes med Pages-noden eller sin crop box med sin media box, så att en rutändring på en källsida efter kopieringen inte längre ändrar storlek på dess syskonsidor eller båda rutorna på en gång
Version 3.539.35
Åtgärdat
- TransformPageElement skriver skala- och rotationsdelen av matrisen den lindar runt en bana eller bild med sex decimaler i stället för fyra, så att små rotationer och fina skalfaktorer inte längre synbart avviker på stora sidor; translationen behåller fyra decimaler
Version 3.539.34
Ändrat
- Sidredigeringar som skriver om ett innehållslager, bland annat ScalePage, TransformPageElement, DeletePageElement, RedactRegion, ConvertTextToPaths och program från ParsePageContentLayer som skrivs tillbaka med WritePageContentLayer, behåller den ursprungliga texten för varje numerisk operand de inte ändrar, i stället för att avrunda hela lagret till fyra decimaler
- TPDFContentProgram har en ny egenskap CanonicalNumbers; sätt den före parsning för att skriva om varje tal i kanonisk form som NormalizeContentStreams gör
Åtgärdat
- Ett tal skilt från noll som är mindre än utdataprecisionen, till exempel en skalfaktor på 0.00001, skrivs med sina signifikanta siffror i stället för 0, så att innehållsnormalisering, innehållsoptimeraren vid sparning och nya PDF-objekt inte längre förvandlar en minimal transformation till en singulär matris som gömmer innehållet
Version 3.539.33
Åtgärdat
- RecolorPage och RecolorDocument misslyckas inte längre med ett konverteringsfel på system med komma som decimaltecken när en sida sätter en färg med ett decimalvärde som
0.5 g - DrawSVG, DrawSVGFromFile, GetSVGWidth och GetSVGHeight läser decimala SVG-längder som
width="100.5"på system med komma som decimaltecken i stället för att falla tillbaka på standardvärden, och ExportPageSVG bevarar decimala fyllnads- och linjefärger - RenderPageRegionToFile och RenderPageToDCClip accepterar decimala beskärningsrektanglar som
10.5,20.5,50.5,40.5i varje locale; en felformad clip-sträng misslyckas nu eller renderas obeskärd i stället för att kasta undantag, och extra värden spiller inte längre över rektangeln - AddPolygonAnnotation, AddPolyLineAnnotation och AddInkAnnotation läser decimala hörnkoordinater i varje locale och avvisar en felformad koordinatlista
- SetOutputIntentMixingHints accepterar solidity-värden som
0.95på system med komma som decimaltecken, och CheckDocumentPolicy jämför decimala funktionsvärden somDocument.Version >= 1.3numeriskt
Version 3.539.32
Åtgärdat
- AddTagAttribute skriver punktdesimalkvärden som
0.5eller2.5 3.5som PDF-tal på system med komma som decimaltecken i stället för att göra om dem till PDF-namn; värden skrivna med systemets decimaltecken accepteras fortfarande - SetStructElemBBox, SetStructElemSpaceBefore, SetStructElemSpaceAfter, SetStructElemStartIndent, SetStructElemEndIndent och SetStructElemColor formaterar sina tal oberoende av systemets locale och aldrig i exponentnotation
- PDF/VCR-platshållare som skapas med BeginPDFVCRPlaceholder klarar GTS_BBox-valideringen före sparning på system med komma som decimaltecken
Version 3.539.31
Åtgärdat
- GetSimilarImageDeduplicationReportJSON skriver maxAcceptedMeanError som ett giltigt JSON-tal på system med komma som decimaltecken i stället för
0,333333333333333 - GetObjectJSON och ExportObjectJSON skriver PDF-tal som
-.25,+3eller007.5i JSON-talsyntax, så att utdata är giltig JSON och SetObjectJSON och ImportObjectJSON accepterar den igen - JSON-rapporter skriver
nullför ett värde som är NaN eller oändligt i stället för+InfellerNAN, eller att krascha med ett flyttalsundantag: GetDocumentJSON för PDF-tal som svämmar över, GetAnnotationHitsJSON för koordinater som inte är ändliga samt rapporterna för streckkod, deskew, strukturerad text och PDF/VCR - Talformatering för PDF-innehåll och SVG-, HTML- och CSV-utdata skriver 0 för NaN i stället för att utlösa en ogiltig flyttalsoperation
Version 3.539.30
Åtgärdat
- ImportAnnotationsFromFDF och ImportAnnotationsFromFDFString skapar de importerade annoteringarna igen; tidigare räknades varje post men ingen lades till eftersom /Subtype-värdet aldrig lästes
- FDF-annoteringsimport läser /Rect, /Page, /Contents, /T och /Subj i valfri nyckelordning, håller varje uppslag inom sin egen annoteringspost och tolkar tal oberoende av systemets locale, inklusive kommadecimaler skrivna av tidigare versioner
- ExportAnnotationsToFDF och ExportAnnotationsToFDFString skriver varje annoterings egen /Rect i PDF:ns användarrymd, så att en exporterad fil importeras tillbaka till samma position i stället för att flytta annoteringen
Version 3.539.29
Åtgärdat
- ExportAnnotationsToXFDF och ExportAnnotationsToXFDFString skriver värdena för rect, opacity, width och dashes med punkt som decimaltecken oavsett systemets locale, som XFDF kräver
- ImportAnnotationsFromXFDF och ImportAnnotationsFromXFDFString läser standard XFDF med punktdesimaler på system med komma som decimaltecken i stället för att misslyckas med ett konverteringsfel, och ett felformat tal hoppar nu över det värdet i stället för att avbryta importen
- XFDF-filer som tidigare versioner skrev på system med komma som decimaltecken, till exempel
rect="50,500 80,250 70,750 100,125"elleropacity="0,600", importeras med sina avsedda värden
Version 3.539.28
Åtgärdat
- Innehållsströmsoptimeraren tar inte längre bort en
1 0 0 1 0 0 Tmsom återställer textpositionen efter Td, TD, T*, en tidigare Tm eller visad text, vilket flyttade de följande glyferna när innehållsströmmar optimerades vid sparning; en identitets-Tm direkt efter BT, eller en som upprepar en tidigare identitets-Tm, tas fortfarande bort
Version 3.539.27
Åtgärdat
- MovePage, och CollateDocumentsEx när den ordnar om sidor, bevarar MediaBox, CropBox och Rotate som en sida ärver från sin överordnade Pages-nod, så att en sida som flyttas under en annan förälder inte längre ändrar storlek, beskärning eller orientering; tidigare fördes bara /Resources över
- BalancePageTree behåller en ärvd /Resources, /MediaBox, /CropBox eller /Rotate som är ett indirekt objekt som en referens till det objektet i stället för att kopiera in det i varje sida
Version 3.539.26
Åtgärdat
- Sidinnehåll som skrivs av AddPageMatrix, ScalePage, DeskewPage, TransformPageElement, DeletePageElement, RedactRegion och ConvertTextToPaths använder alltid punkt som decimaltecken och vanlig notation, så att dessa anrop inte längre producerar trasiga operatorer som
0,5 0 0 0,5 0 0 cmpå system där komma är decimaltecken, och mycket små värden skrivs aldrig i exponentnotation - ExportAnnotationsToFDF och ExportAnnotationsToFDFString skriver annoteringsrektanglar med punkt som decimaltecken oavsett systemets locale
- RecolorPage och RecolorDocument skriver färgoperander som fungerar för varje decimaltecken oberoende av locale, inte bara för kommat
- AddPageMatrix, ScalePage och RedactRegion avvisar NaN- eller oändliga argument i stället för att skriva in dem på sidan
Version 3.539.25
Åtgärdat
- Reparationen av formulärfältens utseende skriver /Type och /Subtype till appearance-strömmen i stället för att skapa fiktiva /N-appearance-tillstånd, CMYK-ramfärger läser inte längre bortom sina fyra komponenter, och borttagning av ett formulärfält läser inte längre sidantal fel via indirekta /Count-värden
- Repareringen av kryssrutestil bevarar båda anpassade exporttillstånden när inget Off-tillstånd finns i stället för att radera dem, och radioknapparnas underfält registrerar sitt on-tillstånd med samma encoding som värdesättningsmetoderna jämför mot
- Filbilageannoteringar utan ett /EF-dictionary kraschar inte längre, export av ljudannoteringar byter inte längre byteordning på 8-bitarsljud, opaciteten för markup-annoteringar använder en konsekvent skala, och SetAnnotRect rapporterar åter framgång
- Ombyggnad av annoteringarnas utseende lämnar inte längre en frigjord ström i strukturobjekttabellen när dokumentet saknar indirect-object-callback
- Peephole-optimeraren tappar inte längre färgsättare som under tiden ersatts av en annan färgoperator på samma sida, och fortsätter att vika bort rena intilliggande dubbletter
- Textextraktionen tolkar "-operatorn som ord- och teckenavstånd i stället för att förstöra radavståndet, och FindInstructionsInRect rapporterar inte längre överlappande intervall för banor med flera delbanor
- EMF-import: PolyDraw läser flaggorna för punkttyper från rätt offset, POLYTEXTOUTW läser alltid UTF-16-text och ackumulerar inte längre glyfer över flera strängar, glyfsmappning vid liten textutmatning ersätter inte längre hela strängen med ett enda tecken, och toningsfyllningar dividerar inte längre med noll för degenererade rektanglar
- EMF-importen begränsar varje filangiven bitmappshuvudstorlek, antal regionsrektanglar, antal polygoner och varje gradientvertexindex till postgränserna, och trunkerar inte längre postpekare till 32 bitar på Win64
- JBIG2-halftoneregioner placerar mönster i rätt rutnätsriktning, skip-mask-tester jämför med fastpunktsaritmetik, bevarade aritmetikkontexter tar en snapshot av avkodarens statistik i stället för att krascha, run-length-symboltabeller skyddar mot en repetitionskod i första positionen, MMR-referensrader stannar vid sentinel-värdet, symboler som delvis ligger utanför ritytan beskärs i stället för att skiftas, och felformade antal syns som avkodningsfel i stället för orelaterade körtidsfel
- CCITT-avkodning initierar uppslagning av changing-element och hanterar bitbegäranden mindre än de återstående bitarna utan negativa skift; CCITT-encodern täcker hela vertical-mode-intervallet och läser inte längre en byte förbi radbufferten
- TIFF-inläsningen gör gränskontroll av varje IFD-läsning, hindrar palettbilder från att avkodas som gråskalor, skriver StripByteCounts en gång och begränsar begärda sidnummer; misslyckad JPEG-återkomprimering rapporterar inte längre en korrupt ström som framgång
- Dokumentjämförelsen fogar strömdata in i objektfingeravtrycken, matchar dubblettobjekt en till en, sorterar ordlistenycklar, skiljer arrayelement åt och rapporterar jämförelsefel i stället för en falsk bedömning att inget ändrats
- Namnbyggaren för parallell rendering läser inte längre förbi ett mönster med ett enda tecken
- Fler demos har lagats: resultaten för fillistor kopplas till rätt fil, multifunktionsvisaren provar verkligen igen med det angivna lösenordet, fyra demos lägger inte längre till en tom förstasida, demos för inbäddade filer och sidåtgärder lägger sina exempel- och utdatavägar bredvid sina indata, och hjälparna för bildstrategier kontrollerar biblioteksresultaten de bygger på
- ActiveX-kontrollen initierar resultatet för varje metod som tar variant-indata, så att en avvisad variant inte längre returnerar skräp från stacken
Version 3.539.24
Åtgärdat
- Stämpeltoken &T expanderar nu till dokumentets Title i stället för Author i sidhuvuden, sidfötter och stämplar
- PrinterMark-annoteringar skriver /PN-märktypen som ett PDF-namnobjekt som ISO 32000-1 kräver, i stället för som en literal sträng
- Frågor efter kid-index i sammansatta formulärfält frigör sitt tillfälliga barnfält i stället för att läcka det
- Ombalanserade sidträd ärver MediaBox, CropBox och Rotate från föräldranoder i stället för bara Resources
- XMP CreateDate och ModifyDate behåller en giltig ISO 8601-form när PDF-datumet utelämnar sin tidszon, och XMP-import utan en x:xmpmeta-wrapper tappar inte längre efterföljande metadatauppdateringar
- Oktala escape-sekvenser i PDF-strängar stannar vid siffran 7, så att \0689 nu avkodas som \06 följt av en literal 89, som specifikationen definierar
- QDF-publicering rapporterar det ursprungliga skrivfelet i stället för att dölja det bakom ett fel vid filstängning
- FPC-byggen komprimerar och expanderar Flate-strömmar större än en chunk som en enda zlib-ström i stället för som sammankedjade per-chunk-members som andra konsumenter trunkerar
- EditFormField-demona genererar sitt exempelformulär vid första körningen i stället för att inte hitta det, och flera demos rapporterar nu en misslyckad dokumentinläsning i stället för att i tysthet spara en tom PDF
Ändrat
- Dokumentationens sökindex listar den lokaliserade säljargumentssidan under varje språks egen titel i stället för under en gemensam kinesisk titel för alla språkversioner
Version 3.539.23
Tillagt
- Inbyggd JBIG2-avkodning accepterar fristående random-access-filorganisation med kända segmentlängder, inklusive anpassade Huffman-tabeller och förfiningsbilder
Åtgärdat
- Random-access-indata validerar huvudordning, det obligatoriska end-of-file-huvudet och totala datalängder innan avkodning, och avvisar avkapad eller eftersläpande data utan att behålla en gammal bitmapp
Version 3.539.22
Tillagt
- Inbyggd JBIG2-avkodning stöder anpassade Huffman-tabeller för symbolordlistor och textregioner, med explicita fel för felformade tabeller och prefixlängder som inte stöds
Åtgärdat
- Huffman-förfinningsavkodning förbrukar den deklarerade bitmappsstorleken och bevarar partiella bytesymbolpixlar, vilket förhindrar skadad text i drabbade JBIG2-bilder
Version 3.539.21
Åtgärdat
- Flate- och LZW-avkodning följer PNG-algoritmtaggen per rad för predictors 10 till 14 i stället för att avkoda varje rad med algoritmen som anges i dictionaryn. Legitima cross-reference-strömmar komprimerade med Predictor 12 läses in igen, bildrader avkodas inte längre på fel plats, och rader får byta algoritm inom en och samma bild
Version 3.539.20
Åtgärdat
- Den första redigeringen av dokumentinformation eller standardidentifierare fångar ursprunglig XMP innan editorobjektet initieras, så att befintliga författar-, dokumentidentifierar- och anpassade egenskaper inte längre skrivs över med standardmetadata; ändringar i dokumentinformationen når också XMP:n under Free Pascal på Windows, och XML utan xpacket-wrapper sparas oförändrad
Version 3.539.19
Åtgärdat
- När ett oändrat decimalobjekt sparas behåller det den precision det tolkades med i stället för att avrundas till standardutmatningsprecisionen, så att kalibrerade färgparametrar som CalRGB-gamma och -matris inte längre skiftar sidfärger vid en vanlig sparning; nyskapade eller redigerade tal fortsätter använda den konfigurerade precisionen
Version 3.539.18
Åtgärdat
- Uppdatering av dokumentinformation ersätter bara värdet i målfältet: när skapandedatum och ändringsdatum refererar till samma indirekta sträng skriver uppdateringen av ändringsdatumet inte längre om skapandedatumet
Version 3.539.17
Ändrat
- Versionsdetektering och prechecken vid sparande undviker upprepade kopior av hanterade strängar medan funktionsregler samlas in, vilket sänker skanningskostnaden för stora dokument; funktionsdetektering, versionskrav och den första diagnostiken om inkompatibla funktioner beter sig exakt som tidigare
Version 3.539.16
Åtgärdat
SaveQDFToFileochConvertFileToQDFskriver inte längre vanliga komprimerade Flate-contentströmmar som tomma strömmar under Free Pascal och Lazarus; dekomprimering från en explicit startposition använder korrekt ettbaserad offset och hela indatalängden
Version 3.539.15
Åtgärdat
- JBIG2-avkodaren läser lokala och globala profelsegment på ett säkert sätt och erhåller den första bitmapen via standardsidnumret 1
- MMR-bitmapavkodningen riktar in sin läsplats mot den deklarerade segmentgränsen efter den sista pixeln, så att en avslutande EOFB eller utfyllnad inte längre misstas för nästa segmenthuvud
- Anpassade Huffman-tabeller, random access-organisation samt okända eller överdimensionerade segmentlängder misslyckas explicit; avhuggna profiler och otillåtna segmentreferenser stoppar avkodningen,
TPLJBIG2Decoder.LastErrorrapporterar orsaken, och ett fel rensar den inaktuella bitmapen RepairQDFFilepublicerar via en tillfällig fil som skapas exklusivt i målkatalogen och ersätter målet först efter att den tillfälliga filen har skrivits, spolats och stängts; reparation på plats och overwrite-utmatning behåller den gamla filen när skrivning, spolning eller byte misslyckas och rapporterar resultat 0 med felkod 305- Publicering bevarar målets befintliga DACL innan den tillfälliga filen skrivs och misslyckas explicit när behörigheter inte kan bevaras eller målet är EFS-krypterat; en exklusivt låst eller oläsbar indata rapporterar felkod 401 i stället för att kasta läsfelundantaget, och filpublicering stöder Unicode- och utökade Windows-sökvägslängder
Version 3.539.13
Åtgärdat
- Reparation av en QDF-fil tappar inte längre ströminnehåll vars body innehåller helrads-
endstream- ellerendobj-markörer; reparationen väljer det sista kompletta slutmarkörparet före den kända objektsvansen - Objektspecifika svansmarkörer som upprepas inuti en ström får reparationen att misslyckas innan målströmmen rensas, vilket bevarar de ursprungliga bytes, längden och positionen
RepairQDFFileutför hela reparationen i minnet och öppnar målet för skrivning först efter framgång, så att avvisad indata inte längre kan avkorta en fil som öppnats medfmCreate- Filspecifikationssträngar behåller den dokumenterade ordningen med
/UFförst och/Fsom reserv och ger okända/Path-nycklar ingen namnprioritet
Version 3.539.10
Åtgärdat
- LZW-avkodningen utökar sin kodbredd vid avkodarens egen tröskel i stället för att dela kodarens, så att strömmar över alla kodbredder och vid upprepade dictionary-återställningar avkodas korrekt; verifierat mot Pillow, libtiff och PDFium
- Tolkningen av CMS-signaturer bär med sig överordnade områdesgränser genom ContentInfo, EXPLICIT-inpackning, SignedData, set och identitetsfält, så att data utanför intervallet inte längre används för certifikaträknare eller identitetsmatchning, medan giltig utfyllnad efter det yttre objektet fortfarande accepteras
- Vid uppdatering av sidetiketter i ett dokument vars PageLabels använder ett
/Kids-nummerträd konverteras de befintliga posterna till rotlövknutor i stället för att lägga till en andra, ömsesidigt uteslutande/Nums-post som läsare skulle ignorera - Lazarus-exemplet MergePDF läser sina indata från det andra kommandoradsargumentet, behandlar en enda explicit indata som ett parameterfel och skriver inte längre ut någon lyckohint innan genereringen misslyckas
Version 3.539.6
Åtgärdat
- Bufferskanningar stannar vid ett
TStream.Read-returvärde på noll i stället för vid en kort läsning, och strömmar som returnerar några bytes i taget hoppar inte längre över slutet av de skannade data - OID-kodning slår ihop de två första arcs till en base-128-subidentifier, så att
2.999.3kodas som06 03 88 37 03i stället för att tyst bli1.15.3 - När en förhandsvisning ritas in i en återanvänd bildström rensas det gamla innehållet först, så att en mindre rendering inte längre behåller slutet av föregående bild
CopyPageRangesfrigör sina dokumentinstanser i ettfinally-block, vilket täcker inläsningsfel, undantag och normalt avslut
Version 3.539.3
Korrigerat
- Felkoden 526 betyder inte längre två olika saker.
PDFLIB_ERROR_TEXT_LOCATION_INVALID,PDFLIB_ERROR_TEXT_LOCATION_STALEochPDFLIB_ERROR_TEXT_LOCATION_READ_ONLYflyttas till koderna 535, 536 och 537, som var otilldelade, så anropare som förgrenar sig på 526 ser bara det JSON-exportfel koden var dokumenterad för; koderna 527 och 528 används inte längre PDFlibErrorMessagebeskriver koderna 101 till 104 utifrån vad som faktiskt utlöser dem. De fyra koderna hör till krypteringsparametrarna och inte till de tolkningsfel som meddelandetabellen påstod, så ett fel i krypteringsstyrkan rapporterar inte längre "Invalid PDF structure"PDFlibErrorMessagereturnerar ett riktigt meddelande för varje kod biblioteket utlöser. Byte range- och HTTP-öppningsfel, öppning av net-filer, storleken på den råa krypteringsnyckeln, JSON-export, avvisade handtag för markerat innehåll och klippbana, de omnumrerade textplatskoderna, koderna för inbäddningsbara teckensnitt och PDF/VCR- och PDF/E-efterlevnad samt duplicate-field- och form-script-formulären hade alla fallit tillbaka till den generiska texten "<segment> error (NNN)"- Referenssidan för
LastErrorCodelistar den fullständiga koduppsättningen, inklusive den tidigare saknade 705 duplicate-field-koden, och visar inte längre de utgångna posterna 527 och 528
Version 3.539.2
Korrigerat
- En TIFF där katalogen anger fler värden än filen innehåller avvisas nu helt. Värdena kastades bort men antalet behölls, så senare läsare tog första elementet i en tom array
- En PNG vars huvud har en färgtyp eller bitdjup utanför formatet avvisas i stället för att avkodas utan färgkanaler, vilket skickade radfiltren till en tom buffert
- En PNG-upplösningsbit som är kortare än sina nio definierade byte läser inte längre förbi mottagna data
- Tvådimensionella CCITT Group 3- och Group 4-bilder avkodas i Free Pascal och Lazarus; sökningen efter referenslinjen returnerade en aldrig skapad array, som den kompilatorn lämnar tom
Version 3.539.1
Korrigerat
- Visarens diskcache kastar nu renderade bitmappar vid varje biblioteksuppgradering. Versionsmarkören som jämfördes hölls separat från biblioteksversionen och hade hamnat efter, så en cache från en äldre build kunde återanvändas efter uppdateringen
- Free Pascal- och Lazarus-builds läser 16-bitars
BI_BITFIELDS-bitmappar korrekt igen: kanalmaskerna hämtades från fel offset när filen använde ett utökat informationshuvud, vilket blandade färgerna - Bitmappsrid läses inte längre fel i builds utan enhetsstöd: rader med 1 och 4 bitar dimensionerades med heltalsdivision, tappade sista pixlarna på varje rad och sparade pixelblocket en byte fel
- Att fånga en ritning i en metafil skapar inte längre en tom bild när storleken inte är känd i förväg; den inspelade ramen hämtas nu från ritningen själv, som under VCL
- Läsning av en bitmapp där angiven palettstorlek överstiger färgdjupet avvisas i stället för att godtas
- Frågor efter utskriftsjobbstatus frigör det öppna spoolerhandtaget, så kontroll av ett jobb läcker inte längre ett handtag per anrop
Docs\index.htmlär åter språkportalen. En dokumentsynkronisering hade ersatt den med en kopia av förenklad kinesisk referensnavigering vars länkar pekade på en katalog som inte finns
Ändrat
- Lazaruspaketet
PDFlibPasLaz.lpklistar nu de valfria uniterna för LZW-kodare, Brainpool, Ed448, ML-DSA, PDF-skrivare och extern JBIG2-kodare tillsammans med metafildeklarationerna, samma unituppsättning som kommandoradsbygget build-Win64-Demo-Laz.cmdvidarebefordrar tillbuild-Lazarus-Demo.cmd win64, så båda ingångarna lägger demoprogram ibin\x86_64-win64i stället för källkatalogen
Version 3.539.0
Tillagt
- Free Pascal och Lazarus har nu stöd för 32-bitars Windows-byggen utöver Win64, inklusive skapande, inläsning och kryptering av PDF-filer samt JPEG 2000-bilder
- Byggskripten för Lazarus-biblioteket, testversionen, demonstrationerna och konsoltesterna accepterar
win32ellerwin64och stöder korsk kompilatorer som körs på Win32, med separata utdatakataloger för varje arkitektur
Ändrat
- Win32 använder den inbyggda Pascal-JBIG2-kodaren när en extern kodare begärs; den statiskt länkade externa kodaren är fortfarande tillgänglig på Win64
- FPC-byggen omfattar komprimering via den medföljande Pascal-zlib-implementeringen och läser inte längre in
zlib1.dllfrån systemets sökväg
Version 3.538.0
Tillagt
- Free Pascal- och Lazarus-byggen kan nu använda den externa JBIG2-kodaren: lägg till den nya enheten PDFlibJBIG2EncDLL i ett projekt och se till att
pdflibjbig2enc.dllligger bredvid den körbara filen, så följerAddImageJBIG2FromStreamExoch de andra JBIG2-ingångspunkterna där begäran om extern kodare exakt som på Delphi. Utan DLL:en faller begäran fortfarande tillbaka till den inbyggda Pascal-kodaren, så projekt som inte distribuerar den påverkas inte - Ny omdistribuerbar
DLL\JBig2Enc\Win64\pdflibjbig2enc.dlloch byggeskriptet som producerar den
Version 3.537.0
Tillagt
- Free Pascal- och Lazarus-byggen konverterar metafiler till vektorbaserat sidinnehåll.
ImportEMFFromFile,ImportEMFFromStream, deras Ex-varianter,LoadFromCanvasDCochNewPageFromCanvasDCproducerar nu riktiga PDF-ritoperatorer med inbäddade teckensnitt där, som de gör på Delphi, i stället för att rapportera att läget inte är tillgängligt. Texten förblir markerbar och sökbar, och utdata är en bråkdel av storleken på den rastrerade importen
Version 3.536.7
Åtgärdat
- Uppräkningen av skrivare returnerar riktiga namn på Free Pascal och Lazarus. Varje skrivare kom tillbaka som endast sitt första tecken, vilket också fick skrivarval, egna skrivarprofiler och själva utskriften att avvisa alla installerade skrivare
GetPrinterNameskraschar inte längre i byggen utan VCL: den frågar nu utskriftskön direkt, somGetLatestPrinterNamesredan gjorde
Version 3.536.6
Åtgärdat
- Konvertering av en metafil till vektorbaserat sidinnehåll rapporterar nu fel i byggen som inte klarar det, i stället för att returnera en bild med tomt innehåll.
ImportEMFFromFile,ImportEMFFromStream, deras Ex-varianter ochLoadFromCanvasDCreturnerade alla ett till synes giltigt bild-id där, så sidan blev tom utan något som visade varför. Att importera samma metafil som bild påverkas inte och innehåller exakt samma bild - Canvas-inspelning och metafilimport kraschar inte längre när konverteringen inte kan köras: båda ingångspunkterna använde den resulterande bilden utan att kontrollera att den finns
Version 3.536.5
Åtgärdat
- Rastrerad metafilimport fungerar på Free Pascal och Lazarus.
ImportEMFFromFile,ImportEMFFromStreamoch deras Ex-varianter returnerade inget när de bads rastrera, ochLoadFromCanvasDCkraschade i samma läge, eftersom ritströmmen som överlämnades till bildinläsaren inte var en som den kunde läsa där. De vektorbaserade banorna påverkades inte
Version 3.536.4
Åtgärdat
- Metafilinspelning på Free Pascal och Lazarus rapporterar igen sin fysiska storlek, så att
LoadFromCanvasDCoch de andra ingångspunkterna för canvas-inspelning importerar ritningen i stället för att misslyckas på en ram utan storlek - Teckensnittsobjektet utan VCL rapporterar nu ett verkligt
PixelsPerInchoch kopieras vidAssign. Båda delarna var verkningslösa, så kod som tog sin renderingsupplösning från ett teckensnitt begärde en canvas utan storlek, och när ett förberett teckensnitt gavs till en canvas behöll den tyst det gamla - Metafiler som skapas på Free Pascal använder som standard enhanced-formatet, i linje med alla andra plattformar; de sparades tidigare i det äldre 16-bitarsformatet om inte anroparen själv satte flaggan
Version 3.536.3
Åtgärdat
- Free Pascal- och Lazarus-byggen importerar nu 4-, 8- och 16-bits BMP-bilder.
AddImageFromFileochAddImageFromStreamreturnerade tyst ingen bild för de bitdjupen, inklusive 16-bitsformenBI_BITFIELDSsom ritprogram skriver, eftersom bitmappsläsaren utan VCL bara förstod 1-, 24- och 32-bits indata
Version 3.536.2
Åtgärdat
- Export av klassisk GDI-metafil fungerar på Free Pascal och Lazarus:
RenderPageToMetafileFileochRenderPageToMetafileStreamorsakade ett access violation förmfEMFochmfWMF, eftersom metafil-canvasen utan VCL var en tom ersättning utan pensel, penna eller teckensnitt. Båda formaten spelas nu in i en verklig enhanced-metafil och skrivs ut,mfWMFmed det placeable-huvud som en .wmf-fil behöver
Version 3.536.1
Åtgärdat
- Free Pascal- och Lazarus-byggen skriver nu giltiga 1-, 4- och 8-bits BMP-filer: bitmappsersättningen som ersätter VCL-motsvarigheten gav ingen färgtabell alls, så palettindexerade bitmappar avvisades av alla läsare och ritades mot en helt svart palett
- Import av bitonala bilder fungerar igen på Free Pascal:
AddImageCCITTFromFile,AddImageCCITTFromStreamoch JBIG2-motsvarigheterna kan nu läsa de 1-bits bitmappar de får, i stället för att misslyckas eftersom endast 24- och 32-bits BMP-indata avkodades
Version 3.536.0
Tillagt
- Free Pascal- och Lazarus-byggen kör nu de parallella batchsökvägarna i stället för att falla tillbaka till seriella loopar:
RenderPagesToFilesParallel, optimeringsbatcharna bakom dokumentoptimering och parallell tile-rendering förgrenar sig alla över CPU-kärnor där, i linje med Delphi-beteendet
Ändrat
- Parallell sidrendering renderar nu sin första sida på den anropande tråden innan den förgrenar sig, så att renderingsmotorn initieras en gång i stället för att initieras samtidigt av varje arbetstråd
Version 3.535.0
Tillagt
- Free Pascal- och Lazarus-byggen levererar nu JPEG 2000-kodaren:
EncodeImageToJPXStream,EncodeImageToJPXFile,AddImageJPXFromFile,AddImageJPXFromStreamochAddImageJPXFromStringproducerar JPXDecode-bilder där exakt som på Delphi, både med förluster och utan förluster - Den VCL-fria bitmappen som används av Free Pascal-, macOS- och FireMonkey-byggen läser nu in okomprimerade 24-bits- och 32-bits BMP-strömmar och rapporterar ett alfaformat
Åtgärdat
- Bildavkodning via Windows-bildbackenden kraschar inte längre i Free Pascal-byggen; strömmar överlämnas nu till backenden i en form den godtar
- Tilldelning av en bitmapp till en annan i byggen utan VCL kopierar pixlarna i stället för att lämna målblitmappen tom, vilket tyst gav tom utdata i bildkonverteringsvägarna
Version 3.534.1
Åtgärdat
- Den inbyggda TIFF-avkodaren avvisar nu BigTIFF och tiled-layouter som inte stöds med explicit diagnostik och begränsar avkodade dimensioner och strip-storlekar före allokering
Version 3.534.0
Ändrat
CheckFileComplianceoch PDF/UA-förkontrollen validerar nu inbäddade bredder för enkla och CID-teckensnitt, fullständiga Type 1/CharSet- och CID/CIDSet-deklarationer, Form XObjects med text som anropas utanför markerat innehåll samt textoperatorer som löser sig till.notdef
Version 3.533.0
Tillagt
TPDFlibPKCS11Clientkan upptäcka uttryckligt valda ML-DSA-nycklar utan certifikat, rapportera deras parameteruppsättning och signera ursprungliga meddelanden via mekanismen PKCS #11 3.2CKM_ML_DSA
Version 3.532.0
Ändrat
- Stora strömmar med den vanliga filterkedjan
/ASCII85Decodeoch/FlateDecodekodas och avkodas nu via en minnesbegränsad pipeline utan att den mellanliggande representationen materialiseras
Version 3.531.0
Tillagt
AddWebCaptureCommand,GetWebCaptureCommandCount,GetWebCaptureCommandochClearWebCaptureCommandsskapar, räknar upp och tar bort standardiserad katalogmetadata för/SpiderInfoWeb Capture-kommandon utan att hämta data från nätverket
Version 3.530.0
Tillagt
BPLoadCurve,BPKeyGen,BPSignFixedKochBPVerifyimplementerar ECDSA över de tre RFC 5639-primkroppskurvorna brainpoolP256r1, brainpoolP384r1 och brainpoolP512r1 i ren Pascal: 33-limb radix-2^16-aritmetik som delas av alla kurvbredder, bitseriell modulärreduktion, Jacobiansk fördubbling och addition med uttryckliga aliasskydd, Fermat-inversion och en anropardefinierad nonce för signering; känd-svar-vektorer som genererats med en oberoende implementation och kryssverifierats i båda riktningarna passerar på varje kurva, liksom rundturs- och manipuleringsavvisningsregressioner
Version 3.529.0
Tillagt
Ed448PublicKeyFromSeed,Ed448SignochEd448Verifyimplementerar RFC 8032 PureEdDSA på edwards448 i ren Pascal: 16-limb radix-2^28 Goldilocks-kropparitmetik med Solinas-fällningen 2^448 = 2^224 + 1, starkt uniformerad gruppaddition i produktform för kurvor med a = +1, modulärreduktion över hela sammandraget modulo gruppordningen för de 114 byte stora SHAKE256-skalärerna samt kofaktor-4-verifiering; båda känd-svar-vektorerna i RFC 8032 avsnitt 7.4 passerar byte för byte, liksom rundturs-, manipuleringsavvisnings- och längdvalideringsregressioner
Version 3.528.0
Tillagt
MLDSA65KeyGen,MLDSA65SignochMLDSA65Verifyimplementerar FIPS 204 ML-DSA-65 med 1952 byte stora publika nycklar, 4032 byte stora hemliga nycklar och 3309 byte stora signaturerMLDSA87KeyGen,MLDSA87SignochMLDSA87Verifyimplementerar FIPS 204 ML-DSA-87 med 2592 byte stora publika nycklar, 4896 byte stora hemliga nycklar och 4627 byte stora signaturer
Version 3.527.0
Tillagt
PDFlibMLDSAtillhandahåller en ren Pascal-implementation av FIPS 204 ML-DSA-44 med deterministisk frönyckelgenerering, häckad eller deterministisk signering, avgränsad avvisningssampling och signaturverifieringMLDSA44KeyGen,MLDSA44SignochMLDSA44Verifyanvänder de standardiserade storlekarna 1312 byte för publik nyckel, 2560 byte för hemlig nyckel och 2420 byte för signatur, stöder kontexter upp till 255 byte och verifieras mot den officiella känd-svar-vektorn
Version 3.526.0
Tillagt
- Strömmande SHAKE XOF-kontext (
PLShakeXOFInit/PLShakeXOFAbsorb/PLShakeXOFFinalize/PLShakeXOFSqueeze) pressar ut valfria byte-mängder över Keccak-permutationer för både SHAKE128 (rate 168) och SHAKE256 (rate 136), med ett engångsomslutPLShakeXOF; 200 byte stora blocköverskridande utdata verifieras mot båda varianternas referenssammandrag
Version 3.525.0
Ändrat
SHAKE256ByteArrayochSHAKE256StreamRangeaccepterar nu utdata upp till sponge-hastigheten 136 byte (tidigare 64), vilket möjliggör engångssammandrag vid Ed448:s hash-längd 114 byte; nya känd-svar-tester täcker 114 byte utdata för det tomma meddelandet och meddelandetabc
Version 3.524.0
Tillagt
DownsampleImagesExklassificerar varje bild som bitonal, gråskala eller färg utifrån dess deklarerade färgrymd och bitar per komponent och tillämpar en per-klass-DPI-budget och JPEG-kvalitet i ett enda pass; bitonala skanningar kodas om förlustfritt och en endast-om-mindre-flagga behåller originalbytena när omkodningen blir större
Version 3.523.0
Tillagt
CopyForeignObjectdjupkopierar ett indirekt objekt och dess fullständiga referensslutenhet från ett annat öppet dokument till det valda dokumentet och mappar om objektnummer så att delade referenser förblir delade i kopian
Version 3.522.0
Tillagt
SetPagePieceInfo,GetPagePieceInfoochClearPagePieceInfohanterar sidonivåordlistor för privata data (ISO 32000-2 14.5) nycklade efter programnamnAddNamedPageochGetNamedPageregistrerar och löser sidor efter namn via katalogens namnträd /Names /Pages
Version 3.521.0
Tillagt
GetImageListItemNativeDataToString,GetImageListItemNativeFormatochSaveImageListItemNativeDataToFileextraherar den råa fortfarande kodade codec-strömmen för vilken listad bild som helst (JPEG, JPEG 2000, JBIG2, CCITT, Flate eller rå) utan avkodning och bevarar originalbytena för genomströmningsarbetsflöden
Version 3.520.0
Tillagt
AnalyzeModificationsklassificerar varje ändring sedan en sparad revision mot vitlistan för LTA-uppdatering, ifyllandet av formulär och anteckningar och returnerar den övergripande ändringsnivånGetModificationLevel,GetModificationFindingCount,GetModificationFindingLevel,GetModificationFindingObjNumochGetModificationFindingDetailexponerar de klassificerade fynden från den senaste analysen
Version 3.519.0
Tillagt
CompareWithutför en strukturell jämförelse mellan det valda dokumentet och en sparad revision och klassificerar varje indirekt objekt som tillagt, borttaget eller ändrat genom innehållsfingeravtryck som ignorerar förskjutningar i objektnummerGetCompareFindingCount,GetCompareFindingKind,GetCompareFindingObjNumochGetCompareFindingDetailläser fynden från den senaste jämförelsen, inklusive skillnader i antal sidor
Version 3.518.0
Tillagt
SHAKE256ByteArrayochSHAKE256StreamRangetillhandahåller SHAKE256-sammandraget med utbyggbar utdata (ISO/TS 32001, RFC 8702) med tvåsegmentläsningar över byte-intervall och utdata på 1..64 byte, verifierat mot NIST FIPS 202 känd-svar-tester
Ändrat
- Keccak-kärnan har nu en domänseparatorbyte så att SHA-3 och SHAKE delar en permutationsimplementation; inom CMS-signeringsprofilen är SHAKE256 fortfarande reserverad som Ed448:s interna sammandrag och saknas medvetet i sammandragsväljaren
Version 3.517.0
Tillagt
AddPageAssociatedFileFromFileochAddPageAssociatedFileFromStringbinder inbäddade filspecifikationer till en enskild sidas /AF-array (ISO 32000-2 14.13) i stället för dokumentkatalogenGetPageAssociatedFileCount,GetPageAssociatedFileEmbeddedIndexochClearPageAssociatedFilesräknar upp och tar bort sidonivåassocierade filer efter spara/läsa-rundturerSetOptionalContentConfigInfoskriver presentationsmetadata (konfigurationsnamn, skapare och listläge för lagerpanelen) till standardkonfigurationen för valfritt innehåll
Version 3.516.0
Tillagt
ApplyContentFilterChainochTPDFContentFilterChainkör innehållsfilter på instruktionsnivå över varje innehållslager på en sida, med ordnade kedjor, styrning av tidigt stopp och vidarebefordran av användardataExportDocumentJSONochGetDocumentJSONserialiserar den fullständiga dokumentobjektgrafen, inklusive strömordlistor med base64-nyttolaster och trailern, till en JSON-struktur i qPDF-stilSetPDFDeclarations,GetPDFDeclarationsURI,GetPDFDeclarationsRole,GetPDFDeclarationsVersion,GetPDFDeclarationsCount,HasPDFDeclarationochClearPDFDeclarationsskriver, läser och tar bort maskinläsbara efterlevnadsutfästelser enligt PDF DeclarationsAuditPageTree,AuditXRefStructure,AuditObjectReachability,AuditStreamLengths,AuditFontEmbeddingochAuditColorSpaceskör sex oberoende strukturella diagnostikpass med allvarlighetsgraderade fyndGetAuditFindingCount,GetAuditFindingSeverity,GetAuditFindingItemochGetAuditFindingDetailläser fynden från det senaste granskningsanropet
Version 3.515.0
Tillagt
ExecuteFormFieldScriptEventochTPDFlibFormScriptEventkör avgränsade fälthändelser Keystroke, Format, Validate och Calculate med kontrollerade egenskaperna Event, Field och DocumentSetFormScriptLimits,GetFormScriptLimitsJSONochGetFormScriptDiagnosticskonfigurerar och rapporterar budgetar för källa, operation, nästling, strängar och egenskapsåtkomst
Ändrat
- Den säkra formulärskriptmiljön exponerar nu skrivskyddad metadata för käll- och målfält, dokumentfältsuppslag och keystroke-urvalstillstånd samtidigt som endast-värde-kompatibiliteten behålls
Säkerhet
- Skriptkörningen avvisar nu knappvärdehändelser, objektmutationer och urval utanför intervallet, tillämpar oberoende resursbegränsningar på körning och beroendeanalys samt rapporterar avgränsade parserfellägen
Version 3.514.0
Tillagt
SetPDFEModeskapar PDF/E-1-konstruktionsdokument med PDF 1.6-syntax, synkroniserad Info- och XMP-identifiering, livscykeldatas metadata och ett inbäddat OutputIntent med färghanteringGetPDFEDiagnosticsoch efterlevnadstest 7 tillhandahåller PDF/E-1-validering vid sparande, via direkt fil och via delad pipeline med avgränsade budgetar för objekt, innehåll och rekursion
Ändrat
- PDF/E-1-sparningar tvingar nu fram identifiering, livscykelmetadata, tillåten kryptering, konsekvens i utdataintent, XFA-undantag och grindar för osäkra åtgärder, medan förkontrollen dessutom granskar enhetsfärgrymder, innehållsoperatorer, teckensnitt, anteckningar, formulär, valfritt innehåll, referenser till externa filer, grafiktillstånd och begränsningar för 3D-strömmar
Version 3.513.0
Tillagt
SetPDFVCRModeoch API:erna för mall- och platshållaromfattning skapar PDF/VCR-1 PassThrough-ersättningsmallar ovanpå en PDF/X-4-grundGetPDFVCRDiagnostics,GetPDFVCRManifestoch efterlevnadstest 6 tillhandahåller validering vid sparande, via direkt fil och via delad pipeline plus validerad extraktion av JSON-fält och platshållare
Ändrat
- PDF/VCR-sparningar tvingar nu fram identifieringsmetadata, en direkt mallrot, unika deklarerade fält, giltigt sidval, ersättningsplatshållare på bladnivå och exakta sid- och MCID-bindningar över hela strukturträdet
Version 3.512.0
Tillagt
SetPDFRModeoch PDF/R:s rastersid-API:er skapar begränsade rasterutbytesdokument från råa, CCITT Group 4- eller JPEG-data utan att transkoda stödda komprimerade indataGetPDFRDiagnosticsoch efterlevnadstest 5 tillhandahåller PDF/R-validering i minnet, via direkt fil och via delad pipeline
Ändrat
- PDF/R-sparningar tvingar nu fram den obligatoriska markören, versions- och krypteringsprofilen, generation-noll-objekt, begränsade ordlistor och filter, en enda innehållsström, enbart rasteroperatorer, ordnade stripresurser, konsekvens i färg och upplösning samt fullständig sidtäckning
Version 3.511.0
Tillagt
TPDFlibFormTextDirection,SetTextDirection,GetVisualCaretOrderochMoveVisualCaretlägger till automatisk eller explicit styckeriktning och grafemsäker fysisk caret-navigering för formulärredigeringar med blandad riktningResolvedTextDirectionochVisualCaretPositionexponerar den effektiva styckeriktningen och skiljer uppdelade caretplatser vid tvåvägsgränser
Ändrat
- Formade textkörningar tillämpar nu visuell omordning på inbäddningsnivå för blandat vänster-till-höger- och höger-till-vänster-innehåll medan fältvärdena förblir i logisk UTF-16-ordning
Version 3.510.0
Tillagt
MinimumSlotHeightskjuter upp dynamisk komponentsammansättning före kloning eller fångst när den aktuella regionen är för kortMinimumFollowingHeightbehåller ett sista fragment med en anropardefinierad första region för den följande komponenten utan att begränsa mellanliggande fragmentTPDFlibDynamicRetryReason,LastRetryReasonochLastRequiredSlotHeightexponerar varför placeringen sköts upp och den kända nödvändiga höjden
Ändrat
- Försök i flödesutrymme bevarar nu engagerade fragment, komponenttillstånd, sammansättningsindex och sidinnehåll medan endast det isolerade försöket förkastas
Version 3.509.0
Tillagt
TPDFlibDynamicPaginationPolicylägger till lägena delad, engångs håll-ihop och strikt fullständig placering med ett distinkt försöksresultat och observerbart vänteläge
Ändrat
- Uppskjutna dynamiska komponentförsök förkastar nu fångat innehåll och föränderligt tillstånd atomärt, medan strikt placering accepterar proportionell nedskalning men aldrig delvis eller urklippt utdata
Version 3.508.0
Tillagt
TPDFlibFormSession.DispatchInputEventaccepterar typade plattformsoberoende pekare-, rullhjuls-, namngivna tangent- och sammansatta texthändelser och returnerar fokus-, hover-, tryck-, urvals- och värdeändringstillstånd
Ändrat
- Formulärinmatningsutskicket tvingar nu fram ordnade Widget-
/E-,/X-,/D- och/U-pekarövergångar, fångstavbrytning, grafemsäker redigering, radmedveten caretförflyttning, standardval och historikgenvägar, knappaktivering och valhjulsnavigering
Åtgärdat
- Backstegs- och Delete-historiken återställer nu den användarsynliga caret-positionen före tangenttryckningen i stället för det tillfälliga grafemurval som används internt för atomär ersättning
Version 3.507.0
Tillagt
TPDFlibFormSessiontillhandahåller nu avgränsad ångra och gör om på fältnivå med tillgänglighetsfrågor, bevarade stegräknare, konfigurerbar kapacitet och uttrycklig historikrensning
Ändrat
- Formulärredigeringshistoriken lagrar kompakta textdeltan, återställer värden och riktade urval utan att skicka om åtgärder eller återanrop, förkastar gör-om-grenar efter nya redigeringar och rensas vid redigeringens livscykelgränser
Version 3.506.0
Tillagt
TPDFlibFormSessiontillhandahåller nu urvalsbyte, klipp och anropardefinierade inklistringsåtgärder som värden kan blockera, med föränderliga textredigeringsåteranrop från värden och grafemsäker tillämpning av/MaxLen
Ändrat
- Formulärsessionens genomföranden kör nu tillgängliga validerings- och formateringsåtgärder innan fältet ändras, behåller avvisade redigeringar atomärt och håller det validerade råvärdet åtskilt från den formaterade Widget-utformningen
Version 3.505.0
Tillagt
- Lade till riktade urvalsintervall för formulärfältstext i UTF-16-kodenheter, Unicode-kodpunkter och utökade grafemkluster, med rapportering av ankare och caret samt cachad gränsomvandling
Version 3.504.0
Tillagt
- Lade till överflödesmedveten dynamisk komponentplacering med policyer för avvisning, urklippning och proportionell nedskalning, oberoende justering samt rapportering av slutlig sida, geometri och transformering
Version 3.503.0
Tillagt
TPDFlibDynamicComponentSessionsätter samman ett tillståndsbärande sidfragment åt gången fördröjt, med sidkontext, rapportering av använd storlek, slutförandestatus samt återställnings- och genomförda-tillståndssnapshotsReleaseCapturedPageogiltigförklarar ett Form XObject-fångsthandtag efter dess slutliga placering medan sidans resursreferenser och befintliga anrop bevaras
Ändrat
- Dynamiska komponentförsök ritar nu på klonat tillstånd inuti ett isolerat Form XObject och genomförs först efter validerad placering; avvisade återanrop, ogiltig geometri och undantag återställer den valda sidan och lämnar målinnehåll och komponenttillstånd oförändrade
Version 3.502.0
Tillagt
TPDFlibFormSessiontillhandahåller nu roterade visuella CropBox-Widget-rektanglar, träfftestning av översta elementet, punktbaserat fokus samt tangentbordsfokusnavigering framåt eller bakåt
Ändrat
- Tabbsekvenser tillämpar sidans
/Tabs-ordning för rad, kolumn, struktur, anteckningsarray och PDF 2.0 Widget med ViewerPreferences-riktning, stabil ordning över sidor och avgränsad genomgång av strukturträdet SetTabOrderModevaliderar nu alla fem standardlägen och väljer PDF 2.0 automatiskt förAochW
Version 3.501.0
Tillagt
ApplyRepeatedPageFragmentplacerar ett fångat Form XObject över ett sidintervall som typade Pagination-, Layout-, Page- eller PDF 2.0 Background-artefakter medan innehållsströmmen och resurserna delas mellan varje placering
Åtgärdat
- Artefakternas egenskapsordlistor använder nu den krävda
BDC-operatorn för markerat innehåll i publika och tabellayoutvägar, och PDF 2.0-artefakttyper och subtyper väljer den krävda versionen av utdatafunktionen
Version 3.500.0
Tillagt
SetTextFlowPaginationLinesstyr oberoende de minsta föräldralösa rader som behålls längst ner i en textruta och de änkerader som bevaras till nästa ruta eller kolumn
Ändrat
- Textflödets paginering flyttar nu endast de nödvändiga avslutande raderna framåt med avgränsad förhandsblick, medan en omöjlig delning lämnar flödet oförändrat för placering i en större region
Version 3.499.0
Tillagt
TPDFlibFormSessiontillhandahåller plattformsoberoende AcroForm-fokus, text- och valredigering, nollbaserat UTF-16-urval samt genomförande- och avbrytningstillstånd med typade återanrop från värden för Widget-fokus- och blur-åtgärder
Ändrat
- Genomförda sessionsvärden tvingar nu fram textgränser och regenererar endast det påverkade ändrade utseendet och beräkningsstängningen innan värdeändringen rapporteras
Version 3.498.0
Tillagt
GetDirtyFormAppearanceCountochRegenerateDirtyFormAppearancesspårar ändrade AcroForm Widget-objektreferenser och regenererar endast den deduplicerade aktuella sessionsberäkningsstängningen
Ändrat
RegenerateFormAppearancesgår nu igenom hierarkiska fält en gång från deras rötter, rapporterar det faktiska antalet lyckade Widget-regenereringar och behåller misslyckade utseenden för nytt försökUpdateAppearanceStreamrapporterar nu genereringsfel korrekt och behåller misslyckade Widgets väntande medNeedAppearancesaktiverat
Version 3.497.0
Tillagt
SetOutputIntentMixingHintsskriver PDF 2.0-bläckfastheter och fysisk tryckordning samtidigt som ogiltiga värden, dubblettnamn, saknad ordning och färgämnen som redan representeras av spektraldata avvisasSetOutputIntentSpectralDatabäddar in avgränsade strömmar för spotfärgkarakterisering CxF/X-4, återanvänder identisk data över upprepade och korsfärgämnestilldelningar och kräver exakt en matchandeSpotInkCharacterisation;ClearOutputIntentColorantDatatar bort båda färgämnesmetadataordlistorna
Ändrat
GetEffectivePageOutputIntentJSONrapporterar nu blandningsfastheter, tryckordning, spektrala färgämnen och avkodad spektral giltighet för skapade och omolästa dokument- PDF/X-förkontrollen granskar nu OutputIntent
MixingHintsochSpectralData, inklusive förbjudnaDotGain, fasthetsintervall, tryckordningstyper, färgämneskonflikter, strömavkodning och unika CxF-matchningar av spotbläck
Version 3.496.0
Tillagt
DAOpenFileWithEncryptionKeyochDAOpenFromStreamWithEncryptionKeyöppnar krypterade dokument från en auktoriserad hexadecimal filkrypteringsnyckel utan lösenordsderivering, med matchande DLL-filexporter och uttrycklig valideringsstatus
Säkerhet
- Filverinput med rå nyckel är alltid skrivskyddad i källan, tvingar fram exakta revisionsspecifika nyckellängder och tillgängliga
/U- eller/Perms-verifierare, avvisar felmatchningar även när återställning med saknad verifierare är aktiverad och rensar kvarhållet nyckelmaterial när handtaget stängs
Version 3.495.0
Tillagt
SetXRefLoadPolicyochGetXRefLoadPolicyväljer och rapporterar strikt, kompatibel eller återställningsinläsning för valt dokument och Direct Access-inmatning
Ändrat
- Strikt inläsning kräver nu exakta rubriker, slutmarkörer, deklarerade förskjutningar, tabellposter med fast bredd, metadata för korsreferensströmmar och varje länkad
/Prev- eller/XRefStm-sektion - Kompatibel inläsning behåller kontrollerade förskjutnings- och strukturreparationer utan att gå in i rå rekonstruktion, medan återställningsinläsning kan bygga om objekt på toppnivå och komprimerade objekt samt syntetisera en saknad trailer
- Korsreferensdiagnostiken rapporterar nu vald policy, ordnade parserbeslut och kompatibilitetsflaggor per sektion, inklusive avvisade hybridsidokedjor och Direct Access-återställningsbevis
Version 3.494.0
Ändrat
- Fullständiga okrypterade deterministiska sparningar utan explicit frö härleder nu båda initiala trailer-
/ID-posterna från de första 16 bytena av ett strömmande SHA-256-sammandrag över dokumentets serialiserade rubrik och brödtext - Innehållssammandraget utesluter tidigare trailer-identifierare, korsreferensdata och förskjutningsberoende trailers, samtidigt som genererade resursidentifierare och XMP-instans-UUID normaliseras så att sid-, resurs-, bilage- och metadataändringar styr resultatet
- Interna resursnamn och typsnittsundermängdstaggar är stabila medan deterministiskt läge är aktiverat, inklusive utdata som packar ordlistor i komprimerade objektströmmar; standardsparningar behåller slumpmässiga identifierare
Version 3.493.0
Tillagt
LoadFromMappedFileochDAOpenMappedFileöppnar lokala PDF-filer genom avgränsade skrivskyddade mappade vyer, med ett alternativ att kräva mappning eller tillåta en portabel filströmsreservGetMappedFileInfoochDAGetMappedFileInforapporterar aktivt mappningstillstånd, fil- och fönsterstorlekar, aktuell vy, läsvolym och omallokeringsaktivitet
Ändrat
- Mappade källor behåller ett allokeringsanpassat fönster och mappar om det över stora uppskjutna objekt- eller strömläsningar, vilket avgränsar adressutrymmesanvändningen oberoende av filstorlek
- Lokala mappade och återanropsbaserade källor delar nu marköroberoende absoluta objektutdragsläsningar, medan befintliga filinläsnings-API:er behåller sitt tidigare beteende
Version 3.492.0
Tillagt
GetPageThumbnailDataToStreamochGetPageThumbnailDataToStringexponerar kodade eller filteravkodade nyttolaster för sidminiatyrbilder, medanDeletePageThumbnailtar bort sidans metadata utan att ändra den valda sidan
Ändrat
- Frågor om miniatyrbildernas närvaro och metadata kräver nu en bildström; felformade icke-strömposter kan fortfarande tas bort i stället för att rapporteras som användbara miniatyrbilder
- Rå utdata kopieras i avgränsade bitar och avkodad utdata återanvänder den strömmande filterpipelinen, vilket bevarar slutliga bildkodningar som DCT och JPX för anropare som behöver inbyggda nyttolaster
Version 3.491.0
Tillagt
InsertPageElementClipPath,ReplacePageElementClipPathochDeletePageElementClipPathlägger till lokal urklippning till ett exakt sidelement eller redigerar en fångad källkomponent med fillreglerna non-zero och even-odd
Ändrat
- Urklippskomponenter behåller nu sin källager, instruktionsintervall, nästlingsdjup och normaliserade fingeravtryck så att redigerbara källor skiljs från initiala gränser, textkonturer, nästlade formulär, felformade sökvägar och sökvägsobjekt över lager
- Lokal urklippning använder balanserade grafiktillståndsomfång, inklusive giltig rekonstruktion av textobjekt, medan borttagning av en urklippning från en sökväg som också ritar bevarar ursprunglig streckning eller fyllnad
Version 3.490.0
Tillagt
SetPageElementMarkedContentTextProperty,SetPageElementMarkedContentPropertySourceochDeletePageElementMarkedContentPropertyredigerar Unicode-text, serialiserade PDF-objekt och befintliga egenskaper på en exakt uppräknad ram av markerat innehåll
Ändrat
- Namngivna egenskapsresurser redigeras genom sidlokal copy-on-write, inline-egenskapslistor uppgraderas automatiskt när ett indirekt värde kräver en resurs, och borttagning av den sista egenskapen komprimerar
BDCtillBMC - Redigeringar av markerat innehåll validerar den fångade källinstruktionen och den lösta egenskapssnapshoten innan skrivning, och ogiltigförklarar därefter alla sidelementhandtag efter en lyckad ändring
Version 3.489.0
Tillagt
GetTextBlockCharContentLocationochDAGetTextBlockCharContentLocationmappar varje extraherad UTF-16-position till dess innehållslager, ström, instruktion, operand,TJ-arrayelement och kodade käll-byte-intervallReplaceTextBlockCharSourceBytesutför fingeravtrycksskyddad lokal ersättning av mappade typsnittskodade byte samtidigt som intilliggande strängar och kerningvärden bevaras
Ändrat
- Genererade,
/ActualText-, nästlade Form-, transkodade och lageröverskridande platser klassificeras uttryckligen som skrivskyddade, medan ligaturutvidgningar behåller sitt delade källglyfintervall - Uppslag av innehållsspan använder binärsökning och extraherade listor behåller två oberoende lagerfingeravtryck för att avvisa inaktuella redigeringar innan sidinnehåll tolkas eller skrivs om
Version 3.488.0
Tillagt
ImportPageAsFormXObjectimporterar en sida från vilket öppet dokument som helst som ett återanvändbart fångat sidhandtag utan att ändra något av sidträden
Ändrat
- Import av sida till Form kopierar endast avkodat sidinnehåll, den oberoende ärvda resursslutenheten samt Form-kompatibla grupp-, metadata- och delinformationsposter, exklusive anteckningar, miniatyrbilder och sidospecifik struktur
- Valda sidrutor använder standardreservregler, ärvd kvadrantrotation normaliseras in i Form-matrisen och upprepade placeringar delar en enda komprimerad innehållsström
Version 3.487.0
Tillagt
- Sidelementhandtag exponerar nu sin aktiva stack av markerat innehåll från ytter till inner, taggar, validerade
/MCID-värden, ursprungliga egenskapsoperander och varje post från lösta direkta eller resursbaserade ordlistor
Ändrat
- Spårning av innehållstillstånd löser namngivna
/Properties-resurser en gång per resursomfång och behåller oföränderliga ramar av markerat innehåll utan att tolka om sidinnehåll för upprepade frågor - Nästling av markerat innehåll spåras oberoende av
q/Qoch avgränsas till varje sid- eller Form-innehållsström så att felformade ostängda sekvenser inte kan läcka in i en annan ström
Version 3.486.0
Tillagt
- Sidelementhandtag exponerar nu varje komponent i deras effektiva urklippningsskärning, inklusive transformerade flytta-, linje-, kubiska och stäng-kommandon, fillreglerna non-zero eller even-odd, komponentgränser och diagnostik för kombinerad region
Ändrat
- Spårning av innehållstillstånd behåller oföränderliga urklippskedjor över sidgränser,
q/Q-återställning och Form-gränser medan oförändrade komponenter delas mellan snapshots - Uppräkning av sidelement samlar in sökvägsmutationsmål och grafiktillstånd i samma innehållspass, vilket undviker den tidigare extra analysen av sökvägsintervallet
Version 3.485.0
Tillagt
GetTextBlockCharUnicodeFlagsochDAGetTextBlockCharUnicodeFlagsexponerar per-tecken-diagnostik för Unicode-mappning, reservlösning, saknad mappning, omappad kod, ogiltig mappning och ersättning
Ändrat
- Textextraktion behåller Unicode-mappningens ursprung bredvid varje UTF-16-kodenhet och validerar surrogatpar innan
ToUnicode-utdata accepteras - Ogiltiga eller partiella mappningar använder nu en oberoende reservlösning för typsnittskodning och avger U+FFFD när ingen meningsfull reservlösning finns
Åtgärdat
- Identitets-Unicode-mappningar returnerar nu en mappad kodenhet i stället för att behandla källkodsvärdet som ett utdataantal
Version 3.484.0
Tillagt
- Textblock i valt dokument och Direct Access exponerar nu per-tecken baslinjevinklar, ursprung, cellmatriser, nedstigningsjusterade fyrtal och axelriktade rutor
GetTextBlockCharBoxlägger till en motsvarighet för valt dokument till den befintliga Direct Access-rutfrågan
Ändrat
- Textextraktion behåller baslinje-, framåt- och cellhöjdsvektorer en gång per tecken så att geometrifrågor bevarar rotation, förskjutning och omvända baslinjer i konstant tid
DAGetTextBlockCharBoxhärleder nu sitt resultat direkt från bevarad teckengeometri i stället för att gå igenom varje föregående bredd
Åtgärdat
- Teckenbredder i valt dokument och textblockdumpar tillämpar nu den konfigurerade koordinatskalan exakt en gång
Version 3.483.0
Tillagt
GetTextBlockCharSourceFlagsochDAGetTextBlockCharSourceFlagsexponerar bitvis ursprung för genererade tecken, bindestreck och beaktade/ActualText-ersättningar
Ändrat
- Extraktion av textblock behåller nu teckenkällflaggor bredvid de befintliga text- och framåtarrayerna, inklusive blanksteg som härletts från stora teckengap, utan att tolka om sidinnehåll för upprepade frågor
Version 3.482.0
Tillagt
GetXRefDiagnosticsochDAGetXRefDiagnosticsreturnerar JSON-rapporter för effektiva korsreferenstyper, bytepositioner, trailergränser, postantal och varje tabell eller ström i revisionskedjan
Ändrat
- Hybridreferenslänkar, försök med förskjuten rubrik och återställningsbeslut för redigerbara dokument förblir nu synliga som distinkt diagnostisk bevisning, inklusive råa objektskanningar, återställning av komprimerade objekt och syntetiserade trailers
Version 3.481.0
Tillagt
- Dokument med byte-intervall baserade på återanrop och Direct Access kan köa bakgrundsförhämtningar av sid-, formulär- eller objektberoenden med fyra schemaläggningsprioriteter, avbrytning, väntan och JSON-förloppsdiagnostik
- Beroendeförhämtning itererar upptäckt av saknade intervall tills målet är klart, med konfigurerbara gränser för källbyte, förhandläsning och planeringspass
Ändrat
- Varje byte-intervallström äger nu en prioritetsordnad FIFO-arbetare som delar den avgränsade intervallcachen samtidigt som isolerat parsartillstånd används, vilket gör att dokumentarbete i förgrunden kan fortsätta utan att dela en föränderlig läsare
- Köad avbrytning utför inga källorläsningar, pågående avbrytning kontrolleras före varje bit och strömdestruktion dränerar utestående arbete innan dess källa frigörs
Version 3.480.0
Tillagt
LoadFromRangeSourceaccepterar en valfri icke-hämtande tillgänglighetåteranrop för progressiva lagringar, med frågor för valt dokument och Direct Access om beredskap för sidor, formulär och indirekta objekt- Tillgänglighetsrapporter returnerar sammanslagna krävda och saknade byte-intervall, beroendefullständighet och objektgenomgångsräknare som JSON
Ändrat
- Byte-intervallströmmar kan testa cachad och källor tillgänglig täckning utan att läsa byte, flytta strömmarkören eller ändra cache-statistik
- Sidtillgänglighet följer endast målsidsträdssökvägen och nåbara bearbetningsberoenden, medan otillgängliga intervall rapporteras utan att läsåterropet anropas
Version 3.479.0
Tillagt
TByteRangeStream.ReadAttillhandahåller marköroberoende absoluta läsningar med same-chunk single-flight-delning, avgränsad sammanslagning av angränsande begäranden och ett konfigurerbart insamlingsfönster- Diagnostik för intervallcachen rapporterar nu väntande begäranden, det aktiva insamlingsfönstret, begäranden som betjänats genom sammanfogning och fysiska läsningar som täckte flera bitar
Ändrat
- Uppskjutna läsningar från återanropade och URL-baserade dokument använder nu absoluta förskjutningar, serialiserar källåteranrop och kombinerar samtidiga angränsande bitar till källorläsningar begränsade till 16 MiB
- Rensning av en intervallcache under en pågående hämtning förhindrar nu att den inaktuella fullbordan återbefolkar cachen eller räknare efter rensning, medan befintliga väntande fortfarande får sina byte
Version 3.478.0
Tillagt
- Byte-intervallströmmar behåller nu justerade bitar under en uttrycklig budget för minst nyligen använda byte och rapporterar antal fönster, behållna byte, träffar, missar, avlägsnanden, källorläsningar, källbyte och upprepade läsningar
LoadFromRangeSourceoch DelphiDAOpenFromURLaccepterar en initial cache-budget, med nya API:er för valt dokument och Direct Access för att inspektera, ändra storlek på och rensa den aktiva cachen
Ändrat
- Lineariserad uppvärmning av första sidan håller sig nu inom den konfigurerade budgeten för behållna byte
Version 3.477.0
Tillagt
LoadFromRangeSourceläser in ett fullständigt redigerbart dokument via ett anroparlevererat återanrop för slumpmässigt byte-intervall, vilket låter HTTP-, databas-, objektlager- och anpassade indata förbli på avstånd medan parsern hämtar endast de intervall som behövs för inläsning och uppskjutna åtgärder- Det nya
TPDFlibRangeReadEvent-avtalet tar emot absoluta förskjutningar, målbuffertar och avgränsade antal, medan återanropsleverantören förblir anroparägd under det inlästa dokumentets livstid
Version 3.476.0
Tillagt
- Lade till PDF/VT-3-skapande över PDF/X-6-, PDF/X-6p- och PDF/X-6n-grunder med synkroniserad identifieringsmetadata, obligatorisk täckning av dokumentdelar och dedikerad förkontroll
Ändrat
- Hierarkier av dokumentdelar avger och validerar nu standardiserade underordnade block på 8192 poster tillsammans med striktare begränsningar för XML-namn och typer
Version 3.475.0
Ändrat
TPDFlibContentGraphicsState.BlackPointCompensationrapporterar nu det effektiva tillståndetDefault,ONellerOFFöver sidinnehåll, återställning av grafiktillstånd och rekursivt uppräknade Form XObjects- PDF/X-6-förkontrollen avvisar nu
UseBlackPtComp-poster vars typ eller värde ligger utanför PDF 2.0:s modell för svartpunktskompensering
Version 3.474.0
Ändrat
- PDF/X-6-förkontrollen validerar nu utskrivbara anteckningsflaggor, deterministiska normalutseenden, knapputseendestillstånd, AcroForm- och signaturfält, uteslutningar av visningsgenererade utseenden samt säkra placeringar och kedjor av åtgärder
- PDF/X-6-skapande tillåter JavaScript endast på direkt aktiverade Link-anteckningar, begränsar namngivna åtgärder till sidnavigering och avvisar osäkra åtgärdsvägar på dokumentnivå, sidnivå och formulärfältnivå innan de ändrar dokumentet
Version 3.473.0
Tillagt
SetPDFXModeaccepterar nu läge 5 för PDF/X-6p procesfärgutbyte och läge 6 för PDF/X-6n n-färgämnesutbyte, båda med PDF 2.0 och externa utdataprofilreferenser- Nya API:er
SetOutputIntentProfileReferenceochAddOutputIntentProfileReferenceURLskapar ordlistor/DestOutputProfileRefpå dokument- eller sidnivå, härleder ICC-kontrollsumman, versionen och färgrymdssignaturen, validerar metadata för utdataenheter och färgämnen samt bevarar en eller flera hämtningsplatser enligt RFC 3986 utan att bädda in profilbytena
Ändrat
- PDF/X-förkontrollen känner igen XMP-identifierarna för PDF/X-6p och PDF/X-6n och validerar extern profiltyp, metadatalängder, signaturer för procesfärg eller n-färgämnen, färgämnestabeller samt URL-filspecifikationer
GetEffectivePageOutputIntentJSONrapporterar nu metadata för refererad profil inklusiveprofileCS,profileName,iccVersion,checkSum,profileURLsochcolorantsefter skapande eller tur-och-retur-inläsning
Version 3.472.0
Tillagt
- Nya API:er
SetPageOutputIntent,ClearPageOutputIntentsochGetEffectivePageOutputIntentJSONskapar, tar bort och inspekterar utdataintents på sidnivå i PDF 2.0, inklusive den effektiva reserven på dokumentnivå
Ändrat
- PDF/X-6-förkontrollen accepterar nu utdataintents på sidnivå, ger dem företräde framför dokumentintentet och verifierar att varje sida löser sig till en inbäddad Gray-, RGB- eller CMYK-profil
Version 3.471.0
Tillagt
SetPDFXMode(4)skapar PDF/X-6-dokument för fullständigt utbyte med PDF 2.0-syntax, PDF/X-6 XMP-identifiering och ett inbäddat utdataintent med färghantering
Ändrat
- PDF/X-förkontrollen känner igen PDF/X-6, kräver PDF 2.0-syntax och verifierar att utdataintentet bär en inbäddad deklaration av ICC-profil Gray, RGB eller CMYK
Version 3.470.0
Tillagt
- HTML-layouten stöder Flexbox-riktning, omflöde, grow, shrink, basis, mellanrum samt justering längs huvudaxel och tväraxel
- HTML-layouten stöder explicita CSS Grid-spår, fraktionell storleksättning, upprepade spår, span, automatisk placering per rad eller kolumn, mellanrum och objektjustering
- HTML-textflöden stöder numrerade fotnoter som reserverar ramens nederdel, flödar om brödtexten och bevarar numreringen genom sidfortsättningar
Ändrat
- HTML-mätning och cachad uppspelning omfattar Flexbox-, Grid- och fotnotgeometri samtidigt som begränsade tak för containrar och spår behålls
Åtgärdat
- Massvis rensning av PDF-ordlistor och byte av nyckelnamn ogiltigförklarar cachade nyckelindex, vilket förhindrar inaktuella uppslag vid minneskompaktering och upprepad dokumentbearbetning
Version 3.469.1
Åtgärdat
- EMF-import och Canvas-DC-konvertering bevarar nu Unicode-text och glyfmappningar för inbäddade och icke inbäddade TrueType-typsnitt
NewPageFromCanvasDClägger till varje begärd sida, medanTPDFlibPrintersparar varje canvas exakt en gång utan att sidor försvinner eller dupliceras
Version 3.469.0
Tillagt
SetImageSoftMaskExfäster mjukmasker i gråskala med valfria mattfärgerNewSoftMaskGraphicsStateskapar återanvändbara grafiktillstånd för alfa, luminans, överföringsfunktion och återställning utifrån fångade Form-XObjectFlattenTransparencyersätter valda sidor med opakt statiskt innehåll vid valfri upplösning och bakgrundsfärg, för äldre PDF-versioner och arkivarbetsflöden
Ändrat
- Plattning av transparens bearbetar en sida i taget, normaliserar visuell rotation, bevarar valfritt interaktiva anteckningar, stöder förlopp och avbrytning och tar som standard bort transparensresurser som inte längre kan nås
Version 3.468.0
Tillagt
- Bildindata i formaten AVIF, HEIF, HEIC och JPEG XL kan importeras via de befintliga bild-API:erna eller de dedikerade metoderna
AddModernImageFromFile,AddModernImageFromStreamochAddModernImageFromString SetModernImageCodecLibrary,ModernImageCodecAvailableoch en avkodningscallback erbjuder driftsättbart val av kodek inne i processen, utan tillfälliga konverteringsfiler
Ändrat
- Avkodning av moderna bildformat bevarar källans orientering, alfa, ICC-profiler och kanaldjup upp till 16 bitar innan den nativa PNG-bildpipelinen återanvänds
Åtgärdat
- Validering av nyckelanvändning enligt signaturers seed-värden läser nu den nativa certifikatkontexten med korrekt pekarjustering på Win64
Version 3.467.0
Tillagt
DeduplicateSimilarImagesslår ihop perceptuellt likartade bild-XObject med konfigurerbara trösklar för differenshash, medelkanalfel och maximalt kanalfel, stöd för torrkörning och valfri insamling av överblivna objektGetSimilarImageDeduplicationReportJSONochTPDFlibImageSimilarityDedupStatsrapporterar avkodningstäckning, indexerat kandidatarbete, godkända fel, omdirigerade referenser och uppskattad besparing på den kodade datamängden
Ändrat
- Ungefärlig bildmatchning kräver identiska semantiska bildordlistor, bekräftar avkodade 64 × 64 färgsamplingar och använder ett hashindex med åtta band för att slippa uttömmande jämförelser parvis
Version 3.466.0
Tillagt
EncodeImageToJPXStreamochEncodeImageToJPXFilekodar bitmapsindata som konfigurerbar JPEG 2000 med förluster eller som reversibel JPEG 2000 utan förluster, i en standardbehållare av typen JP2AddImageJPXFromFile,AddImageJPXFromStreamochAddImageJPXFromStringlägger till kodad bitmapsindata direkt somJPXDecode-bild-XObject
Ändrat
- Skapande av JPEG 2000-bilder validerar kvalitets- och förlustfria alternativ, återställer indataströmmens positioner som ägs av anroparen, tar bort partiell utdata vid fel, kräver automatiskt PDF 1.5 och behåller den befintliga PDF/A-1-kompatibilitetskontrollen
Version 3.465.0
Tillagt
RenderPageTileToStreamochRenderPageTileToFilerenderar godtyckliga områden i enhetspixlar med klippt överlappning samt vit, transparent nyckelfärg eller egna bakgrunderRenderPageTilesToFiles,RenderPageTiledToStreamochRenderPageTiledToFileproducerar parallella tile-rutnät eller sammanfogar deras exakta kärngränser till en sömlös sidbildSetRenderSurfaceCacheLimit,GetRenderSurfaceCacheInfoochClearRenderSurfaceCachetillhandahåller en trådsäker LRU-cache som aktiveras på begäran, med separata budgetar för poster och byte för fullt sammansatta tile-ytor
Ändrat
- Parallell återgivning av enskilda sidor förvärmer nu en gemensam visningslista innan arbetsuppgifterna delas ut, så att innehållsströmmarna tolkas en enda gång, medan kompilatorer utan stöd behåller en deterministisk seriell väg
Version 3.464.0
Tillagt
GetXFARenderedPageCountoch familjenRenderXFAPageToStream,RenderXFAPageToStringochRenderXFAPageToFileskapar statiska rastersidor från XFA-mallar, bundna datamängder och explicita sidbrytningar utan att ändra källdokumentetConvertXFAToAcroFormomvandlar stödda kontroller för text, lösenord, val, kryssrutor, tryckknappar och signaturer till redigerbara fält och bevarar namn, värden, alternativ, flaggor, sidor och rektanglar
Ändrat
- Stor engångskomprimering med Flate förser nu den nativa backenden med ett skyddat slut på indata, vilket förhindrar ogiltiga Adler-kontrollsummor i PNG-utdata med hög upplösning samtidigt som komprimerad utdata behålls
Version 3.463.0
Tillagt
RenderPageLayerToStream,RenderPageLayerToStringochRenderPageLayerToFileexporterar sidans grundinnehåll, anteckningar, formulärfält eller alla interaktiva objekt som PNG-lager som kan komponeras oberoende av varandraFlattenFormFieldTaggedochFlattenFormFieldsTaggedOnPageRangebränner in fältenas utseenden i statiskt sidinnehåll samtidigt som tillgängligForm-struktursemantik behålls eller skapas
Ändrat
- Återgivning enbart av interaktivt innehåll hoppar över tolkaren för grundinnehållet, använder ett enda utseendepass för anteckningar och skriver en transparent bakgrund utan att ändra renderarens beständiga inställningar
- Taggad plattning omvandlar en Widget-specifik ParentTree-
OBJR-association till markerat sidinnehåll av typenMCR, bevarar befintlig alternativtext och faktisk text och lämnar fälten orörda när en säker association inte kan bevisas
Version 3.462.0
Tillagt
HitTestAnnotationochGetAnnotationHitsJSONhittar den översta eller alla anteckningar i en sidpunkt med geometri som beaktar undertyp, tolerans, synlighet och alternativ för begränsningsrutaMoveAnnotationZOrderordnar om befintliga anteckningsreferenser på plats, ochSimplifyInkAnnotationsreducerar punkterna i bläckstreck med begränsad geometrisk avvikelse och detaljerad statistik
Ändrat
- Interaktion med anteckningar testar nu markeringsfyrhörningar, vektorbanor, ellipsgeometri och fyllda områden efter ett snabbt rektangelurval, medan ändrade bläckutseenden byggs om automatiskt om inte ombyggnaden uttryckligen skjuts upp
Version 3.461.0
Tillagt
RepairAnnotationAppearancesbygger om saknade, inaktuella, ogiltiga, tillståndsfelaktiga eller osynliga normala utseenden på alla sidor och returnerar statistik över problem och anteckningskategorierGetAnnotationAppearanceAuditJSONrapporterar utseendeproblem per anteckning och sammanlagda antal utan att ändra dokumentet
Ändrat
- Generering av utseenden för markeringar, former, banor, fritext och ikoner delar nu en dokumentsökare i ett enda pass, inkrementella utbytggare och kompakta källfingeravtryck för deterministisk upptäckt av inaktuella utseenden
Version 3.460.0
Tillagt
ExecuteFormFieldScriptkör en avgränsad lokal delmängd av formulärets validerings-, beräknings- och formateringsåtgärder utan att exponera fil-, nätverks-, process-, gränssnitts- eller funktioner för dynamisk kodRecalculateFormFieldsutför fullständig eller inkrementell beräkning avgränsad till beroenden, ochGetFormCalculationGraphJSONrapporterar fältberoenden, positioner i beräkningsordningen och cykler
Ändrat
- Formuläromberäkning utvärderas i en privat ögonblicksbild av värden, ordnar färdiga fält efter AcroForms beräkningsordning, avvisar beroendecykler innan något ändras och sparar värdena först när den valda grafen har slutförts
Version 3.459.0
Tillagt
MergeDocumentExlägger till uttryckliga policyer för duplicerade formulärfält: avvisa sammanslagningen, bevara ett delat namn med synkroniserade värden eller tilldela deterministiska numeriska ändelser
Ändrat
- Avvisning av duplicerade fält kontrolleras innan objektnummer, sidträd eller formulärrmat ändras, så att mål- och källdokumenten förblir återanvändbara efter en avvisad sammanslagning
Version 3.458.0
Tillagt
DrawOpenTypeText,GetOpenTypeTextWidthochGetOpenTypeGlyphRunformar, mäter, ritar och granskar text direkt från ett befintligt TrueType- eller OpenType-typsnittshandtag utan att kräva ett installerat typsnittsnamn- Bärbara nativa moduler för OpenType-formgivning och delmängdsskapande ingår för 32-bitars och 64-bitars Windows, med byggbara källkoder för Linux och macOS samt en åsidosättning via miljövariabler för anpassade driftsättningssökvägar
Ändrat
- Ritning av komplexa skript föredrar nu GSUB- och GPOS-formgivning direkt från typsnittets byte, inklusive substitutioner, kerning samt kursiv- och markörfogning, medan en avgränsad Pascal-fallback täcker arabisk sammanbindning och vanliga uppslagsformat för OpenType-layout när den nativa modulen saknas
- Delmängder av formgivna typsnitt behåller nu glyf-ID:n och omfattar beroenden på layout, variabla typsnitt och färgetypsnitt, inklusive COLR/CPAL- och fvar/gvar/HVAR-data
Version 3.457.0
Tillagt
CreateOpenTypeFontVariationskapar återanvändbara statiska CFF-typsnitt från begärda axelkoordinater för CFF2-variabeltypsnitt
Ändrat
- Import av OpenType CFF2 väljer nu en statisk standardinstans för omedelbar ritning och inbäddning samtidigt som det variabla programmet behålls för senare instansiering
- CFF2-instansiering utvärderar variationslager,
vsindexochblendöver expanderade lokala och globala subrutiner, tillämpar horisontella och globala metricvariationer och genererar ett avgränsat CFF1-OpenType-typsnitt med korrekt kontrollsumma för befintliga inbäddnings- och delmängdsvägar för CFF
Version 3.456.0
Tillagt
- WOFF2-indata har lagts till för filingångspunkterna för TrueType, OpenType och typsnittssamlingar på Windows 10 version 1703 eller senare, inklusive transformerade TrueType-konturer och mått, CFF-typsnitt och varianter i samlingar
Ändrat
- Webbtypsnittsbehållare packas upp en gång i minnet, använder den bästa tillgängliga Unicode-cmap för teckenmappning och bäddar in eller exporterar den resulterande sfnt i stället för den komprimerade behållaren
Version 3.455.0
Tillagt
GetFontVariationAxesexponerar varje axel i ett variabelt TrueType-typsnitt med dess lokaliserade namn, designintervall, standardvärde och dolta tillstånd, medanCreateTrueTypeFontVariationskapar ett återanvändbart statiskt typsnitt från begärda axelkoordinater
Ändrat
- Instansiering av variabla TrueType-typsnitt tillämpar
avar-,gvar-,HVAR- ochMVAR-data, plattar ut sammansatta konturer, bygger om horisontella och globala mått, tar bort inaktuella variations- och hintningstabeller och genererar en sfnt med korrekt kontrollsumma för ritning, inbäddning, delmängder och glyfgranskning SaveFontToFilekan exportera behållna TrueType-program i minnet direkt, inklusive nyligen skapade instanser av variabla typsnitt innan en PDF har sparats
Version 3.454.0
Tillagt
GetFontColorGlyphochGetFontColorGlyphByIndexexponerar målningsgrafer för COLR v0 och v1, CPAL-paletter, SVG-in-OT-dokument och inbäddade bitmap-uppsättningar för direkt granskning och rendering i programmet
Ändrat
- Granskning av färgetypsnittstabeller använder lat och avgränsad sfnt-åtkomst och ingår i typsnittscachens gemensamma bytebudget, vilket undviker ivrig konturtolkning för stora färgetypsnitt
Version 3.453.0
Tillagt
SetFontCacheLimit,GetFontCacheInfoochClearFontCachetillhandahåller en gemensam bytebudget, utsortering av minst nyligen använda poster samt träff-, miss- och beläggningstatistik för behållna typsnittsresurser, formgivna textsekvenser och tolkade konturprogramGetFontGlyphIndexmappar fullständiga Unicode-kodpunkter genom TrueType-cmap-tabeller i format 4 och format 12, medanGetFontGlyphOutlinereturnerar enkla och transformerade sammansatta banor med råa mått för advance, vänster sidobäring, begränsningsruta och enheter per em
Ändrat
- Upprepade mätningar av formgiven text och ritanrop återanvänder djupkopierade formgivna sekvenser inom den gemensamma cachebudgeten, och upprepad glyfgranskning återanvänder det tolkade typsnittsprogrammet i stället för att tolka om det för varje glyf
- Binära typsnittsprogram som läses in från strängar och WOFF-behållare behåller en egen ström med råa byte, vilket förhindder omkodning av text och utgångna strömreferenser vid uppskjuten tabellåtkomst
Version 3.452.0
Tillagt
soCanonicalEquivalentlåter textsökning, batchsökning och ersättningsarbetsflöden matcha kanoniskt ekvivalent text i NFC och NFD samtidigt som positioner och längder rapporteras i den ursprungliga extraherade textensoGraphemeClustersbegränsar träffar till gränser för utökade grafemkluster och låter jokertecknet?konsumera ett helt kluster, vilket skyddar surrogatpar, kombinerande sekvenser, emoji-ZWJ-sekvenser, flaggor och indiska konjunktioner
Ändrat
- Unicode-normalisering och grafemsegmentering använder kompakta genererade Unicode 15.1-tabeller på alla plattformar som stöds, utan att förlita sig på operativsystemets texttjänst
Version 3.451.0
Tillagt
ExternalizeInlineImagesersätter upprepade stödda inline-bilder över ett valt sidintervall med ett gemensamt Image-XObject när den uppskattade serialiserade storleken minskar
Ändrat
- Externalisering av inline-bilder bevarar bildmasker, interpolation, avkodningsfält, filter och avkodningsparametrar, och Flate-komprimerar ofiltrerade datamängder när resultatet blir mindre
- Exakt SHA-256-gruppering, deterministiska resursnamn, eliminering av dubblerade sidor, förloppsrapportering och kooperativ avbrytning håller optimeringsresultaten avgränsade och repeterbara
- Okända poster i inline-ordlistor och färgrymder som inte är av Device-typ förblir byte-identiska i stället för att skrivas om utan fullständig semantik
Version 3.450.0
Tillagt
NormalizeContentStreamsnormaliserar blanktecken och numeriska token över ett valt sidintervall samtidigt som operatorer, strängvärden och inline-bildernas datamängder bevaras
Ändrat
- Innehållskomprimering genererar nu kanoniska token även när titthåloptimeringen inte hittar några överflödiga instruktioner
Åtgärdat
- PDF-reella tal med explicit inledande plustecken behåller nu sitt värde vid tolkning och normalisering
- Ersatt strömdata behåller inte längre föråldrade avkodningsparametrar från sin tidigare filterkedja
Version 3.449.0
Tillagt
SetTempFileQuota,GetTempFileQuotaochCompactDocumentMemorytillhandahåller avgränsad diskbaserad objektspoolning med automatisk fallback i minnet
Ändrat
- Tillfällig objektdata använder nu generationsmedveten indexerad uppslagning och förblir tillgänglig efter att spoolens skrivhandtag har stängts
Version 3.448.0
Tillagt
SetRecoveryModeochGetRecoveryModeväljer strikt trailerbaserad reparation eller återhämtning på bästa sätt innan skadad PDF-indata läses in
Ändrat
SaveToStreamskriver nu direkt till mål som endast kan skrivas till och inte sökas i, samtidigt som den befintliga serialiseringsvägen i block behålls- Återhämtning på bästa sätt är fortfarande standard, strikt läge stänger av råkonstruktion och reparationsläget kräver en bevarad trailer i stället för att syntetisera en
Version 3.447.0
Tillagt
SetOptimizationWorkersochGetOptimizationWorkerskonfigurerar avgränsade arbetsbatcher för bildoptimering och Flate-omkomprimering, med automatiskt processorval som standard och ett seriellt kompatibilitetslägeOptimizeImages,RecompressStreams,MergeFileList,MergeFileListFastochMergeFileListStrictrapporterar nu spårat förlopp och respekterar kooperativ avbrytning viaAbort
Ändrat
- Flate-omkomprimering och fristående bildomkodning körs i avgränsade parallella batchar, medan dokumentändringar förblir deterministiska och entrådade
- Bildoptimering behåller nu avkodad bitmapdata för omkodning, hoppar över stencil- och färgnyckelmaskbilder och tar bort inaktuella avkodningsparametrar när JPEG-ersättningar tillämpas
- Stora sammanslagningar av fillistor håller endast de aktiva källäsarna öppna, rapporterar förlopp per indata och objektantal och tar bort ofullständig utdata vid avbrott eller fel
Åtgärdat
- Sammanslagningsåtgärder med flera filer rapporterar nu framgångsrikt slutförande när fler än en källa slogs samman
- Bildnedsampling och bildoptimering behåller nu den avkodade bitmap som omkodningsvägarna kräver
Version 3.446.0
Ändrat
- Den tvåparametriga överlagringen av
SetDisplayListCacheLimitbegränsar både behållen visningslistminne och antal poster, medan den befintliga överlagringen bevarar den konfigurerade bytebudgeten - Borttagning ur visningslistcachen gynnar nu ofta återanvänt innehåll med större ombyggnadsvärde per behållen byte, och enskilt för stora listor kringgår retention utan att blockera rendering
- Aktiva fångst- och uppspelningsåtgärder fäster sina listor, samtidiga uppslagningar ser aldrig delvis byggda inspelningar, och avbrutna eller misslyckade fångster kastas bort
GetDisplayListCacheInfoochGetResourceUsageStatisticsJSONrapporterar behållna byte, begränsningar, uppskattad uppspelningskostnad, borttagningar, kringgångar, avvisade fångster och byggkonkurrens
Åtgärdat
- Uppspelning av visningslistor frigör nu ersatta operandsträngar i stället för att behålla en allokering från varje tidigare operator
Version 3.445.0
Ändrat
- Den treparametriga överlagringen av
SetMemoryBudgetlägger till en budget för avkodade byte för varje dokuments komprimerade objektströmscache - Poster i objektströmscachen rensas nu enligt minst nyligen använt, både efter antal poster och avkodad datamängdsstorlek, och för stora poster kringgår cachning utan att blockera objektåtkomst
- Minnesbudgetar som konfigureras före inläsning gäller nu befintliga och framtida dokument och kan frågas ut via
GetMemoryBudget GetResourceUsageStatisticsJSONrapporterar nu aktuella cachebyte för objektströmmar, bytegränser och antal borttagningar
Version 3.444.0
Tillagt
- Den treparametriga överlagringen av
SetParserLimitsbegränsar tolererade tolkarfel och stoppar deterministisk återhämtning medpdsErrorLimitnär budgeten är förbrukad SetStreamDecodeLimitsavvisar för långa filterkedjor innan avkodare allokeras och genomdriver en sammanlagd budget för avkodade byte över strömmar i en spårad åtgärd- Strömmande och minnesbaserade avkodningsvägar delar samma filter- och byteredovisning, inklusive avkodning av objektströmmar under dokumentinläsning
GetResourceUsageStatisticsJSONrapporterar uppskattat struktur- och strömminne, bild- och typsnittsantal, toppvärden för avkodade byte, fel samt träffar och missar i cache för objekt, objektströmmar och visningslistorResetResourceUsageStatisticsnollställer diagnostikräknare utan att kasta inlästa dokument eller återanvändbara cachar
Version 3.443.0
Tillagt
SetParserLimitsochGetParserLimitskonfigurerar och inspekterar hårda gränser för nästlade PDF-objekt och antalet poster i varje direkt tolkad array eller ordlista- Tolkargränserna tillämpas innan inläsningsvägarna för fil, ström, sträng, redigeringsjournal, QDF och integritetskontroll förbrukar objekt, medan standardvärdet behåller den befintliga nästlingsgränsen och obegränsad containerstorlek
TPDFStructure.DecodeMaxContainerItemsavvisar för stora arrayer och ordlistor med den distinkta statusenpdsContainerLimitoch bevarar felpositionenRegenerateFormAppearancesförnyar alla AcroForm-fält på toppnivå och barnnivå i en enda traversering, bevarar valfritt användbara utseenden och rensarNeedAppearances
Version 3.442.0
Tillagt
CheckFileComplianceaccepterar efterlevnadstest 3 för PDF/X och granskar ett färdigt dokument mot ISO 15930-reglerna för utskriftsutbyte: pdfxid-upplageidentifiering, syntaxnivå per del, exakt en GTS_PDFX-utmatningsavsikt med inbäddad profil och villkorsidentifierare, deklarerad trappingstatus, TrimBox- och BleedBox-geometri per sida, inbäddade typsnittsprogram, förbjudna anteckningstyper, JavaScript på dokumentnivå, inbäddade filer, kryptering samt LZWDecode-filter- Problem visas som rader med PDFX-prefix via samma stränglisthandtag som PDF/A- och PDF/UA-kontrollerna använder
Version 3.441.0
Tillagt
SetPDFXModeväljer ett PDF/X-efterlevnadsläge (1 = PDF/X-1a:2003, 2 = PDF/X-3:2003, 3 = PDF/X-4) som genomdriver ISO 15930-reglerna för utskriftsutbyte redan vid skapandet och skriver pdfxid XMP-upplageidentifieringen- Läget installerar en GTS_PDFX OutputIntent (CMYK som utskriftsstandard), deklarerar tillståndet /Trapped och grundar sparversionen på delen (PDF 1.4 för X-1a / X-3, PDF 1.6 för X-4)
- Kontroller vid skapande: DeviceRGB- och ICCBased-rymder avvisas under X-1a (X-3 / X-4 kräver en RGB-OutputIntent för DeviceRGB), transparens och valfritt innehåll avvisas utanför X-4, och JavaScript, filbilagor, kryptering, LZWDecode-bilder samt icke inbäddade typsnitt avvisas i alla lägen
- Korrigeringar vid sparning: varje sida får en TrimBox (som standard lika med MediaBox), anteckningars Print-flaggor och AcroForms NeedAppearances normaliseras och /Trapped deklareras
GetInformation(203)rapporterar det aktiva PDF/X-läget
Version 3.440.0
Tillagt
AddWatermarkAnnotationFromImageIDskriver en anteckning av typen /Subtype /Watermark med lagringsmatrisen /FixedPrint /Matrix, så att utskriften skalar utseendet med sidan (ISO 32000-1 12.5.6.17)AddPrinterMarkAnnotationFromImageIDskriver en anteckning av typen /Subtype /PrinterMark som bär tryckmarkörens namn /PN (ISO 32000-1 12.5.6.18)SetFillColorICCBasedochSetLineColorICCBasedritar via /ICCBased-färgrymder på innehållsnivå som backas upp av en inbäddad ICC-profilfil, med antalet komponenter läst ur profilhuvudet och identiska profiler som delar en resurs
Version 3.439.0
Tillagt
- WOFF 1.0-webbtypsnittsbehållare importeras transparent via alla TrueType-ingångspunkter (
AddTrueTypeFontFromFile, ström-API:er); tabeller packas upp från sina zlib-strömmar och den tillplattade sfnt-katalogen byggs om före tolkningen - Dokument bäddar in det upppackade sfnt-programmet i FontFile2, aldrig WOFF-behållaren, vilket håller inbäddade typsnitt giltiga för alla visare
Version 3.438.0
Tillagt
- Genomdrivning av seed-värden utökas till
LegalAttestation, godtagbaraIssuer-poster för certifikat och positionellaKeyUsage-mönster (ISO 32000-2 tabell 237 och 238), med motsvarande API:erSetSignatureFieldSeedValueför legal-attestation-värden,AddSignatureFieldSeedIssuerochSetSignatureFieldSeedKeyUsage SetSignProcessLegalAttestationdeklarerar signerarens attest, som valideras mot ett krav på LegalAttestation vid signeringstillfälletTPDFlibPKCS11Client.InitializeUserPINochChangeUserPINadministrerar token-PIN-koder över en dedikerad läs-/skrivsession med inloggning som säkerhetsansvarig förC_InitPIN
Version 3.437.0
Tillagt
SetSignProcessRSAPSSPaddingsignerar fristående RSA-signaturer med RSASSA-PSS-padding och genererar den fullständiga parameteruppsättningen från RFC 4055 (MGF1 med signeringsdigesten, saltlängd lika med digesten) inuti CMS-signaturalgoritmens identifierare- Signaturer med PSS-padding verifieras fram och tillbaka genom bibliotekets verifierare, som nu tolkar RFC 4055-parametrar (explicita och implicita kodningar) och validerar dem via CNG med den deklarerade saltlängden
Version 3.436.0
Åtgärdat
- Textextrahering avkodar nu AGL-tilläggnamn för glyfer (formerna
uniXXXXochuXXXXXX) som bärs i /Differences-arrayer hos typsnitt som saknar ToUnicode-mappning - Kodningsplatser vars glyfnamn inte kan lösas upp faller nu tillbaka på typsnittets baskodning i stället för att visa råa kodpunkter eller ersättningstecken under extraheringen
- Symboliska inbäddade TrueType-typsnitt utan ToUnicode-mappning avkodas nu via det inbäddade typsnittsprogrammets cmap-tabeller och återvinner den verkliga Unicode-koden bakom varje teckenkod
Version 3.435.0
Tillagt
AddTrueTypeCollectionFontFromFilebäddar in valfri variant ur en TrueType-samling (.ttc) via ett nollbaserat index; tidigare togs alltid den första variantenGetJPEGFileOrientationläser EXIF-orienteringstaggen (1..8, 0 när den saknas) i en JPEG-fil ochGetJPEGFileICCProfileToFileextraherar filens APP2 ICC-profil utan att importera bilden
Version 3.434.0
Tillagt
- Renderingsalternativ 11..15 mappar PDFiums kvalitetsflaggor: LCD-textåtergivning på/av, utan utjämning för text, utan utjämning för bilder, utan utjämning för banor samt framtvingad halftone; standardvärdena behåller den historiska utdatan och backendarna GDI+/Cairo ignorerar flaggorna
SetDisplayListCacheLimitsätter tak för visningslistcachen där innehållsströmmar tolkas en gång; en positiv gräns tar bort de minst nyligen skapade posterna före infogning, och noll återställer det obegränsade beteendet
Version 3.433.0
Tillagt
- Val av digest för signaturtidsstämplar accepterar SHA-3-familjen (koderna 5..7 i
SetPAdESSignatureTimeStampDigestAlgorithm), i linje med digestalternativen för signering SetTimeStampRetryCountkonfigurerar 0..10 extra TSA-försök efter transportfel eller 5xx-svar, med linjärt ökande väntetid mellan försökenTPDFlibCertificateInfofårFriendlyName,ThumbprintSHA1ochThumbprintSHA256, lästa från certifikatkontextens egenskaper underEnumCertificates- AdES-rapporten för historisk validering får
BaselineProfile: 0 för subfilter utan PAdES, därefter 1=B-B, 2=B-T, 3=B-LT, 4=B-LTA, härlett från tidsstämpeln och DSS-bevisen
Version 3.432.0
Tillagt
- Sidintervallssträngar accepterar nyckelorden
odd,also even,firstochlast, även som intervallgränser (3-last), i alla API:er som tar ett intervall ReversePagesvänder sidordningen i det inlästa dokumentetFlattenAnnotsOnPageRangebränder in alla anteckningar i ett intervall i sidinnehållet med ett enda anropGetPageContentBoxrapporterar samlingsgränserna för alla text-, bild- och banelement, ochAutoCropPagessätter varje sidas CropBox till den rutan plus en marginalAddBatesNumberingstämplar sekventiella nollutfyllda tal med prefix och suffix på nio knappsatsliknande positionerExtractDocumentRevisionskriver dokumenttillståndet vid en tidigare inkrementell revision till en ny fil genom att kapa revisionskedjanSplitDocumentByOutlinedelar dokumentet vid dess dispositionsposter upp till en nivå i en fil per avsnittComparePageTextsWithjämför två dokument sida för sida utifrån extraherad text och rapporterar antalet avvikelser och den första avvikelsenSanitizeDocumentfårSANITIZE_XMP_PACKET(värdet 32) som tar bort hela XMP-metadataströmmen och varje/PieceInfo-ordlista
Version 3.431.0
Tillagt
- Extraheringsalternativ 19 (
SetTextExtractionOptionsoch varianten med direkt åtkomst) plockar bort text med renderingsläge 3, till exempel OCR-lager, ur den extraherade utdatan utan att röra synligt innehåll - Extraheringsalternativ 20 ersätter glyferna i markerade innehållssekvenser av typen
/Spanmed deras/ActualText-värde under extraheringen (ISO 32000-1 §14.9.4), och följer både inline-egenskapsordlistor och namngivna egenskapsresurser DAGetTextBlockCharBoxhärleder axelriktade rutor per tecken utifrån blockfyrhörningar och advances, för markeringsrektanglar och träffberäkningar på enskilda teckenExportFormValuesToJSONserialiserar AcroForm-fältvärden till en JSON-array med korrekt escape-behandling, med möjlighet att hoppa över tomma fältGetPageTextStatisticsräknar tecken, ord avgränsade av blanktecken och block för valfri sidaGetXMPPropertyläser enkla värden från dokumentets XMP-paket (stiger ner genomrdf:Alt-,rdf:Bag- ochrdf:Seq-höljen och löser XML-entiteter) ochSynchronizeXMPToInfokopierar tillbaka XMP-metadata till Info-ordlistan- Typsnittsinventeringar rapporterar storlek på inbäddade program:
TPDFlibDocumentFontfårFontFileBytesoch diagnostikposten får en summeradEmbeddedBytes
Version 3.430.0
Tillagt
- Textsökningen har fått fyra nya alternativ:
soDiacriticInsensitivematchar frågor via en 1:1 Unicode-veckning så att bokstäver utan accent hittar sina accentbärande motsvarigheter (Latin-1, Latin Extended-A, grekiska och kyrilliska, med skiftlägeskänslighet fortfarande i kraft i kombination medsoCaseSensitive),soWildcardstolkar*och?i frågan med vänster-längst-semantik som är förenlig medsoWholeWord,soAcrossLinesmatchar fraser som sträcker sig över rad- och blockbrytningar genom att sammanfoga varje sidas extraherade block, ochsoPreserveStylelåterSearchAndReplaceTextrita om ersättningar med det ersatta blockets textstorlek och färg i stället för anroparens aktuella inställningar - Sökträffar rapporterar nu träffens position och längd i blocktexten (
MatchStart,MatchLength) samt valfria kontextfönster (ContextBefore,ContextAfter) som styrs av den nya egenskapenSearchContextChars AddTextMarkupFromSearchHitsochHighlightTextSearchHitsomvandlar sökträffar, eller de träffar som hålls kvar av en pågåendeBeginTextSearch-session, till markeringanteckningar av typen Highlight / Underline / Squiggly / StrikeOut på deras sidor- Bokstavliga söksträngar på fyra tecken eller mer använder nu en hopptabell enligt Boyer-Moore-Horspool med försiktig kollationering av breda tecken, vilket snabbar upp batchsökningar över långa sidor
Åtgärdat
- Inbäddade TrueType-typsnitt skrivna med WinAnsi-baskodning och en Differences-array gav upphov till en
/ToUnicode-CMap som endast listade Differences-posterna, varför läsare som förlitar sig på den avkodade alla övriga accentbärande WinAnsi-koder som skräp: extraheringen returnerade?-ersättningstecken, blockinsamlingen kunde stanna vid den berörda raden och diakritikkänslig sökning missade dessa dokument. CMap-generatoren täcker nu hela baskodningen med Differences-åsidosättningar, grupperade i specenliga avsnitt om 100 poster - Ordslagningsbokföringen i texttratten satte in en skenbar advance-post när sekvenser lades till utan separator, vilket försköt varje senare teckenoffset med ett och skadade härledd data som delrektanglar för sökträffar och från gap härledda mellanslag
Version 3.429.0
Åtgärdat
- Delmängdsskapande via
AddTrueTypeSubsettedFontgav dokument vars text renderades tom i alla visare: CID-till-GID-mappningsströmmen skrevs tyst över av en hårdkodad/Identity-post, så att CIDs härledda från Unicode pekade på fel glyfkonturer. Strömmen är nu auktoritativ och/Identityfinns kvar endast som fallback när ingen mappning kan härledas; dokument med delmängder, CJK och automatiskt uppdaterade glyfuppsättningar renderas korrekt igen - Axiala och radiella shaderfyllningar renderades helsvarta i den interna GDI+-renderaren:
GdipCreateLineBrushavvisarWrapModeClamp(ett läge enbart för texturpenslar), och den misslyckade penselskapningen föll igenom till den svarta helfärgs-fallbacken. Gradientpenslar skapas nu medWrapModeTileoch shaderfyllningar renderas identiskt med Cairo-backenden och externa visare - Att skapa en
TPDFlib-instans utlösteEIntOverflownär biblioteket kompilerades med spillkontroll aktiverad (releaseflaggorna i kommandoradsdemons byggskript): FNV-1a-namnhashen, MD5-tillståndsackumuleringen och MD5-biträknarna är medvetet konstruerade som modulär aritmetik och körs nu med lokala spillkontroller avstängda. Den medföljande release-utdatanbuild-Win32-Demo/build-Win64-Demokraschar inte längre vid uppstart
Version 3.428.1
Tillagt
- Ny flaggskeppsdemo
Showcase(Demo\Delphi\Showcase): bygger ett dokument på sju sidor vid uppstart — gradientomslag, vektorgrafik med shaders och mönster, inbäddad TrueType-typografi, formaterade tabeller, ett streckkodsgalleri, interaktiva länkar med granskningsanteckningar och bokmärken samt en sammanfattningssida — och förhandsvisar det live i den inbäddade kontrollenTPDFlibViewer - Showcase-demon kan också köras huvudlöst (
Showcase.exe <output.pdf>) med ett valfritt argumentrendersom exporterar varje sida som PNG, så att hela dokumentpipelinen kan testas från byggskript
Åtgärdat
- Tolkning av innehållsströmmar feltolkar inte längre linjefärgsoperatorn
RG: framförhållningen efter indirekta referenser i objektavkodaren konsumerade0 0 0 RGsom ett tal plus den skenbara referensen0 0 R, vilket skadade linjefärger efter innehållsoptimering och gav operatorsyntaxfel i strikta visare - Titthåloptimeraren för innehåll plockar inte längre bort en upprepad
cs-sättare (färgrymd) som följer efter en färgoperator:rg/g/kåterställer färgrymden implicit, så mönsterfyllningar (scn) efter textfärgsändringar behåller sin/Pattern csoch renderas korrekt igen
Version 3.428.0
Tillagt
- Nitton nya konsoldemos för Free Pascal / Lazarus under
Demo\Lazarus: OutlineBuilder, WatermarkDemo, NamedDestinations, EmbeddedFiles, XmpMetadata, TextBlockExtraction, AnnotationInspector, BarcodeGallery, TaggedPDF, SearchReplace, Redaction, LinearizeDemo, PatternShowcase, DocumentProperties, SecurityPermissionMatrix, PageStitch, OutputStream, MergePDF och PdfToImage - En
IOUtils-kompatibilitetsshim (TPath / TDirectory / TFile) för FPC-byggen håller de portade demosarna källkodsidentiska med sina Delphi-motsvarigheter
Ändrat
- Grafikersättaren NOVCL under Windows materialiserar nu riktiga GDI-objekt: TBitmap allokerar en topp-ner-DIB-sektion, TCanvas äger en minnes-DC och väljer om GDI-objekt för pensel, penna och typsnitt vid egenskapsändringar, och TBrush / TPen / TFont bygger om sina handtag när färger, stilar eller typsnittsattribut ändras
- Sidrendering under FPC ger nu pixelutdata som matchar Delphi-bygget (GDI+-rastrering via ersättnings-DC:n), vilket även återställer JPEG- och BMP-exporten i
PdfToImage
Åtgärdat
- Skapande av krypterade PDF:er under FPC skadade binära strängvärden (utläsning av trailerns
/ID, krypteringens/U), vilket fick utdatan att misslyckas med verifieringen vid återinläsning; FPC-byggena skickar inte längre med-FcUTF8, vars kodningsetikettering av ansisträngar fick konkateneringenAnsiString + AnsiCharatt ersätta varje byte över $7F med ett frågetecken
Version 3.427.0
Tillagt
- Stöd för Free Pascal / Lazarus: biblioteket kompileras nu under FPC 3.2 (Win64) från samma källkod som Delphi-byggena, med nya byggskript
build-Lazarus-Lib,build-Lazarus-Lib-TRIAL,build-Lazarus-Testsochbuild-Win64-Demo-Lazsamt paketetPDFlibPasLaz - Flate-komprimering och -dekomprimering under FPC körs via FPC:s medföljande statiska zlib; AES-kryptering länkar samma unity-objekt som Delphi-byggena använder; JPEG-bilder avkodas via GDI+-backenden
- En FPCUnit-konsoltestsvit (
Tests\Lazarus) täcker tur och retur för dokumentens skapande, sparning och inläsning, deflate/inflate, AES och textextrahering, och två Lazarus-konsoldemos (HelloWorld,TextExtract) ingår underDemo\Lazarus
Ändrat
- Enhetsomfångsprefix (
System.SysUtils,Winapi.Windows, ...) togs bort i hela bibliotekskällkoden så att samma enheter löses under båda kompilatorerna; Delphis kommandoradsbyggen av biblioteket skickar nu med enhetsomfångslistan explicit - Rättade två stavfel i
NO_VCL/NOVCL-direktiv i renderaren och Cairo-bitmapekxporten som bara syntes när NOVCL-Windows-konfigurationen faktiskt kompilerades
Version 3.426.0
Tillagt
- Sidrendering kan nu simulera övertryck med processfärger och namngivna bläck via konfigurerbara API:er för Delphi, DLL och ActiveX
Ändrat
- Utökade grafiktillstånd bevarar nu kumulativ semantik för
/OP,/opoch/OPM, medan avgränsad pixelsammansättning behåller överlappande bläckkanaler på GDI+- och Cairo-renderarna
Version 3.425.0
Tillagt
- Bildextrahering bevarar nu JBIG2-sid- och globalsegment i fristående filer och behåller CCITT-faxdatamängder inuti fristående TIFF-höljen
- Ett skrivskyddat manifest för bildavdubblering grupperar exakta kodade dubletter per digest, objektidentitet, sidanvändning och återvinningsbara datamängdsbyte för Delphi-, DLL- och ActiveX-klienter
Ändrat
- Sidbildslistor identifierar nu inhemska JPX- och JBIG2-datamängder utan att tvinga fram bitmap-expansion, inklusive bildströmmar som nås via nästlade Form-XObject
Version 3.424.0
Tillagt
- API:er på dokumentnivå för associerade filer skapar, räknar upp, mappar, lägger till och tar bort
/AF-medlemskap i katalogen för Delphi-, DLL- och ActiveX-klienter - RichMedia-anteckningar kan nu återanvända en befintlig inbäddad eller associerad fil, så att en och samma mediedatamängd delas av bilagepanelen och anteckningens tillgångsgraf
Ändrat
- Skapande av associerade filer accepterar filer, Delphi-strömmar, binära strängar, DLL-buffertar och ActiveX-bytearrayer samtidigt som kontrollsummor, beskrivningar, relationsmetadata och binära nollbyte bevaras
- Borttagning av en inbäddad fil tar nu även bort motsvarande katalogreferenser till associerade filer, så att inlästa dokument inte kan behålla hängande
/AF-poster
Version 3.423.0
Tillagt
- API:er för valfritt innehåll bygger nu nästlade etiketter och gruppgrenar i lagerpanelen för Delphi-, DLL- och ActiveX-klienter
- API:er för att skapa radiogrupper, hantera medlemskap, ta bort och inspektera lägger till ömsesidigt uteslutande lagerkontroller för CAD- och kartarbetsflöden
Ändrat
- Uppdateringar av låsta lager rapporterar nu framgång, alternativa konfigurationer använder sina korrekta ettbaserade identifierare, och felformade lagerhierarkier traverseras med avgränsat cykelskydd
- Borttagning av en grupp för valfritt innehåll tar bort dess referenser ur lagerordnings-, tillstånds-, lås-, radio- och automatisk tillstånd-strukturer i varje konfiguration
Version 3.422.0
Tillagt
- API:er för PRC 3D-anteckningar bäddar in modeller från filer, strömmar, minnessträngar, DLL-buffertar och ActiveX-bytearrayer med namngivna standardvyer och explicita aktiveringspolicyer
- PRC-anteckningar stöder PDF/A-4e-tekniska dokument samtidigt som vanlig utdata automatiskt höjs till PDF 2.0
Ändrat
- PRC- och U3D-anteckningar innehåller nu en fullständig 3D-vy, aktiverings- och avaktiveringsordlistor, utskriftbara anteckningsflaggor, alternativa namn och ett normalt utseende
- Äldre U3D-inbäddning avvisar PDF/A-profiler som inte tillåter 3D-anteckningar och accepterar PDF/A-4e
Version 3.421.0
Tillagt
- API:er för dokumentdelar lägger till PDF 2.0
/DPartRoot, hierarkiska/DParts, sidintervallsblad, postnivåer, nivånamn och validerad/DPM-metadata för Delphi-, DLL- och ActiveX-klienter - Inspektions- och livscykel-API:er exponerar hierarkivalidering, antal nåbara delar, uppslagning från sida till del, metadata tur och retur samt fullständig borttagning av hierarkin
Ändrat
- Stora barnmängder använder avgränsade arrayblock medan valideringen kontrollerar föräldralänkar, cykler, enhetligt bladdjup, ordnad fullständig sidtäckning, omvända sidlänkar, XML-namntoken och avgränsade metadatagrafer
- Att skapa en dokumentdelshierarki höjer utdatan till PDF 2.0 och ingår i funktionsdetektering för inlästa dokument samt i låsning av sparversionen
Version 3.420.0
Tillagt
DrawHTMLStorylägger till formaterat HTML-flöde på hög nivå via lika breda kolumner och automatiskt genererade sidor för Delphi-, DLL- och ActiveX-klienter- Ändliga sidgränser returnerar en återanvändbar fortsättningssträng som bevarar den aktiva stilmallskaskaden, nästlat stiltillstånd, strukturerade block, tabeller, länkar, typsnittsmappningar och bildbindningar
Ändrat
- Genererade story-sidor ärver den valda startsidans effektiva dimensioner och varje kolumn återanvänder cachade layoutplaner för mätning och uppspelning
- Story-layouten avvisar ogiltig geometri, sätter gränser för kolumner och genererade sidor och avslutas när efterföljande ramar inte kan göra framsteg
Version 3.419.0
Tillagt
TPDFlibPrinterlägger till en VCL-komponentfasad med livscykelmetodernaBeginDoc,Canvas,NewPage,EndDocochAbortför direkt PDF-skapande- PDF-skrivarjobb stöder konfigurerbara pappersdimensioner, stående eller liggande orientering, canvas-DPI, vektorimportalternativ, dokumenttitlar och valfri direkt filutmatning
Ändrat
- Varje komponentjobb äger ett eget PDF-dokument, sparar den första och efterföljande canvasar med konsekvent sidsemantik och behåller färdig utdata för vidare biblioteksbearbetning
- Komponenten öppnar aldrig en utskriftsdialog och rör aldrig operativsystemets utskriftskö, vilket låter befintlig VCL-kod för canvas-ritning migrera utan beroende av en fysisk skrivare
Version 3.418.0
Tillagt
RenderPagesToPrintStream,RenderPagesToPrintString,RenderPagesToPrintFile,RenderPagesToPrintDataochRenderPagesToPrintBufferlägger till drivrutinsoberoende utskriftsutdata för Delphi-, DLL- och ActiveX-klienter- Valda sidintervall kan matas ut som PostScript Level 3, enstaka EPS-sidor, PCL 5c eller PWG Raster med valfria kontroller för monokrom, duplex, tumble och PCL-jobbinslutning
Ändrat
- PostScript och EPS bevarar sidornas vektorinnehåll medan PCL och PWG Raster använder avgränsade radkodare för direkt leverans till servrar och inbäddade enheter
- Utskriftsströmmar genereras utan att öppna en skrivare, visa en utskriftsdialog eller lämna in jobb till operativsystemets utskriftskö
Version 3.417.0
Tillagt
ExportPageSVGochExportPageSVGToFilelägger till skalbar sidexport för Delphi-, DLL- och ActiveX-klienter- SVG-utdatan kan oberoende inkludera nativt ritade banor, sökbar text, inbäddade PNG-bilder, klickbara anteckningslänkar och en transparent sidbakgrund
Ändrat
- Sidbanor behåller sina transformer, fyllnads- och linjeutseende, opacitet, linjestilar, jämna-udda-regler och effektiva klippgränser utan att rastrera hela sidan
- Varje sida bearbetas i avgränsade pass och ger ett fristående SVG-dokument utan externa bildberoenden
Version 3.416.0
Tillagt
DrawSVG,DrawSVGFromFile,GetSVGWidthochGetSVGHeightlägger till nativ SVG-vektorplacering och mätning för Delphi-, DLL- och ActiveX-klienter- SVG-ritning stöder vyboxar, proportionell justering, grupper, definitioner och återanvändning, transformer, klippning, enkel CSS och inline-stilar, opacitet, banor med ellipsbågar samt standardformerna rektangel, cirkel, ellips, linje, polylinje och polygon
Ändrat
- SVG-geometri skrivs som skalbara PDF-banor utan rasterbild-XObject, och upprepad mätning och ritning återanvänder det senast tolkade avgränsade SVG-trädet
- Otillförlitlig SVG-indata begränsas av källstorlek, elementantal och nästlingsdjup, utför ingen extern resursåtkomst och använder den första färgstoppen som deterministisk helfärgs-fallback för gradient-paint-servrar
Version 3.415.0
Tillagt
DrawFormula,GetFormulaWidthochGetFormulaHeightlägger till nästlad matematisk layout för Delphi-, DLL- och ActiveX-klienter- Formelmarkering stöder staplade bråk, samtidiga exponenter och index, kvadratrötter med valfria grader, grekiska bokstäver, vanliga matematiska symboler, escape-tecken, textgrupper och avgränsad nästling
Ändrat
- Formeltext använder valt typsnitt, textstorlek, färg, formgivning och fallback-kedja medan bråk- och rotlinjer förblir vektorinnehåll
- Upprepad mätning och ritning återanvänder det tolkade och uppmätta boxträdet medan dokumentet, mätskalan och hela målartillståndet lämnas orörda
Version 3.414.0
Tillagt
MarkdownToHTML,DrawMarkdownText,DrawMarkdownTextBox,GetMarkdownTextHeight,GetMarkdownTextWidthochGetMarkdownTextLineCountlägger till direkt Markdown-konvertering, mätning, ritning och höjdbegränsad fortsättning för Delphi-, DLL- och ActiveX-klienter- Markdown-indata stöder ATX- och setext-rubriker, stycken, blockcitat, ordnade och oordnade listor, pip-tabeller med justering, inhägnad och indragen kod, betoning, stark text, genomstrykning, länkar, bilder, automatiska weblänkar, escape-sekvenser och hårda radbrytningar
Ändrat
- Upprepad Markdown-mätning och -ritning återanvänder den konverterade HTML:en och den avgränsade HTML-layoutcachen, medan råa vinkelparenteser förblir escape-text
DrawMarkdownTextBoxreturnerar en opak fortsättningstoken som samma metod accepterar, så att delvis renderat inline-tillstånd kan fortsätta på en annan sida
Version 3.413.0
Ändrat
- HTML-mätning och -ritning delar nu avgränsade layoutplaner som cachar tolkning, CSS-upplösning, rad- och tabellgeometri, bilder, formaterade bakgrunder och länkar
- Motsvarande anrop till
GetHTMLTextHeight,GetHTMLTextWidthellerGetHTMLTextLineCountkan mataDrawHTMLTextutan att HTML-tolkning eller layoutarbete upprepas
Åtgärdat
- Mätning av HTML med formaterade textbakgrunder skriver inte längre in rektangeloperatorer i den valda sidans innehållsström
Version 3.412.0
Tillagt
BeginDeferredPageLayer,EndDeferredPageLayer,ComposeDeferredPageLayers,CancelDeferredPageLayersochGetDeferredPageLayerCounttillhandahåller uppskjuten z-index-sammansättning för Delphi-, DLL- och ActiveX-klienter- Negativa lager renderas under befintligt sidinnehåll, medan noll och positiva lager renderas ovanför det med stabil inspelningsordning för lika z-index-värden
Ändrat
- Uppskjutna lager behålls som sidstora Form-XObject och sammansätts genom en placeringsåtgärd per lager utan att deras ritkommandon tolkas eller spelas upp
Version 3.411.0
Tillagt
SetPageHeaderFooterVariant,ApplyPageHeaderFooterSetochClearPageHeaderFooterSettillhandahåller återanvändbara namngivna mallar för löpande sidhuvuden och sidfötter med varianter för förstasida, udda sida, jämn sida och standard- Sidhuvuds- och sidfotsvarianter kan rendera vanlig text med aktuellt typsnitt eller rik HTML med automatisk höjdmätning, variabelexpansion per sida, justering, marginaler och opacitet för Delphi-, DLL- och ActiveX-klienter
Ändrat
- Genererade löpande sidhuvuden och sidfötter är pagineringsartefakter, bevarar anroparens sid- och målartillstånd och stöder explicita tomma varianter som undertrycker fallback för titelsidor eller avsnittsöppnande sidor
Version 3.410.0
Tillagt
StartPageNumberChapter,AddPageNumberPlaceholderochResolvePageNumberPlaceholderstillhandahåller ett arbetsflöde i två pass för slutliga dokument- och kapitelsidnummer inuti vanlig brödtext- Pagineringsmallar stöder fysiska sidnummer, slutliga dokumenttotaler, kapitelnamn, kapitelrelativa sidnummer och slutliga kapiteltotaler för Delphi-, DLL- och ActiveX-klienter
Åtgärdat
- Textrutor med breda strängar skickar nu sin text till radbrytningsmotorn i stället för att producera en tom ruta
Version 3.409.0
Tillagt
AutoFitTableColumnstilldelar tabellkolumnbredder utifrån formaterat cellinnehåll samtidigt som en exakt tabellbredd och anroparens gränser per kolumn följs- Delphi-, DLL- och ActiveX-klienter delar samma beteende för automatisk tabellstorleksättning, inklusive begränsningar för sammanslagna celler
Ändrat
- Lyckad automatisk storleksättning ogiltigförklarar cachade radmått, medan ogenomförbara breddbegränsningar lämnar alla befintliga kolumner orörda
Version 3.408.0
Tillagt
DrawTextFlowColumnsflödar en bevarad textpassage genom en till 64 lika breda kolumner med konfigurerbara spalter och valfri utjämning av slutområdet- DLL- och ActiveX-klienter kan nu skapa, rita, mäta, inspektera, spola tillbaka och frigöra TextFlow-handtag genom den kompletta publika livscykeln
Ändrat
- Utjämnade kolumner använder exakta radantal när den återstående passagen får plats, medan översvämmade områden behåller full kolumnhöjd för maximal sidkapacitet
Version 3.407.0
Tillagt
- HTML-textrendering stöder nu inbäddade stilmallar, inline-CSS, rubriker, strukturblock, tabeller med kolumnspann samt dokumentbundna bilder
SetHTMLImageochClearHTMLImagesexponerar motsvarande kontroller i Delphi, DLL och ActiveX för återanvändbara HTML-bildkällor
Ändrat
- HTML-mätning och -ritning delar nu upplösta kaskad- och layoutbeslut, tabellrader fortsätter atomärt över textrutor, och fortsättningstillståndet bevarar nästlad CSS-formatering
Version 3.406.0
Tillagt
- TextFlow stöder nu avgränsad språkmedveten automatisk avstavning för engelska, tyska, nederländska, franska, spanska, italienska, portugisiska, ryska och turkiska, inklusive språkarv från dokumentkatalogens
/Lang-värde SetTextFlowLanguageochSetTextFlowHyphenationexponerar motsvarande kontroller i Delphi, DLL och ActiveX för språk samt minimilängder för prefix och suffix
Ändrat
- Textradbrytning i TextFlow mäter nu hela ord, använder en avgränsad sökning endast för för stora token och renderar diskretionära mjuka eller automatiska avstavningstecken först när brytningen väljs
Version 3.405.0
Tillagt
- Automatisk typsnitts-fallback löser nu saknade CJK-, symbol-, matematik-, komplexskript- och emoji-kluster via cachade installerade typsnittsvarianter samtidigt som formgivning och bidirektionell sekvensordning bevaras
SetAutomaticFontFallback,AddFontFallbackoch API:erna för inspektion av fallback-kedjan exponerar motsvarande kontroller i Delphi, DLL och ActiveX
Ändrat
- Textritning och breddmätning delar nu samma klustermedvetna fallback-beslut och bäddar lättjefullt endast in de fallback-typsnitt som valts för utdata
Version 3.404.0
Tillagt
- Saknade glyfer identifieras nu som Unicode-skalärer i vanlig och formgiven text, behålls i en avgränsad JSON-rapport och exponeras via callback i Delphi, DLL och ActiveX
SetMissingGlyphPolicykan behålla det kompatibla beteendet att tyst bort och rapportera, eller avvisa en textåtgärd innan innehåll skrivs, medLastErrorCode 521
Version 3.403.0
Tillagt
GetAPIScopeReportJSONochClearAPIScopeReportexponerar deterministisk diagnostik för körning och innehållsströmmar via API:erna för Delphi, DLL och ActiveX- Ogiltiga övergångar för banor, grafiktillstånd, siduppdatering, markerat innehåll, formulär, mönster, sidor, dokument och slutlig utmatning misslyckas nu omedelbart med
LastErrorCode 117
Version 3.402.0
Tillagt
AnalyzePageSkewJSON,DeskewPageochDeskewPageRangeupptäcker och korrigerar rotation på skannade sidor via API:erna för Delphi, DLL och ActiveX- Skevningsanalysen använder avgränsade rastrar med anpassningsbar upplösning och grov-till-fin poängsättning av radprofiler, medan korrigeringen bevarar ursprungligt PDF-innehåll och erbjuder ett valfritt läge som fyller hela sidan
Version 3.401.0
Tillagt
DetectPageBarcodesJSONkänner igen endimensionella och tvådimensionella streckkoder från en hel PDF-sida eller ett avgränsat sidområde och returnerar text, symbologi, orientering, giltighet, hörnpunkter och gränser som deterministisk JSON- Regionsökningar renderar endast de begärda pixlarna, bevarar den valda sidan, stöder format- och avkodarmasker och exponerar motsvarande API:er i Delphi, DLL och ActiveX
Version 3.400.0
Tillagt
SaveDOCXToStreamochSaveDOCXToFileomvandlar PDF-sidintervall till redigerbara WordprocessingML-stycken, härledda rubriker, nativa punkt- och numrerade listor, upptäckta tabeller, typsnittsstil, sidbrytningar och positionerade PNG-bilder- Den deterministiska DOCX-paketskrivaren använder CRC-kontrollerade råa Deflate-poster utan Office-automation, skriver bilddata allteftersom varje sida bearbetas, bevarar explicit sidordning och återställer den valda PDF-sidan
Version 3.399.0
Tillagt
ExportPageMarkdownochExportDocumentMarkdownomvandlar semantiskt sidinnehåll till escape:ade Markdown-stycken, härledda rubriker, ordnade eller oordnade listor samt pip-tabeller med valfria sidmarkörer och typsnittsstilSaveMarkdownToStreamochSaveMarkdownToFileskriver UTF-8 en sida i taget utan att buffra hela dokumentutdatan, medan motsvarande ingångspunkter i DLL och ActiveX exponerar arbetsflöden för sträng- och filexport
Version 3.398.0
Tillagt
ExportPageHTMLochExportDocumentHTMLskapar fristående HTML5 med positionerad text, inbäddade PNG-bilder, URI-länkar och interna sidankare- Dokumentexporten bevarar explicit ordning på sidintervallen, återställer den valda sidan, behåller en sidextraheringsmodell i taget och exponerar motsvarande API:er i Delphi, DLL och ActiveX
Version 3.397.0
Tillagt
ExtractStructuredPageochExtractStructuredDocumentförvandlar sidtext till hierarkier med stycken, rader, span, tabeller, tabellrader och celler och exporterar samma modell som JSON, semantisk XHTML eller CSV över upptäckta tabeller- Dokumentextraheringen behåller en sidhierarki i taget, återställer den valda sidan och exponerar motsvarande ingångspunkter i Delphi, DLL och ActiveX
Version 3.396.0
Tillagt
ApplyOCRTextLayeraccepterar leverantörsoberoende OCR-JSON och lägger till osynlig text, filtrerad efter konfidens och anpassad till begränsningsrutor, som gör skannade sidor sökbara utan att ändra renderade pixlarOCRPage,OCRDocumentochOnOCRPagetillhandahåller en pluggbar OCR-pipeline med en sida i taget och avgränsat rasterminne, medan DLL- och ActiveX-anropare kan kombinera befintlig sidrendering medApplyOCRTextLayer
Version 3.395.0
Tillagt
AddImageFromFileochAddImageFromStreamaccepterar nu WebP-bilder; biblioteket identifierar RIFF/WEBP-behållaren och avkodar via GDI+, som har en inbyggd WebP-kodek i Windows 10 1809 och senare
Version 3.394.0
Tillagt
SetRenderTargetICClåter anroparen tillhandahålla en mål-ICC-profil, så att renderarens ICC-transformer mappar källfärger via en CMYK-korrekturprofil i stället för standard-sRGB, vilket möjliggör CMYK-korrektur på skärm och förhandsvisning av tonomfånget
Version 3.393.0
Tillagt
OptimizeImagesgenomsöker varje inbäddad bild, avkodar den, kodar om den som JPEG med av anroparen angiven kvalitet och ersätter den ursprungliga strömmen på plats endast när JPEG:en blir strikt mindre — skannade dokument och okomprimerade bilder krymper automatiskt, samtidigt som bilder som skulle växa skyddas
Version 3.392.0
Tillagt
GetImageInfoJSONgenomsöker alla bild-XObject i dokumentet och returnerar metadata per bild (objektnummer, pixeldimensioner, färgrymd, bitar per komponent, filter) som JSON utan att avkoda någon pixeldata, så att granskning av bildinventarier håller O(antal bilder) i minne i stället för O(totalt antal bildbyte)
Version 3.391.0
Tillagt
- JPEG2000-bilder (JPXDecode) extraheras nu med nativ genomströmning av byte när extraheringsläget stöder det, vilket bevarar den ursprungliga komprimerade strömmen utan avkodning och omkodning, i linje med det befintliga genomströmningsbeteendet för JPEG
Version 3.390.0
Tillagt
NewMultiStopAxialShaderochNewMultiStopRadialShaderskapar gradienter med valfritt antal inre färgstopp i valfri PDF-färgrymd (DeviceRGB, DeviceCMYK, DeviceGray, ICCBased), med sammanfogande funktioner av typ 3 som kedjar en exponentiell interpolation av typ 2 per segment- Den nya posten
TPDFGradientStopbär en position i[0,1]och färgvärden per komponent för varje stopp
Version 3.389.2
Ändrat
- Formgivning av komplex text cachar nu Uniscribes SCRIPT_CACHE, HFONT och DC per typsnitt under dokumentets livstid, så att typsnittets tolkade cmap/GSUB/GPOS-tabeller överlever mellan
DrawShapedText-anrop i stället för att skapas om och frigöras varje gång
Version 3.389.1
Ändrat
- Flyttals-till-sträng-konverteringen vid skrivning av innehållsströmmar använder nu en inline-sifferloop med en förberäknad tiopotenstabell i stället för den generella vägen
Power+IntToStr+Insert, vilket kraftigt minskar processoröverheaden vid generering av grafik med hög täthet och samtidigt ger byte-identisk utdata
Version 3.389.0
Tillagt
SetMemoryBudgetsätter gränser för minnet som stora dokument förbrukar genom tak för tröskeln på avkodad strömstorlek och cachen för komprimerade objektströmmar, vilket håller toppminnet inom en av anroparen satt budget
Ändrat
- Cachen för komprimerade objektströmmar i den slumpvisa läsaren har nu som standard 50 poster i stället för att växa utan gräns, så att beröring av många ObjStm-strömmar inte längre samlar upp avkodat innehåll obegränsat
Version 3.388.1
Ändrat
- PDF-namntoken som tolkas under dokumentinläsningen internas nu i en hashpool per struktur, så att de miljontals dublettnamn i stora dokument delar en referensräknad buffert vardera i stället för att allokera nya strängar; nyckeluppslagningar i ordlistor kortsluts till pekarjämförelser
Version 3.388.0
Tillagt
- CFF-, OpenType-CFF- och CID-nycklade typsnitt får nu delmängder vid spartid via samma
CreateFontPackage-tjänst som TrueType-delmängder använder, vilket endast bäddar in de glyfer som innehållsströmmen faktiskt ritade och kraftigt krymper CJK- och OTF-dokument - Utdata med delmängder av CIDFontType0 bär nu en
/CIDSet-ström som deklarerar vilka CIDs som är inbäddade, vilket uppfyller PDF/A-regel 00032 och normerade läsares förväntningar
Version 3.387.0
Tillagt
SetRenderBandingrenderar en sida ett horisontellt band i taget till en låg bitmap och komponerar banden till en fullstor utdata, så att sidor med hög DPI och storformat behåller ett avgränsat toppminne i stället för att allokera en enda jättestor bitmapGetRenderBandHeightrapporterar den aktiva bandhöjden, eller 0 när bandning är avstängd- Nya API:er i Delphi, DLL och ActiveX för bandvis rendering exponerar arbetsflödet via alla publika ytor
Version 3.386.0
Tillagt
SetDisplayListCachingspelar in en sidas innehållsström en enda gång i en uppspelbar visningslista, så att senare renderingar med valfri zoom eller DPI slipper tokenisera om; Form-XObject och glyfprocedurer av typ 3 cachar en lista varderaGetDisplayListCacheInforapporterar som JSON huruvida cachning är påslagen samt antal poster och räknare för träffar och missar, ochClearDisplayListCachekastar inspelningarna och frigör deras minne- Nya API:er i Delphi, DLL och ActiveX för visningslistor exponerar arbetsflödet via alla publika ytor
Version 3.385.0
Tillagt
StartRenderPageJobrenderar en sida i en bakgrundsuppgift via en isolerad instans, så att en stor sida inte längre kan blockera värdtråden medan den renderasPauseRenderJob,ResumeRenderJobochCancelRenderJobavbryter en pågående sida vid operatorgränserna i innehållsströmmen, via en kooperativ avbrytflagga och en pausgrind som trådats in i renderarenWaitForRenderJob,GetRenderJobStateochGetRenderJobResultrapporterar jobbets förlopp och utfall via kodernaRENDER_JOB_STATE_*- Nya API:er i Delphi, DLL och ActiveX för renderjobb exponerar arbetsflödet via alla publika ytor
Version 3.384.0
Tillagt
DAOpenFromURLöppnar en fjärr-PDF via HTTP med byteintervallförfrågningar, hämtar endast de objekt läsaren faktiskt rör och förhämtar förstasidesavsnittet i lineariserade dokument så att sida 1 renderas förstGetLinearizedURLAccessPlansonderar en fjärr-URL med en enda liten intervallförfrågan och returnerar en JSON-rapport med total längd, stöd för byteintervall, linearisering, sidantal, förstasidesobjekt och avsnittsslut, hintströmmens omfattning samt den sammanslagna listan av byteintervall som sida 1 kräver- Det nya alternativet
PDF_NET_OPT_NO_WARMINGoch felkodernaPDFLIB_ERROR_NET_OPEN,PDFLIB_ERROR_NET_RANGE_UNSUPPORTEDochPDFLIB_ERROR_NET_HTTPexponerar nätverksläsning i Delphi, DLL och ActiveX
Version 3.383.0
Tillagt
SaveQDFToFileochConvertFileToQDFskapar mänskligt redigerbara diagnostik-PDF:er med läsbar objektformatering, kommentarer med ursprunglig objektidentitet, expanderade gemensamma innehållsströmmar och indirekta reparerbara strömlängderRepairQDFFileräknar om redigerade strömlängder och bygger om korsreferensdata, trailers ochstartxref, inklusive reparation på plats- Nya QDF-API:er i Delphi, DLL och ActiveX samt alternativet
PDF_QDF_OMIT_ORIGINAL_OBJECT_IDSexponerar arbetsflödet via alla publika ytor
Version 3.382.0
Tillagt
PDF_LINEARIZE_OBJECT_STREAMSaktiverar avgränsad objektströmspackning och en komprimerad huvud-xref-ström samtidigt som korsreferensdata för förstasidan förblir direkt läsbar
Ändrat
SaveToFileOptionsbevarar nu objektströmspackning närLinearizeochPackObjectStreamsär aktiverade samtidigt
Åtgärdat
LinearizeFilestöder nu identiska in- och utdatavägar utan att kapa källbytena innan lineariseringspasset läser dem
Version 3.381.0
Tillagt
ValidateLinearizationFileochGetLinearizationValidationReportgranskar oberoende Fast Web View-ordlistor, hintintervall och bittabeller, förstasidesberoenden och bytegränser, sidantal samt huvudkorsreferensposten
Åtgärdat
- Lineariserad utdata skriver nu deterministiska sidoffset- och delade objekt-hinttabeller med MSB först, bytejusterade vektorer, korrekta sidlängder och hintrelativa offset
- Genererade hinttabeller innehåller inte längre slumpmässiga bitbredder, little-endian-fält, ofullständiga rader för delade grupper eller platshållaroffset för innehåll som kunde få normerade läsare att avvisa Fast Web View-data
Version 3.380.0
Tillagt
- Stora Flate-strömmar kan nu komprimeras och dekomprimeras via avgränsade block, inklusive direkt strömmande extrahering via
GetEmbeddedFileContentToStreamochGetEmbeddedFileContentToFile
Ändrat
- Sparande av stora RC4-, AES-CBC- och AES-GCM-krypterade strömmar skriver nu chiffertexten direkt till målet med exakt förberäknade längder, i stället för att materialisera och sedan dekryptera hela tillfälliga kopior
- Stora import av inbäddade filer komprimeras inkrementellt in i sin lagrade ström, och upprepade krypterade sparningar bevarar källbytena och strömmetadata i minnet
Version 3.379.0
Tillagt
StartEditJournal, explicita transaktionsgränser, återställning, ångra, gör om, historiknollställning, statusfrågor och kraschåterhämtning är tillgängliga för anropare i Delphi, DLL och ActiveX- Beständiga journaler lägger till PDF-tillstånd och markörposter med egna checksummor, spolar fullständiga poster till lagring och återhämtar den sista fullständiga incheckningen när en avslutande skrivning är ofullständig eller skadad
Ändrat
- Ångra, gör om, återställning och återhämtning bevarar det valda dokumenthandtaget samtidigt som flyktiga handtag till objekt vars underliggande dokumentobjekt byttes ut ogiltigförklaras
- Ångraminnet begränsas av det konfigurerade stegantalet, ögonblicksbilder serialiseras endast vid transaktionsgränser, och dokumentlösenord skrivs aldrig till återhämtningsjournaler
Version 3.378.0
Tillagt
ConvertTextToPathsomvandlar konturtypsnittstext och typ 3-glyfprogram till återanvändbara vektor-Form-XObject över valda sidor och nästlade Form- Anropare i Delphi, DLL och ActiveX kan välja rekursiv Form-konvertering och automatisk städning av typsnittsresurserna i källan
Ändrat
- Konverterat innehåll behåller textpositionering, mellanrum, skrivriktning, transformer, färger och linjeinställningar samtidigt som de ursprungliga textvisande operatorerna tas bort
- Textklippsrenderingslägen och tvetydiga delade resursomfång avvisas innan något dokumentobjekt ändras
Version 3.377.0
Tillagt
CopyPageRangesExaccepterarPDF_COPY_PAGE_SMART_RESOURCESför att återanvända motsvarande typsnitt, bilder, färgrymder, mönster, shading och grafiktillstånd som redan finns i måldokumentetPDF_COPY_PAGE_KEEP_ORDERnamnger det befintliga alternativet med bevarad ordning vid sidkopiering och kan kombineras med smart resurskopiering
Ändrat
- Smart sidkopiering normaliserar objektnummer, nyckelordning i ordlistor, numerisk stavning och strömlängder före hashning, bekräftar varje träff strukturellt och hoppar över cykliska eller identitetskänsliga grafer
CollateDocumentsExtillämpar nu semantisk resursåteranvändning över sina källdokument utan att först allokera dubbla resursgrafer
Version 3.376.0
Tillagt
TrimPageContentToCropBoxtar bort fullständiga textsekvenser, ritade banor, bildplaceringar och Form-XObject-anrop på toppnivå som ligger helt utanför en sidas CropBoxTPDFContentProgram.TraceGraphicsStatePairsfångar instruktionstillstånd före och efter i en enda uppspelning samtidigt som en anroparägd spårare fortsätter över innehållslager- Anropare i Delphi, DLL och ActiveX kan tillämpa tecknade marginaler samtidigt som sidrelsen trimmas och kvarhållet innehåll minskar
Ändrat
- CropBox-trimring bevarar skärande eller olösta objekt, klippbanor, textklipplägen och delade Form-interna detaljer samtidigt som relativa text-advances upprätthålls efter borttagna strängar
Version 3.375.0
Tillagt
TPDFStructureexponerarDecodeMaxDepth,LastDecodeStatusochLastDecodePositionför avgränsad objektparsning på låg nivå och exakt gränsdiagnostik
Ändrat
- PDF-arrayer och -ordlistor tolkas nu via en explicit avgränsad tillståndsstack, inklusive nästlade operander i sidinnehållsströmmar
Säkerhet
- Otillförlitliga direkta objekt djupare än standardgränsen på 256 behållare avvisas innan de kan tömma trådstacken
Version 3.374.0
Tillagt
AddType3Fontskapar programmerbara typ 3-typsnitt med anropardefinierade matriser och typsnittsramarAddType3Glyphskriver bytekodade grafikprogram för glyfer med automatiska mått, kodning, bredder och Unicode-extraheringsmappningarAddType3FontResourceexponerar typsnitt, bilder, grafiktillstånd, shading och andra indirekta resurser för glyfprogram- Anropare i Delphi, DLL och ActiveX kan skapa typ 3-typsnitt för symboler, stämplar och specialändamål utan att installera eller inbädda ett externt typsnittsprogram
Ändrat
- Uppdateringar av typ 3-glyfer bygger om kompakta härledda typsnittstabeller på plats samtidigt som typsnittshandtaget som befintliga sidresurser använder behålls
Version 3.373.0
Tillagt
- Markörer i strukturträdet navigerar mellan föräldrar, barn och syskon samtidigt som elementidentiteten behålls genom reparationer och omordningar
ReparentStructTreeCursorflyttar eller ordnar om strukturelement och avvisar självföräldraskepp eller cykler bland ättlingarNormalizeStructTreenormaliserar barnsamlingar, reparerar föräldralänkar, lyfter direkta element och tar bort ogiltiga, dubbla eller cykliska kanter
Ändrat
- Reparation av strukturträdet bevarar ägarskap för markerat innehåll och föräldraträdsmappningar samtidigt som hierarkiändringar blir säkra för efterföljande sparningar
Version 3.372.0
Tillagt
EnumeratePageElementsreturnerar stabila kortlivade handtag för redigerbart text-, bild- och baninnehållDeletePageElementtar bort ett räknat upp objekt samtidigt som senare relativ textpositionering bevarasTransformPageElementskriver en affin matris runt det valda objektet utan att ändra annat innehåll
Ändrat
- Redigerbara elementhandtag validerar det ursprungliga innehållsfingeravtrycket och avvisar inaktuella eller tvetydiga ändringar
Version 3.371.0
Tillagt
ExportObjectJSONströmmar hela trailern och den indirekta objektgrafen till deterministisk, reversibel och typad JSONImportObjectJSONvaliderar och sammanfogar objektgrafer eller ersätter hela den indirekta objektmängdenGetObjectJSONochSetObjectJSONexponerar atomisk granskning och uppdatering per objekt via Delphi, DLL och ActiveX
Ändrat
- Objektgrafens JSON bevarar binära namn, ordlistenycklar, strängar, strömmar, referensgenerationer, skalära typer och objektnummerordning utan tvetydiga JSON-tvingningar
Version 3.370.0
Tillagt
- En kompilerad laddare för Arlington TSV-modeller tillhandahåller stabila återanvändbara handtag samt antal definitioner och regler
- Modellstyrd syntaxvalidering kontrollerar objektnycklar, obligatoriska poster, typer, PDF-versionstillgänglighet, direkta och indirekta referenser, tillåtna värden och länkade objektgrafer
- API:er i Delphi, DLL och ActiveX validerar filer eller befintliga delade valideringspipelines och returnerar strukturerade diagnostiklistor
Ändrat
- Syntaxvalideringen återanvänder delade tolknings- och objektcachar, väljer tvetydiga länkar med objektdiskriminatorer och undertrycker upprepade besök hos objektdefinitioner
Version 3.369.0
Tillagt
- Återanvändbara valideringspipelines öppnar och tolkar en PDF en gång och kör sedan PDF/A- och PDF/UA-uppgifter eller bygger kombinerade rapporter mot den delade läsaren och objektcachen
- API:er i Delphi, DLL och ActiveX exponerar pipelineskapande, uppgiftskörning, rapportgenerering, inspektion av antal tolkningar och explicit frigörelse
Ändrat
CreatePreflightReportochCreateValidationReportdelar en tolkning och en lat objektcache när flera efterlevnadskontroller väljs
Version 3.368.0
Tillagt
AddStructureNamespaceregistrerar PDF 2.0-strukturnamnrymder och skriver delade/Namespace-ordlistor viaStructTreeRoot/NamespacesAddRoleMapNSmappar anpassade strukturityper inom en namnrymd eller över registrerade namnrymder- Väljare av namnrymd som standard och per element, namnrymdsfrågor, DLL-exporter och ActiveX-metoder exponerar hela arbetsflödet
Ändrat
- Tillgänglighetslägena PDF/UA-2 och WTPDF tilldelar automatiskt PDF 2.0-standardstrukturnamnrymden till befintliga och framtida otilldelade strukturelement
GetStructTreeItemTextlöser/RoleMapNS-kedjor och returnerar elementets namnrymds-URI via InfoID 9
Version 3.367.0
Tillagt
SetPDFUA2Modeaktiverar PDF/UA-2-metadata, PDF 2.0-versionshantering, dokumentspråk, skydd för markerat innehåll och inställningar för rubrikvisningSetWTPDFModedeklarerar WTPDF 1.0-tillgängletsnivån, återanvändningsnivån eller båda, samtidigt som orelaterade PDF Declarations bevaras- Getters i Delphi, DLL och ActiveX exponerar den aktiva PDF/UA-delen och WTPDF-deklarationsmasken
Ändrat
- PDF/UA-diagnostiken känner igen del 2, kräver
pdfuaid:rev=2024och genomdriver PDF 2.0 som minimiversion
Version 3.366.0
Tillagt
SetCryptFilterConfigurationväljer oberoende kryptering för PDF-strängar, vanliga strömmar och inbäddade filströmmar via/StrF,/StmFoch/EFF- Getters i Delphi, DLL och ActiveX exponerar varje väntande krypteringsmål, medan den etablerade inställningen endast inbäddade filer förblir kompatibel
Ändrat
- AES-lösenords-, publik nyckel- och fingeravtryckskryptering använder en gemensam kryptfilterpolicy, avvisar konfigurationer utan skyddat mål och hindrar selektiva policyer från att tillämpas på RC4-hanterare
Åtgärdat
- Krypteringsfingeravtryck återställer nu sin fullständiga krypteringspost och sparar via den vanliga objektskrivaren utan att kapa fingeravtrycksprefixet eller kryptera objektinnehåll två gånger
Version 3.365.0
Tillagt
- Okrypterade PDF 2.0-omslag kan bära en fullständigt krypterad PDF som dolt initialt samlingsdokument med standardmetadata för krypterade nyttolaster
- API:er i Delphi, DLL och ActiveX skapar, identifierar, inspekterar och extraherar krypterade nyttolaster från filer, binära strängar, strömmar eller bytearrayer
Ändrat
- Omslagsskapandet förhindrar yttre kryptering och PDF MAC, validerar handlernamn, undviker röjande av källsökvägen och bevarar nyttolastbytena exakt
Version 3.364.0
Tillagt
TPDFlibEUTSLTrustSourceverifierar XML-signaturer för EU:s LOTL och nationella TSL:er, exponerar ögonblicksbilder av betrodda tjänster och tillhandahåller tid medvetna CA- och TSA-ankareTPDFlibSignatureVerifieraccepterar externa förtroendekällor och rapporterar status för kvalificerade certifikat, elektroniska signaturer, elektroniska sigill och QSCD med tjänstehärkomst
Ändrat
- Inläsning av förteckningar över betrodda tjänster misslyckas slutet vid osäkrade signerare, fristående eller tvetydiga signaturer, svaga algoritmer, digeständringar, territorieavvikelser, inaktuella listor, felformade kriterier samt obegränsad nätverks- eller XML-indata
- Fullständiga TSL-uppdateringar är transaktionella, medan certifikatkedjemotorer kombinerar manuella och källbaserade ankare och återanvänder dem per förteckningsrevision och verifieringstid
Version 3.363.0
Tillagt
TPDFlibPKCS11Clientläser in PKCS #11 2.x- och 3.x-moduler, räknar upp token, autentiserar användare, parar ihop certifikat och privata nycklar och signerar PDF-digest utan CSP- eller KSP-registrering- Token-, slot-, mekanism-, funktionstabells- och callback-typer stöder både direkt modulinläsning och programhanterade funktionslistor
Ändrat
- RSA-signering konstruerar den obligatoriska DER-
DigestInfoinnan råCKM_RSA_PKCS, medan ECDSA-signering vid behov omvandlar tokenens P1363-utdata till DER - Delade modullivslängder, beständiga sessioner, skyddade autentiseringsvägar, autentisering per åtgärd, avgränsade försök vid hot plug och sessionsåterhämtning före åtgärder förbättrar HSM-pålitlighet och -genomströmning
Version 3.362.0
Tillagt
TPDFlibCSCClientupptäcker fjärrsigneringsinloggningsuppgifter, hämtar hashbundna eller förhämtade aktiveringsdata för signaturer och lämnar in enstaka eller grupperade digest-signaturer via CSC-API:et- Klienten plugs direkt in i
OnExternalDigestSign, så att fjärrsignaturer med RSA och DER ECDSA återanvänder den befintliga CMS-konstruktionen, signaturstorleksättningen och verifieringsvägen för publik nyckel
Ändrat
- Den inbyggda HTTP-transporten accepterar anropartillhandahållna begäranhuvuden för OAuth bearer-autentisering samtidigt som gränserna för svarsstorlek och fas-timeout behålls
- Svar för inloggningsuppgifter, auktorisering och signatur avvisar nu dubblerade eller felformade JSON-fält, ogiltig X.509- eller Base64-data, stödjande algoritmer saknas, inkonsekventa batchstorlekar, inaktuella aktiveringsdata samt överträdelser av SCAL-hashbindning
Version 3.361.0
Tillagt
VerifyAdESHistoricalochVerifyAdESHistoricalByNamehärleder automatiskt betrodda historiska kontrolltidpunkter från signaturtidsstämplar och täckande dokumenttidsstämplarTPDFlibAdESHistoricalValidationReportexponerar begärda och effektiva kedjeresultat, beviskälla och tid, arkivtäckning, tidsstämpelantal och status vid specifika fel
Ändrat
- Historisk återkallningsvalidering misslyckas slutet om inte en betrodd tidsstämpel för hela dokumentet förseglar de aktuella DSS- och VRI-bevisen
- Valideringstider för certifikat och OCSP konverteras nu till Windows-filtid med exakt heltalsaritmetik i millisekunder, vilket undviker gränsdrift vid certifikatens giltighetsövergångar
Version 3.360.0
Tillagt
SetSignatureFieldSeedValue,AddSignatureFieldSeedCertificateochClearSignatureFieldSeedValueskapar och hanterar standardiserade/SV-krav för osignerade signaturfältGetSignProcessSeedValueErrorrapporterar exakt vilket obligatoriskt filter, SubFilter, digest, skäl, återkallningsinformation, certifikat, version eller vilken ej stödd kravpost som hindrade signering
Ändrat
- Signering genomdriver nu obligatoriska seed-värden för signaturfält efter att den valda identiteten öppnats och innan fältet eller utdatamålet ändras
- Ej stödda obligatoriska seed-värdekrav misslyckas slutet, medan semikolonavgränsade tillåtna värden och exakta DER-signerarcertifikat genomdrives konsekvent i API:erna för Delphi, DLL och ActiveX
Version 3.359.0
Tillagt
AddSignProcessRevocationCRLochAddSignProcessRevocationOCSPbäddar in valideringsmaterial i det signerade attributetadbe-revocationInfoArchivalför traditionellaadbe.pkcs7.detached-signaturerClearSignProcessRevocationInfotar bort allt arkiverat återkallningsmaterial från en signeringsprocess innan signaturen skapas
Ändrat
- Enkla
BasicOCSPResponse-värden normaliseras till lyckadeOCSPResponse-strukturer, och byte-identiska CRL:er och normaliserade OCSP-svar avdubblas - Adobes arkiverade återkallningsattribut stöds av både Windows CryptoAPI och de moderna signeringsvägarna RSA, ECDSA, Ed25519, CNG samt extern digest
Version 3.358.0
Tillagt
SetSignProcessContentsEstimatestorleksätter signaturplatshållare utifrån grund-CMS, cachad certifikatkedja, planerat CRL- och OCSP-material, en förväntad RFC 3161-token och en konfigurerbar säkerhetsmarginalGetSignProcessEstimatedContentsBytesrapporterar den justerade råbyte-kapacitet som valdes för det senaste signaturförsöket
Ändrat
- Nya signeringsprocesser upptäcker automatiskt extra utrymme för certifikatkedjan från lokala cachar och tillämpar en marginal på 15 procent innan kapaciteten i
/Contentsjusteras till 256 byte - CNG-, HSM- och extern digest-signering härleder nu RSA-, ECDSA- och Ed25519-signaturstorlekar från det publika certifikatet i stället för att reservera en fast nyttolast på 16 KiB från leverantören
- Automatisk uppskattning gör ingen nätverkshämtning och anropar ingen privat nyckel eller extern signerings-callback
Version 3.357.0
Tillagt
SetSignProcessAppearanceTemplatebygger återanvändbara layouter för synliga signaturer med platshållare för signerare, skäl, plats, kontakt, datum, fält, sida och appldefinitionsierade värdenSetSignProcessAppearanceVariablelägger till skiftlägesokänsliga egna värden i en enskild signeringsprocess och kan ta bort dem utan att återskapa processen
Ändrat
- Mallar för synliga signaturer stöder konfigurerbara format för signeringstiden och escape:ade litterala klammerparenteser samtidigt som befintliga regler för bild- och dokumenttidsstämpelprioritet bevaras
- Mallexpansion använder avgränsade indatastorlekar och en amortiserat linjär utdatabuffert, så att stora återanvändbara layouter inte drar upprepade kopior av hela strängen
Version 3.356.0
Tillagt
TPDFlibSignatureVerifierkan lägga till DER-baserade eller filbaserade X.509-förtroendeankare, rapportera deras antal utan dubletter och rensa dem utan att ändra Windows certifikatlagrar
Ändrat
- En icke-tom uppsättning egna förtroendeankare styr nu både valideringen av signerarcertifikat och RFC 3161-tidsstämplar via en exklusiv rot-motor i minnet
- Rensning av den egna uppsättningen återställer systemets standardmotor för förtroende vid efterföljande kontroller
Säkerhet
- Egen förtroendevalidering utesluter Windows lagrar
RootochTrustedPeople, medan inbäddade PDF- och DSS-certifikat förblir obetrott kedjebyggnadsmaterial
Version 3.355.0
Tillagt
SetSignProcessExternalDigestSigneroch dess filvariant bygger fristående CMS-signaturer kring RSA- eller ECDSA-resultat som tillhandahålls av en extern signerareOnExternalDigestSign,DLSetExternalDigestSignCallbackochSetExternalDigestSignCallbacktillhandahåller synkrona callback-ytor i Delphi, DLL och ActiveX för HSM- och fjärrsigneringsintegrationer- Externa ECDSA-callback kan returnera antingen DER-signaturer eller P1363-värden av fast bredd med formatet
r || s
Ändrat
- Externa signerare får endast den slutliga digesten av CMS:ens autentiserade attribut och anropas en enda gång efter att PDF-byteintervallen och attributen är kompletta
- Storleksättningen av platshållare använder den konfigurerade signaturreserven utan att anropa den externa signeraren
- Tomma eller för stora signaturer utan genomströmning misslyckar nu signeringsprocessen i stället för att skriva ett tomt eller avkapat
/Contents-värde
Säkerhet
- Varje externt returnerad signatur verifieras mot det konfigurerade X.509-certifikatet innan den kan skrivas in i PDF:en
Version 3.354.0
Tillagt
SetSignProcessCNGKeyochSetSignProcessCNGKeyFromFilesignerar med namngivna NCrypt-nycklar från nyckellagringsleverantörer i programvara, TPM, hårdvarutoken eller molnet, utan att exportera privat nyckelmaterialSetSignProcessCNGKeyByHandleaccepterar ett anroparägtNCRYPT_KEY_HANDLEför programhanterad nyckelupptäckt och policyarbetsflödenSetSignProcessPrivateKeyUIstyr huruvida certifikatbundna leverantörer får visa gränssnitt för PIN, samtycke, token eller molngodkännande
Ändrat
- Namngivna och lånade CNG-nycklar använder en direkt NCrypt-signeringsväg för fristående RSA- och ECDSA-signaturer över digest-familjerna SHA-1, SHA-2 och SHA-3
- Storleksättningen av CNG-signaturplatshållare utför inte längre en preliminär privatnyckelåtgärd, vilket undviker dubblerade tokenfrågor, fjärrgodkännanden, granskningsposter eller leverantörsdebiteringar
- Tyst signering är fortfarande standard, medan interaktivt läge tar bort tysta flaggor för förvärv och signering så att externa leverantörer kan fullfölja sitt autentiseringsflöde
Säkerhet
- Explicita CNG-identiteter kontrolleras för certifikatkompatibla algoritmgrupper, och den färdiga CMS-signaturen verifieras mot det angivna certifikatet innan den godtas
Version 3.353.0
Tillagt
- Fristående PDF-signaturer kan skapas och verifieras med ECDSA P-256-, P-384- och P-521-certifikat och digest-familjerna SHA-1, SHA-2 eller SHA-3
- Ed25519-signering accepterar ett DER X.509-certifikat med ett råfrö eller en okrypterad PKCS #8-privatnyckel via gränssnitten i Delphi, DLL och ActiveX
SetSignProcessDigestAlgorithmaccepterar SHA3-256, SHA3-384 och SHA3-512 som algoritmkoderna 5, 6 och 7
Ändrat
- Moderna fristående signaturer använder en kanonisk CMS-byggare med standardanpassade identifierare för digest- och signaturalgoritmer i stället för att förlita sig på leverantörsvalda identifierare
- Verifieringen av moderna signaturer kontrollerar den fristående innehållsdigesten, kanoniska signerade attribut, inbäddad signeraridentitet och signaturen med publik nyckel, utan att kräva äldre CryptoAPI-algoritmsstöd
Säkerhet
- Ed25519-verifiering avvisar icke-kanoniska skalärer, icke-kanoniska punktkodningar, nycklar av låg ordning, certifikatidentiteter som inte stämmer samt ändrade signerade attribut
Version 3.352.0
Tillagt
EncryptPublicKeyskapar AES-128- eller AES-256-dokument av typenAdobe.PubSecför flera X.509-certifikatmottagare utan gemensamt lösenord- Mottagare kan läsas in från DER, PEM, PKCS #12 PFX, certifikatlager för aktuell användare eller lokal dator och kan få oberoende PDF-behörighetsmasker
- Inloggningsuppgifter från PFX och certifikatlager öppnar krypterade dokument med publik nyckel via de vanliga inläsnings-API:erna för fil, ström och sträng
- Antal mottagare, antal behörighetsgrupper, autentiseringsstatus och livscykelstyrning av inloggningsuppgifter är tillgängliga via gränssnitten i Delphi, DLL och ActiveX
Åtgärdat
- ActiveX-typbiblioteksgenereringen behåller nu de befintliga metoderna för PDF/UA, taggad PDF, artefakter, dokumentspråk och associerade filer samtidigt som API:erna för publik nyckel läggs till utan att etablerade binära gränssnittsplatser flyttas
DecryptFilenår den direkta omskrivningsvägen för AES-256 utan en förkontroll med full läsare för vanliga krypterade dokument, samtidigt som PDF MAC-signaler fortfarande valideras innan skyddat innehåll skrivs om
Säkerhet
- CMS EnvelopedData valideras med avgränsad DER-tolkning, mottagarnas behörighetsgrupper autentiseras med sin krypterade frönyttolast, och tvetydiga eller felformade kuvert avvisas med dedikerade felkoder
- Mottagare med samma behörigheter grupperas i ett kuvert för att minska utdatastorleken och nyckelharledningsarbetet, samtidigt som certifikatspecifik nyckeltransport behålls
Version 3.351.0
Tillagt
SetPDFMACEnabledskapar fristående PDF MAC-integritetstoken för AES-256 revision 6- och AES-GCM-krypterade dokument, inklusive den obligatoriska salten för nyckelharledning, behörighetssignalen, byteintervallen och CMS-autentiseringsdataGetPDFMACStatusochValidatePDFMACexponerar valideringsresultat via gränssnitten i Delphi, DLL och ActiveX
Säkerhet
- Skyddade dokument verifieras automatiskt efter lösenordsautentisering och innan sidorna exponeras; saknade token, felformad DER, ej stödda algoritmer, ofullständig täckning, misslyckad nyckeluppackning och ändrade autentiseringsvärden avvisas med dedikerade felkoder
EncryptFile,EncryptFileExochDecryptFilebevarar nu PDF MAC-garantierna över filnivåkryptering och validerade dekrypteringsarbetsflöden
Version 3.350.0
Tillagt
Encrypt,EncryptFileochEncryptFileExaccepterar styrka 5 för att skapa PDF 2.0-dokument med autentiserad 256-bitars AES-GCM-kryptering, säkerhetsordlistor för revision 7 samt deklarationen av ISO TS 32003-tillägget- Läsaren och filsökvägarna för dekryptering öppnar AES-GCM-dokument och exponerar det nya läget via
EncryptionAlgorithm,GetEncryptionLevelochSecurityInfo
Säkerhet
- Autentiseringsfel i AES-GCM avvisar nu ändrade strängar eller strömmar och får
DecryptFileatt ta bort eventuell partiell utdata
Version 3.349.0
Ändrat
LinearizeFileordnar nu stora objektgrafer med ett stabiltO(n log n)-sammanslagningsspass och traverserar indirekta beroenden med en explicit arbetsstack, vilket undviker kvadratiskt ordningsarbete och en anropsram per nåbart objekt
Åtgärdat
- Förstasidesavsnittet innehåller nu anteckningsordlistor och deras nåbara utseenden, åtgärder och resurser, vilket låter Fast Web View-klienter visa förstasidans anteckningar utan att hämta objekt bortom förstasidesgränsen
Version 3.348.2
Åtgärdat
- Biblioteket kompileras nu utan varningar eller tips i Win64-bygget. FNV-1a-stränghashens initialiserare överskred
Integer-intervallet, så dess ackumulator flyttades tillCardinalmed ett bytevis identiskt maskat resultat, och tio tilldelningar som kompilatorn bevisade aldrig lästes — plus en oanvänd variabel — togs bort. Körningsbeteendet är oförändrat
Version 3.348.1
Åtgärdat
- Visarkontrollen kompilerar igen på Delphi XE5 och XE6. Dess DPI-hanterare per skärm använde
WM_DPICHANGED, en meddelandekonstant somWinapi.Messagesinte innehöll före XE7, så provbyggmatrisen — som fortfarande riktar sig mot de äldre verktygskedjorna — stannade vidPDFlibViewer.pasmed ett fel om odeklarerad identifierare. Konstanten deklareras nu lokalt, endast på kompilatorer som inte redan tillhandahåller den, vilket lämnar DPI-hanteringen i körningen orörd
Version 3.348.0
Tillagt
ConvertToPDFAförvandlar ett vanligt dokument till ett arkivdokument med ett enda anrop: den tar bort vad den valda delen förbjuder, lägger till vad delen kräver, anger den del dokumentet gör anspråk på och kontrollerar sedan resultatet- Anspråket rapporteras som uppfyllt först när kontrollen godkänns. En fil som säger sig vara arkivmässig utan att vara det passerar rakt igenom de system som annars skulle ha fångat den, så domen kommer från kontrollen och inte från försöket
GetPDFAConversionReporträknar upp vad som gjordes och, där dokumentet fortfarande brister, vad som står i vägen
Version 3.347.1
Åtgärdat
SanitizeDocumenttar nu verkligen bort det JavaScript den rapporterar att den tar bort. Den begärde en post i paketlistan före den första, fick ingenting och stannade innan en enda skript togs bort — så ett dokument som sanerats körde ändå sina skript när det öppnades- Borttagning av det sista skriptet tar nu även bort det tomma namnträd som lämnas kvar, vilket annars fortfarande berättade för en läsare att dokumentet bar på skript
Version 3.347.0
Tillagt
RepairDocumentMetadatafår de två ställen där en PDF talar om vem som skrev den att stämma överens. En validator läser både dokumentinformationen och XMP-paketet och avvisar en fil där de skiljer sig åt, och de flesta filer som faller på just denna punkt fick helt enkelt aldrig sin XMP-halva skriven- Där bara ena halvan bär ett värde fylls den andra utifrån den, så inget som redan finns registrerat kastas bort
- Ett dokument i PDF/A-läge får sin standardidentifiering återställd om den förlorats, vilket sker varje gång en anropare tillhandahåller ett eget paket. Utan den läser en validator filen som en vanlig PDF och rapporterar varje regel i den anspråkade delen som ouppfylld
- Returnerar hur många poster som reparerades
Version 3.346.0
Tillagt
RecolorDocumentomvandlar nu de gradienter ett dokument ritar. Gradientens färgrymd och färgstoppen bakom den flyttas tillsammans, så en omvandlad gradient uppfattas som en färg och inte som en kanal som misstas för en grånivå- Gradienter som skrivits inuti mönstret som ritar dem, eller inuti en sidas shading-resurser, hittas likaväl som de som fått ett eget objekt
Ändrat
- En gradient byggd av en samplad funktion eller en PostScript-funktion lämnas som den är, liksom meshtyperna, som bär sina färger i en ström i stället för i en funktion. Att skriva om dem är en annan åtgärd än att omvandla en färg
Version 3.345.0
Tillagt
RecolorDocumentomvandlar nu en indexerad bild genom att omvandla dess färgtabell, vilket låter varje sampling behålla indexet den redan hade. En sådan bild omvandlas oavsett hur samplingarna är packade eller komprimerade, inklusive palettbilderna som en skärmdump eller ett diagram oftast sparas som
Version 3.344.0
Tillagt
RecolorDocumentomvandlar nu bilderna en sida ritar liksom färgerna den sätter, så ett dokument som gjorts grått visar inte längre färgbilder på grå sidor- Mjukmasker och stencilmasker lämnas ifred. Båda läses som täckning och inte som färg, och att omvandla en av dem skulle få sidan att visa masken som en bild
Ändrat
- En bild omvandlas när den har åtta bitar per komponent, en device-färgrymd samt antingen ingen komprimering eller enbart Flate. En JPEG- eller faxbild skulle behöva kodas om, vilket är en annan åtgärd än att omvandla dess färger, så de behåller sina egna byte
Version 3.343.0
Tillagt
- Flytta ett helt dokument, eller en enskild sida, till en enda färgrymd.
RecolorDocumentochRecolorPagetar 1 för grått, 2 för RGB och 3 för CMYK och returnerar hur många färger som omvandlades - Användbart innan arbete skickas till ett tryckeri som förväntar sig en viss rymd, eller för att göra ett färgdokument grått utan att rita om det. Geometri, text och bilder lämnas precis som de var; endast färgoperatorerna ändras
- En färg som redan är satt i målrymden lämnas ifred, så en sida vars färger inte behöver ändras behåller sina ursprungliga byte
- Färger satta via en ICCBased-, Separation-, Indexed- eller Pattern-rymd lämnas som de är. Att omvandla dem utan att läsa deras profil skulle förändra sidans utseende i stället för att bevara det
Version 3.342.0
Tillagt
- PDF/A-4-arkivering, den del av standarden som bygger på PDF 2.0.
SetPDFAModetar tre nya lägen: 9 för PDF/A-4, 10 för PDF/A-4e som dessutom tillåter 3D och rich media, samt 11 för PDF/A-4f som tillåter en inbäddad fil i valfritt format - Ett dokument av del 4 identifieras på det sätt standarden kräver: med delnummer och det år delen publicerades, utan efterlevnadsbokstav för ren PDF/A-4 och med bokstaven E eller F för de två tilläggen
- Varje inbäddad fil i ett dokument av del 4 anger hur den förhåller sig till dokumentet, vilket både del 3 och 4 kräver
Ändrat
- PDF/A-kontrollen känner igen del 4, bedömer dess filer mot PDF 2.0 i stället för 1.7 och rapporterar en fil av del 4 som inte anger sitt revisionsår
Version 3.341.2
Åtgärdat
- PDF/A-3- och PDF/UA-dokument anger nu hur varje inbäddad fil förhåller sig till dokumentet. Relationen skrevs bara för bilagor efter den första och aldrig för den sista, så ett dokument med en enda bilaga — det vanliga fallet — bar ingen alls och föll på den punkten i valideringen
- PDF/UA-rapporten förbiser inte längre den sista inbäddade filen när den kontrollerar att relationen finns
Version 3.341.1
Åtgärdat
- PDF/A-kontrollen läser nu den standardmärkning en fil bär. Det kunde den inte, så varje fil bedömdes mot del 1 oavsett vad den deklarerade: ett giltigt PDF/A-2- eller PDF/A-3-dokument rapporterades som saknande märkning och med för hög version, vilket är motsatsen till sanningen
- Märket läses oavsett om producenten skrev det som ett element eller som ett attribut. Båda är vanlig XMP, så att endast acceptera ena formen lämnade filer från andra producenter omarkerade
Version 3.341.0
Åtgärdat
- Vertikal text använder nu varje teckens vertikala form. Parenteser, långvokaltecknet och de små kana ritas olika när texten löper nedför sidan, och ett typsnitt namnger själv dessa former; tidigare ritades de horisontella, vilket lät parenteser ligga tvärs över spalten i stället för att stå längs den
- Formerna hämtas ur typsnittets egna vertikala funktion, så varje variant tillhandahåller det dess formgivare ritade i stället för en ersättning som gissats utifrån tecknet
GetVerticalTextHeightmäter de former som kommer att ritas, så en spalt vars tecken byter skepnad mäts fortfarande korrekt- En variant utan namngivna vertikala former ritas exakt som tidigare
Version 3.340.0
Tillagt
- Vertikal skrift, för japansk och kinesisk text satt nedför sidan.
SetVerticalWritingModeslår på den och vanligaDrawText-anrop löper sedan nedåt;GetVerticalWritingModerapporterar den. Att sätta text vertikalt innebar tidigare att placera vartenda tecken för hand - Text ritad på detta sätt går genom ett Type0-typsnitt i vertikalt skriftläge som bär variantens egna vertikala mått, så en läsare flyttar fram varje tecken med det avstånd dess formgivare avsåg i stället för med ett enhetligt steg, och en utkopiering av texten returnerar de ursprungliga tecknen
- En variant som saknar egna vertikala mått flyttar fram ett em per tecken, vilket är vad en läsare skulle göra med standardvärdet
GetVerticalTextHeightrapporterar hur långt en sträng kommer att löpa nedför sidan innan den ritas, ochDrawVerticalTextritar en sekvens vertikalt utan att ändra läget- Den horisontella och den vertikala formen av en variant hålls isär, så en sida kan bära båda utan att den ena stör den andra
Version 3.339.0
Tillagt
- Automatisk taggning omfattar nu tabeller. Med den nya tabellbiten påslagen förs tabellen, dess rader och dess celler in i strukturträdet av
DrawTableRows, så att en läsare kan tala om vilken kolumn ett värde står i i stället för att läsa upp hela tabellen som en samling sammanhangslös text SetTableHeaderRowCountanger hur många inledande rader som är rubrikrader, ochGetTableHeaderRowCountrapporterar det. De raderna skrivs som rubrikceller med kolumnomfång, vilket är vad som låter en läsare nämna rubriken för det värde den står på- Rubrikrader namngivna på detta sätt blir kvar där de är. Att upprepa dem överst på varje sida förblir ett layoutbeslut som tas med
DrawTaggedTableRows
Ändrat
AUTOTAG_DEFAULTomfattar nu tabeller vid sidan av text, sidinredning och figurer. Att ge läget som ett tal behåller vad det alltid betydde
Version 3.338.0
Tillagt
- Automatisk taggning omfattar nu bilder. Med den nya figurbiten påslagen blir en ritad bild en figur i strukturträdet, så att en läsare når den i stället för att passera den i tysthet
RegisterFigureger nästa bild den beskrivning den bär. En läsare läser upp beskrivningen i bildens ställe, och det är hela utbytet en läsare utan syn får av bildenRegisterDecorationsäger att nästa bild är en linje, ram eller bakgrund utan innebörd, och den ritas inuti en layoutartefakt så att en läsare hoppar över den i stället för att tillkännage en bild som inte säger något- Båda inställningarna förbrukas på en enda bild, så en senare bild ärver aldrig en beskrivning som var avsedd för en tidigare
Ändrat
AUTOTAG_DEFAULTomfattar nu figurer vid sidan av text och sidinredning, så att den som ber om standarden ber om alla tre. Att ge läget som ett tal behåller vad det alltid betydde- En rubrik registrerad med
RegisterHeadingväntar nu på den text den namnger. En bild ritad däremellan blir en figur och lämnar rubriken åt texten som följer, i stället för att själv ta rubriknivån
Version 3.337.1
Åtgärdat
- Ett dokument byggt med enbart
BeginTagmarkeras nu som taggat. Tidigare bar en sådan fil ett fullständigt strukturträd som ingen läsare tittade på, eftersom en läsare betraktar ett dokument som otaggat om inte katalogen säger annat (ISO 32000-1 §14.7.1); hjälpmedelsteknik läste upp sidan som om den saknade struktur helt och hållet - Märket läggs till endast när ett strukturträd verkligen skrivs, så ett dokument utan taggar rapporteras fortfarande som otaggat, och en
SetMarkInfo-inställning som anroparen gjort lämnas som den är
Version 3.337.0
Tillagt
- Automatisk strukturtaggning.
SetAutoTagModeslår på ett läge där vanlig ritning bär sin egen struktur: text blir ett stycke, text ritad omedelbart efterRegisterHeadingblir en rubrik på den nivån, och löpande sidhuvuden och sidfötter blir artefakter som en läsare hoppar över. Att producera ett tillgängligt dokument innebar tidigare att omge varje ritanrop medBeginTagochEndTagför hand - Att slå på läget markerar också dokumentet som taggat, vilket en läsare behöver innan den överhuvudtaget betraktar strukturen som befintlig
- Automatisk taggning träder åt sidan inuti en för hand öppnad tagg, så att en del av dokumentet kan beskrivas av anroparen och resten lämnas åt biblioteket, utan att de två nästlas in i varandra
- Inget taggas inuti en artefakt, och tom text öppnar inget element, så ingen av dem kan producera ett strukturelement som en läsare skulle läsa upp som tomt
Version 3.336.0
Tillagt
- Textflöde, för att låta en textpassage löpa över flera rutor, spalter eller sidor.
NewTextFlowtar texten ochDrawTextFlowfyller en ruta med så mycket som får plats och lämnar flödet på det första ord den inte kunde ta, så att nästa ruta fortsätter precis där MeasureTextFlowrapporterar hur många rader den återstående texten behöver vid en given bredd utan att rita något, så att en layout kan storleksättas innan man binder sig åt den- En ruta utan plats för en rad tar ingenting och lämnar flödet orört, så att erbjuda en sådan förlorar aldrig text
SetTextFlowMinLineshåller ett angivet antal rader samman: en ruta som bara kunde ta färre tar inga alls och skickar dem vidare, i stället för att strandsätta en ensam rad vid spaltens fotGetTextFlowRemaining,TextFlowFinishedochRewindTextFlowrapporterar och återställer förloppet; att rita en ruta kastade tidigare bort det som flöt över, utan möjlighet att få reda på vad som förlorades
Version 3.335.0
Tillagt
- Automatisk innehållsförteckning. Rubriker registreras med
RegisterHeadingmedan brödtexten skrivs, ochDrawTOCformatterar dem efteråt: varje post indragen efter sin nivå, en punktled som sträcker sig fram till ett högerställt sidnummer, och hela raden länkar till rubriken - En rubrik minns vart den pekar i stället för vilket sidnummer den hade, så att skjuta in innehållssidan framför den färdiga brödtexten - vilket omnumrerar varje sida den hänvisar till - lämnar varje post och varje länk korrekt
MeasureTOCrapporterar hur många sidor listan behöver innan något ritas, ochDrawTOCreturnerar hur många poster den placerade, så att en lista längre än en sida ritas genom att anropa igen med antalet redan placerade posterPopulateOutlineFromHeadingsförvandlar samma rubriker till dokumentbokmärken, nästlade efter nivå- En titel som är för bred för utrymmet som sidnumret lämnar förkortas ett tecken i taget och får en ellips, i stället för att få löpa in under numret
Version 3.334.1
Åtgärdat
- Att välja en sida efter att sidor skjutits in framför den nådde den sida som hade det numret före inskottet, så att rita försättsblad in i ett befintligt dokument kunde skriva på fel brödtextsida. Sidval följer nu den nya numreringen
Version 3.334.0
Tillagt
GetSignatureModificationVerdictbesvarar den fråga en läsare faktiskt har om ett signerat dokument: var de uppdateringar som lagts till efter denna signatur sådana som dess certifieringsnivå tillåter? En certifierande signatur bär en behörighetsnivå, och domen kontrollerar varje senare revision mot den, så att lägga till valideringsmaterial läses som tillåtet medan en omskrivning av en sida inte gör detGetSignatureEffectiveMDPLevelrapporterar den nivå som gäller ochGetSignatureModificationDetailnamnger den revision och den sorts ändring som ligger bakom svaret- Domen skiljer mellan "inget lades till", "endast tillåtna ändringar", "något som inte är tillåtet", "kunde inte avgöras" och "signaturen slutar inte på en revisionsgräns". Den sista betyder att det finns byte inuti det intervall signaturen gör anspråk på att täcka
- Tvekan rapporteras aldrig som godkännande: en certifiering vars struktur inte kunde verifieras, en fältlåsning vars berörda fält inte kan spåras, en revision som innehåller något oläsligt, eller byte bortom det signerade intervallet som inte bildar någon igenkännbar revision rapporteras alla som obestämda i stället för som tillåtna
Ändrat
- En indirekt array som inget förklarar rapporteras nu som obestämd i stället för som bokföring. En sidas antecknings- eller innehållslista är en array, och att skriva om en sådan ändrar vad dokumentet visar samtidigt som varje ordlista lämnas orörd
Version 3.333.0
Tillagt
- Inspektion av inkrementella revisioner. En signatur täcker bytena i den revision den skrevs i, och allt som läggs till efteråt är en separat uppdatering vars innehåll avgör huruvida signaturen fortfarande står för dokumentet så som det är nu.
GetDocumentRevisionCount,GetDocumentRevisionStartochGetDocumentRevisionEndkartlägger dessa revisioner, ochGetSignatureRevisionIndexsäger vid vilken av dem signaturen slutar GetDocumentRevisionKindrapporterar vad en uppdatering gjorde, som det mest långtgående av de objekt den rörde: bokföringsdata, valideringsmaterial, en dokumenttidsstämpel, en signatur, ett formulärfält, en anteckning eller dokumentinnehåll. Att lägga till valideringsmaterial för långtidsvalidering ser därför inte längre ut som att redigera dokumentetGetDocumentRevisionChangesräknar upp varje objekt som en uppdatering lade till, ändrade eller tog bort, tillsammans med vad varje objekt är och, för en ändrad ordlista, vilka nycklar som faktiskt skiljer sigGetDocumentRevisionsCompleterapporterar huruvida hela historiken gick att återskapa. En kedja som är bruten, cyklisk eller längre än vad läsaren följer lämnar de äldsta uppdateringarna osedda, och antalen är då en undre gräns i stället för ett svar- Ett objekt vars tidigare version inte kan läsas, eller vars strömkropp aldrig jämfördes, rapporteras som obestämt i stället för som ofarligt: en uppdatering som skriver om en sida men lämnar dess ordlista orörd misstas inte för en ompaketering
Version 3.332.0
Tillagt
ApplyPAdESLongTermValidationbefordrar en redan signerad PDF till PAdES-B-LT i ett enda anrop. Den bygger undertecknarcertifikatets väg från signaturen själv, samlar in OCSP- och CRL-material för varje länk via de adresser som certifikaten namnger och skriver certifikaten och återkallningsdatan till dokumentets säkerhetslager med en VRI-post för signaturen, i en enda inkrementell uppdatering.ApplyPAdESLongTermValidationToStreamskriver resultatet till en ström i stället för en fil- Beteendet är konfigurerbart via en
PADES_LTV_*-alternativmask: huruvida VRI-posten ska skrivas, huruvida OCSP-svarare ska frågas, huruvida falla tillbaka på CRL:er, huruvida utfärdaradresser ska följas för att fullständiga vägen och huruvida återkallning ska hoppas över för ett självutfärdat rotcertifikat - Ett tomt fältnamn bearbetar varje signatur till en revision; ett namngivet fält bearbetar bara det ena
GetPAdESLTVCertificateCount,GetPAdESLTVCRLCount,GetPAdESLTVOCSPCountochGetPAdESLTVErrorrapporterar vad det senaste anropet samlade och varför det stannade i förtid, så ett delvis resultat över en onåbar svarare syns i stället för att vara tyst- Material som är identiskt med något redan upplagt skrivs en gång och refereras av varje signatur som behöver det, och en signatur som inte bär något läsbart certifikat rapporteras i stället för att masquerera som en lyckad befordran
Version 3.331.0
Tillagt
- En signatur bär sin egen certifieringsväg, så materialet som en profil för långtidsvalidering behöver kan läsas från den signerade filen ensam.
GetSignatureSignerCertificateDER,GetSignatureEmbeddedCertificateCountochGetSignatureEmbeddedCertificateDERreturnerar de certifikat som signaturen bäddar in, ochGetSignatureCertificateChainLengthochGetSignatureCertificateChainDERordnar dem i en väg från undertecknaren och utåt GetSignatureContentsHashHexreturnerar nyckeln som enAddPAdESDSSVRI-post adresseras med, beräknad från signaturen själv- Undertecknarcertifikatet matchas oavsett om signaturen identifierar det genom utfärdare och serienummer eller genom subjektnyckelidentifierare, och en väg stannar vid den sista utfärdare som signaturen faktiskt bär i stället för att låtsas vara fullständig
Åtgärdat
- DER-läsaren avvisar en angiven elementlängd som är större än datan i stället för att låta ett nästan maximalt värde svämma över sin gränskontroll, och genomgången av certifikattilläggen läser inte längre förbi slutet på ett avkortat eller för långt certifikat. Båda är nåbara från ett specialutformat dokument, så åtkomsterna ovan förblir säkra på otillförlitlig indata
- Signaturåtkomsterna läser dokumentet med ett delat handtag, så de svarar medan en verifierare eller visare redan har filen öppen i stället för att misslyckas som om signaturen saknades
Version 3.330.0
Tillagt
- OCSP-statusförfrågningar.
BuildOCSPRequestkodar en RFC 6960-förfrågan för ett certifikat och dess utfärdare,FetchOCSPResponseskickar den till svararen och returnerar svaret, ochAddPAdESDSSOCSPFromCertificatesgör båda och arkiverar resultatet i dokumentets säkerhetsbutik - Svararens adress är valfri: när den utelämnas används den adress som certifikatet själv anger, så att en anropare som har certifikatkedjan inte behöver någon ytterligare konfiguration
- Ett certifikatpar som inte egentligen hör ihop avvisas innan något skickas, i stället för att ge det "unknown"-svar en sådan förfrågan förtjänar från svararen och som ser ut som ett återkallningsproblem
- Endast ett lyckat svar lagras; en svarare som svarade
tryLaterellerunauthorizedrapporteras viaGetTimeStampErrori stället för att arkiveras som om det vore ett statussvar
Version 3.329.0
Åtgärdat
- Återanvändning av en resultatarray över successiva uppräkningsanrop läcker inte längre strängarna som ligger kvar i de arrayplatser som ett senare anrop inte fyller. Detta påverkade det dokumenterade mönstret "anropa en gång för antalet, ändra storlek, anropa igen" närhelst ett senare anrop returnerade färre poster än arrayen kunde rymma, och den överblivna texten samlades under processens livstid
- Berörda ingångspunkter inkluderar
EnumPageContentStates,EnumPageContentStatesEx,EnumAttachments,EnumDocumentFonts,EnumPageElements,EnumNamedDestinations,EnumSignatures,EnumFormFields,GetFormValues,GetTextInAreaExsamt anropen för textsökning, formulärfältåtgärder och certifikatuppräkning
Ändrat
- Resultatarrayparametern för dessa anrop skickas nu som
vari stället förout. Befintlig Delphi- och C++Builder-kod kompileras och länkas oförändrat; den enda synliga skillnaden är att arrayplatser efter det returnerade antalet behåller vad de innehöll tidigare i stället för att tyst tömmas
Version 3.328.0
Tillagt
- Certifikat talar nu om för biblioteket var deras status kan kontrolleras:
GetCertificateOCSPURLs,GetCertificateIssuerURLsochGetCertificateCRLURLsläser svarar-, utfärdarcertifikat- och CRL-adresser ur ett certifikat, så att sammanställning av material för långtidsvalidering inte längre kräver kännedom om var en given utfärdare publicerar FetchRevocationMaterialhämtar material från dessa adresser, ochAddPAdESDSSCRLFromURLsamtAddPAdESDSSCertificateFromURLhämtar och arkiverar det i dokumentets säkerhetsbutik i ett enda steg- Adresser som inte namnger en hämtbar resurs, som ett katalognamn eller en e-postadress, hoppas över i stället för att rapporteras som något som kan hämtas
Version 3.327.0
Tillagt
- En inbyggd RFC 3161-tidsstämpelklient.
SetTimeStampServerochSetTimeStampOptionskonfigurerar myndigheten, hashalgoritmen, den begärda policyn, nonce-användningen och tidsgränsen;FetchTimeStampTokenreturnerar en TimeStampToken för valfritt sammandrag ApplyPAdESSignatureTimeStampfullbordar en PAdES-B-T-signatur i ett anrop: den hashar signaturvärdet, hämtar token från den konfigurerade myndigheten och bifogar den som attribut för signaturtidsstämpel, vilket ersätter det tidigare trestegsutbytet som anroparen fick koppla ihop själv- När en nonce används kontrolleras att tokenen bär samma värde tillbaka, så att ett uppspelat eller utbytt svar avvisas i stället för att bäddas in i dokumentet
GetTimeStampStatusochGetTimeStampErrorrapporterar myndighetens egen status- och feltext, så att en avslagen förfrågan förklarar sig själv
Version 3.326.0
Tillagt
- PDFium-renderaren skriver nu samma bildformat som GDI+- och Cairo-renderarna.
RenderPageToFile,RenderPageToStreamochRenderPagesToFilesaccepterar BMP (alternativ 0), JPEG (1), PNG (5), GIF (6), TIFF (7) och G4 TIFF (10) efterSelectRenderer(3), i stället för att enbart acceptera BMP - JPEG-kvaliteten som ställs in via
SetJPEGQualityoch de aktiva TIFF-komprimeringsinställningarna gäller nu även PDFium-utdata, så att byte av renderare inte längre ändrar kodningen av den fil som produceras
Åtgärdat
- Begäran om PNG eller något annat icke-BMP-format från PDFium-renderaren returnerade tidigare 0 och lämnade efter sig en tom fil. Program som erbjöd val av renderare producerade tyst oläsbart utdata närhelst PDFium var den valda motorn
- Begäran till PDFium-renderaren om ett metafilformat den inte kan producera (WMF, EMF, EPS, EMF+, HTML5) rapporterar nu vilka format som är tillgängliga via
LastRenderErrori stället för att nämna BMP som enda alternativ
Version 3.324.0
Ändrat
- PDFium-renderaren matar nu dokumentet till motorn via en strömmande datakälla i stället för en enda kvarhållen buffert. Rendering och utskrift serialiserade tidigare dokumentet och kopierade det sedan igen till en sträng, så varje sida kostade dubbelt dokumentstorleken i minne; kopian är borta och PDFium läser endast de block den behöver
- Rendering av ett sidintervall till filer tolkar dokumentet en gång för hela bunten i stället för en gång per sida, så ett långt intervall läser inte längre om hela filen för varje bild den skriver
- Äldre PDFium-byggen som inte exporterar strömningsingångspunkten fortsätter att fungera oförändrat via minnessökvägen
Åtgärdat
- Renderarens röktest hittade de valfria PDFium- och Cairo-biblioteken en katalog för högt upp och hoppade tyst över båda motorerna; den hittar dem nu och övar de verkliga renderingssökvägarna
Version 3.323.0
Tillagt
CreateValidationReportochSaveValidationReportproducerar en strukturerad PDF/A- och PDF/UA-1-valideringsrapport i XML eller JSON. Varje fynd innehåller regel-id, den standard som äger den, ett kort regelnamn, ISO-klausulen den upprätthåller, en allvarlighetsgrad och antalet drabbade objekt, och rapporten avslutas med per-standard- och dokumentnivå-statistik över godkänd/underkänd- En standard som inte begärdes rapporteras som
not-checkedi stället för som en tyst godkänd, så att en delvis körning inte kan misstas för ett rent facit - Bygg-pipelines kan nu portvakt på ett regel-id eller en ISO-klausul i stället för att matcha delsträngar i prosa: rapportfamiljen för preflight renderar först en mänsklig rapport och konverterar texten till JSON, HTML eller CSV, medan valideringsrapporten sätts samman från rå kontroll-utdata och håller de maskinläsbara fälten intakta
Version 3.322.0
Tillagt
- Referensen dokumenterar nu de fyra externt deklarerade publika typerna som används över
TPDFlib-ytan och som tidigare saknade egen sida:TPDFlibProgressEvent,TPDFlibLogger,TPDFlibCertificateInfoochTPDFlibWatermarkBase, vilket slutför täckningen av publika händelse-, logg-, uppräkningsresultat- och vattenstämpel-typer
Version 3.321.0
Tillagt
CheckDocumentPolicyutvärderar deklarativa egna regler såsomFonts.NotEmbedded = 0,Security.Encrypted = noellerDocument.Pages <= 500mot dokumentet och rapporterar varje regel som godkänd eller underkänd med det faktiska värdet, vilket förvandlar en intags-port för förläggare, arkiv och tryckerier till konfiguration i stället för handskriven inspektionskod
Version 3.320.1
Åtgärdat
- Att rita text i ett PDF/A-läge utan att först ladda ett typsnitt felar inte längre: PDF/A kräver att varje typsnittsprogram är inbäddat, så den implicita genvägen till ett inbyggt typsnitt vägrades och lämnade inget typsnitt valt, och
DrawTextoch de övriga textanropen kraschade i stället för att rita - Den implicita typsnittssökvägen löser nu ett verkligt inbäddningsbart typsnitt medan ett PDF/A-läge är aktivt, så text ritad utan ett uttryckligt
AddTrueTypeFont-anrop bäddas in och förblir konform; ett direktAddStandardFont-anrop vägrades fortfarande under PDF/A - På värdar där inget inbäddningsbart typsnitt kan lösas faller ritandet tillbaka på de inbyggda måtten i stället för att felas och rapporterar konformitetsbristen via
LastErrorCode605, så att filen kan fångas innan den publiceras som konform
Version 3.320.0
Tillagt
GetDocumentFeatureReportreturnerar en strukturerad egenskapsrapport i ett enda anrop — dokumentmetadata, sid- och objektantal, krypteringstillstånd, typsnitts- och bildinventeringar, taggning och dispositioner, formulärfält, signaturer, bilagor och uppdelningen i byte per kategori — vilket ersätter de dusin separata frågor som en katalogiserings- eller intags-pipeline tidigare var tvungen att sätta samman
Version 3.319.0
Tillagt
SetCollectionView,AddCollectionField,SetCollectionSortochSetCollectionItemValuebygger PDF-portföljer ovanpå de befintliga bilagorna, så att en uppsättning inbäddade filer presenteras som ett bläddrbart paket med egna kolumner, sorteringsordning och värden per fil i stället för en vanlig bilagelistaGetCollectionViewochGetCollectionFieldCountrapporterar presentationsläget och antalet deklarerade kolumner för en laddad portfölj
Version 3.318.1
Åtgärdat
- Textextraktions-alternativ 12 (ignorera roterad text) tar nu bort roterade avsnitt oavsett hur de vrids: en kvarts varv medurs och en kvarts varv moturs behandlades tidigare olika, så sidoliggande marginalnoter kastades i en riktning och returnerades i den andra
- Samma alternativ behåller sned text som endast är skev, såsom en syntetisk kursiv, och toleransen skalas nu med textstorleken och sidtransformationen, så stora sneda rubriker kastas inte längre som om de vore roterade
Version 3.318.0
Tillagt
DecodeAllStreamsexpanderar de komprimerade strömmarna i ett dokument på plats, så att ett sparande producerar en kopia vars innehållsströmmar, metadata och struktur kan läsas direkt av diff-verktyg, forensisk granskning och support-arbetsflöden; bilder, prediktionsströmmar och korsreferensströmmar behåller sin kodning, och objektströmmar materialiseras först så att inget går förlorat
Version 3.317.0
Tillagt
SetTrappedochGetTrappeddeklarerar och läser dokumentets trapping-tillstånd som PDF/X kräver, skrivet som det/Trapped-namn som specifikationen kräver i stället för som en textsträngSetOutputIntentSubtypeochGetOutputIntentSubtypeomtagggar utdata-avsikten, så att en laddad färgprofil kan beskriva ettGTS_PDFX-tryckvillkor i stället för detGTS_PDFA1-arkiveringsvillkor som PDF/A-lägena skapar
Version 3.316.0
Tillagt
SetEncryptEmbeddedFilesOnlyochGetEncryptEmbeddedFilesOnlybegränsar AES-kryptering till inbäddade filer: dokumentet öppnas och renderas i alla läsare utan lösenordsprompt medan dess bilagor förblir krypterade, det vanliga arrangemanget för fakturor, medicinska journaler och ärendefiler vars försättssidor är offentliga men vars nyttolast inte är det
Version 3.315.0
Tillagt
- Textextraktions-alternativ 18 roterar avsnitt ritade vid 90, 180 eller 270 grader in i den horisontella läsrutan och grupperar varje kvarts varv separat, så att roterade marginalnoter, tabellrubriker och diagramaxeletiketter extraheras som läsbara rader i stället för att sammanflätas med den upprätta texten eller kastas
Åtgärdat
DASetTextExtractionOptionsaccepterar alternativ 16 (avbindestreckning) och alternativ 17 (orddelning vid teckenmellanrum) i stället för att förkasta dem, och den direkta extraktions-sökvägen vidarebefordrar nu alternativ 15, 16 och 17 till extraktorn, så att borttagning av understreck-regel, avbindestreckning och teckenmellanrum-delning tillämpas på filhandtag på samma sätt som på ett laddat dokument
Version 3.314.0
Tillagt
GetFontHasToUnicoderapporterar huruvida det valda typsnittet har en Unicode-mappning, och typsnittsinventeringen får ett motsvarandeHasToUnicode-fält per typsnitt samt enNoToUnicodeCount-sammanfattning, så att dokument kan kontrolleras för extraction-säkra och PDF/A-*u- eller PDF/UA-konverterbara typsnitt innan bearbetning
Version 3.313.0
Tillagt
SetPDFAModefår läge 8 för PDF/A-2u (ISO 19005-2 Level U), den konformitetsnivå som deklarerar Unicode-textmappningar utan att tillåta inbäddade filer, vilket slutför PDF/A-2-familjen vid sidan av de befintliga 2b- och 2a-lägena
Version 3.312.0
Tillagt
GetObjectByPathochGetObjectByPathCountläser valfri nod i objektträdet genom sökvägsuttryck såsomRoot/Pages/Kids[0]/MediaBox[2]ellerpages[0]/Type— typer, skalära värden, serialiserade former och elementantal i ett anrop, vilket ersätter handskriven objektvandring för metadata-undersökningar, efterlevnadskontroller och support-diagnostik
Version 3.311.0
Tillagt
SetBlackPointCompensationdeklarerar svartpunktskompensation (ON, OFF eller Default) för efterföljande ritande via PDF 2.0:s/UseBlackPtComp-grafiktillstånd, vilket låter prepress- och korrektur-utdata fastställa mörktonade ICC-konverteringar som tidigare var visningsprogram-specifika; dokumentversionen höjs automatiskt och PDF/A-lägena förkastar tillståndet
Version 3.310.0
Tillagt
SetCompressionLevelochGetCompressionLevelexponerar deflate-nivån för varje komprimering som biblioteket utför: 0 behåller den standardiserade SIMD-accelererade motorn, 1 gynnar dataflöde och 9 pressar arkiven minstaRecompressStreamsompackar varje vanlig FlateDecode-ström i det valda dokumentet på aktuell nivå och behåller den mindre kodningen per ström, vilket krymper dokument som ursprungligen skrevs med en snabb komprimeringsinställning utan att röra deras innehåll
Version 3.309.0
Tillagt
SetObjectStreamModeochGetObjectStreamModelägger till en tre-tillstånds objektströmstyrning: inaktivera, generera (standard) eller bevara, där bevara behåller den ursprungliga komprimerade grupperingen av den laddade filen's och skriver behållarna ordagrant, vilket gör konverteringar av befintliga PDF 1.5+-filer billigare eftersom ingenting packas upp eller omgrupperas
Ändrat
- I bevarande-läge flyttas medlemmar som redigerats sedan laddning upp till toppnivå-objekt så att deras ändringar sparas, och varje återstående komprimerad medlem väljer automatiskt den binära korsreferensströms-formen
Version 3.308.0
Tillagt
CheckDocumentStructurekör en en-anrops strukturell hälsokontroll: varje objekt och ström tvingas genom sin avkodare, vanliga Flate-strömmar verifieras strikt mot zlib-slutmärket så att trunkerad data fångas, och rapporten flaggar saknade trailers, olösliga kataloger och sidor, krypteringshanterare som inte stöds samt filer reparerade via byte-skanning med fynd per objekt och en sammanfattningsrad
Version 3.307.0
Åtgärdat
- Skadade dokument som använder korsreferensströmmar repareras nu framgångsrikt: råkonstruktionen återhämtar medlemmarna i komprimerade objektströmmar och, när inget trailer-nyckelord finns någonstans i filen, syntetiserar trailern från den nyaste nåbara dokumentkatalogen, så att en trasig startxref-offset inte längre gör sådana filer oöppningsbara
Version 3.306.0
Tillagt
ExportDocumentDataskriver dokumentets informationsnycklar, hela bokmärkesträdet och sidetikett-intervallen som redigerbar oformaterad text i det klassiska dump_data-radformatetImportDocumentDatatillämpar samma format tillbaka — informationsnycklar uppdateras, bokmärkesträdet byggs om med nästlingsnivåer och destinationssidor, och sidetikett-intervall ersätts — vilket möjliggör mass-bokmärkesredigering och metadata-migrering mellan dokument i ett anrop vardera hållet
Version 3.305.0
Tillagt
AuditDocumentSpacebryter ner dokumentet's byte-användning per kategori — bilder, typsnittsprogram och -ordböcker, innehållsströmmar, form-XObjects, objektströmmar, inbäddade filer, metadata, strukturträd, annoteringar, sidträd och övrigt — med objektantal, byte-totaler och procentandelar, vilket svarar på varför en fil är så stor som den är och vilken optimering som lönar sig bäst
Version 3.304.0
Tillagt
StructTreeItemCount,GetStructTreeItemTextochGetStructTreeItemIntPropertyläser strukturen för ett taggat dokument som en utplattad djupet-först objektlista — elementtyper (rå och rollmappad), alternativ och faktisk text, språk, titlar, markerat-innehåll-id, sidnummer samt förälder/barn-relationer
Ändrat
- Strukturträdsläsaren skyddar mot skadade dokument: referenscykler, objektnummer utanför intervall och träd nästlade bortom 64 nivåer klipps av i stället för att loopa
Version 3.303.1
Åtgärdat
- Genomskinliga underlagga-stämplar skapade av
StampTextochStampImageblöder inte längre ut sin opacitet i det ursprungliga sidinnehållet — transparenstillståndet är nu begränsat till själva stämpeln, så att sidan behåller sin fulla opacitet
Version 3.303.0
Tillagt
OverlayDocumentPagesstämplar sidorna av ett annat öppet dokument på det valda dokumentets sidor, en källsida per målsida, ovanför eller under det befintliga innehållet — brevhuvudspapper, sammanhängande sidbakgrunder och skannade formulärmallar i ett anrop- Käll-uttömning är konfigurerbar: stoppa, cykla genom källsidorna eller fortsätt upprepa den sista källsidan; ett ytterligare alternativ förhindrar att stämpeln förstoras bortom sin naturliga storlek
Ändrat
- Dokumentstämplar anpassas till målsidans CropBox och placeras upprätt på sidor som bär en
/Rotate-post, och varje källsida importeras en gång som en delad Form-XObject så att upprepade mallar aldrig duplicerar sina resurser
Version 3.302.0
Åtgärdat
- AES-256-lösenord bearbetas nu med SASLprep (RFC 4013) innan hashning, så att lösenord som innehåller icke-ASCII-mellanslag, mjuka bindestreck, kompatibilitetstecken eller kombinerande sekvenser öppnas korrekt i Acrobat och andra konforma läsare
- Öppnande av AES-256-dokument försöker först det standardiserade beredda lösenordet och faller tillbaka på den äldre byte-formen, så att filer som skrivits av tidigare utgåvor med icke-ASCII-lösenord fortsätter att öppnas
Tillagt
- Felkod 604 rapporterar ett AES-256-lösenord som förkastats av SASLprep eftersom det innehåller förbjudna kodpunkter eller bryter mot de dubbelriktade reglerna
Version 3.301.0
Tillagt
SplitDocumentToFilesspränger det valda dokumentet till en batch utdatafiler med ett fast antal sidor var, med hjälp av en%p-filnamnsplatshållare
Ändrat
- Batch-delning tolkar källdokumentet en gång och kopierar varje stycke från samma minnes-interna struktur, vilket ersätter den upprepade fulla omtolkning som en loop över
ExtractFilePagesutför för varje intervall
Version 3.300.0
Tillagt
CollateDocumentsslår samman sidor från flera öppna dokument till det valda dokumentet i rotation, och tar ett konfigurerbart antal sidor från varje källa per varv (A1, B1, A2, B2, …)CollateDocumentsExaccepterar en lista med sidintervall per källa där fallande intervall såsom3-1vänder en källa, så att fram- och omvända bak-skanner-passer slås samman till läsordning i ett anrop
Ändrat
- Sammanslagna kollationeringar importerar varje källa genom en enda objektkarta och flätar om per sidordning, så att typsnitt och bilder som delas inuti en källa skrivs endast en gång oavsett gruppstorlek
Version 3.299.0
Tillagt
SetDeterministicDocumentIDochGetDeterministicDocumentIDbyter trailer-filidentifieraren till ett reproducerbart värde så att identiska indata producerar identiska utdata-byte för bygg-caching, innehålls-adresserbar lagring och jämförelse av regression på byte-nivåSetDocumentIDSeedtillhandahåller ett uttryckligt frö för den reproducerbara filidentifieraren; utan ett frö härleds identifieraren från dokumentets metadata, versionshuvud och sidantal
Ändrat
- Reproducerbara filidentifierare uppdateras endast vid fulla sparanden; inkrementella uppdateringar och krypterade dokument behåller sin befintliga identifierare så att signaturer och lösenordsskyddade filer fortsätter att öppnas korrekt
Version 3.298.0
Tillagt
AddLinkToArticleThreadochSetOutlineArticleThreadkopplar sidhotspots och dispositioner till en artikeltråd eller bead via standard Thread-åtgärderAddActionNextArticleThreadochPDF_ACTION_BUILDER_THREADlägger till Thread-åtgärder i kedjade, formulär-, sid- och dokumentåtgärdsarbetsflöden
Ändrat
- Thread-åtgärdsmål använder stabila indirekta tråd- och beadreferenser och avvisar ogiltiga index utan att ändra målbehållaren
- Formulärfälts-åtgärdsbyggare avvisar ytterligare åtgärder medan PDF/A-läget är aktivt, vilket bevarar PDF/A-förbudet mot fält- och widget-
/AA-ordböcker
Version 3.297.0
Tillagt
- Referensen för
DLflat-DLL dokumenterar nu alla ANSI-ingångspunkter medA-suffix (char) och lägger till 353 referenssidor som speglar sina Unicode-motsvarigheter med korrektaPAnsiCharDelphi- ochconst char *C-signaturer BufferUtilities,DirectAccessFunctionalityochMiscellaneousFunctionshar byggts om som rena indexsidor för funktionsgrupper drivna av det delade kategorischemat, vilket rättar trasig markup, felmärkta sektioner och saknade chips- Navigeringsindexet och det delade sökindexet täcker nu hela DLL-ytan för både Unicode- och ANSI-anropare
Åtgärdat
- Tog bort den inaktuella
SetLogger-ingången, som inte hade något motsvarande symbol i källan; den dokumenterade egenskapen ärLogger
Version 3.296.0
Tillagt
AddAlternateImage,AlternateImageCount,GetAlternateImageInfoochRemoveAlternateImageerbjuder typad skapande och inspektion av bildvarianter för visning och utskrift- Alternativa bilder kan associeras med en valfri innehållsgrupp eller en medlemskapsordbok, medan en variant per basbild kan väljas som standard för utskrift
Ändrat
- Den inbyggda renderaren väljer nu alternativa bilder för valfritt innehåll när en basbild är dold och respekterar utskriftsstandarden på utskriftsdestinationer
FindImagesregistrerar nu alternativa bild-XObjects som nås från sidresurser så att importerade varianter får användbara bild-handles
Version 3.295.0
Tillagt
AddArticleThreadskapar standardefterföljande artikelnavigering med typade metadata, ordnade sidrektanglar, cirkulära bead-länkar och bead-arrayer per sidaArticleThreadCount,GetArticleThreadInfoochGetArticleThreadBeadinspekterar skapade eller importerade artikeltrådar med begränsad genomgång av skadade länkcykler
Ändrat
DeletePagestar nu bort artikeltrådar som förlorar alla beads och reparerar de cirkulära länkarna för överlevande trådar- Spårning av borttagna sidor behåller nu stabila indirekta sidreferenser så att disposition- och artikelupprensning inte kan förskjutas när sidträdsmarkören rör sig
Version 3.294.0
Tillagt
SearchTextBatchsöker genom flera textfrågor medan varje sidextraktion är resident och returnerar det ursprungliga nollbaserade frågeindexet med varje träffSearchTextBatchEacherbjuder samma enkel-passering-sökning via en streaming-callback med förloppsrapportering och avbrytande
Ändrat
- Textsökning med enkel fråga och batch delar nu en matchande kärna och bevarar semantik för skiftlägeskänslighet, hela ord och sidintervall, medan upprepad sidextraktion, textvikning och beräkning av träffgeometri undvikes
Version 3.293.1
Åtgärdat
- Rastrering av mesh-shading kompilerar nu på alla Delphi-versioner, vilket löser
E2089 Invalid typecastvid typkonverteringar från real till floating-point i GDI+-målaren - Parallell batch-sidrendering kompilerar nu på Delphi XE5 och XE6, där
System.Threadinginte är tillgängligt; äldre toolchains faller tillbaka på den seriella render-sökvägen som på icke-Windows - Uppräkning av skrivarfunktioner kastar inte längre ett incompatible-types-fel på äldre Delphi-versioner genom att anpassa
SetPrinter-anropet till resten av utskriftskoden - Uppräkning av certifikatarkiv bygger nu på RAD Studio 10.3 Rio, som tidigare avbröts med ett internt kompilatorfel vid optimering av uppräkningsrutinen
Version 3.293.0
Tillagt
- Medlemskapsordböcker för valfritt innehåll kan nu skapas, uppdateras och räknas upp med kompatibilitetsprinciperna
AnyOn,AllOn,AnyOffochAllOff - Nästlade PDF 1.6
/VEsynlighetsuttryck stöderAnd,OrochNotvia en kompakt prefix-representation som delas av Delphi och C++Builder
Ändrat
- Scope för valfritt innehåll, innehållsströmmar, fångade sidor, bilder, formulärfält och annotationer accepterar nu antingen ett grupp-handle eller ett medlemskap-handle
- Renderingen utvärderar först giltiga
/VE-uttryck och faller tillbaka på/OCGsplus/Pför missformade eller ej stödda uttryck
Åtgärdat
- Näslat valfritt innehåll kan inte längre göra innehåll synligt när en omslutande grupp eller ett medlemskap är dolt
- Medlemskapsordböcker utan effektiva valfria innehållsgrupper lämnar nu synligheten oförändrad såsom krävs av PDF-specifikationen
Version 3.292.0
Tillagt
EnumAttachmentsrapporterar nu skapelse- och ändringsdatum, hexadecimala checksummor, associated-file-relationer och filspecifikations-objektnummer för både dokument- och annotationsbilagorValidateAttachmentChecksumverifierar en bilagas payload mot sin lagrade checksumma på begäran, medan nynästlade filer nu automatiskt får checksumma-metadata
Åtgärdat
SetEmbeddedFileAFRelationshipaccepterar nu samma 1-baserade nästlade fil-index som resten av bilage-API:et, inklusive dokument med en enda bilaga
Version 3.291.0
Tillagt
DeduplicateResourceskonsoliderar nu exakta dubbletter av bild-, Form-, mönster-, shading-, funktions-, ICC-profil-, teckensnittsprogram-, CMap-, Type 3 CharProc-, nästlad-fil-, metadata- och PostScript-strömmar över ett inläst dokument- Resursdubblering erbjuder oberoende typ-flaggor, torr-körnings-analys, valfritt insamlande av föräldralösa objekt och detaljerad hashing-, jämförelse-, payload-, referens- och per kategori-statistik
Ändrat
- Dubbeldetektering kanoniserar kompletta strömordböcker oberoende av nyckelordning, hashar varje kandidat-payload en gång med SHA-256 och bekräftar matchande buckets byte för byte innan referenser omdirigeras
- Exakta ekvivalensgrupper behåller det lägsta objektnumret och generationen för deterministisk output, medan missformade direkta-objekt-cykler och semantiska ordboksskillnader förblir osammanslagna
Version 3.290.0
Ändrat
PurgeUnusedResourcesberäknar nu en transitiv beroendestängning över mönster med tilor, Type 3-glyphs, annotations-utseendetillstånd, ExtGState soft-mask-grupper, bilder, shadings och nästlade färgrymder- Standardinställningarna för upprensning aktiverar nu mönster-, Type 3-, utseende-, soft-mask- och bildberoendeanalys med oberoende flaggor för anropare som behöver en snävare skanning
- Nästlade innehållsprogram och beroendeingångar cachas, delade resurscope privatiseras före beskärning, och missformade cykler begränsas av active-stream- och djupvakter
Åtgärdat
- Sidresurser som endast används via bildfärgrymder, Indexed-baser, Separation- eller DeviceN-alternativ, Pattern-underliggande rymder, ICCBased-alternativ eller shading-ordböcker tas inte längre bort som oanvända
- Resurser som endast används av Type 3 CharProcs, tilmönster-celler, annotationsutseenden eller transparens-soft-mask-grupper tas inte längre bort från sitt eget eller ärvda scope
Version 3.289.0
Tillagt
PurgeUnusedResourcestar nu bort namngivna sidresurser som inte refereras av utvalda innehållslager och kan returnera detaljerad per kategori-statistik- Resursupprensning stöder nu sidintervall, torr-körnings-rapportering, förlopp och avbrytande, rekursiv Form XObject-analys, borttagning av föråldrade ProcSet och valfritt insamlande av föräldralösa objekt
Ändrat
- Resursanalys följer nu PDF-namnens skiftlägeskänslighet, ärvda Form-resurser, anpassade färgrymder för inline-bilder och alla sju standard-resurskategorier
- Upprepade Form-program cachas, använda-resurs-uppsättningar använder sorterad uppslagning, och ordboksingångar tas bort i fallande ordning för förutsägbar prestanda vid stora dokument
Åtgärdat
- Borttagning av ordboksingångar ogiltigförklarar nu nyckelindex för stora ordböcker så att senare uppslagningar inte kan returnera inaktuella ingångar
- Missformade strömmar och okända operatorer bevarar som standard sitt kompletta resurscope, medan delade eller ärvda resursordböcker klonas före mutation
Version 3.288.0
Tillagt
- Digitala signaturer kan nu avge kompletta DocMDP-certifierings- och FieldMDP fältlås-strukturer med strukturella tillståndsrapporter för varje vald signatur
- RFC 3161-dokumenttidsstämplar, signaturtidsstämplar, PAdES-B-T-token-injektion, certifikatkedje-validering, OCSP-bevis och DSS- eller VRI-valideringsmaterial har nu kompletta arbetsflöden för skapande och verifiering
- RichMedia-annotationer stöder nu nästlade tillgångar, aktiverings- och avaktiveringsinställningar, poster-utseenden, uppräkning, extraktion och borttagning
- Affischutskrift stöder nu vektor-sidutläggning, överlappnings- och beskärningsmarkörer, hard-margin-medveten placering och återanvändbara tilplaner
- Taggade tabeller avger nu semantisk Table-, TR-, TH- och TD-struktur med stabila identifierare, header-associationer, spans, upprepade headers och artefakt-dekoration
- Visaren erbjuder nu tangentbords-tillgänglig AcroForm-redigering för text-, val-, kryssrut-, radio- och tryckknapp-fält medan åtgärder skickas till värdprogrammet
Ändrat
- Type 1-funktionsbaserade och Type 4 till 7 mesh-shadings renderas nu via naturlig funktionsutvärdering och begränsad mesh-tessellering
- ICCBased-färgrendering delar nu cachade transformationer över bilder och shadings medan kalibrerad färgrymds-beteende bevaras
- Inkrementella sparanden bygger nu om objektströmmar och korsreferensströmmar konsekvent, och valda signaturer verifieras mot sin egen signerade revision
Åtgärdat
- SHA-1 signatur-tidsstämpelförfrågningar hashar nu undertecknarens signaturvärde med SHA-1 istället för att falla tillbaka på SHA-256
- Avvisade fältlås-ersättningar kastar inte längre bort en tidigare giltig fältlås-konfiguration
- Radio-widgets med dubblerade utseendetillståndsnamn bevarar nu den valda widgeten och håller syskon-widgets av
Version 3.287.0
Ändrat
- Inline-bildordböcker följer nu PDF-gränser för kommentarer, avgränsare, literals, hexadecimaler, arrayer och ordböcker med begränsad nästling
- Inline-bild-payloads använder nu formatmedveten terminering för raw-, DCT-, ASCII85-, ASCIIHex-, RunLength- och Flate-data
- Upptäckt av Flate-payload utför nu en begränsad inflate från innehållsströms-offsetet med exakt komprimerad-byte-redovisning, medan kedjade förlustfria filter delar ett end-to-end output-tak
- ASCII85-, ASCIIHex-, LZW-, prediktor-, färgprofil- och hjälp-bildströmmar tillämpar nu begränsat mellanliggande output utan för stora tillfälliga allokeringar
Åtgärdat
- Missformade eller avkortade inline-bilder läser inte längre utöver källdata, loopar på oavslutade värden eller behåller inaktuell tillstånd över dekoder-återanvändning
- Packade bildrader beräknar nu komponentbitar före byte-avrundning, vilket förhindrar felaktiga längder för låg-bit RGB- och flerrads-bilder
- Resursfärgrymder bevarar nu sina ursprungliga namn medan de härleder Lab-, indirekta ICCBased- och DeviceN-komponentantal och avkodar Indexed-palett-strömmar under strikta gränser
- Inline-bildgränser avvisar nu konsekvent ogiltiga dimensioner, bitdjup, ej stödda filter, osäkra filterkedjor, komprimerade strömmar och tvetydiga slutmarkörer
- Indexed-färgrendering validerar nu varje palettåtkomst och avvisar avkortade uppslagsdata istället för att läsa utöver den avkodade tabellen
- PNG-prediktorer 10 till 15 avkodas nu korrekt för Flate- och LZW-strömmar, avvisar ogiltiga radfilter och validerar alla rad- och tillståndsstorlekar före allokering
- JPEG- och JPEG 2000-payloads verifierar nu sina kodade dimensioner, komponenter, precision, markörstruktur, box-längder och avkodade lagringsavtryck före bildallokering
- Inline-bildvalidering begränsar nu både packad och utökad bitmap-lagring och avgränsar ICC-profiler, JBIG2-globals och terminala filterparametrar
- Binära filter-payloads som innehåller inbäddad slutmarkör-text fortsätter nu till den första kandidaten som klarar begränsad formatvalidering
Version 3.286.0
Ändrat
- Tokenisering av innehållsströmmar följer nu PDF:s gränser för blanksteg, kommentarer, avgränsare, literalsträngar, hexadecimalsträngar och namn
- Textdelning och resursersättning använder nu geometriskt växande utmatningsbuffertar för linjär bearbetning av stora innehållsströmmar
- Återanvändbara innehållsströmprocessorer återställer nu härledd utmatning och parsartillstånd före varje
Process-anrop
Åtgärdat
- Felformade eller avkapade literal- och hexadecimalsträngar läser inte längre bortom källbufferten och avger inte någon extra tom token
- Resursersättning bevarar nu skiftlägeskänslig PDF-namnsemantik, accepterar valfria inledande snedstreck och uppdaterar dubblerade mappningar deterministiskt
- XObject- och skuggningsoperander i början av en ström exkluderas nu från textutmatning, medan omatchade återställningsoperatorer inte längre avbryter senare sparade grafiktillstånd
Version 3.285.0
Ändrat
- LZW-kodning använder nu ordlistouppslag i konstant tid och buffrade strömskrivningar, medan avkodning använder kompakta prefix- och suffixtabeller med geometrisk utmatningstillväxt
- Avkodning av Flate-prediktorer bearbetar nu rader direkt i utmatningsbufferten och stöder packade, 8-bitars och 16-bitars TIFF-sample med godtyckligt antal färger
- Lagrade Deflate-strömmar skriver nu till ett exakt fördimensionerat resultat, och zlib-omslutningar frigör tillfälliga buffertar säkert när komprimering eller dekomprimering misslyckas
Åtgärdat
- Ändringar av LZW-kodbredd följer nu PDF:s
EarlyChange-semantik över 9-bitars till 12-bitars koder, inklusive ordliståterställningar ochEarlyChange=0 - LZW-avkodning avvisar nu ogiltiga framtida koder och avkapade bitströmmar utan att läsa bortom källbufferten
- PNG-prediktorer använder nu en pixels uppåtrundade bytebredd, bevarar tidigare avkodade rader och fyller ut en partiell sista rad på säkert sätt
- Avkodning av TIFF-prediktorer hanterar nu 1-bitars, 2-bitars, 4-bitars, 8-bitars och 16-bitars komponenter konsekvent i både LZW- och Flate-vägar
Version 3.284.0
Ändrat
- Buffertsökningar skannar nu fasta 64 KiB-block, använder byteuppslagstabeller för mängdmedlemskap och bevarar anroparens position över alla sökvägar
- Unicode-, Latin-1-, hexadecimala sammandrags- och ARC4-konverteringar reserverar nu avgränsad utmatning en gång i stället för att upprepade gånger växa strängar eller tillfälliga arrayer
- ASCII85-kodning läser nu indataströmmar i 32 KiB-block, medan avkodning använder exakt heltalsaritmetik och skriver direkt till en fördimensionerad utmatningsbuffert
- MD5-stränghashning undviker nu en tillfällig minnesström, sammandragsjämförelse granskar varje byte, och ARC4-nyckelschemaläggning allokerar inte längre en utökad nyckelarray
Åtgärdat
DistanceToAnyBytereturnerar nu rätt offset bortom sitt första block i stället för att läsa samma prefix igen och räkna skippade byte för många- Strömbaserade buffertläsningar hedrar nu det faktiska antal byte som anpassade strömmar returnerar, krymper resultat och flyttar positionen endast med mottagna byte
- Minskningar av buffertlängd begränsar nu den aktuella positionen, och nil-pekare eller strömkällor beter sig som tomma indata i stället för att exponera ogiltigt minne
- Latin-1-avkodning mappar nu hela byteintervallet 0x00-0xFF i stället för att ersätta byte 0x7F-0xFF
- ASCII85-avkodning bevarar nu den giltiga maximala 32-bitarsgruppen
s8W-!och stannar vid den första slutmarkören utan förlust vid flyttalsgränser
Version 3.283.0
Tillagt
TPDFlibSignatureVerifierkan nu räkna upp signaturfält och CMS-signerare, öppna filer, strömmar eller strängar samt verifiera ett valt fält och en vald signerare efter index eller fältnamn- Detaljerade verifieringsrapporter skiljer nu kryptografisk integritet från täckning av signerad revision, täckning av aktuell fil, senare revisioner, strikt validering av Contents-gap och inbyggda kryptofel
Ändrat
- Validering av fristående CMS strömmar nu båda ByteRange-segmenten genom Windows CryptoAPI i avgränsade bitar i stället för att materialisera hela PDF-filen i minnet
- Signaturfält under nästlade AcroForm Kids-arrayer och ärvda
/FT /Sig-poster räknas nu upp med fullt kvalificerade namn, och direkta signaturvärdesordlistor stöds
Åtgärdat
- ByteRange-validering avvisar nu spill, överlappning, avkapning, ett gap som inte är exakt den valda hexadecimala
/Contents-tokenen och en signerad revision som inte slutar vid sitt eget%%EOF - Certifikatuppslag faller inte längre tillbaka på ett orelaterat inbäddat certifikat när den valda CMS-signeraridentifieraren inte har någon exakt matchning av utfärdare och serienummer
- Inkrementella uppdateringar som använder korsreferensströmmar inkluderar nu korsreferensströmobjektets egen typ 1-post, vilket hindrar strikta PDF-validerare från att rapportera en saknad egenpost efter signering
Version 3.282.1
Ändrat
- Fullständiga sparningar bygger nu om importerade objektströmmar från den levande objektgrafen, bevarar privata trailer-rötter och behåller fria objektgenerationer utan att återanvända strukturella objektnummer
- Korsreferensströmmar dimensionerar nu sina offsetfält för stora filer, förallokerar sin nyttolast, inkluderar sin egen post och bevarar trailer-tilläggnycklar
Åtgärdat
- Packning av objektströmmar skriver nu verkliga
/ObjStm-behållare och typ 2-medlemsposter i stället för att endast växla till en xref-ström - Skräpsamling skriver inte längre saknade objektnummer som använda poster vid offset noll och avger nu en länkad friobjektkedja i både klartext- och strömkorsreferenser
- Inlästa packade PDF-filer kan nu sparas upprepade gånger med packning på eller av utan att behålla inaktuella objektströmmar, förlora levande medlemmar eller kräva korsreferensreparation
Version 3.282.0
Tillagt
- Importerade ICCBased-färger använder nu den inbäddade ICC-profilen över vektorteckning, funktions- och meshskuggningar, indexerade paletter, råa bitmap-, CCITT- och JBIG2-bilder, CMYK JPEG-bilder och JPEG 2000-bilder
Ändrat
- ICC-transformeringar använder nu en avgränsad Windows Color System-uppslagstabell med multilinjär interpolation, vilket ersätter den tillfälliga PNG-tur-och-retur som användes vid bildrendering
- Renderaren hedrar nu renderingsintentioner för innehållsström och grafiktillstånd, ICCBased
/Range, bildens/Decodeoch färgnyckelmasker i ursprungsdomänen samtidigt som profilens kanalantal valideras mot PDF:s färgrymdsordlista - Upprepade användningar av samma profil och renderingsintention delar nu en uppslagstabell över vektorfärger, mönster, skuggningar och bilder
Åtgärdat
- Krypterade ICC-profilströmmar dekrypteras nu endast medan de avkodas och återställs därefter, och inbäddade profiler komprimeras inte längre två gånger vid skrivning av bildutdata
Version 3.281.0
Tillagt
- Den inbyggda GDI+-renderaren ritar nu importerade PDF-funktionsbaserade skuggningar samt friforms-, gitter-, Coons- och tensormeshskuggningar (typer 1 och 4-7), inklusive transparens och urklippning
- Skuggordlistor stöder nu komponentfunktionsarrayer, kalibrerade Lab-, CalGray- och CalRGB-rymder, Separation- och DeviceN-toningstransformationer, PatternType 2 Background-fyllningar och BBox-urklippning över GDI+- och Cairo-renderare
Ändrat
- Typ 1-skuggningsfunktioner använder nu avgränsad adaptiv färgsampling med extra kvartscellsprober för högre noggrannhet vid smala detaljer och lägre arbetsinsats på konstanta eller jämna regioner
- PatternType 2-matriser runt meshskuggningar komponeras nu exakt en gång i både GDI+ och Cairo, vilket bevarar förflyttad, skalad och roterad mönsterplacering
- Meshens färgkomponenter interpoleras nu i sin källfärgrymd före funktionsutvärdering och omvandling till RGB, vilket bevarar icke-linjära funktioner, DeviceCMYK-gradienter och rätt ordning för hanterade färgtransformeringar
- Coons- och tensorytor använder nu avgränsad underdelning med enhetspixelfel för jämnare utdata med hög krökning vid stora renderingsstorlekar
- Krypterade skuggnings- och funktionsströmmar avkodas genom dokumentets krypteringsåteranrop, och typ 5-vertexposter respekterar sin krävda bytejustering
Version 3.280.1
Åtgärdat
MergeFileList/MergeFileListFast/MergeFileListStrictläckte ettTSmartPDFReader/TSmartPDFDocument-par (och allt de äger) när en icke-PDF-fil fanns i sammanslagningslistan: läsaren och dokumentet konstruerades före dettry-block som frigör dem, så ett analysfel på den felformade filens innehåll lämnade den redan konstruerade läsaren föräldralös i stället för att städas upp av den omgivande undantagshanteraren; konstruktionen sker nu inuti det skyddandetryi både den enskilda filens och flerfilens förskanningsvägar- Analys av meshskuggning (
TPLMeshShading.Parse, skuggningstyper 1 och 4-7) läckte det avkodade/Function-objektet vid varje analys - varje tidig utgångsväg och normal fullbordan hoppade över frigörandet; funktionen frigörs nu i ettfinally-block oavsett hurParseavslutas TPDFlibSignDoc.Closenollställer nu sina smartläsare-/dokument-/infofält efter att ha frigjort dem, och undantagsvägarna iOpen,OpenStreamochOpenStringfrigör nu delvis konstruerade smarta objekt i stället för att endast rensa strömreferensen, vilket förhindrar en läcka när öppning av ett signeringsmål misslyckas halvvägs
Version 3.280.0
Tillagt
- Felkategoriuppräkning
TPDFlibErrorCategory(ecSuccess/ecStructure/ecSave/ecCrypto/ecGeneric/ecCompliance/ecAcroForm) lagd ovanpå den befintliga numeriskaLastErrorCode-taxonomin, så att anropare kan klassificera fel utan att memorera kodintervall; exponerad viaTPDFlib.LastErrorCategory,TPDFlib.ErrorCategory(Code)ochTPDFlib.ErrorMessage(Code) - Formulärfältens felkoder 701-704 (fält hittades inte, fältet är skrivskyddat, ingen AcroForm, ogiltigt värde) med läsbara meddelanden, vilket låter anropare skilja "fältet är låst" från "inget sådant fält" i stället för att få ett enda generiskt fel
SetFormFieldValueForced-tvingad skrivvariant som kringgår skrivskyddsfiltret, används internt avSetFormValues(SkipReadOnly=False)så att massimporter fortfarande kan skriva över låsta fält när anroparen uttryckligen väljer det
Ändrat
SetFormFieldValuesätter nuLastErrorCodetill 701/702/703 vid fel (fält hittades inte / skrivskyddat / ingen AcroForm) i stället för att tyst returnera 0;LastErrorCategoryär en icke-konsumerande läsning så att anropare kan granska kategorin innan den numeriska koden hämtas
Version 3.279.0
Tillagt
ReplacePageRangesersätter visuellt sidinnehåll från ett annat öppet dokument utan att ändra antalet målsidor eller målsidornas objektidentiteter, och bevarar bokmärken, länkar, anteckningar och formulärwidgetar som redan är kopplade till dessa sidor
Ändrat
- Sidakopiering över dokument skapar och tar inte längre bort en extra platshållarsida innan det begärda intervallet importeras
Version 3.278.0
Tillagt
PrintPagesAdvancedtillämpar inställningar för kopior, kollationering, dubbelsidig utskrift, orientering, färg, kvalitet, pappersstorlek och inmatningsfack på godtyckligaPrintPages-intervalluttryck samtidigt som en skrivarprofil och ett utskriftsjobb behålls
Ändrat
- Avancerade utskriftsinställningar valideras innan jobbet startar, positiva utskriftskvalitetsvärden över de fyra namngivna förinställningarna tillämpas som DPI, och pappers- eller inmatningsfacksidentifierare kan använda hela det positiva intervall som motsvarande
DEVMODE-fält stöder
Åtgärdat
- Återställning av skadade korsreferenser skickar nu sina avgränsade blockläsningar genom den traditionella
TStream.Read-överriden på Win64, vilket bevarar instrumentering och anpassat strömbeteende samtidigt som 64 KiB sekventiell I/O behålls
Version 3.277.0
Ändrat
- Återställning av skadade korsreferenser skannar nu källdata i 64 KiB sekventiella block i stället för att söka en gång för varje matchande tecken, vilket håller hjälpmeminnet avgränsat samtidigt som det skalar till stora PDF-filer och icke-minnesströmmar
- Återställningen validerar fullständiga token för indirekta objekt, hoppar över objektliknande data inuti kommentarer, strängar och strömmar, bekräftar strömslut med en följande
endobj-token, bevarar rubriker som delats över läsgränser och väljer den sista giltiga trailerordlistan
Åtgärdat
- Trailer-rekonstruktion stöder nu nästlade ordlistor och avgränsartext inuti literalsträngar och avkapas inte längre till de första 2048 byten eller det första till synes
>>-paret
Version 3.276.0
Tillagt
ActivateWebLinksochActivateWebLinksExskannar befintlig sidtext en gång per sida och skapar icke-dubblerade URI-länkanteckningar för HTTP, HTTPS,www., FTP,mailto:och blotta e-postmål med valbara alternativ för detektering och ram- Genererade länkar använder matchad teckengeometri, precisa fyrhörningar för roterad eller sned text när det tillåts, PDF/A-utskriftsflaggor, förlopps- och avbrytningsstöd samt återställning av valda sidor; taggade PDF- och PDF/UA-dokument skyddas från ofullständiga strukturträdsuppdateringar
Ändrat
SetAutoCreateWebLinksanvänder nu samma gränsmedvetna detektor och målnormalisering när länkar skapas för nyritad text, och lägger till stöd förwww., FTP och blotta e-postadresser
Åtgärdat
- Uppdatering av anteckningens
/Contents-, namn-, datum-, titel- eller ämnesegenskaper skriver inte längre över undertypen av en befintlig åtgärdsordlista, så URI- och andra åtgärder förblir giltiga efter anteckningens metadatandringar
Version 3.275.0
Tillagt
ExtractPageRangeText,SavePageRangeTextToStreamochSavePageRangeTextToFileextraherar ett analyserat sidintervall i en genomgång med anropardefinierade sidseparatorer; ström- och filutmatning skriver UTF-8-data inkrementellt så att stora dokument inte kräver en komplett dokumentstor textbuffertSetPageBoxRangeochRemovePageBoxRangetillämpar sidgränsändringar över standardsyntaxen för sidintervall samtidigt som anroparens valda sida bevarasSetPageTransitionRangeochSetPageTransitionRangeExtillämpar äldre eller utökade presentationsskiften på sidintervall med per-sida-förlopp och avbrytningsstödGeneratePageThumbnailsrenderar begärda sidor direkt till återanvändbart minne och bifogar deras/Thumb-bilder utan mellanfiler eller nästlade förloppsåtgärder
Version 3.274.0
Åtgärdat
- GDI+-rendering av axiala skuggningsmönster hedrar nu PDF:s
/Extend-array:SetupGDIPlusPatternskickarWrapModeClampnär någon av ändarna utvidgas (i linje med Cairo-backend) i stället för att alltid användaWrapModeTile, så att ändfärger målar området utanför gradientaxeln korrekt
Tillagt
- Rullningshintbubblan (
"Page N / M") som visas när den vertikala rullningslisten dras göms nu automatiskt efter 3 sekunders inaktivitet via enWM_TIMER-hanterare, så att den inte längre blir kvar tills en separat rullningshändelse stänger den ZoomInStep/ZoomOutStepsnäpper nu tillActualSize(100 %),FitWidth- ochFitPage-procent när de hamnar mellan aktuell zoom och nästa förinställning på stegen med 14 steg, i linje med beteendet hos professionella PDF-visare- Visarens disksidcache skriver en byggversionsmarkör (
cache.version) och rensar hela cacheroten när biblioteksversionen ändras, så att en bygguppgradering aldrig återanvänder inaktuella bitmappar som renderats av en äldre kodväg
Version 3.273.1
Åtgärdat
- Objektströmbehållar- och xref-strömobjekt som skapades vid sparande läckte eftersom de kringgick
TPDFStructure.AddObject-registreringen; båda anropsplatserna använder nu fabrikenNewStreamWithDictför ägarskapsspårning, vilket eliminerarTPDFStream-läckan som testköraren rapporterade underReportMemoryLeaksOnShutdown - Korsreferensströmmens
/Sizevar fel med ett: den måste vara ett över det högsta objektnumret i hela filen, och xref-strömmen är själv ett indirekt objekt numreratMaxObj+1, så/Sizeär nuMaxObj+2
Ändrat
- Peephole-optimeraren för innehållsströmmar tar nu också bort identitetstextmatrisoperatorer (
1 0 0 1 0 0 Tm) och täcker bådecmochTmmed samma sexoperanders identitetskontroll - Mark-sweep-skräpsamling bevarar objekt 1 (
/Linearized-parameterordlistan) när källdokumentet lästes in lineariserat, eftersom den ordlistan aldrig refereras från/Rootmen måste överleva
Version 3.273.0
Tillagt
- Objektströmpackning vid sparande (
TPDFDocument.PackObjectsIntoStreams) samlar in kvalificerade icke-ström-indirekta objekt, serialiserar dem till PDF 1.5-objektströmmar (/Type /ObjStm) med Flate-komprimering och avger en binär korsreferensström (/Type /XRef) med typ 0-, typ 1- och typ 2-poster, vilket minskar storleken på sparade filer med 10-40 % på objekttäta dokument TPDFlibSaveOptions.PackObjectStreams-flaggan plus API:ernaTPDFlib.SetPackObjectStreams/GetPackObjectStreams; aktiverad som standard, automatiskt styrd av PDF-version (1.5+ aktiverar packning och xref-strömmar, 1.4 och lägre behåller den traditionella klartext-xref:en för kompatibilitet), ochTPDFlib.GetLastSaveUsedObjectStreamsrapporterar om det senaste sparandet faktiskt packade
Version 3.272.0
Tillagt
- Mark-sweep-skräpsamling av orefererade indirekta objekt (
TPDFDocument.GarbageCollectUnusedObjects) går genom objektgrafen från trailer-rötterna (/Root,/Info,/Encrypt) och tar bort varje indirekt objekt som inte är nåbart, vilket stoppar filstorlekstillväxten som ackumuleras när sidor tas bort och deras teckensnitts-, innehålls- och XObject-resurser blir föräldralösa TPDFlibSaveOptions.GarbageCollect-flaggan plus API:ernaTPDFlib.SetGarbageCollect/GetGarbageCollectlåter anropare välja skräpsamling vid fullständigt sparande (av som standard för bakåtkompatibilitet), ochTPDFlib.GarbageCollectObjectskör skräpsamlingen omedelbart och returnerar antalet borttagna föräldralösa objekt
Version 3.271.0
Tillagt
- Peephole-optimeraren för innehållsströmmar (
TPDFContentPeepholeOptimizer) skriver om en analyserad sidas innehållsström före Flate-komprimering och tar bort semantiskt överflödiga PDF-operatorer: identitets-cm-matriser, tommaq/Q-par, tommaBT/ET-objekt, no-op-sökvägar som avslutas avnutan urklipp, dubbla grafiktillståndssättare (färg, linjebredd, cap/join, streck, texttillstånd) och dödanefter en ritoperator - alla transformeringar är utmatningsekvivalenta så att synligt sidutdata är oförändrat TPDFlibSaveOptions.OptimizeContentStreams-flaggan och motsvarande API:erTPDFlib.SetOptimizeContentStreams/GetOptimizeContentStreamslåter anropare välja in eller ut peephole-omskrivningen underCompressContent/CompressPage; aktiverad som standard
Ändrat
TPDFDocument.CompressPagevidarebefordrar nu optimeringsflaggan till sidträdet så att peephole-passet körs inutiTPDFPageTree.Compressföre den befintliga Flate-komprimeringen, vilket staplar minskning på operatornivå ovanpå komprimering på bytenivå
Version 3.270.0
Tillagt
- Nya
PLParseDefaultAppearanceavkodar en/DA-byte-sträng för standardutseende (ISO 32000-2 12.7.4.3) till typsnittsresursnamn, teckenstorlek och fyllnadsfärg och täcker färgoperatorernarg,kochG, så att generatorer för formulärfält och anteckningsutseenden kan rita text med författarens avsedda stil
Ändrat
- Sammanställning av sidans innehållsström (
TPDFRenderer.GetContents) sammanfogar nu flerdelade/Contents-arrayer via enTStringBuilderi stället för upprepadeResult := Result + chunk, vilket eliminerar den O(n^2)-strängtillväxt som straffade sidor med många innehållsströmsdelar
Version 3.269.0
Tillagt
- Nya
BeginMarkedContent/EndMarkedContentskriver inline-sekvenser av markerat innehåll med tillgänglighetsegenskaper (/Alt,/ActualText,/Lang,/E) direkt i BDC-egenskapslistan enligt ISO 32000-2 14.9.2–14.9.5, så att skärmläsare och tillgänglighetsverktyg kan läsa ersättningstext utan post i strukturträdet - Anteckningsläsaren exponerar
GetAnnotEffectiveBorder, som implementerar Errata #287-precedensen (ramstilsordlistan/BSvinner över den äldre/Border-arrayen) och löser bredd, stil och streckmönster i ett anrop - Signaturdokument exponerar
GetSignatureSeedValueför att läsa seed-värdesordlistan (/SV, ISO 32000-2 12.7.5.5 Tables 236–237): krävt filter, tillåtna SubFilter och tillåtna sammandragsmetoder, så att en signerare kan respektera de begränsningar författaren bäddade in GetSignatureFieldLockläser/Lock-FieldMDP-seed-ordlistan (Table 238): åtgärd (/All,/Include,/Exclude) och de berörda fältnamnen som måste vara låsta vid signeringstillfället
Version 3.268.0
Tillagt
- Nya
PLParsePDFDatetolkar datumsträngar enligt ISO 32000-2 7.9.4 (D:YYYYMMDDHHmmSSOHH'mm') till en lokalTDateTime, respekterar det obligatoriskaD:-prefixet, fältberoendestegen (varje fält först när alla föregående fält finns) och UT-offseten (+/-/Zmed valfri apostrofminut) och returnerar den dokumenterade tidpunktens lokala motsvarighet - Avkodning av textsträngar (
PLDecodeTextString) känner nu igen PDF 2.0:s UTF-8-BOM (EF BB BF) enligt 7.9.2.2.1, så att UTF-8-skriven metadata avkodas korrekt i stället för att feltolkas som PDFDocEncoding - Filspecifikationer exponerar
GetFileName, som respekterar PDF 2.0:s precedence (Path > UF > F) enligt Errata #444, samt åtkomstfunktionernaGetEmbeddedFileStreamochGetRelatedFilesför/EF- och/RF-ordlistorna - Anteckningsläsare exponerar hjälpfunktionerna för utseendeprecedens
GetAnnotNormalAppearance,GetAnnotDefaultAppearanceochGetAnnotOffStateAppearance, som implementerar Errata #23/#34/#42/#170-reglerna (AP/N är auktoritativ; DA är reserven som byte-sträng; Off-tillståndet finns under namnetOff) - PDF/UA-valideringen rapporterar en ny kod 10045 när en icke-standard strukturtyp inte terminerar vid en standardtyp genom rollmappningskedjan (ISO 14289-1:2014 7.1), med cykelskydd till ett djup av 8
- PDF/A- och PDF/UA-typsnittsrevisioner validerar nu att inbäddade CIDFontType2-typsnitt bär en
/CIDToGIDMapvars värde antingen är namnetIdentityeller en ström, inte blott närvarande (ISO 32000-1 9.7.4)
Ändrat
- Namnträdsuppslag (
NameTreeLookup) binärsöker nu i den sorteradeNames-arrayen enligt ISO 32000-2 7.9.6 innan den faller tillbaka till linjär skanning, vilket gör stora EmbeddedFiles/JavaScript/Dests-uppslag från O(n) till O(log n) på överensstämmande filer - PDF/UA-uppsättningen standardstrukturtyper utökades med PDF 2.0-tilläggen (
Artifact,DocumentFragment,FENote,MarkedContent,Title) så att rollmappningens ingen-omkartering- och kedjetermineringskontroller känner igen hela taggvokabulären
Version 3.267.0
Tillagt
EnumPageContentStatesExkan rekursivt räkna upp Form XObject-instruktioner med konfigurerbart djup, cykelskydd och djupförst-samordning- Innehållssnapshots exponerar nu anropsträdsidentitet, omslutande ström och föräldra-XObject-information, identitet för resursomfång, Form-genomgångsstatus och antal ättlingar
- Fristående innehållsspårare kan registrera omfångsdefinierade typsnitt och initiera isolerat Form-exekveringstillstånd med matrissammankoppling och urklipp av begränsningsruta
Ändrat
- Rekursiv innehållsspårning väljer varje Form-resursordlista oberoende, ärver anropande resurser för kompatibla äldre formulär, bevarar ärvd typsnittsidentitet och cachar avkodade Form-program över upprepade anrop
Version 3.266.0
Tillagt
- Textkörningar som returneras av
GetTextRunsbär nu glyfens ursprung (OriginX/OriginY) och de fullständiga textmatriskomponenterna (Tm11/Tm12/Tm21/Tm22/TmDX/TmDY) som fångats genom att spela upp BT, Td, TD, Tm och T* tillsammans med visningsoperatorerna, så att konsumenter kan lokalisera glyfer utan ett separat texttrattpass - Avkodning av meshskuggning dirigerar nu Lab-, CalRGB- och CalGray-färgrymder genom färghanteraren i stället för att falla till svart, vilket ger korrekta fyllningar för icke-DeviceRGB friforms- och coons-plåster
- Svartning avger nu en verklig
/Subtype /Redact-anteckning med/Rect,/ICinteriörfärg och valfri överläggstext jämte den befintliga innehållsborttagningen, så att svartningsmedvetna visare markerar det sanerade området - Biblioteksoperationer avger strukturerade loggposter vid inläsnings- och sparningsgränser genom den tidigare vilande
Logger, med ISO-8601 UTC-tidsstämplar och en cachadTStreamWriter-filsänka som inte längre öppnar loggfilen igen för varje rad - Nya
Tests.Memory-fixturen vaktar create/draw/save/free- ochNewDocument-cykler mot heapregression, och konsoltestköraren aktiverar nuReportMemoryLeaksOnShutdown - EMF-tolkningen räknar nu okända eller privata poster via egenskapen
UnknownRecordCountså att tysta metafilglappar blir observerbara
Ändrat
- Uppslag av ordlistenycklar (
TPDFDictionary.FindIndexByKeyName) bygger en lat hash-index med öppen adressering för ordlistor med fler än 16 poster, vilket förvandlar den linjära skanning som dominerade renderarens Resources/ColorSpace/Font/ExtGState-uppslag till en O(1)-sondering - sRGB-gammaomvandling (
XYZ2RGB) använder en gemensam uppslagstabell på 4096 poster i stället för trePower(x, 1/2.4)-anrop per pixel, och Lab-till-XYZ-kubningen använder nu direkta multiplikationer; båda är den dominerande kostnaden per pixel vid avkodning av Lab- eller ICC-baserade bilder - Siduppslag (
TPDFPageTree.GetPage) returnerar den cachade sidordlistan vid upprepad åtkomst i stället för att gå igenom sidträdet vid varje anrop - Operatorutskick för innehållsströmmar (
ContentOperatorFromName) bucklar de 73 operatorerna efter första byte, vilket kortar den linjära skanningen per token till en kort återstående jämförelse - PDF/A-färgrymdsrevisionen rekurrerar nu in i bas- eller alternativrymden för Indexed, Separation, DeviceN och ICCBased upp till djupet 8, så att en dold DeviceCMYK-toningstransformation eller ett blott Lab-namn flaggas i stället för att passera tyst
- Slutförandet av formade typsnitt går nu igenom uppsättningen använda glyfer som registrerats vid rittillfället i stället för att skanna alla 65536 glyfplatser fyra gånger per sparande
- Rutiner för strängescaping (literalsträng, XFDF, stämpel och expansion av variabeltoken) bygger utdata via
TStringBuildereller tvåpassallokering, vilket tar bort O(n^2)-sammanfogning från sparandets och formulärexportens heta vägar - AES-strömkryptering/dekryptering återanvänder sin bitbuffert över slingiterationer i stället för att omallokera per block
- Analys av sammansatta glyfer i TrueType-parsern växer komponentarrayen geometriskt i stället för ett element i taget
- Meshskuggningens
ReadBitsläser de minsta täckande bytena i ett pass ochWriteBitsfördimensionerar utmatningsbufferten, vilket eliminerar per-bit-omallokering - Målarens cirkelkontrollpunkt använder en förberäknad kappa-konstant och bågkvadrering använder
Sqri stället förPower
Åtgärdat
- Åtgärdade ett icke-Windows-kompileringsbrott i
PDFlibParalleldär stubkroppens signatur förPDFlibRenderPagesParallelinte matchade gränssnittsdeklarationen
Version 3.265.0
Tillagt
- Lade till 59 C++Builder-konsoldemor för att anpassa C++Builder-demosviten till Delphi, vilket ökade totalen från 33 till 92 demos som täcker samma API-ytor
- Lade till utökning av Demo/C++Builder/index.html från 35 till 92 poster med sektionerna Navigation, Color & ICC, Barcode & media och Structure & compliance
Åtgärdat
- Åtgärdade alla 33 befintliga C++Builder-cbproj-filer som saknade 20 biblioteksenheter (PDFlibMeshShading, PDFlibGraphics, PDFlibWindows, PDFlibParallel, PDFlibLogger, PDFlibMail, PDFlibViewer med flera) i sina DelphiCompile-listor, vilket hindrade alla C++Builder-demos från att kompilera
Version 3.264.0
Tillagt
- Innehållets grafiktillståndssnapshots löser nu
Do-operander som bild-, formulär- eller PostScript-XObjects och rapporterar deras resursnamn, objektnummer och transformerade gränser - Formulärsnapshots exponerar ursprunglig
/Matrixoch/BBoxtillsammans med indikatorer för resurs, grupp, transparensgrupp och referensformulär - Fristående innehållsspårare kan förregistrera XObject-strömmar via
RegisterXObject
Ändrat
- Uppräkning av sidans innehållstillstånd förkompilerar nu valda sidors XObject-resurser och beräknar anropsgränser från alla fyra transformerade hörn
Version 3.263.0
Tillagt
- Innehållets grafiktillståndssnapshots exponerar nu aktuella sökvägsgränser, aktuell punkt, sökvägskomplexitet, väntande urklippsregler och effektiva urklippsgränser
- Fristående innehållsspårare kan initiera en uttrycklig urklippsgräns via
SetInitialClipBounds
Ändrat
- Uppräkning av sidans innehållstillstånd följer nu fördröjd
W- ochW*-urklippning, exakta transformerade kubiska extrempunkter,q/Q-urklippsåterställning och valda sidorsCropBox-gränser
Version 3.262.0
Tillagt
- Innehållets grafiktillståndssnapshots rapporterar nu typsnittens skrivläge, exakt textförskjutning per instruktion och om typsnittsmetriker löstes
- Fristående innehållsspårare kan tillhandahålla typsnittsmätningar via
OnMeasureText
Ändrat
- Uppräkning av sidans innehållstillstånd flyttar nu fram textmatriser för
Tj,TJ,'och"med enkla eller sammansatta typsnittsmetriker, vågrät skalning, avstånd och regler för vertikalt skrivande
Version 3.261.0
Tillagt
- Spårning av innehållets grafiktillstånd kan nu lösa sidans
ExtGState-resurser, inklusive transparens, blandning, övertryck, mjuka masker, enhetskontroller och inbäddade typsnittsreferenser TPDFContentStateTrackerkan förregistrera externa grafiktillståndsordlistor för fristående analys av innehållsprogram
Ändrat
- Externa grafiktillståndsparametrar tillämpas nu kumulativt och deltar i fullständiga
q/Q-sparnings- och återställningssnapshots
Version 3.260.0
Tillagt
- Lade till engångsspårning av effektiva grafiktillstånd för strukturerade innehållsprogram och fullständiga valda sidor
- Snapshots exponerar CTM, textmatriser, linjestil, streckmönster, färger, texttillstånd och grafiktillståndsstackens djup före eller efter varje instruktion
Ändrat
- Uppräkning av bildplaceringar mappar nu alla fyra hörn av enhetskvadraten och ger korrekta gränser under rotation och skjuvning
Version 3.259.0
Tillagt
- Lade till typade hjälpare för tid, specialmönster och godtycklig mask för interaktiva formulärfält
- Lade till intervallvalidering med oberoende valfria nollsäkra gränser
- Lade till fältberäkningar för summa, medelvärde, produkt, minimum och maximum med automatisk registrering av beräkningsordning
Säkerhet
- Genererade JavaScript-strängvärden omvandlar nu citattecken, omvända snedstreck, kontrolltecken och JavaScripts radsseparatorer till säker form
Version 3.258.0
Tillagt
- Lade till typad skapande av
SetOCGState-åtgärder för formulärfältshändelser, befintliga åtgärder och åtgärdskedjor - Åtgärder för valfritt innehåll bevarar vänster-till-höger-tillståndsändringar, upprepade grupper och den valfria radioknappsrelationspreferensen
Ändrat
- Uppräkning av åtgärder för valfritt innehåll returnerar nu kanoniska grupphandtag som går igenom skriv-API:erna fram och tillbaka
Version 3.257.0
Tillagt
- Lade till fullständig uttrycklig skrivning av fjärrmål med nollbaserade sidor, alla standardfit-typer, nullbara XYZ-värden och fönsterpreferenser med tre tillstånd
- Lade till fullständig skrivning av startåtgärder för portabla filer, Windows-parametrar, standardkataloger och öppnings- eller utskriftsåtgärder
- Befintliga åtgärdshandtag kan nu uppdatera dessa nyttolaster eller lägga till dem i åtgärdskedjor utan behållarspecifika dubbla API:er
Säkerhet
- Byggare för fjärr-go-to- och startåtgärder avvisar nu PDF/A-läge innan en åtgärdskedja ändras
Version 3.256.0
Tillagt
- Inspektion av fjärr-go-to-åtgärder rapporterar nu namngivna och uttryckliga mål, nollbaserade målsidor, fit-typer, koordinater och zoomvärden
- Inspektion av startåtgärder rapporterar nu Windows-programparametrar, standardkataloger och öppnings- eller utskriftsåtgärder
- Åtgärdsinformation skiljer en frånvarande
/NewWindow-preferens från ett uttryckligt falskt värde och identifierar arraybaserade mål
Version 3.255.0
Tillagt
- Lade till typade byggare för fjärråtgärder med namngivna mål och startåtgärder för externa program
- URI-åtgärdsbyggare stöder nu koordinatkartförfrågningar via standardflaggan
/IsMap - De nya åtgärdsarterna fungerar över livscykel-, formulärfält- och kedjade åtgärds-API:er via det befintliga utökade byggargränssnittet
Version 3.254.0
Tillagt
- Lade till 14 Delphi API-täckningsdemor för biblioteksytor som saknade egen demo: OutlineBuilder, NamedDestinations, DocumentActions, EmbeddedFiles, LinearizeDemo, BarcodeGallery, XfaFields, TaggedPDF, OutputIntent, HtmlTextFlow, RichMediaAnnotations, MailSendDemo, TextBlockExtraction och PadesDssDemo
- Lade till en Navigation-sektion, en Color & ICC-sektion, en Barcode & media-sektion och en Structure & compliance-sektion till Delphi-demindexet, vilket ökade totalen från 56 till 92 listade demos
- Lade till Readme.en-us.html-guider för de 20 demos som tidigare levererades utan en sådan
Ändrat
- Tillämpade projektets Formatter.config på alla Delphi-demokällor så att operatoravstånd, indrag och nyckelordens skiftläge följer en stil, och satte NewLineBeforeThen till False så att If...Then stannar på en enda rad
- Förstärkte felhanteringen i de klassiska GUI-demona: SaveToFile-returvärden kontrolleras nu konsekvent, TPDFlib:s och sekundära objekts livstider skyddas alltid av try/finally, och felmeddelanden inkluderar LastErrorCode
Åtgärdat
- Åtgärdade inverterad SaveToFile-polaritet i ImageToPdf som behandlade framgång som fel, och hindrade AddTrueTypeSubsettedFont från att öppna en inaktuell fil när sparandet misslyckades
- Åtgärdade resursläckor i CreateWithImageToStream, DoInTheStream, CanvasText, ExtractText, ExtractImage, PdfDecrypt, PdfEncrypt och PdfPermission där TPDFlib-, TStream-, TBitmap-, TOpenDialog- eller TStringList-instanser kunde försvinna på en undantagsväg
- Tog bort död kod i AddFormattedTitle (oanvänd RectParts-allokering, redundant try/except runt StrToFloatDef) och MultiFunction (SetTextSize-anropet som skrivs över)
Version 3.253.0
Tillagt
- Lade till typade åtgärdsdetaljer för tråd-, ljud-, film-, valfritt innehåll-, uppspelnings-, övergångs- och 3D-visningsåtgärder
- Lade till återanvändbar uppslagning av åtgärdshandtag och ordnad uppräkning av tillstånd för valfritt innehåll
- Lade till fullständiga PDF-övergångsposter som täcker stilarna replacement, Fly, Push, Cover, Uncover och Fade
Åtgärdat
- Wipe- och Glitter-övergångar lagrar nu sin riktning i
/Di, läser sidans visningstid från sidordlistan och rensar både övergångs- och tidsposter - Standardiserade övergångsstilar före PDF 1.5 tvingar inte längre fram en PDF 1.5-utdataversion
Version 3.252.0
Tillagt
- Lade till engångsupptäckt av formulärfältåtgärder med typade åtgärdsdetaljer över primära, widget- och fältutlösare
- Lade till fullständig uppräkning av beräkningsordning, per-fält-uppslagning och borttagning för interaktiva formulär
- Utökade massiva formulärfältssnapshots med beräkningsordning och åtgärdsantal
Ändrat
- Widgetens livscykelutlösare stöder nu sidöppnings-, sidstängnings-, sidsynlig- och siddold-åtgärder med den krävda PDF 1.5-versionshanteringen
Version 3.251.0
Tillagt
- Tillagt uppräkning av namngivna mål i ett enda pass över äldre katalogposter och moderna namnträd med utredda sid- och visningsparametrar
- Tillagt borttagning av namngivna mål, fullständiga tryckknappstexter, textpositionering för knappar och mappningsnamn för formulärfält
- Utökade massiva ögonblicksbilder av formulärfält med mappningsnamn, knapptexter och knappens textposition
Fixat
- Redigering av namnträd stöder nu direkta målvärden och använder entydig fler-nods indexkodning
Version 3.250.0
Tillagt
- Tillagt ögonblicksbilder av formulärfält i ett enda pass med fältidentitet, typ, sida, flaggor, värden och Choice-tillstånd
- Tillagt typade flaggfrågor för valfält plus validerade åtkomstare för valt index och översta synliga index
Fixat
- Valfält med enkelval behåller inte längre en
/I-matris för flerval, och byte från flerval till enkelval ersätter nu den gamla/V-matrisen med ett strängvärde
Version 3.249.0
Tillagt
- Tillagt tillståndsbaserad genomlöpning för textsökning i ett pass så att program kan iterera cacheade träffar utan att extrahera sidor två gånger
- Tillagt massiv export av formulärvärden och namnbaserad tillämpning med valfritt skrivskydd för fält
Version 3.248.0
Tillagt
- Tillagt bestående visarval med geometri i sidrum, extraherad text, uppräkning, rensning och en händelse för markeringsruta som kan motsägas
- Tillagt exakt bitmap-insamling av aktuell visningsport och filutmatning inklusive bestående överlägg
Version 3.247.0
Tillagt
- Tillagt oberoende kontroller i visaren för användarredigering av formulär och aktivering av annoteringar
- Tillagt konfigurerbar förgrundsfärg för text- och valformulärredigerare
Version 3.246.0
Tillagt
- Tillagt typade linjeändestilar, interiörfärger för former, länkmarkeringslägen, FreeText-justering, öppet-tillstånd för Text-annoteringar och Caret-symboler
- Annoteringssättare validerar kompatibla subtyper och höjer automatiskt den minsta PDF-versionen där det krävs
Version 3.245.1
Fixat
- Korrigerade sidstorlek och memolayout för FastReport-export så att A4-rapporter behåller sin avsedda skala, text håller sig inom memo-gränserna och okonfigurerade memo-ramar förblir dolda
Version 3.245.0
Tillagt
- Tillagt
OnPasswordså att program kan tillhandahålla ett annat lösenord efter att ett krypterat dokument avvisat den första autentiseringsuppgiften - Lösenordsförsök igen fungerar nu konsekvent för fil-, ström- och stränginläsning, exponerar nästa försöksnummer och låter hanteraren avbryta
Säkerhet
- Lösenordscallbacks begränsas till sexton totala försök och varje nytt försök använder en fräsch parser och dekrypteringstillstånd
Version 3.244.0
Tillagt
- Tillagt
SetXMPPropertyExför säker skrivning av skalära egenskaper i anropardefinierade XMP-namnrymder - Egna XMP-värden escape:as via XML-DOM, upprepade skrivningar ersätter den matchande namnrymdsegenskapen och ogiltiga eller reserverade XML-namn avvisas
Version 3.243.0
Tillagt
- Tillagt typade dokumentlivscykelåtgärder för utlösare före stängning, före sparande, efter sparande, före utskrift och efter utskrift
- Tillagt typade öppna- och stäng-åtgärder för sidor med gemensamt stöd för byggare för URI-, namngivna, JavaScript-, formulär- och målåtgärder
- Tillagt metoder för att inspektera och ta bort åtgärder för varje livscykelutlösare i dokument och sidor
Version 3.242.0
Tillagt
- Tillagt
SaveChangesför att lägga till ändringar i den ursprungligt inlästa filen och automatiskt läsa in den uppdaterade xref-kedjan igen för upprepade inkrementella sparanden SaveChangesvaliderar omladdningslösenordet innan skrivning och bevarar det valda publika dokumenthandtaget efter omladdning
Ändrat
AppendToFileavvisar nu ett mål vars aktuella längd skiljer sig från den inlästa källan, vilket förhindrar att inaktuella inkrementella offset läggs till i en externt ändrad fil
Version 3.241.0
Tillagt
- Tillagt
GetLastOutlineochGetLastChildOutlineför direkt åtkomst till slutet av en bokmärkeslista - Tillagt
GetOutlineChildCountochGetOutlineSiblingIndexför lättviktig inspektion av bokmärkesträdet utan att allokera en fullständig trädögonblicksbild
Version 3.240.0
Tillagt
- Tillagt
SaveAllAttachmentsExmed konfliktpolicyer för överskrivning, hoppa över och automatisk omdöpning plus ett namngivnings-callback per bilaga - Bilagaexporter reducerar nu begärda namn till säkra bladnamn och skyddar Windows reserverade enhetsnamn
Fixat
- Fixade
SaveAllAttachmentssom returnerade utan att skriva filer eftersom dess bilagögonblicksbild räknades men inte allokerades och fylldes
Version 3.239.0
Tillagt
- Tillagt
OnPageMouseDown,OnPageMouseMoveochOnPageMouseUpså att visarvärdar tar emot ett-baserade sidnummer och PDF-punktkoordinater uppifrån och ned oberoende av zoom, rullning och visningsrotation - Tillagt
RegionAtClientPoint,ActiveRegionochOnActiveRegionChangeför att skilja länkar, annoteringar som inte är länkar och formulärfält när pekaren går in i eller lämnar dem - Tillagt
CreatePDFlibViewerDefaultPopupMenuochInstallPDFlibViewerDefaultPopupMenu, som sammanställer de befintliga visaråtgärdsklasserna till en färdig snabbmeny för kopiera, zooma, anpassa, rotera, navigera, spara och skriva ut
Version 3.238.0
Tillagt
- Tillagt
OnOperationProgressmed typad åtgärdsart, livscyselfas, aktuella och totala enheter, procentsats och detaljtext samtidigt som den klassiska procent-callbackenOnProgressbevaras - Fil-, ström- och strängingångspunkter för inläsning, sparande, sökning, sammanslagning och sidrendering rapporterar nu start- och slutfaser; åtgärder med mellanliggande förlopp rapporterar även
opRunning - Att sätta
CancelunderopStartingelleropRunningaktiverar det befintligaAbort-läget och ger en gemensam avbrottsväg för gamla och nya anropare
Fixat
LoadFromFilebevarar nu felkoden 404 för ett felaktigt lösenord i stället för att skriva över den med det generiska inläsningsfelet 401 efter städning
Version 3.237.0
Tillagt
- Tillagt
SearchTextEachochTPDFlibSearchHitEventför att sända ut varje textträff omedelbart utan att allokera eller dimensionera en resultatmatris SearchTextochSearchTextEachrapporterar nu sidförlopp viaOnProgressoch respekterar bådeAbortoch callback-avbrott; callback-avbrott använder det befintliga avbrottstillståndet tillsResetAbort- Visarens sökpanel och sökmarkeringslager konsumerar nu strömmande API:et i ett pass, vilket tar bort deras tidigare gränser på 256 rader och 512 markeringar
Fixat
- Sökning av hela ord fortsätter nu förbi en tidigare delsträngsförekomst i samma textblock för att hitta en senare korrekt avgränsad träff
Version 3.236.0
Tillagt
- Tillagt
GetPrinterCapabilitiesför att fånga en live-ögonblicksbild av skrivardrivrutinen utan att starta ett utskriftsjobb - Det typade resultatet
TPDFlibPrinterCapabilitiesomfattar pappers-ID, namn och millimetermått, ID och namn för inmatningsfack, stöd för duplex, färg, liggande och sortering, skrivarporten och det maximala antal exemplar som drivrutinen rapporterar - Drivrutiner som utelämnar pappers- eller fackmetadata returnerar ändå återstående förmågor med tomma matriser, medan ogiltiga skrivarnamn returnerar en helt rensad ögonblicksbild
Version 3.235.0
Tillagt
- Tillagt
SendDocumentByMailför att spara det inlästa dokumentet till en tillfällig PDF och leverera det som SMTP-bilaga via Windows inbyggda CDO-provider - Tillagt den referensräknade utökningspunkten
IPDFlibMailProviderså att program kan tillhandahålla annan transport, stödja icke-Windows-värdar och testa e-postflöden utan nätverksåtkomst - Varje sändning använder en isolerad tillfällig katalog, sanerar bilagans visningsnamn och tar bort både PDF:en och dess katalog efter att providern returnerat;
GetLastMailErrorrapporterar validerings-, spar-, transport- och plattformsfel
Version 3.234.0
Tillagt
- Tillagt variabla platshållare i stämpel-, sidhuvuds- och sidfotstext:
<%PageNo%>,<%TotalPages%>,<%ShortDate%>,<%LongDate%>,<%ShortTime%>och<%LongTime%>expanderas per sida tillsammans med de klassiska &-tokens - Valfri egen platshållare
<%name%>löses via den nya händelsenOnCalcVariable, som tar emot namnet och sidnumret och levererar ersättningen - löpnummer, partikoder och kundfält stämplas utan förbehandling av texten; utan hanterare förblir okända platshållare ordagranna
Version 3.233.0
Tillagt
- Tillagt upptäckt av upphöjd/nedsänkt text vid textextrahering: den nya
GetTextBlockVAlignrapporterar varje extraherat textblocks baslinjeklassificering (0 = baslinje, 1 = upphöjd, 2 = nedsänkt) relativt sin visuella rad, så att kemiska formler, exponenter och fotnotsmarkörer kan kännas igen - Ett block klassificeras som upphöjd/nedsänkt när det är märkbart mindre än radens dominerande text och dess vertikala mitt ligger ovanför/under den dominerande mitten inom en texthöjd
Version 3.232.0
Tillagt
- Tillagt orduppdelning på teckennivå vid textextrahering:
SetTextExtractionOptions(17, 1)delar om show-text-sekvenser utan blanktecken till ord där ett per-tecken-steg i bredd är mycket bredare än sekvensens mediana glyfbredd - dokument som målar hela rader som en enda operator med kerning-mellanrum i stället för blanksteg extraheras nu som separata ord iGetPageTextlägena 7 och 9-11 - Breddmatriserna förblir justerade med den utvidgade texten, så blockquads och per-tecken-breddutmatningar förblir konsekventa
Version 3.231.0
Tillagt
- Tillagt textexport med fast rutnät som bevarar layouten:
GetPageText(11)avbildar sidgeometrin på ett teckenrutnät med monospace - rader klustras efter baslinje, varje block hamnar i sin kolumn beräknad från den genomsnittliga teckenbredden, och kortare celler fylls med riktiga mellanslag - så att tabeller och formulär behåller sin visuella justering i textbaserade visare, terminaler och diffar utan att förlita sig på tabulatorstopp - Referenssidan för
GetPageTextdokumenterar nu lägena läsordning (9), tabbseparerad tabell (10) och fast rutnät (11)
Version 3.230.0
Tillagt
- Tillagt avbindestreckning vid textextrahering:
SetTextExtractionOptions(16, 1)sammanfogar igen ord som bindestreckats över radbrytningar ("inter-" på ett radslut följt av "national" blir "international") i de radorienterade utmatningarna hosGetPageTextlägena 7 och 9 - Heuristiken slår bara samman när en bokstav föregår bindestrecket och en gemen bokstav inleder nästa rad, så numeriska intervall, egennamn och meningsinledande versaler behåller sina bindestreck
Version 3.229.0
Tillagt
- Tillagt händelsen
OnBeforeSnapshottill kontrollenTPDFlibViewer: den utlöses innan en ögonblicksbildsdragning fångas med det dragna området, och att sätta Handled avbryter den standardmässiga urklippsinsamlingen så att program kan bearbeta området själva - Exponerat
PrefetchEnabled: förrenderingworkern i bakgrunden kan nu stängas av och på vid körning (workern stoppar omedelbart och startar om på det öppna dokumentet) - Exponerat
DiskCacheMaxDocuments: antalet dokument som den sessionsöverskridande diskcachen för sidor behåller innan gallring är nu justerbart (standard 10)
Version 3.228.0
Tillagt
- Tillagt exakt navigation till kontrollen
TPDFlibViewer:GoToPagePointhoppar till en sida och rullar en given sidopunkt till visningsportens övre vänstra hörn, så att länkmål och sökträffar hamnar exakt i bilden - Tillagt programmatisk rullningskontroll: pixelsteg med
ScrollBy, läs-/skrivegenskapernaHScrollPos/VScrollPos(perfekta för att synkronisera två visare sida vid sida över samma dokument) ochGetScrollPosForPagesom rapporterar varje sidas rullningsankare i kontinuerligt läge - Tillagt publika koordinatbroar
ClientPointToPageochPageRectToClientRectsom konverterar mellan klientpixlar och sidans användarrymd genom zoom, rotation och rullning; den interna träfftestningen delar nu exakt samma geometri som målningsvägen och fungerar även på föräldralösa (headless) kontroller
Version 3.227.0
Tillagt
- Tillagt visningstillståndshändelser till kontrollen
TPDFlibViewer:OnZoomChangeutlöses vid varje effektiv zoomändring (explicit zoom, förinställda steg, omberäkning av anpassningsläge vid storleksändring, rotation eller DPI-ändring) ochOnHScroll/OnVScrollföljer rullningspositionen, så att verktygsrader och statusvisningar förblir synkroniserade utan polling - Att dra i den vertikala rullningslistens draglist visar nu en svävande "Sida N / M"-bubbla som förhandsvisar sidan som vyn kommer att landa på - en stor hjälp i långa dokument; egenskapen
ScrollHintEnabled(på som standard) stänger av den
Version 3.226.0
Tillagt
- Fullbordade fyll-och-spara-loopen i kontrollen
TPDFlibViewer:SaveToFileochSaveToStreamskriver det visade dokumentet - inklusive verkställda formulärändringar - tillbaka till disk eller ström (eventuella öppna redigerare på plats verkställer först) - Fler-radiga textfält redigeras nu i en riktig fler-radig memo: Enter infogar en radbrytning, Ctrl+Enter verkställer, Escape avbryter; enkelradiga fält behåller beteendet att Enter verkställer
- Tab och Shift+Tab cyklar redigeraren på plats genom dokumentets redigerbara text- och valfält och följer varje fälts sida;
FocusNextFormFieldexponerar samma navigation programmatiskt
Version 3.225.0
Tillagt
- Tillagt zoomning i förinställd stege till kontrollen
TPDFlibViewer:ZoomInStepochZoomOutStepknäpper zoomen till den standardiserade förinställda sekvensen (1, 5, 10, 25, 50, 75, 100, 150, 200, 400, 800, 1600, 2400, 3200 procent), med start från den zoom som gäller så att anpassningslägen stegar naturligt; verktygsradens zoomåtgärder använder nu samma stege - Ctrl+mushjul zoomar nu längs den förinställda stegen medan ett vanligt hjul fortsätter rulla
- Tillagt tangentbordsgenvägar: Ctrl+'+'/'-' stegar zoomen, Ctrl+1/2/3 växlar till verklig storlek, anpassa bredd och anpassa sida, och Shift+Upp/Ner hoppar till första och sista sidan
Version 3.224.0
Tillagt
- Tillagt
CreateSelfSignedCertificatemed ingångspunkter för Delphi, DLL och ActiveX: genererar ett självsignerat RSA-certifikat (SHA-256-signatur, konfigurerbart subjekt, giltighet och nyckellängd) och exporterar det med sin privata nyckel till en lösenordsskyddad PFX-fil, redo förSignFileoch signprocess-API:erna - så att signeringsflöden kan byggas och testas utan en extern certifikatutfärdare - Certifikatet skapas i en engångsnyckelbehållare som tas bort efter exporten; bara PFX:en behåller nyckelmaterialet. Självsignerade certifikat är avsedda för testning och interna dokument - visningsprogram flaggar dem som obetrodda om de inte installeras explicit
Version 3.223.0
Tillagt
- Tillagt
TPDFlibShapeWatermarktill det sammanställbara vattenstämpellagret: rektanglar, cirklar, ellipser, polygoner, Bezier-kurvkedjor och räta linjer stämplas på ett sidintervall med fyllnings- och linjefärger, linjebredd och opacitet, via samma ingångspunktApplyWatermarksom text- och bildvattenstämplar - Formerna rektangel, cirkel och ellips storleksbestämmer sig från Width/Height; former av polygon, kurva och linje tar sin geometri från
SetPoints(lokala X,Y-par), så att positionsrutnätet med nio punkter och egen placering gäller för varje formtyp; degenererad geometri (för få punkter) avvisas
Version 3.222.0
Tillagt
- Tillagt
AddLinkToEmbeddedPDFmed ingångspunkter för Delphi, DLL och ActiveX: en sidhotspot som öppnar en PDF inbäddad i det aktuella dokumentet (efter dess EmbeddedFiles-namn) och hoppar till en vald sida där, med standardåtgärden inbäddad go-to (/GoToE) ur ISO 32000-1 §12.6.4.4 med en valfri begäran om nytt fönster; dokumentversionen höjs automatiskt till PDF 1.6 GetAnnotActionInfooch dess syskon för dokumentstruktur/formulärfält känner nu igen inbäddade go-to-åtgärder och rapporterar den nya typenakGoToEtillsammans med det inbäddade målets namn, förhållandet mellan förälder-/underordnat mål, den valfria filspecifikationen och flaggan /NewWindow
Version 3.221.0
Tillagt
- Tillagt
SetSignProcessAppearanceTextmed ingångspunkter för Delphi, DLL och ActiveX: digitala signaturer kan nu visa ett automatiskt genererat synligt textutseende bestående av undertecknarens namn, skäl, plats och signeringsdatum, med valfria beskrivande etiketter ("Signed by:", "Reason:", ...) valda via en bitmask - Textblocket layoutas inuti signaturfältets rektangel i Helvetica med konfigurerbar färg; teckenstorlek 0 anpassar raderna automatiskt till fältet. En fältbild som satts via
SetSignProcessFieldImageFromFilebehåller företräde, och dokumentets tidsstämpelprocesser ignorerar textutseendet
Version 3.220.0
Tillagt
- Tillagt interaktiv ifyllning av formulär i kontrollen
TPDFlibViewer: att klicka på en kryssruta eller alternativknapp växlar den, och att klicka på ett text- eller valfält öppnar en redigerare på plats över fältet (Enter verkställer, Escape avbryter, att lämna redigeraren verkställer); skrivskyddade fält lämnas orörda och den ändrade sidan renderas om automatiskt - Varje skrivning utlöser den nya händelsen
OnFormFieldValueChanged, ochHighlightFormFieldsmedFormHighlightColormålar en halvgenomskinlig bakgrund över varje ifyllbar yta så att användare kan upptäcka formulärfält - Tillagt de programmatiska motsvarigheterna
FormFieldAtPagePoint,GetFormFieldPageRect,ToggleCheckBoxField,SetFormFieldValueAndRefresh,BeginEditFormFieldochCommitInplaceEditor, som driver samma maskineri utan musinmatning
Version 3.219.0
Tillagt
- Tillagt annoteringsinteraktion i kontrollen
TPDFlibViewer: att klicka på en annotering som inte är en länk utlöser den nya händelsenOnAnnotClickmed sidan, annoteringsindexet och subtypen, ochAnnotAtPagePointexponerar träfftestet programmatiskt (följande Popup hoppas över) - Att hålla pekaren över en annotering visar nu dess Contents-text som kontrollens tips (omkoparen
AnnotHints, på som standard, samverkar med den vanliga egenskapenShowHint) - Tillagt
SaveAnnotAttachmentToFileför att skriva en FileAttachment-annoterings inbäddade fil till disk, vilket fullbordar klicka-och-spara-flöden för bilagor i visaren
Version 3.218.0
Tillagt
- Tillagt en sessionsöverskridande diskcache för sidor till kontrollen
TPDFlibViewer: att sättaDiskCacheFolderbeståendlagrar renderade sidor på disk så att ett nyligen betraktat dokument öppnas igen direkt utan omrendering - Cacheade sidor nycklas av ett fingeravtryck av dokumentets sökväg, storlek och senaste skrivtid, så att redigering av filen automatiskt ogiltigförklarar dess inaktuella sidor; cachen behåller upp till tio dokument och gallrar de minst nyligen använda
- Tillagt räknaren
DiskCacheHitssom rapporterar hur många sidrenderingar diskcachen sparade
Version 3.217.0
Tillagt
- Tillagt enheten
PDFlibViewerActionsmed tjugo färdigaTAction-efterföljare förTPDFlibViewer, så att verktygsrader och menyer fungerar utan limkod: sidnavigering (First/Prior/Next/Last), zoom (In/Out/FitWidth/FitPage/ActualSize), visningsrotation (medurs/moturs), utskrift, dialoger för filöppning och spara-som, kopiera markerad text och de fem lägesomkopplarna för musverktyg - Varje åtgärd riktar sig mot en visare via dess egenskap
Vieweroch håller dess aktiverade tillstånd (dokument öppet, sidposition, markering finns) och avkryssningstillstånd (aktiv zoomanpassning eller musverktyg) uppdaterade automatiskt; alla åtgärder registreras i kategorin losLab PDF för Action List-redigeraren - Tillagt
TPDFlibViewer.EffectiveZoomPercentsom rapporterar den zoom som faktiskt gäller (inklusive beräknade anpassa-bredd-/anpassa-sida-faktorer) så att zoomsteg kan bygga på den
Version 3.216.0
Tillagt
- Tillagt markering av sökträffar i kontrollen
TPDFlibViewer:HighlightSearchHitssöker hela dokumentet och målar en halvgenomskinlig stapel över varje träff som stannar på plats vid rullning, zoomning och rotation, medClearSearchHighlights,SearchHighlightCountoch en konfigurerbarSearchHighlightColor TPDFlibSearchPanel.RunSearchmålar nu också träffstaplarna i den kopplade visaren (den nya egenskapenHighlightInView, på som standard, stänger av detta), så att sökresultaten syns på sidorna, inte bara i träfflistan
Version 3.215.0
Tillagt
- Tillagt musverktyslägen till kontrollen
TPDFlibViewervia den nya egenskapenViewerMode:vmSelecttextmarkering (standard),vmHandpanorering genom dragning med grepppekare (ett vanligt klick följer fortfarande länkar),vmZoommarquee-zoom som förstorar det dragna bandet till att fylla visningsporten,vmSnapshotområdesinsamling till urklipp ochvmHighlightbestående halvgenomskinlig områdesmarkering - Tillagt
CaptureRegionför att rendera vilken klientregion som helst (sidor plus markeringar) till en bitmap som anroparen äger, händelsenOnSnapshotoch omkoparenSnapshotToClipboardför ögonblicksbildshantering, samtAddHighlightRegion/ClearHighlightRegions/HighlightRegionCountmed konfigurerbarHighlightColorför sidförankrade markeringar som överlever zoom, rotation och navigering
Version 3.214.0
Tillagt
- Tillagt utskrift i kontrollen
TPDFlibViewer:PrintDocvisar standarddialogen för Windows-utskrift (skrivarval, sidintervall, exemplar, sortering) och överlämnar jobbet till bibliotekets utskriftsmotor, medanPrintDoc(False)skriver ut hela dokumentet till standardskrivaren utan något UI - Tillagt
PrintDocRangeför fullständigt programmatisk visarutskrift med explicit skrivarnamn, sidintervall, antal exemplar och sorteringsflagga
Version 3.213.0
Tillagt
- Tillagt visningsrotation i kontrollen
TPDFlibViewer:RotateClockwise90ochRotateAntiClockwise90vrider de visade sidorna i 90-graderssteg, och egenskapenViewRotationläser eller ställer in vinkeln direkt (0, 90, 180 eller 270) - Rotation är en ren visningsegenskap: dokumentet ändras aldrig, länkklick och textmarkering fortsätter fungera i varje vinkel, zoomlägena anpassa bredd och anpassa sida anpassar sig till den roterade sidans form, och att öppna ett nytt dokument återställer vyn till 0 grader
- Roterade sidbitmappar cacheas per vinkel, så att byte mellan vinklar återanvänder tidigare renderingar i stället för att rendera om
Version 3.212.0
Ändrat
- Förbättrad SOM-sökvägskompatibilitet för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValueaccepterar nu enkla predikatväljare i FormCalc-stil som$data.Receipt.Detail.[Total_Price > 200].Descriptionoch uppdaterar varje matchande datanod när ett predikat väljer en delmängd
Version 3.211.0
Ändrat
- Förbättrad SOM-sökvägskompatibilitet för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValueaccepterar nu Data DOM-klassväljarna#dataGroupoch#dataValuemed numeriska eller jokerteckenförekomster, vilket möjliggör klassbaserade sökvägar som$data.Receipt.#dataGroup[0].#dataValue[0]
Version 3.210.0
Ändrat
- Förbättrad SOM-sökvägskompatibilitet för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValueaccepterar nu$record-roten i paket utan postbearbetning, så att sökvägar som$record.Taxoch$record/Detail[0]/Total_Pricelöses från det yttre datapostelementet
Version 3.209.0
Ändrat
- Förbättrat utbyte av XFDF-annoteringar: annoteringsexporter skriver nu standardattributen för ramstil
width,styleochdashesfrån PDF-annoteringarnas/BS-värden, och annoteringsimporter återställer dessa attribut på infogade annoteringar
Version 3.208.0
Ändrat
- Förbättrat utbyte av XFDF-annoteringar: annoteringsexporter skriver nu standardattributen
creationdateochopacityfrån PDF-annoteringarnas/CreationDate- och/CA-värden, och annoteringsimporter återställer dessa attribut på infogade annoteringar
Version 3.207.0
Ändrat
- Förbättrat utbyte av XFDF-annoteringar: annoteringsexporter skriver nu standardnamn för
flagsfrån PDF-annoteringarnas/F-värden, och annoteringsimporter återställer dessa namn till de infogade annoteringarnas flaggor
Version 3.206.0
Ändrat
- Förbättrad SOM-sökvägskompatibilitet för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValueaccepterar nu jokerväljare för direkta underordnade som$data.Receipt.*.Total_Priceför att läsa eller uppdatera matchande underordnade grenar utan att välja fälten med samma namn på föräldernoden
Version 3.205.0
Ändrat
- Förbättrad SOM-sökvägskompatibilitet för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValueaccepterar nu avkommeväljare som$data..Total_Priceoch$data.Receipt..Total_Priceför att läsa eller uppdatera den första matchande efterkommande datanoden
Version 3.204.0
Ändrat
- Förbättrad SOM-sökvägskompatibilitet för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValueaccepterar nu egenskapenparenti sökvägar som$data.Receipt.Detail[1].parent.Taxför att läsa eller uppdatera en vald nods syskondata hos föräldern
Version 3.203.0
Ändrat
- Förbättrad SOM-förekomsthantering för XFA-dataset:
GetXFAFormFieldValueochSetXFAFormFieldValuestöder nu[*]-väljare som$data.Receipt.Detail[*].Total_Priceför att läsa eller uppdatera varje matchande upprepad datanod
Version 3.202.0
Ändrat
- Förbättrad XFA SOM-sökvägskompatibilitet: API:erna för XFA-dataset och mallfält bevarar nu literala punkter i snedstreck-avgränsade fältsökvägar och accepterar escape:ade punkter som
Line\.Itemi punkt-avgränsade SOM-sökvägar
Version 3.201.0
Ändrat
- Förbättrad sökvägskompatibilitet för XFA-dataset: API:erna för XFA-fältvärden accepterar nu snedstreck-avgränsade sökvägar efter standardiserade data-SOM-rötter som
$data/...,xfa.datasets.data/...ochxfa.datasets/...
Version 3.200.0
Ändrat
- Förbättrad SOM-kompatibilitet för XFA-dataset: API:erna för XFA-fältvärden accepterar nu den standardiserade kortformen
!data..., inklusive snedstreck-avgränsade!data/...-sökvägar
Version 3.199.0
Ändrat
- Förbättrad sökvägskompatibilitet för XFA-mallar: API:erna för mallredigering accepterar nu snedstreck-avgränsade fältsökvägar som returneras av XFA-uppräkningen av fältnamn, inklusive
$template/...-sökvägar
Version 3.198.0
Ändrat
- Förbättrad namnrymdskompatibilitet för XFA-dataset: API:erna för fältvärden läser och uppdaterar nu datanoder efter lokalt XML-namn när affärsdata inne i datasetpaketet använder sitt eget namnrymdsprefix, och uppräkningen av fältnamn returnerar sökvägar utan prefix
Version 3.197.0
Ändrat
- Förbättrat utbyte av XFDF-annoteringar: annoteringsexporter omfattar nu de vanliga attributen
nameochdatefrån PDF:s/NMoch/M, annoteringsimporter återställer dessa värden på infogade annoteringar, ochSetAnnotStrPropertyaccepterar nu taggen 104 för annoteringars ändringsdatum
Version 3.196.0
Ändrat
- Förbättrad uppräkning av XFA-fältnamn: API:erna för fältlistor genomsöker nu varje toppnivådatapost i datasetpaketet och returnerar bladdataspår utan att lägga till behållargrupper som fält
Version 3.195.0
Ändrat
- Förbättrad kompatibilitet för XFA-dataset: API:erna för XFA-fältvärden läser och uppdaterar nu kompletta XDP-paket vars datasetpaket använder ett
data-element utan prefix
Version 3.194.0
Fixat
- Förbättrade uppdateringar av XFA-mallfält: API:erna för XFA-mallfält accepterar nu standardiserade mall-SOM-rötter som
$templateochxfa.template, och ändringar som endast berör mallen i kompletta XDP-strömmar sparas korrekt
Version 3.193.0
Ändrat
- Förbättrad XFA-fältadressering: API:erna för XFA-fältvärden accepterar nu standardiserade data-SOM-rötter som
$dataochxfa.datasets.datautöver relativa fältsökvägar
Version 3.192.0
Ändrat
- Förbättrad hantering av XFA-XML-paket: XFA-strömmar med UTF-16-teckenordningsmarkörer eller UTF-16-XML-bytemönster avkodas nu före XML-parsning, så att UTF-16-kodade formulärvärden förblir tillgängliga via XFA-fältens läs-/skriv-API:er
Version 3.191.0
Ändrat
- Förbättrat skapande av XFA-paket:
SetXFAFromStringskapar nu den nödvändigaAcroForm-behållaren när ett dokument inte redan har formulärdata, ersätter inaktuellt parsat XFA-tillstånd när ett komplett XFA-paket lagras och håller det sparade paketet tillgängligt via XFA-fältens läs-/skriv-API:er
Version 3.190.0
Ändrat
- Förbättrat utbyte av XFDF-annoteringar: annoteringsexporter skriver nu det vanliga attributet
colorfrån PDF:s/C-RGB-matris, och annoteringsimporter återställer nucolor="#RRGGBB"-värden i den infogade annoteringens färgmatris
Version 3.189.0
Tillagt
- Tillagt API:er för XFDF-annoteringsutbyte:
ExportAnnotationsToXFDF,ExportAnnotationsToXFDFString,ImportAnnotationsFromXFDFochImportAnnotationsFromXFDFStringläser och skriver nu ISO 19444<annots>-data för textstilsannoteringskommentarer, inklusive data för sida, rektangel, titel, ämne och vanligt innehåll
Version 3.188.0
Ändrat
- Förbättrad import av XFDF-richtextfält: fält med
<value-richtext>bevarar nu rich text-XML:en i fältetsRV-värde medan det vanliga<value>-reservet fortfarande tillämpas när det finns
Version 3.187.0
Ändrat
- Förbättrat utbyte av XFDF-formulärdata för valfält med flerval: upprepade
<value>-element importeras nu till matrisen med valda värden, och export av ett valfält med flerval skriver nu ett<value>-element per valt objekt i stället för att platta ut dem till en escape:ad textnod
Version 3.186.0
Ändrat
- Förbättrad export av XFDF-formulärdata för richtextfält: fält med ett
RV-richtextvärde omfattar nu ett<value-richtext>-element samtidigt som det vanliga<value>-reservet bevaras
Version 3.185.0
Ändrat
- Förbättrad import av XFDF-formulärdata för richtextfält: när ett fält tillhandahåller
<value-richtext>utan ett vanligt<value>extraherar importören nu XHTML-textinnehållet och tillämpar det på det matchande AcroForm-fältet i stället för att hoppa över fältet
Version 3.184.0
Ändrat
- Förbättrat utbyte av XFDF-formulärdata: exporter använder nu standardnamnrymden XFDF med
xml:space="preserve", sänder ut nästlade<field>-element för hierarkiska AcroForm-namn, hoppar över icke-terminala föräldrafältsvärden, skriver filexporter som UTF-8 och importerar whitespace-tolerant XFDF med nästlade fält, enkelciterade attribut, CDATA, XML-entiteter och numeriska teckenreferenser
Version 3.183.0
Tillagt
- Tillagt
SanitizeDocument(Flags)som avlägsnar känsligt innehåll i ett anrop: tar bort all global JavaScript, tar bort katalogens OpenAction, avlägsnar /A-åtgärder från varje annotering, tömmer Author/Subject/Keywords/Creator/Producer-metadata (både /Info och XMP) och kan valfritt radera alla annoteringar. FlaggbitarnaSANITIZE_JAVASCRIPT/SANITIZE_ACTIONS/SANITIZE_METADATA/SANITIZE_ANNOTATIONS/SANITIZE_OPEN_ACTIONkombineras;SANITIZE_ALLtillämpar alla borttagningar. Stänger det klassiska dataläckaget där svärtning tar bort synligt innehåll men lämnar metadata eller dolda skript återhämtningsbara - Tillagt
TPDFAnnots.RemoveAnnotAction(Index)för att avlägsna /A-åtgärdssordboken från en enskild annotering (används av SanitizeDocument, också användbar fristående)
Version 3.182.0
Tillagt
- Bildelement som returneras av
EnumPageElementsbär nu sin verkliga placeringsrektangel (Left/Top/Right/Bottom) i stället för nollor. Backas upp av en ny metodTPDFContentProgram.EnumImagePlacementssom går igenom innehållsströmmen med spårning av CTM (cm/q/Q) och avbildar varjeDo-operators 1x1-enhetskvadrat till sidkoordinater - Tillagt fyra showcasedemon: DocumentProperties (DocInfo/sideruta/rotation/övergång/visarpreferenser/XMP round-trip), FormProperties (egenskapsrutnät per fält: typ/värde/readonly/MaxLength/MultiLine/beskrivning), SignatureValidator (uppräkning av signaturfält + verifiera + undertecknarens certifikat), Reader (VCL TPDFlibViewer med öppna/navigera/zooma/kopiera-text)
Version 3.181.0
Tillagt
- Tillagt
SetXMPPropertysom exponerar den befintliga schemamedvetna XMP-motorn (PDFlibXMP) genom den publika fasaden: sätt valfri Dublin Core (dc:), XMP Basic (xmp:), Adobe PDF (pdf:), PDF/A ID (pdfaid:), PDF/UA ID (pdfuaid:)- eller XMP Media Management (xmpMM:)-egenskap via namnrymd + nyckel utan att handskriva RDF-XML - Tillagt
ImportFormDataFromFDF/ImportFormDataFromFDFStringsom parsar en FDF /Fields-matris (varje<< /T (name) /V (value) >>) och tillämpar varje värde på det matchande AcroForm-fältet efter titel, med EscapePDFText oktal/parentes-escaping inverterad. Stänger det asymmetriska endast-export-gapet - Tillagt
ExportFormDataToXFDF/ExportFormDataToXFDFString/ImportFormDataFromXFDF/ImportFormDataFromXFDFStringför dubbelriktat utbyte av XFDF (XML Forms Data Format) - den moderna XML-motsvarigheten till FDF - Gjorde de sex namnrymdsomfångsade XMP-sättarna (
SetDublinCore,SetXMPBasic,SetAdobePDF,SetPDFA,SetPDFUA,SetXMPMM) publika påTPDFlibXMPså att avancerade anropare kan driva motorn direkt
Version 3.180.0
Tillagt
- Tillagt
SearchAndReplaceTextInContentsom utför EGENLIG textersättning i innehållsströmmen (skriver om Tj/TJ/'/" show-text-operatörerna på plats viaTPDFContentProgram.ReplaceTextRun), till skillnad från den befintliga maskbaseradeSearchAndReplaceTextsom bara lägger en rektangel ovanpå de ursprungliga glyferna. Den ursprungliga texten är borta från strömmen och kan inte återvinnas. Lokaliserar träffar viaSearchText, avbildar varje träffrektangel till sin täckande instruktion viaFindInstructionsInRect, skriver om och skriver tillbaka lagret
Version 3.179.0
Tillagt
- Tillagt en strukturerad intern loggare (
TPDFlibLogger) i en ny enhetLib/PDFlibLogger.pasmed fyra nivåer (Debug/Info/Warn/Error), en värdcallback (OnLog), en valfri trådsäker filsänka och en felkod-till-meddelande-mappning (PDFlibErrorMessage) som äntligen ger de befintliga numeriska koderna (1xx/3xx/4xx/5xx) mänsklig text. Exponerad påTPDFlibvia egenskapenLogger - Tillagt
RenderPagesToFilesParallelsom renderar ett sidintervall till en fil per sida med enTTask-pool med enTPDFlib-instans per worker (TPDFlib är inte trådsäker) och per-trådCoInitializeför GDI+-apartmentsäkerhet. Skalar nästan linjärt med CPU-kärnor för CPU-bunden rasterutmatning
Version 3.178.0
Tillagt
- Tillagt
EnumCertificatesför att räkna upp varje certifikat i ett Windows-systemarkiv ("MY", "Root", ...) som returnerar subjekt, utgivare, serienummer, giltighetsfönster, HasPrivateKey och Qualified (eIDAS QCStatements-tillägg, OID 0.4.0.1862.1.7, upptäckt via en ny inbyggd DER-avkodare i PDFlibASN1) - ersätter den tidigare begränsningen iSetSignProcessCertFromStoremed endast ett certifikat per CN - Tillagt
SetSignProcessCertFromStoreByHandleför att välja signeringscertifikat via ett rått PCCERT_CONTEXT-handle från uppräkningen, vilket låter anropare välja efter valfritt kriterium (kvalificerat filter, giltighet, fingeravtryck) i stället för bara efter Subject CN - Tillagt
RedactRegionsom verkligt tar bort text, vektorvägar och bild-XObjects vars målade yta skär en rektangel (redigerar innehållsströmmen så att borttaget innehåll inte kan återvinnas, till skillnad frånMaskRectsom bara täcker det), med valfri svart fyllning och /Redact-annotering. Backas upp av en CTM-spårande innehållsströmsanalysator i PDFlibContentModel (FindInstructionsInRect) - Tillagt minimala DER-avkodarfunktioner (
DERDecodeLength,DERFindExtensionByOID) till PDFlibASN1 för certifikattilläggsinspektion i processen utan CryptDecodeObjectEx
Version 3.177.0
Tillagt
- Tillagt API:er för sidsammanfogning som komponerar befintliga sidor till nya layouter via vektor-Form XObject-insamling (med full vektorfunktion, till skillnad från innehållsströmskonkatenering):
StitchPageOverlaylägger en sida ovanpå en annan på en position med valfri opacitet,StitchPagesSideBySideplacerar två sidor vänster/höger på en ny bredare sida, ochStitchPagesVerticallystaplar ett sidintervall till en ny hög postersid - Tillagt ett sammanställbart vattenstämpelmallager i en ny enhet
Lib/PDFlibWatermark.pas:TPDFlibWatermarkBasemed positionering i nio punkter (wpTopLeft..wpBottomRightpluswpCustom),TPDFlibTextWatermark,TPDFlibImageWatermarkochTPDFlibCompositeWatermarksom tillämpar en lista av understämplar rekursivt över ett delat sidintervall - Tillagt
TPDFlib.ApplyWatermarksom en bekvämlighetsingång som delegerar till en vattenstämpelmalls eget sidintervall och egna inställningar
Version 3.176.0
Tillagt
- Tillagt namngivna konstanter för renderingsutdataformat (
PDF_RENDER_BMP,PDF_RENDER_EMF,PDF_RENDER_EMFPLUS,PDF_RENDER_EMF_DUALosv.) som mappas 1:1 mot de heltalOptions-värden som accepteras avRenderPageToFile,RenderPageToStream,RenderPagesToFilesochRenderDocumentToFile - Tillagt uppräkningen
TPDFlibMetafileFormatoch bekvämlighetsmetodernaRenderPageToMetafileStreamochRenderPageToMetafileFile, som accepterar en namngiven metafilvariant (mfEMF, mfEMFPlus, mfEMFDual, mfWMF) i stället för ett bart heltal - Tillagt utdataläget EMF+ Dual (Options-värde 11 / mfEMFDual), som spelar in både GDI- och GDI+-kommandon i samma metafil för kompatibilitet med äldre konsumenter som bara hanterar GDI
- Tillagt uppräkningen
TPDFlibClipboardFormatochRenderPageToClipboard, som placerar en renderad sida på Windows-urklipp som en enhanced metafile (CF_ENHMETAFILE), en DIB-bitmap (CF_DIB), sidans Unicode-text (CF_UNICODETEXT) eller alla tre på en gång - Tillagt en ny enhet
Lib/PDFlibClipboard.pasmed lågnivåhjälpare för Win32-urklippsplacering som används avRenderPageToClipboard - Tillagt full per-skärm-DPI-medvetenhet i
TPDFlibViewer: en ny publik egenskapScreenDPI, enCreateWnd-överskridning som automatiskt upptäcker värdskärmens DPI viaGetDpiForWindow(med ettGetDeviceCaps-reserv) och enWM_DPICHANGED-hanterare som bygger om layouten och tömmer bitmap-cachen när fönstret flyttas mellan skärmar - Tillagt
TPDFRenderer.SetEMFPlusMetafileTypeför att välja mellan EMF+ Only- och EMF+ Dual-inspelning på renderingsnivå
Fixat
- Fixade referenssidan för
RenderPageToFiledär Options-värdelistan var felplacerad i Page-raden och Options-cellen var tom
Version 3.175.3
Tillagt
- Tillagt en enhet Lib/PDFlibTableExport.pas som renderar vilken TDataSet som helst (FireDAC, ClientDataSet, frågeresultat) till en paginerad PDF-tabell med stilyd rubrik, zebraränder, högerställda numeriska kolumner och automatisk sidfortsättning, plus en konsoldemo Demo/Delphi/DataSetExport som laddar RAD Studio-exemplet customer.FDS via FireDAC och exporterar det
Version 3.175.2
Tillagt
- Tillagt end-to-end-projekt Demo/ReportBridges som bygger en minimal rapport i FastReport, QuickReport och ReportBuilder och exporterar den till PDF via motsvarande Addons-brygga, med en dedikerad build-ReportBridges.cmd som tillför motorns källsökvägar och styrningssymboler så att standarddemobygget fortfarande kompilerar projekten som stubbar
Version 3.175.1
Tillagt
- Tillagt en Delphi JBIG2-alternativmatrisdemo som sveper kombinationer av SymbolExtract, SkipBlackDots, BlackDotSize och LossyLevel mot CCITT G4- och Flate-baslinjer, med PDF-, CSV- och sammanfattningsutmatningar per rad
- Tillagt en Delphi Pattern-showcasedemo som täcker axiella och radiella RGB-shaders, en Coons-patch-meshshader och ett eget tiling-mönster applicerat som fyllning, linje och textfärg
- Tillagt en Delphi CCITT-faxmatrisdemo som jämför komprimering Group 3 1-D, Group 3 2-D och Group 4 med BlackIs1- och Interpolate-alternativbitar, och rapporterar varje utdatastorlek och det resulterande /Filter-namnet
- Tillagt exportbryggor för FastReport, QuickReport och ReportBuilder under Addons som renderar en förberedd rapport till en PDF Library for Delphi PDF via motorns nativa objekt-, metafil- respektive DrawCommand-ytor
Version 3.175.0
Ändrat
- Utökade WorkflowGallery-demon med en annoteringsvariantmatris som registrerar textmarkeringsfyllningar, markeringstilar, anteckningsikoner, fri text, caret- och stämpelannoteringar i tillhörande CSV- och HTML-rapporter
Version 3.174.0
Ändrat
- Utökade C++Builder-demon AdvancedWorkflowMatrix till att avbilda åtgärdsnavigering, PDF/A- och AcroForm-flöden, teckensnittsdiagnostik, strömmande leverans och de senaste hjälparna för skankomprimering i de genererade matrisrapporterna
Version 3.173.0
Tillagt
- Tillagt Delphi-demon DeliveryWorkflowMatrix för strömmad webb- och CGI-PDF-utmatning, validering av sidminiatyrer och vattenstämpelleveransflöden med en genererad PDF-bytebuffert
Version 3.172.0
Tillagt
- Tillagt bekvämlighets-API:er för dokumentstrukturträdet för ordnad syskoninsättning, skapande av underordnade, borttagning av delträd och preorder-uppräkning av strukturen med detaljer för förälder, syskon, nivå, målsida, öppet-tillstånd och titel
Version 3.171.0
Tillagt
- Tillagt Delphi-konsoldemon FontDiagnosticsMatrix för CJK- och Unicode-teckensnittsvägar, uppdatering av TrueType-delmängder, sonderingar av installerade teckensnitt, dokumentuppräkning av teckensnitt och rapporter för teckensnittsdiagnostik
Version 3.170.0
Tillagt
- Tillagt Delphi-konsoldemon CanvasMigrationMatrix för Canvas DC-migrering, ingångspunkter för rått innehåll och banor, Delphi-färghjälpare, mönsterfylld text, vattenstämpel, sidminiatyrflöden och renderade valideringsförhandsvisningar
Version 3.169.0
Tillagt
- Tillagt dedikerade Delphi-konsoldemon LayerCompositionMatrix, TransparencyMaskMatrix och ComplianceFormWorkflowMatrix för utskrifts-/exportpolicy för valfri content, komposition av Pattern/Form XObject, jämförelse av transparensmasker, exempel på lyckad och misslyckad PDF/A-1b, AcroForm-åtgärdsflöden, ombyggnation av utseenden och mallar för synliga signaturer
Version 3.168.0
Tillagt
- Tillagt dedikerade Delphi-konsoldemon ImageCompressionMatrix och SecurityPermissionMatrix med genererade PDF-, CSV- och HTML-rapporter för val av strategi för bildkomprimering, skankomprimering, JPEG-renderingskvalitet och granskning av krypterade behörighetsprofiler
Version 3.167.0
Tillagt
- Tillagt namngivna hjälpar-API:er för JBIG2-bitmap-kodning, EMF-importalternativ, AcroForm-händelseåtgärder och kedjade åtgärder så att anropare kan använda explicita alternativomkopplare i stället för att manuellt komponera heltalsbitmasker
Version 3.166.0
Tillagt
- Tillagt en körbar C++Builder-konsoldemo AdvancedWorkflowMatrix med PDF-, CSV- och HTML-utmatningar som avbilder avancerad canvasmigrering, EMF-import, bildkomprimering samt AcroForm-, signatur-, säkerhets-, PDF/A-, valfri-content-, mönster- och Form XObject-flöden till C++Builder-projektets ingångspunkter
Version 3.165.0
Tillagt
- Tillagt en Delphi-matrisdemo för åtgärdsnavigering som demonstrerar åtgärder för öppna dokument, JavaScript på dokumentnivå, länkar till inbäddade filer, fjärr-GoTo-länkar, AcroForm-händelseåtgärder, hjälpare för Submit/Reset/Hide-länkar och kedjade Next-åtgärder med PDF-, CSV- och HTML-utmatningar
Fixat
- Fixade hjälparna för fjärrfillänkar så att AddLinkToFile, AddLinkToFileEx, AddLinkToFileDest och lokal filstartlänk skapar en annotering och returnerar i stället för att loopa i oändlighet
Version 3.164.0
Tillagt
- En Delphi PDF/A-skyddsmatrisdemo that checks early rejection or allowed-path decisions for PDF/A mode setup, transparency, blend modes, encryption, JavaScript, multimedia, embedded files, and PDF/A-3 associated-file workflows, with generated PDF, CSV, and HTML reports
Version 3.163.0
Tillagt
- En uttrycklig ReportAdapter-bryggmatris for FastReport, QuickReport, ReportBuilder, DBGrid, and custom canvas export paths, including generated CSV and HTML mapping output plus a PDF page that shows the reusable adapter strategy
Version 3.162.0
Tillagt
- En avancerad workflow-demomatris that generates concrete outputs for canvas migration, EMF import options, image compression comparisons, AcroForm action workflows, visible empty signatures, security permissions, PDF/A-1b checks, optional content, tiling patterns, Form XObjects, DBGrid-style table export, and large-file peak memory reporting
Version 3.161.0
Tillagt
- Delphi-hjälp för kompakt konstruktion av Open Document-åtgärder, form-field visibility event actions, TColor and gray color setters, and direct raw content, path, text, and matrix content stream injection
Version 3.160.0
Tillagt
- Delphi-hjälp för bitmap-till-JBIG2-skannad bildkomprimering, one-call image mask and color-key transparency setup, GoTo action chaining, and readable AcroForm event names for JavaScript or existing action assignment
- Utökad
ImportEMFFromFileExochImportEMFFromStreamExso theirOptionsflags can force bitmap import, enable EMF color-image JPEG recompression, and request GDI+ processing controls
Version 3.159.1
Ändrat
- Förbättrad
SaveToStreamoch sparande av bundna utdataströmmar so large PDF stream objects are written in bounded chunks instead of copying each stream object into one intermediate output string
Version 3.159.0
Tillagt
- Hjälp för bildplacering that draw or fit a specified image and release its handle immediately afterward, with Delphi, DLL, and ActiveX entry points for lower peak memory in one-use image generation workflows
RenderPageToMonochromeFileExför 1-bitars BMP-rendering with threshold conversion and isolated black-pixel cleanup before scanned-image compression workflows
Version 3.158.1
Tillagt
- Delphi-workflowdemonstrationer för återanvändbar export i rapportstil, RichEdit-to-EMF rich text import, and combined page-thumbnail, annotation, form XObject, table, compression, JavaScript, and bound-stream output scenarios
Version 3.158.0
Tillagt
- APIer för kontroll av metadatakryptering with Delphi, DLL, and ActiveX entry points: SetEncryptMetadata can write Standard-security PDFs with unencrypted XMP metadata streams, while GetEncryptMetadata reports the pending or loaded /EncryptMetadata state
Version 3.151.0
Tillagt
DrawPie,DrawChord,DrawEllipticPieochDrawEllipticChordfor explicit closed circular and elliptic arc drawing with outline, fill, or fill-and-outline modes
Version 3.150.0
Tillagt
NewGraphicsStateochSetGraphicsStateso callers can create reusable ExtGState resources for combined fill transparency, stroke transparency, line width, line cap, line join, and miter-limit settings
Version 3.149.1
Rättat
- Dubbla ActiveX-dispatch-IDer rättade for the Form XObject and miter-limit methods so late-bound COM callers resolve each method unambiguously
Version 3.149.0
Tillagt
SetMiterLimitför att styra geringsförhållanden to control stroke miter-limit ratios for paths that use miter joins- Exponerade
BeginFormXObject,EndFormXObjectochCancelFormXObjectvia DLL- och ActiveX-API:erna
Version 3.148.0
Tillagt
- Återanvändbara Form XObject-byggar-APIer:
BeginFormXObject,EndFormXObjectochCancelFormXObjectlåter anropare rita en återanvändbar mall med vanliga sidritningsanrop och placera den upprepade gånger via ritnings-APIer för fångade sidor
Version 3.147.0
Tillagt
SetTextTilingPatternochSetLineTilingPatternso captured-page tiling patterns can be reused for text, underline, and stroked graphics without duplicating drawing commands
Rättat
- Färgerna för stroked shader och tiling-pattern skriver nu färgoperatorn för streckmönster i stället för att uppdatera färgtillståndet för icke-streckning
Version 3.146.0
Tillagt
BeginOptionalContentochEndOptionalContentso callers can mark only subsequent drawing commands with an optional content group without rewriting the existing content stream
Rättat
- Mark-content-operatorer för scope-avslut töms nu omedelbart när optional content, tagged PDF eller artifact-scopes stängs i slutet av en innehållsström
Version 3.145.0
Tillagt
SetTransparencyExså att anropare kan ställa in separata transparensvärden för fyllning och streck för efterföljande ritad text och grafik samtidigt som det befintliga PDF 1.4-autouppgraderingsbeteendet bevaras
Version 3.144.0
Tillagt
AddLinkToNamedDestinationså att en sidhotspot kan hoppa till en namngiven destination i samma dokument utan att slå upp målsidan när länken skapas
Rättat
- Läsare för annoteringsåtgärder returnerar nu ingen åtgärd för sidor utan annoteringar i stället för att avreferera en tom annoteringscache
Version 3.143.0
Tillagt
- APIer för hantering av formulärfältsåtgärder so callers can bind an existing action to a field trigger, inspect the typed trigger action, and remove primary or additional field actions
Rättat
FormFieldJavaScriptActionavvisar nu PDF/A-dokument och ogiltiga utlösarnamn i stället för att skriva icke-konforma fältåtgärdsordlistor
Version 3.142.0
Tillagt
- APIer för kedjning av åtgärder so callers can append URI, named, and JavaScript next-actions to an existing annotation, outline, or form-field action and inspect chained actions through
GetActionNextCountandGetActionNextInfo
Version 3.141.0
Tillagt
- Lade till
AddLinkToSubmitFormochAddLinkToResetFormså att sidans klickbara områden (hotspots) kan skicka in eller återställa AcroForm-fält genom standard-PDF-åtgärder utan JavaScript
Version 3.140.0
Tillagt
- Lade till
AppendToStreamså att arbetsflöden för inkrementell uppdatering kan skriva direkt till en av anroparen tillhandahållen ström istället för att först materialisera uppdateringen som enAnsiString
Ändrat
SaveToStreamserialiserar nu direkt till målströmmen, ochAppendToString(1)returnerar nu endast den inkrementella uppdateringssektionen utan att kopiera de ursprungliga käll-byten till en tillfällig buffert
Version 3.139.0
Tillagt
- Lade till
GetAnnotReplyToochGetAnnotReplyTypeså att trådade kommentarssvar kan inspekteras genom namngivna läsåtkomstmetoder istället för generiska egenskapstaggar för kommentarer
Version 3.138.0
Tillagt
- Lade till Delphi-exemplet
DocumentInspectionWorkbenchför att partiinspektera (batch) PDF-filer med kombinerad teckensnittsdiagnostik, bildsampling, färgrymdsupptäckt, inläsningstider samt JSON-, CSV- och HTML-rapporter
Version 3.137.0
Tillagt
- Lade till Delphi-exemplet
ImageDecodeBenchmarkför att mäta upptäckt av sidbilder, avkodade bild-bytes och upptäckt av sidfärgrymd med CSV- och HTML-tidsrapporter
Version 3.136.0
Tillagt
- Lade till
GetDocumentFontDiagnosticsochTPDFlibFontDiagnosticsför att summera dokumentets inbäddning av teckensnitt, delmängdsskapande, Standard 14, CID, Type3 och okända teckensnitt i ett enda anrop
Version 3.135.0
Tillagt
TPDFlibSignatureVerifier.VerifySignerCertificateChainbygger nu den inbäddade undertecknarens certifikatkedja med Windows CryptoAPI och returnerarvsValidendast när kedjan uppfyller Windows grundläggande förtroendepolicy, medan självsignerade eller på annat sätt opålitliga signeringscertifikat returnerarvsInvalidutan att ändraVerifySignatures resultat för innehållsintegritet
Version 3.134.0
Fixat
TPDFlibSignatureVerifier.VerifySignaturevaliderar nu äldreadbe.pkcs7.sha1-signaturer, returnerarvsValidnär den signerade sammanfattningen matchar de täckta/ByteRange-byten ochvsInvalidom det täckta innehållet ändras
Version 3.133.0
Tillagt
- Lade till
RenderPagesToFilesochDARenderPagesToFilesför att rendera godtyckliga sidintervall till numrerade utdatafiler samtidigt som renderarens konfiguration återanvänds för de valda sidorna
Version 3.132.0
Tillagt
- Lade till bekvämlighetsstämpelfunktionerna
AddPageHeaderochAddPageFootersom placerar text vid en fast övre eller nedre marginal på varje sida i ett intervall, med vänster-/mitten-/högerjustering och token-expansion (&Paktuell sida,&Ntotalt antal sidor,&Ddatum,&Tdokumenttitel,&&bokstavligt et-tecken) StampTextochStampImagemedsoUnderlayplacerar nu verkligen innehåll under befintligt sidinnehåll genom att lägga till ett nytt innehållslager i början (tidigare ritades det ovanpå somsoOverlay); backas av en nyPrependContentLayer-söderträdsmetod
Version 3.131.0
Tillagt
- Lade till
ScalePage(ScaleX, ScaleY, Anchor)som skalar den valda sidans innehåll genom att omsluta varje innehållslager i ettq sx 0 0 sy tx ty cm ... Q-grafiktillståndsblock och ändrar storlek på MediaBox och CropBox; ankaret behåller origo nere till vänster (0), centrerar innehållet (1) eller behåller uppe till vänster (2) - Utökade
EnumPageElementsmed en ny elementtypekPath: varje sida rapporterar nu också sina vektorbanor med en begränsningsruta, punktantal, stängningsflagga och målaroperatör, hämtat från innehållsströmmarna via den strukturerade innehållsmodellen
Version 3.130.0
Tillagt
- Lade till tre API:er för filstorleksoptimering som krymper inlästa dokument när de sparas om:
SubsetEmbeddedFontsskriver om varje inbäddat TrueType-teckensnittsprogram (FontFile2) ned till de Unicode-tecken som dokumentet faktiskt renderar via tjänsten FontSub.dllCreateFontPackage;DownsampleImages(MaxDPI, Quality, Filter)avkodar varje bild-XObject över mål-DPI:t, omsamplar den (box eller bilinjärt) och kodar om som JPEG eller PNG;NormalizeLZWStreamsskriver om varje ström som fortfarande är filtrerad med LZWDecode till FlateDecode genom den befintliga LZW-avkodaren och Flate-kodaren, vilket bevarar Predictor-parametrar
Version 3.129.0
Tillagt
- Lade till skapande av nätbaserad skuggning (mesh shading)-API:er för de fyra skuggningstyper som tidigare bara hade stöd för läsning/tolkning:
NewRGBFreeFormTriangleMesh(ShadingType 4, fri-form Gouraud-trianglar),NewRGBLatticeTriangleMesh(ShadingType 5, rutnäts-Gouraud),NewRGBCoonsPatchMesh(ShadingType 6, Coons patch-nät) ochNewRGBTensorPatchMesh(ShadingType 7, tensor-product patch-nät) — var och en bygger ett namngivet nätbaserat skuggningsmönster från en platt vertex- eller patch-lista med valbart koordinat-/färgbitdjup och en begränsningsruta, valbar medSetFillShader/SetLineShader/SetTextShaderlikt de befintliga axiella och radiella skuggningarna
Version 3.128.0
Tillagt
- Lade till en miniatyrbildsremsa för visaren:
TPDFlibThumbnailBarvisar en miniatyr av varje sida, renderad on-demand när rader rullas in i vyn, med sidnumret inunder; att klicka på en miniatyrbild hoppar den anslutna visaren till den sidan — vilket kompletterar familjen av visningskontroller (visare, bokmärkespanel, sökpanel, miniatyrbilder)
Version 3.127.0
Tillagt
- Lade till en sökpanel för visaren:
TPDFlibSearchPanel.RunSearchsöker igenom hela det anslutna dokumentet och listar en rad per träff med dess sidnummer och matchande text; att klicka på en träff hoppar visaren till den sidan
Version 3.126.0
Tillagt
- Lade till en bokmärkespanel för visaren:
TPDFlibOutlineViewerlistar dokumentets bokmärkesstruktur med indrag och hoppar den anslutna visaren (viaAttachViewer) till ett bokmärkes målsida när den klickas; den bygger på en återanvändbar panelbasklass som senare sidopaneler delar
Version 3.125.0
Tillagt
- Lade till textmarkering i visningskontrollen: dra med vänster musknapp för att markera, tryck Ctrl+C eller anropa
CopySelectedTextför att kopiera markeringen till urklipp; den fångade texten är tillgänglig genom egenskapenSelectedText, ordnad uppifrån och ned med radbrytningar mellan blocken - Lade till
GetTextInRegion, som returnerar texten för en rektangulär sidregion direkt — samma blockbaserade sökning som musmarkeringen använder, tillgänglig för anpassade markeringsgränssnitt
Version 3.124.0
Tillagt
- Visningskontrollen förrenderar nu angränsande sidor i en bakgrundstråd, så att sidbyte framåt eller bakåt visar nästa sida omedelbart; arbetstråden använder sin egen dokumentinstans och lämnar över färdiga renderingar till cachen utan att blockera användargränssnittet
- Lade till länkinteraktivitet i visaren: att klicka på en länkkommentar utlöser
OnLinkClickmed sidnumret och samma typade åtgärdssammanfattning somGetAnnotActionInfoproducerar (webbadress, dokumentdestination, namngiven åtgärd och så vidare);LinkActionAtPagePointexponerar det underliggande träfftestet för anpassad hantering
Version 3.123.0
Tillagt
- Visningskontrollen har fått kontinuerlig rullning:
SetDisplayModeväxlarTPDFlibViewermellan enkelsidig visning och en kontinuerlig vertikal rullning genom hela dokumentet, där endast de sidor som är synliga i visningsområdet renderas och den aktuella sidan följer rullningspositionen (utlöserOnPageChangenär sidor kommer in i vyn) - Renderade sidor sparas nu i en least-recently-used bitmappscache, så att rullning fram och tillbaka inte renderar om; minnesbudgeten är som standard 128 MB och justeras med
SetCacheLimit, vilket vräker de äldsta sidorna när budgeten krymper eller fylls - Lade till musrullning och tangentbordsnavigering för visaren: PageUp/PageDown (sidsteg i enkelsidigt läge, visningsområdessteg i kontinuerligt läge), piltangenter, Home och End
Version 3.122.0
Tillagt
- Lade till en interaktiv PDF-visningskontroll:
TPDFlibViewerär en rullande VCL-kontroll som öppnar ett dokument från fil eller ansluter till en befintligTPDFlib-instans, visar sidor genom den valda renderingsmotorn (GDI+, Cairo eller PDFium), och erbjuder sidnavigering (GoToPage/NextPage/PrevPagemed enOnPageChange-händelse) och zoomkontroll — en fast procentsats, anpassa till bredd (fit-to-width) eller anpassa till sida (fit-to-page), omberäknas automatiskt när kontrollens storlek ändras; sidor bredare än visningsområdet rullas, smalare sidor centreras - Lade till ett design-time-paket (
Package\PDFlibViewerPkg.dpk) som registrerar kontrollen på losLab PDF-palettsidan för dra-och-släpp-användning i IDE:n
Version 3.121.0
Tillagt
- Automatisk formning av komplexa skript i
DrawText: text som innehåller arabiska, hebreiska, indiska eller andra tecken med komplexa skript upptäcks och formas nu automatiskt — kontextuella bokstavsformer, obligatoriska ligaturer och höger-till-vänster-ordning blir rätt utan kodändringar; standard-14-namnen mappas till sina metrikkompatibla installerade typsnitt (Helvetica till Arial, Times till Times New Roman, Courier till Courier New) ochGetTextWidthmäter genom samma formningspass så att justeringen förblir konsekvent; latinsk, kyrillisk, grekisk och CJK-text behåller sin befintliga ritbana byte för byte - Lade till
SetTextShapingför att växla den automatiska dirigeringen (aktiverad som standard; skicka 0 för att återställa det exakta beteendet före formning)
Version 3.120.0
Ändrat
- Följeslagarteckensnitt för formad text inbäddas nu som delmängder när de sparas, enbart med de glyfer som dokumentet visar, vilket krymper utdatafilerna dramatiskt (ett fullständigt teckensnittsprogram på över en megabyte reduceras till de använda glyferna); det delmängdsanpassade teckensnittet behåller sin glyfnumrering, bär ett delmängdstaggat
BaseFont-namn och riktiga/W-bredder per glyf, och får en ToUnicode-karta som översätter varje formad glyf tillbaka till dess källtecken — så att kopiering eller extrahering avDrawShapedText-utdata returnerar den ursprungliga strängen, inklusive båda bokstäverna bakom en lam-alef-ligatur
Version 3.119.0
Tillagt
- Lade till ritning av text med komplexa skript:
DrawShapedTextformar arabiska, hebreiska och andra komplexa skriptsträngar innan de ritas — kontextuella bokstavsformer, obligatoriska ligaturer som lam-alef, och höger-till-vänster-ordning blir alla korrekta — och skriver de formade glyferna genom ett Type0 (Identity-H)-följeslagarteckensnitt som bäddar in hela teckensnittsprogrammet, så former utan en egen teckenkod renderas exakt; ett följeslagarteckensnitt skapas per typsnitt och återanvänds över anrop - Lade till
GetShapedTextWidth, som mäter text genom samma formningspass så att ligaturtext mäter sin verkliga ritade bredd — använd det för att högerjustera eller centrera formade stycken
Version 3.118.0
Lagt till
- Lade till grunden för textformning av komplexa skript (complex-script text shaping): en ny Uniscribe-bindning (usp10.dll) omvandlar arabiska, hebreiska och andra komplexa skriptsträngar till korrekt ordnade och formade glyfsekvenser — kontextuella arabiska former, obligatoriska ligaturer som lam-alef, och höger-till-vänster-ordning — och rapporterar varje glyfs teckensnittsglyfindex, framsteg och källteckenkluster; detta är formningsmotorn som senare versioner bygger ritbanan på, och den laddas lazily så plattformar utan Uniscribe behåller helt enkelt den befintliga tecken-för-tecken-banan
Version 3.117.0
Lagt till
- Lade till ICC-profilintrospektion:
GetOutputIntentICCInfotolkar den ICC-profil som är kopplad till dokumentets OutputIntent och rapporterar dess version, enhetsklass, datafärgrymd, profilanslutningsfärgrymd, renderingsintent och komponentantal — användbart för att inspektera utskriftsförhållanden för PDF/A- och PDF/X-filer; renderarens hantering av ICCBased-färgrymder härleder nu också komponentantalet från själva profilhuvudet när en skuggnings färgrymd varken har/Alternateeller/N
Version 3.116.0
Lagt till
- Lade till ett tabellmedvetet textextraheringsläge:
GetPageTextalternativ 10 grupperar vänsterkanterna på sidans textblock i globala kolumnpositioner och matar ut tabbseparerade rader, så att tabellayouter extraheras som en färdig att importera TSV med vertikalt justerade celler som förblir justerade över rader
Version 3.115.0
Lagt till
- Lade till sidutskjutning (imposition):
ImposePagesNUplägger ut varje sida i dokumentet på nya ark i ett n-up-rutnät (2-up, 4-up, 9-up eller vilket Columns x Rows-arrangemang som helst) med varje sida aspeaktanpassad och centrerad i sin cell som live vektorinnehåll, eller — med häftesalternativet — producerar ark för sadelhäftning vars sidparning viks till ett häfte när de skrivs ut dubbelsidigt och staplas
Version 3.114.0
Lagt till
- Utökade de typade åtgärdsläsarna
GetAnnotActionInfoochGetOutlineActionInfotill ytterligare fyra åtgärdstyper — Hide (med antalet dolda mål och flaggan för dölj/visa), SubmitForm (inlämnings-URL och fältantal), ResetForm (fältantal) och ImportData (källfil) — samt exponerar namndelen för Named-åtgärder (t.ex.NextPage); båda läsarna delar nu en tolkare, så att kommentar-länkar och bokmärken rapporterar identisk information
Version 3.113.0
Lagt till
- Lade till formateringshjälpare för formulärfält:
SetFormFieldNumberFormat(decimaler, separatorstil, negativ stil och valutaplacering),SetFormFieldPercentFormatochSetFormFieldDateFormat(Acrobat-datumformatsträngar sommm/dd/yyyy) skriver var och en standard-Acrobat-formaterings-JavaScript-paret till fältets ytterligare åtgärder — ett tangenttrycksfilter plus en visningsformaterare — så att kompatibla läsare validerar inmatning och renderar formaterade värden utan handskrivet JavaScript
Version 3.112.0
Lagt till
- Lade till skapande av ljudkommentarer:
AddSoundAnnotationFromFileläser en okomprimerad PCM WAV-fil (8 eller 16 bitar, mono eller stereo) och bäddar in dess samplingar bakom en högtalarikon-kommentar som en/Sound-ström i den signerade kodningen som PDF-ljudmaskineriet förväntar sig, vilket slutför tur-och-retur-stödet tillsammans med de befintligaGetAnnotSoundToFile/GetAnnotSoundToString-läsarna
Version 3.111.0
Lagt till
- Lade till trådade kommentarssvar (ISO 32000-1 §12.5.6.3):
AddAnnotationReplylägger till ett svar på en befintlig kommentar som en dold Text-kommentar vars/IRTrefererar till målet med/RT-svarsrelationen, så att Acrobat och andra visare visar den trådad under målet i kommentarspanelen; kombinera medAddAnnotationStateoch FDF-kommentarsutbytet för kompletta tur-och-retur-granskningsflöden för samarbete
Version 3.110.0
Lagt till
- Lade till mesh- och funktionsbaserad skuggningsrendering, vilket slutför täckningen av alla sju PDF-skuggningstyper: fri-form Gouraud-triangelnät (typ 4), rutnäts-Gouraud-nät (typ 5), Coons patch-nät (typ 6) och tensor-product patch-nät (typ 7) avkodas från deras bitpackade dataströmmar — inklusive flaggor för delade kanter,
/Decode-värdemappning och valfria/Function-färgskalor — och ritas via Cairo-motorns inbyggda mesh-gradienter; funktionsbaserade skuggningar (typ 1) approximeras genom att sampla skuggningsfunktionen över dess domän till ett fint rutnät; färgrymder som stöds täcker DeviceRGB, DeviceGray, DeviceCMYK och ICCBased-alternativ (GDI+-motorn saknar mesh-gradientprimitiver och lämnar mesh-skuggade områden omålade)
Version 3.109.0
Lagt till
- Färdigställde ramverket för innehållsredigering (fas 4) med redigering på textnivå:
TPDFContentProgram.GetTextRunsräknar upp en sidas textvisande instruktioner med det teckensnittsresurs och storlek som är aktivt vid varje en (spårar teckensnittsstatus genom save/restore-nästning), ochReplaceTextRunbyter ut den visade texten på plats — en verklig innehållsströmsersättning som behåller originalposition, teckensnitt och färg, till skillnad från överläggsbaserade metoder som maskerar den gamla texten och ritar ovanpå
Version 3.108.0
Lagt till
- Lade till en objektmodell för sidgeometri till ramverket för innehållsredigering (fas 3):
TPDFContentProgram.LiftPathlyfter ett banobjekt (move/line/curve/rectangle-konstruktionsoperatörer plus klipp- och målaroperatörerna som avslutar den) till en redigerbarTPDFPathbestående av delbanor och segment;TPDFPath.Transformtillämpar en affin matris på varje punkt (flytta, skala, rotera eller skeva befintlig grafik);LowerPathskriver tillbaka den modifierade geometrin över de ursprungliga instruktionerna, redo förWritePageContentLayer
Version 3.107.0
Lagt till
- Utökade ramverket för innehållsredigering (fas 2) med bekvämligheter på instruktionsnivå för
TPDFContentProgram:InsertFromSourcetolkar ett innehållsklipp och skarvar in dess instruktioner vid valfri position;SetOperandskriver om en enskild operand från källsyntax (numrera om en koordinat, färga om en fyllning);OperandTextläser tillbaka en operand;InstructionGroup,FindNextOpochFindNextGroupnavigerar instruktionslistan efter operatör eller efter ISO 32000-1-operatörskategori
Version 3.106.0
Lagt till
- Lade till den första fasen av ramverket för strukturerad innehållsredigering:
ParsePageContentLayeravkodar ett sidinnehållslager till ett redigerbartTPDFContentProgram— en lista med instruktioner, där varje del är en PDF-innehållsoperatör (alla 73 operatörer i ISO 32000-1 Tabell 51) med sina avkodade operandobjekt — ochWritePageContentLayerserialiserar programmet tillbaka in på sidan, så anropare kan tolka, inspektera, ta bort eller ordna om ritinstruktioner och skriva om sidan;GetPageContentLayerCountrapporterar antalet innehållslager, vilka redigeras oberoende av varandra; utfärdaren är beteende-bevarande (en omodifierad tur-och-retur renderar pixel-identiskt), okända operatörer överlever oförändrade och inbäddade bilder bärs ordagrant
Version 3.105.0
Lagt till
- Lade till ett textextraheringsläge i läsordning:
GetPageTextalternativ 9 returnerar sidtexten i visuell läsordning med hjälp av rekursiv blankstegsanalys (XY-cut), så att layouter med flera kolumner matas ut kolumn för kolumn — en fullbreddsrubrik först, sedan hela vänstra kolumnen, därefter den högra kolumnen — istället för att fläta samman kolumnerna rad för rad som de geometriska uppifrån-och-ned/vänster-till-höger-ordningarna gör
Version 3.104.0
Lagt till
- Lade till introspektion för signaturcertifikat i signaturverifieraren:
GetSignerCertificateavkodar PKCS#7-nyttolasten för det första signaturfältet och returnerar en typad sammanfattning av det inbäddade signaturcertifikatet — ämne (subject) och utfärdare (issuer) visningsnamn, serienumret i konventionell hex-form, giltighetsfönstret i UTC (NotBefore/NotAfter) och en bekvämlighetsflagga som rapporterar om certifikatet för närvarande ligger inom det fönstret; undertecknaren matchas bland de inbäddade certifikaten genom utfärdare och serienummer
Version 3.103.0
Lagt till
- Lade till
NewRGBRadialShader, den radiella motsvarigheten tillNewRGBAxialShader: registrerar en namngiven radiell gradient med två cirklar (ShadingType 3, ISO 32000-1 §8.7.4.5.3) som blandar mellan två RGB-färger, med valfri färgutvidgning bortom cirklarna; välj den med befintligaSetFillShader,SetLineShaderellerSetTextShaderför att måla cirkulära "glöd"-fyllningar, linjer och text
Version 3.102.0
Lagt till
- Lade till radiell (ShadingType 3) gradientrendering (ISO 32000-1 §8.7.4.5.4): sidrenderaren målar nu radiella skuggningar med två cirklar som används av
sh-operatörer och skuggningsmönsterfyllningar, utöver de tidigare stödda axiella (ShadingType 2) gradienterna; stöds genom både GDI+- och Cairo-rastermotorerna med fler-stopp-färgfunktioner, färgrymderna DeviceRGB/DeviceCMYK/DeviceN/Separation/ICCBased och hantering av/Extend
Version 3.101.0
Lagt till
- Lade till molniga kanteffekter (ISO 32000-1 §12.5.4):
SetAnnotCloudyEffectförvandlar kanten på en Square-, Circle-, Polygon- eller FreeText-kommentar till ett "revisionsmoln" av anslutna halvcirklar genom att skriva ordlistan för kanteffekt/BE, med intensitet 1 eller 2 som matchar Acrobats Cloudy-stilar och 0 som tar bort effekten igen;GetAnnotCloudyEffectläser tillbaka inställningen (0 = inget moln, annars 1..2-intensiteten)
Version 3.100.0
Lagt till
- Lade till granskningsstatus för kommentarer (ISO 32000-1 §12.5.6.3):
AddAnnotationStateregistrerar en ändring av granskningsstatus för en befintlig kommentar genom att lägga till en dold Text-kommentar vars/IRTpekar på målet och vars/State+/StateModelbär statusen, stöder modellenReview(None/Accepted/Rejected/Cancelled/Completed) och modellenMarked(Unmarked/Marked) som används av Acrobats arbetsflöde för kommentarsgranskning;GetAnnotStateochGetAnnotStateModelläser tillbaka de registrerade strängarna från valfri kommentar (tom om den saknas)
Fixat
- Fixade ett startfel vid inläsning som förhindrade applikationer byggda med nyare utvecklingsversioner från att starta (en Windows-certifikatnamnsuppslagning var bunden till en icke-existerande DLL-ingångspunkt), och reparerade kompileringsregressioner i FDF-kommentarsimporten, sidintervallsrotation och signaturflaggornas sökvägar
Version 3.99.0
Tillagt
- Lade till API:er för att läsa dokumentfingeravtryck och övergångar:
GetDocumentFileIDreturnerar den permanenta dokumentidentifieraren från trailerns/ID-array (hex-kodat första element), användbart som en stabil cache-nyckel eller dokumentfingeravtryck;GetPageTransitionär lässide-motsvarigheten tillSetPageTransition, som returnerar övergångsstilen som ett typatTPDFlibPageTransition-värde plus visningsvaraktighet och övergångsvaraktighet genom att omvänt mappa de lagrade/Trans/S-,/Dm- och/M-posterna
Version 3.98.0
Tillagt
- Lade till rotation av sidintervall och miniatyrbilds-introspektion:
RotatePageRangetillämpar en 0/90/180/270-rotation på varje sida i ett intervall (omsluter den befintliga ensidigaRotatePageså att anropare inte längre behöver en loop per sida);HasPageThumbnailrapporterar om en sida bär på en/Thumb-post;GetPageThumbnailInfoläser miniatyrbilden XObjects bredd, höjd och bitar-per-komponent
Version 3.97.0
Tillagt
- Lade till utökade egenskapsläsare för anteckningar:
GetAnnotColorläser/C-färgarrayen (0..1 RGB, med en HasColor-flagga som särskiljer “ingen explicit färg” från “explicit svart”);GetAnnotBorderWidthläser/BS /W, och faller tillbaka på den äldre/Border-arrayen;GetAnnotOpacityläser/CA-linje-alfa (standard 1.0);GetAnnotCreationDateläser/CreationDate-tidsstämpeln;GetAnnotFlagsläser byte-värdet för synlighet/utskriftsflaggor/F
Version 3.96.0
Tillagt
- Lade till säkerhets-introspektions-API:er för lässidan:
IsEncryptedrapporterar om det laddade dokumentet bär på en/Encrypt-ordbok;GetEncryptionLevelreturnerar en typad styrka (0=ingen, 1=RC4-40, 2=RC4-128, 3=AES-128, 4=AES-256, 5=AES-256 Acrobat X) som matchar krypteringsalternativen på skrivsidan;GetUserPermissionsreturnerar det råa/P-behörighetsordet för direkt bittestning;IsOwnerPasswordrapporterar om dokumentet öppnades med ägarautentiseringsuppgiften
Version 3.95.0
Tillagt
- Lade till avancerad utskrift och textersättning:
PrintDocumentAdvanceddriver den fullständiga skrivarens DEVMODE (duplex, orientering, färg, utskriftskvalitet, pappersstorlek, pappersfack) ovanpå kopior/kollationering genom en typadTPDFlibPrintSettings-post, och tillämpar varje icke-standardfält via den befintliga profilsmekanismen för anpassade skrivare;SearchAndReplaceTextkör en sökning över ett sidintervall och, för varje träff, maskerar det ursprungliga textblocket med en ogenomskinlig vit rektangel och ritar om ersättningstexten vid blockets ursprung med anroparens valda teckensnitt, vilket speglar överlagrings-ersättningsbeteendet hos PDFtoolkit SearchAndReplace
Version 3.94.0
Tillagt
- Lade till antecknings-FDF-utbyte (Acrobat “Exportera/Importera Kommentarer”):
ExportAnnotationsToFDFStringochExportAnnotationsToFDFgår igenom varje sidas/Annotsoch serialiserar varje anteckning som en/Type /Annot-post inuti en FDF/Annots-array, bärande på/Subtype,/Contents,/Rect, författaretiketten/T,/Subjoch det 0-baserade/Page-indexet;ImportAnnotationsFromFDFStringochImportAnnotationsFromFDFtolkar en sådan FDF med en liten tillståndsmaskin och återskapar varje post som en ny anteckning på den matchande sidan, vilket bevarar den fullständiga anteckningsordboken snarare än att kollapsa den till en fästis