HotPDF Release Notes
Version history for HotPDF user-visible features, fixes, compatibility updates, and documentation changes
Note: Only the latest 500 change records are kept
Last release
- Latest version: 2.458.0; Release date: 2026-08-03
Version 2.458.0
Added
ImmediateFlushLayoutverplaatst voltooide paginastromen naar op bestand gebaseerde opslag voor begrensde rapportgeneratie; alinealay-out ondersteunt nu keep-with-next-, orphan- en widow-beperkingen, first-strong bidi-richting met expliciete overrides, begrensde coördinaatdiagnostiek, overerfde pagina-afmetingen, semantische/P-helpers en getypeerde pagineringsartefacten voor kopteksten, voetteksten, watermerken en paginanummers
Version 2.457.0
Added
SetFontFallbackChainenTextOutWithFallbackvoegen geordende scriptbewuste lettertypeselectie toe met Unicode-scalar-dekkingscontroles en persistente diagnostiek voor onopgeloste glyphs; verticale tekst zendt nu volledigeIdentity-V-runs uit met/DW2- en/W2-metrics afgeleid van OpenTypevhea-,vmtx- enVORG-tabellen indien beschikbaar
Version 2.456.0
Added
HPDFEncodePredictorvoegt strikte TIFF- en vaste of adaptieve PNG-predictor-codering toe voor packed-, 8-bit en 16-bit rasterrijen;ExtractLoadedImageToStreamvermijdt full-size byte-arrays voor native of generiek gedecodeerde afbeeldingspayloads;OptimizeLoadedStreamscomprimeert ondersteunde filterfamilies selectief opnieuw via memory-to-disk spill-buffers en vervangt alleen stromen die een positieve besparingsdrempel halen
Version 2.455.0
Added
DecodeLoadedStreamToStreamcomposeert nu geladen PDF-filters tot een begrensde pijplijn waarvan de eindfase direct naar een aanroeperstream schrijft;DocumentDecodeBudgetBytesvoegt een standaard plafond van 1 GiB toe over onafhankelijke ketens, terwijl filteraantal-, nestingsdiepte-, cyclische-referentie- en recursieve-stroombeveiligingen gestructureerde pijplijndiagnostiek blootleggen
Version 2.454.0
Added
- Grote geladen stromen blijven nu op bronbestandbereiken tot mutatie en spillen overschitte wijzigingen naar eigendomstijdelijke bestanden via
LoadedStreamMemoryThreshold; gecomprimeerde object-stream-leden worden geïndexeerd en per objectnummer bij eerste gebruik gerealiseerd;LoadFromRandomAccessSourcevoegt HTTP-range- en aangepaste-opslag-integratie toe, met stream- en objectcache-diagnostiek
Version 2.453.0
Changed
- Incrementele opslagen behouden nu de permanente trailer-ID over elke revisie, roteren alleen de modificatie-ID, zenden geen toegevoegde revisie uit wanneer de geladen objectgrafiek ongewijzigd is, en leggen hybrid-reference-samenvoegbeslissingen bloot via
GetLoadedXRefMergeInfomet expliciete xref-stream-, tabeloverlap- en nieuwste-revisie-voorrijkounters
Version 2.452.0
Added
- Native PDF 2.0-uitvoer toegevoegd plus PDF/A-4-, PDF/A-4e-, PDF/A-4f- en PDF/UA-2-creatie, met revisiebewuste XMP-identificatie, PDF 2.0-structuurrollen, namespace-registratie via
RegisterStructureNamespaceenAddStructureElementNS, strikte PDF/UA-2-structuurvalidatie en profielneutrale bijbehorende bestanden viaAddPDFAssociatedFile
Version 2.451.0
Added
DetectFacturXInvoicestelt nu het gedecodeerde MIME-type van de primaire bijlage en de gebonden XMP-namespace-URI bloot, terwijlValidateFacturXInvoicede exacte FileSpec kruislings controleert die wordt gedeeld door Catalog/AFen de EmbeddedFiles-naamboom,/F- en/UF-namen, XML-MIME-type, XMPDocumentTypeen de profielspecifieke Factur-X- of ZUGFeRD-namespace via vier toegewijde issue-vlaggen
Version 2.450.0
Added
- Preflight JSON-, HTML- en veraPDF-stijlbevindingen dragen nu stabiele namespaced
ruleId-waarden plus machineleesbare locaties met logisch bereik, pad, PDF-sleutel en exact objectnummer, pagina-index of byte-offset indien beschikbaar; JSON-rapporten zenden ook de gedocumenteerde ISOspec-mappings uit en blijven geldig wanneer arrays meerdere bevindingen bevatten
Version 2.449.0
Added
SanitiseLoadedDocumentpast nu JavaScript-only-, actieve-content- of strikte niet-vertrouwde-documentbeleidsregels toe op een geladen PDF, rapporteert verwijderde acties en payloads, faalt gesloten voor onbekende actietypen, verwijdert onbereikbare objecten via een begrensde cycle-safe bijna-lineaire traversering, comprimeert levende objectnummers en vervangt atomair de bron bij opslaan op dezelfde plaats
Version 2.448.0
Added
- De renderer voor geladen pagina's voert nu gekleurde en niet-gekleurde tiling-patronen uit plus axiale en radiale arceringspatronen voor vullingen en strepen, inclusief patroonmatrices, tintovererving, padclipping, gecachte inhoudstokensering, geneste grafische-statusherstel en begrensde recursie- en tile-aantallen voor vijandige bronnen
Version 2.447.0
Added
- Een configureerbaar 256 MiB-per-keten
DecodeBudgetBytes-plafond toegevoegd dat uitvoer van geneste Flate-, LZW-, ASCIIHex-, ASCII85-, RunLength- en image-predictor-fasen samenvoegt voordat ze het geheugen bereiken, metGetLastDecodeBudgetInfo-diagnostiek en nul als een expliciete onbeperkte modus
Version 2.446.0
Added
- Opt-in
LinearizeOutputtoegevoegd voor snelle webweergave, waarbij het linearisatie-parameterdictionary in de eerste 1024 bytes wordt uitgezonden, hint-tabellen voor eerste pagina en gedeelde objecten, afhankelijkheidsgeordende paginasecties en twee compatibiliteits-cross-reference-tabellen, met behoud van directe bestands- en streamuitvoer en betrouwbare herlaaddetectie
Version 2.445.0
Added
- Geladen PDF's gebruiken nu begrensde cross-reference-herstel na beschadigde
startxref-declaraties of onbruikbare xref-gegevens, waarbij eerst een geldige tabel of stream wordt herplaatst en daarna gevalideerde directe-object-offsets worden herbouwd met nieuwste-definitie-voorrang, geneste-object-fout-positief-filtering, configureerbare scan- en objectbudgetten, begrensde xref-anker-pogingen, gestructureerde diagnostiek en full-rewrite-opslaan
Version 2.444.0
Added
AnalyzeLoadedSignatureRevisionsclassificeert nu elke incrementele revisie na een geselecteerde handtekening als langetermijnvalidatie, formulierinvulling en -ondertekening, annotaties of andere wijzigingen, rapporteert gewijzigde en bevrijde objecten en veldnamen, en evalueert DocMDP- en FieldMDP-naleving onafhankelijk over traditionele, stream-, hybride- en gecomprimeerde-object-xref-geschiedenis
Version 2.443.0
Added
VerifyLoadedSignatureWithTrustenHPDFValidateCMSCertificatePathbouwen nu ondertekenaar-certificaatpaden naar door de aanroeper geleverde vertrouwensankers en verifiëren certificaathandtekeningen, geldigheidsperioden, Basic Constraints, padlengte-beperkingen en Key Usage- Offline-herroepingsvalidatie verifieert nu OCSP- en CRL-handtekeningen, responder-autoriteit, certificaatidentiteit, statusversheid en herroepingstijden, waarbij per-handtekening VRI-bewijs wordt geprefereerd boven documentniveau-DSS, aanroeperbewijs en CMS-CRL's
THPDFSignatureInfo.CertificateValidationrapporteert vertrouwen, padlengte, vertrouwensanker, evaluatietijd, herroepingsstatus en -bron, herroepingstijd en validatieproblemen onafhankelijk van cryptografischesvValid
Version 2.442.0
Added
- Verificatie van geladen handtekeningen valideert nu cryptografisch RFC 3161-document-timestamps tegen de PDF
/ByteRangeen handtekening-timestamp-tokens tegen de bovenliggende CMS-handtekeningwaarde, terwijlTHPDFSignatureInfo.Timestamphet timestamp-type, de status, het beleid, de message-imprint, het serienummer, de generatietijd, de nauwkeurigheid, de ordening, de nonce, de TSA-identiteit en de certificaatdetails van de token-ondertekenaar blootlegt
Version 2.441.0
Added
- Verificatie van geladen handtekeningen ondersteunt nu CMS RSA-PSS-handtekeningen met SHA-1, SHA-256, SHA-384 of SHA-512 en valideert expliciete hash-, MGF1-hash-, salt-length- en trailer-field-parameters
THPDFSignatureInforapporteert nuSignedRevisionLengthenUnsignedTrailingBytes, ensvInvalidByteRangeidentificeert structureel onveilige PDF-handtekeningbereiken
Changed
- Handtekeningverificatie herstelt nu de stream-positie van de aanroeper, vergelijkt beveiligingsgevoelige byte-sequenties zonder vroege uitgangen en rapporteert complete RSA-PSS-algoritme-parameters
Fixed
- CMS-verificatie wijst nu overlappende, out-of-bounds, afgekapte of dubbelzinnige byte-bereiken af en valideert de complete RSA PKCS#1
DigestInfo-algoritme-identifier in plaats van een willekeurige digest-grootte octet-string te accepteren
Version 2.440.0
Fixed
- Unicode-lettertyperegistratie wijst nu de volledige glyph-advance-buffer toe voordat de lettertypemetrics worden gelezen, waardoor toegangsovertredingen in OpenType-shaping- en font-subsetting-workflows worden voorkomen
GetWideTextWidthinterpreteert gecachte Unicode-advances nu in em-eenheden en valt terug op platformmeting wanneer een glyph-metric niet beschikbaar is, waardoor correct geschaalde breedten voor regelafbreking en lay-out worden hersteldBeginIncrementalUpdatemarkeert geladen objecten nu schoon voordat wijzigingen van de aanroeper worden bijgehouden, zodat ongewijzigde objecten niet worden herschreven en verweesde encryptie-woordenboeken correct worden vrijgegeven in de toegevoegde cross-reference-sectie
Version 2.439.0
Added
HPDFDecodePredictorenHPDFTryDecodePredictorbieden begrensde decodering voor TIFF 1-, 2-, 4-, 8- en 16-bit predictie en alle vijf PNG-rijfilters, met strikte rijvalidatie en bruikbare diagnostiekTPDFLZWDecompressorvoegt directe stream-uitvoer, herbruikbare non-raising decode-methoden, configureerbare uitvoerlimieten en stream-terminator-vereisten toe, en per-decode code-breedte-, woordenboek-, reset-, expansie- en uitvoerstatistieken
Changed
- LZW-decodering gebruikt nu een aaneengesloten phrase-arena, ondersteunt beide PDF
EarlyChange-modi en beide bit-vulvolgorde, verwerkt clear-resets enKwKwK-expansie strikt, en laat string-uitvoer geometrisch groeien - Geladen Flate- en LZW-beeldextractie respecteert nu
DecodeParms-predictor-geometrie enEarlyChange, gebruikt overflow-veilige rastergroottebepaling, en deelt dezelfde predictor-implementatie als xref-stream-decodering
Fixed
- Flate-decodering met predictor-parameters leest nu uit de decompressiestroom in plaats van gecomprimeerde invoerbytes naar de predictor-fase te kopiëren
- Misvormde LZW-codes, afgekapte rijen, ongeldige PNG-rijtags, onmogelijke predictor-geometrie en overmatige expansie falen nu deterministisch in plaats van gedeeltelijke of nog steeds gecomprimeerde beeldgegevens terug te geven
Version 2.438.0
Fixed
THPDFViewercompileert nu op Delphi XE2 tot en met XE8, waarWM_DPICHANGEDontbreekt inWinapi.Messages; de per-monitor DPI-berichtconstante wordt nu lokaal gedefinieerd voor toolchains ouder dan Delphi 10 Seattle, waardoor de TRIAL-bibliotheek-DCU-builds voor RAD Studio XE2..XE8 worden hersteld die eerder afbraken metE2003 Undeclared identifier
Version 2.437.0
Changed
GetWideTextWidthmeet nu Unicode-tekst vanuit een per-codepoint advance-width-cache die eenmaal wordt gevuld vanuit de hmtx-tabel van het lettertype, in plaats van bij elke aanroep eenCreateCompatibleDC+GetTextExtentPoint32W-round-trip -- een 10-100x versnelling voor woordafbreking, uitlijning en tabelcelmeting op lange Unicode-documenten, met een transparante fallback naar het legacy GDI-pad wanneer er geen Unicode-lettertype is geregistreerd
Version 2.436.0
Fixed
- Ingebed lettertype
/FontDescriptor /CapHeightgebruikt nu de werkelijkeotmsCapEmHeight-metric van het gezicht in plaats van een hardgecodeerde constante, met een fallback naar ongeveer 70% van de stijging voor gezichten die nul rapporteren
Version 2.435.0
Fixed
- Ingebedde Unicode-lettertypen behouden nu de glyphs die OpenType-shaping produceert (Arabische presentatievormen, ligaturen, contextuele alternatieven) bij subsetting -- de
FUnicodeExtraUsedGlyphs-set die doorMarkUnicodeGlyphUsed/EnableShapingFeatureForSubsetwerd geregistreerd, werd wel geschreven maar nooit door de subsetter geraadpleegd, zodat deze glyphs in de uitvoer naar.notdefdegradeerden
Version 2.434.0
Added
THPDFWeightedCachevoegt niet-promoverende inspectie, Booleaanse opzoeking, expliciete verwijdering en eigendomsoverdracht, onmiddellijke budget-trimming, hit-rate- en levenscyclusstatistieken, en streaming SHA-256-inhoudssleutels toe
Changed
- Grote geordende ToUnicode- en CID-CMaps gebruiken nu logaritmische teken- en bereikopzoeking, behouden one-byte tot en met four-byte codespaces exact, isoleren gedeelde geparste maps per resource-root, en laten parser-opslag geometrisch groeien
- De persistente cache van gerenderde pagina's schrijft nu PNG- en indexgegevens atomair, houdt paginastrotheid bij op paginaniveau, past verminderde limieten onmiddellijk toe, en herstelt verouderde indexen, verlaten tijdelijke bestanden, ontbrekende mappen en ongeïndexeerde documentmappen
Fixed
- CMap-parsing verwerkt nu oneven hexadecimale nibbles correct en wijst misvormde hexadecimale gegevens, ongeldige of overlopende bereiken, negatieve CID-doelen en onbegrensde expliciete mappings af, terwijl ongeldige UTF-16-surrogatiereeksen deterministisch worden vervangen
- Weighted-cache-vervanging geeft een object niet langer vrij wanneer dezelfde instantie onder zijn bestaande sleutel opnieuw wordt ingevoegd, en corrupte schijf-cache-PNG-vermeldingen worden verwijderd na een mislukte decodering in plaats van bij elke latere opzoeking te falen
Version 2.433.0
Added
- Geladen handtekeningverificatie ondersteunt nu ECDSA P-256-, P-384- en P-521 CMS-handtekeningen met SHA-1, SHA-256, SHA-384 of SHA-512, inclusief issuer-and-serial- en SubjectKeyIdentifier-ondertekenarselectie, strikte DER-handtekeningvalidatie en uitgebreide algoritme- en curvemaatwerk
- ICC-kleurbeheer valideert nu ICC v2/v4-profielen, leidt componentaantallen af en verifieert deze, dedupliceert geregistreerde profielen, zet ICCBased-vector kleuren en ruwe beeldsamples om naar sRGB met rendering-intent-ondersteuning, en behoudt de PDF Alternate-kleurruimte als een gecontroleerde fallback
Version 2.432.0
Added
THPDFTableCellondersteunt nu beeldcellen (ImageIndex+ImageAspectschalen een geregistreerde afbeelding naar de kolombreedte met H/V-uitlijning) en HTML-cellen (IsHTMLrendert de celtekst viaTextOutHTMLvoor inline vet/kleur/link/sub-sup-markup), overeenkomend met de verscheidenheid aan celinhoud die een grid-export naar verwachting moet bevatten
Version 2.431.0
Added
- Nieuwe
THPDFTablelay-out- en rendering-engine (HPDFTable-unit) legt tabellen aan uit gedeclareerde kolombreedten en rijen, met per-cel tekst, uitlijning, kleur- en lettertype-overrides,ColSpan/RowSpan-samenvoeging, automatische woordafbreking met gemeten rijhoogten, koptekst- en zebra-streef-achtergronden, en automatische pagina-onderbrek-voortzetting die de koptekstband op elke pagina herhaalt -- alles bestaandeTHPDFPage-tekenprimitieven aansturend, zodat producenten cellen niet langer handmatig tekenen metRectangleenTextOut
Version 2.430.0
Changed
- Verwerkings van inhoudsstroom en bewerking van geladen pagina's schalen nu efficiënter op grote tekst- en pad-workloads, behouden aanvullende-vlak Unicode- en PDF-pad-semantiek, maken paginacaches ongeldig na mutaties, en voltooien schrijfbewerkingen naar streams die gedeeltelijke buffers accepteren
Version 2.428.0
Added
THPDFPage.TextOutHTMLkrijgt een regelafbreken-overload die eenMaxWidthaccepteert en lange regels op woordgrenzen afbreekt, plus inline-hyperlink- (<a href>) en sub-/superscript-tags (<sub>/<sup>); hyperlinks worden blauw en onderstreept getekend en registreren een klikbare URI-annotatie
Version 2.427.0
Changed
- Aaneengesloten tekstreeksen die dezelfde lettertype en grootte delen zenden de
Tf-operator niet meer bij elke aanroep opnieuw uit, waardoor inhoudstromen in lettertype-rijke documenten (tabellen, alinea's) krimpen terwijl ze nog steeds opnieuw worden uitgezonden na een herstel van de grafische status (Q) waar PDF dit vereist - De ellipsbenadering van
THPDFPagegebruikt nu de standaard kubieke-Bézier-kappa-constante0.5522847498, overeenkomend met alle andere ellips- en cirkelimplementaties in de eenheid en verwijderend de kleine straalafhankelijke afwijking die de vorige11/20-benadering opleverde
Version 2.426.0
Added
- De viewer warmt nu de cache met gerenderde pagina's voor voor de pagina's aangrenzend aan degene die zojuist werd getoond, met een achtergrondthread op dezelfde DPI zodat de volgende pagina-omslag de cache raakt in plaats van synchroon opnieuw te renderen; de nieuwe eigenschap
PrefetchRadiusbepaalt hoeveel pagina's aan elke kant vooraf worden opgewarmd (0 schakelt het uit)
Version 2.425.0
Added
- De renderer van geladen pagina's decodeert en tekent nu inline-afbeeldingen (
BI/ID/EI) in plaats van ze over te slaan, waarbij de afgekorte inline-afbeeldingssleutelwaardeparen en onbewerkte bytes op tokenisatietijd worden uitgebreid en het resultaat via dezelfde eenheidsvierkante CTM-toewijzing als voor afbeelding-XObjects wordt geplaatst
Version 2.424.2
Changed
- De schijfcache van gerenderde pagina's verzamelt nu alle paginabestanden in één directoryscan en zet de overlopende staart in één doorgang eruit, ter vervanging van de vorige herscan-per-verwijdering-lus die in kwadratische tijd liep over het aantal pagina's per document
- Beeldontdubbeling memoïseert nu de SHA-256 van elke opgeslagen afbeeldingsstroom en vergelijkt hashes voordat de bytes worden doorlopen, zodat het toevoegen van dezelfde grote afbeelding aan veel pagina's niet langer elke eerder opgeslagen stroom bij elke invoeging opnieuw leest
Version 2.424.1
Changed
- De gewogen cache van gedecodeerde afbeeldingen en subset-lettertypes lost nu opzoekingen via een hash-index op en handhaaft de meest recent gebruikte volgorde via een op index gebaseerde dubbel gelinkte lijst, waardoor elke
Get,Puten actualiteitspromotie van een O(n)-arrayverschuiving tot O(1)-werk wordt omgezet, zodat het renderen van grote multi-afbeeldingsdocumenten niet meer degradeert naarmate de cache vult
Version 2.424.0
Changed
CompressLoadedDocumenteert nuCompressionLevel, verwerkt bronsstromen in begrensde stukken, behoudt de oorspronkelijke lading wanneer compressie deze niet verkleint, geeft vervangen stromen veilig vrij en markeert getransformeerde stroomobjecten als vuil zodatSaveLoadedDocumenthet resultaat persisteert in plaats van het ongewijzigde-bestand-kopiepad te nemen.DecompressLoadedDocumentgebruikt hetzelfde eigendomsveilige streamingpad, verwijdert identiteits-/DecodeParmsen laat TIFF- of PNG-voorspellerstromen gecomprimeerd totdat de voorspellerfase veilig kan worden gedecodeerd
Version 2.423.0
Added
THPDFPage.AddCertificationSignatureFieldenConfigureCertificationSignaturemaken nu de enige DocMDP-certificeringsondertekening met alle drie toestemmingsniveaus en de bijpassende Catalog/Perms /DocMDP-koppeling, terwijlAttachSignatureFieldLockindirecte SigFieldLock-beleiden en bijpassende FieldMDP-referenties voor de veldscopes All, Include of Exclude uitzendt.THotPDF.GetLoadedSignaturePermissionsvoert een begrensde structurele inspectie uit van dezelfde toestemmingsgraaf, met inbegrip van vereiste directheid, wortelkoppeling, beleidsovereenstemming en diagnostiek, zonder de beleidsstructuur te verwarren met cryptografische geldigheid of naleving van latere revisies
Version 2.422.0
Added
- Placeholder-tokens voor watermerk / koptekst / voettekst resolven nu documentmetadata:
<%Author%>/<%Title%>/<%Subject%>/<%Keywords%>/<%Producer%>worden gesubstitueerd naast de bestaande<%PageNo%>/<%TotPage%>/<%FileName%>/ datum-tijd tokens wanneer de nieuweHPDFReplaceWatermarkPlaceholders-overload eenTHPDFPlaceholderDocInfo-record krijgt. De legacy 4-parameter-signatuur blijft voor callers die alleen de pagina / bestand / datum-tijd-subset nodig hebben
Version 2.421.0
Added
THPDFActionBuilder.GoToEmbeddedNamedDestinationenGoToEmbeddedPagemakenGoToE-acties voor PDF 1.6 met standaard-geldige parent, EmbeddedFiles name-tree, bijlage-annotatie en geneste/T-doelpaden, terwijl benoemde of expliciete bestemmingen, optionele root-bestandsspecificaties,NewWindow, actie-chaining en PDF/A/PDF/X-beperkingen behouden blijven- Inspectie van geladen acties herkent nu alle 18 actiesubtypen van ISO 32000-1 en retourneert geordende, niet-uitvoerende
THPDFLoadedActionInfo-snapshots uit catalogus-/OpenActionen/AA, pagina-/AA, annotatie-/Aen/AA, AcroForm-veld-/AAen outline-/A-bronnen. Dictionary- en array-vormen van/Nextbehouden de uitvoeringsvolgorde, terwijl misvormde entries, gedeelde nodes, cycli, excessieve diepte en excessieve node-aantallen veilig stoppen met diagnostiek - De enums voor annotatie-actie en JavaScript-trigger bevatten nu de page-open
/PO, page-close/PC, page-visible/PVen page-invisible/PI-events met de vereiste PDF 1.5-versieonderhandeling
Version 2.420.0
Added
- Content-stream-device stadium 3 sluit de abstractie-lus:
IHPDFContentDevicekrijgtDrawXObject/DrawShading/ApplyExtGStatevoor deDo/sh/gs-operators, en de gedeelde interpreter stuurt ze nu door.Dois gated opcdcNeedImageszodat tekst/enum-devices de zware image-decoding overslaan;shengsdispatchen onvoorwaardelijk. HetExecuteViaDevice-pad van de renderer kan nu de volledige operatorset schilderen (paden + kleuren + tekst + afbeeldingen + shading + ExtGState), observeerbaar equivalent aan het legacyHandleOperator-pad. De geneste procedureApplyExtGStateis gepromoveerd tot een class-methode (DoApplyExtGState) zodat het device-pad deze deelt zonder duplicatie; method-resolution-clauses routeren de drie nieuwe interface-entries naar deDev*-helpers zonder botsing met de reeds bestaande private helpers - Observer-patroon voor documentinhoud: de event
THotPDF.OnLoadedDocumentModifiedvuurt vanuitInvalidateRenderedPageCache(PageIndex = -1, hele document) enInvalidateRenderedPageCachePage(een specifieke pagina) zodat gekoppelde viewers automatisch verversen.THPDFViewersubscribes inSetDocumenten unbindt bij detach /opRemove, waarbijRefreshDocumentwordt aangeroepen wanneer de huidige pagina (of het hele document) wordt getroffen. Multi-view-sync (meerdere viewers op dezelfdeTHotPDF) werkt nu zonder dat elke caller handmatigRefreshDocumentaanroept
Version 2.419.0
Added
- Content-stream-device abstractie stadium 1:
IHPDFContentDevicekrijgt het tekst-callback-oppervlak (BeginText/EndText/UpdateFont/UpdateCharSpace/UpdateWordSpace/UpdateHorizScale/UpdateLeading/UpdateRenderMode/UpdateRise/TextMove/TextSetMatrix/TextNewLine/ShowText/ShowTextArray) dat de PDF-tekst-state-machine spiegelt; de gedeelde dispatcherHPDFInterpretContentStreamDevicestuurt nu BT/ET/Tf/Tc/Tw/Tz/TL/Tr/Ts/Td/TD/Tm/T*/Tj/TJ/'/" door naar het device wanneer hetcdcNeedTextdeclareert THPDFTextExtractDeviceis een concreet device dat de tekst-matrices bijhoudt en per char-code éénTHPDFGlyphRecordemitteert (gedecodeerd via een geïnjecteerdeIHPDFFontResolver) — observeerbaar equivalent aan de output vanHPDFInterpretTokensmaar geproduceerd via de device-interface, zodat dezelfde interpreter-loop tekstextractie, padenumeratie en rendering aanstuurt- De convenience-functie
HPDFExtractGlyphsViaDevicewrapped het tekst-extract-device + de gedeelde interpreter in één aanroep; de bestaandeHPDFInterpretContentStream/HPDFInterpretTokensblijven onaangeroerd voor huidige callers - Content-stream-device abstractie stadium 2:
THPDFPageRendererimplementeert nuIHPDFContentDevicezodat de gedeelde dispatcher hem via dezelfde abstracte interface kan aansturen.ExecuteViaDeviceis de optionele device-gedreven render-entry; het productie-Execute-pad behoudt zijn ingebouwdeExecuteStream/HandleOperator-dispatch, zodat bestaand gedrag ongewijzigd blijft. De renderer draagt elk stuk state mee dat de callbacks nodig hebben (graphics-state-stack, font-cache, GDI-handles, vier paint-bridges) en elke device-methode is een dunne delegatie, dus de device-gedreven route is observeerbaar equivalent aan de legacy-route
Version 2.418.0
Added
DecompressLoadedDocumentis de inverse vanCompressLoadedDocument: hij loopt elke indirecte stream die een/Filter /FlateDecodedraagt (naam- of enkel-element-arrayvorm) af, inflate-t de payload terug naar rauwe bytes, stript de/Filter-entry en herstelt/Length; streams met andere filters (CCITT / DCT / JBIG2 / JPX / Crypt / RunLength) en multi-filter-ketens worden met rust gelaten, en corrupte Flate-payloads worden overgeslagen in plaats van weggegooidEnumLoadedPageElementsretourneert nu de volledige padgeometrie perekPath-element, niet alleen de bounding box: twee nieuwe veldenPathPoints: array of THPDFPathPointenPathIsCurve: array of Booleanzijn index-parallel en dragen elk segment’s user-space-controlepunten met een flag die kubische bézier-segmenten onderscheidt van lineaire (m / l / re-randen). Callers die alleen de bbox lezen worden niet getroffen; CAD-tekeningextractie, tabel-lijndetectie en vector-replay-consumenten kunnen nu de exacte curven reconstrueren die de pagina tekende- De nieuwe unit
HPDFContentDeviceintroduceert de content-stream-device-abstractie (stadium 0): eenIHPDFContentDevice-interface met eenTInterfacedObject-basisimplementatie (spiegelend het beproefdeIHPDFFontResolver-patroon), een gedeelde dispatcherHPDFInterpretContentStreamDevicedie vandaag de pad / kleur / state-operator-subset dekt, en een concreetTHPDFPathEnumDevicedat per geschilderd pad één record verzamelt met volledige puntgeometrie. Dit doorbreekt de drieweg-duplicatie tussenHPDFContentStream,HPDFPageRenderer.HandleOperatorenHPDFCollectPathElements; stadium 1 zal tekst/image-callbacks toevoegen en stadium 2 zal de renderer naar het device migreren
Changed
HPDFPageRendererheader comment updated: the “TrueType/CFF glyph-outline rendering out of scope” note was stale — embedded glyph outlines have been active since v2.342.0 (DrawTextRuncallsTHPDFEmbeddedTTF.DrawGlyph/THPDFEmbeddedCFF.DrawGlyphwith real quadratic/cubic bezier paths; GDITextOutWis only the fallback for unmapped characters). CID fonts via Identity-H + CIDToGIDMap are covered too
Version 2.417.0
Added
- Five named loaded-document annotation helpers close the discovery gap where the existing
ASubtype-parameterised helpers (AddLoadedHighlightAnnotation,AddLoadedSquareAnnotation,AddLoadedPolygonAnnotation) already produced these subtypes but callers had to know the secret:AddLoadedCircleAnnotation,AddLoadedUnderlineAnnotation,AddLoadedStrikeOutAnnotation,AddLoadedSquigglyAnnotationandAddLoadedPolylineAnnotation-- once landed, the XFDF interchange layer (which already recognises these subtype strings) picks them up for free AddLoadedFileAttachmentAnnotationembeds an arbitrary file payload (PDF, image, office doc) as a FileAttachment annotation with the full three-object graph the spec requires: annotation dict / Filespec dict / EmbeddedFile stream with/SubtypeMIME,/Params /Sizeand creation/modification dates; the newTHPDFFileAttachmentIconenum (faiPushPin/faiGraph/faiPaperclip/faiTag) selects the standard pin icon viewers renderTHPDFFieldValidationOptionsrecord +HPDFDefaultValidationOptionsexpose the full AdobeAF*parameter surface (Decimals / SeparatorStyle / NegativeStyle / CurrencySymbol / CurrencyBefore / RangeMin / RangeMax) that the Acrobat JS helpers accept; the existingApplyLoadedFieldValidation(FieldIndex, Kind, DateFormat, Mask)signature is retained as a backward-compatible overload that forwards into the new record overloadApplyFieldValidationandApplyFieldCalculationbring the same Format+Keystroke+Validate / Calculate template to producer-mode fields (looked up by name) so newly-created forms get the same AF* scripts as loaded ones, without writing JavaScript by handCopyLoadedAnnotationsFromDocumentdeep-copies annotations from another loaded document directly PDF→PDF (no XFDF intermediary): reusesCopyObjectto rebuild indirect references, streams and/APappearances, rewrites/Pto the destination page, optionally remaps/IRTreply chains via/NM, optionally clears/Tauthor, and accepts aTHPDFAnnotCopyFilterEventcallback for selective copy -- covers Widget/PrinterMark/TrapNet/Watermark/3D/Screen that the XFDF layer does not reach
Fixed
ApplyLoadedFieldValidationwrote the Format JavaScript under trigger key/X(annotation-exit), which Acrobat never fires for form fields -- the script was effectively dead. Corrected to/Fso the format actually runs on field commitApplyLoadedFieldValidationemittedAFSpecial_FormatExfor the ArbitraryMask kind, a function that does not exist in the AdobeAF*set; onlyAFSpecial_KeystrokeEx(mask)is real, so the Format pass is dropped and enforcement happens at keystroke time as the spec intendsApplyLoadedFieldValidationunconditionally appendedAFRange_Validate(true,true,0,9999999)for numeric kinds, imposing a hidden 0..9999999 range the caller never asked for; range validation now only fires when the caller explicitly setsRangeMinorRangeMaxin the options recordApplyLoadedFieldValidationwrapped the ArbitraryMask in a JavaScript regex literal and emitted a hand-rolled validate script, but the mask is a literal format pattern ("AAA-9999"), not a regex; the validate pass is now removed and the keystroke mask carries the enforcement aloneApplyLoadedFieldCalculationnow prepends a Format+Keystroke number-formatting pair before theAFSimple_Calculatescript so the aggregated result renders as a plain number, matching common PDF viewer behaviour (without it the Calculate value displays raw)
Version 2.416.0
Added
THPDFViewernow scrolls on hover-wheel without needing a click first: a thread-localWH_MOUSEhook (newHPDFMouseWheelHookunit, auto-installed from itsinitializationsection) routesWM_MOUSEWHEELto whicheverTHPDFViewerinstance sits under the cursor, matching the behaviour of every native Windows PDF readerTHPDFVieweris now Per-Monitor DPI v2 aware: newHPDFPerMonitorDPIunit resolvesuser32!SetProcessDpiAwarenessContext(Win10 1703+,DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) at runtime and falls back throughshcore!SetProcessDpiAwareness(Win8.1+) anduser32!SetProcessDPIAware(Vista+); the legacyHPDFEnablePerMonitorDPIis retained as an alias that forwards to the new layered helperTHPDFViewer.RenderAtPhysicalDPIpublished property (defaultTrue) makes the rendering DPI baseline track the monitor’s physical DPI viaHPDFGetWindowDPI, so 100% zoom on a 144 DPI panel renders at native resolution; a newWMDpiChangedhandler re-renders on cross-monitor moves; setFalseto preserve the historical 96-DPI logical baseline- Optional persistent disk tier for the rendered-page cache: setting
THotPDF.RenderCacheFolderto a writable folder path persists every page rendered byRenderLoadedPageToBitmapCachedas a PNG under<folder>\<SHA256-prefix-16>\<page>@<dpi>.png, so re-opening the same document later is instant;RenderCacheMaxDocuments(default 20) andRenderCacheMaxBytes(default 500 MB) bound the footprint with a true LRU eviction; the lookup order becomes in-memory → disk → rasterise, with disk hits back-filling the in-memory tier THotPDFconstructor now activates the highest available per-monitor DPI tier at first instantiation in runtime mode (skipped incsDesigning), so hosts that never callHPDFEnablePerMonitorDPIexplicitly still get crisp rendering on high-DPI displays
Version 2.415.0
Toegevoegd
HPDFParsePDFDateDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen+HH’mm,-HH’mm, orZDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenTDateTime;HPDFFormatPDFDateDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenD:YYYYMMDDHHmmSS+00’00GetLoadedExtGStateInforeadsLW/LC/LJ/ca/CADeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedShadingCount/GetLoadedShadingNameandGetLoadedPatternCount/GetLoadedPatternNameenumerate the/Shadingand/Patternresource sub-dictionariesReplaceLoadedPageDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenSwitchLoadedPagesexchanges two pages,ReverseLoadedPagesDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenExtractLoadedPagesToPDFDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedPageInheritedBoxDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedFileSpecInfoDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedEmbeddedFileMIMEreturns the/Subtype,GetLoadedEmbeddedFileChecksumreturns the/Checksumdigest, andTHPDFNameTreeType+GetLoadedNameTreeRootCountDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenHPDFEnablePerMonitorDPIdynamically enables per-monitor DPI awareness;THPDFBackgroundRendererDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedPageContentStreamCountreports whether/ContentsDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedXMPValueDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedDocumentReportDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen
Version 2.414.0
Toegevoegd
THPDFActionBuilder.URIWithIsMapDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen/IsMap trueDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenURIDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen/URIstringAddLoadedCaretAnnotationExDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen/Sy PDeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolenGetLoadedAnnotationDADeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen/DADeze versie voegt het beschreven API-gedrag en de ondersteuning toe via de vermelde symbolen
Version 2.413.2
Opgelost
- Deze versie synchroniseert het beschreven API-gedrag en de ondersteuning voor de vermelde symbolen
Version 2.413.1
Fixed
- Type1 and CFF font handling now preserves parser ownership across repeated stream checks and multi-font FontSets, returns stable glyph names and bounding boxes, keeps fractional font sizes and DPI scaling, and avoids composite-glyph and private-dictionary memory errors
- The C++Builder AddDelPages, HugeFileBenchmark, and Security demos now compile for Win64, while page-operation and preflight examples release partially constructed objects safely
Version 2.413.0
Changed
- The Delphi E-Invoice demo now validates required invoice fields, amount and VAT ranges, currency syntax, and embedded XML profile compatibility before writing output
- The attach workflow now rejects identical source and output paths, reports the detected XML guideline, and combines container, PDF/A, XML profile, signature, visual consistency, Schematron, and external-report checks into one verdict
Fixed
- E-Invoice generation and manual validation no longer report a successful result when an enabled validation layer finds issues
- Loaded electronic-invoice summaries now read the invoice number, seller, and buyer from their correct XML aggregates, preventing false visible-text consistency findings
Version 2.412.0
Changed
- All Delphi demos now resolve no-argument relative assets and outputs from their executable directory while preserving the caller working directory for command-line paths
- Delphi command-line demos now provide stricter argument validation, failure exit codes, deterministic comparison inputs, and generated-document verification across page copying, text extraction, preflight, optimisation, inspection, and in-memory workflows
Fixed
- Delphi demos no longer risk page-list overflow above 100 selected pages, create an extra blank page in the add-page workflow, close unrelated PDF viewer windows, or report failed preflight checks as successful
- The E-Invoice attach workflow now rebuilds its current page correctly when a single-page source is converted, signed, and stripped of the temporary initial blank page
Version 2.411.0
Added
- E-Invoice demo: new "Attach to existing PDF" mode converts an existing PDF to PDF/A-3, embeds a Factur-X/ZUGFeRD invoice XML as a document-level attachment, and optionally signs the result with a PFX certificate
Version 2.410.0
Added
- Loaded AcroForm fields can now update flags, maximum length, text justification, per-widget rectangles, rotation, border colour, and visible or printable state, with widget enumeration for radio groups and other multi-widget fields
Fixed
- Loaded field tooltip, border-width, and background-colour edits now mark the correct field or widget dictionaries dirty, apply visual properties to every widget, and invalidate only the affected page render cache
Version 2.409.0
Added
ActivateLoadedLinksturns bare HTTP, HTTPS, FTP,www.,mailto:, and email text into positioned borderless URI annotations across a selected page range
Changed
- Loaded link creation now persists reliably in incremental updates, while automatic activation snapshots existing links once per page, skips matching URI and rectangle pairs, and invalidates each changed page cache only once
Version 2.408.0
Added
- Geladen annotaties kunnen nu hun titel, unieke naam, wijzigingsdatum, genormaliseerde rechthoek en standaard rand stijl (ononderbroken, gestreept, afgeschuind, ingelegd of onderstreept) bijwerken
Fixed
- Bewerkingen van geladen annotaties markeren het annotatieobject nu als gewijzigd voor incrementele opslag, terwijl visuele bewerkingen alleen de gecachede weergaven van de betrokken pagina ongeldig maken en andere warme pagina's behouden
Version 2.407.0
Added
THPDFViewerModelslaat blijvende markeergebieden per pagina op, knipt ze bij, telt ze op, verwijdert ze en wist ze zonder de PDF te wijzigenTHPDFViewervoegt een markeerinteractiemodus toe met vastgelegde markeersleepbewegingen, rotatiebewuste PDF-coördinaatstelling, configureerbare kleur en eenOnMarqueeSelect-callback
Fixed
- Viewercoördinaattransformaties behouden nu de werkelijke render-DPI onder 12 en boven 2400, zodat selecties uitlijnen op de zoomlimieten van 5% en 6400%
Version 2.406.0
Added
THPDFViewerModelmaakt rotatiebewuste paginaminiaturen rechtstreeks op een DPI die is geselecteerd voor door de aanroeper opgegeven pixelgrenzen, zonder tussentijdse paginabitmaps op volledige grootte- Paginavoorcaching van het viewermodel verwarmt asynchroon een gecentreerde buurt terwijl het aantal geplande pagina's wordt beperkt tot de rendercachecapaciteit
Version 2.405.0
Added
THPDFPageLayoutondersteunt nu de PDF 1.5-omslagspreidindelingenplTwoPageLeftenplTwoPageRightmet automatische versieonderhandeling en strikt-versie-fallback
Fixed
BeginDocbehoudt nu de door de aanroeper geselecteerde pagina-indeling in plaats van deze altijd te vervangen doorplOneColumn
Version 2.404.0
Added
THPDFViewerModelmaakt rotatiebewuste momentopnamen van begrensde PDF-paginagebieden zonder een volledige paginabitmap toe te wijzen
Version 2.403.0
Added
THPDFViewerModelconverteert punten bidirectioneel tussen de PDF-paginaruimte en rotatiebewuste viewercoördinaten op een door de aanroeper geselecteerde DPI
Version 2.402.0
Changed
- Viewerzoomopdrachten gebruiken nu stabiele standaardniveaus van 5% tot 6400%, inclusief omkeerbare navigatie rond willekeurige aangepaste waarden
Version 2.401.0
Added
THPDFViewervoegt Ctrl+wiel-zoom, verticaal wiel-scrollen en Shift+wiel horizontaal scrollen toe zonder opnieuw te renderen voor alleen-scrollen invoer
Version 2.400.0
Added
THPDFViewervoegt toetsenbordpaginanavigatie, scrollen, zoomsneltoetsen en selectie van de modus Werkelijke grootte, Breedte aanpassen of Pagina aanpassen toe
Version 2.399.0
Added
THPDFViewertekent of print de rotatiebewuste huidige weergave met deterministische beeldverhoudingsbewarende passing en gecentreerde plaatsing
Version 2.398.0
Added
THPDFViewerModelmaakt vectoriele EMF-momentopnamen van elke geladen pagina of de huidige weergave die eigendom zijn van de aanroeper, inclusief niet-destructieve rotatie van 90 graden
Version 2.397.0
Added
THPDFViewerModelslaat rotatiebewuste paginamomentopnamen op als BMP, JPEG of PNG naar bestanden en streams die eigendom zijn van de aanroeper met configureerbare JPEG-kwaliteit
Version 2.396.0
Added
THPDFViewer.ResetViewherstelt Werkelijke grootte, wist weergaverotatie en zoekmarkeringen terwijl de huidige pagina behouden blijft, met bijbehorende reset- en rotatieacties en gebatchte enkele-render-updates
Version 2.395.0
Added
THPDFViewerenTHPDFViewerModelvoegen kloksgewijze, tegen de klok in en herstelbare weergaverotatie toe die ook van toepassing is op paginamomentopnamen die eigendom zijn van de aanroeper zonder de PDF-pagina te wijzigen
Version 2.394.0
Added
THPDFViewerModelkan paginamomentopnamen maken die eigendom zijn van de aanroeper en de huidige pagina opslaan als BMP zonder een Viewer-besturingselement te construeren
Version 2.393.0
Added
THPDFLoadedFormFieldgeeft nu veldvlaggen, MaxLen, pagina-index, widgetgrenzen en algemene statussen Required, NoExport, Multiline en Password weerGetLoadedFormFieldMaxLengthbiedt directe geïndexeerde toegang tot lengtebegrenzingen van geladen tekstvelden
Version 2.392.0
Added
SetDocumentAttachmentMetadatahernoemt ingesloten bijlagen op documentniveau en werkt hun beschrijvingen bij vóór serialisatie
Version 2.391.0
Added
ExtractLoadedPagesTextToStreamstreamt geselecteerde tekst van geladen pagina's als UTF-8 met aangepaste scheidingstekens en optionele BOM-uitvoerTHPDFViewerModelvoegt formulierveldhittests en deterministische toetsenbordnavigatie over pagina-widgets toeTHPDFSignatureInfo.CertificateTimeValidityrapporteert geldigheidsclassificaties op basis van certificaat en ondertekentijd
Fixed
- Geladen formuliervelden zonder widget
/Pbackreferenties kunnen nu worden toegewezen via paginaannotatiearrays
Version 2.390.0
Added
THPDFWatermarkTemplate.MakeCurveenTHPDFPage.AddCurveWatermarkvoegen kubieke Bézier-curven toe aan geladen composieten en het ontwerpen van nieuwe documenten
Fixed
- Metagegevenssetters van geladen documenten markeren het Info-woordenboek nu als gewijzigd zodat incrementele opslag titel- en auteurswijzigingen bewaart
Version 2.389.0
Added
InsertLoadedBlankPagevoegt een lege pagina met door de aanroeper gedefinieerde afmetingen in op een exacte positie in een geladen documentExtractLoadedPagesTextverzamelt tekst uit een op-één-gebaseerd paginabereik met een door de aanroeper gedefinieerd scheidingstekenGetLoadedFormFieldNameValuePairsenSetLoadedFormFieldNameValuePairsbieden batchgewijsname=value-formulieruitwisseling viaTStringsCMapResourcePathondersteunt expliciete standaard CMap-implementatiepaden voor services, plug-ins en aangepaste applicatieindelingen
Changed
- De VCL-viewer tekent nu zoektrefferrechthoeken en ververst wanneer de actieve treffer verandert op de huidige pagina, terwijl gekoppelde overzichtsbesturingselementen documentwijzigingen van de viewer volgen
- Paginarendering lost nu overgeërfde mediaboxen, rotatie en bronnen op en wijst niet-nul pagina-oorsprongen correct toe bij elke rechthoekige rotatie
Fixed
- Formuliernaamconflicten worden afgewezen voordat pagina-invoeging of -toevoeging begint wanneer samenvoegen hernoemen is uitgeschakeld, waarbij het aantal bestemmingspagina's ongewijzigd blijft
- Het verwijderen van geladen pagina's ontkoppelt nu hun AcroForm-widgetvelden en verwijdert lege veldstructuurvertakkingen in plaats van verwijzingen naar verwijderde pagina's achter te laten
- Zoekhelpers in cursorstijl en viewermodelmissers wissen beheerde tekstovereenkomstrecords niet langer met ruwe geheugenbewerkingen
- Automatische CMap-detectie geeft nu de werkelijke collectieroot door aan de tekstdecoder
Version 2.388.0
Added
- Het nieuwe
DeletePagesverwijdert op-één-gebaseerde paginabereiken uit geladen PDF's, dedupliceert overlappende selecties, rapporteert voortgang en herbouwt een geldige paginaboom voor opslag - Pagina-invoeging en -samenvoegen accepteren nu
THPDFMergeOptionsom recursieve overzichten te kopiëren, geïmporteerde AcroForm-velden te registreren en conflicterende veldnamen deterministisch te hernoemen - Het nieuwe
AddLoadedRadioButtonmaakt een echt bovenliggend radiokeuzerondje met onderliggende widgets, gedeelde exportwaarden en volledige aan/uit-weergavestatussen - Het nieuwe
SearchLoadedNextbiedt statusloze paginagebonden zoekfunctie voor de volgende overeenkomst, terwijlGetLoadedOutlineEntriesvolledige recursieve overzichtsmomentopnamen retourneert met bovenliggende en niveaugegevens - Nieuwe Windows-certificaatwinkel-ondertekeningsoverloads selecteren een certificaat van de huidige gebruiker of de lokale machine op basis van SHA-1-vingerafdruk en ondertekenen via CNG- of verouderde CSP-privésleutels
- De nieuwe
THPDFLoadedDocumentFacadegeeft getypeerde overzichts-, formulier-, annotatie-, lettertype- en afbeeldingscollecties weer met mutatie- en extractiehelpers - Nieuwe klassen
THPDFViewer,THPDFSearchPanel,THPDFOutlineViewer, viewermodel en vieweractie voegen herbruikbare VCL-paginaweergave, navigatie, zoom, zoeken en bladwijzerbesturingselementen toe - Nieuwe demo's voor geavanceerd afdrukken, handtekeningvalidatie, paginaminiaturen, exporteren van geladen afbeeldingen en inspectie van getypeerde geladen documenten behandelen de end-to-end-workflows
Changed
- Afdrukken van geladen documenten bouwt nu deterministische gecollationeerde of niet-gecollationeerde fysieke paginareeksen, ondersteunt aangepaste papierbreedte en -lengte en rapporteert printerpapiercode's, namen en formaten
- Systeem-certificaatnummering bevat nu SHA-1-vingerafdrukken, beschikbaarheid van privésleutels, geldigheidsdata en metagegevens voor sleutelgebruik
Fixed
- Groei van geladen zoekresultaten in tekst kopieert beheerde tekenreeksrecords niet langer met ruwe geheugenbewegingen, waardoor ongeldige-aanwijzerfouten op Win64 worden voorkomen
- Het verwijderen van geladen pagina's maakt gedeelde paginabronnen niet langer vrij en laat geen verlopen paginaboomtellingen achter die opnieuw verschijnen na opslaan en opnieuw laden
Version 2.387.0
Added
- Het nieuwe
PrefetchLoadedPagesrendert een paginabereik in de rendercache op een achtergrondwerkthread, zodat een viewer die pagina's omdraait directe warme-cache-treffers krijgt in plaats van op elke render te wachten CancelLoadedPagePrefetchstopt de worker enIsLoadedPagePrefetchActiverapporteert de status; het laden van een ander document of het vernietigen van de component annuleert automatisch een actieve voorinlading- Gecachede rendering en de voorinlaadworker worden intern geserialiseerd, zodat
RenderLoadedPageToBitmapCachedveilig kan worden aangeroepen terwijl een voorinlading actief is
Version 2.386.0
Added
- Het nieuwe
FlattenLoadedAnnotationstekent de normale weergave van elke annotatie permanent in de pagina-inhoud op zijn rechthoek en verwijdert de annotatie, zodat opmaak- en formuliervisuals bewaard blijven in viewers die annotaties verbergen of niet kunnen bewerken - De pas volgt weergavestatus-woordenboeken via
/AS, respecteert de weergavebegrenzingsdoos en -matrix bij het passen in de rechthoek en kan worden beperkt tot één annotatie-subtype of een paginabereik
Version 2.385.0
Added
- Het nieuwe
RenderLoadedPageRegionToBitmaprastert alleen een gekozen gebruiksruimtevenster van een pagina op de gevraagde DPI, zodat zeer grote pagina's tegel voor tegel kunnen worden gerenderd in begrensde geheugen bij hoge resoluties in plaats van als één overgrote bitmap - Tegels sluiten precies aan: de bitmap dekt precies het gevraagde gebied, zodat aangrenzende tegels zonder naden samenvallen tot de volledige pagina
Version 2.384.0
Added
- Het nieuwe
GenerateLoadedPageThumbnailsrendert de geselecteerde pagina's van een geladen document en sluit ze in als JPEG-paginaminiaturen, de voorbeelden getoond in viewerpaginapanelen; de langste randgrootte en JPEG-kwaliteit zijn configureerbaar en bestaande miniaturen worden ter plekke vervangen GetLoadedPageThumbnailSizeleest de pixelafmetingen van een ingesloten miniatuur terug enClearLoadedPageThumbnailsverwijdert miniaturen van de geselecteerde pagina's
Version 2.383.0
Added
EnumLoadedPageElementsrapporteert nu vectorpadelementen naast tekstuitvoeringen en afbeeldingen: elk geschilderd pad levert een element op met zijn gebruiksruimtebegrenzingsdoos, de schilderoperator (lijn, vulling of beide), de actieve vul- en lijnkleuren en het segmentaantal- De padloper volgt
q/Q-nesting encm-transformaties, zodat vormen getekend binnen geschaalde of vertaalde blokken hun echte paginacoördinaten rapporteren
Version 2.382.0
Added
THPDFPrintOptionskrijgt veldenDuplex(enkelvoudig, lange rand, korte rand),PaperBinenPrintQualitydie in de printerapparaatmodus worden gepusht voordat de taak begint; een explicieteOrientation-waarde wordt nu ook toegepast- Het nieuwe
HPDFGetInstalledPrinterssomt de systeemprinters op enHPDFGetPrinterCapabilitiesrapporteert duplex- en kleurondersteuning van een printer, maximaal kopieaantal, papierbakken (met de codes die doorPaperBinworden geaccepteerd) en ondersteunde resoluties
Version 2.381.0
Added
- Het nieuwe
CopyLoadedOutlinesFromDocumentvoegt de volledige bladwijzerboom van een ander geladen document samen in het huidige, waarbij titels, nesting, volgorde van broers/zussen en bestemmingsweergaveparameters worden bewaard en elke bestemmingspagina wordt opnieuw toegewezen via een door de aanroeper opgegeven verschuiving — de aanvulling op pagina-toevoegingssamenvoegingen zodat gecombineerde documenten beide bladwijzersets behouden
Fixed
GetLoadedBookmarkPageIndexvindt nu bladwijzers voorbij de eerste ingang op het hoogste niveau en binnen geneste niveaus; de vorige zoekopdracht wist later overeenkomende bladwijzers alleen bij toeval te vinden
Version 2.380.0
Added
- Het nieuwe
ImposeLoadedPagesNUplegt elk paginabereik op rasterbladen (elke kolommen-bij-rijen-indeling, configureerbaar bladformaat en tussenruimte) in leesvolgorde, waarbij elke pagina in zijn cel wordt geschaald met optionele beeldverhoudingsbewaring - Het nieuwe
ImposeLoadedPagesBookletproduceert zadelstiksgewijs boekenbladen: pagina's worden aangevuld tot een veelvoud van vier en in boekjesvolgorde gepaird zodat dubbelzijdig afdrukken en vouwen een correct geordend boekje oplevert - Beide impositie-aanroepen wikkelen de bronpagina's als Form XObjects en voegen de afgewerkte bladen toe na de bestaande pagina's en geven het bladaantal terug
Fixed
- Rendering van geladen pagina's volgt nu een indirecte verwijzing op het subwoordenboek
/XObjectvan bronnen; pagina's waarvan de bronnen als afzonderlijke objecten aankwamen, sloegen hun afbeeldingen en formulieren stilzwijgend over
Version 2.379.0
Added
SaveLoadedPagesAsImageskrijgt twee TIFF-indelingen:ifTIFFschrijft één enkelpagina TIFF-bestand per pagina enifTIFFMultivoegt het volledige paginabereik samen tot één meerpagina TIFF, waarmee TIFF-uitvoer wordt verenigd met de bestaande BMP-, JPEG-, PNG-, EMF- en WMF-keuzes- Beide TIFF-paden respecteren de gevraagde rendering-DPI in de afbeeldingsresolutietags en gebruiken verliesvrije Deflate-compressie
Version 2.378.0
Added
- Rendering van geladen pagina's tekent nu tekstrenderingmodi 1 (lijn) en 2 (vulling dan lijn) met echte glyfcontouren voor zowel ingesloten lettertypen als systeemlettertype-fallbacks, met gebruik van de huidige lijnkleur en lijnbreedte; de knipvarianten 4 tot 7 schilderen zoals hun basismodi
Fixed
- Twaalf inhoudsoperatoren met één operand (
Tc,Tw,Tz,TL,Ts,Tr,w,J,j,M,ri,i) lazen hun operand van de verkeerde tokenpositie en pasten altijd nul toe; teken- en woordspatiëring, horizontale schaling, regelafstand, tekststijging, rendermodus, lijnbreedte, dopjes, verbindingen en hoekmetergrens worden nu van kracht bij het renderen van geladen pagina's
Version 2.377.0
Added
- Rendering van geladen pagina's respecteert nu de zichtbaarheid van optionele inhoud (lagen): inhoud binnen gemarkeerde secties
BDC /OCen XObjects met een/OC-ingang worden verborgen wanneer de laag is uitgeschakeld, overeenkomstig de standaardconfiguratie van het document (/BaseState,/ON,/OFF) - Lidmaatschapswoordenboeken voor optionele inhoud evalueren hun
/P-beleid (AnyOn,AllOn,AnyOff,AllOff) over de lidgroepen - Nieuwe laag-API's op geladen documenten:
GetLoadedOptionalContentGroupCount,GetLoadedOptionalContentGroupName,GetLoadedOptionalContentGroupVisibleenSetLoadedOptionalContentGroupVisibleom laagstatussen te inspecteren en te overschrijven voor rendering; overschrijvingen maken de rendercache van pagina's automatisch ongeldig
Version 2.376.1
Fixed
- Bitmaprendering van geladen pagina's schildert nu afbeeldings-XObjects: de resource-opzoekingen
Do,gsenshmisten eerder hun slash-voorafgegane operandnamen en sloegen het object stilzwijgend over - De operator
cmen Form XObject/Matrix-waarden worden nu in de juiste volgorde samengevoegd, zodat plaatsingsreeksen met vertaling plus schaling (het standaard afbeeldingsplaatsingsidioom) inhoud op de beoogde paginapositie landen
Version 2.376.0
Added
- Nieuwe API's
RegisterExponentialFunction,RegisterStitchingFunctionenRegisterPostScriptFunctionmaken zelfstandige functieobjecten van Type 2, Type 3 en Type 4 voor gebruik overal waar een functieverwijzing wordt geaccepteerd (schaduwen, halftoon spot- en overdrachsfuncties, tintomzettingen) RegisterPostScriptFunctionvalideert het rekenprogramma bij registratie door proefuitvoering, zodat misvormde programma's onmiddellijk worden afgewezen in plaats van stilzwijgend te degraderen in viewers- Het nieuwe
RegisterSeparationFuncmaakt een Separation-kleurruimte met een door de aanroeper opgegeven tintomzettingsfunctieobject
Fixed
- Rendering van Type 2 (exponentiële) tintomzettingen met een- of driecomponentuitvoer schildert niet langer zwart; voorheen werden alleen viercomponent (CMYK) uitvoer correct gedecodeerd
- Rendering van Type 3 (stiksels) tintomzettingen ondersteunt nu een willekeurig aantal subfuncties, past de
/Encode-hermapping toe en accepteert/Bounds-arrays met één ingang
Version 2.375.0
Added
- Paginarendering evalueert nu tintomzettingsfuncties van Type 4 (PostScript-rekenmachine), zodat Separation- en DeviceN-kleuren en gradiëntschaduwen aangedreven door rekenprogramma's hun echte kleuren renderen in plaats van een grijze tijdelijke aanduiding
- De rekenmachine-evaluator dekt de volledige ISO 32000-1 7.10.5-operatorset: rekenkundig, vergelijking, booleaans en bitsgewijs, stapelmanipulatie en
if/ifelse-conditionals
Fixed
- Benoemde kleurruimteselectie (
cs/CS-operators) in rendering van geladen pagina's lost nu bronnamen correct op; voorheen miste de zoekopdracht en viel de inhoud terug op de standaardkleurruimte - Rendering van geladen pagina's volgt nu indirecte verwijzingen naar array-gewaardeerde kleurruimten zoals
/Separation- en/DeviceN-definities opgeslagen als zelfstandige objecten
Version 2.374.0
Fixed
- XFDF-annotatie import/export bewaart nu standaardweergavegegevens van caret-annotaties via het
<defaultappearance>-kind en de PDF-annotatieDA-ingang
Version 2.373.0
Fixed
- XFDF-annotatie import/export bewaart nu de fringegeometrie van caret-annotaties via het
fringe-attribuut en de PDF-annotatieRD-ingang
Version 2.372.0
Fixed
- XFDF-annotatie import/export bewaart nu de rotatie van stempelannotaties via het
rotation-attribuut en de PDF-annotatieRotate-ingang
Version 2.371.0
Fixed
- XFDF-annotatie import/export bewaart nu antwoordrelaties van tekstannotaties via
inreplyto,replyTypeen de PDF-annotatieIRT- enRT-ingangen
Version 2.370.0
Added
- XFA-numerieke, datum-tijd- en wachtwoordvelden met uitgeschakeld horizontaal scrollen worden nu afgevlakt tot AcroForm-tekst-widgets met de PDF-vlag voor niet scrollen
Version 2.369.0
Added
- XFA-tekstvelden met uitgeschakeld scrollbeleid worden nu afgevlakt tot AcroForm-tekst-widgets met de PDF-vlag voor niet scrollen
Version 2.368.0
Added
- XFA-tekstvelden met
multiLine="1"worden nu afgevlakt tot AcroForm-tekst-widgets met de PDF-meerregelvlag
Version 2.367.0
Added
- Toegangsbeperkingen voor XFA-subformulieren worden nu overgeërfd in onderliggende widgets zodat gegenereerde AcroForm-velden alleen-lezen blijven wanneer een voorouder
readOnly,protectedofnonInteractiveis
Version 2.366.0
Added
- XFA-keuzelijstafvlakking wijst nu
commitOn="select"toe aan de AcroForm commit-bij-selectiewijziging-vlag voor gegenereerde keuzevelden
Version 2.365.0
Added
- XFA-keuzelijstafvlakking wijst nu
open="always"-lijsten toe aan enkelselectie AcroForm-lijstvakken in plaats van vervolgkeuze-keuzevakken
Version 2.364.0
Added
- XFA-keuzelijstafvlakking wijst nu
textEntry="1"-keuzelijsten toe aan bewerkbare AcroForm-keuzevakken terwijl getypte waarden buiten de optielijst worden bewaard
Version 2.363.0
Added
- XFA-keuzelijstafvlakking geeft nu de voorkeur aan
<items save="1">-waarden wanneer een veld afzonderlijke weergave- en opgeslagen-waardeoptielijsten heeft
Version 2.362.0
Fixed
- XFDF-annotatie import/export bewaart nu FreeText
justification- entail-attributen via de PDF-annotatieQ- enIT-ingangen - JBIG2-documentstandaarden komen nu overeen met de gedocumenteerde scanvriendelijke instellingen voor verliessniveau, geïsoleerde zwarte pixelreiniging en zwartpuntgrootte
Version 2.361.0
Fixed
- XFDF-annotatie import/export bewaart nu standaard lijnleider- en bijschriftattributen, inclusief
leaderLength,leaderExtended,caption,leader-offset,caption-style, bijschriftoffsetwaarden en de importzijdeleaderExtend-spelling gebruikt door compatibele XFDF-bestanden
Version 2.360.0
Added
- XFA-afvlakking onderdrukt nu uitvoer voor velden en statische tekeningen verborgen door
presence="hidden",presence="invisible"ofpresence="inactive", inclusief afstammelingen van verborgen containers
Version 2.359.0
Added
- XFA-afvlakking wijst nu beperkingen op veldniveau
access="readOnly",access="protected"enaccess="nonInteractive"toe aan de gegenereerde AcroForm alleen-lezen-vlag
Version 2.358.0
Added
- XFA-afvlakking bewaart nu de
<choiceList open="multiSelect">-semantiek door de PDF-meervoudige-selectie-vlag in te stellen op het gegenereerde AcroForm-lijstvak
Version 2.357.0
Added
- XFA-afvlakking wijst nu
<ui><passwordEdit>-velden toe aan AcroForm-tekstvelden met de PDF-wachtwoordvlag, waarbij gebonden waarden behouden blijven terwijl lezers het veld als wachtwoordstijlinvoer kunnen behandelen
Version 2.356.0
Added
- XFA-afvlakking respecteert nu expliciete
<bind match="none">-veldkoppelingen, zodat velden gemarkeerd als ongebonden leeg blijven in plaats van gelijknamige waarden te nemen uit het XFA-formulier of gegevenspakketten
Version 2.355.0
Added
- XFA-afvlakking respecteert nu eenvoudige expliciete
<bind match="dataRef" ref="...">-veldkoppelingen zoals$record.customer.legalName, zodatApplyXFAAsAcroFormenFlattenLoadedXFAwaarden bewaren opgeslagen onder een andere gegevensknoopnaam vóór automatische gelijknamige overeenkomst
Version 2.354.0
Fixed
- XFDF-annotatie import/export bewaart nu
BorderStyleAlt-kinderen van linkannotaties via het PDF-annotatieBorder-array, inclusief hoekradii, breedte en streeppatroonwaarden
Version 2.353.0
Fixed
- XFDF-annotatie import/export bewaart nu standaard
interior-color-attributen voor lijn-, vierkant-, cirkel-, veelhoek-, polylijn- en redactieannotaties via het PDF-annotatieIC-kleurarray
Version 2.352.0
Fixed
- XFDF-annotatie import/export bewaart nu standaard annotatie-randstijl en wolk-randeffectattributen, inclusief
width,dashes,styleenintensity
Version 2.351.0
Fixed
- XFDF-annotatie import/export bewaart nu rijke tekst van annotaties via
<contents-richtext>en importeert popup-kindgeometrie en open-status in annotatiePopup-woordenboeken
Version 2.350.0
Fixed
- XFDF-annotatie import/export bewaart nu aanvullende standaard annotatie-attributen: tekst-open- en beoordelingsstatuswaarden, lijnpuntstijlen, link- en redactie
coords, FreeText standaardstijl, standaardweergave en rotatie, en vierkant- of cirkelfringegeometrie
Version 2.349.0
Fixed
- XFDF-annotatie import/export volgt nu ISO 19444-1-structuren voor lijnen, veelhoeken, polylijnen en inktannotaties: lijnexports bevatten volledige
start/end-coördinatenparen, veelhoek- en polylijngegevens gebruiken<vertices>-kindelementen, inktgegevens gebruiken<inklist><gesture>, met puntkomma gescheiden coördinatenparen worden correct geïmporteerd en niet-ondersteunde annotatiesubtypes verhogen de geëxporteerde telling niet meer
Version 2.348.0
Added
- De eigenschap
LoadedPageCount,DuplicateLoadedPage,AddLoadedBlankPage,SetLoadedPageRotationValueenGetLoadedPageBoxRectcompleteren de paginabewerkings-API voor geladen documenten — pagina's dupliceren, lege scheidingspagina's invoegen, rotatie instellen en elk van de vijf paginaboxen in één aanroep lezen GetLoadedEncryptionMethodgeeft de codenaam terug (RC4-40/RC4-128/AES-128/AES-256),GetLoadedFileStructureInfoverzamelt linearisatie / objectstroom / xref-type in één aanroep,LoadedSourceFileSizeis een eigenschap enSetLoadedPDFVersionwerkt de versie bijStampLoadedPageImageenStampLoadedPageImageFromFilesluiten een JPEG-afbeeldings-XObject (logo / handtekeningafbeelding / QR-code) in op een geladen pagina op een gegeven rechthoek,InsertLoadedTexttekent een enkele-regel tekstreeks enGetLoadedPageContentLengthgeeft het gedecodeerde bytetal terugTHPDFPrintOptionskrijgtIgnoreHardMargin(verschuif printer harde marges zodat inhoud niet wordt geknipt) enAutoRotate(liggende pagina's worden automatisch liggend afgedrukt)SaveLoadedPagesAsImageskrijgtBMPPixelFormat/BMPMonochrome(mono / 8-bit export) enJPEGScale(1/2/4/8 subbemonsterde JPEG-decodering voor snelle miniaturen)CompressLoadedDocumentcomprimeert elke ongecomprimeerde stroom in de geladen objectgraph met zlib en schrijft/Filter /FlateDecode, waarmee de uitvoergrootte wordt verkleind
Fixed
StampLoadedPageTextenStampLoadedPageImagedecomprimeren nu transparant FlateDecode-inhoudsstromen voordat operators worden toegevoegd — eerder beschadigde het stempelen op gecomprimeerde/Contentsde zlib-payload en verdween de toegevoegde tekst/afbeelding
Version 2.347.0
Added
AddLoadedOutlinemaakt een nieuwe bladwijzer op een geladen PDF op elk nestingniveau (ParentIndex = -1voor het hoogste niveau), met een/Dest [page /XYZ x y zoom]-bestemming — de meest gevraagde functie voor geladen documenten, waarmee het gat wordt gedicht dat HotPDF bladwijzers kon lezen/wijzigen/verwijderen maar nooit aanmakenSetLoadedOutlineDestinationenSetLoadedOutlineURIherschrijven de bestemmingspagina van een bestaande bladwijzer of schakelen deze om naar een URI-actieResolveLoadedNamedDestinationzet een benoemde bestemmingstekenreeks om in een op-nul-gebaseerde pagina-index enAddLoadedNamedDestinationregistreert een nieuw anker in de/Names /Dests-boom van het geladen documentGetLoadedBookmarkPageIndexis een handige zoekopdracht: geef een bladwijzertitel op en krijg de pagina terug waarnaar deze verwijst
Version 2.346.0
Fixed
- Beeldschalingskwaliteit respecteert nu
/Interpolate: HALFTONE-rekmodus wordt standaard gebruikt (vloeiend verkleinen) en COLORONCOLOR wanneer de afbeelding expliciet/Interpolate falseinstelt, zodat kleine rasterafbeeldingen hun scherpe randen behouden waar de auteur dat bedoelde in plaats van altijd te vervagen
Version 2.345.0
Fixed
- TJ-array-kerningstijdstellingen worden niet langer genegeerd: de numerieke elementen tussen tekenreeksruns verschuiven de tekstmatrix met
-waarde × Lettergrootte / 1000, zodat nauw gespatieerde titels en logo-lettertypen van Word/Illustrator glyphen op de bedoelde offsets plaatsen - Tw (woordspatiëring) gaat nu ook af op de CID ideografische spatie (U+3000, code
$3000), zodat uitgevuld Japans/Chinees tekst zijn woordspatiëring krijgt in plaats van alleen ASCII-code 32 - Lettertypegewicht/cursieve detectie raadpleegt nu ook
/FontDescriptor /Flags(bit 18 ForceBold) en/ItalicAnglenaast de/BaseFont-naam, zodat subset-voorafgeplaatste lettertypen wiens naam geen-Bold-achtervoegsel heeft toch op het juiste gewicht worden weergegeven
Version 2.344.0
Added
GetLoadedTrappedleest de/Trapped-sleutel uit het Info-woordenboek (True/False/Unknown), waar het voorheen alleen schrijfbaar was — PDF/X-preflightworkflows kunnen nu de trapstatus als lus doorlopenGetLoadedDocumentMetadataXMLgeeft de ruwe XMP-metagegevensstream-bytes terug zodat PDF/A-documenten waarvan het Info-woordenboek afwezig is tochdc:title/dc:creator/xmp:CreateDatekunnen weergevenGetLoadedCollectionInfoleest de/Collection-naam van een PDF-portfolio (de EmbeddedFiles-naamsboom bevat nog steeds de bestandenlijst)GetLoadedOutlineChilddaalt één niveau in de bladwijzerboom, waarbij het/First-kind van een ingang op het hoogste niveau wordt teruggegeven, zodat geneste hoofd-/subhoofdstukbladwijzers niet langer onzichtbaar zijnRotateLoadedPagesroteert elke pagina in een bereik met een gegeven hoek (cumulerend op bestaande/Rotate), het batchequivalent van rotatie per paginaSetLoadedPageBoxForRangestelt een paginabox (Media/Crop/Bleed/Trim/Art) in voor elke pagina in een bereik in één aanroepGetLoadedViewerPreferencesleest nu ookHideWindowUIenCenterWindow, overeenkomend met de zes sleutels die de schrijver uitzendt (voorheen kwamen er slechts vier terug)
Version 2.343.0
Fixed
- Het knipregelidioom
W n/W* npast de knip nu toe: de operatornbouwt het hangende pad en roeptSelectClipPathaan in plaats van zowel het pad als de hangende knip te verwerpen, zodat rechthoek-/containerknippengeschreven alsre ... W nhun inhoud niet meer buiten de grens laten lekken SetMiterLimitwordt nu naar GDI gepusht voordat de lijnpen wordt gebouwd, zodat scherpe verbindingen de PDF-hoekmetergrens (standaard 4) respecteren in plaats van GDI's standaard 10 — waarmee de lange pieken op verbindingen met scherpe hoeken worden geëlimineerd- Type 3-glyphen gedeclareerd met
d0(kleurtoestaan) wissen nu expliciet de kleuronderdrukkingsvlag, zodat een voorafgaandd1-glyph zijn kleuronderdrukking niet meer laat bloeden in eend0-glyph
Added
- Operators
ri(rendering intent) eni(vlakheid) worden nu verbruikt en opgeslagen in de grafische status (RenderingIntent/Flatness-velden), waar ze eerder stilzwijgend werden overgeslagen
Version 2.342.0
Added
- De operator voor tekstrenderingmodus
Trwordt nu verbruikt; modus 3 (onzichtbaar) slaat het renderen van de tekstreeks volledig over, zodat de OCR-/formulierachtergrond verborgen tekstlaag niet meer als overlappende rommelglyphen wordt geschilderd — het meest voorkomendeTr-geval in echte PDF's. Modi 1 / 2 (lijn) vallen momenteel terug op vulling totdat glyph-per-glyph-contourondersteuning beschikbaar is - Gemarkeerde-inhoudsoperatoren
BMC/BDC/EMCen deDP/MP-eigenschapsvarianten houden nu een dieptenteller bij op de renderer, de vereiste voor de zichtbaarheidsevaluatie van OCG/OCMD in een latere ronde;BX/EX-compatibiliteitsoperatoren houden hun eigen teller bij zodat de renderer weet dat het zich in een compatibiliteitsblok bevindt
Version 2.341.0
Fixed
- Bezier-afkortingsoperatoren
venyworden nu verwerkt door de paginarenderer, waar ze eerder stilzwijgend werden overgeslagen — afgeronde rechthoeken, cirkels en de curven geproduceerd door Illustrator / PowerPoint / InDesign worden correct weergegeven in plaats van afgekapt of weggelaten te worden DrawTextRunrespecteert nuTz(horizontale tekstschaling),Tw(woordspatiëring, toegepast op het spatie-glyph) enTs(tekststijging) zodat uitgevuld Word-exports glyphen op de juiste breedte plaatsen, koppen die horizontaal worden uitgerekt/ingedrukt hun lengte behouden en super/subscripttekst van de basislijn oprijst — voorheen werden die drie tekststatus-waarden opgeslagen maar nooit verbruikt
Version 2.340.0
Added
SearchLoadedPageTextWholeWordfiltert de deeltekenreeksovereenkomsten vanSearchLoadedPageTexttot die op woordgrenzen staan (het glyph vóór het overeenkomstbegin en na het overeenkomsteinde mag geen woordteken zijn), waarmee volledige-woordovereenkomst wordt geboden zonder de zoektekenreeks te voorzien van een volgspatieGetLoadedSearchHitRectreduceert het glyphbereik van een overeenkomst tot één begrenzende rechthoek (gebruiksruimte Links/Boven/Rechts/Onder, gevuld met een fractie van de lettergrootte), zodat een viewer één markeerbox per treffer kan tekenen in plaats van de glypharray te doorlopen
Version 2.339.0
Added
ExtractLoadedPageTextColumnsreconstrueert meerkolomstekst: glyphen worden geclusterd in basislijnen door een Y-tolerantie, elke rij wordt gesorteerd op X en een rij splitst in afzonderlijke kolommen (tab-gescheiden) waar de afstand tussen opeenvolgende glyphen een configureerbaar veelvoud van de mediaane glyphadvance overschrijdt — het kolomherkennende equivalent vanExtractLoadedPageTextLayoutdat eerder kolomdetectie buiten bereik verklaardeTHPDFPageElementbevat nu eenBaselineRole(brNormal/brSuperscript/brSubscript) gevuld doorEnumLoadedPageElements: een reeks waarvan de lettergrootte merkbaar kleiner is dan de pagina-mediaan en wiens Y-oorsprong boven of onder de dominante basislijn staat wordt gemarkeerd
Version 2.338.0
Fixed
- Afbeeldings-XObjects worden nu geplaatst door het eenheidskwadrant te transformeren via de huidige CTM, in plaats van uitgerekt over de hele paginabitmap — het vorige
StretchDraw(Rect(0,0,W,H))plaatste elke afbeelding verkeerd op de pagina; afbeeldingen komen nu terecht in de rechthoek die de inhoudsstroom werkelijk specificeert
Added
/ImageMask-stencilafbeeldingen worden nu aan de renderingkant gedetecteerd en geschilderd met de huidige vulkleur (PDF 8.9.6.1), waar de renderer ze eerder tekende als een gewone grijsschaalbitmap
Version 2.337.0
Added
- Renderstijl voor lijnweergave: de paginarenderer respecteert nu de operators
J(LineCap: afgekapt/rond/vierkant),j(LineJoin: hoekmeter/rond/afgeschuind),M(MiterLimit) end(LineDash-array + fase) door een geometrische pen te bouwen viaExtCreatePenin plaats van de vorige vasteCreatePen(PS_SOLID, ...), zodat ronde verbindingen, gestreepte randen en vierkante eindkapjes correct worden weergegeven - Renderside
gs(ExtGState)-operator: het benoemde ExtGState-woordenboek in/Resources/ExtGStatewordt nu verbruikt voorLW/LC/LJ/ML/ca/CAen toegepast op de grafische status, waar de renderer de operator eerder volledig liet vallen - Grafische status uitgebreid met
LineCap/LineJoin/MiterLimit/LineDash/DashPhase/FillOpacity/StrokeOpacity-velden, allemaal met PDF-standaard beginwaarden
Fixed
- Knip (
W/W*) stelt nu de GDI-veelhoekopvulmode (ALTERNATEvsWINDING) in vóórSelectClipPath, zodat even-oneven en niet-nul-winding knipintersecties niet langer identiek zijn
Version 2.336.0
Security
- De renderside
/Indexed-kleurruimteparser kniptHiValnu bij tot het spec-verplichte bereik[0..255], waarmee een bufferoverleesbaar vector wordt gesloten waar een misvormde HiValnComps × indexHigheen 32-bits bytetal liet overlopen en voorbij de opzoektabel las
Added
AttachLoadedAnnotationMeasureschrijft een/Measure-woordenboek (PDF 1.7 §12.5.6.13) op een Lijn- of Veelhoekannotatie, met het/NumberFormat-array (eenheidsaanduiding, decimaal/breuk/afrondingsstijl, precisie), de/Scale-verhouding en de/CYX-isotropiefactor — zodat een viewer de werkelijke afstand of het werkelijke gebied kan berekenen dat de vorm beslaat
Version 2.335.0
Added
- Renderside
sh(schaduwen)-operator: axiale (Type 2) en radiale (Type 3) schaduwen worden nu geschilderd in plaats van stilzwijgend weggelaten, zodat PDF's waarvan achtergronden afhangen van Word/Excel-achtige verlopen hun kleurovergang weergeven. De schaduw wordt gediscretiseerd in bands langs zijn as en elke band wordt gevuld met de kleur die de schaduwfunctie op dat punt evalueert
Version 2.334.0
Added
- Renderside functie-objectevaluator
HPDFEvalTintTransformlost nu Type 2 Exponentieel (C0 + xN·(C1-C0)met Domein/Bereik-bijknippen), Type 0 Bemonsterd (8/16/32-bit, Encode-mapping, dichtstbijzijnde steekproef) en Type 3 Stiksels (Bounds-geselecteerde subfunctierecursie) op — zodatSeparation/DeviceN-tintomzettingen en schaduwfuncties evalueren naar echte alternatieve-ruimtekleuren in plaats van de v2.333.0-grijze terugval. Type 4-PostScript-rekenmachines degraderen op een vriendelijke manier - De paginarenderer koppelt nu de indirecte-referentie-oplosser en de gedecodeerde-stroom-lezer van de kleurruimte-eenheid aan zijn documenttoegang bij constructie, zodat tintomzettingsstroom-objecten kunnen worden gedecodeerd via hetzelfde pad als afbeeldings-XObjects
Version 2.333.0
Added
- Renderside CIE-gebaseerde kleurruimten:
CalGray,CalRGB(gamma + 3×3-matrix) enLab(Lab→XYZ→sRGB met het 6/29-breekpuntblok) lossen nu op naar echte kleuren in plaats van te degraderen naar zwart; de Bradford-aangepaste sRGB-matrix wordt gecached per witpunt zodat per-pixel werk een enkele 3×3-vermenigvuldiging blijft - Renderside
ICCBased-kleurruimte lost op via zijn/Alternate(of een N-gebaseerde DeviceRGB/Gray/CMYK-schatting wanneer Alternate afwezig is), zodat pagina's met een ICC-profiel correct worden weergegeven zonder lcms-afhankelijkheid - Renderside
Separation- enDeviceN-spotkleurrruimten: de alternatieve ruimte, tintomzettingsfunctie-referentie en componenttelling worden geparseerd; de tintomzetting is gekoppeld via een pluggeerbare evaluator zodat spotkleuren-pagina's te onderscheiden zijn van "kleur niet ingesteld" (volledige tintbeoordeling valt bij de functie-engine) - Generieke kleuroperatoren
cs/CS/sc/SC/scn/SCNworden nu verwerkt door de paginarenderer, de vereiste voor elke niet-apparaat kleurruimte om van kracht te zijn op een geladen pagina - Geünificeerde kleurresolutie via
HPDFResolveColormet de uitgebreideTHPDFColorSpaceFamily- enTHPDFCIEParams-records, ter vervanging van de per-ruimte ad-hoc-logica
Version 2.332.0
Added
RenderSignatureFieldAppearanceschildert een vooraf ingesteld sjabloon voor de handtekeningveldweergave — rand, lichte vulling en maximaal vier gelabelde tekstregels (“Digitally signed by <Name>”, “Reason: ”, “Location: ”, “Date: ”) — geselecteerd via eenTHPDFSignatureDisplayOptions-set als een handige wrapper omAttachSignatureFieldAppearanceEnumerateSystemCertificatesdoorloopt een Windows-certificaatarchief (typischMY/ROOT/CA) via dynamisch geladenCrypt32.dllen geeft onderwerp-/uitgever-weergavenamen plus het ruwe DER voor elk certificaat terug, het bouwblok voor een “kies een certificaat / USB-sleutel” ondertekenaarsinterface
Security
- Handtekening-hashalgoritme is standaard SHA-256 met PAdES Seed Value
DigestMethodsdie al SHA-256 / SHA-384 / SHA-512 accepteert, zodat er geen SHA-1-ondertekeningspad bestaat
Version 2.331.0
Added
RenderLoadedPageToDCtekent één pagina rechtstreeks in een door de aanroeper opgegeven apparaatcontext (printercanvas, offscreen-oppervlak, aangepasteTCanvas), waarbij de bitmap-rondreis voor afdruk- en hoge-DPI-workflows wordt verwijderdRenderLoadedPageToClipboardplaatst een pagina op het klembord als een 24-bits bitmap of als een verbeterd metabestand (vectortekst), zodat plakken in Word / plakken in een afbeeldingseditor gewoon werktPrintLoadedDocumentmet eenTHPDFPrintOptions-record bestuurt de VCLTPrintervia een paginabereik, DPI, kopieën, sortering, FitPage-schaling en per-pagina render — de documentbibliotheek wordt nu geleverd met zijn eigen afdrukpad in plaats van elke aanroeper er zelf één te laten koppelen
Version 2.330.0
Added
GetLoadedPageLabelleest het/PageLabels /Nums-bereik terug dat een gegeven pagina-index dekt en geeft de stijlcode, het voorvoegsel en het startnummer terug — het leesende equivalent vanSetLoadedPageLabel, zodat labels die een aanroeper zelf niet heeft aangemaakt nu kunnen worden geïnspecteerd en als lus doorlopenStitchLoadedPageSideBySideExvoert de naast-elkaar-2-up-koppeling uit met een configureerbare horizontale tussenruimte en bronpagina-schaalfactor, waar het verouderdeStitchLoadedPageSideBySidewas vastgesteld op halve breedte zonder tussenruimte
Version 2.329.0
Added
AddLoadedRubberStampAnnotationmet eenTHPDFRubberStampIcon-enum die alle 14 standaard stempelnamen dekt (Approved, AsIs, Confidential, Departmental, Draft, Experimental, Expired, Final, ForComment, ForPublicRelease, NotApproved, NotForPublicRelease, Sold, TopSecret) zodat viewers de vertrouwde bitmaps weergeven zonder een aangepaste weergavestroomSetLoadedAnnotationCloudyBorderverandert een Vierkant / Cirkel / Veelhoekannotatie in een wolk (cloud-burst) rand door/BE /S /C /Iplus het/IC-interieurkleur-array te schrijvenSetLoadedLineAnnotationCapsstelt de/LE-lijnpunt (pijlpunt) stijlen in voor Lijn / Polylijn annotaties vanuit de nieuweTHPDFLineEndStyle-enum (None / OpenArrow / ClosedArrow / Butt / ROpenArrow / RClosedArrow / Slash / Diamond)
Version 2.328.0
Added
EnsureLoadedFieldAppearanceStreamgenereert een/AP /N-Form-XObject voor een bestaand AcroForm-veld vanuit zijn/DA+/V+/Rect, zodat viewers die/NeedAppearancesnegeren de veldwaarde nog steeds weergeven zonder een rondreis door AcrobatApplyLoadedFieldValidationkoppelt een Opmaak / Toetsaanslagen / Validatiescriptdrie aan een veld met behulp van de AcrobatAF*-helpers, voor Getal, Percentage, Datum, Tijd, Valuta, Postcode, BSN, Telefoon en WillekeurigMasker invoersoorten — de aanroeper hoeft niet langer handmatigAFNumber_Format/AFDate_FormatEx/AFRange_ValidateJavaScript te schrijvenApplyLoadedFieldCalculationkoppelt eenAFSimple_Calculate-script zodat een veld de waarden van een benoemde bronveldset aggregeert via Som / Gemiddelde / Product / Minimum / Maximum
Version 2.327.0
Added
- Visueel zoek-en-vervangen
SearchAndRedactReplaceLoaded: voor elke treffer van de zoekterm maskeert het de overeenkomstrechthoek met een gekozen kleur (of slaat het masker over metHPDF_NO_MASK) en stempelt de vervangende tekst erbovenop, als aanvulling op het byte-niveauReplaceLoadedPageTextwanneer het oorspronkelijke lettertype geen omgekeerde char-codetabel heeft of de vervanging een ander lettertype vereist - Regiotekstextractie
GetLoadedPageTextInRegionvoegt elk glyph samen waarvan de oorsprong valt binnen een gebruiksruimterechthoek, met regeleinden tussen basislijnen — het bouwblok voor “kopieer tekst uit dit vak”-UI-stromen - Cursorstijl
SearchLoadedFirstgeeft de eerste overeenkomst terug als een enkeleTHPDFTextMatch, zodat aanroepers treffers kunnen doorlopen zonder een volledige overeenkomstarray te beheren
Version 2.326.0
Added
- Document-brede eigenschap
MeasurementUnit(muPoints/muPixels/muInches/muMM/muCentimeters/muTwips) zodat elke hoog-niveau ontwerpcoördinaat wordt omgezet naar PDF-punten viaToPDFUnit/FromPDFUnit - Tijdelijke aanduidingsvervanging in watermerktekst:
<%PageNo%>,<%TotPage%>,<%FileName%>,<%ShortDate%>,<%LongDate%>,<%ShortTime%>,<%LongTime%>worden per pagina opgelost bij het stempelen, zodat “Pagina X van Y” en gedateerde stempels één aanroep zijn AddTextWatermarkEx-paginamethode die tijdelijke aanduidingsvervanging, eenheidsbewuste coördinaten en een unifiedTHPDFWatermarkBase-record (hoek, dekking, positiepresets) combineert- Vormwatermerklpaginahelpers
AddRectangleWatermark,AddEllipseWatermark,AddLineWatermarkenAddPolygonWatermark, elk de padprimitieven omwikkelend in eenq/Q-grafische-staatpaar met geregistreerde vul/lijn-alfa - Unified
THPDFWatermarkTemplate-record metMakeText/MakeRectangle/MakeEllipse/MakeLine/MakePolygon-fabrieken plus eenTHPDFWatermarkTemplateArray-samengesteld type - Watermerken voor geladen documenten:
StampLoadedPageTextenStampLoadedPagesTextvoegen een transparante, geroteerde tekstreeks toe aan bestaande pagina's, rekening houdend met deMeasurementUniten dezelfde tijdelijke aanduidingsset;StampLoadedPagesCompositepast een hele sjabloonarray (tekst + vormen) toe op een paginabereik - Z-volgorde-controle op stempels voor geladen documenten:
Underlay = Trueplaatst de watermerkstroom vóór de bestaande/Contentsvia de arrayvorm, zodat het watermerk achter de pagina-inhoud wordt weergegeven EnumLoadedPageElementsgeeft tekstuitvoeringen (glyphen geaggregeerd op basislijn + lettertype) en afbeeldings-XObject-plaatsingen terug alsTHPDFPageElement-records met begrenzende boxenSaveLoadedPagesAsImagesmulti-formaat export: BMP / JPEG / PNG raster plus EMF / WMF vector, één bestand per pagina, met configureerbare DPI, bestandsnaamvoorvoegsel en JPEG-kwaliteitGetLoadedPageMetafilevectorrendering van één pagina naar eenTMetafilevia het nieuweTHPDFPageRenderer.ExecuteToDC-pad, waardoor tekst en vectorpaden schaalbaar blijven voor afdruk-, klembord- en samenvoegworkflows
Version 2.325.3
Fixed
- Aggregatie van batchpreflight-rapporten laat de totale-bytes-telling niet meer overlopen wanneer een enkel invoerbestand groter is dan 2 GB
Version 2.325.2
Fixed
- Het opslaan van een document groter dan 2 GB met objectstromen ingeschakeld (
UseObjectStreams) schrijft niet langer een beschadigde kruisverwijzingsstroom; de objectoffsets en kruisverwijzingsstroompositie, eerder verkleind tot een 32-bits geheel getal, worden nu als 64-bits waarden door de hele schrijfbewerking gevoerd
Version 2.325.1
Fixed
- Vier herstel-enige scans gebruikt wanneer een beschadigde PDF normaal niet geparseerd kan worden — objectstroom-decompressie, objectstroom-detectie en twee referentieherstel-passes — lezen niet langer een bestand groter dan 2 GB in een afgekapt buffer; elk slaat nu die terugval over voor zulke bestanden in plaats van beschadigde gegevens te scannen
Version 2.325.0
Added
- EMF/WMF-import rendert nu
EMR_GRADIENTFILL-rechthoekkleurverlopen (GRADIENT_FILL_RECT_H/GRADIENT_FILL_RECT_V) als PDF-Type-2-axiale schaduwinpatronen, waarbij elkTRIVERTEX-kleurpaar wordt toegewezen aan eenRegisterAxialGradient-aanroep en de rechthoek wordt gevuld met het resulterende patroon; eerder was dit record een gedocumenteerde no-op, nu worden Word/Excel/PowerPoint-kleurverlooperechthoeken in EMF's weergegeven met de juiste links-naar-rechts of boven-naar-beneden kleurovergang
Version 2.324.0
Added
- EMF/WMF-import parseert nu
EMR_GDICOMMENT-opmerkingen, waarbij Adobe PDF-passthrough-markeringen (0x416F4650= "AoFP", MS-EMF §2.3.3) worden onderscheiden van andere opmerkingstypen. Wanneer de Adobe-markering aanwezig is, wordt de opmerkingslading gescand op hetpdfmark-sleutelwoord en via debuglogboekregistratie weergegeven zodat gebruikers kunnen identificeren welke EMF-producenten PostScript-pdfmark-fragmenten uitstoten; andere opmerkingstypen blijven no-ops. Zowel HotPDF als llPDFLib hadden eerder alleen een lege stub voor dit record
Version 2.323.0
Added
- EMF/WMF-import herkent nu expliciet
EMR_GRADIENTFILLals een gedocumenteerde no-op (PDF-Type-2/3-schaduwinpatronen konden kleurverlopen uitdrukken maar viewerrendering is inconsistent en GDI's per-pixel Gouraud-interpolatie heeft geen zuivere toewijzing); eerder werd dit record stilzwijgend weggelaten zonder een case-tabel-ingang
Version 2.322.0
Changed
- Op PFX gebaseerde ondertekening routeert nu invoer van 64 MB of groter via een streaming geblokkeerde ondertekenaar (
HPDFCMSSignPDFStreamChunked) die in 256 KB-rolvensterteksten scant naar de/ByteRange+/Contents-tijdelijke aanduidingen, de twee bytebereikvensters verteert viaHPDFCMSSHA256StreamRangesen vervolgens de invoerstroom naar de uitvoerstroom kopieert terwijl de tijdelijke aanduidingsbytes onderweg worden bijgewerkt, zodat het piekgeheugen begrensd blijft door de 256 KB-buffer in plaats van de volledige bestandsgrootte; kleinere invoer houdt het snelle in-memoryPos()+Move()-pad ongewijzigd
Version 2.321.0
Added
- Gebruikswoordenboeken voor optionele-inhoudsgroepen:
SetOptionalContentGroupUsagekoppelt een/Usage-ingang aan een geregistreerde OCG (PDF 1.7 §8.11.4.4 Tabel 100) zodat viewers lagen automatisch tonen/verbergen op context. CategorieënView/Print/Exportschrijven<Category>State=ON/OFF;Zoomschrijft een reëel-paarMin;Language/Creatorschrijven tekenreekswaarden - Kopie van de overzichtsdeelboom:
THPDFDocOutlineObject.CopySubtreekloont diep de gehele kinddeelboom van een knooppunt onder een nieuw bovenliggend, waarbij Titel / Kleur / Vet / Cursief / Geopend wordt overgedragen terwijl nieuwe objectnummers en nieuwe bestemmingen worden aangemaakt - Overzichtstopologiehulpers
IsDescendant(cyclusveilig predikaat gebruikt doorMoveTo) enMoveTo(herplaats een knooppunt, los van zijn oude broer/zus-keten en opnieuw verbonden als het laatste kind van het nieuwe bovenliggende, met volledig/Prev//Next//First//Last//Count-onderhoud op elke getroffen voorouder)
Version 2.320.0
Toegevoegd
- Nested optional-content /Order tree:
BeginOptionalContentOrderGroup/AddLayerToOptionalContentOrder/EndOptionalContentOrderGroupGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/OrderGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/OCGsGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.319.1
Fixed
- Het laden van een PDF waarvan de ingesloten JBIG2-afbeelding de standaard Huffman-coderingsoptie gebruikt (in plaats van de meer gebruikelijke MQ-rekenkundige codering) mislukt niet langer volledig: de lader herprobeert nu met de alternatieve decoderingsengine voordat hij opgeeft, zodat dergelijke afbeeldingen succesvol laden ongeacht welke decoderingsengine de voorkeur heeft
Version 2.319.0
Changed
- EMF/WMF-import past nu een gecentraliseerde InPath-gate toe bij de
ExecuteRecord-ingang: terwijl een padbrede is open (BeginPathgezien,EndPath/AbortPathnog niet bereikt) bereiken alleen padconstructierecords (lijn/curve/veelhoek/beweging/sluiten/einde/afbreken plus de coördinatensysteem- en DC-statusrecords) hun handlers; tekst- en bitmaprecords die eerder in het open pad lekten, worden nu centraal weggelaten, wat het verlooppunt-bewaker van llPDFLib weerspiegelt en een klasse van misvormde-PDF-bugs van oneven records binnen een padbrede elimineert
Version 2.318.0
Added
- Optionele-inhoud radio-knopgroepen: nieuw
RegisterOptionalContentRadioGroupdeclareert onderling exclusieve laagsets waarvan de leden elkaar uitschakelen (PDF 1.7 §8.11.4.3/RBGroups); typisch gebruik is enkelvoudige keuzepanelen zoals "Concept / Beoordeling / Definitief"
Version 2.317.0
Added
THPDFDocOutlineObject.InsertBefore/InsertAftervoegt een nieuwe broer/zus in op de bestaande overzichtsdubbel gekoppelde lijst op een willekeurige positie, als aanvulling op de bestaandeAddChild(toevoegen) enAddChildFirst(voorvoegen) helpers zodat overzichtsbomen in elke volgorde kunnen worden gebouwd zonder knooppunten los te koppelen en opnieuw te koppelen- EMF/WMF-import herkent nu expliciet de ICM/palet-familie (
EMR_SETBRUSHORGEX,EMR_SELECTPALETTE,EMR_SETCOLORADJUSTMENT,EMR_SETICMMODE,EMR_CREATECOLORSPACE,EMR_SETCOLORSPACE,EMR_DELETECOLORSPACE,EMR_GDICOMMENT) en de geen-PDF-toewijzingsfamilie (EMR_FRAMERGN,EMR_INVERTRGN,EMR_PAINTRGN,EMR_FLATTENPATH,EMR_WIDENPATH,EMR_SETMETARGN,EMR_OFFSETCLIPRGN,EMR_PLGBLT,EMR_POLYTEXTOUTA,EMR_POLYTEXTOUTW), doorsturen naar de GDI-referentie-DC waar van toepassing zonder naar de PDF-inhoudsstroom uit te zenden; eerder werden deze records stilzwijgend weggelaten, nu zijn ze gedocumenteerd en consistent gehouden met de GDI-kant
Version 2.316.0
Added
- Nieuw
JBIG2Benchmark-demo genereert vier PDF's van dezelfde drievoudige synthetische scan, één perTHPDFJBIG2Options-configuratie (per-afbeelding verliesvrij, per-afbeeldingLossyLevel=5, cross-pagina geaccumuleerde globals, rechthoek symboolextractie), waarbij elke uitvoergrootte wordt afgedrukt zodat de afwegingen tussen de v2.310.0 scanvriendelijke standaarden, de v2.314.0 cross-pagina-accumulator en de extractiemodi direct kunnen worden vergeleken
Version 2.315.0
Changed
- Het cross-pagina geaccumuleerde JBIG2-woordenboek wordt nu automatisch gebatched: zodra het lopende totaal glyphbreedte 131071 pixels overschrijdt, wordt het huidige woordenboek bevroren, uitgestoten als één
/JBIG2Globals-stroom en de accumulator wordt gereset, zodat de volgende batch een verse globals-stroom start. Weerspiegelt hetTotalWidth-gebaseerde overlopen van llPDFLib en houdt individuele globals-stromen op een grootte die lezers efficiënt verwerken bij zeer grote scanruns
Version 2.314.0
Added
- Cross-pagina geaccumuleerd JBIG2-symboolwoordenboek: opt-in met
THPDFJBIG2Options.AccumulateGlobalsAcrossPages := True(naast de bestaandeUseSymbolDictionary+UseGlobalSegments+ native-fallback-schakelaars) en opeenvolgende 1-biticJBIG2-afbeeldingen delen één groeiend in-memory symboolwoordenboek en één/JBIG2Globalsindirecte stroom, in plaats van dat elke afbeelding zijn eigen woordenboek uitstoot. NieuwTHPDFJBIG2SymbolDictionarybevat de persistente glyphset met dezelfde verliesTolerant/verliesvrije overeenkomst die de per-afbeelding encoder gebruikt; nieuwsmoke_jbig2_accum_decodeverifieert dat twee pagina's met verschillende glyphindelingen één globals-objectreferentie delen en bit-voor-bit terugdecoderen naar de bronpixels
Version 2.313.0
Added
- JBIG2 globale-segmentstromen geproduceerd door de native symboolwoordenboekencoder worden nu op inhoud geadresseerd op documentniveau via
THPDFJBIG2GlobalsPool, zodat afbeeldingen die byte-identieke globals opleveren één/JBIG2Globalsindirecte stroom delen in plaats van elk hun eigen uit te zenden; nieuwsmoke_jbig2_globals_multi-rook dekt drie pagina's van identieke glyphen die samenvouwen tot één gedeelde globals-stroom
Version 2.312.0
Added
- EMF/WMF-import dekt nu
EMR_SCALEVIEWPORTEXTEX,EMR_SCALEWINDOWEXTEX,EMR_EXCLUDECLIPRECT,EMR_CREATEDIBPATTERNBRUSHPT,EMR_SETMITERLIMIT,EMR_SETTEXTJUSTIFICATIONenEMR_SETROP2, waarmee de zeven-records kloof met llPDFLib wordt gesloten zodat EMF-stromen uitgestoten door oudere GDI-toolketens die records niet langer stilzwijgend weglaten;SETMITERLIMITenSETROP2worden onmiddellijk van kracht, terwijl de anderen status opslaan voor een latere render-side-koppeling zonder huidige coördinaat- of knipuitvoer te verstoren
Version 2.311.0
Added
HPDFCMSSha256StreamRangesverteert nu de twee PDF/ByteRange-vensters rechtstreeks vanuit eenTStreamin 256 KB-brokken, zodat multi-GB ondertekende PDF's kunnen worden gehasht zonder eerst het hele bestand in eenAnsiStringte kopiëren; sluit de kloof met de stroom-gebaseerdeCalcHashvan llPDFLib, die de bestaande in-memoryHPDFCMSSha256ByteRangesniet kon evenaren voor zeer grote invoer
Version 2.310.0
Changed
THPDFJBIG2Optionsgebruikt nu standaard scanvriendelijke instellingen (LossyLevel = 5,RemoveIsolatedBlackPixels = True,BlackDotSize = 3) zodat 1-bit gescande afbeeldingen standaard veel kleiner worden gecomprimeerd; stelLossyLevel = 0ofLossless = Truein om strikte verliesvrije overeenkomst te herstellen
Performance
- Xref-tabelgroei is nu geometrisch (kleine documenten +N, grotere documenten +25%) in plaats van de dynamische array bij elk indirect object opnieuw toe te wijzen, waarmee de O(n²)-kosten die domineerden bij het laden en bouwen van grote PDF's met veel objecten worden verwijderd
Version 2.309.4
Added
- Toegevoegd
THPDFDocOutlineObject.AddChildFirstzodat gegenereerde overzichtsknooppunten een kinditem vóór bestaande broers/zussen kunnen plaatsen terwijl de opgeslagen overzichtsvolgorde behouden blijft
Version 2.309.3
Added
- Toegevoegd
pmUseOCaanTHPDFPageModezodat gegenereerde documenten het optionele-inhoudslagenpaneel kunnen opvragen met catalogus/PageMode /UseOC
Version 2.309.2
Added
- Toegevoegd titeltekstreeks-overloads voor
THPDFPage.AddTextAnnotationzodat gegenereerde tekstannotaties de PDF/T-titel- of auteursingang kunnen schrijven terwijl de bestaande pictogram-, kleur- en open-status-argumenten behouden blijven
Version 2.309.1
Fixed
- Het wissen van
THotPDF.OutputStreamdoorniltoe te wijzen herstelt nu de normaleFileName-uitvoer in plaats van het document in de stroom-uitvoermodus te laten
Version 2.309.0
Fixed
- EMF/WMF-import respecteert nu
EMR_EXTSELECTCLIPRGN-regiomodi voor kopieer-, doorsnede- en uitsluitingsknip terwijlEMR_SETWORLDTRANSFORM,EMR_MODIFYWORLDTRANSFORMenEMR_SETPIXELVworden gedekt door niet-GUI-regressietests
Version 2.308.0
Added
- FastReport-invoegtoepassing ontwerptime-registratie wordt nu geleverd als
frxHotPDFDesign, waarmeeTfrxHotPDFExportop het FastReport VCL-palet wordt geplaatst terwijl de bestaande runtime-eenheid enRegister-toetredingspunt beschikbaar blijven voor compatibiliteit
Version 2.307.0
Added
SignPDFWithPFXparseert nu ook verouderde PKCS#12 PBE-SHA1-3DES versleutelde PFX-bestanden naast PBES2 AES-256-CBC-profielen
Version 2.306.0
Changed
- Herhaalde aanroepen die dezelfde gecodeerde afbeelding toevoegen, hergebruiken nu het bestaande PDF-afbeeldings-XObject terwijl afzonderlijke uitvoer voor verschillende JPEG-kwaliteitsinstellingen en maskerrelaties behouden blijft
Version 2.305.0
Added
TfrxHotPDFExport.PageRangelaat FastReport-exports nu opt-in voor op-één-gebaseerde paginafiltering zoals1,3-5terwijl de gedeelde paginabereikparser van HotPDF wordt hergebruikt
Version 2.304.0
Fixed
- XFA-naar-AcroForm-tabelafvlakking laat nu volledig-groeiibare enkele auto-kolommen de tabelinhoudsbreedte erven, zodat velden zonder hun eigen
wnog steeds een meetbare breedte ontvangen en rijspatiëring behouden
Version 2.303.0
Fixed
- XFA-naar-AcroForm-tabelafvlakking laat nu groeiibare tekstcellen vaste
columnWidths-waarden erven wanneer ze hun eigenwweglaten, zodat rijhoogten worden gemeten en volgende rijen gescheiden blijven
Version 2.302.0
Fixed
- XFA-naar-AcroForm-afvlakking meet nu groeiibare tekstvelden binnen geneste
layout="tb"- en gewikkeldelayout="lr-tb"-stromen, en tabelrijen houden nu groeiibare tekstcelhoogte bij het positioneren van volgende velden
Version 2.301.0
Fixed
- XFA-naar-AcroForm-afvlakking houdt nu tekstvelden in
layout="tb"- enlayout="lr-tb"-stroomcontainers wanneer ze een explicieteh-hoogte weglaten, waarbij de ingepakte inhoudshoogte wordt gemeten in plaats van ze over te slaan als niet-ondersteunde groeiibare indeling
Version 2.300.0
Fixed
THotPDF.ExtractObjectFromStreamgeeft nu het geparseerde woordenboek terug voor gematerialiseerde objectstroom-leden en fabriceert niet langer ruwe-gegevensdiagnostische sleutels wanneer aanroepers geladen PDF 1.5+-objectstromen inspecteren
Version 2.299.0
Added
THotPDF.DecompressAllObjectStreamsis nu openbaar en dwingt geladen PDF's die objectstromen gebruikten op te slaan waarbij compacte objecten worden gematerialiseerd als normale indirecte objecten in plaats van de bronobjectstroomlay-out te kopiëren
Version 2.298.0
Fixed
- Het aanmaken van AcroForm-velden weigert nu dubbele rootveldnamen voor zowel nieuwe documenten als het bewerken van geladen documenten, terwijl de geldige gedeeld-bovenliggend-workflow voor radioknopgroepen behouden blijft
Version 2.297.0
Added
TDBGridHotPDFExportOptionsen hetTDBGridHotPDFExport-component stellen nuPDFAComplianceenPDFXCompliancebeschikbaar zodat DBGrid-tabelexports kunnen deelnemen aan dezelfde HotPDF-standaardenconformiteitspoorten die worden gebruikt bij directe documentgeneratie
Version 2.296.0
Added
TQRHotPDFExportFilterenTdxHotPDFExportOptionsstellen nuPDFAComplianceenPDFXCompliancebeschikbaar zodat QuickReport- en DevExpress-exports kunnen deelnemen aan dezelfde HotPDF-standaardenconformiteitspoorten die worden gebruikt bij directe documentgeneratie
Version 2.295.0
Added
TfrxHotPDFExportenTppHotPDFDevicestellen nuPDFAComplianceenPDFXCompliancebeschikbaar zodat rapportexports kunnen deelnemen aan dezelfde HotPDF-standaardenconformiteitspoorten die worden gebruikt bij directe documentgeneratie
Version 2.294.0
Added
- Form XObject- en tegelpatrooncanvas-bouwers laten aanroepers nu herbruikbare bronnen samenstellen via getypeerde tekenhulpen voordat ze worden geregistreerd voor hergebruik op pagina's
THPDFExtGStateOptionslaat nu één ExtGState transparantie, mengmodus, lijnbreedte, lijnkap, lijnverbinding en hoekmetergrens-instellingen combineren
Version 2.293.0
Added
- Systeemeigen JBIG2-codering ondersteunt nu symboolwoordenboekcompressie met optionele gedeelde globale woordenboeken, rechthoek- en uitsluitend-afbeelding-extractiemodi, lossy pixelverschilbewakers en PDF/A-terugval naar CCITT waar JBIG2 niet is toegestaan
- EMF/WMF-rendering verwerkt nu
TransparentBlt- enMaskBlt-bitmaprecords via PDF-afbeeldingsmasker- en transparantiepaden - FastReport- en ReportBuilder-systeemeigen exportmodi beslaan nu meer uitvoer op objectniveau, inclusief gestijlde memo/rijke tekst, streepjescode, afbeelding, vectorvorm, lijn, knippen, kader, streep en URL-annotatiepaden
- De HugeFileBenchmark-demo's rapporteren nu werkset- en piekwerksetstatistieken, ondersteunen een optionele geheugenlimiet en houden gegenereerde werkbestanden gescheiden van rapportuitvoer
- De Delphi
PDFOptimize-demo documenteert nu producerszijde compressiekeuzes voor inhoudsstromen, objectstromen, JPEG-kwaliteit, CCITT en JBIG2-uitvoer
Fixed
- Demo-dekkingscontroles bevatten nu Engels-basislijn-demo-README's, wijzen geconsolideerde C++Builder-voorbeelden toe aan hun werkelijke bestanden en houden GUI-demo's standaard uitgeschakeld bij routinetestuitvoeringen
Version 2.292.32
Added
- EMF/WMF-arceerpenselen worden nu toegewezen aan PDF-tegelpatronen zodat geïmporteerde CAD-tekeningen en rapporten de arceerstructuur kunnen behouden in plaats van die vullingen plat te slaan naar effen kleur
Fixed
- Woordenboekbewerkingen van geladen documenten markeren objecten nu als vuil zodat
SaveLoadedDocumentgewijzigde PDF's herschrijft in plaats van de oorspronkelijke bron te kopiëren na overzicht- en objectboombewerkingen - Het verwijderen van geladen overzichten koppelt broer/zus-bladwijzers nu opnieuw, en niet-geroteerde onderstreping- en doorhaling-tekstdecoraties zenden nu gevulde rechthoekoperatoren uit
Version 2.292.31
Added
THPDFEmfOptions.ShowNullBrushlaat EMF/WMF-rendering nu null-penseel-vullingen blootstellen voor diagnostische en CAD-stijl importworkflows terwijl ongevulde null-penselen standaard worden bewaard
Version 2.292.30
Added
THPDFEmfOptions.CanvasOverlaat de herhalende paginaCanvas nu bestaande PDF-inhoud boven het geparseerde Canvas-metabestand plaatsen terwijl de standaard de huidige Canvas-bovenaan-volgorde behoudt
Version 2.292.29
Added
THPDFEmfOptions.Redrawlaat EMF/WMF-aanroepers nu het standaard tijdelijke hertekeningspad behouden of zich afmelden en het oorspronkelijke metabestand direct parseren
Version 2.292.28
Added
THPDFEmfOptions.UseFramelaat EMF/WMF-rendering geïmporteerde uitvoer nu knippen tot het EMF-koptekstkader voor metabestanden die vertrouwen op gedeclareerde kadergrenzen
Version 2.292.27
Added
THPDFEmfOptions.ShowNullPenlaat EMF/WMF-rendering nu null-pen-contouren blootstellen voor diagnostische en CAD-stijl importworkflows terwijl onzichtbare null-pennen standaard worden bewaard
Version 2.292.26
Added
THotPDF.SetFormFieldTooltiplaat applicaties nu AcroForm/TU-veldhints toewijzen op veldnaam voor widgets die zijn aangemaakt via de bestaandeAdd...-veldmethoden
Version 2.292.25
Fixed
TfrxHotPDFExportsysteemeigen-objectmodus bewaart nuTfrxPictureView-knippen en kaderafbeelding wanneer afbeeldingsweergaven direct worden geschreven als HotPDF-afbeeldings-XObjects
Version 2.292.24
Added
TfrxHotPDFExportsysteemeigen-objectmodus wijst ondersteunde horizontale eendimensionale FastReport-streepjescodeweergaven nu rechtstreeks toe aan HotPDF-streepjescode-operators, terwijl voor mensen leesbare tekst, controlesomgeneratie, aanvullende tekst, rotatie, gekleurde staven en niet-ondersteunde symbologieën op het bestaande terugvalpad blijven
Version 2.292.23
Added
TppHotPDFDevicesysteemeigen tekenopdracht-modus wijst ondersteunde eendimensionale ReportBuilder-streepjescodetekenopdrachten nu rechtstreeks toe aan HotPDF-streepjescode-operators, terwijl de verbeterd-metabestand-terugval behouden blijft voor opdrachten die voor mensen leesbare tekst, invoegcodes, controlesomberekening, gekleurde staven, rotatie of niet-ondersteunde postsymbologieën nodig hebben
Version 2.292.22
Fixed
- Automatisch starten van PDF-viewers kan nu worden onderdrukt in niet-interactieve uitvoeringen met
HOTPDF_SUPPRESS_AUTO_LAUNCH=1, en de meegeleverde test- en smoke-runners schakelen die bewaker standaard in zodat niet-GUI-regressie-uitvoeringen geen viewervensters openen
Version 2.292.21
Added
THPDFPage.ShowMetafileExheeft nu een per-aanroepTHPDFEmfOptions-overload, zodat aanroepers EMF/WMF-renderinginstellingen kunnen overschrijven voor één metabestandtekening terwijl documentniveau-standaarden behouden blijven
Version 2.292.20
Added
TfrxHotPDFExportstelt nu HotPDF-uitvoerbesturingen beschikbaar voor FastReport-exports, inclusiefAutoCreateURL,FontEmbedding,NotEmbeddedFonts,ActivateProtection,UserPassword,OwnerPassword,CryptKeyLength,ProtectOptionsenEncryptMetadata
Version 2.292.19
Added
- Een speciale
dbGridHotPDFDesign-add-on-eenheid toegevoegd zodat ontwerptiijdpakettenTDBGridHotPDFExportkunnen registreren op het HotPDF IDE-palet terwijl de DBGrid runtime-exportadapter bruikbaar blijft zonder ontwerptiijdpakketreferenties
Version 2.292.18
Changed
HPDFParsePFXondersteunt nu PBES2/PBKDF2-profielen die de standaard HMAC-SHA-1 PRF gebruiken evenals expliciet HMAC-SHA-256, wat de compatibiliteit verbetert met oudere AES-256-CBC PKCS#12-exports terwijl niet-ondersteunde PBE-SHA1-3DES-profielen met een diagnose worden afgewezen
Version 2.292.17
Added
THPDFTextOutBoxResultplusTHPDFPage.TextOutBoxExenTHPDFPage.WideTextOutBoxExtoegevoegd zodat gewikkelde tekstvakuitvoer het aantal geschreven tekens, geschreven rijen en of de brontekst de box heeft overgelopen kan rapporteren terwijl de verouderde methoden het geschreven-tekens-aantal blijven retourneren
Version 2.292.16
Added
THPDFPage.TextFromBaseLine(Boolean)toegevoegd voor het schakelen van paginatekstuitvoer tussen bovenrand- en basislijn-Y-coördinaatsemantieken, plusTHPDFPage.AppendScopedRawContentvoor het omwikkelen van deskundige onbewerkte inhoudsoperatoren in een automatisch grafische-staat opslaan en herstellen-paar
Version 2.292.15
Changed
TfrxHotPDFExportsysteemeigen-objectmodus bewaart nu geknipte memorandumtekst en FastReport-tekenspatiëring bij het rechtstreeks toewijzen van voorbereide memorandumweergaven aan HotPDF-paginatekstbewerkingen
Version 2.292.14
Added
TppHotPDFDevicestelt nu een opt-inRenderModebeschikbaar voor systeemeigen ReportBuilder-tekenopdracht-export, waarbij gewone tekst-, vorm-, lijn-, afbeeldings- en URI-hyperlinkopdrachten rechtstreeks worden toegewezen aan HotPDF-paginabewerkingen terwijl automatisch wordt teruggevallen op de bestaande verbeterd-metabestand-brug voor pagina's met niet-ondersteunde opdrachten
Version 2.292.13
Added
THotPDF.EncryptMetadatatoegevoegd voor standaard AES-wachtwoordversleuteling zodat aanroepers/EncryptMetadata falsekunnen schrijven, XMP/Metadata-stromen als leesbare tekst kunnen bewaren en de bijbehorende AES-128-sleutelafleiding of AES-256/Perms-metagegevensvlag kunnen zenden in plaats van te vertrouwen op het vorige altijd-aan metagegevensversleutelingsgedrag
Version 2.292.12
Added
- AcroForm-veldwikkelklassen bij aanmaaktijdstip toegevoegd via
THPDFAcroFormFieldenTHPDFPage.CreateTextField,CreateCheckBox,CreateRadioButton,CreateComboBoxenCreateListBox, waarmee koppelbare tooltip-, gemeenschappelijke vlag-, standaard weergave- en veld- of widget-aanvullende-actie-instelling direct na het aanmaken van velden mogelijk is
Version 2.292.11
Added
- Hoogwaardig afbeeldingsmasker, transparantie, per-afbeelding JPEG-kwaliteit en automatische monochrome compressiehulpen toegevoegd:
AddImageAsMask,AddImageWithMask,AddImageWithTransparency,AddImageWithTransparency32,AddImageWithJpegQuality,AddMonochromeImageAutoen de opt-inicAutoMono-compressieselector
Version 2.292.10
Added
- AcroForm-veld-aanvullende-actie-gemakshulpen toegevoegd voor
THPDFActionBuilder-ketens, inclusief benoemde wikkelklassen voor/AA /K,/AA /F,/AA /V,/AA /C, widget muis- en focustrigggers, en bijbehorende wisfuncties voor veld- en annotatietriggeringangen
Version 2.292.9
Added
- Documentlevenscyclus-aanvullende-actiehulpen toegevoegd voor
THPDFActionBuilder-ketens:SetDocumentCloseAction,SetDocumentWillSaveAction,SetDocumentDidSaveAction,SetDocumentWillPrintAction,SetDocumentDidPrintActionen bijbehorende wismethoden die catalogus/AA /WC,/AA /WS,/AA /DS,/AA /WPen/AA /DP-ingangen schrijven
Version 2.292.8
Added
- Ondersteuning voor aanvullende acties op gegenereerde pagina's toegevoegd met
THPDFPageActionTrigger, huidige-pagina-hulpen voorSetPageAdditionalAction,SetPageOpenAction,SetPageCloseActionen bijbehorende wismethoden, plusTHotPDFpagina-geïndexeerde hulpen die pagina/AA /Oen/AA /Cacties schrijven vanuit herbruikbareTHPDFActionBuilder-ketens zonder de actieve tekenpagina te wijzigen
Version 2.292.7
Added
- Paginalabeltekst voor gegenereerde documenten en artikeldraadkralen toegevoegd via
THPDFPageLabelStyle,THotPDF.SetPageLabel, de vijf stijlspecifieke paginalabelhulpen,THotPDF.ClearPageLabels,THotPDF.RegisterArticleThreadenTHPDFPage.AddArticleBead
Version 2.292.6
Added
THPDFActionBuilderbouwt nu geavanceerde actiewoordenboeken voorThread,Sound,Movie,Rendition,SetOCGState-laagzichtbaarheid,Trans-paginaovergangen enGoTo3DView, metShowLayer-,HideLayer- enToggleLayer-hulpen plus PDF/A/PDF/X-beperkingen
Version 2.292.5
Added
THPDFPage.SetAnnotationAdditionalActionenTHotPDF.SetFormFieldAdditionalActionkoppelen nu herbruikbareTHPDFActionBuilder-ketens aan annotatie- en AcroForm/AA-triggerwoordenboeken terwijl alleen de geselecteerde trigger wordt vervangen en PDF/A/PDF/X-actiebeperkingen worden bewaard
Version 2.292.4
Added
THPDFNamesFacadevoegt nu JavaScript-functiewikkelklassen en array-momentopnamen toe voor geladen JavaScript en benoemde bestemmingen,THPDFActionBuilderbouwt nu veldgebonden indienen/resetten-acties en externe paginadoelen, en de FastReport-adapter-systeemeigen-objectmodus bewaart memorandumachtergronden, tekstuitlijning en kaderopmaak
Version 2.292.3
Added
THPDFActionBuilderondersteunt nu externe benoemde bestemmingen en Launch-acties, en de FastReport-adapter-systeemeigen-objectmodus wijst weergave-URL's toe aan HotPDF URI-linkannotaties
Version 2.292.2
Added
THPDFActionBuilderondersteunt nu directe paginagerichteGoToPage-acties, EMF/WMF-bestandsnaamhulpen accepteren per-aanroepTHPDFEmfOptionsen de FastReport-adapter-systeemeigen-objectmodus wijst afbeeldingsweergaven rechtstreeks toe aan HotPDF-afbeeldings-XObjects
Version 2.292.1
Added
- EMF/WMF-rendering ondersteunt nu per-aanroep
THPDFEmfOptions-overschrijvingen via deShowEnhancedMetafile-,EnhancedShowMetafile- en verbeterdeShowMetafile-overloads, zodat een enkel metabestand compressie, schaal, referentie-DC, rekkingsmodus en uitgebreid-pen-gedrag kan kiezen zonder de documentbredeTHotPDF.EmfOptionste muteren
Version 2.274.1
Fixed
Type3-glyfprocedures gedeclareerd metd1negeren nu kleurselect-operators binnen de procedure en schilderen altijd met de huidige vulkleur van de tekst, zoals de PDF-specificatie vereist; glyphen gedeclareerd metd0behouden hun eigen kleuren- De onderdrukking geldt alleen binnen de glyfherhaling (inclusief geneste formulierobjecten) en beïnvloedt nooit kleuren geselecteerd door de omringende pagina-inhoud
Version 2.274.0
Added
Type3-glyfprocedures die eend1-begrenzingsdoos declareren worden nu tijdens paginaweergave daartoe beperkt, zodat misvormde of te grote glyfprocedures niet langer buiten hun gedeclareerde grenzen kunnen schilderen- Glyphen die de
d0-vorm gebruiken behouden hun onbeperkte gedrag, en gedegenereerde (lege of omgekeerde) dozen worden genegeerd in plaats van de glyph leeg te maken
Version 2.273.0
Added
- Paginaweergave lost nu eenvoudig-lettertype
/Encoding-woordenboeken op:/Differences-arrays wijs tekencodes opnieuw toe aan benoemde glyphen, waarbij prioriteit wordt gegeven boven de eigen tekenmap van het lettertypeprogramma zoals de PDF-specificatie vereist — documenten geproduceerd door TeX- en PostScript-afgeleide gereedschapketens, die sterk vertrouwen op/Differences, geven nu de beoogde glyphen weer - Glyfnamen worden opgelost via de Adobe Glyph List (inclusief
uniXXXX-vormen engNN/glyphNN-subsettnamen), via de tekenset van een compact lettertypeprogramma of via de tekenmap van een TrueType-programma, afhankelijk van wat het ingesloten lettertype ondersteunt - De voorgedefinieerde
StandardEncoding,WinAnsiEncodingenMacRomanEncoding-basiscoderinden worden geëerd voor codes zonder een/Differences-overschrijving, waarmee het 0x80–0x9F-bereik wordt gecorrigeerd dat een gewone Latin-1-aanname verkeerd verwerkt - Compacte (
Type1C) programma's die uitsluitend vertrouwen op een voorgedefinieerde codering — die eerder terugvielen op een systeemlettertype voor de hele uitvoering — geven nu hun ingesloten contouren weer via de standaardnaamopzoeking
Version 2.272.0
Added
- Ingesloten-glyf paginaweergave beslaat nu eenvoudige (niet-CID)
Type1-lettertypen met een compactFontFile3Type1C-programma: één-byte tekencodes worden opgelost via de ingebouwde codering van het lettertypeprogramma naar echte Type 2 charstring-contouren, waarmee ingesloten-contour-dekking over CID- en eenvoudige lettertypevarianten wordt voltooid - Eenvoudige
TrueType-lettertypen accepteren bovendien eenFontFile3OpenType-programma (CFF-gearomatiseerd) wanneer er geenFontFile2aanwezig is - Tekencodes die de ingebouwde codering niet kan toewijzen behouden de per-glyf systeemlettertype-terugval, en lettertypen die uitsluitend vertrouwen op de voorgedefinieerde Standaard/Expert-coderingen blijven de vorige gehele-uitvoering-terugval gebruiken
Version 2.271.0
Added
- Paginaweergave ondersteunt nu
Type3-lettertypen: de inhoudsstreamprocedure van elke glyf wordt via de renderer afgespeeld met de lettertypematrix, lettergrootte, tekstmatrix en huidige transformatie samengesteld, zodat stempels, streepjescodefonttypen en andere procedureel getekende glyphen in de gerenderde uitvoer verschijnen in plaats van overgeslagen te worden - De
/Encoding/Differences-toewijzing koppelt tekencodes aan glyfprocedures en glyf-ruimte/Widthsworden geïnterpreteerd via de/FontMatrix, waardoor voorschotten correct blijven voor niet-standaard glyfcoördinaatsystemen - Glyfprocedures kunnen het eigen
/Resources-woordenboek van het lettertype raadplegen (terugvallen op de bronnen van de pagina) en worden beschermd door dezelfde recursiewachter als Form XObjects
Version 2.270.0
Added
- Ingesloten-glyf paginaweergave beslaat nu eenvoudige (niet-CID)
TrueType-lettertypen: één-byte tekencodes worden via de eigencmap-tabel van het ingesloten lettertypeprogramma toegewezen aan glyphen, zodat pagina's met gewone ingesloten TrueType-lettertypen worden weergegeven met hun exacte glyfvormen in plaats van een gelijknamig systeemlettertype - De
cmap-opzoeking volgt een robuuste subtabelketen — Unicode (formaat 4 en formaat 12) eerst, dan symboolgecodeerdede subtabellen met deF000-spiegel voor privat gebruik, dan verouderde Macintosh-subtabellen (formaten 0 en 6) — die overeenkomt met het terugvalgedrag van de auteurstoolkit - Tekencodes die de ingesloten
cmapniet kan toewijzen vallen terug op de vorige systeemlettertypen per glyf, zodat gemengde of gedeeltelijk gesubsette lettertypen gracieus verslechteren in plaats van tekst te verwijderen
Version 2.269.0
Added
- Ingesloten-glyf paginaweergave beslaat nu CFF-lettertypeprogramma's: tekst in
Type0/CIDFontType0-lettertypen met eenFontFile3-programma (CIDFontType0C,Type1Cof eenOpenType-omhulsel) wordt weergegeven vanuit de echte Type 2 charstring-contouren in plaats van een gelijknamig systeemlettertype te vervangen - De charstring-interpreter ondersteunt de volledige tekenoperatorset — lijnen, curven, de flexfamilie, hintmaskers en lokale/globale subroutineaanroepen met subroutine-bias — zodat professioneel geproduceerde CFF-lettertypen hun exacte glyfvormen reproduceren
- CID-gekeyde CFF-programma's wijzen tekencodes toe via de tekenset van het lettertype, waardoor glyfelectie correct blijft voor gesubsette lettertypen waarvan de glyfvolgorde afwijkt van de CID-volgorde; per-glyf lettertype-DICT-selectie (
FDArray/FDSelect) wordt gehonoreerd - TrueType- (
FontFile2) en CFF- (FontFile3) ingesloten programma's delen nu één weergavepijplijn; lettertypen zonder een bruikbaar ingesloten programma behouden de vorige systeemlettertype-terugval
Version 2.268.0
Added
- Ingesloten-glyf paginaweergave: tekst in
Type0/CIDFontType2-lettertypen met een ingesloten TrueType-programma (FontFile2) wordt nu weergegeven vanuit de echte glyfcontouren van het lettertype — kwadratische contouren, geimpliceerde op-curve-punten en samengestelde glyphen worden afgespeeld als gevulde vectorpaden — in plaats van een gelijknamig systeemlettertype te vervangen - Zowel
Identity- als expliciete stroomCIDToGIDMap-indelingen worden ondersteund, met dekking van gesubsette ingesloten lettertypen; documenten geproduceerd door de eigen Unicode-pijplijn van HotPDF gaan nu viaRenderLoadedPageToBitmapheen en terug met de exacte ingesloten glyfvormen - CID-voorschotten honorer en nu de
/W- en/DW-breedteingangen en twee-byteIdentity-H-codes stappen correct, waarmee tekstpositionering voor CID-gekeyde lettertypen in weergegeven uitvoer wordt hersteld - Lettertypen zonder een bruikbaar ingesloten programma (CFF-gearomatiseerde
FontFile3, toewijzingsfouten) behouden de vorige systeemlettertype-terugval
Version 2.267.0
Added
- Gedecodeerderd-afbeeldingen-cache voor paginaweergave: afbeeldings-XObjects die over pagina's worden herhaald (logo's, briefhoofden, watermerkafbeeldingen) worden nu één keer per documentlading gedecodeerd in plaats van één keer per tekening, waardoor de weergavetijd voor gedeelde-afbeeldingspagina's ruwweg wordt gehalveerd en multi-pagina TIFF-export dienovereenkomstig wordt versneld
- De cache is begrensd door
ImageCacheMaxBytes(standaard 32 MB) met least-recently-used-verwijdering, wordt automatisch gewist wanneer een document laadt en wordt samen metInvalidateRenderedPageCachegeleegd na in-place bewerkingen - Nieuwe herbruikbare
THPDFWeightedCache(eenheidHPDFCache): een byte-gebudgetteerde meest-recent-gebruikte cache met treffers/misser-statistieken en een SHA-256-inhoudshash-sleutelhulp, beschikbaar voor hosttoepassingen voor het cachen van hun eigen dure tussenliggende gegevens
Version 2.266.0
Added
- Symbool- en verouderde lettertypeondersteuning in
RegisterUnicodeTTF: lettertypen die alleen een symbooltekenmap dragen (Wingdings, Webdings en vergelijkbare (3,0)-cmap-lettertypen) worden nu geregistreerd met een werkende codepunttoewijzing in plaats van elk teken op te lossen naar.notdef - Symboolcodepunten zijn bereikbaar zowel via hun eigen
U+F0xx-bereik als via gewone ASCII ('A'bereikt dezelfde glyf alsU+F041), overeenkomend met de manier waarop viewers symboolgecodeerdede tekst behandelen - Verouderde lettertypen waarvan de tekenmap alleen een formaat 6 (afgeknipte tabel) of formaat 0 (bytetabel) subtabel biedt, vallen nu terug op die, zodat oude Mac-erfgoedlettertypen correct worden ingesloten; de primaire Unicode-formaat 4/formaat 12-paden zijn ongewijzigd
Version 2.265.0
Added
- Gerenderde-pagina-cache:
RenderLoadedPageToBitmapCachedhoudt recent weergegeven pagina's bij op sleutel van pagina en DPI, zodat het opnieuw weergeven van dezelfde pagina (paginavoorbeelden, miniaturen, herhaalde exports) in microseconden terugkeert in plaats van de inhoudsstroom opnieuw te interpreteren — cache-treffers zijn typisch duizenden malen sneller - De cache houdt tot
RenderCacheCapacitypagina's (standaard 8) bij in meest-recent-gebruikte volgorde en retourneert een onafhankelijke door de aanroeper bezeten bitmap bij elke aanroep; het laden van een nieuw document wist deze automatisch, enInvalidateRenderedPageCachewist deze na in-place paginabewerkingen
Version 2.264.0
Added
- Rijke-tekst-uitvoer:
THPDFPage.TextOutHTMLgeeft een tekenreeks weer opgemaakt met een HTML-subset —<b>,<i>,<u>,<s>,<br>en<font size color face>met nesting — zodat gestijlde alinea's geen afzonderlijkeSetFont/TextOut-aanroep per stijlwijziging meer vereisen - Gemengde lettergrootten op één regel delen een gemeenschappelijke basislijn (het grootste lettertype van de regel stelt deze in) en de regelafstand van elke regel volgt het grootste lettertype, wat typografisch correcte uitvoer geeft voor koppen gemengd met bodytekst
- Kleuren accepteren
#RRGGBBen de 16 standaard HTML-kleurnamen; de entiteiten&<>" en numerieke&#N;(inclusief aanvullend-vlak codepunten) worden gedecodeerd - De aanroep retourneert de Y-coördinaat waarop een volgende regel zou doorgaan, zodat opeenvolgende
TextOutHTML-blokken op natuurlijke wijze worden gestapeld
Version 2.263.0
Added
- Lay-out-bewarende tekst-extractie:
ExtractLoadedPageTextLayoutreconstrueert de visuele indeling van een pagina als platte tekst — glyphen worden geclusterd in basislijnen en horizontale/verticale witruimte wordt gereproduceerd op een tekentegel, zodat kolommen, inspringing en tabeluitlijning in de uitvoer behouden blijven - Brede gaten tussen tekstuitvoeringen op dezelfde basislijn worden spatielijnen, en grote basislijngaten worden lege regels, waardoor het resultaat geschikt is voor vergelijken, grep-pen en het invoeren in tekst-analysepijplijnen die afhankelijk zijn van positionele uitlijning
- De bestaande
ExtractLoadedPageText-leesstroom-extractie is ongewijzigd; kies deze wanneer alleen de tekst-inhoud belangrijk is en de nieuwe aanroep wanneer de lay-out belangrijk is
Version 2.262.0
Added
- Gehele-boom-bladwijzers zoeken:
FindLoadedOutlineByTitledoorloopt de gehele overzichtshiërarchie van een geladen document (alle nestingniveaus, niet alleen hoofdstukken op het hoogste niveau) en lost de bestemmingspagina van de overeenkomende bladwijzer op, met optionele gedeeltelijke en hoofdlettergevoelige overeenkomst - Zowel directe
/Dest-bestemmingen alsGoTo-actiedoelen worden opgelost naar een pagina-index, zodat een gevonden bladwijzer onmiddellijk naartoe kan worden gesprongen GetLoadedOutlineTitlesDeepsomt elke bladwijzertitel in de boom op in diepte-eerst (lees-)volgorde, als aanvulling op de bestaande enumeratie alleen op het hoogste niveau
Version 2.261.0
Added
- Batch-bijlage-extractie:
SaveAllLoadedEmbeddedFilesschrijft elk ingesloten bestand van een geladen document in één aanroep naar een doelmap, maakt de map aan wanneer deze ontbreekt en retourneert het aantal geschreven bestanden - Bijlagenamen worden voor gebruik opgeschoond — padscheidingstekens en tekens die het bestandssysteem weigert worden onderstrepingstekens, zodat een document niet buiten de gekozen map kan schrijven — en dubbele namen ontvangen automatisch een
_CopyN-achtervoegsel vóór de extensie
Version 2.260.0
Added
- Multi-pagina TIFF-export voor geladen documenten:
SaveLoadedPagesToTiffgeeft de geselecteerde pagina's weer en schrijft ze in één TIFF 6.0-bestand met één afbeelding per pagina — het uitwisselingsformaat dat wordt verwacht door documentarchivering, scannen en faxpijplijnen - Pagina's worden geselecteerd met de vertrouwde op-één-gebaseerde bereiksyntaxis (
"1,3-5,7-"; leeg selecteert elke pagina), weergegeven op een door de aanroeper gekozen DPI en opgeslagen als 24-bit RGB met optionele Deflate-compressie (standaard aan; geefFalsedoor voor ongecomprimeerde uitvoer) SaveLoadedPagesToTiffStreamschrijft dezelfde multi-pagina TIFF naar elkeTStream; beide aanroepen retourneren het aantal werkelijk geschreven pagina's
Version 2.259.0
Added
- Digitale handtekeningverificatie voor geladen documenten:
VerifyLoadedSignatureherberekent de/ByteRange-samenvatting en controleert cryptografisch de RSA-handtekening op het certificaat ingesloten in de handtekening, waarbij een nauwkeurig vonnis wordt gerapporteerd (geldig, document gewijzigd na ondertekening, handtekening ongeldig, niet-ondersteund algoritme of misvormde container) GetLoadedSignatureInforetourneert de naam van de ondertekenaar, onderwerpn- en uitgeverdistinguished names, certificaatserienummer en geldigheidsperiode, ondertekeningstìd, hash-algoritme, subfilter en/Reason//Location//ContactInfovoor elk handtekeningveld zonder documentbytes aan te rakenVerifyLoadedSignatureExcombineert beide: één aanroep verifieert en retourneert het gevulde infoverslag, inclusief of de handtekening het hele document beslaat;VerifyAllLoadedSignaturescontroleert elk handtekeningveld tegelijk- Ondersteunde algoritmen: RSA (PKCS#1 v1.5) met SHA-1, SHA-256, SHA-384 of SHA-512-samenvattingen, die
adbe.pkcs7.detached- enETSI.CAdES.detached-handtekeningen met of zonder ondertekende attributen beslaan - Een
TStream-overload verifieert documenten geladen vanuit stromen; certificaatketen- en vertrouwensvalidatie blijft de verantwoordelijkheid van de aanroeper
Version 2.258.0
Added
- De hoogwaardige externe JBIG2-decoder is nu beschikbaar in 32-bit (Win32) builds; eerder was deze alleen 64-bit. PDF-bestanden laden met
/JBIG2Decode-afbeeldingen enExtractLoadedImagegebruiken deze standaard op beide platforms, decodering typisch 3–9× sneller dan de systeemeigen Pascal-decoder - De
UseExternalJBIG2Decoder-schakelaar gedraagt zich hetzelfde op 32-bit als op 64-bit: stel deze in opFalseom de systeemeigen Pascal-decoder te selecteren
Version 2.257.1
Fixed
- De hoogwaardige JBIG2-coderingsbackend in 64-bit (Win64) builds hersteld: een platformcontrole-regressie die werd geïntroduceerd bij het aansluiten van de 32-bit backend compileerde de externe encoder uit Win64-builds, zodat
AddImagemeticJBIG2-compressie stilzwijgend terugviel op de systeemeigen Pascal MMR-encoder. Win64 codeert nu opnieuw via de rekenkundige backend, typisch 4–8× sneller met gelijke of betere compressie;THPDFJBIG2Options.UseExternalEncoder := Falseblijft de expliciete manier om de MMR-terugval te selecteren
Version 2.257.0
Added
- De hoogwaardige JBIG2-coderingsbackend is nu beschikbaar in 32-bit (Win32) builds; eerder was deze alleen 64-bit.
AddImagemeticJBIG2-compressie gebruikt deze standaard op beide platforms, waardoor identieke standaardenconforme rekenmaatstaf-gecodeerde JBIG2-stromen 4–7× sneller worden geproduceerd dan de systeemeigen Pascal-terugval - De
THPDFJBIG2Options.UseExternalEncoder-schakelaar gedraagt zich hetzelfde op 32-bit als op 64-bit: stel deze in opFalseom terug te vallen op de systeemeigen Pascal MMR-encoder
Fixed
- Een reeks 32-bit-enige crashes (toegangsschendingen) in de statisch gekoppelde encoder-ondersteuningslaag opgelost die de JBIG2-coderingsbackend onbruikbaar maakten in Win32-builds; coderingsuitvoer is byte-identiek geverifieerd met de 64-bit backend en gaat verliesvrij heen en terug via zowel de gebundelde als de systeemeigen JBIG2-decoders
Version 2.256.0
Added
- XFDF-annotatie-ondersteuning uitgebreid naar de resterende vier ISO 19444-1 Tabel 1-subtypen, waarmee volledige dekking van alle 18 XFDF-annotatie-elementen wordt voltooid:
<fileattachment>(decodeert de base64<data>in een ingesloten-bestandsstroom + Filespec bij import, herencodeert bij export),<sound>(ingesloten/Sound-stroom met/R /B /C /Eaudioparameters),<redact>(een standaard/Redact-annotatie met/OverlayText,/DA,/Qen/IC— onderscheiden van het bestaande inhoudsstreamRedactLoadedRect-masker), en<link>(<OnActivation><Action>toegewezen aan een URI of Named-actiewoordenboek, met<Dest>benoemde bestemmingen) - Een zelfstandige base64-codec (
HPDFXFDFEncodeBase64/HPDFXFDFDecodeBase64) toegevoegd zodat de XFDF-laag niet afhankelijk is vanHPDFXFA; de bibliotheek had eerder alleen een decoder THPDFXFDFAccessuitgebreid met ingesloten-stroom-callbacks (ResolveStream/NewIndirectStream/ReadStreamBytes) verbonden metTHotPDF.ResolveLoadedStream/NewIndirectStream/HPDFReadStreamBytes- 3 DUnitX-gevallen toegevoegd aan
HotPDF.XFDFTests(base64 heen-en-terug, Redact met OverlayText, Link met URI-actie) — volledige suite nu 310/310 op Win32 en Win64
Version 2.255.0
Added
- XFDF (ISO 19444-1) import/export toegevoegd:
THotPDF.ExportLoadedFormToXFDF/ImportLoadedFormFromXFDFlaten AcroForm-veldwaarden heen-en-terug gaan via het XML Forms Data Format (de XML-tegenhanger van FDF), met dekking van eenvoudige en gelaagde (gestippeld-naam) velden, meervoudige-selectie-lijsten (meerdere<value>-broers/zussen), vinkje/keuzerondje-exportwaarden en handtekeningvelden (alleen naam, geen<value>per §6.3.3.1). De uitvoer is een UTF-8<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">-document met de Adobe-naamruimte zoals vereist door §5.5.2 THotPDF.ExportLoadedAnnotationsToXFDF/ImportLoadedAnnotationsFromXFDFtoegevoegd voor de 14 ISO 19444-1 Tabel 1-annotatiesubtypen die HotPDF al aanmaakt (tekst / vrije tekst / lijn / vierkant / cirkel / veelhoek / polylijn / markering / onderstreping / doorhaling / krullend / stempel / inkt / caret), met de gemeenschappelijke attributen (pagina, rechthoek, kleur, vlaggen, naam, datum, titel, inhoud, onderwerp, aanmaakdatum, dekking, bedoeling), typespecifieke geometrie (QuadPoints voor opmaak, Vertices voor veelhoek/polylijn, L voor lijn, InkList voor inkt), het pictogram voor tekst/stempel en popup-kinderen. FileAttachment/Sound/Redact/Link-actiesubtypen worden uitgesteld naar een latere rondeLib/HPDFXFDFXml.pastoegevoegd: een zelfstandige lichtgewicht XML-engine (geen MSXML/OmniXML-afhankelijkheid, bouwt op Delphi 5 .. RAD Studio) die een minimale DOM (THPDFXFDFNode), een tolerante parser (BOM, opmerkingen, CDATA, verwerkingsinstructies, attribuutvolgorde, zelf-sluitend, UTF-8 multibyte) en een UTF-8-schrijver levert die de ISO 19444-1 §5.8.2-escape-conventie toepast (entiteiten voor & < > ", tekensreferenties voor LF/CR/TAB, octale literals voor andere besturingstekens)Lib/HPDFXFDF.pastoegevoegd: de XFDF-bedrijfslaag, losgekoppeld vanHPDFDocvia een record van functieaanwijzers (THPDFXFDFAccess) gebonden door de implementatiesectie van HPDFDoc (hetzelfde patroon alsHPDFTextExtraction). Levert kleur#RRGGBB↔ DeviceRGB- en vlag-naam ↔ geheel getal bit-set-hulpenHotPDF.XFDFTests(8 DUnitX-gevallen) toegevoegd die de XML-engine (escape heen-en-terug, parseringstolerantie, geneste velden, UTF-8), veldenexport/import via een nep-toegangsrecord en annotatie-export/import via een nep gebouwd vanuit echteTHPDFDictionaryObject-instanties beslaan — alles slaagt op Win32 en Win64
Version 2.254.0
Added
- Lees-kant gestructureerde factuurextractie toegevoegd:
HPDFFacturXXMLElementTextvoert een woordgrens-bewuste deelreeksscan uit voor elk CII/UBL-element (geen XML DOM, werkt op elke ondersteunde Delphi),HPDFFacturXInvoiceSummaryFromXMLenTHotPDF.GetLoadedInvoiceSummaryretourneren eenTHPDFFacturXInvoiceSummary-record met de gemeenschappelijke BT-1/2/5/27/44/106/110/112/115-velden (factuurnummer, uitgiftedatum, valuta, verkoper/koper-namen, regel/belasting/totaaltotalen), waarbij de kopernaam wordt verfijnd door hetBuyerTradeParty-aggregaat te lokaliseren in plaats van alleen de eersteram:Name - PDF/A-3 structurele-regressiescan toegevoegd als
THotPDF.GetLoadedPDFAIssues, opzettelijk apart vanValidateFacturXInvoicezodat het Factur-X-containervonnis stabiel blijft (een hybride factuur met een ontbrekende OutputIntent is nog steeds een geldige container, gewoon geen conformant PDF/A-3-bestand); spiegelt de ISO 19005-3-beweringen die veraPDF verhoogt voor niet-ingesloten lettertypen (fxviFontsNotEmbedded), ontbrekende OutputIntent (fxviMissingOutputIntent) en verboden versleuteling (fxviEncryptedDocument), allemaal nieuwe leden van deTHPDFFacturXValidationIssue-enum - Ingesloten-bijlage-classificatie toegevoegd via
THotPDF.GetLoadedFacturXAttachments: somt elk ingesloten bestand op en classificeert het onder de Factur-X 1.09 spec 6.4-taxonomie (primaire CII-factuur, UBL- of EDIFACT-aanvullende representatie, ondersteunend document) met de nieuweTHPDFFacturXAttachmentRole-enum, zodat ontvangers bijlagen kunnen routeren zonder de rol opnieuw af te leiden uit bestandsnamen - EDIFACT-aanvullende bijlage-ondersteuning toegevoegd symmetrisch aan UBL:
THotPDF.AddEDIFACTSupplementaryFilesluit een EDIFACT-bericht in alsfactur-xedifact.edi(MIMEtext/plain, relatieAlternative),HPDFIsFacturXEDIFACTFileNameherkent de bestandsnaam enDetectFacturXInvoiceregistreert het in een nieuwTHPDFFacturXInvoiceInfo.EDIFACTFileName-veld - PDF/A-4/PDF/A-4f-ondersteuning toegevoegd (ISO 19005-4, Factur-X 1.09 spec voetnoot 2):
PDFAPartherkent nu'4'/'4F'(metpdfaid:part=4) enPDFAConformanceLevelretourneert leeg voor deel 4 omdat PDF/A-4 de A/B/U-niveaus laat vallen;IsPDFA2OrLaterbeslaat automatisch deel 4 zodat bestaande beperkingscontroles van toepassing zijn - Principe 4 visuele/XML-consistentiecontrole toegevoegd als
THotPDF.ValidateVisualXmlConsistency: dumpt de zichtbare tekst van elke pagina en verifieert dat het factuurnummer, de verkoper, de koper en de totaaltotaalwaarden die aanwezig zijn in de ingesloten XML ook voorkomen in de voor mensen leesbare representatie (Factur-X 1.09 spec 5.1); een mismatch wordt gerapporteerd als een lijst van ontbrekende veldnamen, omlijst als een heuristische waarschuwing in plaats van een harde validatiefout omdat de PDF waarden kan opmaken of omhullen
Changed
- Het E-Invoice-voorbeeld
ShowValidationReportgeeft nu de lees-kant factuuroverzicht, de onafhankelijke PDF/A-3-probleemset, de geclassificeerde bijlagenlijst en het Principe 4 visuele/XML-consistentievonnis weer naast de bestaande container- en Schematron-bedrijfsregelcontroles, waarbij de nieuwe lees-kant-API's op elke gegenereerde PDF worden gedemonstreerd
Version 2.253.1
Fixed
- De E-Invoice-demobron afgestemd op de regressietestbeweringen:
TInvoiceForm = class(TForm)gebruikt nu de standaard spatiedeclaratie, enIsDefaultOutputFileintroduceert een per-iteratieProfile-lokaal (ingesteld vanuitGetProfile(I)) zodat de bron de exactestring(Profile.OutputBaseName)+ '.pdf'-literal draagt die de tests controleren, terwijl de dubbeleGetProfile-aanroep per lus-iteratie wordt vermeden. Lost de twee lang-bestaandeEInvoiceDemoDefaultOutputUsesProfileSuffix/EInvoiceDemoUsesProjectFileAndOutputNames-fouten op
Version 2.253.0
Added
- Paginaweergave van geladen documenten toegevoegd:
THotPDF.RenderLoadedPageToBitmap(PageIndex, DPI)tekent een pagina naar een 24-bit RGB GDITBitmap(aanroeper geeft vrij) door de/Contents-stroom te interpreteren op een volledige grafische staat (CTM, kleuren, lijnattributen, teksttoestand) en een huidig pad, waarbij elke operator naar GDI wordt gevoerd via pad/tekst/afbeeldingbruggen. De ondersteunde operatorset beslaat de veelgebruikte document-PDF-subset: tekst (BT ET Tf Tc Tw Tz TL Tr Ts Td TD Tm T* Tj TJ ' "), padconstructie en -schildering (m l c v y re h S s f F f* B b B* b* n W W*), kleur (rg RG g G k K), grafische staat (q Q cm w) enDovoor afbeelding en één niveau van Form XObject-recursie. Behandelde kleurruimten zijn DeviceRGB/Gray/CMYK en Indexed; CalRGB/Lab/ICCBased degraderen naar een best-effort benadering. Zes nieuwe eenheden (HPDFRenderMatrix,HPDFRenderGraphicsState,HPDFRenderColorSpace,HPDFRenderPath,HPDFRenderFontMetrics,HPDFPageRenderer) houden de renderer losgekoppeld vanHPDFDocvia een record van functieaanwijzer-accessors HotPDF.RenderTests(3 DUnitX-gevallen) toegevoegd die paginatekstweergave (niet-lege bitmap), pagina-grootte-overeenkomt-DPI en buitenbereik-pagina-index retourneert nil beslaan — alles slaagt op Win32 en Win64
Version 2.252.0
Added
- Geladen-document tekst vervangen toegevoegd:
THotPDF.ReplaceLoadedPageTextenReplaceLoadedDocumentTextherschrijven elk voorkomen van een naald door de vervanging omgekeerd te coderen via de teken-codetabel van het lettertype (HPDFEncodeUnicode) en het resultaat in te voegen in alleen de overeenkomende code-byte-bereiken van elke tekenreeksoperand — niet-overeenkomende bytes, intertoken-witruimte en operators worden letterlijk behaard. Elke/Contents-stroom wordt afzonderlijk verwerkt zodat multi-stroom-pagina's goed gevormd blijven; gecomprimeerde stromen worden gedecomprimeerd voor bewerking en ongecomprimeerd opgeslagen (de/Filter-ingang wordt verwijderd, waardoor een groter bestand wordt geaccepteerd).ReplaceCountrapporteert het aantal uitgevoerde operandherschrijvingen HPDFEncodeUnicodetoegevoegd inHPDFTextExtraction: het omgekeerde vanHPDFDecodeCharCode, waarbij een Unicode-codepunt wordt toegewezen aan de teken-code-bytes van een lettertype door dezelfde strategie-keten in omgekeerde volgorde te doorlopen (ToUnicode bfchar/bfrange, Encoding-stroom cidchar/cidrange + CIDToUnicode, Type0 CIDToGID/CIDIdentity, voorgedefinieerde WinAnsi/MacRoman-tabellen), zodat een codeer→decodeer-heen-en-terug stabiel is voor elke code die de decoder kan oplossenHPDFSerializeStringLiteral/HPDFSerializeHexStringtoegevoegd inHPDFContentStream: reserialiseer onbewerkte teken-code-bytes terug in een PDF-inhoudsstream-tekenreeksliteral ((...)met()\en octale escapes) of hextekenreeks (<...>), die de tokenizerReadLiteralString/ReadHexStringspiegelt zodat parseren → herserialiseren heen-en-terug gaatHPDFMatchGlyphstoegevoegd inHPDFContentStream: een pure-functie-glyfenreeksvergelijker geëxtraheerd uitSearchLoadedPageTextzodat de zoek- en vervangpaden één overeenkomende kern delenTHPDFPageFontResolver.LookupDecodertoegevoegd zodat het vervangpad een kopie van de lettertypedecoder kan verkrijgen voor omgekeerde codering buiten de interpreterlusHotPDF.ReplaceTests(8 DUnitX-gevallen) toegevoegd die serialisator heen-en-terug (literal/hex/hoog-byte-escape) en end-to-end zelfde-lengte, verschillende-lengte, meervoudige-overeenkomst, gecomprimeerde-stroom-degradatie en ontbrekende-naald-scenario's beslaan — alles slaagt op Win32 en Win64
Version 2.251.0
Added
- Geladen-document tekst zoeken toegevoegd:
THotPDF.SearchLoadedPageTextenSearchLoadedDocumentTextlokaliseren elk voorkomen van een naald door de Unicode-glyfenreeks geproduceerd doorExtractLoadedPageGlyphste vergelijken, waarbij eenTHPDFTextMatchArraywordt geretourneerd waarvan de ingangen het glyfbereik, de gebruikers-ruimte-oorsprong en -breedte en de bronstoken-/item-index dragen zodat een aanroeper later de operandbytes kan herschrijven; hoofdletterongevoelige overeenkomst gebruikt uitsluitend ASCII-vouwen om gedrag identiek te houden over de Delphi 5–XE-gereedschapketens - De inhoudsstream-tokenizer en -interpreter uitgebreid met byte-offset-tracking:
THPDFContentTokenenTHPDFArrayItemregistreren nuStartOfs/EndOfsdie elke operand precies omspannen zoals geschreven (inclusief()of<>-begrenzers) en elkTHPDFGlyphRecorddraagtTokenIndex/ItemIndex/ByteOffsetdie terugwijzen naar de operand en code-eenheid die het produceerde — de basis voor in-place tekstvervanging HotPDF.SearchTests(10 DUnitX-gevallen) toegevoegd die offset-bereik-reconstructie voor literal/hex/TJ-array-operanden, de glyph→token-terugreferentie en end-to-end enkel/hoofdletterongevoelig/meervoudige-overeenkomst/document-breed zoeken plus de lege-naald- en ontbrekende-naald-randgevallen beslaan — alles slaagt op Win32 en Win64
Version 2.250.0
Fixed
ImportLoadedFormFromFDFgehard: de byte-niveau/T+spatie +/V+spatie-scanner (die/Type /Catalogen andere/T*-tokens verkeerd parseerde als veldnamen, bytes doorslikte over objecten naar de volgende(en hex-tekenreekswaarden miste) vervangen door een structurele parse — elk<< /T ... /V ... >>-veldwoordenboek binnen de/Fields-array wordt gesegmenteerd door haakjesdiepte-tracking (waarbij literal- en hex-tekenreeksliterals worden geërd) en overhandigd aanHPDFParserParseSimpleDictionary, zodat tekenreeks-, hex-tekenreeks-, naam- en numerieke/V-waarden nu allemaal correct heen en terug gaan/V-waarden die worden gedragen als UTF-16BE-hextekenreeksen (<FEFF...>) behouden nu hun hexvorm bij import:HPDFSetDictFormValuedetecteert hetFEFF-BOM-voorvoegsel en steltIsHexadecimalin zodat de schrijver<FEFF...>opnieuw uitzendt in plaats van een verminkte literal(FEFF...); vinkje/keuzerondje-naamwaarden (/Yes,/Off) worden als namen bewaard omdat het bestaande type-correctiepad deTHPDFNameObject-sleuf al behoudt
Added
HotPDF.FDFTests(5 DUnitX-gevallen) toegevoegd die de export→import-heen-en-terug voor tekstvelden, het behoud van vinkje-naam-waardetype, het stil overslaan van onbekende veldnamen, het UTF-16BE-hexwaarde-heen-en-terug en de/Type-sleutelwoordruis-regressie beslaan — alles slaagt op Win32 en Win64
Version 2.249.0
Added
- ZUGFeRD 2.5/Factur-X 1.09-metagegevensondersteuning toegevoegd:
HPDFIsFacturXVersionaccepteert de2p5-versiealias, de nieuweHPDFFacturXNormalizeVersion-hulp wijst deze terug naar2p0in het uitgestoten XMP per Factur-X 1.09 spec 6.3.2 (de XMP-extensieschemaversie is losgekoppeld van de XML-gegevensspecificatieversie) enHPDFFacturXFileNameOK,HPDFFacturXXMLGuidelineOKen de XMP-schemanaam/naamruimte-uri/prefix-driehoek behandelen2p5identiek aan2p0; het E-Invoice-voorbeeld krijgt een zevende profielingang (ZUGFeRD 2.5/Factur-X 1.09, EN 16931) gevalideerd op het officieel 2.5-voorbeeldcorpus - UBL-aanvullende-bijlage-ondersteuning toegevoegd per Factur-X 1.09 spec 6.4:
THotPDF.AddUBLSupplementaryFilesluit een UBL-representatie in als een secundairfactur-xubl.xml-gekoppeld bestand metAlternative-relatie enapplication/xml-MIME naast de primaire CII-factuur (gedelegeerd aan de bestaandeAddPDFA3AssociatedFile-pijplijn),HPDFIsFacturXUBLFileNameherkent de bestandsnaam,DetectFacturXInvoiceregistreert het in een nieuwTHPDFFacturXInvoiceInfo.UBLFileName-veld en het E-Invoice-voorbeeld wisselt dual-inbedding via een vinkje metBuildUBLSupplementaryXMLdie een compact UBL 2.1 EN 16931-skelet uitzendt - Optionele EN 16931 Schematron-bedrijfsregelvalidatie toegevoegd als de nieuwe
HPDFEInvoiceValidator-eenheid: levert de vijf officiële Factur-X 1.09-regelbestanden (MINIMUM/BASIC WL/BASIC/EN16931/EXTENDED) onderLib/resources/Schematron/en steltHPDFValidateEInvoicebeschikbaar dat de containercontrole uitvoert viaValidateFacturXInvoiceen vervolgens elke regel evalueert op de ingesloten XML; de MSXML-ondersteunde engine (alleen XE2+, XPath 1.0-subset) markeert XPath 2.0-beweringen alsovergeslagen, terwijl Delphi 7 een stub compileert die de engine als niet beschikbaar rapporteert zonder het containervonnis te beïnvloeden; het E-Invoice-voorbeeld en deEInvoiceValidation-koploze harnachement geven nu interne regelresultaten weer naast de externe valida-torrapporten
Changed
AddFacturXAssociatedFilenormaliseert nu hetVersion-argument viaHPDFFacturXNormalizeVersionvóór het schrijven van XMP, zodat2p5-aanroepers het spec-conforme2p0-XMP-token zenden zonder het bestaande1.0/2p0-gedrag te wijzigen- E-Invoice-voorbeeld
GenerateInvoicePDFkrijgt een optioneleAttachUBL-parameter (standaard opFalse, waarbij bestaande aanroepplaatsen worden bewaard) en tagt de standaard uitvoernaam met-withUBLwanneer de UBL-bijlage wordt gevraagd
Version 2.248.0
新增
- 加固 E-Invoice 例程的 profile 索引模型:把
GetProfile从 1 基 case 加else兜底改为显式 0 基双射(0 BASIC..5 EN 16931),下拉框顺序同步重排,默认仍为 EN 16931;补全 E-Invoice 例程 README 对 ZUGFeRD 1.0 COMFORT 和 ZUGFeRD 2.0 BASIC 两个 profile 的输出文件、校验状态和运行输出描述
Version 2.247.0
新增
- 新增已加载文档的 22 项创建/写入 API(第九轮,实现中等工程量特性,全部在已加载对象图上构造字典并注册到 AcroForm/Page):表单字段创建——文本字段(
AddLoadedTextField)、复选框(AddLoadedCheckBox)、组合框(AddLoadedComboBox)、列表框(AddLoadedListBox)、按钮(AddLoadedPushButton)、签名字段(AddLoadedSignatureField),自动建立/补全 AcroForm 与/NeedAppearances;注释子类型——橡皮图章(AddLoadedStampAnnotation)、高亮/下划线/波浪线/删除线(AddLoadedHighlightAnnotation)、矩形/圆形(AddLoadedSquareAnnotation)、直线(AddLoadedLineAnnotation)、墨迹(AddLoadedInkAnnotation)、多边形/折线(AddLoadedPolygonAnnotation)、插入符(AddLoadedCaretAnnotation);FDF 表单数据互换(ExportLoadedFormToFDF/ImportLoadedFormFromFDF);N-up 拼版(StitchLoadedPage/StitchLoadedPageSideBySide);脱敏遮罩(RedactLoadedRect)
Version 2.246.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
GetLoadedFormFieldOption/GetLoadedFormFieldOptions)/write (SetLoadedFormFieldOptions), field default-value read/write (GetLoadedFormFieldDefaultValue/SetLoadedFormFieldDefaultValue), field reset (ResetLoadedFormField), text-note annotation (AddLoadedTextAnnotation), free-text annotation (AddLoadedFreeTextAnnotation), annotation color (SetLoadedAnnotationColor), cross-page annotation move (MoveLoadedAnnotation), bookmark color (SetLoadedOutlineColor)/style (SetLoadedOutlineStyle)/delete (RemoveLoadedOutline), document Trapped flag (SetLoadedTrapped), optional-content group visibility (SetLoadedOCGVisibility), page-label write (SetLoadedPageLabel)
Version 2.245.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
SetLoadedAnnotationFlagsGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenAddLoadedLinkAnnotation), bookmark expand/collapse state (SetLoadedOutlineOpen), document open-action (SetLoadedOpenActionPage), form-field export-value read/write (SetLoadedFormFieldExportValue/GetLoadedFormFieldExportValue), form-field tooltip (SetLoadedFormFieldTooltip/GetLoadedFormFieldTooltip), form-field border width/background color (SetLoadedFormFieldBorderWidth/BackgroundColor), clear all JavaScript (RemoveLoadedJavaScriptAll), page content copy (CopyLoadedPage)
Version 2.244.0
新增
- 新增已加载文档的 15 项写入/编辑 API(第二轮写入,覆盖
RemoveAnnotation/SetRotationAngle等模式):页面旋转写入(SetLoadedPageRotation)、注释删除/内容修改/清空(RemoveLoadedAnnotation/SetLoadedAnnotationContents/ClearLoadedAnnotations)、查看器偏好写入(SetLoadedViewerPreferences)、日期写入(SetLoadedCreationDate/ModDate)、Catalog 版本写入(SetLoadedCatalogVersion)、页面持续时间/过渡效果写入(SetLoadedPageDuration/Transition)、书签标题修改(SetLoadedOutlineTitle)、嵌入文件删除(RemoveLoadedEmbeddedFile)、表单字段值写入(SetLoadedFormFieldValueByIndex/ByName)
Version 2.243.0
新增
- 新增已加载文档的 14 项写入/编辑 API(首次突破只读检视,覆盖
SetXMLMetadata/InsertAnnotation/Stitch等模式):页面模式/布局写入(SetLoadedPageMode/PageLayout)、文档语言写入(SetLoadedLanguage)、文档信息写入(SetLoadedCreator/Producer/Title/Author/Subject/Keywords)、Info 键删除(RemoveLoadedInfoKey)、XMP 元数据写入(SetLoadedXMPMetadata)、文档级 JavaScript 增删(AddLoadedDocumentJavaScript/RemoveLoadedJavaScript)、页面框写入(SetLoadedPageBox)。这些方法修改已加载的对象图,调用SaveLoadedDocument持久化
Version 2.242.0
新增
- 新增已加载文档的 15 项检视 API(第四轮标准 PDF 功能差距扫除):页面模式/布局读取(
GetLoadedPageMode/PageLayout)、Catalog 版本(GetLoadedCatalogVersion)、页面对象号(GetLoadedPageObjectNumber)、表单字段标志位组合(GetLoadedFormFieldFlags)/NoExport 检测(IsFormFieldNoExport)、注释标志解码(IsLoadedAnnotationHidden/Printable/Locked)、度量单位转换(PointsToMM/MMToPoints/PointsToInches/InchesToPoints/PointsToCm/CmToPoints)
Version 2.241.0
新增
- 新增已加载文档的 20 项深度检视 API(第三轮标准 PDF 功能差距扫除):Info 字典键枚举(
GetLoadedInfoKeyCount/KeyName/KeyValue)、表单字段矩形/页索引(GetLoadedFormFieldRect/PageIndex)、注释 URI/弹出框/名称/修改日期(GetLoadedAnnotationURI/PopupRect/Name/ModDate)、书签颜色/样式(GetLoadedOutlineColor/Style)、元数据流检测(HasLoadedMetadata)、Trailer ID(GetLoadedTrailerID)、XRef 类型(GetLoadedXRefType)、最大对象号(GetLoadedMaxObjectNumber)、源文件大小(GetLoadedSourceFileSize)、嵌入字体计数(GetLoadedEmbeddedFontCount)、文档语言(GetLoadedLanguage)、页面持续时间/过渡效果(GetLoadedPageDuration/Transition)、表单字段必填标志(IsFormFieldRequired)
Version 2.240.0
新增
- 新增已加载文档的 20 项深度检视 API(第二轮标准 PDF 功能差距扫除):嵌入文件保存到磁盘(
SaveLoadedEmbeddedFileToDisk)、设置文档信息字段(SetLoadedDocumentInfo)、读取 JavaScript 源码(GetLoadedJavaScriptSource)、命名目标枚举(GetLoadedNamedDestinationCount/Name)、OCG 可见性(GetLoadedOCGVisibility)、页面标签详情(GetLoadedPageLabelInfo)、全文档注释/字体计数(GetLoadedTotalAnnotationCount/TotalFontCount)、PDF/A 与 PDF/X 合规检测(IsLoadedPDFA/IsLoadedPDFX/GetLoadedPDFAVersion/GetLoadedPDFXVersion)、批量便捷方法(GetLoadedOutlineTitles/AllLinkURIs/ImageCountPerPage/AllPageBoxes/FormFieldNames/FormFieldValues)、一键文档摘要(GetLoadedSummary返回页数/注释/字体/图像/表单/签名计数 + 加密/AcroForm/结构树标志)
Version 2.239.0
新增
- 新增已加载文档的 20 项检视 API(标准 PDF 功能差距批量扫除):PDF 版本字符串(
GetLoadedPDFVersionString)、线性化检测(IsLoadedLinearized)、XMP 元数据读取(GetLoadedXMPMetadata)、文档级 JavaScript 枚举(GetLoadedJavaScriptCount/Name)、页面标签计数(GetLoadedPageLabelCount)、查看器偏好(GetLoadedViewerPreferences)、结构树检测(HasLoadedStructureTree)、签名字段计数(GetLoadedSignatureFieldCount)、可选内容组(OCG)枚举(GetLoadedOCGCount/Name)、OutputIntent 检测(HasLoadedOutputIntent/GetLoadedOutputIntentInfo)、AcroForm 检测(HasLoadedAcroForm)、创建/修改日期(GetLoadedCreationDate/ModDate)、批量数组便捷方法(GetLoadedEmbeddedFileNames/LinkURIs/AnnotationSubtypes/FontNames返回THPDFAnsiStringArray)
Version 2.238.0
新增
- 新增已加载文档的深度检视 API(8 个只读方法):
GetLoadedPageWidth/GetLoadedPageHeight读取页面尺寸(pt);GetLoadedLinkCount/GetLoadedLinkInfo枚举超链接注释(URI + 矩形);GetLoadedEncryptionInfo查询加密版本、密钥长度、权限标志;GetLoadedEmbeddedFileCount/GetLoadedEmbeddedFileName枚举文档嵌入文件(附件)。这些 API 遍历已加载的对象图但不修改它,仿现有GetLoadedImageInfo/GetLoadedAnnotationInfo模式。LoadedDocInspector例程同步更新,演示页面尺寸/旋转/链接计数、加密状态、嵌入文件清单
Version 2.237.0
新增
- 新增已加载文档的元数据查询 API:
GetLoadedDocumentInfo从 Info 字典读取标题、作者、主题、关键词、创建者、生成器;GetLoadedPageRotation读取页面旋转角度;GetLoadedOutlineCount/GetLoadedOutlineItem枚举书签树的顶层条目(标题 + 目标页索引)。这些都是只读查询,仿现有GetLoadedImageInfo模式,不修改文档对象图
Version 2.236.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
THotPDFmethods:HPDFCMapReaderparses both ToUnicodebeginbfchar/beginbfrangeGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenbegincidchar/begincidrangeGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenHPDFContentStreamGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenBT/ET,Tf,Tj/TJ/'/",Td/TD/Tm/T*,q/Q, inline-imageBI/ID/EIGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenHPDFTextExtractionGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/ToUnicode→/EncodingGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/DescendantFonts/CIDToGIDMap→cid2code.txtGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen - Added
THotPDF.GetLoadedFontDecoder,THotPDF.ExtractLoadedPageGlyphsandTHotPDF.ExtractLoadedPageTextGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenExtractLoadedPageTextGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen - Added
ExtractTextGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenLoadedDocInspectorread-only console layout
Gewijzigd
HPDFDocnowusesHPDFCMapReader,HPDFContentStreamandHPDFTextExtractionGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenTHotPDFGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenHPDFParserstandalone-unit pattern (no dpkcontainsGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenHPDFDocGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenTHPDFFontDocAccessGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenResolveLoadedDictionary/ResolveLoadedStream/HPDFReadStreamByteshelpers
Version 2.235.1
新增
- 新增
PDFOptimize控制台例程(Delphi):演示生成端 PDF 体积优化,通过同内容、不同压缩设置的多份 PDF 横向对比量化每种策略的收益 —— 文本/矢量文档的cmNonevscmFlateDecode加UseObjectStreams对象流打包、彩色照片的icJpegJpegQuality扫描对比icFlate、双层扫描图的icCCITT42(G4)对比icJBIG2lossless/lossy,控制台打印体积对比表,所有测试图像均在内存合成生成不依赖外部文件,并明确标注 HotPDF 压缩为生成端能力(无法对已加载 PDF 重新压缩)
Version 2.235.0
Added
- Geconsolideerde
Stamp-demo toegevoegd (Delphi en C++Builder): voegt de voormalige demo'sModify,MultiPageStampenWatermarksamen in één VCL-programma dat drie onafhankelijk in-/uitschakelbare stempel-lagen over een geparseerd paginabereik legt —— tekstwatermerk in de inhoudsstroom (AddTextWatermark), interactieve rubberen-stempelannotatie (AddStampAnnotation) en hoek-bitmap (AddImage+ShowImage), met behoud van paginabereik-parsing (HPDFParsePageRange) en positionering op vier hoeken - Geconsolideerde console-demo
PageSizestoegevoegd: voegt de voormalige demo'sSmallSize,NormalSizeenLargeSizesamen in één programma dat alleTHPDFPageSize-enumwaarden van de categorieën klein/normaal/groot plus aangepasteWidth/Height-afmetingen in één doorgang opsomt
Changed
- De 5 zelfstandige programma's van de demogroep
Security(Encryption,SecurityAES256,DecryptPDF,PFXSignature,SignatureField) zijn samengevoegd tot één console-programma dat RC4-128-versleuteling, AES-256-R5/R6-versleuteling, wachtwoord-ontsleuteling, handtekeningveld-placeholders en PFX-ondertekening dekt (automatisch overgeslagen wanneer de PFX-fixture ontbreekt) - De GUI's
AddPagesenDelPageszijn samengevoegd tot één GUIAddDelPages, terwijl de C++Builder-zijdePageMultiSizeenAddDelPageszijn opgewaardeerd om overeen te komen met de rijkdom van Delphi (Size/Orientation/aangepaste breedte-hoogte/aantal/label/voortgang) - Het
FontTest-glyf-regressiegereedschap is verplaatst vanDemonaarTests\Delphi\FontTestenTests\C++Builder\FontTest, waarbij de rol als testgereedschap in plaats van functionele demo is verduidelijkt
Removed
- De puur redundante demo
TiffToPDFis verwijderd (Delphi en C++Builder); de mogelijkheid wordt volledig gedekt door het TIFF-conversiepad inConvertTo - De C++Builder-demo
CopyPagesis verwijderd; de mogelijkheid wordt volledig gedekt door de meer completePDFmerge - De demo
Loggeris verwijderd; het gebruik van de runtime-loggende facadeHPDFLogger/HPDFLogdat zij demonstreerde is gemigreerd naar de API-documentatieonderwerppaginaDocs/zh-cn/topics/HPDFLoggerFacade.html(de bibliotheek behoudt de unitHPDFLogger; alleen het demoproject is verwijderd)
Fixed
- Het algoritme voor het verwijderen van even pagina's in de voormalige
DelPages(nu samengevoegd inAddDelPages) is gecorrigeerd: de oorspronkelijke lus telde een statisch paginaantal tegen het krimpende document en verwijderde daadwerkelijk de indices 1..middenpunt in plaats van de echte even pagina's; nu loopt van de hoogste even pagina naar beneden en verwijdert 0-gebaseerde indices, en lost het lek van de globaleTHotPDF-variabele bij elke klik op
Version 2.234.1
Opgelost
- Opgelost
HPDFJBIG2Enc单元编译错误(E2003 Undeclared identifier: 'Invariant'):旧版 Delphi 的 RTL 没有TFormatSettings.Invariant,atof现改用与HPDFXFA.XFAInvariantFormatSettings一致的手动构造TFormatSettings,恢复 RAD Studio 12.0 Win64 构建
Version 2.234.0
Toegevoegd
- JBIG2 图像解码Toegevoegd高性能解码后端:加载侧图像提取(
ExtractLoadedImage等)默认启用该后端解码 PDF 内嵌的 JBIG2 图像 - Toegevoegd
THotPDF.UseExternalJBIG2Decoder属性(默认True):设为False即可切回原生 Pascal 解码器作为后备
Version 2.233.0
Toegevoegd
- JBIG2 图像编码Toegevoegd高性能编码后端:
AddImage以icJBIG2压缩黑白位图时默认启用该后端,产生更快且标准合规的算术编码 JBIG2 流 - Toegevoegd
THPDFJBIG2Options.UseExternalEncoder选项(默认True):设为False即可切回原生 Pascal MMR 编码器作为后备
Version 2.232.1
Opgelost
- Opgelost JBIG2 算术 generic-region 编码器(
HPDFJBIG2Codec)在高熵图像上的进位传播缺陷:MQ 算术编码器的字节输出(byte-out 与 0xFF 填充)遗漏了进位 spillover 位的清除,导致噪声、稀疏文档等高熵黑白位图被编码错误(规则的低熵图案恰好不触发,不受影响);同时将编码流终止符规范化为标准形式,确保第三方解码器可完整解析
Version 2.232.0
Toegevoegd
- JBIG2-decoderingsbackend (
HPDFJBIG2Codec) uitgebreid met ondersteuning voor rekenkundige (MQ) codering: afbeeldings-extractie aan de laadzijde (ExtractLoadedImage) kan nu rekenkundig gecodeerde JBIG2-afbeeldingen decoderen — rekenkundige generic region (GBTEMPLATE 0-3 + TPGDON), symboolwoordenboek en tekstgebieden; voorheen werd alleen MMR generic region ondersteund
Version 2.231.3
Toegevoegd
- 为 jbig2dec 参考解码器打开 PNG 输出支持:Toegevoegd
build-libpng-vc64.bat(用 MSVC 编译 libpng 1.8 的 16 个核心对象到Win64\libpng-*.obj,自动生成 zlib-ng 头并复用pnglibconf.h.prebuilt),改造build-jbig2dec-vc64.bat在检测到 libpng 对象时自动启用jbig2_image_png.c与HAVE_LIBPNG并链接 libpng + zlib-ng 对象,jbig2dec.exe现支持-t png输出,对annex-h.jbig2生成 64x56 1-bit grayscale PNG,SHA-1 与 PBM 输出一致
Version 2.231.2
Toegevoegd
- 为 vendored 的 jbig2dec 参考解码器(
Lib/thirdparty/jbig2dec)补齐 Windows 构建基础设施:Toegevoegdbuild-jbig2dec-bcc64x.bat(用 Embarcadero bcc64x 产 15 个 Delphi 可链接的 COFF64 对象,供未来HPDFJBIG2.pas通过{$L}消费)和build-jbig2dec-vc64.bat(用 MSVC 产独立的jbig2dec.exe命令行解码器),并Toegevoegdconfig_types.h.in模板与.gitignore,Opgelostmsvc.mak缺失的对象规则
Opgelost
- jbig2dec 上游源码在现代 Windows 工具链下的编译与可移植性问题:用干净的现代实现替换无法编译的 1990 年代 GNU getopt(
getopt.c/getopt.h,MSVC 因缺strings.h中止、bcc64x/C23 拒绝无原型声明);Opgelostjbig2dec.c::hash_image的 64 位size_t截断、jbig2_segment.c::jbig2_find_segment的uint32→int下溢、sha1.c::SHA1_Update的 64 位位计数,以及jbig2dec.c的fread返回值误用、%lu格式说明符与 POSIX 弃用警告。核心 JBIG2 解码算法保持上游原样
Version 2.231.1
Toegevoegd
- Afbeeldings-extractie aan de laadzijde (
ExtractLoadedImage) ondersteunt nu reeksen met meerdere filters: voorafgaande gegevensfilters zoals ASCIIHexDecode / ASCII85Decode / FlateDecode / LZWDecode / RunLengthDecode van de afbeelding worden in volgorde uitgepakt, waarna ze worden overgedragen aan het laatste afbeeldingsfilter (DCTDecode / JPXDecode of raster) voor decodering, bijvoorbeeld[/ASCII85Decode /FlateDecode]
Version 2.231.0
Toegevoegd
- Toegevoegd CCITT 传真解码后端(
HPDFCCITTDecode单元):实现 ITU-T T.4(G3)与 T.6(G4)一维 / 二维传真解码,使加载侧图像提取(ExtractLoadedImage)现可解码 CCITTFaxDecode 双色图像,遵循/DecodeParms的 K / Columns / Rows / BlackIs1 / EncodedByteAlign 参数
Version 2.230.2
Toegevoegd
- Afbeeldings-extractie aan de laadzijde (
ExtractLoadedImage) ondersteunt nu DeviceGray en Indexed rasters met 1 / 2 / 4 bits per component: pakt bitsgewijs uit en schaalt grijswaarden proportioneel naar 8 bits
Version 2.230.1
Toegevoegd
- Afbeeldings-extractie aan de laadzijde (
ExtractLoadedImage) ondersteunt nu DeviceCMYK-afbeeldingen: CMYK-rasters met 4 kanalen worden geconverteerd naar RGB-bitmaps volgens standaardformules
Version 2.230.0
Toegevoegd
- Toegevoegd JBIG2 解码后端(
HPDFJBIG2Codec单元):实现 ITU-T T.6(G4 / MMR)二维解码,激活原本休眠的THPDFJBIG2Decoder,使加载侧图像提取(ExtractLoadedImage)现可解码 JBIG2Decode 双色图像。支持 MMR 编码的 generic region(含/JBIG2Globals共享全局段);算术编码、符号字典、文本 / 半调区域暂不支持
Version 2.229.3
Toegevoegd
- Afbeeldings-extractie aan de laadzijde (
ExtractLoadedImage) ondersteunt nu geïndexeerde kleurafbeeldingen (Indexed): FlateDecode / LZWDecode rasters opgeslagen in de Indexed kleurruimte worden hersteld naar ware kleuren bitmaps door op te zoeken in het palet; ondersteunt DeviceRGB / DeviceGray / DeviceCMYK basiskleuren en hexadecimale of letterlijke opzoektabellen
Version 2.229.2
Toegevoegd
- Afbeeldings-extractie aan de laadzijde (
ExtractLoadedImage) ondersteunt nu JPXDecode (JPEG 2000) afbeeldingen: afbeelding XObjects gecodeerd met JPXDecode worden door de OpenJPEG backend teruggedecodeerd naar bitmaps;GetLoadedImageInforapporteertDecodable=Truevoor dergelijke afbeeldingen. JPEG 2000 afbeeldingen ingesloten in PDF's kunnen nu rechtstreeks worden geëxtraheerd als VCL-bitmaps, met verliesvrije JPEG 2000 round-trip die pixel-perfect is
Version 2.229.1
Toegevoegd
- Afbeeldings-extractie aan de laadzijde (
ExtractLoadedImage) ondersteunt nu DCTDecode (JPEG) afbeeldingen: afbeelding XObjects gecodeerd met DCTDecode worden doorTJPEGImageteruggedecodeerd naar bitmaps;GetLoadedImageInforapporteertDecodable=Truevoor dergelijke afbeeldingen
Version 2.229.0
新增
- 新增加载侧图像提取 API:
GetLoadedImageCount/GetLoadedImageInfo/ExtractLoadedImage,可枚举已加载 PDF 中的图像 XObject 并将其解码回 VCL 位图(TBitmap)。GetLoadedImageInfo通过THPDFLoadedImageInfo返回每张图像的尺寸、位深、颜色空间、过滤器与可解码标志,便于在提取前预检。本版可解码以 FlateDecode / LZWDecode / ASCIIHex / ASCII85 / RunLength 编码的 DeviceRGB 与 DeviceGray 8 位栅格;索引色、CMYK、DCTDecode(JPEG)与 JPXDecode(JPEG 2000)图像将在后续版本接入
Version 2.228.0
新增
- 新增
TJpeg2000Bitmap(TBitmap派生类):可直接读写 JPEG 2000 图像,LoadFromStream将 JP2 / J2K 解码为位图、SaveToStream将位图编码为 JPEG 2000 码流;支持无损(LosslessCompression)与有损质量(CompressionQuality)两种模式、灰度 / RGB / CMYK 通道,并附带低层解码器THPDFJpeg2000Decoder供自定义图像管线直接取用解码后的像素数据
修复
- 恢复 JPEG 2000(JPXDecode,PDF 1.7 ISO 32000-1 7.4.9)图像支持:此前解码后端因库源损坏退化为占位桩,无法解码任何 JP2 / J2K 码流;现重新接入 OpenJPEG 2.5.4 引擎,可将灰度、RGB 与 YCbCr 图像解码为 8 位样本(高位深分量重采样为 8 位、YCbCr 自动转 RGB、子采样分量按最近邻上采样),兼容带 JP2 box 头的文件与裸 J2K 码流
AddImage现可直接传入.jp2/.j2k/.jpt/.jpc文件并按所选压缩方式嵌入 PDF(自动识别格式),无需先行手工转码
Version 2.227.0
变更
- 将 GSUB/GPOS 上下文应用与 Mark 定位函数(37 个纯函数)从
HPDFDoc.pas追加提取到HPDFShaping.pas。这批函数覆盖 GSUB 上下文/链式上下文/反向链式替换、GPOS 上下文/链式上下文/嵌套定位、Mark-to-Base/Mark-to-Mark/Cursive/Mark-to-Ligature 定位、GDEF 类查找、Collect-GID 子集闭包等,全部接收TBytes表切片 + glyph ID 值参数,不触碰实例状态。HPDFDoc.pas本轮减约 11000 行(含被提取函数之间的 forward 声明和注释块),累计六轮拆分减约 21700 行(原文件的 26%)
Version 2.226.0
变更
- 将简单对象解析器(
ParseSimpleDictionary、ParseSimpleArray)从HPDFDoc.pas提取到新单元HPDFParser.pas。这两个 byte 级递归下降解析器从AnsiString内容构建THPDFDictionaryObject/THPDFArrayObject树,不触碰THotPDF实例状态;原方法保留为转发 stub,公开 API 不变。这是巨石拆分第五轮,本轮减约 2060 行,五轮累计减约 10700 行(原文件的 13%)
Version 2.225.0
变更
- 将 OpenType 整形原语(71 个纯函数)从
HPDFDoc.pas提取到新单元HPDFShaping.pas。这批函数覆盖 GSUB 覆盖表/查找/替换、GDEF 类查找、TTF 表读取器、脚本重排与整形(Arabic、Syriac、Indic 语系、Thai/Lao、Hebrew、Javanese 等),全部接收值参数(TBytes表切片、UnicodeStringrun、glyph ID)从不触碰THotPDF或THPDFPage实例。HPDFDoc.pas通过 implementation 段uses HPDFShaping访问,TGPOSValue/TGPOSValueArray类型一并迁移。这是巨石拆分第四轮,本轮减约 3000 行
Version 2.224.0
变更
- 将 Factur-X / ZUGFeRD / XMP 电子发票辅助函数(22 个 standalone 函数)从
HPDFDoc.pas提取到新单元HPDFFacturX.pas。这批函数覆盖 FX/Basic/Minimum/EN16931 合规验证、XMP 元数据生成、嵌入式 XML 解析,全部自包含(仅操作值参数与TBytes,不触碰THotPDF实例状态)。HPDFDoc.pas通过 implementation 段uses HPDFFacturX访问,公开 API 不变。这是HPDFDoc.pas巨石拆分的第三轮,累计三轮减约 5600 行
Version 2.223.0
变更
- 将 Direct File API 的底层 I/O helper(44 个共享函数)从
HPDFDoc.pas提取到新单元HPDFDirectFileIO.pas。这些 byte / xref / object-body / AES-crypt 读取函数被加载器和 Direct File 子系统共用,提取后两个子系统都通过uses HPDFDirectFileIO访问。HPDFDoc.pas因此再减少约 1640 行(累计两轮拆分减约 5200 行)。DA 专用类型(THPDFDirectReadBuffer、THPDFDirectWriteBuffer、THPDFDirectIntArray)和全局缓冲(GHPDFCopyBuffer)一并迁移到新单元
Version 2.222.0
变更
- 将预检(preflight)、合规检查、PDF/VT 验证相关代码从
HPDFDoc.pas提取到新单元HPDFPreflight.pas。原有 25 个公开方法(CreatePreflightReport、ValidatePDFVT、EmbedPreflightReportAsXMP等)签名完全不变,实现改为转发到新单元的自包含 standalone 函数;HPDFDoc.pas因此减少约 3500 行。新增 3 个只读访问器(LoadedObjectCount、GetLoadedObjectByIndex、LoadedRootObjectIndex)让独立单元可枚举已加载文档的对象图
Version 2.221.0
新增
- 全面支持多语言化:将
Readme.html提取至Docs/en-us目录,并新增其他 37 种语言的翻译版本;更新了安装程序脚本(HotPDF-FULL.iss、HotPDF-TRIAL.iss),现在会根据安装时所选的语言,自动提取并放置对应语言版本的Readme.html至安装根目录
Version 2.220.0
新增
- 新增统一运行期日志门面
THPDFLogger与全局实例HPDFLog:把原本散落的编译期调试开关统一为运行期可控的日志门面。提供 Error / Warning / Info / Debug 四级严重度过滤,可同时输出到文件、OutputDebugString(IDE Event Log 可见)和控制台;文件目标带 10 MB 单备份滚动;线程安全(TCriticalSection保护);关闭态热路径仅一次布尔判断即返回,发布版零开销。LoadFromFile、CreatePreflightReport和 xref-stream 解析 fallback 三处诊断点已接入,加载成功 / 失败、preflight 摘要、对象流回退等事件会在启用日志时写入结构化记录。取代改HotPDF.inc重编包的传统做法,用户可在运行期随时开关诊断输出
Version 2.219.0
新增
- 新增
THotPDF.GetGPOSSingleAdjustment(GID, FeatureTag, out XPlacement, YPlacement, XAdvance, YAdvance): Boolean:OpenType GPOS LookupType 1 Single Adjustment 的独立公开查询。按任意 4 字节 feature tag(典型'size'光学尺寸 /'vhal'半高度)收集 GPOS lookup,解包 Extension(Type 9)后对 LookupType 1 子表应用已有的_GPOSApplySingle,返回单字形的 XPlacement / YPlacement / XAdvance / YAdvance 调整(1000-em,含正负号)。至此 GPOS 9 个 LookupType 全部 spec-complete——binary applier 早被 contextual kern 嵌套消费,本版补齐 standalone 查询入口填掉 spec matrix 里最后一条 GPOS gap
Version 2.218.1
新增
- 新增
THPDFPage.GetWideCharAdvances(Text, out TotalWidth, out Advances):一次性返回 Unicode 文本的总宽和每字形自然 advance(含 kerning)。底层用 GDIGetTextExtentExPointW一次调用同时拿总宽 + 累积宽度数组,差分后得到每字形 advance。调用方需预先SetLength(Advances, Length(Text))。可用于自定义排版、表格列宽计算、签名块布局等需要全部字形宽度的一次性场景
变更
- 优化
jtJustify两端对齐性能:v2.218.0 的_HPDFEmitJustifiedWideLine对每行做 N+1 次GetWideTextWidth(总宽 1 次 + 前缀差值 N 次,每次都是完整 GDI 往返)。改为一次GetWideCharAdvances调用,每行 GDI 往返从 N+1 次降到 1 次。典型 A4 整页 justify(45 行 × 80 字符)从约 3645 次 GDI 往返降到 45 次,约 80 倍提升。justify 视觉输出不变(同一度量引擎,含相同 kerning)
Version 2.218.0
新增
- 新增
jtJustify两端对齐模式(THPDFJustificationType枚举第四值):传入WideTextOutBox后,每行(除末行)的自然宽度与框宽之间的差额会分摊到行内的可拉伸间隙,使文本左右两边都对齐到框边。Latin 文本在词间空格分摊;CJK 文本(Han / 假名 / 韩文等无词间空格的脚本)在任意相邻字形间均等分摊(日式排版均等割付)。末行及已达到 / 超过框宽的行保持自然左对齐宽度。底层用 v2.215.0 的ExtTextOutTJ 数组 emit,测量用 v2.216.0 的GetWideTextWidth
Version 2.217.0
新增
- 新增
THPDFPage.WideTextOutBox:Unicode 多行自动换行。镜像TextOutBox的契约(返回放入框内的 WideChar 数),但用GetWideTextWidth测量、按 WideChar 索引切分。换行规则支持两种脚本:CJK(Han / 假名 / 韩文 / CJK 标点 / 全角)在任意两个字形间断行(CJK 无词间空格的标准行为);Latin 及其他脚本在最后一个空格 / Tab 处断词,无空格时硬断。硬换行(CR / LF / CRLF)照原样执行。修复TextOutBox(AnsiString)对中文 / 日文 / 韩文 / 代理对文本逐字节切分导致乱码换行的问题
Version 2.216.0
新增
- 新增
THPDFPage.GetWideTextWidth(Text: WideString): Single:Unicode 文本宽度测量。现有TextWidth(AnsiString)先把 WideString 收窄成 AnsiString 再查 0–255 ABC 宽度表,对 CJK / 代理对 / 多字节文本测出无意义的值;新方法用 GDIGetTextExtentPoint32W(lfHeight = -1000)按当前字体整串测量,返回用户空间点宽(与TextWidth同坐标系,可直接做布局预算)。同_XFAMeasureTextImpl的测量策略 - 新增
THPDFPage.GetWideTextRowCount(BoxWidth: Integer; Text: WideString): Integer:Unicode 行数预测,镜像GetTextRowCount的 AnsiString 契约,基于GetWideTextWidth让 CJK / 代理对文本正确换行计数
Version 2.215.0
新增
- 新增
THPDFPage.ExtTextOut(三个重载:PWORD/WideString/AnsiString):GDIExtTextOut风格的扩展文本输出,接受每字形水平位移数组Dx,emit 单个[<hex> <num> ...] TJ数组,让调用方精确控制每个字形原点——用于表格数字对齐、手动字距、两端对齐、表单值填充和签名块排版。复用现有_GPOSEmitPositionedRunTJ emit 器与_GPOSGlyphAdvance1000hmtx 读取,Dx为 PDF 用户空间点(与TextOut的 X/Y 同坐标系);当Dx值等于字形自然 advance 时 TJ 调整数归零,可在一次调用内混排自然与覆盖字形。仅支持简单 LTR 文本,RTL bidi 重排与 producer-side shaping 被旁路
Version 2.214.0
新增
- 新增
THPDFPage.AttachSignatureFieldAppearance:给已通过AddSignatureField/AddSignedSignatureField/AddPAdESSignatureField创建的签名字段挂上可见外观/AP /NForm XObject,并返回 Form 让调用方在 widget 本地坐标系内绘制签名图片、签名者姓名、日期或原因文字;内置薄边框加浅灰底色作为默认的“在此签名”占位外观 - 新增
HPDFNormalizeRect工具函数(三个重载:TRect/THPDFRectangle/ 四个Extended变参):把矩形角点重排为Left<=Right、Top<=Bottom,让鼠标拖框等无序输入可安全传给绘图 API - 把
THPDFPage.RotateCoordinate从 protected 提到 public:外部调用方现在可直接复用与RectangleRotate相同的旋转约定,计算旋转矩形角点、多边形顶点或文字包围盒
Version 2.213.0
新增
- 新增
THPDFPage几何便利方法套件:Arc角度定义弧、Pie角度定义扇形、Chord弓形、ArcTo中心加半径加扫角弧、Polyline折线、Polygon多边形、PolyBezier三次贝塞尔样条。所有方法都复用已有的MoveTo/LineTo/CurveToC/CurveArc底层路径原语,对齐 GDITCanvas角度与点数组语义,让画弧、扇形、折线和样条曲线不必再手写操作符循环
Version 2.212.0
Nieuw
- Nieuw is
THPDFPage.SetAnnotationJavaScriptAction: voor gewone annotaties kunnen nu via/AAJavaScript action-scripts worden ingesteld voor mouse-enter, mouse-leave, mouse-down, mouse-up, focus en blur, wat handig is voor het toevoegen van interactieve scripts in annotatie-, link- en ondersteunende stromen voor de weergave van formulieren
Version 2.211.0
Nieuw
- Nieuw is
THPDFDocOutlineObject.SetURIAction: outline-nodes die doorOutlineRoot.AddChildworden geretourneerd, kunnen nu worden omgeschakeld van de standaard in-page/Destnaar een/S /URIaction, wat handig is om in het bladwijzerpaneel rechtstreeks links naar externe hulp, ondersteuningsportalen of gerelateerde bronnen aan te bieden
Version 2.210.0
Nieuw
- Nieuw is
THotPDF.AutoCreateURL: indien ingeschakeld kanTHPDFPage.TextOutvoor enkele horizontale regels de URL-tekstenhttp://,https://,mailto:enwww.automatisch als/S /URIlink-annotaties uitschrijven, wat handig is om direct klikbare links te genereren in rapporten, inhoudsopgaven en contactinformatiepagina's
Version 2.209.0
Nieuw
- Nieuw zijn
THotPDF.SetOpenNamedDestinationActionenTHotPDF.ClearOpenNamedDestinationAction: de/OpenActionin de document Catalog kan nu worden ingesteld om te navigeren naar een benoemd doel dat is geregistreerd viaTHotPDF.RegisterNamedDestination, wat handig is voor omslagen, inhoudsopgaven of documenten waarvan de generatievolgorde verandert, om bij het openen naar een stabiel hoofdstukingangspunt te verwijzen
Version 2.208.0
Nieuw
- Nieuw is
THPDFPage.AddPushButtonWithNextAction: aan de hoofdactie van een knop kan nu een tweede PDF action worden gekoppeld via/Next, wat handig is voor interactieve formulierstromen, zoals het opeenvolgend uitvoeren van/ResetFormen het vervolgens weergeven van velden, of het verbergen van velden voordat een benoemde actie in één enkele klik wordt uitgevoerd
Version 2.207.0
Nieuw
- Verbetering van
THotPDF.RegisterOptionalContentGroup: de parameterUserToggleAllowedis toegevoegd, waarmee de opgegeven optionele inhoudsgroep naar/OCProperties /D /Lockedkan worden geschreven terwijl de standaard zichtbaarheidsstatus behouden blijft, wat handig is voor inhoud in kaarten, technische tekeningen en meertalige lagen die niet door de viewer-gebruiker mag worden in- of uitgeschakeld
Version 2.206.0
Nieuw
- Nieuw is
THPDFPage.AddNamedDestinationLink: paginalinks kunnen nu rechtstreeks verwijzen naar benoemde doelen die zijn geregistreerd metTHotPDF.RegisterNamedDestination, waarbij een lokale/S /GoToaction en de string/Ddoelnaam worden uitgevoerd, wat handig is voor het behouden van stabiele navigatie in inhoudsopgaven, kruisverwijzingen en documenten waarvan de paginanummers kunnen veranderen
Version 2.205.0
Nieuw
- Nieuw zijn
THotPDF.JBIG2OptionsenTHPDFJBIG2Options:AddImage(..., icJBIG2)geeft nu de op documentniveau ingestelde coderingsintentiesLossless,LossyLevelenUseSymbolDictionarydoor aan de geregistreerde JBIG2 encoder backend; de standaardwaarde behoudt het bestaande verliesvrije MMR-uitvoerpad en verliesgevende instellingen worden nog steeds geweigerd wanneer er geen backend is geregistreerd
Version 2.204.0
Nieuw
- Nieuw zijn
THotPDF.EmfOptionsenTHPDFEmfOptions: de verbeterde EMF/WMF-import kan nu per document worden geconfigureerd voor fit-verhoudingen, EMF-bitmaprenderingsschaal, WMF-bitmaprenderingsschaal, compressiemethode voor kleurenbitmaps en compressiemethode voor 1-bit bitmaps; de standaardwaarden behouden het bestaande uitvoergedrag, en bellers kunnen EMF-kleurenbitmaps overschakelen naaricFlateof de standaardwaardeicJpegbehouden
Version 2.203.0
Nieuw
TfrxHotPDFExportvoegt de eigenschapExportModeen de enumeratieTfrxHotPDFExportModetoe: de standaardwaardehemPageMetafilebehoudt het oorspronkelijke exportgedrag voor het voorbeeld van de hele pagina, terwijlhemObjectCanvasFastReport in staat stelt omTfrxView-objecten een voor een te tekenen tijdens deExportObject-doorloop, waarna HotPDF het metabestand van de huidige pagina importeert, wat handig is voor FastReport-integratiescenario's die controle over de exportvolgorde op objectniveau vereisen
Version 2.202.0
Nieuw
- Nieuw is de native JBIG2 monochrome afbeeldingsuitvoer:
THPDFImageCompressionTypebevat nuicJBIG2, enAddImageenAddImage(FileName)kunnen een 1-bit bitmap wegschrijven als een PDF 1.4+/JBIG2Decodeafbeeldingsstream; wanneer er geen externe encoder backend is geregistreerd, wordt het ingebouwde verliesvrije MMR generic region-pad gebruikt, waarbij het uitbreidingsmechanisme dat geregistreerde backends prioriteit geeft behouden blijft
Version 2.201.0
Nieuw
- Nieuw zijn de JBIG2 backend-bridge en de native
TDBGridPDF-exportadapter: deze maken nuRegisterJBIG2DecoderBackend,RegisterJBIG2EncoderBackend, capaciteitsdetectie en encoder/decoder delegaatklassen openbaar en retourneren nog steeds explicietFalseals er geen productieklasse-backend is geregistreerd;DBGridHotPDFExportkan de zichtbare kolommen van de VCLTDBGridof de zichtbare velden van de dataset als gepagineerde tabel uitvoeren naar een file of stream, en herstelt na het exporteren de oorspronkelijke dataset bookmark
Version 2.200.4
Fixed
- De E-Invoice-demo voegt nu ChargeTotalAmount en AllowanceTotalAmount toe aan de koptekstsamenvatting voor het ZUGFeRD 1.0 COMFORT-profiel: het ZUGFeRD 1.0 COMFORT-schema vereist dat elk bedragselement exact één keer voorkomt, en ontbrekende elementen zorgden ervoor dat de factuurgegevens niet door de validatie van ZUGFeRD/Factur-X-bedrijfsregels kwamen
Version 2.200.3
Added
- De E-Invoice-demo bevat nu de profielen ZUGFeRD 1.0 COMFORT en ZUGFeRD 2.0 BASIC: het eerste genereert factuur-XML voor het verouderde CrossIndustryDocument 1p0-schema, terwijl het tweede het CrossIndustryInvoice 100-schema en zugferd-invoice.xml gebruikt; beide slagen voor de ingebouwde Factur-X/ZUGFeRD-validatie
- De E-Invoice-demo bevat nu een selector voor het PDF/A-conformiteitsniveau, zodat de generatie het standaardniveau van het profiel kan overschrijven met PDF/A-3b of PDF/A-3u
Version 2.200.2
Fixed
- Preflight-rapporten markeren nu niet-PDF-invoer zonder PDF-header als mislukt voor laadbare pagina's, in plaats van een fallback-paginatelling van de loader te accepteren
Version 2.200.1
Fixed
- ZUGFeRD- en Factur-X-validatie decodeert nu met Flate gecomprimeerde ingebedde factuur-XML en XMP-metadata uit geladen PDF's, herkent PDF/A-identificaties in attribuutstijl en accepteert XRECHNUNG-factuur-XML-bestanden die
/AFRelationship /Sourcegebruiken
Version 2.200.0
Added
- Geladen Factur-X en ZUGFeRD hybride facturen kunnen nu worden gecontroleerd met een gestructureerd validatierapport dat PDF/A-3 metadata, Catalogus
/AF-registratie, EmbeddedFiles naamboomregistratie, XMP-bestandsnaamconsistentie, profielbestandsnaamregels,/AFRelationship-regels en XML-richtlijnen uitlijning identificeert
Version 2.199.0
Added
- Geladen PDF/A-3 hybride factuurbestanden kunnen nu worden geïnspecteerd met Factur-X en ZUGFeRD reader API's die de geladen catalogus, EmbeddedFiles-vermeldingen, ingebedde XML-bytes, document XMP-metadata, gedetecteerde factuurprofielgegevens en factuur-XML-extractie blootleggen
Version 2.198.1
Added
- Factur-X PDF/A-3 workflows stellen nu
FacturXWarningsbloot, zodat aanroepers extra ondersteunende bijlagen kunnen detecteren waarvan de MIME-typen buiten de aanbevolen PDF-, tekst-, afbeelding-, CSV-, XML-, JSON-, spreadsheet- en ODS-ondersteunende documentformaten vallen, zonder de bijlage te weigeren
Version 2.198.0
Added
- PDF/A-3 Factur-X factuurinbedding accepteert nu de Franse
EXTENDED-CTC-FRenEXTENDED-B2B-FRconformiteitsniveaus en valideert ze tegen de Factur-X 1.09 EXTENDED richtlijnidentificatie voordat de hybride factuurmetadata worden geschreven
Version 2.197.18
Fixed
- PDF/A-3 Factur-X validatie behandelt
COMFORTnu als een ZUGFeRD 1.0-only profielnaam en weigert de huidigefactur-x.xmlcontainers voordat ze niet-overeenkomende hybride factuurmetadata kunnen schrijven
Version 2.197.17
Fixed
- PDF/A-3 ZUGFeRD 2.0 metadata schrijft nu de legacy
urn:zugferd:pdfa:CrossIndustryDocument:invoice:1p0#PDF/A extensie namespace met behoud vanzf:Versionals2p0, passend bij de validatieregels voor hybride facturen voordat de container definitief wordt gemaakt
Version 2.197.16
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
MINIMUMandBASIC WLGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenAFRelationshipData, enforcesAlternativeGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenXRECHNUNGGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.15
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Versionvalues1.2,2.0,2.1,2.2,2.3, and3.0Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.14
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
EN16931Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenEN 16931, matching current sample metadata while preserving existingEN 16931calls
Version 2.197.13
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
urn:factur-x.eu:1p0:basicandurn:factur-x.eu:1p0:extendedGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenBASICandEXTENDEDGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.12
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
ZUGFeRD-invoice.xmlfilename,COMFORTprofile,urn:ferd:pdfa:CrossIndustryDocument:invoice:1p0#Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenurn:ferd:CrossIndustryDocument:invoice:1p0Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.11
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
zugferd-invoice.xmlfilename withVersion2p0Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenurn:zugferd.de:2p0Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.10
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
fx:Versionas3.0while keeping ordinary Factur-X metadata at1.0Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.9
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
ConformanceLevelGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.8
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
signature-time-stampGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.7
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
signature-policy-identifierGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.6
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
ReasonGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/ReasonGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolensignature-policy-identifierGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.5
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
CountryCodepolicy so current German ZUGFeRD invoices rejectMINIMUMandBASIC WL, enforceAlternativeGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenXRECHNUNGGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.4
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
CountryCodepolicy so German ZUGFeRD invoices can enforceAlternativeGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenXRECHNUNGGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.3
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
xrechnung.xmlGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenXRECHNUNG,factur-x.xmlGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.2
Toegevoegd
- PDF/A-3:
THotPDF.AddFacturXAssociatedFileGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenfactur-x.xmlorxrechnung.xmlin Catalog/AFand/Names/EmbeddedFilesGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Gewijzigd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
/ModDateand raw MD5/CheckSumGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/ParamsGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.1
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
UseXRefStream/UseObjectStreamsGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.197.0
Gewijzigd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
/CIDToGIDMapGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen/CIDSetGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.196.8
Fixed
- PDF/A-1 Info dictionary and XMP metadata equivalence werkt nu correct en voorkomt de eerdere ongeldige of niet-conforme uitvoer
Version 2.196.7
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.196.6
Fixed
- PDF/A markup-annotation print flags and appearance streams werkt nu correct en voorkomt de eerdere ongeldige of niet-conforme uitvoer
- PDF/A rejection for non-standard named actions on form push buttons werkt nu correct en voorkomt de eerdere ongeldige of niet-conforme uitvoer
Version 2.196.5
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.196.4
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.196.3
Added
- graceful XFA calculate evaluation for unsupported FormCalc constructs is nu beschikbaar, terwijl bestaande uitvoer ongewijzigd blijft tenzij de toepassing deze mogelijkheid gebruikt
Version 2.196.2
Added
- XFA calculate evaluation for
.rawValue,Sum(arr[*].field), and JavaScriptthis.rawValueis nu beschikbaar, terwijl bestaande uitvoer ongewijzigd blijft tenzij de toepassing deze mogelijkheid gebruikt
Version 2.196.1
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
+ - * /Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.196.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
<calculate>Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.195.0
Toegevoegd
- XFA
<exData>Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen<a href>Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen - XFA flatten: exData rich text degraded-markup handling — unsupported inline tags (
<b>,<em>Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen - Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
<exData contentType="text/html">Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.193.0
Toegevoegd
- XFA
<exData>Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen<p>Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen - Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
text-alignproperty on<p>:centerandrightGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolenjustifyGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen - Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
margin-top,margin-bottom,space-before, andspace-afterin the<p>style attribute, giving control over vertical gaps between paragraphs
Version 2.192.0
Added
- Bij het flattenen van een XFA
<exData>-rich-text draw worden nu meerdere<span>-runs uit één alinea naast elkaar geplaatst, waarbij elke run zijn eigen inline CSS behoudt, met vet, cursief, kleur en lettergrootte, terwijl de vorige stap alleen de eerste span weergeeft - Elke run wordt geplaatst op basis van zijn gemeten breedte, zodat de spans met verschillende stijlen zonder overlap van links naar rechts over de regel stromen
- Stapelende alinea's met tekstuitlijning en klikbare links volgen in latere updates
Version 2.191.0
Added
- Bij het flattenen van een XFA-formulier wordt een
<exData>-rich-textwaarde (eentext/html-draw) nu weergegeven als een gestileerde tekst-run in plaats van overgeslagen, waarbij inline CSS op de span vet, cursief, kleur en lettergrootte instelt - Deze eerste stap behandelt één gestileerde run, dus één alinea en één span; meerdere spans, alinea-uitlijning en klikbare links volgen in latere updates
Version 2.190.43
Fixed
- De object-stream herstelfallback vindt een lid nu op zijn positie in de stream in plaats van die positie als PDF-objectnummer te behandelen, zodat de fallback nu data retourneert in plaats van consequent leeg terug te komen
- Die fallback labelt niet langer elk hersteld object als pagina — alleen een object waarvan de ruwe data een pagina declareren wordt als zodanig getypeerd, waardoor niet-gerelateerde object-stream leden het pagina-aantal niet meer ophogen — en een object dat na een parsefout in de indirect-objectlijst achterblijft wordt nu verwijderd vóór het vrijgegeven wordt
Version 2.190.42
Security
- Het importeren van een PKCS#12 (.pfx/.p12) sleutellijstbestand wijst nu een PBKDF2-iteratieaantal buiten bereik af in plaats van het naar een 32-bit veld bij te kappen; een gekraakt bestand kan niet meer miljarden sleutelafleidingsrondes (een denial of service) opvragen of de teller naar een onverwachte waarde laten lopen
Version 2.190.41
Fixed
- Het herstellen van een beschadigde gecomprimeerde stream accepteert niet langer een gedeeltelijk gedecomprimeerd resultaat als succes bij gedeeltelijke datacorruptie; de afgekorte output wordt weggegooid en de volgende decompressieconfiguratie geprobeerd, zodat aanroepen volledige data of een nette fout krijgen
Version 2.190.40
Fixed
- Het kopiëren van een pagina met meerdere graphics-state (ExtGState) bronnen koppelt deze niet meer allemaal aan één naam en verwijdert niet meer alles behalve één; elke gekopieerde state krijgt nu een eigen naam
Version 2.190.39
Fixed
- Het toevoegen van een hyperlink aan een geladen pagina waarvan de bestaande
/Annotsentry een dangling reference of geen array is veroorzaakt niet meer een crash; in dat geval wordt nu een verse annotatie-array geïnstalleerd in plaats van de onbruikbare waarde te casten
Version 2.190.38
Fixed
- Het splitsen of extraheren van pagina's kent geen vaste sample dimensies meer toe aan een image die
/Widthof/Heightmist, waardoor documenten vroeger met een vaste grootte werden bestempeld ; een ontbrekende dimensie blijft nu ongemoeid - Content-stream selectie tijdens paginavervolg geeft geen vaste bonus meer aan object nummer 192, wat stream scoring voor documenten met dat objectnummer eerder vertekende
Version 2.190.37
Fixed
- Reparatie van een pagina die tijdens kopie of split verwijst naar een ontbrekend image (XObject) of graphics-state (ExtGState) bron lost nu het bronobject op via het objectnummer in plaats van het nummer als lijstpositie te behandelen, zodat het juiste object — of geen — wordt gekopieerd en een mislukte kopie niet meer naar nil derefereert
Version 2.190.36
Fixed
- Bewerken en opnieuw opslaan van een pagina waarvan content over meerdere content streams is verdeeld rendert de eerdere streams niet meer dubbel — het samengevoegde resultaat blijft in één stream, de overige worden geleegd, en streams worden samengevoegd met whitespace zodat aangrenzende tokens niet versmelten tot een ongeldig token (ISO 32000-1 §7.8.2)
- Een pagina met een
/XObjectbron maar zonder/Fontbron laat niet langer de fontnamen van de vorige pagina staan; de fontnaamlijst wordt nu gereset in plaats van de imagenaamlijst
Version 2.190.35
Fixed
- Een subset van een ingesloten TrueType font met corrupte glyph-location (
loca) tabel leest niet meer buiten grenzen — een omgekeerd of buiten-bereik offset-paar wordt nu overgeslagen in plaats van te onderlopen naar een enorme kopieerlengte, en de horizontal-metrics tabel (hmtx) wordt op grenzen gecontroleerd voor kopiëren
Version 2.190.34
Fixed
- Het kopiëren van documentmetadata (pagina labels en benoemde bestemmingen) naar een document dat deze entries al heeft lekt niet langer oude waardes, entries worden nu door dictionary eigen replace pad vervangen i.p.v. losgekoppeld zonder vrijgave
Version 2.190.33
Fixed
- Het laden van bepaalde PDF 1.6 documenten waarvan pagina's uit object streams worden gereconstrueerd deelt dictionary waardes niet meer tussen twee pagina objecten, waardoor hetzelfde object bij vrijgave dubbel vrijgegeven kon worden; waardes worden nu diep gekopieerd
Version 2.190.32
Fixed
- Het scannen van paginacontent om eenvoudige tekst te detecteren geeft geen range error meer op een content regel die leeg is na trim of geen sluitende haakje heeft ; de controle behandelt nu de lege case en begrenst scan tot de string lengte
Version 2.190.31
Fixed
- Tekst renderen met codepoint U+FFFF schrijft geen glyf meer buiten het einde van een interne glyph tabel ; de tabel groeit indien nodig voor de glyph entry wordt opgeslagen
Version 2.190.30
Fixed
BeginParagraphwijst nu een alinea-index van 0 af i.p.v. vóór het begin van de array te lezen, en release een lopende alinea zodat herhaalde aanroepen niet meer lekkenEndParagraphwist nu zijn referentie na vrijgave van de huidige alinea, zodat een tweede aanroep niet meer hetzelfde object twee keer vrijgeeft
Version 2.190.29
Security
- AES initialisatievectoren en sleutels worden niet meer gegenereerd uit een voorspelbare, niet-cryptografische fallback als de system random source tijdelijk niet beschikbaar is; de library weigert nu te encrypten in plaats van een zwakke, te raden IV of sleutel te produceren
Fixed
- Het berekenen van een MD5 digest van een lege string dereferenceert niet meer een ongeldige pointer
Version 2.190.28
Fixed
- Het renderen van EMF metafiles met
PolyDrawrecords past nu elke punt zijn eigen type vlag toe in plaats van het volgende punts vlag te lezen — en voor 16-bit variant niet meer de eerste punt vlag voor ieder punt opnieuw gebruiken — dus lijn, curve, en sluiting worden correct getekend en parser leest niet meer voorbij het einde van punt array
Version 2.190.27
Fixed
- Een
LZWDecodestream met TIFF Predictor 2 en nulColumnsofColorsin decode parameters decodeert niet meer division-by-zero ; de predictor stap wordt overgeslagen wanneer die waarden niet bruikbaar zijn - De een-argument LZW decoder initialiseert nu volledig zijn decode parameters, en verwijdert afhankelijkheid van ongeïnitialiseerde stack waardes
Version 2.190.26
Fixed
- Code 93 controlekarakter berekening reset niet meer de verkeerde gewichtsteller, dus data langer dan 14 tekens geeft nu correcte controle symbolen
- Code 128 set B codeert nu kleine letter
icorrect i.p.v. een spatie, dat eerder symbool en checksum vervuilde - MSI barcode controlecijfer berekening gebruikt nu de numerieke waarde van elke digit in plaats van char code, passend bij MSI readers
- Barcodes met brede module width overflowen niet meer interne teller, die negatief of vermengd bar widths kon geven
- Het tekenen van barcode met ongeldige data lekt niet meer opgeslagen font, pen en brush objecten
- De standalone
DrawTextroutine herstelt nu het canvas font dat werkelijk is opgeslagen, in plaats van de caller font naar een leeg default terug te zetten
Version 2.190.25
Fixed
- Het decoderen van een afgekorte of malformede
ASCIIHexDecode,ASCII85Decode, ofRunLengthDecodestream zonder end-of-data marker loopt niet meer eeuwig vast en verbruikt niet meer geheugen — decoders stoppen nu wanneer input uitgeput is i.p.v. een stale byte opnieuw te verwerken - De
ASCIIHexDecodefilter verwerpt nu opnieuw illegale hexadecimale karakters ; een operator-precedence fout liet eerder out-of-range bytes door controle glippen
Version 2.190.24
Fixed
- Het kopiëren of samenvoegen van objecten met geneste dictionaries die tijdens document recovery worden gereconstrueerd corrumpeert niet meer de dictionary of lekt geheugen — de routine bewaarde objectinstanties in slots met interne item records, en verworpen entries zonder release ; vervangen en verwijderen werken nu correct op item records
Version 2.190.23
Fixed
- Een Type 0 (CID) font insluiten behoud nu zijn
/ToUnicodemap ook wanneer compressie van character map geen output geeft ; het vorige fallback pad had registratie overgeslagen, waardoor tekst in die font niet te kopiëren of extraheren was, en werkstreams konden tweemaal vrijgegeven worden ; de map wordt nu altijd opgeslagen, ongecomprimeerd indien nodig, en elke stream exact één keer vrijgegeven
Version 2.190.22
Fixed
- Een cross-reference tabel die objecten met generatie-nummer 10 of hoger refereert — veelvoorkomend in PDFs met vele incrementele updates — schrijft niet meer buiten de interne duplicate detection table ; zulke entries worden nu geaccepteerd zonder de-duplication i.p.v. heap corruptie, en een malformeerde entry met objectnummer nul wordt overgeslagen i.p.v. indexen vóór begin van de tabel
Version 2.190.21
Fixed
- Het doorgeven van een fontnaam van 32 tekens of meer aan
SetFontschrijft niet meer over het vaste face-name veld in de interne font struct ; de naam wordt nu gekopieerd met dezelfde lengte-beperkte routine die al bestaat om geïnstalleerde fonts te peilen, zodat overlang gezicht-naam veilig getrimd wordt i.p.v. stack corruptie
Version 2.190.20
Fixed
- Toevoegen van een niet-monochrome afbeelding met CCITT Group 3/4 compressie, of als 1-bit masker, corrumpeert niet meer de heap — de image builder had voorheen zijn stream vrijgegeven en de conversiefout op foutpad geabsorbeerd, waardoor destructor dezelfde stream nog eens vrijgaf; fout wordt nu doorgegeven zodat image object bouw foutloos faalt
- Het opbouwen van lookup table kleur voor een 8-bit geïndexeerde afbeelding vraagt niet meer één palette item meer dan lookup buffer aan kan bevatten, waardoor een out-of-bounds write bij een bronbitmap met volledige 256 palette verdwijnt
Version 2.190.19
Security
- Decoderen van een
ASCII85Decodestream met all-zeros afkortingzschrijft niet meer voorbij decode buffer — output buffer is nu groot genoeg voor maximale expansie, waardoor heap overflow die een gemanipuleerd PDF stream kon triggeren is hersteld
Version 2.190.18
Security
- Het importeren van een malformeerde PKCS#12 (.pfx/.p12) referentie of certificaat tijdens digitale ondertekening leest niet meer voorbij einde van zijn buffer — een overgrote ASN.1 lengte-veld dat eerder grenzen controle passeerde wordt nu geweigerd, zodat onbetrouwbaar ondertekenmateriaal geen out-of-bounds read meer kan triggeren
Version 2.190.17
Added
- De standaard document loader leest nu hybrid-reference PDF's — bestanden waarvan het cross-reference trailer een
/XRefStmzijsectie draagt, zoals geproduceerd door veel office exporters — zodatLoadFromFilede objecten laadt die deze bestanden in gecomprimeerde object streams bewaren in plaats van slechts een gedeeltelijk document te zien - Cross-reference streams en object streams zonder compressiefilter laden nu correct; ISO 32000-1 staat afwezigheid van
/Filtertoe
Fixed
- Een hybride-reference document met AES-256 bescherming opnieuw opslaan —
ActivateProtectionplusSaveLoadedDocument, ofEncryptFile— faalt niet meer met lijst-index fout, en de versleutelde output behoudt elk object van het bronbestand
Version 2.190.16
Changed
- Het vinden van de objectheader en het
stream-woord tijdens Direct File API-omschrijvingen scant het voorbeeld van elk object niet langer opnieuw vanaf het begin of dupliceert het voor een nieuwe poging, waardoor AES-256-versleuteling van een benchmarkdocument van 2 GB met 1,67 miljoen objecten ongeveer 2,3 keer sneller is (49 naar 14 seconden), ontsleutelen ongeveer 2,7 keer sneller (43 naar 16 seconden) en een volledige directe herschrijving daalt van ongeveer 10 naar 6 seconden
Version 2.190.15
Fixed
LoadFromFileenLoadFromStreamstoppen niet langer voor de parsing begint wanneer er bytes staan voor de%PDF-header, zodat PDF's opgeslagen in HTTP- of Signed HTTP Exchange (SXG)-omslagen, mail captures en vergelijkbare containers de fallback herstelschema's voor documenten bereiken in plaats van te stoppen met een versieconversiefout- Het herstel laden van documenten met onbruikbare cross-referencegegevens gebruikt nu de pagina telling uit de actieve pagina-boom in plaats van elk pagina-achtig object in het bestand te tellen, waardoor een pagina die door een incrementele update is verwijderd niet meer wordt hersteld en het gemelde aantal overeenkomt met andere lezers
- Wanneer een beschadigd document door scannen is hersteld, krijgen objectrevisies die later in het bestand zijn geschreven nu voorrang boven oudere revisies van hetzelfde objectnummer, conform de semantiek van incrementele updates
Version 2.190.14
Added
- De Direct File API leest nu hybride-referentie-PDF's waarvan de cross-reference tabel een
/XRefStm-nevensectie bevat, zoals geproduceerd door veelvoorkomende office-exporteurs, zodat directe open, copy, rewrite en AES-256-versleuteling de gecomprimeerde objecten die deze bestanden in objectstromen bewaren nu ziet in plaats van ze te verliezen
Fixed
- Objecten die zijn vrijgegeven door een nieuwere revisie van een incrementeel bijgewerkt PDF met een traditionele cross-reference tabel kunnen niet meer uit een oudere revisie worden hersteld tijdens een directe rewrite
- Vrije cross-reference-ingangen vormen niet meer onjuiste objectgrenzen meer, waardoor objecten dichtbij het begin van een bestand niet meer werden afgekapt bij directe herschrijfacties van documenten met hergebruikte objectnummers
Version 2.190.13
Changed
- Het openen van PDF's waarvan de documentcatalogus in een gecomprimeerde objectstroom zit met
DAOpenFileReadOnlyofDACopyFilevalt niet meer terug op een volledige documentlaadstap om het pagina-aantal te bepalen: op een 1,25 GB benchmarkbestand daalde directe opening van ongeveer 0,9 seconden naar enkele milliseconden, en lichte kopie bijna gehalveerd
Fixed
- De Direct File API volgt nu de
/Prev-keten van de cross-reference stream, waardoor incrementeel bijgewerkte PDF's alle objecten tonen aan directe open, copy, rewrite en AES-256-versleuteling in plaats van alleen de nieuwste revisie - Objecten die door een nieuwere revisie van een incrementeel bijgewerkt PDF zijn vrijgegeven kunnen niet meer uit een oudere cross-reference sectie worden hersteld tijdens een directe rewrite
Version 2.190.12
Changed
- De Direct File API herschrijfpaden
EncryptFile,DecryptFileenDASaveAsFilena documentwijzigingen lezen nu de bron via een schuivend venster en voegen uitvoerschrijfacties samen, waardoor het verwerken van zeer grote PDF's met miljoenen objecten meerdere malen sneller verloopt: in benchmarks van een 2 GB document daalde AES-256-versleuteling van ongeveer 153 naar 49 seconden, ontsleutelen van ongeveer 121 naar 43 seconden en een volledige directe rewrite van ongeveer 48 naar 10 seconden - Objectlichamen die al in geheugen aanwezig zijn worden niet meer nogmaals vanaf schijf opgehaald tijdens een directe rewrite waarbij ze naar het uitvoerbestand worden gekopieerd
- Resolutie van indirecte
/Length-referenties tijdens een directe AES-256 rewrite opent de bronbestanden niet meer per lookup opnieuw
Version 2.190.11
Added
- Het flattenen van formulieren is nu eenvoudiger te sturen vanuit applicatiecode:
FlattenFormFieldsretourneert het aantal AcroForm-velden dat het heeft afgevlakt, terwijl de nieuwe helpersHasFormFieldsenFormFieldExiststoepassingen toestaan geladen PDF's of lopende formulieren te controleren vóór interactieve velden verwijderd worden - De Preflight CLI-demonstraties behandelen nu CSV-uitvoer, profiel- en presetvalidatie, exacte uitvoer paden van individuele bestanden, PDF/VT validatierapporten, geaggregeerde samenvattingen en dashboard-links, terwijl de Preflight Report GUI-demonstraties profielen valideren vóór generatie en CSV-uitvoer gefilterd op profiel als CSV behouden
Version 2.190.10
Fixed
- Na MovePage heeft het document weer een actieve huidige pagina, gelijk aan DeletePage: direct tekenen na een verplaatsing werkt zonder eerst een pagina te selecteren, het tekenen belandt op dezelfde pagina die actief was vóór de verplaatsing, en direct sluiten van het document na een verplaatsing schrijft elke font betrouwbaar via het normale pad weg
Version 2.190.9
Fixed
- Documenten die direct na MovePage zijn voltooid verliezen niet langer hun fonts: gedeelde fontgegevens die van al geschreven pagina's zijn uitgesteld worden nu altijd vastgelegd bij het sluiten van het document, zelfs als op dat moment geen pagina actief is, zodat de tekst van elke pagina zijn fontbronnen behoudt en correct rendert
- Teruggaan naar een eerdere pagina en een extra font selecteren overschrijft niet langer een font dat al op die pagina is gebruikt: resource-namen die in het gedeelde-fontregister in afwachting zijn nu gereserveerd, zodat elk font zijn eigen naam behoudt en beide correct renderen
- Als inbedden van een lettertype faalt, wordt het lettertypeprogramma nu on-gecomprimeerd opgeslagen en wordt het fontobject normaal afgerond, in plaats van een onvolledig fontobject te maken dat sommige viewers niet konden renderen
- Met
eenvoudige Latijnse lettertypeningeschakeld behoudt tekst geschreven met Symbol of ZapfDingbats zijn symbolische betekenis: symbolieke lettertypen worden uitgesloten van de niet-ingesloten platte-tekstversnelling die anders welke glyphs toont (ISO 32000-1 §9.6.6.2) - Het genereren van PDF's veroorzaakt niet meer integer-overflowfouten in projecten met overflowcontrole ingeschakeld wanneer font subsetting actief is, en hergebruik van één componentinstantie in meerdere documenten veroorzaakt niet langer geheugenlekken in zeldzame werkstromen die een document halverwege herstarten of opnieuw structureren
Version 2.190.8
Fixed
- Contextueel kerning wordt niet meer dubbel toegepast als een font meerdere alternatieve contextregels in één OpenType-lookup levert: de subtabellen van regels worden nu in volgorde geprobeerd en de eerste match wint, zoals de OpenType-specificatie eist
- Overlappende contextmatches stapelen hun aanpassingen niet meer: nadat een contextuele positioneringsregel afgaat, begint de match verder na het gevonden glyph-bereik, zodat herhalende patronen elk kerning-aanpassingsniveau exact eenmaal krijgen
- Versterkte parsing van OpenType-opmaak tegen afgebroken of foutieve fonts: geneste lookup-ontleding in zowel positionerings- als substitutie-engines valideert nu de volledige omvang van elk tabelrecord voor het lezen
Version 2.190.7
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
fracGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Gewijzigd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.190.6
Fixed
- Meerdere accenten op één ligatuur positioneren nu correct in rechtse-toetstekst: de tweede en latere marks koppelen aan hun ligatuurcomponent (GPOS mark-to-ligature) in plaats van terugvallen naar de baseline
- Gestapelde accenten die een ligatuurcomponent delen, zoals shadda gevolgd door een klinkerteken, stapelen nu op elkaar in plaats van te overlappen op hetzelfde anker
- Ligatuurcomponentaantallen volgen nu GPOS-attribuutdata van het lettertype, zodat vooraf samengestelde ligatuurtekens met lange tekst-extractiemappingen de volgende marks niet meer uit bereik drukken
- Enkelvoudige supplementairvlak-tekens worden niet langer per ongeluk als ligaturen behandeld tijdens markplaatsen
- Een accent dat het lettertype herkent als een echte ligatuurcomponent wordt niet meer tweede keer getekend naast de ligatuur
- Ligatuurcomponentmetadata lekken niet meer tussen niet-gerelateerde tekstuitvoercalls
Version 2.190.5
Added
- Hanifi Rohingya-tekst krijgt rechter-naar-linkse cursieve modellering via de nieuwe eigenschap
AutoShapeHanifiRohingya: wanneer ingeschakeld selecteert de engine de initiële, mediale, finale en geïsoleerde vormen van het lettertype zodat het script renderd met het juiste verbindingsgedrag - Tai Viet-tekst krijgt visuele herschikking via de nieuwe vlag
sfTaiVietReorder: klinkers die voor de consonant staan, verschijnen nu op de juiste plek in plaats van volgens typlogica - Meetei Mayek-tekst krijgt syllabische herschikking via nieuwe vlag
sfMeeteiMayekShaping: linker klinkertekens bewegen voor hun consonant voor correcte weergave - Alle drie schrijfsystemen volgen het bestaande opt-in model: documenten die de nieuwe eigenschap of vlaggen niet inschakelen produceren byte-identieke output
Version 2.190.4
Fixed
- Tekst van links naar rechts wordt niet meer omgedraaid wanneer een lettertype-index toevallig in het numerieke venster valt dat de rechts-naar-links detector reserveert voor Hebreeuwse en Arabische codepoints; de detector slaat nu glyph-index payloads volledig over
- Documenten die zeldzame Latijnse, Griekse of Cyrillische letters uit grote fonts mengen renderen in alle gevallen in de originele volgorde
Version 2.190.3
Fixed
- Een alleenstaande hoge surrogate gevolgd door bepaalde BMP-tekens maakt niet langer een supplementair vlak codepoint tijdens right-to-left detectie: onjuiste UTF-16 invoer behoudt nu zijn logische volgorde in plaats van gegroepeerd en omgekeerd te worden als Adlam of Hanifi Rohingya tekst
- Goed gevormde surrogateparen voor Adlam en Hanifi Rohingya blijven onaangetast en blijven rechts-naar-links vormen
Version 2.190.2
Fixed
- Shaping vlaggen zijn nu geïsoleerd per schrijfsysteem: inschakelen
sfMeeteiMayekShapingalleen herschikt niet langer Devanagari, Bengali, Tamil, Khmer, Myanmar of andere Indic tekst, en inschakelensfIndicShapingofsfIndicGSUBalleen beïnvloedt Meetei Mayek tekst niet meer - Output blijft byte-identiek voor elk script waarvan de shaping vlag uit staat, waardoor het gedocumenteerde opt-in gedrag voor gemengde scripts behouden blijft
Added
ApplyIndicReorderkrijgt een overload met een expliciete feature-set voor flag-scoped reorder queries; de bestaande parameterloze vorm behoudt volledige scriptdekking
Version 2.190.1
Fixed
- De classificatie van Meetei Mayek letters is afgerond tegen de Unicode Character Database: letters PHAM, ATIYA en GOK tot BHAM (U+ABD0–U+ABDA) starten nu lettergrepen, zodat linker klinkertekens en gestapelde marks erna juist herschikt wanneer
sfMeeteiMayekShapingis ingeschakeld - Woorden op basis van de veel voorkomende klinkerdrager ATIYA hielden klinkertekens eerder in logische volgorde; ze produceren nu dezelfde visuele volgorde als de rest van het Meetei Mayek-blok
Version 2.190.0
Fixed
- Combinatiemarkeringen (accenten, Arabische harakat, Hebreeuwse niqqud, Thai en Lao klinkertekens) renderen nu op de juiste positie boven of onder de bedoelde letter in alle PDF-lezers; voorheen konden ze naar het begin van de regel verschuiven
- Gestapelde combinatiemarkeringen hopen nu op de onderliggende markering in plaats van samen te vallen op de basisletter wanneer het lettertype ook een directe basisanchor voor de bovenmarkering draagt
- Cursieve verbindingsoffsets en mark-to-ligature attachments volgen de PDF text-object specificatie (ISO 32000-1), waardoor positioneringsdrift na opgemaakte tekst verdwijnt
- Tekst na een gepositioneerde mark of cursieve loop gaat door op de juiste penpositie
Changed
- Kerning, mark positioning en cursieve attachment combineren nu binnen dezelfde tekstloop in plaats van elkaar uit te sluiten
Version 2.189.1
Fixed
- Rechts-naar-links tekst past nu de vooruitgang van GPOS paar-kerning toe op de run-breedte, dus tekst na een gekernde RTL-run staat op de juiste positie
- RTL kerning-runs met verticale stijging passen dezelfde vooruitgangscorrectie toe op hun laatste glyph
Version 2.189.0
Added
- Uitgebreide opt-in OpenType-opmaak met contextuele GPOS plaatsingsindelingen, afstandspositionering, Khmer- en Myanmar-herschikking integratie, verticale alternatieven voor verticale lettertypen en extra typografische switches voor hoofdlettervormen, cijferbreedtes, wetenschappelijke kleinindexen, tellers, noemers en slashnul
Changed
- AES-256 bestandsversleuteling en ontcijfering gebruiken nu een directe herschrijfpad voor grote PDF's, waarmee voor volledige documentgeheugenlading voor ondersteunde invoer zoals multi-gigabytebestanden wordt vermeden
- Win32 AES-256-CBC gebruikt nu hetzelfde CPUID-geactiveerde AES-NI backend als Win64, met automatische pure-C fallback op processors zonder AES-NI-ondersteuning
Version 2.188.2
Added
sfStylisticAlternatespast nu automatisch OpenTypesaltsubstituties toe tijdens Unicode tekstuitvoer wanneer het geregistreerde font passende stylistische alternaten toont
Fixed
- GPOS paar- en mark-positioneringslookups weigeren nu misvormde class- en anchor-offsets waarvan grote fonttellingen 32-bit wiskunde-overloop kunnen veroorzaken, waardoor onveilige leesacties op beschadigde of vijandige fontdata worden voorkomen
- GPOS mark-positioneringslookups respecteren nu LookupFlag mark filtering, zodat lettertypen die genegeerde marks, mark attachment types of mark filtersets vragen deze mark anchors niet langer per ongeluk toepassen
- Adlam positionele vormgeving gebruikt nu dezelfde Unicode map beschikbaarheidsbewaking als Syriac, N'Ko en Mongolian shapingpaden
Version 2.188.1
Fixed
- Rechts-naar-links Arabische en Hebreeuwse tekstuitvoer behoudt nu GPOS paar kerning actief wanneer mark positioning ook is ingeschakeld, zodat harakat en niqqud verankerd zijn zonder base-glyph spacing aanpassingen te verliezen
Version 2.188.0
Added
- Nieuwe
sfFractionsvormgevingsoptie past automatisch OpenTypefracsubstituties toe tijdens Unicode tekstuitvoer, inclusief tellercijfers, breukstreepje en kettingcontext noemercijfers met ToUnicode mappings terug naar originele tekst
Version 2.187.0
Added
- Nieuwe vormgevingsopties passen automatisch OpenType enkelvoudige substitutie typografische kenmerken toe tijdens Unicode tekstuitvoer:
sfSmallCapsvoorsmcp,sfCapsToSmallCapsvoorc2sc,sfOldstyleFiguresvooronum,sfLiningFiguresvoorlnum,sfSuperscriptsvoorsups,sfSubscriptsvoorsubsensfOrdinalsvoorordn
Version 2.186.0
Added
- Nieuwe
sfDiscretionaryLigaturesensfHistoricalLigaturesvormgevingsopties passen automatisch OpenTypedligenhliglookups toe tijdens Unicode tekstuitvoer, waarbij font-native ligatuur glyph IDs met ToUnicode mappings worden uitgegeven en standaard uitgeschakeld blijven
Version 2.185.1
Fixed
- Arabic Extended-B letters U+0870-U+089F nemen nu deel aan producer-side Arabische verbinding en native GSUB positionele vormgeving wanneer Arabische autoshaping is ingeschakeld, zodat lettertypen met passende OpenType Arabische kenmerken verbonden vormen kunnen emitten met ToUnicode mappings
Version 2.185.0
Added
- Native Arabic GSUB vormgeving voor opt-in Arabische tekstuitvoer: als
sfArabicGSUBis ingeschakeld, past HotPDF de geregistreerde lettertype-lookupsinit,medi,fina,isol,rlig,caltenrclttoe op logische Arabische runs en geeft de resulterende font-native contextuele glyph IDs met ToUnicode mappings uit - Nieuwe
sfCursiveAttachmentvormgevingsoptie past OpenType GPOS cursive ingang/uitgang ankers toe tijdens Unicode tekstuitvoer, waardoor met de native GSUB-pad gevormde verbonden Arabische glyphs via de eigencurs-data van het font uitlijnen
Version 2.184.2
Fixed
- Rechter-naar-linkse Adlam fallbacktekst bewaart nu geldige UTF-16 surrogaat-paardvolgorde wanneer een font geen Adlam positionele substituties kan toepassen, en N'Ko U+07FA werkt nu alleen als join-causing teken zodat aangrenzende N'Ko letters verbinden zonder U+07FA door een positionele vorm te vervangen
Version 2.184.1
Fixed
- Mark-to-ligature plaatsing dekt nu ook RTL Arabische ligaturen: een harakat op een ligatuur zoals de Allah-ligatuur komt op de juiste ligatuurcomponent, terwijl per-component plaatsing eerder alleen op links-naar-rechts tekst gold en RTL harakat op de gewone voortgangsbreedte bleef; al gevormde Arabische ligaturen (zoals Allah- en lam-alef-ligaturen) worden nu herkend voor componenttracking en de mark-to-ligature optie blijft standaard uitgeschakeld
Version 2.184.0
Added
- Producer-side cluster en component tracking in de tekstvormgeving pijplijn: zodra ligaturen worden gevormd registreert de engine welke originele tekens elke outputglyph dekt en hoeveel ligatuurcomponenten deze bevat, waardoor een basis ontstaat voor precieze mark placeing en tekstextractie op geligeerde runs
- Combinatiemarks worden nu aan de juiste component van een ligatuur gehecht (OpenType GPOS mark-to-ligature) wanneer de nieuwe mark-to-ligature vormgevingsoptie is ingeschakeld voor links-naar-rechts geligeerde tekst; output blijft onveranderd wanneer de optie uitgeschakeld is
- Multi-component ligaturen uit dit pad bevatten precieze tekstextractiemappings, zodat kopiëren en plakken de originele tekenreeks herstelt
Version 2.183.0
Added
- Voorbewerking voor Javanese schrift met correcte klinkerplaatsing: wanneer de Javanese-herschikkingsoptie actief is, worden pre-base-klinkertekens zoals taling en dirga mure v贸贸r de consonantcluster geplaatst, inclusief pangkon-verbonden stapels, voordat er wordt gerenderd, zodat de tekst in de juiste visuele volgorde staat; uitvoer blijft ongewijzigd wanneer de optie uit staat
Version 2.182.0
Added
- Voorbewerking voor Hebrew-tekst met correcte klinkerpuntplaatsing: wanneer de Hebrew-herschikkingsoptie actief is, worden klinkerpunten, dagesh, shin- en sin-punten en cantillatietekens v贸贸r rendering in canonieke volgorde gezet, zodat mark-positionering ook werkt wanneer de bron een andere volgorde gebruikt; uitvoer blijft ongewijzigd wanneer de optie uit staat
Version 2.181.0
Added
- Voorbewerking voor Thai- en Lao-tekst met correcte markplaatsing: wanneer de Thai/Lao-herschikkingsoptie actief is, wordt SARA AM gesplitst in een bovenste en achterste deel en worden klinker- en toonmarkeringen v贸贸r rendering canoniek geordend, zodat mark-positionering tonen en klinkers correct uitlijnt; uitvoer blijft ongewijzigd wanneer de optie uit staat
Version 2.180.0
Added
- Automatische producer-side-vorming voor Adlam-tekst, het West-Afrikaanse Fula-schrift in U+1E900-U+1E95F: wanneer AutoShapeAdlam actief is, worden letters via OpenType-positionele substituties in hun juiste cursieve verbindingsvorm weergegeven, surrogate pairs worden correct verwerkt en kopi毛ren/plakken herstelt de oorspronkelijke letters; uitvoer blijft ongewijzigd wanneer de optie uit staat
Version 2.179.0
Added
- Automatische producer-side-vorming voor N'Ko-tekst in U+07C0-U+07FF: wanneer AutoShapeNko actief is, worden letters via OpenType-positionele substituties in hun juiste cursieve verbindingsvorm weergegeven en kopi毛ren/plakken herstelt de oorspronkelijke letters; uitvoer blijft ongewijzigd wanneer de optie uit staat
Version 2.178.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.177.0
Added
- Ondersteuning voor het lezen van OpenType GPOS verticale kerning via
vkrnen verticale proportionele alternatieven viavpal, waarmee de verticale advance-correctie die de font tussen gestapelde glyphs definieert beschikbaar komt voor verticale tekstuitvoer
Version 2.176.0
Fixed
- Kerning past nu GPOS-glyphplaatsingsoffsets toe, inclusief horizontale XPlacement en verticale YPlacement, die eerder werden gelezen maar genegeerd; fonts die glyphposities via hun kern-feature verfijnen renderen die offsets nu samen met de advance-correctie voor LTR- en RTL-tekst
Version 2.175.0
Fixed
- Gelaagde combinatietekens in RTL-tekst worden nu correct gepositioneerd, zoals een Arabic-letter met shadda plus klinker of gestapelde Hebrew-punten; elk extra teken stapelt op het teken eronder in plaats van terug te vallen op de basisletter
Version 2.174.0
Added
- Ondersteuning voor OpenType GPOS Mark-to-Ligature attachment LookupType 5, dat de plaatsing van een combinatieteken op een specifiek onderdeel van een ligatuur rapporteert zodat elk teken aan het eigen deel van een meerletterige ligatuur verankert
Version 2.173.0
Added
- Ondersteuning voor het lezen van OpenType GPOS cursive attachment LookupType 3, met entry- en exit-ankers die cursieve schriften zoals Arabic Nastaliq gebruiken om verbonden letters op een vloeiende basislijn uit te lijnen
Version 2.172.0
Added
- Kerning wordt nu toegepast op RTL-tekst zoals Arabic en Hebrew wanneer kerning actief is; voorheen plaatste het RTL-weergavepad alleen combinatietekens en liet kerning ongebruikt
- OpenType GPOS contextuele kerning met LookupType 7 Context en LookupType 8 Chained Context wordt nu uitgevoerd voor LTR- en RTL-tekst, zodat contextafhankelijke kerning de uitvoer aanscherpt in plaats van alleen gelezen te worden
Version 2.171.0
Added
- Ondersteuning voor OpenType GPOS contextuele kerning met LookupType 7 Context en LookupType 8 Chained Context positioning, zodat contextafhankelijke kerning uit de font kan worden gelezen en gebruikt voor tekstpositionering
Version 2.170.0
Added
- Optionele automatische toepassing van de OpenType
loclLocalized Forms-feature, waarmee taalspecifieke lettervormen zoals Servische en Bulgaarse Cyrillische vormen of Turkish dotless i worden gekozen wanneer een shapingtaal is ingesteld
Version 2.169.0
Added
- Optionele automatische toepassing van de OpenType
caltContextual Alternates-feature op tekst onder het actieve script, waarbij ongecodeerde contextuele glyphs met ToUnicode-mapping worden ingesloten zodat kopi毛ren en plakken de oorspronkelijke tekst herstellen
Version 2.168.0
Added
- Optionele automatische toepassing van de OpenType
rcltRequired Contextual Alternates-feature op gevormde Arabic-tekst via de contextual-alternates-optie, zodat contextuele letterselectie geen downstream shaper meer nodig heeft
Version 2.167.0
Added
- OpenType GSUB shaping for Devanagari and Indic scripts is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
- the new Indic GSUB mode remains opt-in and separate from reorder-only shaping is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
- ToUnicode recovery for producer-side complex shaping codepoints is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.166.0
Added
- producer-side Mongolian shaping with OpenType GSUB is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
- ToUnicode extraction for shaped Mongolian letters is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.165.1
Fixed
- right-to-left ordering for shaped Syriac and Arabic Supplement / Extended-A words werkt nu correct en voorkomt de eerdere onjuiste uitvoer of diagnose
Version 2.165.0
Added
eenvoudige Latijnse lettertypencompact WinAnsi output for printable ASCII standard-font text is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.164.0
Changed
- document-wide shared font embedding across multiple pages gedraagt zich nu consistent over gegenereerde pagina's en behoudt rendering en tekstextractie
Version 2.163.3
Gewijzigd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
JEPSCD+ArialMTGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.163.2
Gewijzigd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
CompressionGelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.163.1
Fixed
- valid TrueType fonts without optional hinting tables werkt nu correct en voorkomt de eerdere onjuiste uitvoer of diagnose
Version 2.163.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.162.0
Added
- OpenType
liga/cligLatin ligature folding throughsfStandardLigaturesis nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld - copy, paste, and search recovery for folded Latin ligatures is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.161.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.160.0
Added
- OpenType GSUB groundwork for future Tibetan rendering is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.159.0
Added
- GPOS mark positioning for Hebrew niqqud and Arabic harakat in right-to-left runs is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.158.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.157.0
Added
- producer-side shaping for Arabic Supplement and Arabic Extended-A letters is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
- ToUnicode recovery for newly shaped Arabic Supplement and Extended-A letters is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.156.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.155.0
Added
- GPOS Mark-to-Base placement for combining marks in Thai, Lao, Hebrew, and Latin text is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.154.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.153.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.152.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.151.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.150.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Opgelost
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.149.0
Toegevoegd
- Gelokaliseerde wijzigingsdetails voor API-gedrag en de vermelde symbolen
Version 2.148.1
Changed
- more verifiable Memory Stream and PDF Info demo output gedraagt zich nu consistent over gegenereerde pagina's en behoudt rendering en tekstextractie
Version 2.148.0
Added
- XFA fields below the first page flowing onto following pages is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.147.4
Added
- diagnostics for oversized content-sized XFA text fields and labels is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.147.3
Added
- one-line minimum height for empty growable XFA text is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.147.2
Added
- layout for XFA text without an explicit width is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.147.1
Added
- automatic height for XFA text with width but no height is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.147.0
Added
- internal text measurement groundwork for content-sized XFA text is nu beschikbaar; bestaande uitvoer blijft gelijk tenzij de bijbehorende optie is ingeschakeld
Version 2.146.4
Fixed
- positive page-height normalization for loaded PDFs with descending box coordinates werkt nu correct en voorkomt de eerdere onjuiste uitvoer of diagnose
- unchanged drawing positions, field rectangles, text, and images on affected loaded pages werkt nu correct en voorkomt de eerdere onjuiste uitvoer of diagnose
Version 2.146.3
Fixed
- pagination for repeating fixed-position XFA data sections werkt nu correct en voorkomt de eerdere onjuiste uitvoer of diagnose
- more accurate off-page diagnostics for XFA forms loaded from existing PDFs werkt nu correct en voorkomt de eerdere onjuiste uitvoer of diagnose
Version 2.146.2
Added
- XFA-paginering strekt zich nu uit over meerdere inhoudsgebieden: wanneer een pagina meerdere inhoudsgebieden definieert, vult vloeiende inhoud ze op volgorde—deze gaat verder in het volgende gebied op dezelfde pagina voordat naar een nieuwe pagina wordt overgegaan—zodat formulierindelingen met meerdere kolommen en gebieden correct worden gepagineerd
- Lange herhalende secties worden nu over meerdere pagina's gepagineerd: een gegevensgestuurde lijst die zich eenmaal per record herhaalt en groter wordt dan het inhoudsgebied gaat verder op volgende pagina's zonder rijen te verliezen
- Sectie-einden worden nu gerespecteerd: een formuliersectie die is gemarkeerd om op een nieuwe pagina te beginnen, begint op een nieuwe pagina, zelfs als er op de huidige pagina nog ruimte is, terwijl een gebiedseinde de sectie naar het volgende inhoudsgebied verplaatst
Version 2.146.1
Added
- XFA-formulieren worden nu automatisch gepagineerd: wanneer doorlopende inhoud—zoals een lange gegevensgestuurde lijst of een reeks velden—hoger wordt dan het inhoudsgebied van de pagina, loopt de overloop door op een nieuwe pagina in plaats van voorbij de onderrand; formulieren van 茅茅n pagina blijven ongewijzigd en leveren identieke uitvoer op
Version 2.146.0
Changed
- Het afvlakken van XFA naar AcroForm leidt nu elk afgevlakt veld en elke afbeelding via een paginatoewijzing per item—de interne basis voor paginering over meerdere pagina's in komende versies; formulieren van 茅茅n pagina blijven onaangetast en leveren identieke uitvoer op
Version 2.145.4
Changed
- XFA-tabel- en links-naar-rechts-lay-out (lr-tb) zijn gevalideerd aan de hand van echte XFA-formulieren—facturen, inkooporders, betalingsverzoeken en gegevensrasters—waarmee is bevestigd dat gegevensgestuurde tabellen 茅茅n rij per record genereren en dat elke cel in de juiste rij en kolom terechtkomt, zonder dat er velden verloren gaan ten opzichte van de eerdere positionele verwerking
- Wanneer een tabelkolom met automatische breedte (een
-1-vermelding incolumnWidths) alleen uitbreidbare cellen zonder meetbare breedte bevat, wordt de weggelaten kolom nu gemeld viaXFAFlattenWarningsin plaats van stilzwijgend te worden weggelaten
Version 2.145.3
Added
- Tabelkolommen met automatische breedte (een
-1-vermelding incolumnWidthsof niet-opgegeven kolommen) passen zich nu aan hun breedste cel aan, zodat elke cel in een kolom met automatische breedte op alle rijen op dezelfde positie wordt uitgelijnd; tabellen die vaste en automatische kolombreedtes combineren, worden nu consistent ingedeeld
Version 2.145.2
Added
- Gegevensgestuurde XFA-tabellen worden nu correct uitgevouwen: een tabelrij die is gemarkeerd om te herhalen (met
<occur>) genereert 茅茅n rij per gegevensrecord, zodat facturen en regelitemlijsten worden afgevlakt tot 茅茅n rij per item in plaats van 茅茅n enkele sjabloonrij; opmaak van rijen zonder inhoud verschuift de kolommen niet meer
Version 2.145.1
Added
- XFA-formulieren kunnen nu de tabelindeling gebruiken: een subformulier met
layout="table"schikt zijnlayout="row"-onderliggende elementen in uitgelijnde kolommen, waarbij de kolombreedten worden ontleend aan decolumnWidthsvan de tabel en de hoogte van elke rij wordt bepaald door de hoogste cel. Afgevlakte tabellen—facturen, regelitemlijsten, gegevensrasters—plaatsen hun cellen nu in de juiste rijen en kolommen in plaats van elkaar te overlappen aan de linkerrand
Version 2.145.0
Added
- XFA-formulieren kunnen nu een van links naar rechts tegelende lay-out gebruiken: een subform met
layout="lr-tb"plaatst zijn onderliggende veld- en tekenelementen naast elkaar en gaat naar een nieuwe regel wanneer het volgende niet meer in de containerbreedte past. Afgevlakte formulieren die besturingselementen in een teruglopend raster plaatsen—in plaats van in 茅茅n verticale kolom—positioneren ze nu correct
Version 2.144.5
Fixed
- XFA-formuliervelden die hun x- en/of y-positie weglaten—een gangbare, geldige verkorting in gepositioneerde lay-out waarbij de weggelaten co枚rdinaat terugvalt op de oorsprong van de container—worden niet langer weggelaten. Praktijkformulieren waarvan de adresblokken, secties en tabellen op deze standaardwaarde vertrouwden, worden nu afgevlakt met hun volledige set velden in plaats van ze stilzwijgend te verliezen
- Geneste subsecties in een formulier met stroming van boven naar beneden verplaatsen de verticale cursor nu met hun eigen inhoudshoogte, zodat aangrenzende secties onder elkaar worden gestapeld in plaats van op dezelfde positie te overlappen. Formulieren met stroming over meerdere secties worden nu in de juiste verticale volgorde geplaatst
Version 2.144.4
Added
- XFA-formulieren met datagestuurd herhalende secties worden nu ondersteund: een subformulier met
<occur max="-1"/>(of een willekeurig niet-standaard maximum) breidt uit tot 茅茅n instantie per overeenkomende gegevensgroep in hetdatasets-pakket, waarbij elke instantie zijn velden koppelt aan de bijbehorende rijwaarden. Formulieren die impliciete datasets-koppeling gebruiken om lijsten of tabellen met variabele lengte te genereren, worden nu afgevlakt met het juiste aantal velden en de juiste waarden per rij
Version 2.144.3
Added
- XFA-formulieren kunnen nu een vloeiende lay-out van boven naar beneden gebruiken: een subformulier met
layout="tb"stapelt zijn onderliggende veld- en tekenelementen verticaal—elk onder het vorige—zelfs wanneer die onderliggende elementen geen expliciete positie opgeven. Afgevlakte formulieren die afhankelijk zijn van automatische verticale stroming in plaats van vaste co枚rdinaten plaatsen hun velden nu correct
Version 2.144.2
Fixed
- XFA-formulieren waarvan het eerste pakket begint met een DOCTYPE-declaratie—zoals geproduceerd door sommige XFA-ontwerptools—worden nu correct afgevlakt via
FlattenLoadedXFAin plaats van te mislukken met een fout over een ontbrekende sjabloon. De loader herkent het hoofdelementxdp:xdpzelfs wanneer er een DOCTYPE-proloog aan voorafgaat - Interne XML-entiteiten die in de DOCTYPE van een formulier zijn gedeclareerd (bijvoorbeeld
<!ENTITY name "value">) worden nu uitgebreid overal waar de bijbehorende verwijzing&name;in het formulier voorkomt, zodat de afgevlakte velden de opgeloste tekst bevatten
Security
- Externe XML-entiteiten (
SYSTEMofPUBLIC) waarnaar een XFA-formulier verwijst, worden tijdens het afvlakken nooit opgelost: HotPDF haalt de aangehaalde URL of het bestand niet op en beschermt zo tegen XXE-aanvallen (XML External Entity). Een dergelijke verwijzing wordt uitgebreid tot lege tekst en gemeld viaXFAFlattenWarnings
Version 2.144.0
Changed
- Het afvlakken van XFA naar AcroForm verloopt nu via een speciale layout-engine met twee fasen: eerst worden de posities van de elementen berekend, daarna worden de velden en afbeeldingen weggeschreven. Statische positionele formulieren leveren identieke uitvoer op; deze interne wijziging vormt de basis voor de ondersteuning van vloeiende lay-out en herhaalde secties in toekomstige versies
Version 2.143.5
Fixed
- Praktijkgerichte XFA-formulieren die hun
/XFA-vermelding als pakketarray opslaan, worden nu correct afgevlakt viaFlattenLoadedXFAin plaats van te mislukken met een fout over een ontbrekende sjabloon. Dit omvat formulieren waarvan de pakketstromen afzonderlijk zijn gecomprimeerd zonder een direct leesbaar filter, en formulieren die het configuratiepakket v贸贸r de sjabloon plaatsen—beide komen vaak voor in PDF's die door professionele XFA-ontwerptools worden ge毛xporteerd
Added
- Het XFA-
<draw>-afvlakken geeft statische tekstlabels—formuliertitels en veldbijschriften—nu weer als native paginatekst, met behoud van het lettertype, de tekengrootte en de kleur van het label, zodat ze zichtbaar blijven op een afgevlakt formulier in lezers zonder XFA-engine - XFA-knopwidgets worden nu omgezet in native AcroForm-drukknoppen met behoud van hun bijschrifttekst, zodat actieknoppen op het afgevlakte formulier verschijnen
Version 2.143.4
Added
- De nieuwe methode
FlattenLoadedXFAmaakt het XFA-formulier dat is ingebed in een reeds geladen PDF plat tot native AcroForm-velden en statische paginagraphics, en voltooit zo de XFA-naar-AcroForm-conversie voor documenten die vanaf schijf zijn geopend (eerdere releases maakten de door de aanroeper aangeleverde XFA-bytes plat viaApplyXFAAsAcroForm). De methode leest de/XFA-vermelding van het formulier, of dit nu 茅茅n stream of een pakketarray is, verwijdert vervolgens/XFAen wist de vlag voor dynamische rendering, zodat het resultaat een eenvoudig AcroForm is dat elke PDF-lezer weergeeft. De methode geeft het aantal aangemaakte velden terug, of nul wanneer de geladen PDF geen XFA bevat - Beide XFA-flatten-ingangen accepteren nu een
Editable-optie: laat deze aan staan (de standaard) voor invulbare velden, of schakel deze uit om elk gegenereerd veld als alleen-lezen te markeren - Dubbele XFA-veldnamen, die in XFA zijn toegestaan maar niet in AcroForm, worden nu automatisch uniek gemaakt met een numeriek achtervoegsel, en de naamswijziging wordt gerapporteerd via
XFAFlattenWarnings - XFA-sjablonen die voor verschillende sjabloonschemaversies zijn gemaakt, worden geaccepteerd; een niet-herkende sjabloonnaamruimte wordt als waarschuwing genoteerd in plaats van geweigerd, zodat het formulier toch wordt platgemaakt
Version 2.143.3
Added
- Het afvlakken van XFA naar AcroForm geeft nu de statische
<draw>-afbeeldingen uit een XFA-sjabloon weer als native pagina-inhoud, zodat rechthoeken, lijnen, bogen en ingesloten afbeeldingen hun plaats behouden op een afgevlakt formulier in PDF-lezers die geen XFA-engine implementeren. Rechthoeken en lijnen worden getekend met de XFA-randdikte en -kleur, een boog wordt weergegeven als een vloeiende curve volgens de begin- en veeghoek, en een ingesloten PNG- of JPEG-afbeelding wordt gedecodeerd en in het oorspronkelijke kader getekend
Version 2.143.2
Added
- Het afvlakken van XFA naar AcroForm neemt nu de veldopmaak over op de gegenereerde AcroForm-velden. De XFA-lettertypefamilie en -grootte, de tekstkleur, de randkleur en -breedte van het veld en de horizontale tekstuitlijning worden vertaald naar de standaardweergave, de rand en de uitlijning van het veld, zodat een afgevlakt XFA-formulier zijn beoogde uiterlijk behoudt in standaard-PDF-lezers die geen XFA-engine implementeren. De lettertypeselectie wordt in deze versie toegewezen aan de standaard-PDF-lettertypen; volledige lettertype-insluiting volgt later
Version 2.143.1
Added
- De XFA-naar-AcroForm-afvlakking die
ApplyXFAAsAcroFormuitvoert, converteert nu naast tekstvelden ook numerieke velden, datumvelden, selectievakjes, keuzerondjes, keuzelijsten en digitale handtekeningvelden. Elke XFA-<ui>-widget wordt toegewezen aan het dichtstbijzijnde native AcroForm-veld: numerieke en datuminvoer worden tekstvelden, een check button wordt een selectievakje (of een groep keuzerondjes wanneer deze zich in een exclusion group bevindt), en een keuzelijst wordt een vervolgkeuzelijst of, bij meervoudige selectie, een keuzelijstvak. Veldwaarden worden nog steeds eerst uit het form-pakket en daarna uit het datasets-pakket gehaald
Version 2.143.0
Added
- De nieuwe methode
ApplyXFAAsAcroFormzet een door de aanroeper aangeleverd XFA-formulier (XML Forms Architecture) om in native AcroForm-tekstvelden, zodat statische XFA-formulieren zichtbaar en invulbaar worden in moderne PDF-lezers die geen XFA-engine implementeren. Deze eerste release ondersteunt tekstvelden met waarden uit het form- of datasets-pakket; meer veldtypen, opmaak en afbeeldingen volgen.XFAFlattenWarningsrapporteert elk element dat niet kon worden omgezet
Version 2.142.1
Changed
- De PAdES-Seed-Value-bijvoegheper weigert nu waarden die een latere ondertekenaar zouden dwingen het PAdES-profiel te schenden (ETSI EN 319 142-2 V1.2.1 搂4.2.6): de beperking
/SubFiltermoetadbe.pkcs7.detachedofETSI.CAdES.detachedzijn, en de beperking/DigestMethodmag nietMD5,SHA1ofSHA-1zijn. De producent werpt een heldere diagnose in plaats van stilzwijgend een profielschendend/SV-woordenboek uit te schrijven
Version 2.142.0
Added
- De nieuwe methode
AddXFASignaturePacketsluit een door de aanroeper gegenereerde XAdES-/XML-DSig-handtekening in als het XFA-signature-pakket binnen de AcroForm-/XFA-array (ISO 32000-1 搂12.7.8), voor ondertekende XFA-formulieren. HotPDF genereert of parseert de handtekening niet: de aanroeper maakt deze met een XML-cryptobibliotheek over de XFA-datasets, en HotPDF sluit deze in als FlateDecode-pakket. Dezelfde PDF/A- en PDF/X-weigeringen, de exclusiviteit van 茅茅n stream en de bescherming tegen dubbele pakketten als bijAddXFAPacketgelden
Version 2.141.2
Added
- Nieuwe openbare API
RegisterDefaultColorSpace(Which, ColorSpaceCS)registreert een ICCBased-kleurruimte (gemaakt metRegisterICCProfile) als de document-brede/DefaultGray-,/DefaultRGB- of/DefaultCMYK-mapping volgens ISO 32000-1 搂8.6.5.6 en PDF/A Competence Center TechNote 0002 搂1.3. Bij EndDoc loopt de helper door elke pagina en voegt een[/ICCBased <profile-stream>]-vermelding toe onder de overeenkomstige/DefaultX-sleutel in hetResources/ColorSpace-woordenboek van de pagina. Het aantal componenten wordt gevalideerd tegen de familie (DefaultGray鈫?N=1,DefaultRGB鈫?N=3,DefaultCMYK鈫?N=4); een aanroep met een legeCSNamewist de mapping; reeds bestaande paginaniveau/DefaultX-vermeldingen blijven behouden (overschrijvingen door de aanroeper winnen). Daarmee kan een document dat DeviceRGB- en DeviceCMYK-inhoud combineert, PDF/A-1 搂6.2.3.3 voldoen met elk afzonderlijkGTS_PDFA1OutputIntent-profiel, omdat de 搂6.2.3.3 consistentiecontrole die in v2.141.1 is ge茂ntroduceerd het DeviceX-gebruik als geabsorbeerd beschouwt zodra de overeenkomstige Default-kleurruimte is geregistreerd
Version 2.141.1
Changed
- PDF/A consistentiecontrole apparaat-kleurruimte 鈫?OutputIntent (ISO 19005-1 搂6.2.3.3 + PDF/A Competence Center TechNote 0002 搂4.1). EndDoc werpt nu een uitzondering wanneer een document DeviceRGB- en DeviceCMYK-inhoud combineert (茅茅n GTS_PDFA1 OutputIntent ICC-profiel kan niet aan beide kleurmodellen tegelijk voldoen) of wanneer DeviceCMYK-inhoud wordt gekoppeld aan een RGB OutputIntent-profiel en omgekeerd. Volgens TN0002 搂4.1 is DeviceGray-inhoud compatibel met OutputIntent-profielen van Gray, RGB of CMYK. Image XObjects worden gevolgd op basis van de kleurruimte die de producer daadwerkelijk uitgeeft (DeviceRGB voor JPEG en 24-bits Flate, DeviceGray voor CCITTFax); volgens TN0002 搂4.3 tellen de
/C- en/IC-arrays van markup-annotaties als DeviceRGB. ICCBased / CalGray / CalRGB / Lab-kleurruimten zijn vrijgesteld van de controle
Added
- Alleen-lezen eigenschappen
UsedDeviceGray,UsedDeviceRGBenUsedDeviceCMYKopTHotPDFtonen de lopende vlaggen voor apparaat-kleurruimtegebruik, zodat aanroepers de status van de consistentiecontrole v贸贸r EndDoc kunnen inspecteren
Version 2.141.0
Added
- XFA-formulieren kunnen nu als 茅茅n enkele
/XFA-stream worden uitgevoerd via de nieuwe methodeSetXFADocument, die een volledig XFA/XDP-document in 茅茅n stream plaatst (ISO 32000-1 搂12.7.8), als alternatief voor de pakketsgewijze array-vorm vanAddXFAPacket. De twee vormen sluiten elkaar uit - De nieuwe eigenschap
XFANeedsRenderingstelt de Catalog-vlag/NeedsRenderingin (ISO 32000-1 搂7.7.2) zodat een viewer een dynamisch XFA-formulier opnieuw genereert wanneer het document voor het eerst wordt geopend. Ze staat standaard uit, waardoor niet-XFA-documenten byte-identiek blijven
Changed
- De XFA-documentatie toont nu de vereiste
xdp:xdpbegin- en eind-wrapperpakketten voor de array-vorm van/XFA, zodat de pakketstreams samenvloeien tot een welgevormd XDP-document (ISO 32000-1 搂12.7.8)
Fixed
- MIME-typen in de
/Subtypevan ingesloten bestanden worden nu als correcte PDF-namen geschreven, waarbij/wordt ge-escaped als#2f(bijvoorbeeld/application#2fxml) conform ISO 32000-1 搂7.3.5, zodat strikte lezers het mediatype correct parseren. Geldt voorAddPDFA3AssociatedFileenAddXAdESAssociatedFile AddXAdESAssociatedFileweigert nu een lege XML-payload, omdat een XAdES-handtekeningstream niet leeg mag zijn
Version 2.140.5
Changed
- Het PAdES-documenttijdstempelwoordenboek geeft nu het door de specificatie vereiste
/Type /DocTimeStampin plaats van/Type /Sigen laat de invoeren/M,/Reason,/Locationen/ContactInfoweg die de norm aanduidt als 鈥瀖ogen niet aanwezig zijn", waardoor de conformiteit met ETSI EN 319 142-1 V1.2.1 搂5.4.3 verbetert - Het Signature VRI-subwoordenboek van de DSS verwijst nu naar dezelfde indirecte streams als de DSS-toplevelarrays
Certs,CRLsenOCSPs, in plaats van dubbele streamobjecten te schrijven. Dit voldoet aan het invariant uit ETSI EN 319 142-1 V1.2.1 搂5.4.2.3 en aan de aanbeveling in 搂6.3 noot s) om duplicatie van certificaatwaarden te vermijden - De waarde
/Extensions /ESIC /ExtensionLeveldie in de Catalog wordt gedeclareerd, wordt nu automatisch verhoogd naar 2 wanneer een PAdES-baseline-handtekening met/SubFilter /ETSI.CAdES.detachedwordt toegevoegd, aangezien vereiste l) van 搂6.3 in de norm wordt ge茂dentificeerd door Level 2; documenten die alleen DSS- of documenttijdstempelgegevens dragen, blijven Level 1 gebruiken
Added
- Een PAdES-handtekening kan nu tussenliggende CA-certificaten samen met het ondertekenaarscertificaat meeleveren binnen CMS
SignedData.certificatesvia de nieuwe optieAdditionalCertsDER, zodat een verifier een pad naar het vertrouwensanker kan opbouwen zonder externe lookup (ETSI EN 319 142-1 V1.2.1 搂6.3 noot b)
Fixed
- PDF/A-conformiteit: de Unicode-TTF-subsetter geeft nu de
/CIDSet-bitstroom op de fontbeschrijving van de afgeleide CIDFont uit wanneer PDFACompliance actief is. ISO 19005-1 搂6.3.5 / ISO 19005-2 搂6.2.11 / ISO 19005-3 搂6.2.11 vereisen dat gesubsetelde CIDFonts aangeven welke CIDs aanwezig zijn; zonder de stroom mislukt een strikte veraPDF-controle ook al zijn alle benodigde glyphs ingebed. De bitstroom is MSB-first volgens ISO 32000-1 搂9.7.4.2 (CID 0 in byte 0 bit 7) en wordt alleen in PDF/A-modus uitgevoerd, zodat niet-PDF/A-uitvoer byte-stabiel blijft
Version 2.140.4
Fixed
- Bij het incrementeel opslaan van een geladen PDF wordt een verweesd versleutelingswoordenboek dat in de bron is achtergebleven (en waarnaar de trailer niet meer verwijst) nu in de toegevoegde kruisverwijzingssectie als vrij gemarkeerd, zodat lezers die de nieuwste revisie volgen het verdwaalde woordenboek niet meer zien. De oorspronkelijke bytes blijven intact en documenten zonder zo'n restant worden precies als voorheen geschreven; dit vult de opschoning bij volledig opslaan uit 2.140.3 aan
Version 2.140.3
Fixed
- Bij het opslaan van een geladen PDF met AES-256 wordt een achtergebleven versleutelingswoordenboek niet meer uit het bronbestand meegekopieerd. Wanneer een brondocument een verweesd versleutelingswoordenboek behield waarnaar de trailer niet meer verwees, bevatte de uitvoer voorheen dat verdwaalde woordenboek naast het actieve; nu wordt alleen het versleutelingswoordenboek geschreven dat daadwerkelijk in gebruik is
Version 2.140.2
Added
- Het ondertekende Adobe-attribuut voor intrekkingsinformatie binnen een PAdES-handtekening accepteert nu naast de gebruikelijke CRL- en OCSP-vermeldingen ook intrekkingsbewijs buiten X.509, zodat een sectorspecifiek intrekkingstoken dat door een eigen OID wordt ge茂dentificeerd, met de handtekening kan meereizen
- Een PAdES-handtekening kan nu een CAdES content-hints-attribuut declareren dat beschrijft wat er is ondertekend; handig in workflows met meerdere handtekeningen waar een latere ondertekenaar het oorspronkelijke inhoudstype moet weten zonder het opnieuw te hoeven afleiden
Version 2.140.1
Fixed
- Het versleutelen van een geladen document met AES-256 loopt niet meer vast wanneer de tekstreeksen ervan zijn genest in arrays of andere niet-indirecte containers; dergelijke reeksen worden nu correct versleuteld in plaats van eindeloos door te lussen
- Het openen of ontsleutelen van een AES-256-document mislukt niet meer met een opvulfout wanneer het bestand een achtergebleven versleutelingswoordenboek uit de bron bevat; de ontsleutelaar slaat nu elk versleutelingswoordenboek over, zodat alle reeksinhoud correct wordt ontsleuteld
Version 2.140.0
Changed
- AES-256-versleuteling en -ontsleuteling gebruiken nu de AES-NI-hardwareversnelling van de CPU indien beschikbaar, met anders een draagbare software-implementatie. Op een typische desktop-CPU stijgt de AES-256-CBC-doorvoer bij versleutelen van ongeveer 148 MB/s naar 442 MB/s (ongeveer 3× sneller) en bij ontsleutelen van ongeveer 147 MB/s naar 832 MB/s (ongeveer 5,7× sneller)
- Het openen van een grote met een wachtwoord beveiligde PDF gebruikt nu aanzienlijk minder geheugen. De loader bewaart het volledige bronbestand niet langer in het geheugen tijdens het herstellen van de versleutelingssleutel en het ontsleutelen: AES-256-documenten halen wat ze nodig hebben uit het geparseerde objectmodel, en het oudere sleutelherstel leest nu alleen het einde van het bestand in plaats van het hele bestand. Voor een versleuteld document van meerdere gigabytes verdwijnt hiermee een tijdelijke geheugenpiek van ongeveer twee keer de bestandsgrootte
Version 2.139.3
Fixed
- Herschrijven en opslaan via de Direct File API is nu drastisch sneller bij zeer grote documenten. Het opnieuw opslaan van een bestand van 60.000 pagina's / 883 MB na een wijziging van metadata of objecten daalde van ongeveer 189 seconden naar ongeveer 21 seconden, doordat de kopieerbuffer per object nu wordt hergebruikt in plaats van voor elk object opnieuw te worden gereserveerd. Hetzelfde bestand openen of kopi毛ren via de Direct File API blijft rond de 2-3 seconden
Version 2.139.2
Fixed
- Bij het opnieuw opslaan van geladen PDF 1.5+-documenten met objectstreams en PDF 2.0-trailerdocumenten na
BeginDoc-bewerkingen blijft de paginastructuur nu geldig. Eerder kon een paginadictionary die uit een objectstream was hersteld opnieuw worden gekoppeld zonder/Type /Page, waardoor lezers naEndDoceen niet-paginaobject in de paginastructuur meldden
Version 2.139.1
Fixed
- Versleutelde documenten die AES-256 combineren met een cross-reference stream (optioneel naast gecomprimeerde objectstreams) heropenen en opslaan nu betrouwbaar opnieuw. Voorheen kon de loader, wanneer de data van een versleutelde stream toevallig begon met een newline-byte, die stream 茅茅n byte uit lijning lezen en het decryptieresultaat sporadisch beschadigen, waardoor een met wachtwoord beveiligd bestand soms niet kon worden geopend. De streamlezer volgt nu exact de datagrens en dergelijke documenten openen consistent
Version 2.139.0
Fixed
- Documenten die een cross-reference stream samen met gecomprimeerde objectstreams gebruiken (PDF 1.5 en later) worden nu gelezen door een standaardconforme loader. Het heropenen en opnieuw opslaan van zo'n document houdt de paginastructuur intact en behoudt de oorspronkelijke objectnummers; de vorige loader kon de paginastructuur laten vallen of objecten hernummeren en pagina's verliezen in de opgeslagen kopie
- Een stream waarvan de
/Lengthis opgeslagen als indirecte referentie wordt nu correct opgelost terwijl een cross-reference-stream-document wordt geladen, zodat de inhoud niet langer verloren gaat
Version 2.138.0
Fixed
- Documenten die een oudere PDF-headerversie verklaren, zoals
%PDF-1.3of%PDF-1.4, maar feitelijk een cross-reference stream gebruiken, worden nu correct geladen in plaats van te openen als een leeg document zonder pagina's. De routering wordt bepaald door de werkelijke cross-reference-structuur en niet door de gedeclareerde headerversie, zodat ook zeer grote bestanden van deze soort openen zoals verwacht
Version 2.137.9
Added
- CSV-uitvoer voor preflight-rapporten is toegevoegd via
pfCSVinCreatePreflightReport,SavePreflightReportenCreatePreflightReportWithProfile, met stabiele kolommencategory,name,status,value,specvoor werkbladen en batchwerkstromen - De PreflightReport GUI en HotPDFPreflight CLI kunnen nu CSV-uitvoer selecteren; de CLI accepteert
-f csvvoor enkele-bestands- en map-runs
Version 2.137.8
Fixed
- Het native AES-256 buffer decrypt-pad is versterkt zodat aanroepers het decryptieresultaat kunnen toewijzen aan dezelfde
AnsiStringdie de cijfertekstbuffer leverde zonder de invoerpointer ongeldig te maken
Version 2.137.7
Added
- One-based page-range string-ondersteuning is toegevoegd voor paginabewerkingen van loaded-document, inclusief
HPDFParsePageRange, range-overloads voorInsertPagesFromDocumentenExtractPagesToFile, enAppendPagesFromDocument OnPageOperationProgressis toegevoegd zodat append-, insert- en extract-werkstromen deterministische voortgang op paginaniveau kunnen rapporteren
Version 2.137.6
Added
THotPDF.DACopyFileis toegevoegd voor werkstromen met grote bestanden die alleen een paginaaantal en een originele byte-voor-byte opgeslagen kopie nodig hebben zonder de volledige normale objectgrafiek op te bouwen- De
HugeFileBenchmark-demo bevat nu eendirect-copy-rij, terwijl de standaard operatie-set nog steeds het volledigeLoadFromFile+SaveLoadedDocument-pad dekt
Changed
- Het geheugen kopi毛ren bij AES-256 stream-decryptie is verminderd door waar mogelijk vanuit bestaande buffers te decrypteren, inclusief geladen streamgeheugen voor grote versleutelde afbeeldingsstreams
Fixed
- Het bestandsgebaseerde laden van versleutelde PDFs is verbeterd zodat wachtwoordopeningen de hele bron-PDF niet langer in de cache plaatsen alleen om ruwe waarden van het encryptiewoordenboek terug te halen
Version 2.137.5
Added
- Direct File API object-source bewerking is toegevoegd voor werkstromen met grote bestanden: toepassingen kunnen een PDF openen met
DAOpenFileReadOnly, het aantal objecten en de bronlichamen inspecteren, objectlichamen vervangen of toevoegen, de documentinformatie bijwerken en een volledig herschreven kopie opslaan - De
HugeFileBenchmark-demo bevat nu eendirect-rewrite-bewerking en documenteert HTML/CSV-benchmarkruns voor alleen-afbeelding en gemengde tekst/afbeelding enorme PDF's
Changed
- Expanded Direct File API indexing to cover traditional xref tables and xref streams, including compressed object entries, so image-heavy PDFs and object-heavy PDFs can use the lightweight path
- Optimized Direct File API full rewrites by copying unchanged direct objects in source-offset order and merging contiguous ranges, greatly reducing random I/O on PDFs with hundreds of thousands of objects
Version 2.137.4
Added
- De GUI ondersteunt nu standaard text-, JSON- en HTML-rapporten, optionele wachtwoorden, profile INI files, ingebouwde presets, single-file PDF/VT validation, embedded-report PDF output, report preview, status logging, automatic output naming en snelle toegang tot gegenereerde bestanden
Changed
- De Delphi-demo
PreflightReportis uitgebreid van een console sample naar een interactieve VCL GUI tool voor single-file preflight workflows
Removed
- Het oude startgedrag is verwijderd: zonder command-line arguments worden geen sample PDF en report meer automatisch aangemaakt
Version 2.137.3
Added
- PDF/VT-validatie herkent nu XMP-eigenschappen die zijn geschreven als RDF-attributen evenals elementtekst, met dekking voor gangbare
pdfvtid:GTS_PDFVTVersion-,pdfvtid:GTS_PDFVTModDate- enxmp:ModifyDate-pakketstijlen
Fixed
- Delphi-regressiedekking is toegevoegd die detectie van PDF/VT-metadata in attribuutstijl gescheiden houdt van de overige structurele PDF/VT-controles
Version 2.137.2
Changed
- Validatie van ingebedde preflight-rapporten is verbeterd zodat bron-PDFs die legitiem eindigen met een afsluitend regelteken na
%%EOFblijven overeenkomen met hun opgeslagen vingerafdruk
Fixed
- Preflight-profielen die als UTF-8 met BOM zijn opgeslagen, worden nu correct geladen wanneer de eerste regel een sectie-koptekst is
- De decodering van PDF literal string escapes is versterkt, wat de wachtwoordvalidatie en niet-versleutelde kopie-uitvoer voor versleutelde PDFs met ge毛scapete owner- of user-vermeldingen verbetert
Version 2.137.1
Changed
- De CFF-parser-veiligheid is uitgebreid naar directe byte-array-controles, waarbij de lezerpositie wordt hersteld na ongeldige invoer en verouderde layout-status wordt gewist bij mislukte controles
Fixed
- De C++Builder-wrapper-compatibele CFF-streamloader is versterkt zodat nil-stream-invoer
Falseretourneert en de wrapper-status reset in plaats van de stream te dereferenti毛ren
Version 2.137.0
Added
THotPDF.ValidatePDFVTis toegevoegd met wachtwoord-bewuste overloads voor gerichte PDF/VT-validatie. Het tekstrapport controleert de PDF/VT-claim in XMP, de metadata-namespace, het overeenkomen van de PDF/VT-wijzigingsdatum, de PDF/X-basismarkering, output intent,DPartRoot-structuur van de catalogus, laadbare pagina's enDPart-dekking op paginaniveau- De zelfstandige
HotPDFPreflight-CLI accepteert nu--pdfvtom.pdfvt.txt-validatierapporten te schrijven voor een enkele PDF of een recursieve directoryscan
Version 2.136.8
Added
- Extra smoke-dekking voor Type 1/CFF toegevoegd voor beschadigde CFF- en Type 1-stromen, inclusief behoud van de stroompositie en opruimen van achtergebleven metadata na mislukte parseraanroepen
Changed
- De foutafhandeling van de Type 1 PFB- en CFF-parser is verbeterd zodat controles op beschadigde stromen de invoerpositie behouden en oude metadata wissen in plaats van een eerdere fontnaam zichtbaar te laten na een mislukte controle
Version 2.136.7
Changed
- De smoke-test voor Type 1/CFF is uitgebreid met CFF-gegevens in geheugen, ASCII Type 1 fontgegevens, het laden van PFB-bestanden op wrapperniveau en het laden van CFF-stromen op wrapperniveau, om zowel de integratiepunten voor Delphi als C++Builder te beschermen
Fixed
- De instappunten van de Type 1 PFB- en CFF-parser zijn aangescherpt zodat controles op basis van stromen de streampositie van de aanroeper behouden, beschadigde gegevens veilig weigeren en basisfontmetadata via de Delphi- en C++Builder-wrapperpaden beschikbaar maken
Version 2.136.6
Added
- Toegevoegd: Delphi-demos voor Unicode CJK-tekstuitvoer, het genereren van grote meerpagina-documenten, PFX-ondertekening en uitgebreidere dekking voor beeldcompressie met CCITT Group 3 1D- en 2D-uitvoer
Version 2.136.5
Changed
- Preflightrapporten gaan nu door wanneer een geladen paginainvoer geen MediaBox kan teruggeven. Het rapport markeert die pagina als niet beschikbaar in plaats van af te breken, zodat grote of inconsistente paginabomen nog steeds diagnostische uitvoer opleveren
- Meerdere byte-niveau preflightscanners zijn geoptimaliseerd om herhaalde volledige kopieën van de staarttekenreeks en lineaire zoekacties naar dubbele objecten te vermijden. De voorbeeldcase met 10.000 pagina's binnen de implementatielimiet blijft nu binnen het stress-testbudget van 120 seconden
- De preflight-stresstester gebruikt nu standaard een timeout van 120 seconden per bestand, en de PreflightReport-demo bouwt weer schoon na het profielbewuste uitvoerpad
Version 2.136.4
Added
- Een preflight-cookbook, een gegenereerde preflight-API-kaart en een stress-testworkflow voor grote mappen zijn toegevoegd voor de opdrachtregeltool
HotPDFPreflight. De stresstester isoleert elke PDF achter een timeout per bestand en legt JSON-, Markdown-, CSV-, rapport- en logbewijzen vast
Changed
- Er is een basislijn met 1000 bestanden vastgelegd voor
D:\PDFdoc\PDF-Samples: 997 geslaagd, 1 mislukt, 2 time-outs, 111.422 seconden verstreken, 8.975 bestanden per seconde
Fixed
- Een probleem met volledige herbouw in de preflight-fingerprinthelper is opgelost door de helper te declareren vóórdat
CreatePreflightReporthem gebruikt, zodat consolehulpmiddelen dieHPDFDoc.pasuit broncode herbouwen netjes compileren
Version 2.136.3
Added
- De zelfstandige CLI-tool
HotPDFPreflightkrijgt een optie--aggregate <file>die na afloop van de per-bestandsrapporten een batchesamenvatting schrijft die wordt geproduceerd doorTHotPDF.AggregatePreflightReports. De aggregatie vermeldt elke verwerkte PDF met status / grootte / waarschuwingsaantallen en totalen
Changed
- Werkt met losse bestanden en recursieve mapdoorlopen, met of zonder
--profile/--preset. De aggregatie wordt berekend op basis van de tekstinhoud van elk rapport, zodat filtering op profiel zichtbaar is in de samenvatting - Example:
HotPDFPreflight C:\Archive -r --preset silent-actions -f json -o C:\Archive\reports --aggregate C:\Archive\Aggregate.txtschrijft JSON-rapporten voor elke PDF plus één batchesamenvatting
Version 2.136.2
Added
- De zelfstandige CLI-tool
HotPDFPreflightkrijgt de opties--profile <file>en--preset <name>om elk rapport via een preflightprofiel te filteren vóór het wegschrijven ervan. Werkt samen met-f text|json|html,-p <password>en recursieve mapdoorlopen met-r
Changed
- De twee nieuwe opties sluiten elkaar uit (als beide worden doorgegeven, wint de laatst opgegeven). De presetwaarden komen overeen met wat
THotPDF.GetBuiltInPreflightProfileherkent, zodat CI-pijplijnen een canonieke configuratie kunnen ophalen zonder een INI-bestand klaar te zetten - Example:
HotPDFPreflight C:\Archive -r --preset silent-actions -f json -o C:\Archive\reportsschrijft JSON-rapporten voor elke PDF in de mappenboom met het presetsilent-actionstoegepast
Version 2.136.1
Added
- De Delphi-demo
PreflightReportaccepteert nuprofile=<file>ofpreset=<name>als extra CLI-argument om het rapport via een profiel te filteren vóór het wegschrijven ervan. Werkt naast de bestaande uitvoerformaatvlagjson/html/embed
Changed
- Examples:
PreflightReport.exe Input.pdf Report.txt "" text profile=tuned.iniofpreset=compact/preset=silent-actions - De presetwaarden volgen de namen die
THotPDF.GetBuiltInPreflightProfileherkent, zodat de demo ook als testomgeving voor profielen fungeert zonder dat er een INI-bestand hoeft te worden gemaakt
Version 2.136.0
Added
- Voegt
THotPDF.MergePreflightProfilestoe voor het stapelen van profielen. Het resultaat is de gededupliceerde unie van beide invoeren (DisableChecksenDisableWarningsworden samengevoegd,DisableHintsis een logische OR), nuttig om een preset zoalscompactte combineren met projectspecifieke aanpassingen - Voegt
THotPDF.DiffPreflightProfilestoe voor structurele vergelijking. GeeftTrueterug wanneer twee profielen gelijkwaardig zijn, anders vermelden deOnlyInA- enOnlyInB-uitparameters de uitsluitend aan elke kant aanwezige items als newline-gescheiden tokenscheck:<name>/warn:<name>/option:hints=false
Changed
- De twee helpers maken de levenscyclus van profielen compleet:
Load/GetBuiltIn/Save/Apply/Validate/Merge/Diff
Version 2.135.0
Added
- Voegt
THotPDF.CreatePreflightReportWithProfiletoe, een alles-in-één gebruiksvriendelijke wrapper dieCreatePreflightReport,LoadPreflightProfile,ApplyPreflightProfileen de formaatconverters in één aanroep samenbrengt - De nieuwe overload accepteert een bron-PDF, optioneel wachtwoord, optioneel profielbestand en doelopmaak (
pfText,pfJSONofpfHTML) en geeft de uiteindelijke rapporttekst terug. Een leegProfileFileslaat de profielstap helemaal over, zodat aanroepers één aanroep kunnen blijven gebruiken, ongeacht of er een profiel is geconfigureerd
Changed
- De vier onderliggende API's blijven beschikbaar, zodat bestaande aanroepketens ongewijzigd blijven werken; de nieuwe wrapper is puur aanvullend
Version 2.134.0
Added
- Voegt
THotPDF.SavePreflightProfiletoe voor het wegschrijven van eenTHPDFPreflightProfile-record naar een INI-bestand. Het uitvoerformaat komt overeen met watLoadPreflightProfileinleest, zodat de twee functies exact elkaars inverse zijn voor goed gevormde profielen
Changed
- Maakt een workflow 'preset laden, aanpassen, opslaan' mogelijk: haal een ingebouwd preset op met
GetBuiltInPreflightProfile(v2.133.0), wijzig de lijsten of vlaggen, en sla daarna het resultaat op metSavePreflightProfilevoor later hergebruik of delen tussen projecten - Secties zonder inhoud worden weggelaten uit de uitvoer, zodat een leeg profiel één enkele commentaarregel oplevert in plaats van drie lege sectiekoppen