HotPDF Releaseopmerkingen
Versiegeschiedenis van voor gebruikers zichtbare HotPDF-functies, fixes, compatibiliteitsupdates en documentatiewijzigingen
Let op: alleen de laatste 800 wijzigingsrecords worden bewaard
Last release
- Laatste versie: 2.974.0; Releasedatum: 2026-10-11
Version 2.974.0
Added
- Verwijder pagina-annotaties op exacte pagina en Unicode-naam, inclusief popup- en reply-cascades, via begrensde native API's, Windows-transacties, JSON-jobs en versioned callbacks met geauthenticeerde permissions en publicatie-rollback
Version 2.973.0
Added
- Wissel binaire FDF-annotaties uit met behouden appearance-resources, gedeelde objectgraven en lokale action-destinations via native API's, Windows-interchange en versioned callbacks
Version 2.972.0
Added
- Render annotatie-default-appearances met behouden tekststatus, automatic fitting, rich-text-spacing en text clipping, inclusief rendering-modi 4 tot en met 7
Version 2.971.1
Fixed
- Voorkom range-check-fouten in de publieke shaped-run-cache op FPC 3.3.1 Windows-builds door expliciete 32-bits modulaire hashvermenigvuldiging, exacte cache-key-isolatie en LRU-eviction te behouden
Version 2.971.0
Added
- Match root :scope en laat statische hover-, active- en focus-pseudo classes met inactieve interaction state toe, met behoud van negatie, logische en relatieve selectors, support queries en opgeslagen FDF/XFDF-appearances
Version 2.970.0
Added
- Evalueer native rich-text @supports-groepen en supports()-imports met ondersteunde declaratie- en selector-queries, begrensde geneste condities, namespace-aware probes, annuleringsherstel en berekende opgeslagen FDF/XFDF-appearances
Version 2.969.0
Added
- Evalueer eindige calc-, min-, max- en clamp-expressies, root-relatieve en expliciete viewport-lengtes en line- en spacing-metrics van de uiteindelijke font in native rich-text-decoding, opgeslagen field-appearances en rich FDF/XFDF-imports
Fixed
- Laat exacte minimale media-dimensies, resolutie en initiële fontgroottes consistent toe over compilerdoelen heen terwijl waarden onder de ondersteunde grens geweigerd blijven
Version 2.968.0
Added
- Evalueer expliciete rich-text color scheme, reduced motion-, transparantie- en data-voorkeuren, contrast, forced en inverted colors en scripting-beschikbaarheid, met behoud van onbekende weggelaten voorkeuren en berekende opgeslagen appearances
Version 2.967.0
Added
- Pas door de caller geleverde gelinkte en geïmporteerde rich-text style sheets toe met gedeelde preferred of alternate title-sets, begrensde URI- en document-base-resolutie en transactionele native, Windows- en Linux-FDF/XFDF-publicatie
Version 2.966.0
Added
- Evalueer native rich-text-media-queries met expliciete print/screen-profielen, geneste condities en begrensde feature-bereiken, met behoud van berekende styles in opgeslagen appearances en transactionele FDF/XFDF-imports
Version 2.965.0
Added
- Creëer, kloon en bewerk native XFA-formulierbomen transactioneel, met behoud van overlevende node-identiteiten, event-rollback, ondersteunde empty-merge-occurrences en opgeslagen formulierpackets onafhankelijk van authored templates
Version 2.964.0
Added
- Genereer native plain-, rich-, shaped- en family-appearances vanuit complete OpenType CFF2-fonts op default-variation-coördinaten, met behoud van glyph-identiteit, Unicode, breedtes en embedding-permissions in begrensde statische CID-keyed CFF 1-uitvoer
Version 2.963.0
Added
- Pas scoped CSS-namespace-declaraties en gekwalificeerde selectors toe op native rich-text-velden en Windows/Linux-formuliertransacties, met behoud van berekende appearances, begrensde namespace-opzoeking, exacte no-op-publicatie en checked-build-compatibiliteit
Version 2.962.0
Added
- Breek gegenereerde annotatietekst met rauwe fonts af op spatie- en koppelteken Grenzen over style-runs heen, met behoud van complete gecodeerde tekens, harde breuken, automatische groottebepaling en begrensde cancellation
Version 2.961.0
Added
- Render ontbrekende annotation text appearances met originele Type1C-, CIDFontType0C- en kale Type1-fontprogramma's, met behoud van Unicode-mappings, automatische groottebepaling, spatiëring, regelhoogte en begrensde immutable resources
Version 2.960.0
Added
- Transporteer standaard XFDF Stamp normal-, rollover- en down Form-appearances met ingebedde font- en imageresources, begrensde acyclische grafen, geauthenticeerde native transacties en bestaande Windows/Linux-callbacks
Version 2.959.0
Added
- Pas complexe not-lijsten, vergevingsgezinde is- en where-lijsten, verankerde has-relaties en gefilterde nth-child-posities toe op native interne rich-text stylesheets, met behoud van selectorspecificiteit, berekende waarden, fonts en transactionele FDF/XFDF-appearances
Version 2.958.0
Added
- Bereik levende native Data DOM-kindverzamelingen via read-only numerieke indices in JavaScript en FormCalc, met behoud van de huidige kindvolgorde, vastgehouden script-object-verwijzingen, onafhankelijke clones, bewaarde waarden en PDF-appearances
Fixed
- Wijs numerieke toewijzing, verwijdering en propertydefinitie af, zowel op huidige verzamelingen als binnen vastgehouden lexicale scriptobjecten, met begrensde event-rollback en retry
Version 2.957.0
Added
- Pas attribuutselectors, sibling-combinatoren, structurele en positionele pseudo-classes, geërfde taalmatching en samengestelde negatie toe op native interne rich-text stylesheets, met behoud van werkelijk berekende waarden, fonts, bewaarde appearances en transactionele FDF/XFDF-imports
Version 2.956.1
Fixed
- Los FormCalc nodes child-list-paden op via de werkelijke event-compiler, met behoud van levende form/property-verzamelingen, Data DOM-itemtoegang, begrensde replay, bewaarde native waarden en PDF-appearances
Version 2.956.0
Added
- Genereer native platte, rich en shaped field appearances uit complete OpenType CFF-fonts, met behoud van op naam geadresseerde glyph-identiteiten, echte CID-keyed charsets, Unicode-mappings, embedding-rechten en gedeelde fontresources; render ontbrekende FreeText-appearances met ingebedde OpenType-defaults
Fixed
- Begrens CFF-parsing en glyph-metrics, behoud cancellation en immutable per-style readers en preserve TrueType-gedrag over zes native compiler-doelen heen
Version 2.955.1
Security
- Wijs all-zero X25519- en X448-shared secrets af na canonieke byteserialisatie, inclusief low-order invoer waarvan de zwakke veldleden niet-nul zijn, en houd het agreement-resultaat false met een leeg secret en een verse diagnostic
Fixed
- Behoud draagbare SHA3/SHAKE-constanten en opzettelijke modulo-2^64 key-agreement-rekenkunde wanneer integer-overflow- en rangechecks aan staan, inclusief full-width P-256-, P-384- en P-521-uitwisselingen op 32-bit Free Pascal
Version 2.955.0
Added
- Voeg levende JavaScript form/property-kindverzamelingen toe met length, indexed reads, item, namedItem, iteratie en onafhankelijke clones; behoud eigenaarsidentiteit over events, edits van herhaalde instanties en impliciete propertycreatie heen, met bewaarde native waarden en PDF-appearances
Fixed
- Houd vastgehouden levende lijsten gekoppeld aan hun huidige event-eigenaar, wijs verwijderde eigenaren af zonder op een andere instantie te hermappen en behoud native waarden, vastgehouden state en journal-rollback bij verzamelingsallocatie-, operatie- en deadlinefalingen
Version 2.954.0
Added
- Pas interne XHTML-stylesheets toe op native rich-text-velden en FDF/XFDF-imports met type-, class- en ID-selectors, descendant- en child-combinatoren, gegroepeerde selectors, Unicode-identifier-escapes, specificiteit, importance en bronvolgorde
Fixed
- Behoud berekende styles in werkelijk bewaarde waarden en widget-appearances, met begrensd scannen en matchen, cancellation, exacte vastgelegde no-op-bytes en transactionele callback-rollback
Version 2.953.0
Added
- Voeg onafhankelijke XFA query node-verzamelingen toe met all-, classAll-, classIndex-, clone- en membership-operaties, stabiele vastgehouden verwijzingen, begrensde transactionele replay en native saved-PDF-consumptie
Fixed
- Houd vastgehouden opgevraagde instance managers gekoppeld aan de huidige event-grafiek en evalueer gewone SOM-paden en predikaten binnen de originele default-stack- en operatielimieten
Version 2.952.0
Added
- Behoud remote GoToR-annotatiebestemmingen via native, gewone Windows en geversioneerde callback XFDF-uitwisseling, inclusief exacte coördinaten, Unicode-bestandsspecificaties en optioneel venstergedrag
Fixed
- Authenticeer gewone annotatie-imports van geladen documenten tegen originele versleutelingsrechten, handtekeningen en veldvergrendelingen terwijl toegestane edits van de aanroeper en onafhankelijke bronlevensduur behouden blijven; lees handtekening-ByteRange-integers zonder Single-afronding en koppel gedeelde RC4-stringopslag los vóór versleuteling
Version 2.951.0
Added
- Render begrensde wolkvormige randen voor Square-, Circle-, Polygon- en FreeText-annotaties zonder normale appearances, met behoud van breedte, dash, opaciteit en brongrafen; deel immutable gegenereerde fontbytes over FreeText-weergaven heen zonder herhaalde decoded-byte-berekeningen terwijl parsingbudgetten en cancellation behouden blijven
Version 2.950.0
Added
- Maak, clone, hernoem, voeg in en verwijder native XFA Data DOM-nodes met begrensd eigendom, geërfde namespaces, stabiele geïmporteerde verwijzingen, bindingverversing en complete event-rollback; behoud UTF-8-attributen en vastgehouden FormCalc-verwijzingen via bewaarde XML en native PDF-consumenten
Version 2.949.0
Added
- Behoud het onderscheid tussen geen geselecteerde choice-opties en een geselecteerde lege exportwaarde via native, Windows en Linux XFDF-uitwisseling, met exacte no-op-publicatie, begrensde validatie en gecontroleerd laden van versleutelde documenten
Version 2.948.0
Fixed
- Render gevulde glyph-maskers met vastgelegde fractionele clip-dekking terwijl PDF-paden, patterns, alpha en blend-operatoren behouden blijven, en controleer de raster-working-memory-capaciteit vóór allocatie
Version 2.947.1
Fixed
- Behoud expliciete lege default XML-namespace-declaraties tijdens XFA-parsing en -serialisatie, zodat niet-gekwalificeerde data-subbomen na opslaan en herladen geen ancestor-namespace overerven
Version 2.947.0
Added
- Render afgeschuinde en ingezette rechthoekige annotatieranden en gemeten Unicode- of rich-regel-captions, met behoud van opaciteit, eindpuntoffsets, bestaande appearances, begrensde fontresources en annotatieclipping
Version 2.946.3
Fixed
- Pas xfa.host.resetData toe via native events zonder het te verkeerd lezen als een Data XML-import, met behoud van template-defaults, gekoppelde waarden, herhaalde scopes, openstaande edits en transactionele rollback
Version 2.946.2
Fixed
- Fix SHA-1-, SHA-256-, SHA-384- en SHA-512-word-rekenkunde met compiler-range- en overflowchecks ingeschakeld, met behoud van geldige digests en AES-256-wachtwoordauthenticatie zonder publieke interfaces te veranderen
Version 2.946.1
Fixed
- Behoud leeg-aanwezige XFA-attributen en UTF-8-namen, -waarden, -namespaces en geïndexeerde queries via native XML-serialisatie, persistente property-defaults, herhaalde script-events en transactionele rollback
Version 2.946.0
Added
- Render tijdelijke rich annotatietekst met expliciete read-only Preview/Print-fontrechten en ongewijzigde volledige-fontbytes, met behoud van bewerkbare embedding-policies en bestaande Screen-appearances zonder impliciete media-placeholders
Version 2.945.0
Added
- Behoud lokale annotatiepagina's en benoemde bestemmingen via native en legacy XFDF-uitwisseling, met exacte begrensde decimale tokens, gekwalificeerde Adobe-XML, duplicaat-attribuutvalidatie en transactionele Windows/Linux-callback-publicatie
Version 2.944.0
Added
- Beheer levende XFA choice-display- en exportitems via JavaScript en FormCalc, met behoud van overlevende aliassen, exacte duplicaat- of lege selecties, native per-instance lijsten en bewaarde native of legacy PDF-appearances onder begrensde mutatielimieten
Version 2.943.1
Fixed
- Behoud exacte geladen PDF-bytes wanneer native gemengde scalair- en getypeerde rich-text-transacties of lege batches niets wijzigen, met behoud van openstaande grafiekedits, geauthenticeerde handtekening- en versleutelingspolicies, resourcelimieten en atomische publicatie
Version 2.943.0
Added
- Wissel gemappte annotatie-XFDF uit via Windows file jobs en originele V1-callbacks met geauthenticeerde append-transacties, begrensde binaire en Unicode-data, exacte no-op-bytes en atomische publicatie
Version 2.942.0
Added
- Render ondersteunde annotaties zonder normale appearances via begrensde tijdelijke geometrie, regeleinden, iconen en Unicode FreeText, met behoud van bronresources, rich text, view/print-vlaggen en cancellation
Version 2.941.1
Fixed
- Valideer uniciteit van native XFA-choice-selecties met begrensd annuleerbaar sorteren terwijl exacte case-sensitive exportwaarden, de originele selectievolgorde en transactioneel faalgedrag behouden blijven
Version 2.941.0
Added
- Pas onafhankelijk gecascadeerde native CSS en originele getypeerde letter- en woordafstand toe op shaped runs, fysieke regels, fitting en bewaarde appearances, met geserialiseerde berekende points, exacte decimale afronding en transactionele Windows/Linux-JSON-publicatie
Version 2.940.0
Added
- Wissel achttien gemappte annotatietypes uit via begrensde native XFDF- en Linux V1 JSON-operaties, met behoud van Unicode rich contents, callouts, transparante kleuren, binaire bijlagen, popup- en forward-reply-verwijzingen, geauthenticeerde rechten en transactionele append-publicatie
Version 2.939.0
Added
- Maak legacy XFA-combo- en lijstvelden aan met exacte herhaalde-instantie-exports, displaylabels, geselecteerde indices, scrollposities en opgemaakte Unicode-appearances, met behoud van hoge veldvlaggen en per-veld-rollback via een detached choice-factory met aangeleverd font en een modus met alleen metadata
Version 2.938.0
Added
- Render de vier standaard kleurintents over graphics states, forms, images, shadings, patterns en transparency groups heen, met image-overschrijvingen, relatieve fallback voor onbekende namen en begrensde annuleerbare ICC-transformatiecache
Version 2.937.0
Added
- Maak onafhankelijke legacy XFA-radiogroepen aan vanuit werkelijke herhaalde-instantie-scopes, met behoud van exacte exports, geselecteerde states en opgemaakte Unicode-captions met rollback van hele groepsovername en een detached native member-appearance-API met aangeleverd font
Version 2.936.1
Added
- Pars geldige PDF-dictionaries en trailers met arithmetic-overflow-controle ingeschakeld door expliciet de lage 32 bits van de FNV-hash-vermenigvuldiging vast te houden
Version 2.936.0
Added
- Bind expliciete getypeerde JSON rich-text-regelhoogtes aan bewaarde Windows- en Linux-appearances, met behoud van geschreven runs, aangeleverde ouder-metrics, begrensde totale planning en transactionele gemengde-veld-updates
Version 2.935.1
Added
- Tel supplementaire Unicode-tekens één keer in draagbare XFA-wachtwoord-appearances, behoud originele waarden en dwing totale glyph-budgetten af voordat maskers worden gealloceerd met scalair-granulaire cancellation
Version 2.935.0
Added
- Behoud rich-text-regelhoogte, berekende CSS-lengtes, geërfde factoren en ouder-fontmetrics over native layout, bewaarde appearances, Windows file jobs en callbacks en Linux FDF/XFDF-JSON-imports heen, met begrensde metric-fontplanning
Version 2.934.0
Added
- Maak echte Unicode legacy XFA text-, numeric-, date- en password-appearances aan met effectieve per-instance fontfamilie en -style, bewerkbare ingebedde fontresources, scalair wachtwoordmaskering en transactionele resource-adoptie
Version 2.933.0
Added
- Evalueer multidimensionale gesamplede cubische kleurfuncties met de bestaande vier-knoop-scalairconventie, lineaire fallback in de korte dimensie, begrensd tensorwerk, cancellation en ongewijzigde scalair-interpolatie
Version 2.932.0
Added
- Decodeer signed en unsigned JPEG 2000-componenten via 26 bits met gemengde precisie, subsampling en opaciteit, normaliseer begrensde samples en negeer JPX-image BitsPerComponent-declaraties vóór het renderen
Version 2.931.0
Added
- Behoud legacy XFA-checkbox on-, off- en neutral-exportstates, opgemaakte Unicode-captions en native appearance-bundels, codeer speciale PDF-namen consequent en herstel directe pagina-resources na geannuleerde widget-adoptie
Version 2.930.0
Added
- Evalueer automatische optional-content-usage-toepassingen met expliciete zoom-, taal- en gebruikerscontext, persistente native handmatige selecties en begrensde Linux JSON-operatiestatus; maak geleende rendering-contexts ongeldig na documentwijzigingen
Version 2.929.0
Added
- Bouw scalaire tekst, comb-cellen, choicelabels en button-merken uit geordende aangeleverde regular-fontfamilies over native setters, Windows jobs en geversioneerde Windows/Linux-callbacks heen; behoud gewone scalair-metadata en onderscheid een lege choice-selectie van een geselecteerde lege export
Version 2.928.0
Added
- Render ExtGState dash-arrays en -fasen met begrensd scannen van getypeerde PDF-arrays, met behoud van comments, strenge operandvalidatie, geërfde stroke-geometrie, cancellation en gewone tekstarrays
Version 2.927.0
Added
- Schilder originele Windows ApplyXFAAsAcroForm push-button scalaire en rich captions met werkelijk geïnstalleerde familie-/style-programma's, persistente per-instance overrides en native normal/down/rollover-appearance-bundels, met registratie van echte AcroForm-fontresources
Version 2.926.0
Added
- Vouw begrensde inline CSS font-shorthand uit naar onafhankelijk gecascadeerde size-, weight-, italic- en aangeleverde familie-kandidaten, met behoud van geërfde relatieve groottebepaling, resets van weggelaten styles, important-componentprioriteiten en echte bewaarde font-appearances
Version 2.925.0
Added
- Selecteer geordende door de aanroeper aangeleverde fontfamilies voor complete opgemaakte rich-text-graphemes via Windows file jobs en V1-callbacks, met behoud van CSS- en getypeerde kandidaten, echte lege-waarde-transacties en totale fontbudgetten
Version 2.924.0
Added
- Render default document optional-content-groepen en membership-expressies over gemarkeerde pagina-inhoud, form XObjects en annotaties heen, behoud verborgen graphics- en tekststate en ontsluit expliciete view- of print-usage via de native Linux V1 JSON-interface
Version 2.923.0
Added
- Behoud geordende rich-text-font-kandidatenlijsten via native appearances en Linux V1 JSON en koppel gemengde scalaire en originele getypeerde runs aan Windows file jobs en ongewijzigde V1-callbacks met nauwkeurig tekenen, aangeleverde style-programma's en publicatie in twee fasen
Version 2.922.0
Added
- Selecteer native annotatie-view- of print-zichtbaarheid met de PDF 2.0 Invisible-regels, herken RichMedia- en Projection-statische appearances en impliciete Text-transformaties en behoud begrensde annuleerbare Windows PNG-atomische vervanging met echte OS-error-diagnostics
Version 2.921.0
Added
- Render native XFA push-button scalaire en XHTML-captions met echte aangeleverde familie- en style-programma's, behouden inline scheidingstekens en geschreven padding, echte normal/down/rollover-appearances, caption-zichtbaarheid en persistente herhaalde-instantie-overrides
Version 2.920.1
Fixed
- Houd geslaagde native Linux C ABI PDF-mutaties uitgelijnd met hun vastgelegde bron-snapshot, zodat volgende FDF- of XFDF-imports met dezelfde waarde de exact gepubliceerde formulierwaarden, getypeerde appearances, getekende tekst en geïmporteerde pagina's behouden in plaats van verouderde invoerbytes te herstellen
Version 2.920.0
Added
- Sla gemengde scalaire velden en originele getypeerde rich-text-runs op in één onafhankelijke atomische documenttransactie, behoud nauwkeurige appearance-waarden en aangeleverde fontprogramma's, preserve geauthenticeerde policies en huidige grafiekedits en herken echte read-only appearance no-ops
Version 2.919.0
Added
- Los complete opgemaakte Unicode-graphemes op via expliciet aangeleverde kandidaat-fontfamilies, behoud geschreven waarden en nauwkeurige appearance-styles, ontsluit opt-in native Linux JSON-fallback via ongewijzigde V1-callbacks en behoud de werkelijke totale fonttoelage tijdens het laden van geconfigureerde programma's
Version 2.918.0
Added
- Render native XFA Boolean-captions vanuit effectieve XHTML en aangeleverde benoemde style-fonts, behoud herhaalde-instantie-overlays en bewaarde runtime-XML en meet automatische caption-reserves met de definitieve logische tekstregel-omvang
Version 2.917.0
Added
- Selecteer echte benoemde familie- en style-programma's voor Windows FDF- en XFDF-imports via geneste bestandspaden of bestaande geversioneerde font-callbacks en isoleer gesynchroniseerde willekeurige bronlezingen van sequentiële transactiepublicatie
Version 2.916.0
Added
- Decodeer en render 182 ingebouwde legacy CMaps met begrensde codes van één tot vier bytes, exacte ouder- en kind-schrijfrichtingen, Unicode-mappings, deterministisch herstel van malafide codes, annuleerbare overerving en meegeleverde redistributievermeldingen
Version 2.915.0
Added
- Houd geselecteerde native XFA-lijstopties zichtbaar via selectievensters op fontmetrics en persistente top-indices, behoud complete optie- en waardearrays en behoud herhaalde-instantie-fontwijzigingen en event-rollback met begrensde voorbereiding van zichtbare glyphs
Version 2.914.1
Fixed
- Laat memory-cache-hits op de voorgrond overlappen met cooperatieve prefetch-cancellation na het verkrijgen van de echte geheugenreservering, behoud operatiecache-telemetrie en controleer cancellation opnieuw na wachten op cachelocks of reserveringen terwijl strenge miss-volgorde en thread-joins behouden blijven
Version 2.914.0
Added
- Maak native XFA Boolean-appearances aan met zes eigen merken, ronde of vierkante randen, merkkleuren en -groottes, vijf caption-plaatsingen en gedeelde ingebedde caption-fonts; behoud omkeerbare Unicode-exportaliassen en onderscheidende geldige neutral-states via event-uitvoering en herladen van bewaarde PDF's
Version 2.913.2
Fixed
- Decodeer complete gedraaide matrixbarcodes vóór losse fragmenten en wijs exacte QR-finder-mismatches af vóór volledige grid-sampling, met strakkere groepering, origineel lineair-balkgedrag, atomische scanbudgetten en de ongewijzigde deadline van twee seconden
Version 2.913.1
Added
- Los bestaande impliciete XFA-waarden op via begrensde levende datacontexten zonder selector-parsing te herhalen die op de script-operatietoelage werd verrekend, met behoud van originele transactiedeadlines en expliciet bindinggedrag
Version 2.913.0
Added
- Selecteer geconfigureerde native rich-fontfamilies via ongewijzigde Linux V1 JSON-callbacks voor getypeerde fills en FDF- of XFDF-imports, laad werkelijk vereiste familie- en style-programma's met totale budgetten en adverteer beide geïmplementeerde rich-profielen
Version 2.912.0
Added
- Importeer en exporteer echte FDF of XFDF via Windows file jobs en V1-callbacks met immutable eigendomsinvoer, voorbereiding van de huidige niet-opgeslagen grafiek, echte vier-font rich-appearances, geauthenticeerde getekende AES-policies en contextcommit pas nadat beide uitvoer-callbacks zijn geslaagd
Version 2.911.0
Added
- Maak native XFA rectangle-, line- en arc-tekeningen en inline PNG- of JPEG-images aan met echte sample-decodering, alpha-maskers, passende aspectverhouding en gedraaide plaatsing, begrensde preparatie en transactioneel eigendom onder cancellation
Version 2.910.0
Added
- Pass NoZoom- en NoRotate-annotation-appearances rond de getransformeerde linksboven-rechthoekanker, met behoud van UserUnit, passende formuliergeometrie, opaciteit en de werkelijke pagina-clip over schaling en rotatie heen
Version 2.909.0
Added
- Selecteer werkelijk aangeleverde benoemde TrueType-families per rich run en begrensde XHTML font-family-declaratie, behoud per-familie style-metrics en merkcaches en importeer echte FDF- of XFDF-rich-waarden met familiebewuste canonieke vergelijking
Version 2.908.1
Fixed
- Pas geldige inline rich-text-declaraties toe met onafhankelijke important-prioriteit, omsluitende berekende font-size-basen en expliciete geërfde properties, met behoud van CSS-comment- en aanhalingsteken/functie-declaratiegrenzen
Version 2.908.0
Added
- Maak echte native XFA-combo boxes, lijstboxen, multiselectievelden, checkboxes en structureel gescopedde radiogroepen aan direct vanuit bewaarde runtime-data, met gepaarde display/export-labels, per-instance items, toegangsvlaggen en onafhankelijke native appearance-states
Version 2.907.1
Fixed
- Decodeer echte PDF-hexadecimale escapes en UTF-8-bytes in naamwaardige en geërfde formuliervelden, met behoud van button-exportstates met spaties, interpunctie en Unicode via native herladen van bewaarde documenten
Version 2.907.0
Added
- Render echte CID-keyed CFF-glyph-identiteiten en begrensde notdef-substituties via werkelijke font-CID-naar-GID-mappings, met behoud van onafhankelijke tekstextractie en cancellation-checks tijdens escaped CMap-parsing
Version 2.906.0
Added
- Positioneer cross-style combinerende merken met werkelijke geselecteerde glyph-bounds en canonieke combining-classes wanneer aanankerpoints ontbreken, met onafhankelijke fontschalen, stapeling aan dezelfde kant en werkelijk opgeloste itemrichtingen voor dubbele merken
Version 2.905.1
Fixed
- Los escaped predictor-parameters op binnen de werkelijke DecodeParms-dictionary en vind de echte stream-token na gebalanceerde buitenste dictionary-syntax, met behoud van binary xref-payloads met spatiewaarden bij gewoon Windows-laden
Version 2.905.0
Added
- Maak native PDF-paginabomen, herhaalde bewerkbare velden, push-buttons en Unicode statische tekst aan direct vanuit XDP en bewaarde runtime-waarden op Linux en Windows, met echte ingebedde appearances en begrensde kandidaatpreparatie vóór de uitvoer van de aanroeper
Version 2.904.2
Fixed
- Lees werkelijke buitenste cross-reference-stream-dictionaries zonder geneste versleutelingsinstellingen te verwarren, los escaped entry-namen op en behoud directe versleutelingsdictionaries bij gewone Windows incrementele revisies
Version 2.904.1
Fixed
- Behoud complete alinearechtigings-controllers en gepaarde haakjes door automatische standalone shaping en platte meerregelige veldafbreking, met fysieke-regel-joinscontexten, immutable alineacache en begrensde totale glyph-uitvoer
Version 2.904.0
Added
- Voer de native XFA JavaScript-, event-journal-, Data DOM-, XML-, FormCalc- en ICU-locale-runtime uit op Linux met geëigende shared-module-leases en echte monotone klokken terwijl de bestaande Windows Unicode-initialisatie behouden blijft
Version 2.903.1
Fixed
- Houd Unicode clusters die alleen richting dragen op nul tekenspatiering-advance terwijl logische controllers, glyph-identiteiten en normale zichtbare cluster- en woordspatiering behouden blijven
Version 2.903.0
Added
- Behoud directionele embeddings, overrides, isolaten en gepaarde-haakjes-alineacontext over afgebroken rich-style-regels heen, ontsluit begrensde op alinea's gebaseerde en gecachte fysieke-regel-volgorde-API's en shape werkelijke regelitems met opgeloste levels en scripts
Version 2.902.0
Added
- Importeer en exporteer opgemaakte FDF en XFDF via echte Linux JSON C ABI-callbacks, embed geconfigureerde echte fontfaces, behoud handtekeningpolicies en exacte privé-bronbytes bij no-op-imports en publiceer de huidige documentstate pas nadat beide callback-uitvoeren zijn geslaagd
Version 2.901.0
Added
- Render Coons- en tensor-patch mesh shadings met begrensde cubische geometrie, kleurinterpolatie in de bronruimte, voortgezette randen, vouwafhandeling en transactionele resource- en cancellation-limieten
Version 2.900.0
Added
- Laad en sla namespace-bewuste native XFA Data DOM XML transactioneel op, behoud geordende gemengde inhoud en databinding-identiteiten, quote hostwaarden in lineaire tijd en behoud een exacte per-sessie JavaScript-module-lease door begrensde engine-replay
Version 2.899.0
Added
- Koppel opgemaakte combinerende merken aan echte GPOS-basis-, ligatuur- en merkankers met onafhankelijke fontschalen, behoud glyph-outlines met negatieve oorsprong binnen rich-widget-clips en reserveer passende regelexten voor zichtbare gestapelde merken
Version 2.898.0
Added
- Lees en schrijf begrensde FDF- en XFDF-rich-text, decodeer native XHTML-style-spans naar vier echte ingebedde fontstyles en importeer echte appearances transactioneel in getekende of versleutelde PDF's, inclusief canonieke vergelijking van bestaande read-only rich-waarden
Version 2.897.0
Added
- Shape geselecteerde Unicode-style-spans met echte omliggende HarfBuzz-context, ontsluit native alineavolgorde- en richting-API's en plaats getypeerde rich-items binnen werkelijk afgebroken fysieke regels terwijl logische styles en objecteigendom behouden blijven
Version 2.896.0
Added
- Los native XFA-binding-SOM op via herhaalde data-scopes met begrensde descendant-doorkruising, escaped namen, Unicode-matching, per-instance fallbacks voor ontbrekende bladeren en transactionele runtime-waardesynchronisatie
Version 2.895.1
Fixed
- Compileer statische native XFA-event-support één keer per geëigende JavaScript-engine en replay complete compacte dynamische event-argumenten, met behoud van closures, opgenomen hostresponses, instantie-isolatie, originele journal-budgetten en transactiedeadlines tijdens rollback
Version 2.895.0
Added
- Importeer en exporteer echte FDF- en XFDF-bytes via bestaande geversioneerde native Linux JSON-callbacks, behoud Unicode-veldwaarden, AES-security en geauthenticeerde handtekeningpolicies en roll de huidige document terug na mislukte uitvoer- of resultaatpublicatie
Version 2.894.0
Fixed
- Breek te brede getypeerde rich-text af op complete Unicode-grapheme-grenzen over font- en kleurstyles heen, meet werkelijk opgemaakte bereiken vóór regeltoewijzing en behoud ondeelbare te grote clusters, gemengde point-groottes en expliciete tekenspatiering
Version 2.893.1
Security
- Authenticeer vereiste door Adobe getekende CRL- en OCSP-evidence binnen echte RFC3161-documenttimestamps voordat formulierupdates die door het handtekeningbeleid worden beschermd worden geaccepteerd, met transactionele weigering bij ontbrekende, ingetrokken, verlopen of niet-vertrouwde evidence
Version 2.893.0
Added
- Lees en schrijf begrensde native FDF- en XFDF-scalair-velddata en importeer echte Unicode-, choice- en button-appearances transactioneel in onafhankelijk gepubliceerde PDF's, met behoud van geauthenticeerde handtekeningpolicies en AES-versleuteling
Version 2.892.0
Added
- Render begrensde free-form en lattice driehoeksmesh-shadings met echte coördinaat-, vlag-, functie-, kleur- en transparantiesemantiek en decodeer hexadecimale Indexed-palet-streams exact één keer
Version 2.891.0
Added
- Behoud geordende native XFA XML-comments en processing instructions via event-import, serialisatie, klonen en transactionele rollback, terwijl ze worden uitgesloten van scalair-tekst-, rich-text- en SOM-elementselectie
Version 2.890.1
Fixed
- Herstel tijdelijke Windows atomische publicatielocks met ten hoogste acht annuleerbare vervangingspogingen terwijl exacte doelen, voorbereide bytes, permanente OS-errors en geëigende staging-opruiming behouden blijven
Version 2.890.0
Added
- Behoud geldige Unicode-woordgroepen, nonbreaking-space-, interpunctie- en numerieke groepen over getypeerde rich-style-runs heen, pass hele groepen aan met echte opgemaakte font-advances, behoud baselines met gemengde groottes en voeg CRLF samen over stylenaadheken heen
Version 2.889.0
Added
- Synchroniseer gematerialiseerde verborgen en onzichtbare XFA-scalair-aliassen na zichtbare veldcommits terwijl native herhaalde data-scopes, expliciete lege waarden en exacte transactionele rollback behouden blijven
Version 2.888.0
Added
- Pas complete Unicode 17-properties en contextuele regelafbreking toe via bestaande document-API's, ontsluit rauwe of LB1-opgeloste draagbare property-queries, behoud gevestigde enum-ordinals en tailoring-contracten en honoreer soft-hyphen-verboden
Version 2.887.0
Added
- Importeer en serialiseer persistente native XFA exData-XML met directe scriptlezingen, behoud van namespaces en gemengde inhoud, vastgehouden herhaalde-instantie-identiteiten, transactionele rollback en echte rendering van bewaarde XHTML
Version 2.886.0
Added
- Maak en authenticeer zelfstandige RFC3161 PDF-documenttimestamps met begrensde streaming, SHA256-, SHA384- of SHA512-imprints, vertrouwde TSA-identiteit en nonce-binding, vereiste ESIC-extensie-declaraties en geauthenticeerde certificerings- of veldvergrendelingsuitzonderingen
Version 2.885.0
Added
- Ontsluit Unicode 17 default line-break-opportuniteiten en verbruik ze in werkelijke native rich-velden, met behoud van nonbreaking-space-, koppelteken- en interpunctiegroepen en Unicode-expliciete scheidingstekens met exacte originele V- en RV-waarden
Version 2.884.0
Added
- Ontsluit draagbare Unicode 17 default extended grapheme-grenzen en breek te brede rich-woorden af op complete clusters, met behoud van werkelijke Unicode-appearance-inhoud en correctie van joining-form-breedteveranderingen na substring-shaping
Version 2.883.0
Added
- Maak persistente native XFA-image- en geometrische waardekinderen aan en render echte PNG-alpha, image-DPI en aspectgeometrie, met behoud van herhaalde-instantie-isolatie en transactionele rollback; corrigeer FPC-imagepixels die eerder zwart renderden
Version 2.882.0
Added
- Erven werkelijke kind-stream-fontresources en PDF-tekstparameters in Form-, Type3- en Pattern-rendering, behoud graphics-state-tekst-saves, honoreer onzichtbare Type3-tekst en reset onafhankelijke annotation-appearance-defaults
Version 2.881.0
Added
- Authenticeer standaard detached CAdES-handtekeningen automatisch met vereiste signing-certificate-binding en lees echte hexadecimale of escaped literal Contents-strings consequent voor verificatie, toegestane formulierupdates en langetermijnvalidatie-evidence
Version 2.880.2
Fixed
- Behoud rich-alinea-uitlijning over lege beginruns, inline style-wissels en expliciete regeleinden heen en schilder gevraagde rechthoek- of cirkelranden en gemeten gehighlighte rijen in plaats van ze stilzwijgend over te slaan
Version 2.880.1
Fixed
- Neem cancellation in acht vóór paginarenderer-allocatie en contextinstallatie en tijdens initialisatie, behoud een actieve kleurcontext van de aanroeper wanneer constructie aanvankelijk wordt geweigerd en geef geleende display-lijsten vrij zonder partiële bitmaps te publiceren
Version 2.880.0
Added
- Render werkelijke native XFA-scalair draw- en caption-waarden na scriptcreatie, behoud expliciet lege waarden en herhaalde-instantie-isolatie en behoud exacte rollback wanneer later native tekenen zijn budget uitput
Version 2.879.0
Added
- Maak persistente native XFA-scalair-waardekinderen aan met directe veld-, data- en shared-alias-synchronisatie, getypeerde formulierpersistentie, widget-commits, herhaalde-instantie-isolatie en exacte transactionele rollback
Version 2.878.0
Added
- Genereer echte Windows handtekening-appearance-profielen met ingebedde Unicode-fonts voor samengevoegde en aparte widgets, rotatie-, versleutelings- en certificeringsworkflows en dwing vereiste AppearanceFilter af tegen het werkelijk gegenereerde profiel
Version 2.877.0
Added
- Render echte gekleurde en ongekleurde PDF tiling- en shading-patterns met geërfde patroonoorsprongen, geneste cellen, overlap, stroke- en stencil-paint, transparantie en begrensde cancellation over native Linux- en Windows-doelen heen
Version 2.876.1
Fixed
- Behoud complete XFA SOM-binding en werkelijke selectie van geëmitteerde instantiedata tijdens het toepassen van missing-instance-formulier- en template-defaults, zonder waarden uit een andere herhaalde occurrence te lenen
Version 2.876.0
Added
- Embed geauthenticeerde CRL- en OCSP-evidence in getekende Windows Adobe RevocationInfoArchival-attributen, dwing echte seed-policies af en valideer vertrouwde status, responseautorisatie en versheid voordat handtekeningen worden gepubliceerd
Version 2.875.0
Added
- Los werkelijke XFA-velddefaults op zonder data te verzinnen tijdens het lezen, behoud expliciet lege instantiewaarden en zorg dat edits onafhankelijke instantiedata schrijven zonder gedeelde templates te wijzigen
Version 2.874.0
Added
- Bewerk native rich-text-velden met getypeerde Unicode-style-runs, echte ingebedde regular-, bold-, italic- en bold-italic-fonts, gemeten appearance-baselines met gemengde groottes, decoraties en gesynchroniseerde V/RV-waarden over widgets en versleutelde uitvoer heen
Version 2.873.0
Added
- Maak persistente per-instance XFA UI-choices aan via native scripts en verbruik echte tekst-, wachtwoord- en choice-widgets met multiline en gemeten lange-woord-appearances
Version 2.872.0
Added
- Maak echte Windows DocMDP-certificeringssignaturen aan met P1-, P2- of P3-rechten en geauthenticeerde Unicode juridische attestaties, honoreer vereiste seed-policies en FieldMDP-locks en sta volgende handtekeningen alleen toe waar het getekende beleid die toestaat
Version 2.871.1
Fixed
- Voer XFA-event-bodies uit in hun eigen lexicale en strenge scope terwijl veldaliassen in de buitenste scope, de this-waarde van het event, expliciete returns en exacte faling-rollback behouden blijven
Version 2.871.0
Added
- Maak ontbrekende XFA font-, paragraph-, fill-, color-, border-, edge- en corner-properties aan via echte native event-scripts, persisteer stabiele per-instance formulierbindingen met exacte rollback en regenereer optionele widget-appearances na effectieve style-wissels
Version 2.870.0
Added
- Render echte native Windows Cairo-uitvoer met expliciete GDI standard-font-outlines en correcte Win32 OpenJPEG-aanroepconventies, met reproduceerbare gepinde native dependencies en onafhankelijke acceptatie van de uitvoer
Version 2.869.0
Added
- Teken Windows-documenten met echte synchrone C ABI RFC 3161-transport-callbacks en SHA256-, SHA384- of SHA512-imprints, geauthenticeerde TSA-trust- en CRL-checks, vereiste timestamp-seed-beperkingen en begrensde transactionele publicatie
Version 2.868.0
Added
- Genereer gemaskeerde wachtwoord- en letterlijke file-select-veld-appearances met behouden Unicode-waarden en AES-256-policies, voer escaped supplementaire Unicode door de native JSON ABI, behoud subnormale PDF-decimale brontokens en maak RGB-prefetchbuffers aan zonder een screen DC
Version 2.867.0
Added
- Breek XFA rich-text af over inline styles heen met gemeten woordgrenzen, expliciete regeleinden, gedeelde regelbaselines en uitlijning, echte uitgevulde woordafstanden en fragment-link-geometrie, met behoud van native herhaalde-instantie-XDP-persistentie
Version 2.866.1
Added
- Authenticeer rauwe handtekening RFC 3161-tokens met hun werkelijke ondersteunde SHA256-, SHA384- of SHA512-message-imprint-algoritme terwijl de bestaande SHA256-request-default en volledige token-trust- en revocatiechecks behouden blijven
Version 2.866.0
Added
- Aligneer XFA rich-text-runs met gemengde groottes op een gemeenschappelijke bewaarde-PDF-baseline, behoud de tekstpositiemodus van de aanroeper en pas de grotere aangrenzende alineamarge toe, inclusief lege alinea-overgangen
Version 2.865.0
Added
- Vraag RFC 3161-timestamps aan en authenticeer die voor expliciete SHA256-, SHA384- en SHA512-message-imprints zonder de imprint opnieuw te hashen, met behoud van strenge digestlengtes, verse nonces, begrensd transport, trust chains en revocatievalidatie
Version 2.864.0
Fixed
- Behoud de originele barcode-scandeadline door complete lineaire rasters en quiet-zone-kandidaatsgroepen voorrang te geven en wijs ongeldige DataMatrix-projectieve finder-randen af vóór het samplen van binnenste modules, zonder finder-toleranties te veranderen
Version 2.863.0
Added
- Honoreer geldige geërfde Windows handtekening-seed- en certificaatbeperkingen met echte digest- en CAdES-selectie, Unicode-handtekeninginformatie, genormaliseerde indirecte veldvergrendelingen, geauthenticeerde historische vergrendelingsrechten, toegestane tweede handtekeningen en versleutelde formulierpolicies
Version 2.862.0
Added
- Render echte native function-, axial- en radial-PDF-shadings met begrensde geometrie- en functie-evaluatie, geërfde clipping, Domain-, Matrix-, Extend- en BBox-semantiek, gekalibreerde en speciale kleuren, transparantie, soft masks, blending en knockout-groepen
Version 2.861.0
Added
- Exporteer echte native geannoteerde contract-review-PDF's en expliciete Unicode-highlights met zichtbare normale appearances, met behoud van broninhoud en incrementele handtekeningsrevisies, afgedwongen geauthenticeerde P3-annotatierechten en versleutelde gebruikersrechten, en begrensde uitvoer voorbereid vóór callback-publicatie
Version 2.860.0
Added
- Koppel native Linux signing- en verificatie-options aan echte digestselectie, Unicode-handtekeningmetadata, benoemde appearance-profielen, expliciete trust-bytes, timestamp-transport-identiteit en geauthenticeerde revocatie-evidence, met begrensde privé-preparatie vóór publicatie
Version 2.859.0
Added
- Pas levende per-instance XFA font-, paragraph- en scalaire body-overrides toe op werkelijke rich-text-tekening en -meting, behoud inline CSS-prioriteit en expliciet lege inhoud via native XDP-persistentie en behoud exacte transactionele rollback
Version 2.858.0
Added
- Decodeer escaped PDF font-, encoding-, glyph-, kleur- en resourcenamen exact één keer in native rendering en gedeelde tekstextractie, behoud letterlijke hash-resource-keys en houd equivalente namen uitgelijnd met echte outlines en glyph-metrics
Version 2.857.0
Added
- Vergelijk native documenten op pagina- en objecttellers, Unicode-tekst, genormaliseerde structurele grafen en werkelijk gerenderde RGB- of luminantiepixels, met semantische stream-equivalentie, geauthenticeerde versleutelde invoer en begrensde preparatie vóór callback-publicatie
Version 2.856.0
Added
- Selecteer echte native handtekening-appearance-presets op geregistreerde profielnaam, genereer onderscheidende approval-, certificerings- en compact-layouts, behoud geauthenticeerde profielmetadata en versleutelde policies en wijs onbekende profielen af vóór publicatie
Version 2.855.0
Added
- Pas native XFA property-schema-defaults toe en behoud expliciet lege waarden, per-instance styles en fractiepoint font-, border- en draw-metingen door echte AcroForm- en afgeplatte PDF-uitvoer
Version 2.854.0
Added
- Ontsluit native XFA property- en attribuutobjecten met persistente per-instance formulierbindingen, gesynchroniseerde waarde/datamschrijvingen en echte font-, border-, paragraph- en UI-layout-effecten, met behoud van transactionele rollback en scriptless-focus-budgetten
Version 2.853.0
Added
- Embed echte Adobe revocatie-evidence als geauthenticeerde CMS signed attributes, valideer complete certificaat- en timestamp-chains tegen expliciete trust en actuele CRL- of OCSP-evidence vóór publicatie en dwing vereiste handtekening-seed-revocatie-embedding af
Version 2.852.0
Added
- Schrijf geauthenticeerde Unicode juridische attestaties in certificeringssignaturen, honoreer Legal-seed-vereisten die alleen voor certificering gelden, behoud bestaande legale statistieken en catalogrechten en behoud versleutelde stringpolicies
Version 2.851.0
Added
- Render fysieke Lab ICC-bronkleuren en begrensde XYZ-compatibiliteitsinvoer in paden, tekst, gepakte images en Indexed-paletten, behoud gekalibreerde en ICC-alternatieve tinten via RGB- of CMYK-groepen en pas ingebedde JPX-profielen toe met aparte of gekoppelde alpha
Version 2.850.0
Added
- Converteer compatibele documenten met ontbrekende fonts naar doorzoekbare tekst- en vector-PDF/A-4 met expliciete begrensde Ghostscript-fontembedding, echte veraPDF-validatie en atomische publicatie, en selecteer native Unicode TrueType-fonts consequent over distributies heen
Version 2.849.0
Added
- Render ingebedde simple Type1- en Type1C-fonts met exact opgegeven of ingebouwde Adobe glyph-encodings, houd ToUnicode-extractie gescheiden van weergegeven outlines en accepteer gevalideerde neutrale stroke-adjustment en relatieve colorimetrische graphics state
Version 2.848.0
Added
- Los complete XFA-descendant-pad-suffixen op binnen elke wildcard-context, behoud lokale occurrence-grenzen en voer predikaten uit in de huidige event-scope met exacte transactionele rollback
Version 2.847.0
Added
- Dwing geërfde native handtekening-seed- en certificaatbeperkingen af met echte issuer-chains, subject- en key-usage-policies, selecteerbare CMS-digests, versleutelde Unicode-handtekeningmetadata en transformaties van vergrendelde documenten
Version 2.846.0
Added
- Ontsluit native XFA datasets en data-nodes met bidirectionele formulierbindingen, dynamische instantiedata-spiegeling, stabiele vastgehouden verwijzingen, onafhankelijke ongebonde formulierwaarden en transactionele script-replay
Version 2.845.0
Added
- Emiteer geauthenticeerde FieldMDP-verwijzingen vanuit bestaande of geërfde handtekeningveldvergrendelingen, behoud versleutelde Unicode-veldnamen en certificeringsverwijzingen en pas vergrendelingsrechtsniveaus toe zonder originele getekende policies te verzwakken
Version 2.844.0
Added
- Render Separation- en DeviceN-alternatieve tinten met begrensde vectorfuncties, gepakte images en CMYK-groep-blending, behoud None knockout-geometrie en map All-registration-kleuren consistent
Version 2.843.0
Added
- Los dynamische XFA SOM-paden op met afgeleide en relatieve occurrences, gescopedde predikaten, class- en descendant-selectors, wildcard-verzamelingen en transactionele script-object-property-toewijzingen
Version 2.842.0
Added
- Bied native semantische contractvergelijking van twee documenten aan via C ABI en Pascal op een gedeelde draagbare kern, met bron-glyph-geometrie, versleutelde invoer en geneste inhoud, voorbereide JSON- of HTML-review-uitvoer en stabiele gelijktijdige lock-volgorde
Version 2.841.0
Added
- Authenticeer originele CMS- en CAdES-revisies vóór native formulierupdates, dwing originele DocMDP- en FieldMDP-rechten en vergrendelde velden af, behoud getekende inhoud en resources en synchroniseer push-button-caption-metadata atomisch
Version 2.840.0
Added
- Render gekalibreerde CalGray-, CalRGB- en Lab-bronkleuren, gekalibreerde groep- en pagina-blending, Indexed-basen, 16-bit image-samples en XYZ-luminantie-soft masks met begrensde conversie en veilige gamma-evaluatie
Version 2.839.0
Added
- Implementeer FormCalc-waardekopiëring en stabiele node-verwijzingen met toewijzing via referentie, rebinding en null-loskoppeling, numerieke identiteitsgelijkheid, vastgehouden handles en transactionele rollback
Version 2.838.0
Added
- Voer runtime-gegenereerde FormCalc Eval-programma's uit met geïsoleerde berekeningsscopes, geneste evaluatie, Unicode-bron, begrensde compilatieretries en transactionele host-response-replay
Version 2.837.0
Added
- Genereer ingebedde Unicode-appearances via native Linux JSON-formulierinvulling voor tekst-, choice- en multiselect-velden, checkbox- en radiostates en push-button-captions, met behoud van transactionele publicatie en versleuteling
Version 2.836.0
Added
- Bied synchrone RFC 3161 timestamp-transport aan via een compatibel uitgebreid native signing-operatierecord, met begrensde responses, gedeelde cancellation en expliciete TSA-trust- en revocatievalidatie
Version 2.835.0
Added
- Voer transactionele XFA host-state, pagina- en levenscyclusvlaggen, per-instance focuswissels, validatie van openstaande edits en reset-operaties uit met stabiele identiteit en lexicale state-replay
Version 2.834.0
Added
- Valideer CAdES signing-certificate-identificaties tegen de echte signer, onafhankelijk van optionele certificaat-trust, en los ingebedde Encoding CMap-streams op via de native fontadapter
Version 2.833.0
Added
- Render verticale Identity-V- en Unicode-voorgedefinieerde CMaps met echte W2/DW2-oorsprongen, matrices, tekstbeweging en clipping en decodeer ingebedde Encoding CMap-streams correct
Version 2.832.0
Added
- Teken via de native Linux callback ABI met PEM- of begrensde PFX-identiteiten, nieuwe Unicode-appearance-velden en certificering en behoud het voorbereide getekende document als huidige context na geslaagde publicatie
Version 2.831.0
Fixed
- Pas signing-seed-, vergrendelings- en read-only-beperkingen consequent toe op gecodeerde PDF-namen, wijs semantische duplicaat-keys af en valideer geërfde policy-dictionaries
Version 2.830.0
Added
- Voer geavanceerde XFA numeric-, calendar-, tekst- en samengestelde picture-clausules uit via echte formulegebeurtenissen, met behoud van invoerprecisie, locale-semantiek en transactionele script-replay
Version 2.829.0
Added
- Importeer native pagina-resource-grafen en getransformeerde annotation-appearances in platte of versleutelde documenten en converteer compatibele invoer naar doorzoekbare tekst- en vector-PDF/A-4 met echte validatie vóór atomische publicatie
Version 2.828.0
Added
- Render CMYK- en ICC-transparantiegroepen en paginagroepen met vier componenten en alle blend-modes, geneste knockout-geometrie en gedeelde kleurprofiel-budgetten
Version 2.827.0
Added
- Voer locale-bewuste XFA date-, time-, numeric- en tekst-pictures uit met ingebedde locale-sets, begrensde transactionele locale-queries en beschermde JavaScript IEEE-rekenkunde
Version 2.826.0
Added
- Lees en schrijf Unicode array-waardige choice-selecties, onderhoud gesorteerde optie-indices en genereer matchende appearances voor zichtbare en gescrolde listbox-selecties
Version 2.825.0
Added
- Teken versleutelde documenten via Windows JSON- en C ABI-jobs terwijl de originele revisies, AES-securityinstellingen, document-ID's en handtekeningsrechten behouden blijven
Version 2.824.0
Added
- Maak native Linux HTML-documenten aan, voeg zichtbare of passende doorzoekbare Unicode-tekst in, draai begrensde annuleerbare Tesseract OCR en maak onafhankelijk gevalideerde raster-PDF/A-4-uitvoer via Pascal- en callback-API's
- Render graphics-state Alpha/Luminosity-maskers, begrensde transferfuncties, additieve transparantie en paginagroepen, knockout-vormen en uitgebreide JPEG 2000-samples, ingebedde kleur en alpha
- Valideer aangeleverde certificaat-, OCSP- en CRL-evidence vóór incrementele DSS/VRI-publicatie terwijl bestaande handtekeningen en AES-versleuteling behouden blijven
- Voer expliciete getypeerde XFA host- en FormCalc-transport-callbacks uit met begrensde requests, opgenomen responses en transactionele replay
Fixed
- Behoud Unicode-waarden en exception-diagnostics die de Free Pascal QuickJS-API teruggeeft
Version 2.823.0
Added
- Embed gevalideerde RFC 3161-timestamps in headless CMS-handtekeningen met message-imprint-, nonce-, TSA-autorisatie-, trust- en aangeleverde revocatie-evidence-checks, met behoud van bestemmingsbestanden wanneer een vereiste timestamp faalt
- Behoud XFA script-object lexicale state, geneste closures en onafhankelijke herhaalde-instantie-modules met deterministische begrensde transactionele replay
- Pas expliciete teken- en woordspatiering toe op gemeten en gegenereerde headless Unicode-tekst-appearances
Fixed
- Gebruik de specificatie-correcte FormCalc At source/search-argumentvolgorde en geef de eerste positie terug voor een lege zoekstring
Version 2.822.0
Added
- Voer algemene QuickJS- en gecompileerde FormCalc XFA-events uit met levende herhaalde-instantie-DOM-operaties, transactionele standaard form-packet-persistentie, automatische initialize/calculate/validate/ready-levenscyclus, begrensde uitvoering en cancellation
Fixed
- Pas specificatie-correcte XFA-financiële functieparameters en cashflow-formules toe, Gregoriaanse datumbasissen en negatief restantgedrag, met behoud van double-precisie over Delphi en Free Pascal heen
Version 2.821.0
Added
- Breed native headless document-workflows uit met een geversioneerde Linux C ABI, echte callback-gebaseerde tekst-/formulier-/render-/teken-operaties, begrensde cancellation en faal-rollback, multiline/comb/gedraaide/choice/button-appearances met HarfBuzz/FriBidi-shaping, PFX-identiteiten, nieuwe zichtbare handtekeningvelden en DocMDP-certificering
- Render begrensde image-maskers, soft masks, Indexed/ICC-kleuren, PDF-blend-modes, geïsoleerde RGB-transparantiegroepen, Type3-glyphs en tekstclipping en decodeer JPEG-, JPEG 2000-, CCITT-, JBIG2- en RunLength-image-streams via het geauthenticeerde native documentpad
Version 2.820.0
Added
- Vul ondersteunde native headless single-line Unicode AcroForm-velden met echte ingebedde TrueType-appearances, exacte glyph-breedtes en CIDToGID/ToUnicode-mappings, transactionele multi-widget-updates, behouden AES-security, gecontroleerde fontembedding en begrensd atomisch opslaan op Linux en Windows
Version 2.819.0
Added
- Render ondersteunde PDF-paden, horizontale tekst, images, Forms en bestaande annotation-appearances naar PNG met native Cairo/FreeType CPU-surfaces op Linux, dwing begrensd werk en cancellation af, behoud bronnen en publiceer PNG-bestanden atomisch
Fixed
- Gebruik canonieke Adobe AFM-advances voor twaalf standaard Helvetica/Times/Courier-styles wanneer PDF-breedtes ontbreken, zodat cumulatieve tekstpositie-drift door vervangende fontmetrics wordt voorkomen terwijl expliciete en ingebedde fontbreedtes behouden blijven
Version 2.818.0
Added
- Publiceer echte native headless incrementele CMS/CAdES PDF-handtekeningen op Linux en Windows met bestaande ongetekende velden en expliciete PEM-credentials, behoud eerdere revisies en AES-256-security, verifieer exacte getekende bytes en bescherm bestaande bestemmingen via begrensde atomische publicatie
Version 2.817.0
Added
- Rond begrensde JSON- en C ABI-documentjobs af met gevalideerde incrementele PFX-signing, bestaande handtekeningvelden, vergelijking van twee documenten, zes native vergelijkingsmodes en tweezijdige contract JSON/HTML/geannoteerde-PDF-review, inclusief cooperatieve cancellation, resourcelimieten en atomische bestandpublicatie
Version 2.816.0
Added
- Verifieer native headless PDF-handtekeningen met exacte ByteRange/Contents-binding en streaming OpenSSL 3, genereer echte detached CMS/CAdES-handtekeningen uit expliciete PEM-credentials en meld certificaat-trust apart van integriteit op Linux en Windows
Version 2.815.0
Added
- Gebruik de begrensde XFA instance-presentation-helper voor conditionele events, expliciete herhaalde binding, onafhankelijke instance presence en toegang, stabiele persistente identiteit, transactionele reflow, host-canvas-painting en accessibility-records
Version 2.814.0
Added
- Open native headless AES-256 R5/R6-documenten op Linux en Windows, authenticeer owner/user-rechten, decodeer versleutelde gecomprimeerde objecten en sla versleutelde incrementele formulierwaarden op met exacte bronprefix-behoud en begrensde atomische uitvoer
Version 2.813.0
Added
- Reflow tekst in begrensde paginarechthoeken over baselines en geselecteerde gedeelde Form-invocaties heen, wijzig fonts en breedte, inspecteer conservatieve collision-rapporten en gebruik verzegelde previews met transactionele commit of rollback
Fixed
- Behoud geladen-document-edits bij herhaald opslaan na objectserialisatie, inclusief stream-naar-bestand-saves en retries na een uitvoerfaling
Version 2.812.0
Added
- Converteer compatibele geladen documenten naar PDF/A-4 met behoud van originele tekst, vectoren, images en ingebedde resources, stel zichtbare annotation/widget-appearances samen, behoud of voeg doorzoekbare OCR toe, meld expliciete verliezen en valideer preservatie vóór atomische bestandpublicatie
Version 2.811.0
Added
- Laad cross-reference-streams, hybride referentiesecties en gecomprimeerde object-streams via de native headless document-API, valideer begrensde member-indices en revisieprecedentie, behoud exacte brede numerieke bronwaarden en sla bronbehoudende onafhankelijke incrementele uitvoer op op Linux en Windows
Version 2.810.0
Added
- Corrigeer scanoriëntatie, doorlopende-hoek-scheefstand, schaduwen, randen en expliciete perspectiefvierhoeken met begrensde omkeerbare geometrie, gebruik vertrouwde Tesseract-oriëntatie-evidence en map OCR-woorden, -baselines, paginavierhoeken en semantische layout terug naar de originele scan voor bewerkbare gestructureerde uitvoer
Version 2.809.0
Added
- Configureer lokale Tesseract- en RapidOCR CLI- of DLL-engines in JSON- en C ABI OCR-jobs, behoud doorzoekbare Unicode-tekst en scanpixels, ontdek ondersteunde adapters, valideer expliciete instellingen en dwing rendering/herkenning-budgetten af met atomische uitvoer en rollback bij mislukte publicatie
Version 2.808.0
Added
- Laad classic-xref-PDF's in native Linux-consoleapplicaties, extraheer Unicode-pagina- en geneste Form-tekst met geërfde resources, inspecteer en vul AcroForm-tekstwaarden en publiceer bronbehoudende incrementele uitvoer met getypeerde diagnostics, cancellation, resourcebudgetten en atomische vervanging
Version 2.807.0
Added
- Localiseer meerdere gescheiden native barcodes in één raster, behoud herhaalde payloads op onderscheiden posities, decodeer gedraaide en projectieve ECC 200 Data Matrix-symbolen met vierhoek-geometrie en dwing totale scanbudgetten af met cancellation en atomische resultaatpublicatie
Version 2.806.0
Added
- Vergelijk contractparagrafen en bewerkingen op woord- of zinsniveau met vastgelegde acties voor invoegen, verwijderen, vervangen en verplaatsen, paginalocaties aan beide zijden, behoud van herhaalde clausules, expliciete uitsluiting van boilerplate, een begrensde HTML-review en geannoteerde PDF-uitvoer die tegen de bron is gecontroleerd
Version 2.805.0
Added
- Importeer HTML-bedrijfssjablonen met geneste flex/grid-panelen, omlopende rijen, kolomoverspanningen in grids, afbeeldingen en formulierbesturingselementen in parallelle boxes, plus expliciet meegeleverde font-face-resources die bij de uitgestelde inbedding behouden blijven, en een apart cachebudget voor gedecodeerde afbeeldingen
Version 2.804.0
Added
- Bouw de gedeelde kern voor PDF-objecten, Direct File I/O, inhouds- en fontdecodering, compressie, cryptografie en writer als native Linux-code met POSIX-mapping en -synchronisatie, met behoud van de Windows-API's en correcte serialisatie van klassieke xref-entries
Version 2.803.0
Added
- Registreer versielagen voor factuurprofielen en landregels, valideer expliciete CII XML- of hybride facturen met rapporten die rekening houden met de scope en voer de officiële XRechnung 3.0.2- en Franse CTC-factuurregels uit via een expliciet geconfigureerde Saxon-engine, met keuze uit gepubliceerde profielen en fail-closed-diagnostiek
Version 2.802.0
Added
- Exporteer getypte tabellen naar Office-onafhankelijke XLSX-werkmappen via native API's, JSON-jobs en de C ABI, met behoud van waardetypes, valuta- en percentageformaten, samengevoegde cellen, exacte grote integers en optionele bronmetadata, plus begrenste staging en fail-safe publicatie
Version 2.801.0
Added
- JSON-jobs en de C ABI kunnen geselecteerde geladen pagina's exporteren als semantische HTML, XHTML, XML of JSON en getypte tabellen als CSV of JSON, met native opties, begrenste staging, annulering, compatibiliteit met handtekeningvelden, behoud van de brontoestand en atomaire bestandpublicatie
Version 2.800.2
Fixed
- Maak de caches van geladen formulierrelaties ongeldig vóór de graph-rollback, zodat ondertekenjobs en mislukte documentbewerkingen het originele document veilig achterlaten voor raadpleging en hergebruik
Version 2.800.1
Fixed
- Geordend parallel renderen behandelt geheugenreserveringen nu in invoervolgorde, zodat latere pagina's het budget niet kunnen uitputten terwijl de oplevering op een eerdere pagina wacht; annulering en begrenste uitvoer op Delphi en FPC blijven gewaarborgd
Version 2.800.0
Changed
- SVG-tekst, geladen FreeText-appearances en geladen tekstvervangingen behouden nu de shaping-features van het document, auto-shaping-vlaggen per script en GSUB-script- en taalselecties, waarbij de OpenType-data van elk gekozen font wordt gebruikt en Unicode-mappings behouden blijven bij fontwisselingen
Version 2.799.0
Changed
- SVG-vectorimports behouden nu overgeërfde dash-arrays, dash-offsets en miter-limieten voor effen en gradientstreken, terwijl native rendering dash-patronen met fasering en met nul-lengte behoudt
Version 2.798.0
Changed
- Gestileerde Unicode-tekst behoudt bold- en italic-fonts nu ook door de fallback-layout heen; de style-bewuste overloads van
ResolveFontForCodePointenAnalyzeUnresolvedGlyphslaten preflight overeenkomen met de uitvoer, en character references in FPC XML behouden Unicode-scalars in plaats van de tekst te beschadigen
Version 2.797.0
Fixed
- SVG-imports compositeren object- en groepsopaciteit nu via geïsoleerde vector-transparency Forms, behouden onafhankelijke vul- en streekalpha en houden het geneste gedrag van resources, clips, maskers en links in stand onder expliciete budgetten
Version 2.796.0
Added
- Maak begrensde PDF/A-4-rasterarchiveringsconversie beschikbaar via JSON-jobs en de C ABI, met expliciete acceptatie van informatieverlies, gestructureerde budgetfouten, coöperatieve annulering, herstel van de brontoestand en atomaire bestandsuitvoer
Version 2.795.0
Added
- Geladen PDF's kunnen nu genormaliseerd worden naar gevalideerde PDF/A-4-rasterdocumenten met strikte native rendering, geverifieerde sRGB-kleur, begrensde decoding en rasterbronnen, annulering, bescherming van bronaliassen en atomaire bestandpublicatie; het conversierapport identificeert bewust verwijderde interactieve en bijgevoegde content
Version 2.794.0
Changed
- HTML5-import werkt nu met gemeten tekstregels met gemengde schrijfrichting, paginering die widows en orphans vermijdt, optionele hyphenation, begrensde flex- en gridlayouts en observeerbare CSS-diagnostics; FPC native bitmaps synchroniseren direct GDI-tekenwerk met LCL-beeldcaches
Version 2.793.0
Changed
- Voeg begrensde events toe voor het dynamisch toevoegen en verwijderen van XFA-instance-managers en voor template-aanwezigheid, met herbinding van de layout, behoud van de bewerkingsstatus, atomaire rollback, resourcelimieten en persistente XDP-uitvoer
Version 2.792.0
Changed
- Breid SVG-import uit met gemeten ingebedde Unicode-fonts, PNG/JPEG-resources, gradientstreken en echte Alpha- en Luminosity-soft masks, en corrigeer de native groepsalpha en de compositing van FPC bitmap-oppervlakken
Version 2.791.0
Changed
- Voeg voorbeeldbare vervanging van geladen Unicode-tekst toe met ingebedde fonts, wrapping- en breedtebeleid, diagnostics per match, detectie van verouderde plannen, begrensde resources, atomaire commits en preview- en apply-operaties via JSON en de C ABI
Version 2.790.0
Changed
- Implementeer standaard CFF Type 2-stack- en transient-array-operaties in glyph-rendering en behoud de rekenkundig afgeleide afhankelijkheden van lokale en globale subroutines bij font subsetting
Version 2.789.0
Changed
- Breid de ingebouwde barcodedecodering uit met Code 128, EAN/UPC, perspectiefbewust QR-herstel, Data Matrix ECC 200 en PDF417 met Reed-Solomon-correctie en begrensde payload-decodering
Version 2.788.0
Changed
- Windows FPC ondersteunt nu native TIFF, JPEG/JPX, ICC-conversie, JBIG2 en Zopfli via een ABI-gevalideerde codecbrug en gebruikt echte worker threads voor het renderen van pagina's, geordende pagina's, tiles, bands en JPEG 2000-tiles, met budgetten, geordende callbacks, annulering en deterministische pixels
Version 2.787.0
Changed
- De C ABI en de JSON-jobprocessor delen nu schema-versiebeheerde documentoperaties voor capabilities, rendering, Unicode-tekst en formulieren, OCR-lagen, redaction en PFX-ondertekening, met expliciete resourcebudgetten, rollback bij callback-fouten en atomaire bestandsuitvoer; callback-invoer van meerdere pagina's wordt nu correct geladen
Version 2.786.0
Changed
- Bewerken van geladen FreeText bouwt ingebedde Unicode- en rich-text-appearances nu atomair opnieuw op, met wrapping, uitlijning, opaciteit, rotatie, callouts, insets en expliciet overflow-beleid; herschreven stream-payloads worden vastgelegd vóór de mutatie, zodat transaction-rollback de originele tekst herstelt
Version 2.785.0
Added
- De SearchableOCR-consoledemo voegt naast RapidOCR ingebouwde OCR en Tesseract DLL- of CLI-engines toe, genereert een scanvoorbeeld van drie pagina's en biedt paginaselectie, confidence-filtering, herkenningsbudgetten en gedetailleerde conversiestatistieken
Version 2.784.0
Changed
- FDF- en XFDF-batchimports rollen na een mislukte import eerdere veld- en annotatie-updates terug, behouden transacties van de aanroeper en ruimen de resultaat-metadata van de mislukte uitwisseling op
Version 2.782.0
Added
- De lokale Tesseract OCR-adapter accepteert configureerbare paginasegmentatie, modus van de herkenningsengine, pixellimieten en time-outs via THPDFTesseractOptions voor herkenning van enkele regels, enkele woorden, sparse text en verticale blokken
Fixed
- De native Tesseract-adapter gebruikt de cross-text box-dimensie voor overwegend verticale baselines, zodat verticale woordlengtes de tekstgrootte in doorzoekbare PDF's niet langer doen oplopen
Version 2.781.0
Changed
- De Delphi- en C++Builder-democollecties bevatten nu een gids voor barcodevelden over meerdere pagina's met zakelijke labels en een compleet navigatiehandboek met hiërarchische bookmarks, named destinations en werkende links naar begeleidende documenten; de minimale PDF/A-recepten verhuizen naar Miscellaneous en overbodige zelfstandige outline- en metadataprojecten zijn opgeheven
Version 2.780.1
Fixed
- De annotatiepagina van Showcase scheidt de bijschriften van de contentpreview van de live free-text- en stamp-appearances, zodat labels in PDF-lezers niet overlappen en de voorbeelden herkenbaar blijven wanneer annotation appearances verborgen zijn
Version 2.780.0
Changed
- De democatalogi geven nu prioriteit aan complete workflows en zetten zeventien minimale, gerichte of verouderde voorbeelden apart in Miscellaneous-submappen; de overbodige projecten ImageCompression en AddDelPages zijn verwijderd, waarbij hun functionaliteit behouden blijft in de hoofddemo's en regressiesuites
Version 2.779.0
Added
- De Showcase-demo's voor Delphi en C++Builder openen nu een complete documentstudio met tien hoofdstukken, met ingebedde preview, markering van zoekresultaten, gepersonaliseerde omslagen, review-watermerken met één klik, geverifieerde pagina-export en kopieën beveiligd met AES-256 R6 die bewerkingen behouden; beide gebruiken dezelfde documentengine en ondersteunen een generatiecommando zonder venster
Version 2.778.1
Removed
- De overbodige TestNumeric GUI-demo's voor Delphi en C++Builder zijn vervangen door geautomatiseerde numerieke regressietests die fractionele pagina-afmetingen en drawing-operands verifiëren na het opslaan en opnieuw laden van ongecomprimeerde en Flate-gecomprimeerde PDF's, met blijvende dekking van numerieke arrays
Version 2.778.0
Changed
- De pagina- en klantrapportdemo's bieden nu praktische workflows: PageOperations bewerkt echte PDF's via extract-, delete-, move-, insert- en append-commando's met verificatie na het herladen, terwijl DBTable de table engine gebruikt voor omlopende rijen, herhaalde kopregels en automatische paginering met een standaardvoorbeeld zonder database
Version 2.777.1
Fixed
- OCR wijst misvormde UTF-8, niet-ondersteunde stuurtekens en incompatibele uitvoer van native detectiemodellen af vóór het publiceren van tekst en houdt bij het afdwingen van woordlimieten over pagina's heen rekening met verworpen herkenningsresultaten
Version 2.777.0
Fixed
- Ingebouwde OCR accepteert lege of onherkenbare pagina's als geslaagde, lege resultaten zodat batches met gescande documenten kunnen doorgaan, behoudt Windows FPC-bitmappixels en controleert annulerings- en tijdslimieten tijdens de hele beeldanalyse
- Native RapidOCR-hoekclassificatie behoudt de aspectverhouding van korte regels en draait uitgesneden tekstfragmenten pas om bij een overtuigende ondersteboven-voorspelling
- De lokale Python-RapidOCR-adapter behoudt de herkende regelafstand en interpunctie in plaats van losse tekens te publiceren die ongewenste spaties kunnen krijgen, en de Tesseract-DLL-adapter wijst C1-stuurtekens af voordat tekst wordt gepubliceerd
Version 2.776.0
Added
- Tekstlagen van gescande PDF's kunnen gemarkeerde HotPDF-OCR-streams na het opslaan en opnieuw laden atomair vervangen, behouden bestaande lagen bij een mislukte of lege herkenning, melden de vervangen pagina's en gebruiken een native meertalig RapidOCR-consolevoorbeeld voor de conversie zonder bestaande bestanden te overschrijven
Fixed
- Aaneengesloten Latijnse en Cyrillische OCR-woorden met een woordafstand op dezelfde regel krijgen expliciete Unicode-spaties voor stabiel zoeken en kopiëren van zinsdelen, terwijl aangrenzende CJK-woorden niet worden gescheiden
- Het renderen van Windows FPC JPEG-scans behoudt de gedecodeerde pixels bij de conversie naar het OCR-bitmapformaat, zodat een wijziging van het LCL-pixelformaat geen lege invoer voor de herkenning oplevert
Version 2.775.0
Added
- Native RapidOCR krijgt lokale modelpresets voor Vereenvoudigd en Traditioneel Chinees, Engels, Frans, Duits, Spaans, Portugees, Italiaans, Nederlands, Turks, Japans, Koreaans, Russisch, Arabisch en Hindi, met bijpassende tekenwoordenboeken, gecontroleerde modelinstallatie, horizontale leesvolgorde en meertalige Unicode-uitvoer in Delphi-, C++Builder- en Windows FPC/Lazarus-builds
Fixed
- Lokale proces-OCR-adapters proberen het opruimen van tijdelijke uitvoer opnieuw wanneer diagnostische bestanden na het beëindigen van de worker kort vergrendeld blijven
Version 2.774.0
Added
- Een native RapidOCR-DLL-adapter houdt lokale ONNX-modellen in het proces, herkent bitmap-snapshots zonder Python, ondersteunt optionele hoekclassificatie en doorzoekbare Unicode-PDF's en controleert uitvoerbudgetten met coöperatieve annulering in Delphi-, C++Builder- en Windows FPC/Lazarus-builds
Version 2.773.0
Added
- De lokale RapidOCR-adapter krijgt expliciete ONNX-modelconfiguratie, optionele hoekclassificatie, lokale tekenwoordenboeken en fonts, CPU-threadinstellingen, offline preflight en herkenningsbudgetten voor doorzoekbare Unicode-PDF's in Delphi-, C++Builder- en FPC/Lazarus-builds
Version 2.772.1
Fixed
- Tesseract-DLL- en CLI-adapters werken nu in Windows FPC/Lazarus Win32- en Win64-builds, behouden Unicode-OCR-woorden en lezen de actuele LCL-beeldpixels voor doorzoekbare PDF-tekstlagen
Version 2.772.0
Added
- Een optionele native Tesseract-DLL-adapter voegt meertalige OCR toe met configureerbare pagina-segmentatie- en engine-modi, Unicode-woorden met confidence, woordgrenzen en baselines, plus coöperatieve annulering, herkenningsdeadlines en uitvoerbudgetten voor doorzoekbare gescande PDF's
Version 2.771.1
Changed
- Ingebouwde OCR herkent gewone, vette, cursieve en vet-cursieve ASCII-tekst op lichte of overwegend donkere achtergronden, accepteert vervaagde letters met voldoende grijswaardencontrast en laat woorden met onzekere behouden glyphs weg in plaats van stilletjes tekens te laten vallen
Version 2.770.175
Fixed
- LoadedDocInspector en SignatureValidator geven voor onleesbare PDF's een exitcode voor mislukking terug en wijzen ongeldige opdrachtargumenten af in plaats van een geslaagde lege inspectie te melden
Version 2.770.174
Fixed
- LoadedImageExport valideert elke afbeeldingsbestemming voordat er ook maar één pagina wordt geëxporteerd, voorkomt dat padaliassen de invoer-PDF of een andere geselecteerde pagina overschrijven en wijst niet-ondersteunde formaatnamen af
Version 2.770.173
Fixed
- De schijfcache voor gerenderde pagina's slaat gekoppelde documentmappen over bij herstel, opzoeken, opslaan, ongeldigverklaring en verwijdering, zodat bestanden buiten de cache behouden blijven
Version 2.770.172
Fixed
- JSON-jobs wijzen misvormde syntaxis, inhoud na het einde, getallen buiten het eindige Double-bereik en overdreven diepe nesting af voordat er een operatie wordt uitgevoerd, en geven bij een fout de gedeeltelijk geparsde waarden vrij
Version 2.770.171
Fixed
- PreflightCLI controleert het complete plan voor de rapportuitvoer voordat er wordt geschreven, beschermt invoer-PDF's tegen bestandsaliassen en wijst tegenstrijdige rapportbestemmingen af; recursieve scans slaan gekoppelde onderliggende mappen over om kringen te vermijden
Version 2.770.170
Fixed
- CopyPage controleert bestandsidentiteiten voordat er wordt geëxporteerd, wijst tegenstrijdige uitvoeraliassen af en zet automatisch benoemde uitvoer naast extensieloze invoer in mappen waarvan de naam punten bevat
Version 2.770.169
Fixed
- JSON-jobwaarden behouden geëscapete null-tekens, serialiseren eindige getallen buiten het signed 64-bit-bereik zonder integer-overflow en geven standaardwaarden terug voor gehele parameters buiten het bereik, zonder de landinstelling van het proces te veranderen
Version 2.770.168
Fixed
- Foutherstel in de simple-objectparser stopt bij een los sluitend haakje in de inhoud van een array zonder omvattende haakjes en behoudt geldige getallen en dictionary-sleutels direct na misvormde scheidingstekens
Version 2.770.167
Fixed
- HotPDFCLI wijst uitvoerpaden die een alias van een invoerbestand vormen af en controleert alle gegenereerde paden voordat de batch-export start, zodat opdrachten hun brongegevens niet kunnen afkappen of vervangen
Version 2.770.166
Fixed
- Het ExtractText-voorbeeld beschermt zijn invoer-PDF wanneer een uitvoer via een directory junction of hard link naar hetzelfde bestand verwijst, en LoadedImageExport meldt een fout bij onleesbare documenten of onvolledige pagina-export
Version 2.770.165
Fixed
- Directe bestandslezingen verklaren onvolledige cache-aanvulling ongeldig na een I/O-fout en begrenzen read-ahead-bereiken veilig rond de limiet van signed 64-bit-offsets
Version 2.770.164
Fixed
- RunLength-decodering alloceert alleen de grootte van de gedecodeerde payload en valideert misvormde runs voordat de uitvoer wordt gealloceerd, zodat streams met een vroege terminator geen overdreven geheugenreserveringen opleveren
Version 2.770.163
Fixed
- De Delphi- en C++Builder-voorbeelden vinden meegeleverde afbeeldingen, metafiles, kleurprofielen en optionele ondertekeningsfixtures zowel in projectmappen als in geneste build-uitvoermappen
Version 2.770.162
Fixed
- De HugeFileBenchmark-voorbeelden wijzen gegenereerde PDF-paden die overeenkomen met een invoerdocument af voordat een benchmark-batch start
- Het C++Builder-voorbeeld behoudt relatieve invoersubmappen voor gegenereerde PDF's, zodat recursieve invoer met dezelfde naam niet één uitvoerbestand deelt
- Mislukte operaties, overschrijdingen van de geheugenlimiet en ongeldige loads met nul pagina's leveren nu een exitcode ongelijk nul op terwijl het benchmarkrapport behouden blijft
Version 2.770.161
Fixed
- De Preflight-CLI's van Delphi en C++Builder wijzen rapport- en geaggregeerde uitvoerpaden die overeenkomen met een invoer-PDF af, zodat rapporten brondocumenten niet overschrijven
Version 2.770.160
Fixed
- ASN.1-parsing wijst high-tag-number-coderingen die het ondersteunde 32-bit-tagbereik overschrijden af in plaats van een omgeslagen tagnummer te accepteren
Version 2.770.159
Fixed
- De C++Builder-Preflight-CLI behoudt relatieve submappen voor recursieve rapporten en dashboardlinks, zodat PDF's met dezelfde naam elkaar niet langer overschrijven
- De Preflight-dashboards van Delphi en C++Builder coderen rapportlinks correct voor speciale tekens en niet-ASCII-mapnamen
- Standaardvalidatiefouten in C++Builder geven nu exitcode 3 terug en verschijnen voor elk rapportformaat als ongeldig in het dashboard, ook bij invoer die niet laadt
Version 2.770.158
Fixed
- Het C++Builder-PDF-merge-voorbeeld lost relatieve invoerpaden op vanuit de map van het uitvoerbare bestand en voorkomt dat bestandsdialogen de werkmap veranderen
- Elke gegenereerde bladwijzer wijst nu naar de eerste pagina die uit zijn eigen invoerdocument is gekopieerd
Version 2.770.157
Fixed
- De objectparser normaliseert niet-geëscapete CR- en CRLF-regeleindes binnen PDF literal strings naar LF terwijl geëscapete carriage returns en regelvervolgingen behouden blijven
Version 2.770.156
Fixed
- LZW-streamcompressie meldt bij lege invoer het werkelijke aantal geschreven bytes
- LZW-compressie en -decompressie round-trippen correct met InitialCodeSize op 2, en compressie wijst literals buiten een verkleind alfabet af voordat de uitvoer wordt geschreven
Version 2.770.155
Fixed
- In Win64-builds werpt het importeren van SVG- of XPS-paddata met een getal met een exponent dicht bij 100, zoals 1e-100 of 5e99, geen floating-point overflow meer op wanneer de toepassing floating-point-exceptions unmaskeert
- Zulke getallen worden nu met hun werkelijke waarde gelezen, dus een lange mantisse met een grote negatieve exponent wordt correct geïmporteerd
Version 2.770.154
Fixed
- DecodeLoadedPageBarcodes meldt nu correcte grenzen van barcodes op pagina's waarvan de CropBox afwijkt van de MediaBox wanneer er geen decoderegio is ingesteld; voorheen waren de posities verschoven met de crop box-offset of geschaald tegen de verkeerde paginahoogte
- Gezichtsresultaten van DetectLoadedRedactionFindings (met gezichtsdetectie ingeschakeld) vallen nu op de gedetecteerde gezichten op zulke pagina's in plaats van eruit te zijn verschoven
- Beide functies renderen het zichtbare pagina-oppervlak (de CropBox ingeklemd tot de MediaBox) en zetten gedetecteerde posities nu via datzelfde oppervlak terug; de page box die aan een eigen IHPDFFaceDetector wordt doorgegeven komt nu overeen met de bitmap die hij ontvangt
- Barcode-decoding met een expliciete regio, en pagina's zonder CropBox of waarvan de CropBox gelijk is aan de MediaBox, zijn onveranderd
Version 2.770.153
Fixed
- ApplyLoadedOCRTextLayer plaatst de onzichtbare tekstlaag nu correct op pagina's waarvan de CropBox afwijkt van de MediaBox; voorheen was de doorzoekbare tekst verschoven met de crop box-offset of geschaald tegen de verkeerde paginahoogte, zodat selecties en zoektreffers niet op de zichtbare woorden uitkwamen
- Het OCR-raster wordt gerenderd vanuit het zichtbare pagina-oppervlak (de CropBox ingeklemd tot de MediaBox) en de posities van herkende woorden worden nu via datzelfde oppervlak teruggezet
- De page box die in THPDFOCRRequest aan een eigen IHPDFOCREngine wordt meegegeven is nu het gerenderde zichtbare gebied en komt overeen met de bitmap die hij ontvangt
- Pagina's zonder CropBox of waarvan de CropBox gelijk is aan de MediaBox zijn onveranderd
Version 2.770.152
Fixed
- GetLoadedInvoiceSummary geeft de naam van de koper (BT-44) nu als gedecodeerde tekst terug, zodat namen met niet-ASCII-letters zoals "Müller & Söhne" niet langer terugkomen als rauwe UTF-8-bytes met het XML-escape er nog in
- De kopersnaam wordt nu altijd uit de buyer trade party zelf gelezen, net als de verkopersnaam en de andere samenvattingsvelden
- ValidateVisualXmlConsistency profiteert mee: een kopersnaam met letters met accenten of geëscapete tekens wordt nu vergeleken met de zichtbare paginatekst zoals die geschreven is
Version 2.770.151
Fixed
THPDFTablehoudt rijen die via eenRowSpanaan elkaar gekoppeld zijn nu op één pagina: past de groep niet in de resterende ruimte, dan gaat de hele groep samen met de herhaalde koptekst naar de volgende pagina- Een cel die over meerdere rijen loopt steekt niet langer voorbij de ondermarge terwijl de rijen die hij bestrijkt op de volgende pagina doorgaan
- Een rij-spaangroep die hoger is dan een hele pagina wordt nog steeds rij voor rij gesplitst, met de overspannende cellen afgekapt op de ondermarge van elke pagina
TotalHeightRenderedweerspiegelt de verplaatste groep op de laatste pagina
Version 2.770.150
Fixed
- Cellen van
THPDFTablemet eenColSpanofRowSpanvan nul of minder worden nu als losse cellen getekend, op de plek die het tabelraster ze al had toegewezen, in plaats van de volgende cellen naar verkeerde kolommen te duwen - Negatieve spans laten de tabel niet langer buiten zijn raster lezen, en spans die voorbij de laatste kolom of rij lopen worden ook bij het meten en tekenen aan de tabelrand afgekapt
- Een cel waarvan het eerste woord breder is dan de kolom begint niet langer met een lege regel, zodat zijn rij niet hoger is dan de omgebroken tekst nodig heeft
Version 2.770.149
Security
- XFA-formulieren die een interne entity in hun DOCTYPE declareren kunnen het geheugen niet langer laten uitdijen door een grote entity vaak te verwijzen: de tekst die voor interne entities wordt gesubstitueerd is begrensd op 16 MB per document
- Eén interne entity-waarde langer dan 1 MB wordt geweigerd
- Documenten die een van beide limieten overschrijden, laden niet met een
EHPDFXFAErrorin plaats van uit te dijen tot gigabytes aan tekst; normaal gebruik van entities is onaangetast - Tekst met veel entity- of character references wordt bovendien in lineaire tijd gedecodeerd
Version 2.770.148
Fixed
RecalculateLoadedFormFieldsIncrementalbehandelt nu elk veld dat als gewijzigd wordt doorgegeven op dezelfde manier, in welke volgorde de namen ook staan- Een berekend veld dat samen met een van zijn bronvelden rechtstreeks is weggeschreven behoudt de geschreven waarde, in plaats van alleen herberekend te worden als het ná dat bronveld staat
- Velden die van de gewijzigde velden afhangen worden nog steeds één keer herberekend, in berekeningsvolgorde
Version 2.770.147
Fixed
- GS1-128-barcodes met startcode A (
THPDFBarcodetype 20) coderen hun gegevens nu in codeset A, zoals Code 128 A dat doet - Kleine letters in zulke barcodes worden nu met een SHIFT naar codeset B geschreven in plaats van met een codeset-B-codewoord dat scanners als een stuurteken in codeset A lezen
- Gescande GS1-128 A-symbolen met kleine letters geven daardoor de originele tekst terug
Version 2.770.146
Fixed
- EAN-2- en EAN-5-add-on-barcodes (
THPDFBarcodetype 18 en 19) plakken geen berekend cijfer meer achterTextaan wanneerChecksumis ingeschakeld - Zo'n barcode herhaaldelijk tekenen levert nu elke keer hetzelfde symbool op in plaats van de tekst per hertekening met één cijfer te laten groeien en het streeppatroon te veranderen
- De add-on-symbolen dragen per definitie geen controleteken, dus
Checksumwordt voor ze genegeerd; het pariteitspatroon wordt nog steeds uit de waarde afgeleid zoals voorheen
Version 2.770.145
Fixed
- XFDF-export decodeert formulierveldwaarden en annotatietekst nu als PDF-tekststrings (ISO 32000-1 7.9.2.2): UTF-16BE-waarden, hexadecimale strings en PDFDocEncoding-tekens zoals de bullet worden als de echte Unicode-tekst geschreven in plaats van als hexcijfers of codepagina-rommel
- Annotatie-inhoud, auteur, onderwerp, status en overlaytekst die naar XFDF wordt geëxporteerd behoudt niet-Latijnse tekens, bijvoorbeeld Chinese of Cyrillische opmerkingen
- Rich text (
/RC,/RV) die met een XML-declaratie begint wordt nu zonder die declaratie ingebed, zodat de geëxporteerde XFDF welgevormde XML blijft - XFDF-import zet tekst niet langer om via de systeem-ANSI-codepagina: waarden die PDFDocEncoding kan weergeven worden als zodanig opgeslagen, al het andere als UTF-16BE-tekststring, zowel voor formuliervelden als voor annotatietekst
- Geëxporteerde XFDF-bestanden laten tekens buiten de ANSI-codepagina nu via
ImportLoadedFormFromXFDFenImportLoadedAnnotationsFromXFDFeen round-trip maken zonder dat ze in vraagtekens veranderen
Version 2.770.144
Fixed
- Namen en andere tekst in de factuursamenvatting worden nu uit de UTF-8-factuur-XML gedecodeerd, zodat een verkoper zoals "Müller GmbH" niet langer terugkomt als verhaspelde multibyte-tekens
- Geëscapete opmaaktekens en character references worden opgelost, zodat "A & B" in de XML als "A & B" wordt gemeld
ValidateVisualXmlConsistencymeldt een verkopersnaam met letters met accenten of een ampersand niet langer als afwezig in de zichtbare paginatekst wanneer die er gewoon staat- Samenvattingstekst wordt teruggegeven in de systeem-ANSI-codepagina, want de velden van het samenvattingsrecord zijn ANSI-strings; tekens die die codepagina niet kan weergeven worden vraagtekens
Version 2.770.143
Fixed
GetLoadedInvoiceSummarymeldt het facturniveau-nettototaal (BT-106) nu uit de geldsommering in de kop in plaats van uit het bedrag van de eerste factuurregel- Ook het btw-totaal, het eindtotaal en het openstaande bedrag worden uit de kop-sommering gelezen, ook bij ZUGFeRD 1.0-facturen
- De factuurdatum (BT-2) wordt nu als kale datumwaarde teruggegeven, bijvoorbeeld
20260305, in plaats van met de genesteDateTimeString-opmaak HPDFFacturXXMLElementTextgeeft nu de character data van het hele element terug met child-tags verwijderd en matcht niet langer elementen waarvan de naam slechts met de gevraagde naam begint
Version 2.770.142
Fixed
- XFDF-export schrijft tekens buiten het Basic Multilingual Plane, zoals emoji of zeldzame CJK-ideogrammen, nu als geldige vier-byte-UTF-8 in plaats van elke surrogate-helft apart te coderen, zodat strikte XML-readers het bestand accepteren
- XFDF-import decodeert character references boven U+FFFF, zoals
😀, nu naar het volledige teken in plaats van het af te kappen tot een ongerelateerd BMP-teken - Character references die geen Unicode-scalarwaarde benoemen, en ongepaarde surrogates bij export, worden nu U+FFFD in plaats van de tekst te corrumperen
- XFDF-bestanden die door eerdere versies zijn geschreven worden nog steeds correct geïmporteerd
Version 2.770.141
Fixed
- Veldwaarden en annotatietekst met backslashes, zoals Windows-paden als
C:\Data\2024\001, overleven een XFDF-export en -import nu ongewijzigd in plaats van dat cijferreeksen in stuurtekens veranderen - Wanneer een backslash anders bij het teruglezen als escape zou worden gelezen, schrijft XFDF-export hem nu als het octale escape
\134, zoals in een PDF literal string (ISO 19444-1 5.8.2) - XFDF-import decodeert alleen de octale escapes die het formaat voor stuurtekens en backslashes gebruikt; andere backslash-reeksen uit bestanden van derden blijven letterlijk staan
- SVG-tekst die door dezelfde lichtgewicht XML-reader wordt gelezen verliest backslash-reeksen ook niet langer
Version 2.770.140
Fixed
- De persistente cache voor gerenderde pagina's die RenderCacheFolder inschakelt werkt nu voor documenten die met LoadFromFile, LoadFromStream en LoadFromRandomAccessSource zijn geopend; voorheen werd de schijftier bij gewone loads overgeslagen, zodat er nooit een pagina naar de map werd geschreven of eruit gelezen
- Documenten die uit een bestand zijn geladen worden geïdentificeerd aan de hand van hun grootte, het tijdstip van de laatste schrijfactie en de eerste en laatste bytes, zodat het heropenen van een ongewijzigd bestand zijn pagina's uit de cache leest zonder het hele bestand te hashen
- Documenten die uit een stream of een random-access-bron zijn geladen worden geïdentificeerd via de SHA-256 van hun inhoud; stel RenderCacheFolder vóór de load in om deze documenten de schijftier te laten gebruiken
- Een document dat na het laden wordt bewerkt leest of schrijft voor de rest van die load geen schijfitems meer, zodat bewerkte pagina's nooit worden gegeven uit of bewaard als de gecachte pagina's van het originele bestand
- Schijfitems hangen nu ook af van de pagina-render-backend en de ICC-proofing-workflow, dus een andere backend of een ander uitvoerprofiel hergebruikt geen pagina's die met andere instellingen zijn gerenderd; versleutelde documenten worden nooit naar de schijfcache geschreven
Version 2.770.139
Fixed
- Het importeren van grote XFDF-bestanden wordt niet langer trager met het kwadraat van de bestandsgrootte: een bestand met duizenden velden of annotaties wordt nu in milliseconden geparsd in plaats van in seconden of minuten
- Veldwaarden met veel regeleinden of andere character references worden in lineaire tijd gedecodeerd
- Het piekgeheugen tijdens het parsen van XFDF groeit niet langer met het aantal elementen maal de bestandsgrootte
- SVG-invoer die door dezelfde lichtgewicht XML-reader wordt gelezen profiteert van dezelfde versnelling
Version 2.770.138
Fixed
- Wanneer
DecodeLoadedPageBarcodeseen pagina die 90 of 270 graden is gedraaid opnieuw probeert, wordt het raster dat aan de decoder wordt meegegeven nu met de klok mee gedraaid, zoalsAttemptRotationDegreesdocumenteert - Symbolen die alleen in die herpogingen worden gevonden, worden nu op hun echte positie op de pagina gemeld in plaats van op de puntgespiegelde positie
- De oriëntatie die voor zulke symbolen wordt gemeld komt nu overeen met hun leesrichting op de pagina in plaats van 180 graden ernaast te zitten
- Eigen barcode-decoders die op de gedocumenteerde draai met de klok mee vertrouwen ontvangen nu correct gedraaide rasters
Version 2.770.137
Fixed
- Pagina's kopiëren tussen documenten (CopyPageFromDocument, CopyPageByPhysicalIndex, pagina-import en merge-methoden) maakt tekststrings die "<<" en ">>" of "[" en "]" bevatten niet langer dictionaries of arrays; een annotatieopmerking als "Read <<this>> [now]" werd gekopieerd als een kapotte dictionary
- Hexadecimale strings, zoals annotatienamen en identificatoren, worden in hexadecimale vorm gekopieerd in plaats van als literal strings van hun hexcijfers te worden weggeschreven
Version 2.770.136
Fixed
- Annotaties die op nieuwe pagina's worden gemaakt (AddStampAnnotation, AddTextAnnotation en de andere THPDFPage-annotatiemethoden) schrijven /Rect nu met de linkerbenedenhoek eerst, [llx lly urx ury]; een aantal schreef de bovenrand vóór de onderrand, bijvoorbeeld [395 712 575 652], wat viewers accepteren maar wat PDF/A-validators en sommige verwerkingstools afwijzen of verkeerd lezen
Version 2.770.135
Changed
- THotPDF.RenderCacheFolder is nu een string (UnicodeString in Delphi 2009 en later, UnicodeString in C++Builder) in plaats van een AnsiString, zodat een cachemap waarvan het pad tekens buiten de systeemcodepagina bevat, zoals een Chinese gebruikersnaam op een Engelse Windows, wordt gebruikt zoals opgegeven in plaats van in vraagtekens te veranderen
- Code die een AnsiString aan de property toewijst compileert gewoon door; de waarde wordt bij de toewijzing naar Unicode geconverteerd
Version 2.770.134
Fixed
- SetOptionalContentGroupUsage met de categorie Zoom schrijft het zoombereik nu als de getallen /min en /max, zoals de PDF-specificatie die definieert; de hele waarde werd als tekststring onder /Min geschreven, wat viewers negeren, waardoor het zoombereik van de laag geen effect had
- De Zoom-waarde is de minimale vergroting, optioneel gevolgd door het maximum, gescheiden door een spatie (bijvoorbeeld '0.5 4'); een waarde die niet met een getal begint werpt nu een exception op
Version 2.770.133
Fixed
- Subsetting van ingebedde CFF/OpenType-fonts laat subroutines die glyphs nog gebruiken niet langer vallen; glyphs met meer dan acht hints, hstemhm-hints of countermaskers werden verkeerd gescand, waardoor een gebruikte subroutine door een lege vervangen kon worden en de glyph werd gerenderd met ontbrekende of kapotte outlines
Version 2.770.132
Fixed
- RegisterNChannelColorSpace (de overload met definities van spot colourants) schrijft kleurnamen met spaties of scheidingstekens, zoals "PANTONE 185 C", nu correct als sleutels van de dictionaries /Colorants, /Solidities en /DotGain; de rauwe naam brak de bestandssyntaxis
- AddPDFX6ExternalOutputIntentSpotData schrijft zijn solidity- en spectral data-kleursleutels op dezelfde manier
Version 2.770.131
Fixed
- De XMP-metadata die met EnableXMPMetadata wordt geschreven draagt Title, Author, Subject en Keywords nu als geldige UTF-8 wanneer ze tekst in de systeemcodepagina bevatten (bijvoorbeeld letters met accenten of Chinese tekens toegewezen als AnsiString); de rauwe codepagina-bytes maakten het packet ongeldige XML, wat PDF/A-validators en XMP-readers afwijzen
- Stuurtekens die XML 1.0 niet toestaat worden in deze XMP-waarden weggelaten
Version 2.770.130
Fixed
- JBIG2-afbeeldingen die met JBIG2Options.AccumulateGlobalsAcrossPages zijn geschreven decoderen weer correct wanneer een latere pagina symbolen toevoegt die eerdere pagina's niet gebruikten; zulke pagina's bleven naar de globals stream van de eerste pagina verwijzen, waar die nieuwe symbolen in ontbreken, waardoor viewers ze verhaspeld of helemaal niet toonden
- Zodra een pagina symbolen toevoegt, wordt er een globals stream geschreven die het hele dictionary tot die pagina bevat en wordt die vanaf dan gebruikt; pagina's die geen symbolen toevoegen blijven de nieuwste delen
Version 2.770.129
Fixed
- Het opslaan van een geladen document waarvan de objecten een generatienummer anders dan 0 hebben schrijft nu consistente objectnummers: een volledige herschrijving (SaveLoadedDocument en verwante methoden) schrijft elk object, elke referentie en elk cross-reference-item met generatie 0, terwijl objectheaders en de trailer vroeger de oude generatie hielden en referenties en de cross-reference-tabel 0 gebruikten
- Incrementele updates (SaveIncrementalUpdate en verwante methoden) verwijzen nu naar bestaande objecten met hun echte generatienummer; referenties werden altijd met generatie 0 geschreven en wezen daardoor naar objecten die niet bestaan wanneer het origineel een andere generatie gebruikte
Version 2.770.128
Fixed
- THPDFPage.TextOutHTML met een MaxWidth verliest bij een regelafbreking geen opmaak meer: gingen meerdere anders opgemaakte runs samen naar de volgende regel, dan werden ze samengevoegd tot één run getekend met de opmaak die bij de afbreking gold, waardoor kleur, vet of cursief, font, grootte, sub/superscript-offset en link verloren gingen. Elke run behoudt nu zijn eigen opmaak op de nieuwe regel
Version 2.770.127
Fixed
- InvalidateRenderedPageCache gooit nu ook de Type 3-glyph- en halftone-items weg die parallel rendering deelt; na een invalidatie van het hele document kon de volgende parallelle render glyphs hergebruiken die voor de vorige inhoud waren gecacht
- PreflightLoadedPAdES maakt de gedeelde renderingcache niet langer leeg als bijwerking van het controleren van het PAdES-niveau van een handtekening, zodat renders na een preflight hun gecachte glyphs behouden
Version 2.770.126
Fixed
- Revisie- en wijzigingsanalyse van ondertekende documenten meldt veldnamen nu correct wanneer de naam haakjes bevat of ermee eindigt, bijvoorbeeld "Total (net)"; het laatste teken werd afgekapt
- Veldnamen die met octale escapes of met een backslash-regelvervolging zijn geschreven worden ook gedecodeerd
Version 2.770.125
Fixed
- SplitPDFToFiles opent elk uitvoerbestand niet langer in de standaard-PDF-viewer zodra het is weggeschreven; de interne documenten die het maakt hebben AutoLaunch nu uitstaan
Version 2.770.124
Fixed
- GetLoadedTrailerID geeft de permanente bestandsidentificatie van het document nu uit de trailer-/ID-array terug, als hexadecimale tekst; hij zocht /ID in de documentcatalogus, waar hij nooit staat, en meldde daardoor voor vrijwel elk bestand geen identificatie
Version 2.770.123
Fixed
- SetLoadedOpenActionPage schrijft nu een bestemming die de gevraagde pagina benoemt; de paginareferentie werd als 0 0 R geschreven, zodat viewers het document niet op die pagina konden openen
- De bestemming behoudt de huidige weergavepositie (null voor left en top) in plaats van 0 0 af te dwingen, wat naar de linkerbenedenhoek van de pagina sprong
Version 2.770.122
Fixed
- SetLoadedViewerPreferences schrijft HideToolbar, HideMenubar, FitWindow en DisplayDocTitle nu als booleaanse waarden; ze werden als de namen /true en /false geschreven, wat viewers niet als booleans behandelen, dus de voorkeuren hadden geen effect
Version 2.770.121
Fixed
- CheckLoadedSignatureSeedValue dwingt de /Reasons-seedwaarde van een handtekeningveld nu af wanneer de /Ff-vlaggen van het veld hem als verplicht markeren (bit 4, waarde 8); een niet-genoteerde reden ging vroeger gewoon door
- Redenen worden exact vergeleken, zoals tekststrings dat in PDF doen; "approved" volstaat niet langer voor een seedwaarde die "Approved" noteert
Version 2.770.120
Fixed
- Een geladen pagina meer dan eens bestempelen met StampLoadedPageText of StampLoadedPageShape geeft elke stempel nu zijn eigen dekking en elke tekststempel zijn eigen standaardfont; de tweede en latere stempels hergebruikten de transparantie en het font van de eerste stempel op de pagina
- Een stempel met dezelfde dekking en hetzelfde font als een eerdere deelt nog steeds zijn resources, dus herhaalde identieke stempels laten de pagineresources niet groeien
Version 2.770.119
Fixed
- ExtractLoadedPageStructureText volgt nu structuurelementen waarvan het /K-item een gewoon marked-content-nummer is (bijvoorbeeld /K 3 of /K [0 1]), de meest voorkomende vorm in getagde PDF's; zulke elementen werden genegeerd, waardoor de methode voor veel getagde documenten geen structuurvolgorde meldde of hun tekst in tekenvolgorde teruggaf
- De methode leest geen ongeldig catalogus-item meer wanneer een document geen bruikbaar root-object heeft
Version 2.770.118
Fixed
- StampLoadedPageText, StampLoadedPageImage, StampLoadedPageShape, StitchLoadedPage en FlattenLoadedAnnotations breken pagina's die hun resources van de ouder-/Pages-knoop erven niet langer; ze gaven zo'n pagina een nieuw, leeg /Resources-dictionary, waardoor de geërfde fonts en afbeeldingen verborgen raakten en de oorspronkelijke tekst en afbeeldingen van de pagina niet meer werden getoond
- De pagina krijgt nu zijn eigen kopie van de geërfde resources voordat het nieuwe font, de afbeelding of het formulier wordt toegevoegd
Version 2.770.117
Fixed
- ComposeLoadedPagesNUp, ImposeLoadedPagesNUp, ImposeLoadedPagesBooklet en de pagina-stitching-methoden nemen nu resources mee die een bronpagina van zijn ouder-/Pages-knoop erft; zulke pagina's werden zonder hun fonts en afbeeldingen geplaatst, zodat hun tekst en afbeeldingen op het samengestelde blad ontbraken of verkeerd waren
Version 2.770.116
Fixed
- SaveIncrementalUpdateAuthenticated kan nu terugschrijven naar het bestand waarvanuit de incrementele update was gestart; de geaccepteerde update kon het doel niet vervangen omdat het document de bron nog openhield, en de aanroep mislukte altijd met een access-denied-commitfout
- Zoals bij een in-place SaveIncrementalUpdate wordt de bron vóór de vervanging vrijgegeven en opnieuw geopend als de vervanging mislukt, en moet BeginIncrementalUpdate opnieuw worden aangeroepen voordat er weer incrementeel kan worden opgeslagen
Version 2.770.115
Fixed
- RepairPDFUA2Structure kost op structuurbomen waarvan de elementen door meer dan één ouder worden genoemd (of die een kring vormen) niet langer exponentieel veel tijd; het herstel van taalovererving, het herstel van de kopvolgorde en de marked-content-scan achter het herstel van alternatieve tekst lopen elk structuurelement nu één keer af. Een gemanipuleerde boom van 24 elementen die elk het volgende element twee keer noemen kostte voorheen zo'n 40 seconden
Version 2.770.114
Fixed
- HPDFPaginateTable voegt niet langer pagina's toe tot het geheugen op is wanneer een onsplitbare rij niet onder de herhaalde kopregels past; op een pagina die alleen herhaalde kopregels bevat wordt de rij nu gesplitst (of, wanneer de kopregels de pagina vullen, geplaatst en mag hij overlopen)
- HPDFLayoutFootnotes en HPDFLayoutEndnotes lopen niet langer oneindig door wanneer de scheiding geen ruimte op een pagina overlaat of de minimale fragmenthoogte van een noot op een lege pagina niet haalbaar is; de noot wordt dan op die pagina geplaatst
Version 2.770.113
Fixed
- HPDFBalanceColumns loopt niet langer vast wanneer een splitbaar item een regel heeft die hoger is dan de kolomhoogte; hij ging voor altijd door naar de volgende kolom. Zo'n regel wordt nu alleen bovenaan een lege kolom geplaatst, waar hij uitsteekt, en de layout gaat verder
Version 2.770.112
Fixed
- Documenten die met revision 4 van de standaard security handler zijn versleuteld (RC4- of AES-128-cryptfilters) openen weer wanneer hun encryption dictionary het optionele top-level /Length-item weglaat; het laden mislukte met "Unsupported legacy Standard security handler V=4 R=4 Length=40"
- Elke top-level /Length-waarde wordt voor zulke documenten geaccepteerd, want de filesleutel is altijd 128 bits
Version 2.770.111
Fixed
- ProcessObjectStreamsForDecompression en ExtractRawObjectFromStream vertrouwen de opgegeven /N-telling van een object stream niet langer: een telling boven de tien miljoen wordt geweigerd en de telling wordt beperkt tot de objectnummer-paren die de streamheader werkelijk kan bevatten, zodat een gemanipuleerd bestand ze niet langer miljoenen lege items kan laten alloceren of doorlopen
Version 2.770.110
Fixed
- De Direct File API (DADirectEncryptFileAES256, DADirectDecryptFileAES256 en verwante methoden) leest /Root, /Info, /Encrypt, /Prev en /XRefStm van een klassieke cross-reference-sectie nu alleen uit het trailer-dictionary van die sectie zelf; bij incrementeel bijgewerkte bestanden kon hij een /Prev uit objecten van een latere revisie (bijvoorbeeld een outline-item) of uit een trailer oppikken en mislukken of de verkeerde revisie lezen
- Een /Prev-ketting die teruggaat naar een al gelezen sectie stopt nu in plaats van dezelfde secties opnieuw te lezen
Version 2.770.109
Security
- ApplyLoadedRedactions verwijdert de tekst onder een redactiegebied nu ook op pagina's waarvan de inhoud over meerdere streams is verdeeld; eindigde de ene stream met een operator en begon de volgende met een (bijvoorbeeld ET gevolgd door BT), dan werd de tekst na de overgang aan de verkeerde operanden gekoppeld en bleef leesbaar in het opgeslagen bestand terwijl het gebied was overgeschilderd
- Content streams zonder data worden consequent overgeslagen, zodat de overige streams uitlijnen met de tekst die op de pagina is gelokaliseerd
Version 2.770.108
Changed
- GetLoadedOCGCount, GetLoadedOCGName, GetLoadedOCGVisibility en SetLoadedOCGVisibility gebruiken nu allemaal dezelfde index: de positie van de optional content group in de /OCGs-array van /OCProperties van het document. Count en naam gebruikten de positie in de /ON-array van de standaardconfiguratie, zichtbaarheid gebruikte de positie in /OFF en de setter gebruikte /OCGs, zodat één index drie verschillende groepen kon benoemen; documenten zonder /OCGs vallen nog steeds terug op de /ON-array
- GetLoadedOCGVisibility meldt een groep nu als verborgen wanneer hij in /OFF staat, of wanneer hij in geen van beide arrays staat en de /BaseState van de standaardconfiguratie /OFF is
Fixed
- SetLoadedOCGVisibility stopt hetzelfde referentieobject niet langer in zowel /OCGs als /ON of /OFF (het werd twee keer vrijgegeven toen het document werd opgeruimd) en lekt de items die het verwijdert niet langer
Version 2.770.107
Fixed
- CopyLoadedPage laat het bron- en doelpaginadictionary niet langer dezelfde /Contents- en /Resources-items delen; de gedeelde objecten werden twee keer vrijgegeven toen het document werd opgeruimd of het doelitem werd vervangen, wat het geheugen kon corrumperen
- De doelpagina krijgt nu zijn eigen referentie naar de broninhoud en -resources (directe waarden worden gekopieerd) en zijn cache-item voor gerenderde pagina's wordt ververst
Version 2.770.106
Fixed
- Het laden van een beschadigde PDF lekt niet langer geheugen voor elk stream-object dat niet kan worden gelezen, bijvoorbeeld een stream zonder /Length-item en zonder endstream-keyword, of een waarvan het dictionary of de data niet kan worden geladen; het herhaaldelijk openen van zulke bestanden liet het proces onbeperkt groeien
Version 2.770.105
Fixed
- Getallen die met een lege breuk zijn geschreven, zoals "21." (toegestaan door de PDF-specificatie), laten het laden niet langer mislukken; een indirecte stream-/Length die zo was geschreven liet vroeger de hele stream vallen, waardoor de pagina leeg bleef
- Getallen met een voorloop-plusteken, een leeg geheel-getaldeel zoals ".5" of een geheel-getaldeel buiten het 32-bit-bereik worden ook correct gelezen
Version 2.770.104
Fixed
- PDFmerge-demo: met bladwijzers ingeschakeld opent elke bladwijzer per bron nu de eerste samengevoegde pagina van die bron; voorheen wees elke bladwijzer naar de eerste pagina van het samengevoegde bestand
- PDFmerge-demo: de standaardvoorbeeldbronnen en uitvoernaam, en relatieve namen die in het formulier worden getypt, worden opgelost ten opzichte van de demomap; het toevoegen van bestanden of het kiezen van de uitvoer in een dialoog verandert de huidige map niet langer en breekt de relatieve invoer niet
Version 2.770.103
Fixed
- TextOut-demo: de gegenereerde
TextOut.pdfgebruikt nu echt gecomprimeerde content streams, zoals de demo-opmerkingen beloven; hij steltCompressionin opcmFlateDecodein plaats van op hetBeginDoc-argument te vertrouwen, dat compressie niet regelt
Version 2.770.102
Fixed
- Afbeeldingen die met
AlphaBlendin een enhanced metafile zijn getekend behouden hun opgenomen dekking nu wanneer de metafile metTHPDFEmfPatcher.RenderEmfDirectwordt geconverteerd; ze werden met dekking nul gemengd en verdwenen - Het opgenomen alpha-formaat wordt ook gerespecteerd, zodat afbeeldingen zonder alfakanaal met hun constante dekking worden gemengd in plaats van te mislukken
- Bitmaprecords waarvan de header of pixeldata buiten het record wijst, of waarvan de pixeldata korter is dan de opgegeven bitmap, worden nu overgeslagen in plaats van voorbij het record gelezen te worden
- Bitmaps groter dan 32768 pixels per zijde of 64 megapixels in totaal worden overgeslagen in plaats van volledig gealloceerd te worden
Version 2.770.101
Fixed
- StitchLoadedPage, StitchLoadedPageSideBySide en StitchLoadedPageSideBySideEx tekenen de bronpagina nu via een Form XObject die de inhoud, page box en resources van de pagina draagt; het paginadictionary zelf werd als XObject geregistreerd, wat viewers niet kunnen tekenen, dus de samengevoegde pagina verscheen niet
- Meer dan één pagina op hetzelfde doel stitchen houdt elke samengevoegde pagina vast: elk krijgt zijn eigen XObject-naam in plaats van dat ze allemaal één naam delen die de vorige pagina verving
Version 2.770.100
Fixed
- Form XObjects worden bij het renderen nu ingeklemd tot hun
/BBox, zoals ISO 32000-1 vereist; inhoud die een form buiten zijn bounding box tekent verschijnt niet langer op de pagina - Form XObjects die meer dan vier niveaus diep genest zijn worden nu getekend; ze werden weggegooid alsof ze recurseerden. Nesting tot 32 niveaus is toegestaan
- Een form XObject dat zichzelf tekent, direct of via andere forms, wordt gedetecteerd en de herhaalde aanroep wordt overgeslagen, met een recursievermelding in de renderdiagnostiek
Version 2.770.99
Fixed
- PDFOptimize-demo: de rij kleine rechthoeken op elke tekstpagina krijgt nu een stroke, zodat de balken zichtbaar zijn en de content stream elk pad afsluit met een tekenoperator zoals ISO 32000-1 8.5.2 vereist; de gerapporteerde groottes van de tekst-PDF veranderen daardoor licht
Version 2.770.98
Fixed
- Literal strings die gebalanceerde haakjes zonder backslashes bevatten, zoals /Title (Report (draft) v2), worden bij het laden van een document nu volledig gelezen; de string eindigde vroeger bij het eerste sluitende haakje en de rest van het dictionary werd verkeerd gelezen
- Geëscapete haakjes werken zoals voorheen
Version 2.770.97
Fixed
- Het laden houdt een dictionary-object niet langer voor een stream wanneer een van zijn string- of naamwaarden de letters "stream" aan het einde van een regel bevat, zoals een Info-dictionary met /Title (Livestream); het object werd als stream gelezen en zijn items gingen verloren
- Het stream-keyword wordt nu alleen als eigen token herkend na het sluitende >> van het dictionary en aan het einde van een regel, zoals de PDF-specificatie stream-objecten beschrijft
Version 2.770.96
Fixed
- Stamp-demo: PNG- en BMP-bestanden die de afbeeldingenkiezer aanbiedt kunnen nu als afbeeldingsstempel worden gebruikt; voorheen werkte alleen JPEG en mislukten andere bestanden met een invalid-bitmap-fout
- Stamp-demo: de rubberstempel-annotatie staat zoals bedoeld in het rechterbovengedeelte van elke pagina, onder een afbeeldingsstempel in de bovenhoek, in plaats van in de rechteronderhoek waar hij een afbeeldingsstempel in die hoek overlapt
- Stamp-demo: de standaard invoer-, uitvoer- en afbeeldingspaden worden opgelost ten opzichte van de demomap, en een bestand in een dialoog kiezen verandert de huidige map niet, dus relatieve namen blijven naar dezelfde bestanden wijzen
Version 2.770.95
Fixed
- Timestampverzoeken die met een policy-OID zijn gebouwd (HPDFRFC3161BuildRequest, en ondertekenen met een time stamp authority-policy) coderen de gevraagde policy nu als de kale object-id die RFC 3161 voorschrijft
- De policy werd vroeger verpakt in een context-tag die RFC 3161 reserveert voor verzoekextensies, waardoor een strikte time stamp authority het verzoek afwees of de policy negeerde
- Verzoeken zonder policy-OID zijn onveranderd
Version 2.770.94
Fixed
- ViewerPref-demo: Initial Zoom niet aanvinken betekent nu echt "None (Default)"; de gegenereerde PDF opent niet langer op fit-height, wat de componentstandaard was die de demo niet terugzette
Version 2.770.93
Fixed
- FileAttach-demo: de bijlage-annotaties op paginaniveau worden nu gemaakt wanneer de demo uit een map draait waarvan de naam tekens buiten de systeem-ANSI-codepagina heeft; het bijgevoegde bestand wordt doorgegeven onder zijn kale bestandsnaam in plaats van via een absoluut pad
Version 2.770.92
Fixed
- HTMLText-demo: een uitvoerpad met tekens buiten de systeem-ANSI-codepagina (bijvoorbeeld een Griekse of Cyrillische mapnaam) wordt nu correct weggeschreven in plaats van te mislukken
- HTMLText-demo: de gegenereerde PDF wordt niet langer automatisch in een externe reader geopend, net als bij de andere console-demo's
Version 2.770.91
Fixed
- SVG- en XPS-padimport werpt
EOverflowniet langer op bij getallen met honderden cijfers, of bij lange getallen in combinatie met een grote exponent; zulke waarden worden geweigerd zoals elk ander getal buiten het bereik - Geldt voor SVG-afbeeldingen die via de SVG-import-API's worden geplaatst en voor XPS-padgeometrie, op compilers waarvan de floating-point-exceptions niet gemaskeerd zijn
- Gewone getallen, waaronder lange mantisses met negatieve exponenten, worden gelezen zoals voorheen
Version 2.770.90
Fixed
- EmfDraw-demo: een mislukte conversie (bijvoorbeeld een ontbrekend invoer-metafile) eindigt nu met exitcode 1 in plaats van 0, zodat scripts en build-stappen die de demo draaien de mislukking opmerken
Version 2.770.89
Fixed
- CJKAnnotations-demo: wanneer Arial Unicode MS niet is geïnstalleerd, valt de demo nu echt terug op Microsoft YaHei; hij controleert de geïnstalleerde fonts in plaats van te wachten op een exception die een ontbrekend font nooit opwierp, zodat de CJK-tekst niet langer in een vervangend font zonder CJK-dekking terechtkomt
Version 2.770.88
Fixed
- Content streams die meer dan 32
q-operators nesten verliezen de omvattende graphics state niet langer: diepere saves werden genegeerd terwijl hun bijbehorendeQnog wel herstelde, zodat tekst en graphics na het geneste blok de staat van vóór een buitensteqgebruikten - Geldt voor tekstextractie via de content device-interface en voor SVG-export van zulke pagina's
- Opgeslagen states groeien nu mee met de nestdiepte; zeer diepe nesting wordt nog steeds correct gekoppeld
Version 2.770.87
Fixed
- ImageDemo: de bladwijzer "Image zoom" springt nu naar de kop IMAGE ZOOM in plaats van naar een punt nabij de onderkant van de eerste pagina
Version 2.770.86
Security
- Het openen van een PDF die is versleuteld voor een ontvangerscertificaat met een elliptic-curve-sleutel (ECDH-sleuteluitwisseling) wist nu het rauwe gedeelde geheim en de tussenliggende sleutelderivatiebuffers zodra ze niet langer nodig zijn, inclusief bij de herpoging met de omgekeerde bytevolgorde en op elk pad dat vroegtijdig mislukt
- Ondertekenen met een certificaat uit het Windows-certificaatarchief laat crypt32.dll en advapi32.dll niet langer geladen achter wanneer een benodigde CryptoAPI-functie niet gevonden kan worden
Version 2.770.85
Security
- Outlining van een Type 1-glyph waarvan de charstring sbw met te weinig operanden gebruikt leest niet langer vóór de operandstack; de misvormde operator wordt genegeerd
- Een Type 1-charstring die eindigt op de escape-byte van een twee-byte-operator leest niet langer voorbij het einde van de charstring
Version 2.770.84
Fixed
- De bytelengte van tekencodes in een CMap-codespace-bereik komt nu uit de lengte van zijn hex-strings, zoals ISO 32000-1 9.7.6.2 voorschrijft; een bereik als <0000> <00FF> werd als één byte behandeld omdat zijn bovengrens in een byte past, waardoor twee-byte-codes bij het renderen en het extraheren van tekst werden gesplitst
- Codespace-bereiken die uit ingebouwde CMaps komen, dragen hun codelengte ook
Version 2.770.83
Fixed
- Het inbedden van een subset van een geïnstalleerd TrueType-font houdt elke component van samengestelde glyphs (letters met accenten en dergelijke) waarvan de componenten een schaal of een 2x2-transformatie dragen; de component na zo'n transformatie werd verkeerd gelezen, waardoor hij uit de subset kon verdwijnen of zijn glyph-verwijzing over de transformatiebytes heen kon worden geschreven
- Samengestelde glyphs waarvan de componenten elkaar in een kring verwijzen, voorbij het aantal glyphs van het font verwijzen of naar een lege glyph wijzen, laten font-subsetting niet langer crashen of hangen
- In een subset krijgt een samengestelde glyph die in een andere samengestelde genest zit zijn componentverwijzingen één keer hernummerd in plaats van twee keer
Version 2.770.82
Fixed
- Reële getallen in CFF-fontwoordenboeken (FontMatrix, FontBBox, blue values en dergelijke) worden nu correct gelezen wanneer een byte naast een cijfer ook een teken, decimaalteken of exponent bevat; het cijfer in dezelfde byte werd eerder weggegooid, waardoor -2.25 -0.5 werd
- Deze waarden worden geparsed met een punt als decimaalteken, welke Windows-regioinstellingen er ook staan; op systemen met een decimale komma faalden ze met een conversiefout
Version 2.770.81
Fixed
- Tekstextractie en ToUnicode-opzoekingen geven niet langer een verouderde tekenreeks met meerdere tekens terug voor codes in een beginbfrange-arrayitem die op een ander arrayitem met meertekendoelen volgt; zulke codes verwijzen nu naar hun eigen enkele teken
Version 2.770.80
Fixed
- Het instantiëren van een TrueType-variabel font op gekozen aswaarden (bijvoorbeeld via SetVariableFontAxis) vervormt glyphs waarvan de gvar-data een sparse tuple na een andere tuple bevat niet langer; de sparse tuple begon bij de deltas van de vorige tuple en verplaatste die punten twee keer
- Punten die een sparse tuple weglaat, worden nu alleen geïnterpoleerd uit de punten die die tuple opsomt, zoals de OpenType-gvar-regels voorschrijven
Version 2.770.79
Security
- AddTiffFromFile weigert nu een TIFF-pagina waarvan breedte maal hoogte een raster van meer dan 2 GB nodig heeft, en gooit een exception in plaats van een buffer waarvan de grootte was omgeslagen te alloceren en de decoder voorbij het einde te laten schrijven (heap overflow)
- Een TIFF-pagina met breedte of hoogte nul wordt op dezelfde manier geweigerd
- Hoge TIFF-pagina's (1200 rijen of meer) melden nu een allocatiefout in plaats van in een nil-buffer te decoderen
Version 2.770.78
Fixed
- Glyphs van Type 3-fonts volgen nu de horizontale schaling (
Tz): een tekstloop op 200% horizontale schaal wordt twee keer zo breed getekend in plaats van op zijn natuurlijke breedte - Glyphs van Type 3-fonts volgen nu de text rise (
Ts), zodat superscripts en subscripts in Type 3-fonts worden verhoogd of verlaagd in plaats van op de baseline te blijven - De glyph-advances werden al geschaald; de glyphvormen sluiten er nu op aan
Version 2.770.77
Fixed
- RFC 3161-timestampverzoeken die HPDFRFC3161BuildRequest bouwt, coderen de nonce altijd als een minimale DER INTEGER; begon de willekeurige nonce met een nulbyte, dan droeg het verzoek een overbodige voorloopnul, welke strikte timestamp-servers als misvormd afwijzen
- De teruggegeven nonce behoudt de gevraagde lengte, dus aanroepers die hem met het timestampantwoord vergelijken merken niets
- Versleutelde PDF 2.0-bestanden (AES-256-GCM) waarvan de object streams tot lege inhoud decoderen, laden niet langer niet met een GCM-authenticatiefout; een lege object stream met een geldige authenticatietag wordt nu geaccepteerd, terwijl een gemanipuleerde tag nog steeds wordt geweigerd
Version 2.770.76
Fixed
- Hyperlink-demo: linkbijschriften en URL's met tekens buiten de systeem-ANSI-codepagina (bijvoorbeeld Grieks, Cyrillisch of tekst met accenten) worden niet langer naar vraagtekens omgezet; bijschriften worden als Unicode-tekst getekend met een URI-link eroverheen
- Hyperlink-demo: niet-ASCII-tekens in een URL worden als UTF-8 procentgecodeerd voordat ze in de link action worden opgeslagen, zodat readers het beoogde adres openen
Version 2.770.75
Fixed
- CalRGB-kleuren met componenten buiten 0..1 werpen geen floating-point-exception (
EInvalidOp) meer op tijdens het renderen; de componenten worden geklemd naar hun geldige bereik voordat de gamma wordt toegepast - Zulke kleuren renderen nu als de dichtstbijzijnde kleur binnen het bereik in plaats van als een ongedefinieerde, op compilers waarvan de floating-point-exceptions gemaskeerd zijn
Version 2.770.74
Fixed
- Direct File API-herschrijvingen (bijvoorbeeld DADirectEncryptFileAES256 en DADirectDecryptFileAES256) die tegelijk op meerdere threads draaien, corrumperen elkaars uitvoer niet langer; de gedeelde byte-range-kopie gebruikte één buffer voor het hele proces
Version 2.770.73
Fixed
- De gedeelde intrekkingscache van THPDFSignatureValidationBatch vindt nu OCSP-antwoorden voor ondertekenaarscertificaten waarvan het serienummer zijn bovenste bit op 1 heeft; zulke antwoorden werden opgeslagen onder een serienummer zonder voorloopnulbyte en daarmee opgezocht, zodat elke latere handtekening de cache miste
- OCSP-antwoorden die door een gedelegeerde responder zijn ondertekend, of die de responder bij sleutel identificeren, worden nu opgeslagen onder de certificaatuitgever en kunnen door latere handtekeningen in de batch worden hergebruikt; voorheen werden ze onder de respondernaam opgeslagen of helemaal niet
- Handtekeningen die steunen op bewijs dat een eerdere handtekening in dezelfde batch in de cache zette, komen in deze gevallen nu uit op een vertrouwd oordeel in plaats van op een onbekende intrekkingsstatus
Version 2.770.72
Fixed
- Het opzoeken van een ingebed bestand op naam (GetLoadedEmbeddedFileSpec, ExtractEmbeddedFileBytes, SaveLoadedEmbeddedFileToDisk en verwante methoden) laat de stack niet langer overlopen wanneer de naamboom /EmbeddedFiles van het document knopen bevat die elkaar of zichzelf als /Kids opvoeren
- Elke naamboomknoop wordt één keer doorzocht, zodat namen die via een gedeelde knoop bereikbaar zijn nog steeds gevonden worden
Version 2.770.71
Fixed
- PageSizes-demo: de pagina's in de Chinese formaten 8K en 16K drukken hun volledige omschrijving op elk systeem af; de Chinese formaatnamen worden in pinyin gegeven omdat de omschrijvingen in Arial worden getekend, dat geen CJK-glyphs heeft, en niet-ASCII-tekens op niet-CJK-codepagina's in vraagtekens veranderden
Version 2.770.70
Fixed
- Axiale (Type 2) shadings bedekken nu het hele gevulde gebied wanneer de shading-as ver ervan af ligt, bijvoorbeeld een gradiënt die buiten de paginarand is gedefinieerd met
/Extend [true true]; zulke gebieden bleven voorheen ongevuld - Geldt voor de operator
shen voor shading-patronen die als vul- of strokekleur dienen
Version 2.770.69
Fixed
- Navigation-demo: de benoemde bestemmingen
chapter-1enchapter-2openen hun pagina's nu bovenaan, 60 punten onder de bovenrand, in plaats van naar de onderkant van de pagina te scrollen; bestemmingscoördinaten staan in de PDF default user space met de oorsprong linksonder
Version 2.770.68
Fixed
- Tekstextractie uit een PDF met een ingebed TrueType-font loopt niet langer minuten vast wanneer de cmap van het font is afgekapt maar duizenden segmenten of groepen claimt; de tabellengte wordt nu gecontroleerd voordat de segmenten en groepen worden gelezen
- Het bouwen van de glyph-naar-Unicodetabel voor een ingebed TrueType-font loopt elke cmap-subtabel één keer per segment of groep door in plaats van alle 65.535 BMP-codepunten één voor één op te zoeken, wat ook de extractie met grote CJK-fonts versnelt
- Glyph-opzoekingen via een afgekapte cmap-subtabel van formaat 4 of 12 stoppen aan het einde van de fontdata in plaats van segmenten te doorzoeken die er niet zijn
Version 2.770.67
Fixed
- Exponentiële (Type 2) en stitching-functies (Type 3) respecteren nu een
/Domainmet één invoer zoals[0 0.5]; die werd genegeerd en vervangen door[0 1], waardoor invoer naar het verkeerde interval werd afgekapt - Een exponentiële functie zonder
/C1gebruikt nu de standaardwaarde[1.0]; Separation-kleuren en shadings die zo waren gedefinieerd, renderden zwart - Exponentiële functies berekenen
C0 + x^N (C1 - C0)nu met de invoer zelf in plaats van hem te herschalen naar 0..1, conform ISO 32000-1 voor domeinen anders dan[0 1] - Uitvoer van exponentiële functies wordt alleen naar
/Rangeafgekapt wanneer die aanwezig is; steunkleuren met een Lab-alternatieve kleurruimte (L* tot 100) werden naar 0..1 afgekapt en renderden vrijwel zwart - Een exponentiële functie waarvan de invoer buiten de waarden valt waarvoor hij gedefinieerd is, wordt geweigerd in plaats van een floating-point-exception op te werpen
Version 2.770.66
Fixed
- PKCS#12-/PFX-bestanden die zonder wachtwoord zijn geëxporteerd door tools die hun sleutels uit een wachtwoord met lengte nul afleiden, openen nu met een leeg wachtwoord in HPDFParsePFX, HPDFParsePFXByLocalKeyID, HPDFEnumeratePFXIdentities en de PFX-ondertekenmethoden; voorheen faalden ze met een authenticatiefout
- Bij een leeg wachtwoord wordt eerst de standaardcodering van RFC 7292 geprobeerd en daarna de vorm met lengte nul, zowel voor de integriteitscontrole als voor de sleutelontsleuteling, zodat bestanden die al openden op dezelfde manier openblijven
Version 2.770.65
Fixed
- De paginakop van de C++Builder DBTable-demo geeft nu "Page 1" weer in plaats van "Page1"
- Een fout tijdens het wegschrijven van de tabel door de C++Builder DBTable-demo sluit nu het halfafgebouwde document, zodat de volgende klik vanaf een schone staat begint
Version 2.770.64
Fixed
- De C++Builder-consoledemo's AnnotationInteraction, FormFields, CanvasDraw, EmfDraw, FormXObject, GraphicDraw, ImageDemo, ImageMask, LineGraphicsState en RtLTextOut schakelen zonder argumenten naar de map van het uitvoerbare bestand, zoals de Delphi-demo's, zodat hun invoerbestanden worden gevonden en hun PDF's daar worden weggeschreven, ook als ze vanuit een andere map worden gestart
- De C++Builder Graphic-demo's sturen niet langer een sluitbericht naar elk venster waarvan de titel de naam van hun uitvoer-PDF bevat, wat onbetreffende vensters kon sluiten
- De C++Builder ImageMask-demo werkt nu zoals de Delphi-versie: ze controleert of Mask.bmp en Image.jpg bestaan, comprimeert haar uitvoer, opent geen viewer en meldt fouten in plaats van met een onafgevangen exception te eindigen
- De C++Builder EmfDraw-demo meldt een fout, bijvoorbeeld een ontbrekend Sample.emf, en geeft een exitcode ongelijk nul terug in plaats van met een onafgevangen exception te eindigen
- De C++Builder AddDelPages-demo lost relatieve invoer- en uitvoerbestandsnamen op tegen de map van het uitvoerbare bestand, zoals de Delphi-versie
Version 2.770.63
Fixed
- De C++Builder FileAttach-demo schrijft FileAttach.pdf naast het uitvoerbare bestand, de naam die de Delphi-versie en de readme gebruiken, in plaats van Output.pdf in de werkmap, en houdt zijn bijlage FileAttach.txt in dezelfde map
Version 2.770.62
Fixed
- De Direct File API (DADirectEncryptFileAES256, DADirectDecryptFileAES256 en de andere directe herschrijfmethoden) leest cross-reference-streamoffsets boven 2 GiB nu correct; zulke offsets werden afgekapt en negatief, waardoor objecten in het bovenste deel van een groot bestand niet gevonden konden worden
- /Prev- en /XRefStm-offsets boven 2 GiB in de trailer of cross-reference stream worden gevolgd in plaats van als 0 gelezen, zodat oudere revisies en hybride cross-reference-secties van grote bestanden niet langer worden overgeslagen
- Hetzelfde geldt bij het laden van een groot bestand en bij het inspecteren van zijn revisies
- Nieuwe hulpfuncties HPDFDirectReadUIntBE64 en HPDFFindNameInt64 geven de volledige 64-bits waarde terug
Version 2.770.61
Fixed
- Een cross-reference stream waarvan de /W-veldbreedtes negatief zijn of groter dan 8 bytes wordt nu geweigerd in plaats van gedecodeerd; het laden valt terug op het scannen van het bestand naar zijn objecten
- De Direct File API-methoden (bijvoorbeeld DADirectEncryptFileAES256) lezen op zo'n bestand niet langer buiten de gedecodeerde tabel en kunnen niet langer crashen; ze weigeren het bestand in plaats daarvan
Version 2.770.60
Fixed
- Tekstextractie, zoeken en glyphposities lezen de tekstoperator
"nu correct: zijn eerste operand is de woordafstand en zijn tweede de tekenafstand; de twee stonden verwisseld - Regels die met
"en een woord- of tekenafstand ongelijk nul zijn geschreven, melden niet langer verschoven glyphposities, waardoor woorden in geëxtraheerde paginatekst konden samenvallen of splitsen en zoekresultaten verkeerd konden staan - Het renderen van pagina's was niet getroffen
Version 2.770.59
Fixed
- Table-demo: de rijen die de rowspan "Group A" beslaat, tonen hun item en notitie nu in de kolommen Item en Notes; voorheen was de notitietekst één kolom opgeschoven en viel weg
- Table-demo: de gegenereerde PDF wordt niet langer automatisch in een externe reader geopend, net als bij de andere consoledemo's, en uitvoerpaden buiten de systeem-ANSI-codepagina blijven intact
Version 2.770.58
Fixed
- Het decomprimeren van Flate-data naar een stream lekt niet langer de decoderstatus (zo'n 40 KB per keer) wanneer de bron- of doelstream halverwege een exception gooit, bijvoorbeeld wanneer een schrijfactie mislukt of een stream zijn groottelimiet bereikt
- Het comprimeren van een string lekt niet langer zijn tijdelijke buffer als comprimeren een exception gooit
- Geslaagde compressie en decompressie gedragen zich precies als voorheen
Version 2.770.57
Fixed
- Certificaten waarvan de name constraints-extensie niet als critical is gemarkeerd, worden bij de validatie van ondertekencertificaten niet langer als onleesbaar geweigerd; een CA-certificaat van die soort liet voorheen elke keten die erdoorheen loopt mislukken bij het opbouwen
- De constraints van zo'n certificaat worden nu net als critical toegepast op de rest van de keten, zodat ondertekenaarnamen buiten de toegestane subtrees nog steeds als schending van een name constraint worden gemeld
Version 2.770.56
Fixed
- PostScript-calculatorfuncties (Type 4) met diep geneste
if- ofifelse-procedures laten de stack tijdens het renderen niet langer overlopen; zo'n functie wordt als onbruikbaar behandeld en de kleur valt terug zoals bij elke andere ongeldige functie - Nesten is beperkt tot 64 niveaus, ruim boven wat echte calculatorprogramma's gebruiken; gewone Type 4-tinttransformaties en shadings renderen als voorheen
- Het evalueren van calculatorfuncties heeft per nestniveau minder stack nodig
Version 2.770.55
Fixed
- E-Invoice-demo: de geëxtraheerde Factur-X-/ZUGFeRD-XML wordt als UTF-8 gedecodeerd, dus letters met accenten en andere niet-ASCII-tekens in namen en adressen verschijnen niet langer verminkt in het XML-paneel
- E-Invoice-demo: in Delphi XE2 en later bepaalt het gecombineerde e-invoice-oordeel nu de stap voor de bedrijfsregels, zodat een falend regelbestand of een falende engine de validatie faalt in plaats van zwijgend door te laten gaan
- E-Invoice-demo: een verschil tussen de zichtbare tekst en de XML uit de heuristische consistentiecontrole wordt als waarschuwing gemeld en laat de algehele validatie niet langer zelfstandig falen
Version 2.770.54
Security
- CMS-handtekeningverificatie (HPDFVerifyCMSSignature, HPDFVerifyCMSSignatureEx en geladen PDF-handtekeningen) meldt nu een misvormde handtekening wanneer de ondertekende attributen het content-type-attribuut missen of een ander content type noemen dan de ondertekende inhoud, zoals RFC 5652 vereist; zulke handtekeningen werden voorheen als geldig geverifieerd, waardoor ondertekende attributen voor het ene content type konden worden voorgeschoteld als ondertekening van een ander
- Handtekeningen met een herhaald content-type-attribuut worden net als voorheen geweigerd
- Contrahandtekeningen, die per definitie geen content-type-attribuut dragen, en RFC 3161-timestamp-tokens blijven zoals voorheen verifiëren
Version 2.770.53
Fixed
- Een tweede klik op de knop van de C++Builder Annotations-demo schrijft het vorige document niet langer opnieuw weg voordat het nieuwe wordt gestart
- Een fout tijdens het bouwen van de PDF door de C++Builder Annotations-demo sluit nu het halfafgebouwde document, zodat de volgende klik vanaf een schone staat begint
Version 2.770.52
Fixed
- Meerdere documenten of
THotPDF-instanties in één proces die dezelfde map voor de disk render cache gebruiken, delen nu één cache-index; voorheen hield elke instantie zijn eigen index bij en overschreef die van de anderen bij elke opslag, waardoor de recent-gebruikt-volgorde verloren ging - De grenzen voor documentaantal en totale grootte van de disk render cache worden afgedwongen over alle instanties die een map delen, zodat de map niet langer voorbij zijn budget groeit wanneer meerdere viewers of renderthreads hem tegelijk gebruiken
- Dezelfde map wordt herkend ongeacht hoofdlettergebruik of een afsluitend padscheidingsteken
Version 2.770.51
Fixed
- Het hersamplen van een bitmap met de bicubic- of Lanczos3-kernel werkt nu voor elk bronpixelformaat; een 32-bits, 8-bits of 1-bits bron werd gelezen alsof hij 3-byte-pixels bevatte, wat zijn kleurkanalen door elkaar haalde of voorbij het einde van zijn rijen las
- Zulke bronnen worden eerst naar 24 bits omgezet, zodat de herversamplede afbeelding dezelfde kleuren heeft als de bron; het resultaat blijft net als voorheen een 24-bits bitmap
- 24-bits bronnen en de halftone-kernel zijn niet getroffen
Version 2.770.50
Fixed
- PreflightCLI-demo:
-dop een enkele PDF schrijft nu de dashboardindex weg, zelfs wanneer het bestand de preflight niet haalt - PreflightCLI-demo: bestanden die tijdens de preflight een error veroorzaken, staan in de dashboardindex als gefaald te boek, en de exitcode weerspiegelt elk gefaald bestand
- PreflightCLI-demo: met
-rworden rapporten voor gelijknamige PDF's in verschillende submappen naar bijpassende submappen geschreven in plaats van elkaar te overschrijven, zowel met-oals in het dashboard - PreflightCLI-demo:
-f jsonen-f csvleveren nu hetzelfde schema op met of zonder--profile/--preset/--aggregate, inclusief de CSV-spec-kolom - PreflightReport-demo: CSV-rapporten die met een profiel zijn gegenereerd, vullen nu de spec-kolom zoals rapporten zonder profiel
Version 2.770.49
Fixed
- De C++Builder LargeFile-demo genereert nu de benchmarkinvoerset die zijn readme beschrijft, zoals de Delphi-versie: LargeFile-Text.pdf, LargeFile-Image.pdf, LargeFile-Mixed.pdf en de met AES-256 versleutelde LargeFile-Encrypted.pdf in een map BenchmarkInputs naast het uitvoerbare bestand; hij schreef voorheen alleen één LargeFile.pdf van 200 pagina's
- De C++Builder LargeFile-demo accepteert de opties
--output-dir,--scale(small, default, large, huge) en--pagesen toont het HugeFileBenchmark-commando voor de gegenereerde map
Version 2.770.48
Fixed
- De C++Builder Outlines-demo schrijft Outlines.pdf nu naast het uitvoerbare bestand, het bestand dat de readme noemt, in plaats van Output.pdf in de werkmap, en meldt waar het is opgeslagen in plaats van een viewer te openen
- De C++Builder Outlines-demo bouwt nu hetzelfde document van 10 pagina's met Arial-paginalabels als de Delphi-versie; de labels aan de onderkant van de pagina op y = 830 werden aan de paginarand afgesneden en de bladwijzers "Bottom" van de laatste pagina wezen eronder
- Een fout tijdens het wegschrijven van de PDF door de C++Builder Outlines-demo laat de demo niet langer achter zonder mogelijkheid om nog een document te maken
Version 2.770.47
Fixed
- De persistente disk render cache werkt nu ook onder mappen waarvan de namen tekens buiten de systeem-ANSI-codepagina bevatten (bijvoorbeeld een gebruikersprofielmap met niet-Latijnse tekens); voorheen faalde daar elke paginawegschrijving en leverde de cache nooit een hit
THPDFDiskPageCacheneemt zijn hoofdmap als Unicode-string en houdt alle cachepaden in Unicode bij, inclusief de atomaire vervanging van paginabestanden en van de cache-index
Version 2.770.46
Fixed
- Regio- en tile-rendering (
RenderLoadedPageRegionToBitmap,RenderLoadedPageTiles, progressieve regiorendering) laat een tile niet langer leeg wanneer zijn enige inhoud van een form XObject komt dat buiten de oorsprong is geplaatst; een form telt nu als bedekking van zijn/BBoxzoals geplaatst door zijn/Matrixen de huidige transformatie - Tekst die met
TD,T*,'of"is geplaatst, belandt nu op de juiste regel bij het bepalen welke tiles hem bevatten, zodat latere regels van een alinea niet langer uit de tiles waarin ze staan worden weggefilterd Td-offsets worden geschaald met de tekstmatrix en gemeten vanaf het begin van de regel, conform hoe de tekst werkelijk wordt getekend- Letterafstand, woordafstand, horizontale schaling en text rise worden meegenomen bij het schatten waar een tekstloop eindigt, en glyphs worden niet langer als smaller dan één em verondersteld
Version 2.770.45
Fixed
- De C++Builder MemStream-demo schrijft MemStream.pdf naast het uitvoerbare bestand, de naam die de Delphi-versie gebruikt, in plaats van Memory.pdf in de werkmap
- De C++Builder MemStream-demo laadt de PDF in het geheugen nu opnieuw met LoadFromStream en controleert dat hij één pagina heeft voordat hij wordt opgeslagen
- Een fout tijdens het wegschrijven van de PDF door de C++Builder MemStream-demo laat de demo niet langer achter zonder mogelijkheid om nog een document te maken
Version 2.770.44
Fixed
- De C++Builder HelloWorld-demo stuurt bij het starten niet langer een sluitbericht naar elk venster waarvan de titel HelloWorld.pdf bevat, wat onbetreffende vensters zoals een editor of bestandsbeheerder kon sluiten
- De C++Builder HelloWorld-demo schrijft HelloWorld.pdf naast het uitvoerbare bestand en opent het alleen wanneer
--openis meegegeven; zoals de Delphi-versie accepteert hij een uitvoerbestandsnaam of--output <file>
Version 2.770.43
Fixed
- Het laden van een PDF waarvan de paginaboom tussenliggende /Pages-knopen heeft, verliest de pagina's onder die knopen niet langer; zulke documenten meldden voorheen alleen de pagina's die direct onder de wortel van de boom staan
- De pagina's houden hun volgorde uit de paginaboom, zodat pagina-indexen, page boxes en inhoud overeenkomen met wat andere viewers tonen
- Een pagina waarvan /Type als indirect object is opgeslagen, wordt tijdens deze sorteerstap als pagina herkend
Version 2.770.42
Fixed
- Het laden van een PDF waarvan de paginaboom naar zichzelf verwijst (een /Pages-knoop die bij zijn eigen /Kids staat, of twee knopen die elkaar opvoeren) crasht niet langer met een stack overflow; elke paginaboomknoop wordt één keer doorlopen en absurd diepe bomen worden afgekapt
- Een paginaboomknoop waarvan de /Kids-array of /Type-naam als indirect object is opgeslagen, laadt nu zijn pagina's in plaats van te falen of ongeldig geheugen te lezen
Version 2.770.41
Fixed
- THPDFPage.LastAnnotation geeft nu de link terug die AddGoToLink, AddURILink, AddNamedDestinationLink, AddGoToRLink, AddLaunchLink, AddStructureDestinationLink en AddGoToRStructureDestinationLink maken
- Het aanroepen van SetAnnotationFlags, SetAnnotationBorderStyle of AddPopupAnnotationFor met LastAnnotation direct na het toevoegen van een link doet niet langer stilletjes niets of verandert in plaats daarvan de eerder gemaakte annotatie
Version 2.770.40
Fixed
- Job-JSON die aan
THPDFJobProcessor.Execute,HPDFDocRunJobenHPDFDocRunJobWithCallbackswordt doorgegeven, wordt nu overal als UTF-8 gelezen:\uXXXX-escapes zakken niet langer in de ANSI-codepagina weg, en ge-escape-te surrogaatparen zoals😀leveren het beoogde teken op in plaats van twee kapotte - Invoer- en uitvoerbestandsnamen in merge-, split-, optimise-, encrypt- en validate-jobs houden tekens buiten de systeemcodepagina vast, of ze nu als rauwe UTF-8 of als
\u-escapes zijn geschreven, zodat zulke bestanden onder hun echte namen worden gevonden en weggeschreven - Een misvormde
\u-escape met minder dan vier hex-cijfers wordt weggegooid zonder de volgende tekens of het sluitende aanhalingsteken in te slikken - Een UTF-8-bytevolgordemarkering aan het begin van de jobtekst wordt genegeerd
Version 2.770.39
Fixed
- Objectidentificaties die de aanroeper opgeeft bij het bouwen van handtekeningen en timestampverzoeken (signature policy, commitment type, claimed role, timestamp policy en vergelijkbare OIDs) worden nu correct gecodeerd wanneer de eerste boog 2 is en de tweede boog 48 of groter; de gecombineerde eerste waarde werd voorheen tot één byte afgekapt, wat een andere, verkeerde identificatie opleverde
- Een boog van een objectidentificatie die te groot is om voor te stellen, wordt nu met een fout geweigerd in plaats van stilletjes naar een andere waarde om te slaan
Version 2.770.38
Fixed
- HugeFileBenchmark-demo: met
--recursive --keep-outputoverschrijven PDF's die in verschillende submappen dezelfde bestandsnaam hebben niet langer elkaars gegenereerde bestanden; de werkmap weerspiegelt nu de invoermapboom
Version 2.770.37
Security
- Het renderen van een PDF met een ingebed TrueType-font waarvan de samengestelde glyphs vele componenten opsommen, die telkens weer samengesteld zijn, kan de renderer of de text-to-path-export niet langer laten hangen; één glyph breidt nu over alle nestniveaus heen uit tot hooguit 1024 componenten
- Een component van een samengestelde glyph die naar zijn eigen glyph verwijst, wordt overgeslagen in plaats van tot de nestgrens uitgebreid te worden
Version 2.770.36
Fixed
- Een stitching-functie (Type 3) die naar zichzelf verwijst, direct of via andere functies, loopt niet langer recursief door tot de stack overloopt; ze wordt als onbruikbare functie behandeld
- Treft Separation- en DeviceN-tinttransformaties, shading-functies en transferfuncties in misvormde of vijandige PDF's die met
RenderLoadedPageToBitmapen de andere renderpaden worden gerenderd - Functienesten zijn beperkt tot 16 niveaus; legitieme documenten nesten veel minder diep
Version 2.770.35
Fixed
- De C++Builder PageOperations-demo doorloopt nu dezelfde workflow als de Delphi-versie: ze voegt ook een lege pagina op maat in met InsertLoadedBlankPage en drukt de tekst van pagina 1-3 af met ExtractLoadedPagesText
- De herordende en geëxtraheerde bestanden van de C++Builder PageOperations-demo bevatten nu dezelfde pagina's als die van de Delphi-versie, waarbij de laatste pagina naar pagina 2 verschuift en pagina's 2 en 5 worden geëxtraheerd
Version 2.770.34
Fixed
- De C++Builder Hyperlink-demo gaat door op een nieuwe pagina wanneer de linklijst niet op één pagina past; links voorbij de onderkant van de eerste pagina werden buiten de pagina geschreven
- Add, Remove en Make PDF in de C++Builder Hyperlink-demo zijn uitgeschakeld terwijl de PDF wordt weggeschreven, zodat de linklijst niet langer kan wijzigen en het document niet een tweede keer kan worden gestart midden in de generatie
Version 2.770.33
Fixed
- De C++Builder Stamp-demo plaatst het tekstwatermerk en de rubberstempelannotatie nu relatief aan de grootte van elke pagina; op liggende en andere niet-A4-pagina's viel de stempelannotatie buiten de pagina en dreef het watermerk van het midden af
Version 2.770.32
Fixed
- Elke knop van de C++Builder ViewerPref-demo begint nu vanuit een vers document; de leesrichting, initiële zoom en andere viewervoorkeuren van een eerdere klik bleven gelden, zodat bijvoorbeeld Create PDF na Test Direction nog steeds rechts-naar-links-tekst en niet meer geselecteerde voorkeuren wegschreef
- De C++Builder PDF_INFO-demo schrijft PDFInfo.pdf nu naast het uitvoerbare bestand, de bestandsnaam die de Delphi-versie en de readme gebruiken
Version 2.770.30
Security
- Certificaatpadvalidatie (HPDFValidateCMSCertificatePath, de online variant en handtekeningenbatches) kan niet langer worden lamgelegd door een handtekening die vele certificaten met dezelfde naam en sleutel inbedt; zo'n verzameling liet het padzoeken elke mogelijke volgorde proberen, wat factorieel groeit en een validatie urenlang kon bezighouden
- Elke uitgevershandtekening in een kandidaatsketen wordt nu één keer per validatie geverifieerd en haar resultaat hergebruikt, in plaats van opnieuw geverifieerd te worden voor elk pad dat erdoorheen loopt
- Het padzoeken is begrensd op een vaste hoeveelheid werk; wanneer de grens is bereikt, meldt de validatie dat geen geldig pad een trust anchor bereikt, en gewone ketens blijven ver daaronder
Version 2.770.29
Fixed
ImportLoadedInterchangeFromFDFmatcht nu hele sleutelnamen bij het lezen van annotaties en de FDF-status:/Tstopt niet langer bij/Typeof/Text,/Fniet langer bij/FreeText, en/Statusniet langer bij een langere sleutel die hetzelfde begint, dus geïmporteerde annotaties houden hun auteur en vlaggen- Sleutels van geneste woordenboeken in een geïmporteerde annotatie en sleutelachtige tekst in strings worden niet langer aangezien voor de eigen items van de annotatie
- Letterlijke strings in geïmporteerde FDF-annotaties en -status decoderen alle escapes die ISO 32000-1 definieert:
\t,\b,\f, octale\ddden backslash-regelcontinuaties, naast\n,\ren ge-escape-te haakjes
Version 2.770.28
Fixed
- In builds die met Delphi-versies vóór XE2 zijn gemaakt, welke de meegeleverde PNG-lezer gebruiken, leest het laden van een PNG-bestand met een compressed text-chunk (zTXt) niet langer voorbij een interne buffer; tekst langer dan 256 bytes kwam gecorrumpeerd en veel te lang uit, en grote chunks konden crashen
- De compressiemethode van een compressed text-chunk wordt nu uit de juiste byte gelezen, zodat chunks met een niet-ondersteunde methode worden genegeerd in plaats van alsof het deflate-data waren gedecodeerd
- Afgekapte of misvormde compressed text loopt niet langer het risico van een eindeloze decoderingslus
- Builds met Delphi XE2 en later gebruiken de systeem-PNG-lezer en zijn niet getroffen
Version 2.770.27
Changed
- De C++Builder SearchAndSelect-demo werkt nu zoals de Delphi-versie: ze maakt een voorbeeld-PDF, laadt die, vindt de zoekterm met SearchLoadedDocumentText en voegt bij elke treffer een highlight-annotatie toe met AddLoadedHighlightAnnotation
- De C++Builder SearchAndSelect-demo accepteert een invoer-PDF, een zoekterm, een uitvoerbestand en de opties --case-sensitive en --whole-word, en controleert de opgeslagen kopie op de nieuwe annotaties
Fixed
- De highlights van de C++Builder SearchAndSelect-demo bedekken nu de gevonden woorden; ze werden één regel te hoog geplaatst omdat de tekstpositie als baseline werd genomen in plaats van als bovenkant van de tekst
Version 2.770.26
Fixed
- De C++Builder DigiPrint-demo start nu op systemen waarvan het decimaalteken een punt is; de kommagetallen in demo.xml werden met de systeemlocale geparsed en veroorzaakten een fout bij het maken van het formulier
- De DigiPrint-demo leest demo.xml en zijn twee JPEG-iconen uit de map van het uitvoerbare bestand en schrijft demo.pdf daarheen, en het project plaatst het uitvoerbare bestand nu in de demomap naast die bestanden
- De pagina-iconen in de voettekst van de DigiPrint-demo worden binnen de voettekstrij getekend in plaats van onder de onderrand van de pagina, en titel, jaar en voettekst gebruiken de fontgroottes van de rapportstijl
- Meer dan één keer klikken op de DigiPrint-knop schuift de linkermarge niet langer bij elke klik verder naar rechts
- Een fout tijdens het bouwen van de PDF door de DigiPrint-demo, zoals een ontbrekend afbeeldingsbestand, laat de demo niet langer achter zonder mogelijkheid om nog een document te maken
Version 2.770.25
Fixed
- Showcase-demo: kopbalken, de coverachtergrond, de gradiëntstalen en het accent op de achterpagina vullen nu precies de vormen waar ze bij horen; gradiëntcoördinaten staan in de PDF default user space (oorsprong linksonder), zodat de kleuren niet langer verschoven of gespiegeld zijn
- Showcase-demo: Save Copy wisselt het werkbestand niet langer om, zodat Regenerate en Open External de hoofdgalerie blijven gebruiken in plaats van de laatst weggeschreven kopie
- Showcase-demo: wanneer het genereren van de galerie faalt, wordt de viewer opnieuw gebonden en blijft hij de laatst geladen galerie tonen in plaats van leeg te blijven
- Showcase-demo: uitvoerpaden met tekens buiten de systeem-ANSI-codepagina worden ongewijzigd doorgegeven
Version 2.770.24
Fixed
- Het laden van een JPEG 2000-afbeelding met vier componenten (RGB plus alpha, of YCC plus alpha) in een
TJpeg2000Bitmapzet rood, groen, blauw en alpha nu in de juiste bytes van de 32-bits bitmap; voorheen waren de kleurkanalen één byte opgeschoven en overschreef het alphakanaal er één - Dit lost ook een heen-en-weerronde van een 32-bits
TJpeg2000BitmapviaSaveToStreamenLoadFromStreamop, die met door elkaar gehaalde kleuren terugkwam - Kleurenafbeeldingen met drie componenten, grijswaardenafbeeldingen en CMYK-afbeeldingen met vier componenten laden als voorheen
Version 2.770.23
Security
- Een tekenreeks waarvan de waarde met << begint en met >> eindigt (bijvoorbeeld een titel, auteur, formulierveldwaarde of annotatietekst zoals "<<URGENT>>") wordt nu altijd als string opgeslagen; hij werd letterlijk weggeschreven, wat de bestandssyntaxis brak en geprepareerde tekst een woordenboek zoals een action in het opgeslagen document liet injecteren
- Geldt voor nieuwe documenten en voor geladen documenten die met SaveLoadedDocument en verwante methoden worden opgeslagen
Version 2.770.22
Fixed
- De C++Builder Barcodes-demo schrijft Barcodes.pdf naast het uitvoerbare bestand in plaats van in de huidige werkmap, en accepteert een optionele uitvoerbestandsnaam als enige argument
- De C++Builder Barcodes-demo opent na het draaien niet langer een PDF-viewer, en comprimeert zoals de Delphi-versie zijn pagina-inhoud en opent op fit-height-zoom
- Fouten in de C++Builder Barcodes-demo worden met hun meldingstekst gerapporteerd; de console toonde in plaats daarvan een geheugenadres
Version 2.770.21
Fixed
- In de stabiele C ABI geeft het aanroepen van
hpdf_document_destroyterwijl een andere aanroep op dezelfde handle nog draait (vanuit een andere thread, of van binnenuit een read-, write-, progress- of cancellation-callback) het document onder die aanroep niet langer vrij - De handle wordt ongeldig zodra
hpdf_document_destroyterugkeert; het document zelf wordt vrijgegeven wanneer de laatst draaiende aanroep erop klaar is - Aanroepen die een handle opzoeken tegelijk met zijn vernietiging krijgen
HPDF_STATUS_INVALID_HANDLEin plaats van vrijgegeven geheugen aan te raken
Version 2.770.20
Security
- Tekst shapen met een TrueType/OpenType-font waarvan de GSUB-contextlookups naar zichzelf verwijzen, laat de stack niet langer overlopen en crashen; de nestdiepte telt nu echt op over niveaus heen
- Een contextregel die vele geneste lookups afvuurt, kan ze niet langer vermenigvuldigen tot een bijna eindeloze lus: elke match op het hoogste niveau draait hooguit 1024 geneste lookups
Fixed
- Een chaining contextual substitution (GSUB lookup type 6) die vanuit een andere contextuele lookup wordt bereikt, wordt nu toegepast; ze werd met de gewone contextindeling gelezen en matchte nooit, waardoor sommige ligaturen en contextvormen ontbraken
- Een reverse chaining substitution (GSUB lookup type 8) waarnaar een contextregel verwijst, wordt overgeslagen zoals de OpenType-specificatie vereist, in plaats van verkeerd als contextuele subtabel gelezen te worden
Version 2.770.19
Fixed
RenderLoadedPageToDCgooit geen toegangsfout meer wanneer de pagina een image XObject of een inline afbeelding bevat; de afbeeldingen worden in de device context van de aanroeper getekendGetLoadedPageMetafilefaalt niet langer op pagina's met afbeeldingen, en de afbeeldingen worden in de teruggegeven metafile opgenomen- Het bijsnijden van afbeeldingen tegen het zichtbare oppervlak gebruikt nu de grootte die aan
RenderLoadedPageToDCis doorgegeven wanneer de device context geen clipregio heeft
Version 2.770.18
Fixed
- JBIG2-halftoneregio's met ingeschakelde grid skipping laten gridcellen niet langer vallen die links van of boven de regio beginnen maar hem nog overlappen; zulke cellen werden als ver erbuiten behandeld, hun grijswaarden werden overgeslagen en de overige cellen van de regio werden uit de pas gedecodeerd
- Negatieve gridcoördinaten die geen hele pixels zijn, worden nu afgerond richting min oneindig zoals de JBIG2-specificatie vereist, zodat deels zichtbare cellen op de juiste pixel uitkomen
- Halftoneregio's waarvan het grid helemaal op niet-negatieve coördinaten ligt, zijn niet getroffen
Version 2.770.17
Fixed
- OCSP-antwoorden waarvan de responder bij sleutelhash is geïdentificeerd in de standaardvorm van RFC 6960 (een expliciete [2]-tag om de sleutelhash) worden weer geaccepteerd; certificaatpadvalidatie wierp ze voorheen weg, waardoor de intrekking onbekend bleef voor elke responder die zichzelf bij sleutel noemt
- Zowel directe responders (de uitgevende CA) als gedelegeerde OCSP-ondertekencertificaten die bij sleutel zijn geïdentificeerd, worden gematcht, en de oudere impliciet getagde vorm blijft werken
- HPDFDescribeValidationEvidence indexeert OCSP-descriptoren nu op de DN van de certificaatuitgever die elk antwoord noemt, opgelost uit de issuer name hash van het antwoord, in plaats van op de responder-DN; antwoorden van gedelegeerde responders en antwoorden die bij sleutel zijn geïdentificeerd leveren nu descriptoren op die een opzoek op certificaatuitgever kan vinden
- Er is een HPDFDescribeValidationEvidence-overload bijgekomen die de CMS-handtekening en extra uitgeverscertificaten neemt, voor antwoorden die de responder bij sleutel identificeren en geen certificaat inbedden
Version 2.770.16
Fixed
- Viewer-demo: het formulier gooit bij het starten geen toegangsfout meer; de statusbalk bestaat nu voordat de viewer aan het document wordt gebonden en begint paginawisselingen te melden
- Viewer-demo: op Enter drukken in het zoekvak activeert nu de eerste treffer in plaats van direct naar de tweede te springen
- Viewer-demo: bladwijzers zonder oplosbare bestemmingspagina worden zonder nep-achtervoegsel "(p0)" opgesomd, en erop klikken gooit geen bereikfout meer
Version 2.770.15
Fixed
- De ontsleutelingsstap van de C++Builder Security-demo opent het versleutelde voorbeeld nu echt met het gebruikerswachtwoord "user"; het wachtwoordargument werd als vlag voor automatische ontsleuteling genomen, zodat het voorbeeld zonder zijn wachtwoord werd geladen en Security-Decrypted.pdf geen ontsleutelde kopie was
Version 2.770.14
Fixed
- Een clip-pad dat met
WofW*is gezet, wordt nu effectief nadat het pad is getekend, zoals ISO 32000-1 vereist, in plaats van ervoor - Een pad met stroke tekenen dat ook de clip zet (
re W S) tekent nu de hele lijnbreedte; de buitenhelft van de stroke werd weggesneden door de eigen clip van het pad - Vullen-en-stroken met een even-odd-clip (
W* B) vult nu met de eigen winding-regel van de tekenoperator; de even-odd-clip boorde voorheen gaten in de vulling B*enb*vullen nu altijd met de even-odd-regel, onafhankelijk van de vulregel die van een eerdere operatie was overgebleven
Version 2.770.13
Fixed
- JBIG2-halftoneregio's waarvan de grijswaardevlakken MMR-gecodeerd zijn, decoderen nu; voorheen kwamen de vlakken geïnverteerd uit, werd slechts elke achtste kolom gelezen en lag het einde van elk vlak op de verkeerde byte, waardoor de volgende vlakken vanaf de verkeerde positie werden gedecodeerd
- De end-of-block-marker na elk MMR-vlak wordt herkend, of hij nu direct op de laatste rij volgt of na byte-opvulling, en elk vlak begint nu op de bytegrens die erop volgt
- Aritmetisch gecodeerde halftoneregio's zijn niet getroffen
- Geldt voor PDF-afbeeldingen met het JBIG2Decode-filter die met de ingebouwde decoder worden geladen, geëxtraheerd of gerenderd
Version 2.770.12
Fixed
- JSON die de jobprocessor (
THPDFJobProcessor.Execute,HPDFDocRunJob,HPDFDocRunJobWithCallbacks) en de documentvergelijking produceren, escapet nu aanhalingstekens en backslashes als\"en\; de vorige vormen\x22/\x5Czijn geen geldige JSON en lieten standaardparsers resultaten met een aanhalingsteken of een Windows-pad weigeren - Stuurtekens worden als
\uXXXX-escapes weggeschreven en de uitvoer is altijd welgevormde UTF-8: bytes die geen geldige UTF-8 zijn, worden door U+FFFD vervangen in plaats van in het resultaat gekopieerd - Foutmeldingen in jobresultaten en in het vergelijkingsfoutobject zijn als UTF-8 gecodeerd, zodat niet-Engelse exceptiontekst en bestandsnamen niet langer in de ANSI-codepagina aankomen
Version 2.770.11
Fixed
- RedactLoadedRect, StampLoadedPageText, StampLoadedPageImage, StampLoadedPageShape, StitchLoadedPage en FlattenLoadedAnnotations gooien de bestaande inhoud van een pagina niet langer weg wanneer haar /Contents een array van streams is; de nieuwe operators worden als extra stream aan het einde van de array toegevoegd, of vooraan bij een underlay
- Underlay-stempels op een pagina waarvan de inhoud over meerdere streams is verdeeld, houden elke originele stream vast
- Pagina's waarvan de enige content stream een ander filter dan puur FlateDecode gebruikt (ASCIIHex, ASCII85, LZW, RunLength, filterketens of Flate met een predictor) worden nu gedecodeerd voordat nieuwe operators worden toegevoegd, zodat de stempel, het redactiekader of de afgeplatte verschijning werkelijk wordt getekend en de originele inhoud leesbaar blijft
- Wanneer de content stream van een pagina helemaal niet kan worden gedecodeerd, blijft hij onaangetast en worden de nieuwe operators naar een aparte stream geschreven in plaats van aan de gecodeerde bytes toegevoegd
Version 2.770.10
Security
- Het renderen van een PDF waarvan het ingebedde CFF-font (FontFile3, Type1C of CIDFontType0C) een INDEX-offset van 0x80000000 of meer opslaat, leest niet langer buiten de fontdata; zulke offsets werden als negatief behandeld en passeerden de grenscontroles
- Ingebedde TrueType-fonts krijgen dezelfde behandeling voor glyphlocaties en tabellengtes van 0x80000000 of meer: de glyph of het font wordt overgeslagen in plaats van op de verkeerde plek gelezen
- Een CFF-glyph waarvan de subroutines elkaar vaak meerdere keren aanroepen, kan rendering of text-to-path-export niet langer laten hangen; elke glyph heeft nu een vast budget aan charstring-operaties, ruim boven wat echte fonts gebruiken
Version 2.770.9
Fixed
- JBIG2-afbeeldingen waarvan de tekstregio's Huffman-codering samen met symbol refinement in het 13-pixelsjabloon gebruiken, decoderen nu; de adaptive-pixel-bytes van de refinement in de regioheader werden overgeslagen, waardoor het instantieaantal en elk volgend veld vanaf de verkeerde offset werd gelezen en de afbeelding werd geweigerd
- Tekstregio's met aritmetische codering, of met het 10-pixel-refinementsjabloon, zijn niet getroffen en decoderen precies als voorheen
- Geldt voor PDF-afbeeldingen met het JBIG2Decode-filter die met de ingebouwde decoder worden geladen, geëxtraheerd of gerenderd
Version 2.770.8
Security
- Met codec-isolatie ingeschakeld wordt de grootte van een gedecodeerde afbeelding die de geïsoleerde codecworker teruggeeft nu gecontroleerd aan de geconfigureerde uitvoergrens en het gedeelde geheugen dat het hostproces heeft toegewezen, in plaats van aan een capaciteitsveld dat de worker zelf kan overschrijven
- Een gecompromitteerde of foutieve worker kan de host niet langer voorbij het einde van het gedeelde geheugenblok laten kopiëren; zo'n antwoord wordt als protocolfout geweigerd en de afbeelding wordt er niet uit getekend
- Het antwoord van de worker wordt één keer gekopieerd en vanaf die kopie gevalideerd, zodat zijn header niet kan wijzigen tussen de controles en de pixelkopie door
Version 2.770.7
Fixed
- OCSP-verzoeken die voor live intrekkingscontrole worden gebouwd (HPDFCollectCMSRevocationRequests en de online certificaatpadvalidatie) coderen nu de SHA-256-algoritme-identificeerder van de CertID correct; voorheen werden de eerste twee objectidentificatiebogen als aparte bytes weggeschreven, waardoor het hash-algoritme ongeldig was
- OCSP-responders die misvormde verzoeken afwijzen, beantwoorden deze verzoeken nu met een normale status in plaats van een fout, zodat online intrekkingscontroles niet langer naar offline bewijs terugvallen door de verzoekcodering
Version 2.770.6
Fixed
- Het renderen van een Type 3-font tekent nu elk voorkomen van een glyph; voorheen werd een glyph die in dezelfde tekstloop herhaald werd, of ergens anders op de pagina met dezelfde grootte en oriëntatie, alleen de eerste keer getekend en daarna leeg gelaten
- Treft
RenderLoadedPageToBitmap,RenderLoadedPageToDC, paginametafiles en de afbeeldingsexportpaden, met of zonder de gedeelde rendercache - Herhaalde Type 3-glyphs blijven de glyphcache gebruiken, dus de fix leest de glyphprocedure niet opnieuw bij elk voorkomen
Version 2.770.5
Fixed
- De stabiele C ABI geeft de invoerbron niet langer twee keer vrij wanneer
hpdf_document_load_from_iofaalt terwijl het document wordt geparsed, bijvoorbeeld wanneer de read-callback een error meldt of de operatie halverwege wordt geannuleerd; zo'n load kon de heap corrumperen of het hostproces laten crashen - Een mislukte load geeft nu de callback- of annuleringsstatus terug in plaats van een interne fout, en dezelfde documenthandle kan daarna opnieuw worden geladen
- Het laden van een nieuw document in een bestaande handle geeft de vorige invoerbron pas vrij als de nieuwe load heeft overgenomen
Version 2.770.4
Fixed
- Barcode-resultaten van
DecodeLoadedPageBarcodesop pagina's met/Rotate 90of/Rotate 270melden hun bounds nu op de echte positie van het symbool in plaats van op een over de pagina gespiegelde positie - De gemelde barcodeoriëntatie op die pagina's komt nu overeen met de richting waarin het symbool in de paginaruimte werkelijk leest
- De onzichtbare tekst die
ApplyLoadedOCRTextLayerop kwart gedraaide pagina's plaatst, ligt nu over de herkende woorden, zodat selectie en zoeken de juiste plek markeren - Gezichten die redactiedetectie op kwart gedraaide pagina's vindt, worden nu ook teruggezet naar het juiste paginaoppervlak
- Niet-gedraaide en ondersteboven staande pagina's zijn niet getroffen
Version 2.770.3
Fixed
- In 32-bits builds crasht het laden of wegschrijven van een met PixarLog gecomprimeerde TIFF-afbeelding niet langer met een stack overflow; het kiezen van de codec bouwt zijn companding-tabellen, die tegen een oneindig recursieve exponenthulpfunctie aanliepen
- SGILog- (LogLuv) TIFF-afbeeldingen in 32-bits builds gaan door dezelfde gecorrigeerde math-hulpfuncties
- De 32-bits afrondingshulp naar beneden die de TIFF-codecs gebruiken, rondt negatieve waarden nu richting min oneindig af en accepteert grote magnitudes zonder overloopfout, conform de 64-bits builds
Version 2.770.2
Changed
- Bij het renderen wordt een afbeelding die op de helft van zijn pixelformaat of kleiner wordt getekend, direct na het decoderen door gebiedsgemiddelde exact naar de getekende grootte verkleind, in plaats van op volledige grootte gehouden en tijdens het tekenen uitgerekt
- De verkleinde afbeelding past in de decoded-image-cache: een transparantiegroep die twee keer wordt getekend, op zwart en op wit, om haar alpha terug te winnen, decodeert zo'n afbeelding nu één keer in plaats van één keer per beurt, en het opnieuw renderen van dezelfde pagina ook
- Een afbeelding met een soft mask wordt op de getekende grootte pixel voor pixel met zijn masker gecombineerd, waarbij het masker ook wordt verkleind; dit voorkomt het bouwen en premultipliëren van een kopie op volledige grootte van een grote afbeelding en zijn masker, en de maskerrand wordt niet langer met nearest neighbour gesampled
- Op een voorbeeldpagina met een gemaskeerde afbeelding van 4229 x 4629 die binnen zo'n groep op ongeveer een kwart van haar grootte wordt getekend, duurde het renderen zo'n 1,8 seconde in plaats van 4,5
- Stencil-imagemaskers houden hun volledige resolutie, en de openbare regiodecoderingsmethoden blijven de groottes teruggeven die ze documenteren
Version 2.770.1
Fixed
- In 64-bits builds faalde het renderen van een pagina met een transparantiegroep met een lijstindexfout telkens wanneer de groep geen eigen soft mask zette, een regressie van versie 2.769.3; zulke pagina's renderen nu weer
Version 2.770.0
Added
- De nieuwe eigenschap
RenderColorimetricLuminosityMaskskiest hoe een luminosity soft mask kleur in maskerwaarden omzet wanneer zijn groep een op CIE gebaseerde blending space heeft (CalGray,CalRGB,LabofICCBased) - Het op
truezetten neemt CIE Y zoals ISO 32000-1 11.5.3 dat beschrijft; bitmaps die onder de twee instellingen zijn gerenderd, worden apart gecached
Changed
- Standaard weegt een luminosity masker de opgeloste kleur van zijn groep nu als DeviceRGB, welke blending space er ook staat, zoals gewone PDF-viewers doen. CIE Y wordt op een lineaire schaal gemeten, dus een middengrijs in een ICC- of gekalibreerde groep maskeerde maar ongeveer een vijfde, en slagschaduwen en overgangen kwamen veel lichter uit dan in andere viewers
- De
/BC-achtergrondkleur van een masker volgt dezelfde instelling als de verf binnen de maskergroep - Maskers waarvan de groep een device colour space gebruikt, renderen als voorheen
Version 2.769.3
Fixed
- Een transparantiegroep die met een andere blendmodus dan Normal wordt getekend, zoals de Multiply-slagschaduwen die design-tools exporteren, mengt nu zijn eigen kleur en alpha met de achtergrond (ISO 32000-1 11.3.6 en 11.4.8). Waar de groep deels transparant was, bevatten zijn pixels de achtergrond al, die toen met zichzelf werd gemengd: een Multiply-schaduw kwam te donker uit en in de tint van de achtergrond
- De inhoud van een transparantiegroep begint met de blendmodus Normal, omdat de blendmodus op de groep als geheel geldt (11.6.6). Hij hield de modus vast waarmee de groep was getekend, dus een geïsoleerde groep vermenigvuldigde zijn inhoud in zijn lege begin en tekende zwart
- Een soft mask dat in dezelfde graphics state als een blendmodus is gezet, tekent zijn maskergroep met Normal-blending (11.6.5.2); de blendmodus maakte een witte maskergroep zwart en verborg wat het masker had moeten tonen
- Om de alpha van een groep te vinden die niet geïsoleerd is, wordt de groep twee keer getekend, op zwart en op wit, wanneer zijn eigen graphics states normaal mengen; zulke pagina's renderen wat langzamer
Version 2.769.2
Changed
- Een afbeelding met een soft mask wordt gedecodeerd op de grootte waarop hij wordt getekend, zoals een afbeelding zonder al deed, en zijn masker wordt op die grootte gedecodeerd; een JPEG-masker gaat door de JPEG-decoder op gereduceerde grootte in plaats van volledig te worden gedecodeerd
- De afbeelding en zijn masker worden altijd in hun geheel gedecodeerd, dus het masker kan niet tegen de afbeelding in verschuiven, en clipping beperkt wat getekend wordt tot het zichtbare deel
- Op een pagina met een schaduwafbeelding van 4229 x 4629 en een JPEG-masker van 2114 x 2314 dat op ongeveer 1000 pixels breed wordt getekend, duurde renderen op 72 dpi 1,6 in plaats van 3,7 seconden
DecodeLoadedImageRegionAtResolutiongeeft bij een formaat zonder regiodecoder een hele afbeelding als gedecodeerd terug, zonder hem nog een keer te kopiëren
Version 2.769.1
Changed
- Soft maskers worden sneller gebouwd: het bouwen van een masker houdt niet langer een tweede kopie van de hele pagina bij om tegen te vergelijken, wat pagina's met vele maskers, zoals de gradiënten en slagschaduwen die design-tools exporteren, per masker betaalden
- Luminosity maskers over een gekalibreerde of op ICC gebaseerde blending space zoeken de sRGB-curve op in plaats van hem voor elk kanaal van elke pixel te berekenen, en grijze maskerinhoud, het gewone geval, wordt via één tabel omgezet
- Een pagina van 1125 x 1600 met zo'n twintig soft maskers rendert ongeveer een vijfde sneller; de gerenderde pixels zijn onveranderd
Version 2.769.0
Changed
- Het zetten van Width of Height van een pagina verbergt fouten niet langer: een mislukking gooit nu een exception in plaats van de grootte stilletjes niet toe te passen, en het zetten van de grootte van een pagina waarvan de canvas al is gesloten gooit de nieuwe EHPDFPageClosedError met een melding die zegt waarom
- Na zo'n mislukking blijft de pagina niet langer in een staat waarin latere groottebewerkingen alleen zijn MediaBox bijwerken en niet de paginagrootte die voor het tekenen wordt gebruikt
Fixed
- Het van grootte veranderen van een pagina van een geladen PDF overschrijft niet langer andere objecten: een MediaBox waarvan de getallen aparte objecten zijn, of een MediaBox-array die meerdere pagina's delen, wordt gekopieerd voor de pagina die wordt aangepast, zodat andere pagina's hun grootte houden
- Bij het aanpassen van een geladen pagina waarvan de MediaBox minder dan vier getallen heeft, wordt nu een volledige MediaBox met de nieuwe grootte weggeschreven; de nieuwe grootte werd voorheen genegeerd
Version 2.768.20
Fixed
- Tekstextractie stapt niet langer een Form XObject binnen dat zichzelf tekent, direct of via andere forms; zo'n form werd bij elk nestniveau opnieuw gelezen, wat zijn tekst tot twaalf keer herhaalde, en een die zichzelf twee keer tekende kostte 4096 passes
- Tekst van een Form XObject die buiten de bounding box van de form valt, die hem bijsnijdt, hoort niet langer bij de paginattekst
Version 2.768.19
Changed
- Grote documenten laden weer sneller: het doorlopen van de paginaboom zoekt niet langer bij elke pagina door alle geladen objecten, en de versleutelingscontrole van LoadFromFile met AutoDecrypt leest het bestand via dezelfde buffer als het laden. De PDF Reference 1.7 van 56 MB laadt nu in zo'n 8 seconden in plaats van 22
Version 2.768.18
Fixed
- Paginarendering vindt nu geïnstalleerde fonts die Windows onder een gelokaliseerde naam meldt, zoals Microsoft YaHei op Chinese Windows of Yu Mincho op Japanse Windows; tekst in zulke fonts werd in een vervangend font getekend wanneer de PDF ze niet inbedde
- Fontnamen die zonder spaties zijn geschreven, matchen nu Windows-families die sommige woorden aan elkaar plakken, zoals MicrosoftYaHei voor Microsoft YaHei, MicrosoftJhengHei voor Microsoft JhengHei en MSPGothic voor MS PGothic; ze werden met een spatie vóór elke hoofdletter opgezocht en nooit gevonden
- De renderer onthoudt welke fontnamen geïnstalleerd zijn, zodat documenten met veel fonts die niet geïnstalleerd zijn, Windows niet langer bij elke naam op elke pagina afvragen
Version 2.768.17
Changed
- Grote documenten laden veel sneller: operation-telemetry sampelt geheugen nu hooguit één keer per 10 ms binnen een operatie in plaats van bij elk object dat de parser leest, een sampling die elk blok van de memory manager afdronk. De PDF Reference 1.6 van 1236 pagina's laadt in zo'n 2,5 seconde in plaats van 30, en de PDF Reference 1.7 van 56 MB in zo'n 22 seconden in plaats van ruim vier minuten
- De vertraging groeide mee met de grootte van de eigen heap van de applicatie, dus applicaties die veel geheugen vasthouden profiteren het meest
- UpdateOperationTelemetrySample krijgt een optionele parameter Force die ongeacht het interval een sampling neemt; het einde van elke operatie neemt er nog steeds een
Version 2.768.16
Fixed
- Het laden van een leeg bestand loopt niet langer vast; LoadFromFile bleef voorheen oneindig lopen terwijl hij vanaf het begin van het bestand achteruit las
- Een bestand waarin geen pagina te vinden is, zoals een leeg bestand, platte tekst of willekeurige bytes, laadt niet langer als één of drie lege pagina's geraden uit zijn grootte; LoadFromFile geeft nu 0 terug of gooit een exception, zoals bij andere onleesbare bestanden
- Een versleuteld bestand waarvan de pagina's in versleutelde object streams liggen, gooit nu een exception dat het wachtwoord nodig is wanneer het zonder wordt geladen, in plaats van als lege pagina te laden; laad het met de wachtwoord-overload
Version 2.768.15
Fixed
- Paginattekst herhaalt niet langer tekens die opnieuw over zichzelf worden getekend, zoals in overgedrukte logo's en in nepvet gemaakt door de tekst twee keer met een kleine offset te tekenen; zulke tekst werd twee keer geëxtraheerd, bijvoorbeeld "Bold wordsBold words", en zoeken ernaar kon mislukken
- De tekst-, kolom-, layout- en semantische tekstextractie lezen zo'n teken allemaal één keer; de glyphlijst meldt nog steeds elke getekende glyph
Version 2.768.14
Fixed
- Glyphnamen uit de volledige Adobe Glyph List worden nu opgelost in tekstextractie en rendering, waaronder de ligaturen fi, fl, ff, ffi en ffl en de afii-namen die oudere Cyrillic-, Hebrew- en Arabic-fonts gebruiken; een fontencoding die zulke glyphs benoemde gaf de verkeerde tekens, bijvoorbeeld werd "defined" geëxtraheerd als "deÞned"
Version 2.768.13
Changed
- LoadFromFile leest bestanden onder LocalFileMappingThreshold (standaard 8 MB), en elk bestand wanneer mapping uit staat of niet beschikbaar is, via een leesbuffer van 64 KB; bestanden met veel objecten en een klassieke cross-reference-tabel laden veel sneller, bijvoorbeeld de PostScript Language Reference Manual van 912 pagina's in zo'n 1 seconde in plaats van bijna 3 minuten
Version 2.768.12
Fixed
- Tekstextractie plaatst nu de glyphs van CID-keyed (Type 0)-fonts waarvan de /W-breedtearray niet op CID gesorteerd is; de meeste glyphs kregen de standaard breedte van een hele em, waardoor regels voorbij de paginarand liepen en hun einde uit de geëxtraheerde tekst en het zoeken viel
Version 2.768.11
Fixed
- Letters met accenten uit ingebedde CFF (Type 1C)-fonts die zijn opgebouwd uit een basisletter en een accent, zoals in veel vanuit Type 1 geconverteerde fonts, worden nu gerenderd; letters zoals ü en é bleven leeg, waardoor woorden als "München" een gat lieten zien
- Dezelfde letters zijn nu compleet in de SVG-export met ingebedde fonts
Version 2.768.10
Fixed
- Samengestelde glyphs van ingebedde TrueType-fonts zetten elk onderdeel nu op zijn eigen offset: letters met accenten zoals é en Å verloren hun accent, en gekrulde dubbele aanhalingstekens verschenen als een enkel aanhalingsteken gevolgd door een gat
- Dezelfde glyphs zijn nu compleet in de SVG-export met ingebedde fonts
Version 2.768.9
Fixed
- Afbeeldingen gemarkeerd met
/Interpolate falseworden nu gemiddeld wanneer ze kleiner dan hun eigen resolutie worden getekend; ze werden meerdere pixels tegelijk gesampled, zodat diagrammen die als afbeelding zijn geplaatst kartelige, donkere aslabels en gebroken dunne lijnen lieten zien waar andere viewers ze glad tonen - Vergrote afbeeldingen met
/Interpolate falsehouden zoals voorheen hun harde pixelranden
Version 2.768.8
Fixed
- Tekst met een stroke smaller dan een pixel, zoals documenten gebruiken voor nepvet, wordt nu op die breedte gerenderd; de stroke was voorheen een hele pixel breed, waardoor zulke koppen gesmeerd oogden en veel zwaarder dan in andere viewers
- Kleine glyphs van ingebedde en geïnstalleerde fonts worden in text rendering modes 1 en 2 met antialiasing van stroke voorzien, in de strokekleur, na de vulling
Version 2.768.7
Fixed
- Het aanroepen van
ProcessObjectStreamsForDecompressionop een geladen document gooit de object streams die het laden had gelezen niet langer weg: gecomprimeerde objecten blijven daarna beschikbaar voorExtractRawObjectFromStreamenExtractObjectFromStream, waar voorheen niets meer gelezen kon worden - Als de methode het bestand zelf scant, zoals bij een document met een klassieke cross-reference-tabel, vindt ze nu een object stream die direct op een andere stream volgt en leest ze het aantal objecten en de offsets uit diens eigen woordenboek
ExtractRawObjectFromStreamdecodeert een object stream opnieuw wanneer de object stream-cache hem heeft losgelaten, in plaats van een leeg resultaat terug te geven
Version 2.768.6
Fixed
- De Stamp-demo bouwt nu succesvol voor Win64
Version 2.768.5
Fixed
- Op Chinese, Japanse en Koreaanse Windows-edities laden documenten met cross-reference streams waarvan de woordenboeken binaire tekenreeksen bevatten, zoals de checksums van bijgevoegde bestanden, nu in een fractie van een seconde; een portfolio van 4 MB met negen bijgevoegde PDF-bestanden had twee minuten nodig om te openen
- De parser zoekt zijn keywords nu in de ruwe bytes van het bestand in plaats van in tekst die via de Windows-codepagina is omgezet, zodat binaire data naast een keyword hem niet langer kan verbergen of van zijn positie kan verschuiven
Version 2.768.4
Fixed
- Inhoud binnen een Form XObject wordt nu gerenderd met de dekking, het soft mask en de blend mode die het zelf instelt; voorheen werd alles binnen een form op volledige dekking getekend, waardoor doorschijnende watermerken en stamps dekkend uitkwamen
- Een form die met een eigen dekking wordt getekend, wordt nog steeds als geheel één keer gecompositeerd, zoals voorheen
Version 2.768.3
Fixed
- Paginatekst omvat nu tekst die de pagina via Form XObjects tekent, zoals paginakoppen en -voetteksten, watermerken en stamps; voorheen werd alleen tekst in de eigen inhoud van de pagina teruggegeven
- Form-tekst verschijnt waar de form wordt getekend, geplaatst via de matrix van de form en gelezen in de eigen fonts van de form, en forms die in forms genest zijn worden ook gevolgd
- Dit geldt voor platte, layout-, kolom- en semantische paginatekst; de extractie op glyphniveau geeft nog steeds alleen de glyphs van de eigen inhoud van de pagina terug, waarvan de posities in die inhoud wijzen
Version 2.768.2
Fixed
EncryptFileenDecryptFilemet AES-256 beschadigen ingebedde fontbestanden waarvan het woordenboek/Length1vóór/Lengthvermeldt, zoals Ghostscript en andere tools die wegschrijven, niet langer; zulke fonts werden als één byte versleuteld, waardoor de uitvoer onleesbaar bleef- Streams waarvan de lengte in een gecomprimeerde object stream staat, houden al hun data door de AES-256-versleuteling en -ontsleuteling heen; voorheen kon de laatste byte van zo'n stream verloren gaan
Version 2.768.1
Fixed
- Documenten waarvan de streamlengtes binnen gecomprimeerde object streams staan, zoals Ghostscript die wegschrijft, laden nu volledig; voorheen werd elke page content stream van zo'n bestand weggegooid, waardoor de pagina's blanco renderden en geen tekst gaven
- Een stream waarvan de lengte naar een object verwijst dat niet bestaat, of die helemaal geen lengte heeft, wordt nu tot aan zijn eindmarkering gelezen in plaats van weggegooid te worden
Version 2.768.0
Added
BuildLoadedPageSVGenSaveLoadedPageAsSVGnemen een optionele parameterEmbedFontsaan; die staat standaard uit en bestaande aanroepen exporteren precies zoals voorheen- Met
EmbedFontsopTruewordt tekst in fonts waarvan het TrueType- of CFF-programma in de PDF is ingebed getekend vanuit de eigen glyph-outlines van het font, zodat de SVG er op systemen waar die fonts niet zijn geïnstalleerd hetzelfde uitziet - Elke glyph-outline wordt één keer weggeschreven en overal hergebruikt waar het teken verschijnt, wat de bestandsgrootte op tekstrijke pagina's laag houdt
- De tekst blijft in de SVG staan als transparante tekst boven op de outlines, zodat hij nog steeds geselecteerd, doorzocht en door screenreaders gelezen kan worden
- Fill-, stroke- en fill-and-stroke-tekst, lijndiktes, gedraaide of geschaalde tekst en tekst die als clippad dient, komen eruit zoals in de gerenderde pagina
- Fonts die niet zijn ingebed, Type 1-fontprogramma's en verticale CJK-tekst blijven gewone SVG-tekst
Version 2.767.4
Fixed
- Outlined tekst en fill-and-outline-tekst (text render modes 1 en 2) in fonts die niet zijn ingebed houden bij het renderen nu rekening met de lijndikte; voorheen kwam elke outline één pixel breed uit, wat de lijndikte ook was
- Zulke outlines worden nu getekend uit de exacte glyphvormen van het geïnstalleerde font op hun exacte posities, zoals gevulde tekst al gebeurde
- Tekens die het geïnstalleerde font mist en die Windows uit een fallback-font haalt, houden bij het outline-tekenen ook de lijndikte
Version 2.767.3
Fixed
- Tekst in fonts die niet zijn ingebed wordt nu getekend met de tekens die zijn encoding benoemt. De character codes gingen onveranderd naar het geïnstalleerde font, en dat leest ze in zijn eigen tekenset, dus elke
/Differences-ingang en de codes waar StandardEncoding of MacRomanEncoding van de Windows-tekenset afwijkt tekenden de verkeerde tekens, bijvoorbeeld rechte in plaats van gekrulde aanhalingstekens in Type 1-fonts zonder encoding - Op Chinese, Japanse en Koreaanse Windows-edities werden letters met accenten, gekrulde aanhalingstekens, het copyrightteken en andere tekens boven code 127 in fonts die niet zijn ingebed sinds versie 2.766.83 als vraagtekens getekend; ze worden weer gelezen in de tekenset van het geïnstalleerde font
- Symbol-fonts houden hun eigen codemapping
Version 2.767.2
Fixed
- Grote glyphs van ingebedde fonts worden nu ook met antialiasing gerenderd. Glyphs groter dan 64 pixels, zoals koppen en titels op afdrukresoluties, werden zonder gevuld en lieten kartelranden zien; ze worden nu tot 256 pixels met antialiasing getekend, terwijl grotere tekst van geïnstalleerde fonts de antialiased tekstuitvoer van het systeem houdt
Version 2.767.1
Fixed
- Extractie van layouttekst, kolomtekst en semantische tekst meet de pagina nu in pagina-eenheden. Ze hielden posities tegen de fontgrootte uit
Tfen tegen advances in de textruimte, en dat is maar een fractie van de echte afstanden in de vele documenten die tekst via de text matrix op grootte zetten; daardoor uitte layouttekst elke letter over meerdere kolommen, verloor kolomtekst alle woordspaties en zette semantische tekst bijna elk woord op een eigen regel - Alle drie geven nu alleen de tekst binnen de zichtbare box terug en scheiden ze woorden die een document uit elkaar zet door de tekstpositie te verschuiven, zoals de platte paginatekst
- Layouttekst houdt de letters van een woord bij elkaar, waar brede letters zoals m of W voorheen een spatie in het woord duwden
- Semantische tekst zet niet langer na elke regel van een pagina met één kolom een lege regel: een reeks regels op volle breedte vormt één zone, en een zoneovergang scheidt regels alleen wanneer ze meer dan een regelafstand uit elkaar staan
- De helppagina's van deze methodes beschrijven wat ze teruggeven, en de kolommethode toont haar volledige syntax
Version 2.767.0
Added
LoadFromFileenLoadFromStreamhebben overloads met een parameterAutoDecrypt. MetAutoDecryptop True opent een document dat met een leeg gebruikerswachtwoord is versleuteld — zoals documenten die alleen printen, kopiëren of bewerken beperken — ontsleuteld in het geheugen, zoals viewers het openen, zodat de tekst kan worden geëxtraheerd en de pagina's gerenderd en geëxporteerd zonder wachtwoord- Documenten die een wachtwoord nodig hebben en onversleutelde documenten laden precies zoals de gewone overloads ze laden, en of het lege wachtwoord het document opent wordt vóór het laden uit een paar kleine bereiken van het bestand gecontroleerd
- Zoals bij de wachtwoord-overloads is een document dat zo wordt geopend niet langer versleuteld in het geheugen, en het opslaan schrijft een onversleutelde kopie weg
Version 2.766.83
Changed
- Kleine tekst in fonts die niet zijn ingebed, zoals de standard 14 fonts en geïnstalleerde Office- en Chinese fonts, wordt nu gerenderd vanuit de unhinted glyph-outlines op zijn exacte positie, met dezelfde antialiasing als ingebedde fonts. De systeemtekstuitvoer die voorheen werd gebruikt zette elke glyph op een hele pixel en paste zijn vorm aan het pixelraster aan, waardoor kleine tekst onregelmatig gespatieerd was en vlekkerig oogde; gerenderde pagina's komen nu veel dichter bij de vormen en spatiering van andere viewers in de buurt
- Glyphs die het geïnstalleerde font mist, en grote glyphs, worden nog steeds met de systeemtekstuitvoer getekend, die ontbrekende tekens uit gekoppelde fonts kan halen
Fixed
- Kleine glyphs van ingebedde fonts worden sneller getekend, omdat de bitmaps achter hun antialiasing worden hergebruikt in plaats van voor elke glyph opnieuw aangemaakt te worden
Version 2.766.82
Fixed
- Tekst die met geïnstalleerde fonts in gerenderde pagina's wordt getekend, gebruikt nu grijswaarden-antialiasing. Die volgde de ClearType-instelling van het systeem, waardoor zwarte tekst in gerenderde bitmaps rode en blauwe randen droeg die van de machine afhingen en in opgeslagen, afgedrukte of geschaalde afbeeldingen bleven zitten
Version 2.766.81
Fixed
- Kleine tekst in ingebedde CFF- en OpenType CFF-fonts wordt nu met antialiasing gerenderd, zoals TrueType-tekst al gebeurde. Deze glyphs werden zonder antialiasing gevuld, waardoor op kleine sizes en normale schermresoluties stammen smaller dan een pixel verdwenen en broodtekst uiteenviel in fragmenten; formulieren en documenten die in fonts zoals Helvetica Neue zijn gezet, zijn nu leesbaar op 72 DPI
Version 2.766.80
Changed
- Extractie van paginatekst geeft alleen de tekst terug die de pagina toont. Glyphs buiten het zichtbare gebied — de crop box binnen de media box — worden weggelaten, zodat drukkersmarkeringen, slug-regels en andere inhoud buiten een bijgesneden pagina niet langer in de geëxtraheerde tekst opduiken. De extractie op glyphniveau geeft nog steeds elke glyph met zijn positie terug
Version 2.766.79
Fixed
- Extractie van paginatekst breekt een regel niet langer bij een verhoogde superscript of een iets verschoven baseline in tekst die via de text matrix op grootte is gezet. Een nieuwe regel begon zodra de tekst met de helft van de fontgrootte uit
Tfomhoog of omlaag ging — in zulke documenten vaak 1 — dus een verschuiving van een halve punt was al genoeg - Gedraaide tekst, zoals labels die langs de zijkant van een pagina omhoog lopen of schuine watermerken, zet niet langer elk teken op een eigen regel. Regels worden nu uit elkaar gehouden aan de beweging dwars op de schrijfrichting van de tekst, afgezet tegen de helft van de teksthoogte op de pagina
Version 2.766.78
Fixed
- Als de SVG-export voor een font dat niet is geïnstalleerd terugvalt op een generieke fontfamilie, benoemt die nu eerst een gangbare snit van dat soort: Times New Roman vóór
serif, Arial vóórsans-serifen Courier New vóórmonospace. Een browser kiest de snit voor een kale generieke familie via zijn eigen taalinstellingen, en Chinese of Japanse browsers kozen CJK-fonts waarvan de brede Latijnse letters op de uit de PDF overgenomen posities over elkaar heen vielen
Version 2.766.77
Fixed
- De SVG-export benoemt nu geïnstalleerde Chinese fontfamilies voor fonts die onder hun oude GB2312-namen bekendstaan, zoals
KaiTi_GB2312of zijn Chinese spelling. Windows-applicaties bereiken deze fonts via de fontvervangers van het systeem, maar browsers niet, dus zulke tekst werd in het standaardfont van de browser getoond - Een font dat in slechts één taal een naam heeft, krijgt ook de andere naam van de geïnstalleerde familie, bijvoorbeeld SimHei samen met zijn Chinese naam, plus een generieke familie die bij zijn stijl past
Version 2.766.76
Added
THPDFGlyphRecordheeftGlyphEndXenGlyphEndYgekregen: het einde van de eigen breedte van de glyph langs de baseline, in paginaruimte en zonder teken- en woordafstand
Fixed
- Extractie van paginatekst scheidt nu woorden die een document uit elkaar zet door de tekstpositie te verschuiven in plaats van een spatie te tonen. Veel producers schrijven
[(PDF)-240(Reference)]of zetten elk woord met zijn eigen positioneringsoperator neer, en zulke woorden plakten voorheen aan elkaar alsPDFReference - Een spatie wordt toegevoegd waar de opening na de eigen breedte van een glyph meer dan 0,15 van de teksthoogte bedraagt, gemeten in pagina-eenheden zodat tekst die via de text matrix op grootte is gezet net zo wordt behandeld als tekst die via de fontgrootte loopt
- Kerning, iets lossere spatiering, strakkere tekenspatiering die positiecorrecties weer teruggeven, overprinted tekst en echte spatietekens blijven zoals ze zijn, en tussen twee Chinese, Japanse of Koreaanse tekens wordt geen spatie toegevoegd, hoe ver uit elkaar uitvulling ze ook zet
Version 2.766.75
Fixed
- Tekstextractie, de SVG-export en rendering herkennen nu de glyphnamen van het Symbol-font, zoals
copyrightsans,registerserif,trademarksansen de onderdelen van grote haakjes en accolades (parenlefttp,braceex,integralex, ...). Subset-Symbol-fonts coderen deze namen vaak opnieuw, en de tekens kwamen eruit als ruwe controlecodes - Alle ITC Zapf Dingbats-glyphnamen (
a1tota206) worden ook herkend, dus vinkjes, kruisjes, pijlen en omcirkelde nummers die een font via deze namen kiest — zoals formuliervelden en lijsten met opsommingstekens vaak doen — worden geëxtraheerd als hun Unicode-tekens - Bij het opzoeken van een glyphnaam voor een teken gaat de gangbare naam, zoals
arrowrightofspade, nog steeds vóór een ZapfDingbats-naam
Version 2.766.74
Fixed
HPDFExtractGlyphsViaDevicefaalt niet langer met een ongeldige pointerbewerking. Het tekstextractie-device dat de functie aanmaakt, wordt via reference counting beheerd, en de functie gaf het daarnaast ook expliciet vrij, zodat elke aanroep eindigde met het device een tweede keer vrijgeven
Version 2.766.73
Fixed
- Tekstextractie herstelt de tekststatus bij
Qnu zoals de specificatie voorschrijft (ISO 32000-1 9.3.1). Voorheen werd alleen de transformatie hersteld, waardoor een font, tekenspatiering of leading die binnenq...Qwas ingesteld doorwerkte op de tekst die volgde - Als het font dat binnen
q...Qwas gekozen twee-bytecodes gebruikte en het font erbuiten één-bytecodes, werd de tekst naQals twee-bytecodes gedecodeerd en ging verloren. Word en vergelijkbare producers schrijven pagina's op deze manier, met als typische slachtoffers de voorloopstippen van inhoudsopgaven en Latijnse woorden tussen Chinese tekstlopen - De fix dekt zowel de paginatekst-API als de op devices gebaseerde interface voor tekstextractie
Version 2.766.72
Fixed
- Tekst die na
RestoreStatewordt getekend, heeft nu altijd zijn font geselecteerd. De pagina slaat een fontkeuze over die de laatst weggeschreven herhaalt, maar hield geen rekening met het feit datRestoreState(de operatorQ) de lezer terugbrengt naar het font dat vóórSaveStategold. Tekst die naRestoreStatein het binnen het paar gekozen font verscheen, kwam zonder font of met het verkeerde font uit, zodat viewers hem konden weglaten en tekstextractie hem niet kon lezen - Tekenspatiering, woordafstand, horizontale schaling en leading volgen
SaveStateenRestoreStateop dezelfde manier, zodat een waarde die naRestoreStateopnieuw wordt ingesteld wordt weggeschreven in plaats van overgeslagen te worden terwijl de lezer al op de eerdere waarde is teruggekeerd - Het kiezen van een Type 3-font zorgt niet langer dat de volgende keuze van het vorige font wordt overgeslagen
- XPS-documenten die naar PDF zijn omgezet waren getroffen, omdat elke glyph-reeks binnen zijn eigen opgeslagen graphics state wordt getekend
Version 2.766.71
Fixed
- Tekstextractie en de SVG-export lazen de codes van een simpele font (Type 1, TrueType of Type 3) als twee bytes wanneer de
/ToUnicode-CMap een codespace van twee bytes aankondigde, zoals sommige producers voor elk font wegschrijven. Codes van simpele fonts zijn altijd één byte (ISO 32000-1 9.6.6), dus elk paar tekens gold als één onbekende code en het merendeel van de tekst verdween; er bleven alleen reeksen van één enkel teken over
Version 2.766.70
Fixed
- De SVG-export verplaatste tekst met de operanden van
Td,TD,T*,'en"in pagina-eenheden in plaats van in de textruimte (ISO 32000-1 9.4.2). Tekst waarvan de grootte uit de text matrix komt — met1 Tfen een geschaaldeTm, zoals tekstverwerkers het vaak wegschrijven — had zijn regels vlak bij de eerste baseline op elkaar gestapeld; hij wordt nu gerangschikt zoals in de PDF - Dezelfde correctie geldt voor de tekstextractor op device-basis voor pagina-inhoud,
THPDFTextExtractDevice
Version 2.766.69
Fixed
- De paginarenderer gaf fontnamen met
#xx-escapes, inclusief die escapes, door aan Windows, waardoor niet-ingebedde fonts met zo'n naam — gebruikelijk bij CJK-fonts zoals KaiTi_GB2312 in Chinese tekens — op geen enkel geïnstalleerd font pasten en in een vervangende snit werden getekend. De escapes worden nu gedecodeerd; UTF-8-namen houden hun tekens en overige bytes worden gelezen in de codepagina van het systeem
Version 2.766.68
Fixed
- De SVG-export schreef fontnamen met
#xx-escapes als de escapes zelf, waardoor CJK-fontnamen die als UTF-8-bytes zijn opgeslagen (zoals de KaiTi_GB2312-naam in Chinese tekens) als#e6#a5#b7...bijfont-familyaankwamen en nooit op een geïnstalleerd font pasten. De escapes worden nu gedecodeerd; een naam die geldige UTF-8 is blijft staan, en bytes van andere coderingen worden zoals voorheen weggegooid
Version 2.766.67
Fixed
- De SVG-export herstelde de tekststatus bij
Qniet: font, grootte, spatiering, schaling, leading, rise en render mode die binnenq...Qwaren ingesteld werkten door op de tekst erna. Pagina's die een kop met2 Trbinnen een opgeslagen state vet maakten, tekenden alle daaropvolgende broodtekst met stroke en dus zwaar. De tekststatus wordt nu samen met de rest van de graphics state opgeslagen en hersteld (ISO 32000-1 9.3.1)
Version 2.766.66
Fixed
- De SVG-export zette tekst in de stroking-rendermodi (1, 2, 5 en 6) met stroke maar zonder streepbreedte, waardoor de standaardwaarde van SVG — één text space-eenheid — gold; tekst die PDF-producers met een dunne stroke vet maken, zoals
2 Tr 0.25 w, kwam veel zwaarder uit. De lijndikte wordt nu van de userruimte naar de ruimte van het tekstelement omgerekend, een breedte van nul geeft een lijn van één pixel, en de line join blijft gehandhaafd
Version 2.766.65
Fixed
- Documenten waarvan de trailer
/Encryptals direct woordenboek geeft in plaats van als verwijzing, zoals sommige PDF-writers die produceren, werden als onversleuteld geladen: zelfs met het juiste wachtwoord renderden hun pagina's blanco en gaven tekstextractie en de SVG-export niets terug, enSaveLoadedDocumentschreef een beschadigd bestand weg dat/Encryptliet vallen maar de versleutelde streams hield. Ze openen, ontsleutelen en slaan nu op zoals documenten met een indirect encryptiewoordenboek - De cross-reference-loader knipte een trailer af bij de eerste
>>, waardoor ingangen na een genest woordenboek in de trailer verloren gingen; hij leest de trailer nu tot aan de bijpassende sluitende begrenzer
Version 2.766.64
Fixed
- Rendering, de SVG-export, de viewer en het printen toonden de hele
/MediaBoxvan een geladen pagina. Een pagina wordt getoond en afgedrukt via zijn/CropBox, bijgesneden op de/MediaBox(ISO 32000-1 14.11.2), dus pagina's met een crop box kwamen er te groot, verschoven en met inhoud uit die verborgen moest blijven RenderLoadedPageToBitmap, de tile-, band-, metafile- en device-context-renderers,BuildLoadedPageSVG, de paginageometrie, highlights en regio-snapshots van de viewer, en het printen houden zich nu aan de zichtbare box; pagina's zonder/CropBoxzijn onveranderd
Added
THotPDF.GetLoadedPageVisibleBoxgeeft de zichtbare box van een geladen pagina terug, zijn/CropBoxbijgesneden op zijn/MediaBoxTHPDFPageDisplayList.CropBoxgeeft dezelfde box voor een gecompileerde display list
Version 2.766.63
Fixed
- In de ingebouwde glyphlijst werd tot een aantal gezocht dat 13 ingangen kort zat bij de tabel, waardoor de glyphnamen die alfabetisch laatst sorteren (
y,z,zero,zeta,yen,ydieresis,zcaronen andere) nooit gevonden werden. Tekstextractie negeerde de/Differences-ingangen van een font die ze benoemden, en de paginarenderer tekende y, z en 0 van ingebedde CFF-fonts metWinAnsiEncodingofMacRomanEncodingin een vervangend systeemfont - Bij het opzoeken van de glyphnaam van een accent zoals U+0060 kwam de small-capital-naam van MacExpertEncoding (
Gravesmall) terug in plaats vangrave, dus ook die accenten gingen bij ingebedde CFF-fonts verloren
Version 2.766.62
Fixed
- De paginarenderer behandelde de lijndikte en streeplengtes als devicepixels in plaats van als eenheden in de userruimte (ISO 32000-1 8.4.3.2 en 8.4.3.6); lijnen hadden op elke resolutie dezelfde pixelbreedte en negeerden elke schalende
cm. Dia's die via macOS Quartz zijn geëxporteerd — dat vormen met een breedte in EMU's onder een schaal van 1/12700 van stroke voorziet — waren helemaal bedekt door de strokekleur - De streepbreedte en strepen volgen nu de schaal van de CTM die geldt op het moment dat het pad een stroke krijgt, ook voor tekst die in een stroking-rendermodus wordt getekend
Version 2.766.61
Fixed
- De SVG-export liet Type 1 function-based shadings weg (ISO 32000-1 8.7.4.5.2), of ze nu met
shwerden getekend of in een shading pattern werden gebruikt; hij bemonstert de functie van de shading nu over zijn/Domaintot een ingebedde PNG-afbeelding, geplaatst via de/Matrixvan de shading, bijgesneden op zijn/BBox, met de achtergrondkleur van het pattern eronder
Version 2.766.60
Fixed
- De paginarenderer tekende de
/Background-kleur van een mesh shading die met de operatorshwordt getoond, terwijl PDF die negeert (ISO 32000-1 8.7.4.5.1), waardoor het hele clipgebied rond de mesh die kleur kreeg - De achtergrondkleur van function-based, axiale en radiale shading patterns werd door de paginarenderer niet getekend; hij vult nu het gebied van het pattern vóór de shading, zodat de kleur zichtbaar is waar de shading niet reikt
- De SVG-export tekent de achtergrondkleur van shading patterns nu op dezelfde manier en negeert haar, net als de renderer, bij
sh
Version 2.766.59
Fixed
- De paginarenderer negeerde de
/BBoxvan function-based, axiale en radiale shadings (ISO 32000-1 8.7.4.5.1); een uitgebreide shading die metshwerd getekend of in een shading pattern werd gebruikt, bedekte het hele clipgebied in plaats van bij zijn box te stoppen. Mesh shadings hielden haar al aan
Version 2.766.58
Fixed
- De SVG-export schreef tekst in Type 3-fonts weg als SVG-tekst in een geïnstalleerd font, waardoor pagina's die hun tekst of symbolen met glyph-procedures tekenen de verkeerde vormen toonden; hij tekent nu de procedure van elke glyph, geplaatst via de
/FontMatrixvan het font, de fontgrootte en de text matrix (ISO 32000-1 9.6.5) - Type 3-glyphs die met
d1beginnen worden in de huidige vulkleur getekend, en glyphs die hun eigen kleuren instellen houden die
Version 2.766.57
Fixed
- Tekstextractie en de SVG-export zagen de
/Widthsvan een Type 3-font als duizendsten van een em, terwijl ze in glyph space staan en met de/FontMatrixvan het font worden geschaald (ISO 32000-1 9.6.5); glyphs van een font met een matrix[0.01 0 0 0.01 0 0]kwamen een tiende van hun advance uit elkaar te staan, waardoor ook woorden in geëxtraheerde tekst aan elkaar plakten
Version 2.766.56
Fixed
- Bij het renderen van een geladen pagina werd elk Type 0-font gelezen alsof het
Identity-Hgebruikte: twee bytes per code en elke code een eigen CID. Fonts die met de voorgedefinieerde UCS2- en UTF16-CMaps van de Chinese, Japanse en Koreaanse verzamelingen zijn gecodeerd, zoalsUniGB-UCS2-H, of met een ingebedde CMap, brengen hun codes nu op CIDs in kaart, zodat/W-breedtes en ingebedde glyphs bij de juiste CIDs worden opgezocht; voorheen stonden bijvoorbeeld kleine Latijnse letters in eenSTSong-Light-tekst een hele em uit elkaar - Codes worden gelezen via de codespace ranges van de CMap, dus één-byte- en vier-byte-codes (surrogaatparen) worden als geheel gelezen, en namen die op
-Veindigen kiezen verticaal schrift
Version 2.766.55
Fixed
- Bij het renderen van een geladen pagina werden fonts die niet zijn ingebed en een stijldeel of een PostScript-spelling in hun naam dragen, zoals
TimesNewRoman,Bold,TimesNewRomanPS-BoldMT,Arial,BoldItalicofSegoeUI-Semibold, in een vervangende snit getekend; het familiedeel van de naam wordt nu onder de geïnstalleerde fonts opgezocht, ook met spaties tussen de woorden (Times New Roman, Segoe UI), en de stijl komt uit de naam en de fontdescriptor
Version 2.766.54
Fixed
- Standard fonts zonder
/Widths-array, wat ISO 32000-1 9.6.2.2 voor de standard 14 fonts toestaat, werden bij het renderen van een geladen pagina, het exporteren naar SVG of het extraheren van zijn tekst op een vaste advance van een halve em gezet, waardoor letters op elkaar pakten; de families Helvetica, Times en Courier, ook onder de namen Arial, TimesNewRoman en CourierNew, halen hun breedtes nu uit de geïnstalleerde Arial, Times New Roman en Courier New, die hun metrics delen - Een standaard Type 1-font zonder
/Encodingdecodeert nu via zijn impliciete StandardEncoding, zodat bijvoorbeeld code 39 als een rechts enkel aanhalingsteken leest
Version 2.766.53
Fixed
- Bij het renderen van een geladen pagina werd de
/Widths-array van een font genegeerd wanneer het een indirect object was, zoals veel producers het wegschrijven, en werd de tekst op een vaste advance van een halve em gezet; zulke tekst wordt nu op zijn breedtes gespatieerd - Fontdescriptors die als indirecte objecten zijn meegegeven worden bij het renderen nu gelezen, zodat de vlaggen
ForceBoldenItalicen de italic angle van niet-ingebedde fonts doorwerken - De vlag
SmallCapmaakt tekst niet langer vet: vet volgt nu de vlagForceBold(ISO 32000-1 Table 123)
Version 2.766.52
Fixed
- Het renderen van een geladen pagina clipped nu op tekst die in render modes 4 tot 7 wordt getoond (ISO 32000-1 9.3.6): de glyphs worden aan het einde van het tekstobject deel van het clippad, totdat de graphics state wordt hersteld. Voorheen werd tekst in mode 7 genegeerd en bedekte een shading of afbeelding die door de letters heen moest tonen het hele gebied, en modi 4 tot 6 tekenden de tekst zonder clipping
- Clip-tekst komt uit dezelfde glyph-outlines als getekende tekst, ingebedde fonts en Type 3-glyphs inbegrepen
Version 2.766.51
Fixed
- De SVG-export clipped nu op tekst die in render modes 4 tot 7 wordt getoond (ISO 32000-1 9.3.6): de glyphs vormen van het einde van het tekstobject tot het einde van de graphics state een SVG-clippad, zodat een shading of afbeelding die door tekst heen wordt getekend alleen binnen de letters verschijnt
- Tekst in render mode 7 gaat niet langer verloren zonder dat er iets clipped, en modi 4 tot 6 vullen de tekst of voorzien hem van stroke zoals modi 0 tot 2 dat doen
Version 2.766.50
Fixed
- Axiale, radiale en function-based shadings waarvan
/Functioneen array van functies met één uitkomst is, één per kleurcomponent (ISO 32000-1 8.7.4.5.1), werden bij het renderen van een geladen pagina niet getekend; dat gebeurt nu wel, met de functies van de array direct of als indirecte objecten meegegeven - De SVG-export schrijft zulke axiale en radiale shadings als gradients weg, ook wanneer ze een pad via een shading pattern vullen
Version 2.766.49
Fixed
- De SVG-export schreef vette en cursieve tekst in de gewone stijl weg: tekst krijgt nu
font-weight="bold"enfont-style="italic"uit het stijldeel van de fontnaam, zoalsArial-BoldMT,Helvetica-ObliqueofMinionPro-It, en uit het gewicht, de vlaggen en de italic angle van de fontdescriptor - Fonts buiten de standard 14 families werden weggeschreven met hun stijldeel in de familienaam (
SegoeUI-Semibold), wat op geen enkel geïnstalleerd font past; de familie wordt nu op zichzelf benoemd en met spaties tussen de woorden (SegoeUI, Segoe UI), gevolgd door een generieke familie uit de descriptorvlaggen of de naam
Version 2.766.48
Fixed
- De SVG-export tekende de inhoud van form XObjects in het zwart in plaats van in de vul- en strokekleuren die golden op de plek waar de form wordt getekend (ISO 32000-1 8.10.1); een
Qbinnen de form herstelt die kleuren nu ook - Content devices kunnen geneste inhoud vanuit de kleuren van de aanroeper beginnen via de nieuwe interface
IHPDFContentInheritedColorDevice
Version 2.766.47
Added
- De SVG-export vult paden die een tiling pattern gebruiken nu met een SVG-
<pattern>dat de patrooncel herhaalt op zijnXStep- enYStep-afstand, bijgesneden op de/BBoxvan de cel; voorheen werden zulke paden zwart gevuld of hielden ze de vorige kleur - Ongekleurde tiling patterns (
PaintType2) tekenen de cel in de kleur die met het pattern wordt meegegeven, zoals de componenten in/CS0 cs 0 0 1 /P1 scn - Paden die met een shading pattern zijn gevuld krijgen de axiale, radiale of mesh shading van het pattern, bijgesneden op het pad
- De patroonmatrix wordt toegepast in de ruimte van de pagina of van de form die het pattern gebruikt (ISO 32000-1 8.7.2), dus patronen schalen of verschuiven niet mee met de huidige transformatiematrix, en
Qhaalt een metqopgeslagen pattern terug - Content devices kunnen patroonkeuzes ontvangen via de nieuwe interface
IHPDFContentPatternDevice
Version 2.766.46
Added
- Afbeeldingen met een color-key-
/Mask-array (ISO 32000-1 8.9.6.4) worden nu gemaskeerd bij het renderen van een geladen pagina: pixels waarvan alle componenten binnen de sleutelbereiken vallen blijven ongevuld, zodat de pagina erdoorheen zichtbaar is - De SVG-export past dezelfde color-key-maskers toe en schrijft zulke afbeeldingen als PNG's met een alfakanaal weg
- De sleutel wordt vergeleken met de samples zoals ze zijn opgeslagen, dus een Indexed-afbeelding maskeert op paletindex zelfs wanneer twee ingangen een kleur delen, en afbeeldingen van 1, 2 en 4 bits per component zijn gedekt
- De nieuwe methode
DecodeLoadedImageColorKeyMaskgeeft het masker van een geladen afbeelding terug als een wit-zwart-bitmap; hij dekt Flate-, LZW- en ongefilterde afbeeldingen, want verliesgevende codecs houden geen exacte samplewaarden bij
Version 2.766.45
Changed
CompressDocumentenCompressLoadedDocumentlaten elke object stream tot 250 objecten bevatten in plaats van 100; minder, grotere containers comprimeren beter en hebben minder woordenboeken nodig- Geladen PDF's die al compact met object streams waren weggeschreven komen nu ongeveer op de grootte van het origineel uit, de meeste zelfs iets kleiner, in plaats van iets groter
- Een via
ConfigureAdaptiveObjectStreamPackingingestelde limiet blijft staan,CompressDocumentherstelt de limiet bijEndDoc, en gewone object-stream-opslagen houden 100 objecten per container aan
Version 2.766.44
Changed
- De cross-reference stream van bestanden die met object streams worden geschreven, gebruikt de kleinste veldbreedte die elke kolom nodig heeft, zodat offsets in bestanden onder 16 MB 3 bytes in plaats van 4 kosten (ISO 32000-1 7.5.8.2), en zijn woordenboek wordt compact weggeschreven
- Bestanden die wel een cross-reference stream maar geen object streams hebben, blijven onveranderd
Version 2.766.43
Changed
- Onversleutelde bestanden die met object streams worden geschreven, stoppen nu ook de documentcatalogus en het documentinformatiewoordenboek in object streams, waar ze worden gecomprimeerd; ISO 32000-1 7.5.7 spaart alleen het encryptiewoordenboek uit
- Versleutelde bestanden houden beide woordenboeken, zoals voorheen, op het hoogste niveau
Version 2.766.42
Changed
- Bestanden die met object streams worden geschreven, ook die uit
CompressDocumentenCompressLoadedDocument, schrijven woordenboeken en arrays compact weg, zonder de spaties en regeleinden die de PDF-syntax niet nodig heeft (ISO 32000-1 7.2.2); de woordenboeken van streams, die niet in object streams passen en ongecomprimeerd blijven, winnen het meest - Handtekeningwoordenboeken en het encryptiewoordenboek houden hun gespatieerde indeling, zodat het ondertekenen van een document dat met object streams is geschreven werkt zoals voorheen
- Bestanden die zonder object streams worden geschreven zijn byte voor byte onveranderd
Version 2.766.41
Fixed
- PDF-bestanden die met object streams worden geschreven beginnen niet langer twee keer met de
%PDF--header en de binaire commentaarregel; dit trof elke opslag metUseObjectStreams,CompressDocumentofCompressLoadedDocument - Viewers tolereerden de dubbele header, maar strenge validators konden hem aanmerken, en hij kostte 15 bytes per bestand
Version 2.766.40
Fixed
- Geladen PDF's die een kaal getal in een object stream bewaren, zoals veel producers streamlengtes opslaan, kunnen nu worden bewerkt en opgeslagen; elke wijziging stopte de opslag met "Cannot rewrite compressed object N: the source member could not be loaded"
- Zo'n getal wordt nu als getal gelezen; voorheen zocht de parser voorbij het einde van het lid naar een indirecte verwijzing en gaf hij het op, zodat het lid helemaal niet geladen kon worden
- Zo'n bestand zonder wijzigingen opslaan was niet getroffen, want een ongewijzigd bestand wordt gekopieerd zoals het is
Version 2.766.39
Fixed
- Stamp-annotaties in PDF/A-2 en later en in PDF/X-6-documenten toonden alleen hun kader, zonder de stampnaam zoals APPROVED of CONFIDENTIAL
- De naam wordt nu getekend in het huidige lettertype van de pagina, dat samen met de paginatekst wordt ingebed, in hoofdletters en in de annotatiekleur, gecentreerd in de rechthoek
- Lange namen zoals NOTFORPUBLICRELEASE worden kleiner gezet zodat ze binnen de breedte van de rechthoek passen
- De documenten slagen nog steeds voor PDF/A-validatie; stamps in andere documenten worden geschreven zoals voorheen
Version 2.766.38
Added
- Nieuwe
CompressLoadedDocument-overload met opties die een geladen PDF zo klein mogelijk maakt zonder het uiterlijk te veranderen: hij gooit ongebruikte paginabronnen weg, voegt identieke fonts en formulieren samen, maakt subsets van de ingebedde fonts, hercomprimeert streams met Flate en schrijft de volgende opslag met object streams - Elke stap is verliesvrij en afbeeldingen worden niet opnieuw bemonsterd of gecomprimeerd; een document van drie pagina's dat volledige Arial- en SimSun-fonts inbedt, krimpt van ongeveer 10 MB naar ongeveer 20 KB, en drie andere voorbeeld-PDF's werden 15 tot 50% kleiner
- Documenten met handtekeningvelden worden standaard geweigerd en ongewijzigd gelaten, omdat elke stap ondertekende bytes herschrijft;
AllowSignatureInvalidationcomprimeert ze toch SubsetLoadedFontskrijgt een optieCompactTrueTypeSubsets, standaard uit, die compacte subsets bouwt van TrueType-fonts die via CIDFontType2-fonts met de identity-CID-mapping worden gebruikt; colour fonts en fonts met een/CIDSethouden de normale subset- De parameterloze
CompressLoadedDocumentbehoudt zijn gedrag van alleen ongefilterde streams hercomprimeren
Version 2.766.37
Added
- Nieuwe property
CompressDocument, standaard uit: één schakelaar die het volgende document zo klein mogelijk wegschrijft zonder het uiterlijk te veranderen - Voor dat document zet hij Flate-compressie op het hoogste niveau aan, een cross-reference stream met object streams (ISO 32000-1 7.5.7 en 7.5.8), fontsubsetting en compacte fontsubsets; een document van drie pagina's met gemengde Engelse en Chinese tekst krimpt van ongeveer 10 MB naar ongeveer 20 KB
- Object streams vereisen PDF 1.5, dus een oudere
Versionwordt verhoogd naar 1.5 tenzij de versie is vastgezet; PDF/A-1-uitvoer houdt zijn klassieke cross-reference-tabel - Je eigen instellingen worden met rust gelaten: na
EndDoclezenCompression,CompressionLevel,UseXRefStream,UseObjectStreams, de fontsubsetting-opties en de versie terug zoals je ze instelde - Afbeeldingen worden niet opnieuw bemonsterd of gecomprimeerd
Version 2.766.36
Added
- Nieuwe property
CompactFontSubsetting, standaard uit: fontsubsets nummeren de glyphs die ze bewaren opnieuw, zodat het ingebedde font niet langer voor elke glyph van het bronfont een ingang meedraagt; een expliciete/CIDToGIDMap-stream brengt de glyphcodes van de pagina in kaart naar de hernummerde glyphs (ISO 32000-1 9.7.4.2) - CJK-fonts krimpen het meest: twee Chinese tekens in SimSun kosten ongeveer 3 KB aan fontdata in plaats van ongeveer 25 KB, en een Microsoft YaHei-document krimpt van 114 KB naar 6 KB
- Van toepassing op TrueType-fonts die als Type 0-fonts worden geschreven wanneer
EnableFontSubsettingaanstaat, en op het font dat metRegisterUnicodeTTFis geregistreerd en tot nu toe alleen onder PDF/A compacte subsets kreeg - Paginainhoud, glyphbreedtes en tekstextractie zijn onveranderd; OpenType-CFF-fonts houden de normale subset, en een font waarvoor geen compacte subset mogelijk is valt erop terug
Version 2.766.35
Fixed
- Tekst die met een expliciete advance per teken wordt getekend, schuift niet langer op na een teken buiten het Basic Multilingual Plane, zoals een muzieksymbool of een emoji, wanneer het geregistreerde Unicode-font hem dekt. Elk volgende teken nam voorheen de advance van zijn buurteken; het teken schuift nu op met de som van zijn twee ingangen
- Uitgevulde Unicode-tekstvakken met zulke tekens sluiten netjes op de rand van het vak aan, en de onderstreping of doorstreping van die tekst is even lang als de tekst
Version 2.766.34
Added
- SVG-export tekent image masks (
/ImageMask), ook inline, nu als stencils in de huidige vulkleur: de delen die niet worden geschilderd zijn transparant in plaats van als zwart-witplaatje te worden getekend - Afbeeldingen met een
/SMask-softmask of een expliciet/Mask-stencil worden geëxporteerd als PNG-afbeeldingen met een alfakanaal, zodat hun gemaskeerde delen niet langer bedekken wat erachter ligt /Decode [1 0]op een mask of image mask wordt gevolgd, en een masker dat fijner is dan zijn afbeelding houdt zijn detail
Version 2.766.33
Fixed
- Paginarendering volgt nu het expliciete
/Mask-stencil van een afbeelding: de delen die het masker bedekt blijven ongeschilderd in plaats van dat de hele afbeelding wordt getekend, ook wanneer de afbeelding gedraaid of gespiegeld is - Een
/Decode [1 0]-array op het masker draait om welke delen worden bewaard - Soft masks en maskers die fijner zijn dan hun afbeelding worden toegepast op de resolutie van het masker, zodat een gedetailleerd 1-bits masker op een foto met lage resolutie zijn randen houdt
Version 2.766.32
Fixed
- Paginarendering tekent afbeeldingen nu via de volledige transformatiematrix: afbeeldingen die een kwartslag of een willekeurige andere hoek zijn gedraaid, gespiegelde afbeeldingen en elke afbeelding op een pagina met
/Rotateworden niet langer rechtop en ongespiegeld in hun bounding box getekend - Image masks (
/ImageMask true) worden nu als stencils geschilderd in de huidige vulkleur, met geantialiseerde randen wanneer ze worden verkleind, in plaats van als grijs plaatje te worden getekend - Image masks met
/Decode [1 0]schilderen nu de monsters met waarde 1, zoals de PDF voorschrijft - Inline image masks (
BI /IM true) worden weer getekend, en hun/D-array wordt gevolgd - Afbeeldingen met een soft mask houden hun masker wanneer ze worden gedraaid of gespiegeld
Version 2.766.31
Added
- SVG-export converteert kleuren die met
k/K(DeviceCMYK) en metcs/sc/scnin een willekeurige benoemde kleurruimte zijn gezet: ICCBased-, calibrated-, Lab-, Indexed-, Separation- en DeviceN-kleuren komen eruit zoals de paginarenderer ze toont in plaats van zwart - Een kleurruimte selecteren met
cs/CSstelt nu zijn initiële kleur in, bijvoorbeeld volle tint voor een spotkleur, en het herstellen van de graphics state metQhaalt een zo gezette kleur terug - Kleurruimten die via verwijzing naar ICC-profielen, opzoektabellen of tintfuncties wijzen, worden tijdens SVG-export via het geëxporteerde document opgelost
- Path-enumeratie rapporteert nu CMYK-vul- en lijnkleuren in plaats van de vorige kleur aan te houden
Version 2.766.30
Fixed
- THPDFEmfPatcher.RenderEmfDirect tekent de bitmaps van een enhanced metafile bij elke Resolution op dezelfde grootte en positie. Bij een Resolution anders dan 72 kwamen ze geschaald met 72 / Resolution uit de bus
Version 2.766.29
Added
- SVG-export past nu de clippaden
WenW*toe: elk wordt een SVG-clip-pad dat bedekt wat erna wordt getekend tot de graphics state wordt hersteld, zodat afbeeldingen, shadings en paden die een PDF bijsnijdt niet langer volledig worden getekend - Form XObjects worden in SVG-export bijgesneden op hun
/BBox, en axiale en radiale shadings op hun/BBox - Even-odd-clipping (
W*) houdt zijn vulregel, en een pad dat samen metWwordt geschilderd, wordt getekend voordat de nieuwe clip ingaat, zoals de PDF voorschrijft
Version 2.766.28
Fixed
- Grafieken die met DrawChart worden getekend houden hun lay-out bij elke Resolution vast. Hun marges, titels, aslabels en lijndiktes zijn puntwaarden en krompen mee met de Resolution
- Het standaardfont van een nieuwe pagina, en van een pagina die weer actueel wordt gemaakt, is bij elke Resolution 12 punt in plaats van 12 tekenenheden
- De lay-outdiagnostiek-overlay houdt zijn lijndikte en labelgrootte bij elke Resolution aan
Version 2.766.27
Fixed
- DrawInlineImage en DrawFormXObject maten de afbeelding of het formulier in tekenenheden, net als zijn positie. Bij een Resolution anders dan 72 werden breedte en hoogte als punten opgevat, waardoor het object te groot uitkwam
Version 2.766.26
Fixed
- Een pagina die via CurrentPageNumber weer actueel wordt, blijft tekenen in de eenheden waarop hij is opgemaakt. Bij een Resolution anders dan 72 schakelde hij over op punten, waardoor alles wat er daarna op werd getekend op de verkeerde grootte en positie uitkwam
- De pagina houdt ook zijn eigen pagina-Resolution wanneer hij opnieuw wordt bezocht
Version 2.766.25
Fixed
- Afbeeldingen die met ShowImage worden geplaatst houden hun grootte op een pagina die via Width en Height is ingesteld, wanneer de document-Resolution niet 72 is. Bij een Resolution van 144 kwamen ze op de halve grootte en verschoven uit
- ExtTextOut plaatst elk teken op zo'n pagina op de opgegeven advances in plaats van op de helft ervan
- Ingebedde glyph-reeksen houden hun glyph-offsets en advances op zo'n pagina vast
Version 2.766.24
Added
- SVG-export volgt nu het
/Extend-item van axiale en radiale shadings: een uiteinde dat niet wordt doorgetrokken — de default — blijft ongeschilderd zoals in PDF, in plaats van zijn eindkleur over de hele clip uit te smeeren - Bij radiale shadings laat dit ook de binnenkant van de startcirkel leeg, tenzij het startpunt wordt doorgetrokken
Version 2.766.23
Fixed
- Het afvlakken van paginarotatie draait de appearance streams van annotaties nu met de pagina mee, zodat ingebakken of afgevlakte annotaties eruitzien zoals op de gedraaide pagina in plaats van zijwaarts in hun gedraaide rechthoek te worden geperst
- Widgetrotatie (
/MK /R) wordt met de paginadracht gecorrigeerd, zodat formulierveld-appearances die na het afvlakken opnieuw worden gegenereerd hun oriëntatie houden - Annotaties met de NoRotate-vlag blijven na het afvlakken rechtop en houden hun grootte, verankerd aan hun linkerbovenhoek, zoals viewers ze op een gedraaide pagina tonen
Version 2.766.22
Fixed
- Paginarotatie afvlakken in een tagged PDF draait een annotatierechthoek niet langer twee keer wanneer de structuurboom vóór de paginaboom wordt bereikt
- Paginarotatie afvlakken roteert de bounding box van Form XObjects die op de pagina worden gebruikt niet langer mee; hun geometrie leeft in de formulieruimte en de paginadracht is er al op van toepassing via de content-transformatie
- Layout-bounding boxes van structuurelementen die bij een andere pagina horen, veranderen niet langer wanneer één pagina wordt afgevlakt
Version 2.766.21
Fixed
- Het lezen van de bleed-, trim- of art box van een geladen pagina pikt niet langer een
/BleedBox,/TrimBoxof/ArtBoxop die op een bovenliggend/Pages-knooppunt staat; deze boxes zijn niet overerfbaar in PDF, dus een pagina zonder eigen ingang meldt nu zijn crop box zoals de specificatie vereist - Paginarotatie afvlakken kopieert zo'n bleed-, trim- of art box op bovenliggend niveau niet langer mee naar de pagina
Version 2.766.20
Fixed
- Tekst die op de Canvas van de pagina of in een metafile die met ShowMetafile is geplaatst wordt getekend, houdt zijn grootte aan wanneer de document-Resolution niet 72 is. Bij een Resolution van 144 kwam hij op de halve grootte uit terwijl de rest van de tekening klopte
- De pagina-Canvas en ShowMetafile tekenen op de juiste grootte op een pagina die via Width en Height is ingesteld en in punten tekent. Bij een Resolution van 144 kwam de tekening twee keer zo groot uit
- De pagina-Canvas en ShowMetafile volgen ook een Resolution die op de pagina zelf is gezet, in plaats van de tekening daarmee te verkleinen
Version 2.766.19
Fixed
- Uitgevulde Unicode-tekstvakken eindigen nu op de rand van het vak wanneer tekenafstand is ingesteld. Elk teken kreeg de tekenafstand bovenop zijn uitgevulde positie, dus elke regel liep voorbij de rechterrand met de tekenafstand keer het aantal tekens
- Uitgevulde Unicode-tekstvakken met horizontale schaling vullen weer de hele boxbreedte in plaats van eerder te stoppen met de schalingsfactor als marge
- Woordafstand telt nu mee voor de natuurlijke breedte van een uitgevulde regel, dezelfde breedte waarop de regel werd afgebroken
- Tekst die met een expliciete advance per teken wordt getekend landt op die posities, welke tekenafstand of horizontale schaling er ook geldt
Version 2.766.18
Fixed
- Paginarotatie afvlakken draait pagina's met
/Rotate 90en/Rotate 270nu met de klok mee, zodat de afgevlakte pagina er exact uitziet als het gedraaide origineel in plaats van er relatief ondersteboven van te staan - Annotaties, linkbestemmingen en structuurgeometrie bewegen op dezelfde manier met de pagina mee
- Het afvlakken van een pagina zonder CropBox voegt er niet langer één toe die de pagina tot een vierkant terugbracht; alleen de page boxes die een pagina echt heeft, worden gedraaid
Version 2.766.17
Fixed
- Font-fallback-ketens vinden faces zoals SimSun en Microsoft YaHei nu ook op Windows-systemen die ze onder een gelokaliseerde naam melden, zodat gemengde CJK-tekst in
WideTextOutBox,WideTextOutBoxExenTextOutWithFallbackin het fallback-font wordt getekend in plaats van lege vakjes te tonen - Tekst waarvan het eigen font zo'n face is, wordt niet langer gesplitst in fallback-runs of door de diagnostiek van onopgeloste glyphs als onopgelost gemeld
- Een face kan onder elke familienaam die hij draagt, in elke taal, in een keten voorkomen; een face die Windows alleen door een ander font substitueert, wordt nog steeds overgeslagen
Version 2.766.16
Fixed
- N-up-samenstelling plaatst pagina's met
/Rotate 90en/Rotate 270nu met de klok mee gedraaid binnen hun cellen; voorheen werden ze de andere kant op gedraaid en uit de cel geduwd, vaak van het vel af - Pagina's met
/Rotate 180worden nu op het vel gedraaid in plaats van rechtop te worden samengesteld - N-up-samenstelling volgt nu page boxes en
/Rotatedie uit de paginaboom worden geërfd, zodat zulke pagina's niet langer worden overgeslagen of ongedraaid samengesteld - Blanco pagina's die in een geladen document worden ingevoegd, ook de samengestelde N-up-vellen, worden niet langer gedraaid of bijgesneden door een
/Rotateof/CropBoxdie uit de paginaboom is geërfd
Version 2.766.15
Fixed
HPDFTokenizeContentStreamAppendkan een token-array nu hergebruiken nadat zijn count op nul is teruggezet: tokens die van de vorige ronde zijn achtergebleven worden eerst vrijgegeven, zodat hun strings niet langer lekken en hun array-items of inline afbeeldingsdata niet langer op de nieuwe tokens opduiken- Het toevoegen van vele kleine content streams aan één token-array laat de array nu met minstens een factor twee groeien in plaats van hem bij elke toevoeging opnieuw toe te wijzen en te verplaatsen; daardoor compileerden pagina's die uit duizenden kleine streams zijn opgebouwd traag
Version 2.766.14
Fixed
- Pagina's met
/Rotate 90of/Rotate 270worden nu met de klok mee gedraaid gerenderd, zoals de PDF-specificatie definieert, in plaats van over de diagonaal gespiegeld; voorheen kwam de linkerbovenhoek van een pagina van 90 graden rechtsonder terecht - De fix dekt pagina- en regiorendering, bitmap-, metafile- en gebande PNG- of TIFF-export, en de SIMD-rendering-backend
- De conversies van pagina- naar weergavecoördinaten en terug, en de zoek- en highlight-overlays van de viewer, volgen dezelfde wijzerzin-rotatie, zodat treffers en hit-testing op de gerenderde pagina aansluiten
Version 2.766.13
Fixed
- SVG-pagina-export schrijft tekst nu als UTF-8, zoals het document aangeeft, zodat geaccentueerde en CJK-tekens overleven in plaats van in vraagtekens of bytes te veranderen die het bestand onleesbaar maken; controlecodes die XML niet toestaat worden U+FFFD
- Tekst na de eerste run van een regel, en tekst na een
TJ-kerningcorrectie, wordt nu correct geplaatst wanneer de text matrix de tekst schaalt of roteert — precies hoe veel PDF-producers de fontgrootte zetten - Tekstverheffing en horizontale schaling volgen nu een geschaalde of geroteerde text matrix, en
TJ-correcties respecteren horizontale schaling - Tekst met rendermodi 4 tot 6 (paint en clip) wordt geëxporteerd in plaats van weggegooid, onzichtbare tekst verplaatst de tekstpositie nog steeds, en tekst met contour houdt zijn stroke-opaciteit
- Woordafstand wordt niet langer toegepast op twee-bytecodes die toevallig 32 zijn, en reeksen spaties blijven staan zodat elk teken op zijn eigen positie blijft
- Ligatuur-glyphs exporteren alle tekens waarvoor ze staan, en fonts met gemengde één- en twee-bytecodes worden code voor code gelezen
- Pagina's waarvan de
/MediaBoxniet in de oorsprong begint, landen nu op het SVG-canvas in plaats van er vanaf te zijn verschoven
Version 2.766.12
Fixed
- Tekenen op
THPDFPage.Canvas, en metafiles die metShowMetafileop een positie en schaal als vectorafbeeldingen worden afgespeeld, verliezen niet langer een deel van hun linker- en bovenrand wanneer ze een clip-regio zetten. Elke clip-regio werd aan die twee kanten één eenheid naar binnen geschoven, dus een rand of vulling langs de linker- of bovenrand kwam dunner uit dan hetzelfde aan de rechter- of onderkant - Clip-regio's sluiten nu aan op dezelfde regio's wanneer ze worden gevuld, en bedekken bij elke
THotPDF.Resolutionhetzelfde gebied
Version 2.766.11
Fixed
- Onderstrepingen en doorstrepingen van Unicode-tekst die met
TextOut,UnicodeTextOut,RtLTextOutenExtTextOutwordt getekend, overbruggen nu exact de tekst. Ze werden gemeten op de naar de systeemcodepagina geconverteerde tekst, dus reeksen met Cyrillisch, Hebreeuws, Grieks, CJK of andere letters buiten die codepagina kregen strepen die vóór de tekst stopten of erlangs liepen - De strepen volgen ook tekenafstand, woordafstand, horizontale schaling en de verplaatsingen die aan
ExtTextOutworden meegegeven
Version 2.766.10
Fixed
- De rapport- en grid-export-add-ons (FastReport, QuickReport, ReportBuilder, DevExpress en DBGrid) overschrijven elkaars output niet langer wanneer meerdere exports tegelijk draaien, bijvoorbeeld op een server. Hun tijdelijke bestand was genoemd naar een timer die maar elke 10 tot 16 ms verandert, dus exports die samen startten schreven naar hetzelfde bestand
Version 2.766.9
Fixed
TextWidthmeet tekst nu zoals hij wordt getekend wanneer tekenafstand, woordafstand of horizontale schaling is ingesteld. De afstand werd niet met de horizontale schaling geschaald, negatieve woordafstand werd genegeerd en een spatie aan het eind kreeg geen woordafstand, dus alineavervolging, linkrechthoeken en gecentreerde of rechts uitgelijnde tekst kwamen naast de getekende tekst terechtTextWidthenGetWideTextWidthgeven voor dezelfde tekst dezelfde breedte terug
Version 2.766.8
Fixed
- Het ReportBuilder-apparaat (
TppHotPDFDevice) tekent native tekst nu binnen zijn tekstvak. De tekst werd gepositioneerd alsof zijn positie de basislijn was, dus elk tekstobject begon een regelhoogte te laag en zijn laatste regel liep uit het vak - Gecentreerde en rechts uitgelijnde native tekst wordt gemeten met de Unicode-breedtes waarmee hij wordt getekend, dus tekst met letters buiten de systeemcodepagina, zoals Chinees op een Westers systeem, sluit correct aan
Version 2.766.7
Fixed
- De FastReport-export plaatst memo-tekst nu binnen zijn memo. De tekst werd gepositioneerd alsof zijn positie de basislijn was, dus de tekst van elke memo begon één fonthoogte te laag, en onder uitgelijnde tekst werd onder de memo getekend, waar clipping hem verborg
- Verticale uitlijning bovenaan, gecentreerd en onderaan meet allemaal vanaf de bovenkant van de eerste regel, voor gewone en met HTML getagde memo's
Version 2.766.6
Fixed
- Het FastReport-exportfilter (
TfrxHotPDFExport) compileert weer. De propertyNotEmbeddedFontslas een veld van een ander type, en native picture-export gebruikte een propertyClippeddieTfrxPictureViewniet heeft - Native picture-export snijdt elke picture nu bij op zijn view, zoals FastReport doet, dus een picture die groter is dan zijn view vloeit niet langer over naburige objecten heen
- Een gecentreerde picture houdt zijn kader en clip op de view-grenzen; alleen de afbeelding zelf wordt gecentreerd. Het kader schoof voorheen met de afbeelding mee
Version 2.766.5
Fixed
- De DBGrid-add-on meet celtekst nu met de Unicode-tekstbreedtes waarmee hij wordt getekend voordat hij hem inkort om in een kolom te passen. Tekst met letters buiten de systeemcodepagina, zoals Chinees op een Westers systeem, werd gemeten als vraagtekens en liep voorbij de cel; dubbel-bytetekst op Chinese, Japanse of Koreaanse systemen werd ruim afgekort voordat de cel vol was
- Een inkorting laat nooit de helft van een surrogaatpaar vóór de
...achter
Version 2.766.4
Fixed
- De DBGrid-add-on (
TDBGridHotPDFExportenDBGridHotPDFExportToFile/ToStream) tekent celtekst nu binnen zijn cellen. De tekst werd geplaatst alsof zijn positie de basislijn was, dus de tekst van elke rij zat op de onderrand van de cel en werd afgesneden door de rasterlijn van de volgende rij - Koptekst wordt in de koprij gecentreerd, en de titel raakt de bovenkant van de tabel niet langer aan
Version 2.766.3
Fixed
GetLoadedPDFVersionStringgeeft nu%PDF-1.7en dergelijke terug op systemen waarvan de locale een decimale komma schrijft; daar gaf hij%PDF-1,7terug- Het veld
pdfVersionvanGetLoadedDocumentReportis op dezelfde manier gecorrigeerd
Version 2.766.2
Fixed
- HTML-import (
RenderHTMLenRenderHTML5) levert bij elkeTHotPDF.Resolutiondezelfde pagina op. CSS-lengtes en deMargin,BaseFontSize,ListIndentenBlockSpacingvan de importer zijn punten, maar bij Resolution 144 kwamen tekst, marges, lijsten en tabellen op de halve grootte uit - Tekst en grafiek die je vóór en na de import tekent gebruiken nog steeds 1/Resolution inch
- Documenten die met de default Resolution van 72 worden gebouwd, komen exact zo uit als voorheen
Version 2.766.1
Fixed
- XFA-formulieren die met
ApplyXFAAsAcroFormofFlattenLoadedXFAworden afgevlakt, houden bij elkeTHotPDF.Resolutionde posities, groottes en fontgroottes uit de template aan. Bij Resolution 144 kwam het hele formulier op de halve grootte in de linkerbovenhoek van de pagina uit - Tekst en grafiek die je vóór en na het afvlakken tekent gebruiken nog steeds 1/Resolution inch
- Documenten die met de default Resolution van 72 worden gebouwd, komen exact zo uit als voorheen
Version 2.766.0
Added
THPDFPage.UserWidthenTHPDFPage.UserHeightgeven de paginagrootte terug in de eenheden waarmee je tekent, 1/Resolutioninch, zodat lay-outcode ze kan vergelijken met coördinaten, marges enTextWidthbij elkeTHotPDF.Resolution.WidthenHeightgeven nog steeds punten terug, en bestaande code leest dezelfde waarden als voorheen
Fixed
- Met
THotPDF.Resolutionop een waarde anders dan 72 breken alinea's nu af op de echte ruimte tussen hun marges en gaan bij de ondermarge naar de volgende pagina. Ze maten de pagina in punten, dus bij 144 kon een alinea met brede marges na elk teken afbreken en liep hij op veel te veel pagina's door - Een alinea die op een nieuwe pagina doorgaat, houdt bij elke Resolution dezelfde paginagrootte, coördinaten en fontgrootte aan. Bij 144 schakelde de vervolgpagina naar puntcoördinaten en kwam de tekst erop op de halve grootte uit
THPDFTablestart pas een nieuwe pagina wanneer een rij de ondermarge bereikt; bij 144 zette een tabel in de onderste helft van de pagina elke rij op een eigen pagina- HTML-import zet tekst bij elke Resolution over de hele paginabreedte in plaats van over de linkerhelft
- Metafiles die gecentreerd op de pagina worden getekend, en metafile-clip-regio's die de hele pagina bedekken, gebruiken bij elke Resolution de volledige pagina
- Layoutdiagnostiek voor paginalagen en weggeschreven pagina's rapporteert de paginagrootte in tekenenheden
- Documenten die met de default Resolution van 72 worden gebouwd, komen exact zo uit als voorheen
Version 2.765.52
Fixed
- AES-256-wachtwoorden met niet-ASCII-letters werken nu ook in andere PDF-readers. HotPDF maakte een hash van het wachtwoord in de systeemcodepagina, terwijl ISO 32000-2 het als UTF-8 definieert, dus andere readers wezen een wachtwoord met Chinese of geaccentueerde letters af; zowel revision 5 als revision 6 is gecorrigeerd
- AES-256-wachtwoorden langer dan 127 bytes worden nu tot 127 bytes ingekort zoals de standaard voorschrijft, zodat readers die die volgen ze accepteren
- HotPDF opent nu AES-256-bestanden van andere producers waarvan het wachtwoord niet-ASCII-letters heeft
- Bestanden die eerdere versies met zulke wachtwoorden versleutelden, openen nog steeds in HotPDF met hetzelfde wachtwoord
Version 2.765.51
Fixed
- ANSI-tekst die na Unicode-tekst in hetzelfde font wordt geschreven, verschijnt niet langer als lege vakjes. Wanneer een pagina Unicode-tekst met
TextOuttekende en daarnaTextBoxofTextOutBoxExin hetzelfde face gebruikte (bijvoorbeeld Arial op een andere grootte), werd de ANSI-tekst in het Unicode-font geschreven en konden viewers zijn glyphs niet vinden; hij krijgt nu zijn eigen fontresource en wordt correct weergegeven en geëxtraheerd - Pagina's die alleen ANSI-tekst of alleen Unicode-tekst gebruiken leveren dezelfde output op als voorheen
Version 2.765.50
Fixed
- Documenten die met AES-256 revision 6 zijn versleuteld (
UseAES256R6, en PDF 2.0 AES-256) openen nu in andere PDF-readers. De wachtwoordhash werd elke ronde met de salt berekend en aan de eigenaarzijde zonder de user-ingang, dus qpdf, MuPDF en andere readers wezen beide wachtwoorden af; HotPDF accepteerde alleen zijn eigen bestanden - HotPDF opent nu revision 6-bestanden van andere producers met hun user- of owner-wachtwoord in plaats van een onjuist wachtwoord te melden
- Het AES-256-R6-voorbeeld van de Security-demo opent in andere readers
Version 2.765.49
Fixed
- Uitgevulde Unicode-tekstvakken spreiden hun letters niet langer uiteen en lopen niet langer voorbij de rechterrand van het vak. Met een font dat op naam is gekozen, zoals Arial, kwam elke uitgevulde regel ongeveer twee keer zo breed als het vak uit en overlapte alles ernaast; elke uitgevulde regel eindigt nu op de rand van het vak
- Tekst die met een expliciete advance per teken wordt getekend, landt in hetzelfde geval waar hij gevraagd werd, in plaats van dat elk teken een extra tekenbreedte naar rechts werd geduwd
Version 2.765.48
Changed
- De demo's HelloWorld, CJKAnnotations, TextOut en RtLTextOut voor Delphi en C++Builder bedden nu alleen de glyphs in die ze gebruiken. Ze bedden hele systeemfonts in zoals Arial Unicode MS, dus een hello world van één pagina kwam op ongeveer 15 MB uit en het rechts-naar-links-voorbeeld op ongeveer 30 MB; dezelfde pagina's zijn nu tussen 80 KB en 650 KB en zien er hetzelfde uit
Version 2.765.47
Fixed
- Rechts-naar-links-tekst komt niet langer met letters in de verkeerde volgorde uit bepaalde fonts. Hebreeuws in Arial Unicode MS had in veel woorden naburige letters verwisseld, en Arabisch in Microsoft Sans Serif werd helemaal niet omgekeerd, omdat de glyphnummers van die fonts werden aangezien voor accenttekens toen de regel in visuele volgorde werd gezet
- De Hebreeuwse regels van de RtLTextOut-demo lezen nu correct
Version 2.765.46
Fixed
GetWideTextWidthneemt nu de tekenafstand en woordafstand mee waarmee de tekst wordt getekend, net alsTextWidth. Automatisch omgebroken en gecentreerde Unicode-tekst met ingestelde afstand werd te smal gemetenTextOutHTMLtoont nu woordafstand die metSetWordSpacingis ingesteld: elke run wordt op zijn gemeten breedte geplaatst, en die breedte liet de afstand voorheen weg. De CSSword-spacingenletter-spacingvan HTML-import lopen door dezelfde lay-out
Version 2.765.45
Fixed
SetWordSpacingwerkt nu met ingebedde fonts. Tekst in een ingebed font wordt met twee-byte-tekencodes geschreven, en PDF past woordafstand alleen toe op de één-byte-spatiecode, dus de afstand werd stilletjes genegeerd zodraFontEmbeddingaanstond of de tekst een Unicode-font nodig had- De afstand wordt na elke spatie als tekstpositioneringscorrectie toegevoegd, die elke PDF-viewer volgt; tekst zonder woordafstand wordt exact zo geschreven als voorheen
- De word-spacing-rij van de TextOut-demo toont nu de extra ruimte
Version 2.765.44
Fixed
- De AnnotationInteraction-demo's voor Delphi en C++Builder passen de beschrijving van elke link nu binnen zijn linkrechthoek. De tekst begon te laag, dus de rand van de rechthoek liep erdoorheen, en hij was breder dan de rechthoek
Version 2.765.43
Fixed
- Doorgestreepte tekst (
fsStrikeOut) wordt nu door het midden van de kleine letters gehaald. De streep werd een halve regelhoogte onder de basislijn getekend, onder de onderstreping, dus doorgestreepte tekst leek dubbel onderstreept; ook<s>inTextOutHTMLwerd getroffen - Gedraaide tekst krijgt zijn onderstreping nu onder de basislijn in plaats van langs de bovenkant van de letters, en zijn doorstreping door de letters
- Doorstrepingen zijn op elk tekstpad even dik als onderstrepingen; de Unicode- en gewone Latijnse paden tekenden een veel dunnere streep
Version 2.765.42
Fixed
- De HTMLText-demo levert nu één pagina op met alle vijf voorbeelden erop. Hij voegde een tweede pagina toe na de pagina waar het document al mee begon, liet de eerste pagina leeg achter en begon pas tegen de onderkant van de pagina te schrijven, waardoor het entity-voorbeeld en de omgebroken alinea van de pagina vielen
Version 2.765.41
Fixed
- De Layer-demo's voor Delphi en C++Builder tonen nu de tekst van hun lagen. De tekst van de zichtbare laag werd in de kleur van de rechthoek erachter getekend en was onzichtbaar, en de tekst van de verborgen laag was vrijwel wit
- Het bijschrift van de Patterns-demo's wordt in zwart getekend in plaats van met het tilingpatroon gevuld, wat het in patroonfragmenten brak
- Het bijschrift van de AlphaTransparency-demo's wordt niet langer halftransparant groen met de Multiply-blendmodus getekend; de transparante vormen houden hun transparantie nu voor zichzelf
Version 2.765.40
Fixed
- De GraphicDraw-demo's voor Delphi en C++Builder tekenen de raaklijnen van hun krommevoorbeelden nu correct. De eerste controlepuntpen van de linker kromme stopte vóór het gelabelde punt, en de rechter kromme toonde een korte horizontale streep in plaats van de lijnen van zijn startpunt via zijn controlepunt naar zijn eindpunt
- De sectiekoppen van de rectangle- en ellipse-pagina's zijn weer zwart in plaats van de kleur van de laatst getekende vorm aan te nemen
Version 2.765.39
Fixed
- Tekst en vormen die na
PrintHyperlinkworden getekend houden de kleuren aan die ervoor zijn gezet. Een grijze kleur kwam als een andere kleur terug (wit werd blauw), en kleuren die in CMYK of via een kleurruimte waren gezet kwamen als een oudere RGB-kleur terug - De hyperlinkkleur geldt nu alleen voor de linktekst, welke kleurruimte de pagina ook gebruikte
Version 2.765.38
Fixed
TextOutOutlinetekent de glyph-outlines nu op de fontgrootte bij elkeResolution. Bij eenResolutionanders dan 72 werden de outlines nog eens geschaald, bijvoorbeeld tot de halve grootte bij 144- Outlines van fonts met minder dan 1000 eenheden per em, zoals SimHei, worden niet langer verscheidene malen te groot getekend
Version 2.765.37
Fixed
- De CJKUnicode-demo's voor Delphi en C++Builder tonen hun Koreaanse regel nu ook op systemen zonder Arial Unicode MS. Ze tekenden hem met het eerst gevonden Chinese font, dat geen Hangul heeft, dus de regel bleef leeg; hij gebruikt nu Malgun Gothic wanneer het gekozen font geen Koreaans kan tonen
Version 2.765.36
Fixed
- Chinese en Japanse tekst die met fonts zoals SimHei wordt geschreven, stapelt zijn tekens niet langer op elkaar. Wanneer hetzelfde font voor een tweede tekstrun werd gebruikt, kregen veel ideografische tekens breedtes van enkele eenheden in plaats van een volle em
- De getroffen fonts bewaren minder advance-breedtes dan er glyphs zijn; de glyphs na de laatst bewaarde breedte gebruiken nu die breedte, zoals het TrueType-formaat vereist
Version 2.765.35
Fixed
- Unicode-tekst in fonts waarvan het ontwerpraster minder dan 1000 eenheden per em telt, zoals SimHei en SimSun met 256, wordt nu correct gespatieerd. De glyphbreedtes die naar de PDF werden geschreven waren ongeveer vier keer te groot, dus viewers lieten wijde gaten na spaties en andere net gebruikte tekens
Version 2.765.34
Fixed
- Het scanned-image-scenario van de PDFOptimize-demo comprimeert nu een echte tekstpagina. Zijn 1-bits testafbeelding kwam volledig zwart uit, dus CCITT G4 en JBIG2 werden vergeleken op een egale rechthoek
- De afbeeldingsscenario's van de PDFOptimize-demo bedden nu alleen de glyphs van hun paginalabel in, dus de gerapporteerde groottes tonen het verschil tussen de afbeeldingscompressiemethoden in plaats van te worden gedomineerd door een heel ingebed font
Version 2.765.33
Fixed
- De E-Invoice-demo zet de zichtbare factuurpagina nu vanaf boven op: de titel staat bovenaan de pagina en de factuur, partijen en bedragen volgen eronder. De pagina werd in omgekeerde volgorde getekend, met de titel vlak bij de onderrand en de voetnoot bovenaan
Version 2.765.32
Fixed
- JBIG2-afbeeldingen die strikt verliesvrij zijn gecodeerd (
LosslessmetLossyLevel = 0) houden nu elke pixel vast. De default verwijdering van minieme zwarte stippen als scanruis negeerde deze instellingen, dus punten en de i- en j-stipjes in kleine tekst verdwenen uit afbeeldingen die verliesvrij moesten zijn - De scanvriendelijke defaults (
LossyLevel = 5metRemoveIsolatedBlackPixels) verwijderen nog steeds spikkels zoals voorheen
Version 2.765.31
Fixed
- Geladen pagina's naar PNG of TIFF exporteren faalt niet langer met "received too many rows" bij resoluties waar een renderband geen geheel aantal punten is, zoals de default 150 DPI van
SaveLoadedPagesAsImagesmet een Letter-pagina. Afronding maakte elke band één pixelrij hoger dan gepland, dus de banden telden samen meer rijen dan de afbeelding
Version 2.765.30
Fixed
TextWidth,TextHeight,GetWideTextWidthenGetWideCharAdvancesantwoorden nu in de pagina-eenheden vanResolution, de eenheden waarmee tekst wordt getekend. Bij eenResolutionanders dan 72 antwoordden ze in punten, dus gemeten tekst paste niet bij de coördinaten waarop hij werd geplaatst- Bij een
Resolutionanders dan 72 begint tekst die metTextOutwordt getekend nu op zijn Y in plaats van te hoog, en onderstrepingen en doorstrepingen dekken de hele tekst op de juiste afstand en dikte in plaats van een fractie ervan - Bij elke
ResolutioncentrerenTextBox,TextOutBoxExenWideTextOutBoxExhun regels en lijnen ze rechts uit op de echte tekstbreedte, breken tabelcellen en alinea's tekst daarop af, en overlappen de opgemaakte runs vanTextOutHTMLniet langer - Een font-fallback-run binnen
WideTextOutBoxExhoudt de fontgrootte bij elkeResolutionaan in plaats van te krimpen - Output bij
Resolution72 is onveranderd
Version 2.765.29
Fixed
- Wanneer Windows de world transform van een EMF-metafile niet zelf kan toepassen, combineert HotPDF de transformaties zelf. De verticale offset van een gecombineerde transformatie gebruikte de verkeerde term, dus content in zulke metafiles kon omhoog of omlaag zijn verschoven
Version 2.765.28
Fixed
- Het tonen van een EMF-metafile print niet langer diagnostieke regels zoals
[WMF_DEBUG] EMR_POLYGON16 record foundnaar de standaarduitvoer van console-applicaties. De metafile-trace stond in de release-build nog aan
Version 2.765.27
Fixed
- Tekst in EMF-metafiles die met
ShowMetafileworden getoond, zit nu op de hoogte waarop Windows hem tekent. Boven uitgelijnde tekst, de default vanTCanvas.TextOut, werd een regelhoogte te hoog getekend, en onder uitgelijnde tekst was ook te hoog - Op de basislijn uitgelijnde en gedraaide metafile-tekst is onveranderd
Version 2.765.26
Fixed
ShowMetafilemet een positie en schaal tekent de metafile nu met zijn linkerbovenhoek op het opgegeven punt en geschaald zoals gevraagd. Voorheen negeerde hij die argumenten en tekende hij de metafile altijd op de linkerbovenhoek van de pagina op zijn natuurlijke grootteShowMetafilezonder positie is onveranderd
Version 2.765.25
Fixed
AngleArc-tekeningen in EMF-metafiles die metShowMetafileworden getoond, tekenen nu de boog die ze beschrijven, in beide richtingen, gevolgd door lijnen die vanaf het einde van de boog doorgaan. Er werd een volledige cirkel getekend, en diens grootte was verkeerd zodra de metafile een offset had
Version 2.765.24
Fixed
- Onder PDF/A en PDF/X tonen free text-annotaties met gewone ASCII-inhoud nu hun tekst. Hun appearance tekende voorheen alleen het kader en de vulling, omdat de Helvetica uit de default appearance van de annotatie daar alleen ingebed gebruikt mag worden
- De tekst wordt op 12 pt getekend in het huidige lettertype van de pagina, dat samen met de paginatekst wordt ingebed, afgebroken op de annotatiebox en uitgelijnd volgens de gekozen uitvulling, zoals al gebeurde voor niet-ASCII-inhoud
- Buiten PDF/A en PDF/X worden free text-annotaties met alleen ASCII-inhoud exact zo geschreven als voorheen
Version 2.765.23
Fixed
- Met
AutoShapeArabicaan voegenTextOutenUnicodeTextOutArabische, Perzische en Urdu-letters nu samen tot hun begin-, midden- en eindvormen en ligaturen, zoalsRtLTextOutal deed. Elke letter werd voorheen in zijn geïsoleerde vorm getoond - Hetzelfde geldt voor
AutoShapeSyriac,AutoShapeNko,AutoShapeAdlam,AutoShapeHanifiRohingyaen het herordenen van Hebreeuwse diakritische tekens (sfHebrewReorderinShapingFeatures) - Met deze opties aan kon tekst waarvan de glyphnummers toevallig in de Arabische of Hebreeuwse tekenbereiken vielen, met de verkeerde glyphs worden getoond; dat gebeurt niet langer
- Free text-annotaties die in het paginafont worden getekend, worden op dezelfde manier gevormd als paginatekst
- Output met deze opties uit is onveranderd
Version 2.765.22
Fixed
- Gekromde vormen volgen nu
Resolution-waarden anders dan 72.Ellipse,Circle,Arc,DrawArc,Pie,DrawPie,ChordenArcTowerden op de verkeerde plek en grootte getekend, terwijl rechte lijnen, rechthoeken en afgeronde rechthoeken klopten - Output bij de default resolutie van 72 is onveranderd
Version 2.765.21
Fixed
- Taartpunten die met
PieofDrawPieworden getekend zijn nu enkelvoudige gesloten vormen, dus hun omtrek krijgt nette hoeken waar de rechte zijden de boog raken in plaats van twee losse lijneinden - Chords in EMF-metafiles die met
ShowMetafileworden getoond, sluiten nu langs de rechte lijn tussen de einden van hun boog. De lijn liep voorheen naar een punt ver van de vorm
Version 2.765.20
Fixed
DrawArcenDrawPietekenen nu het deel van de ellips dat hun documentatie beschrijft: tegen de klok in van het startpunt naar het eindpunt, zoals de Windows GDI-aanroepenArcenPiedoen. Voorheen tekenden ze het andere deel, dus een kwartboog kwam als drie kwart uit- Taartsneden, chords en
ArcTo-bogen in EMF-metafiles die metShowMetafileworden getoond, komen nu overeen met het beeld dat Windows tekent, voor beide boogrichtingen. Voorheen lieten ze het tegenovergestelde deel van de ellips zien; gewone bogen waren al correct - De op hoeken gebaseerde methoden
Arc,Pie,ChordenArcTozijn onveranderd
Version 2.765.19
Fixed
- Gedraaide rechthoeken die met
RectangleRotateworden getekend zijn nu gesloten vormen, zoals die metRectangle. Het omlijnen van zo'n rechthoek liet voorheen zijn vierde zijde weg, dus een alleen omlijnde gedraaide rechthoek toonde drie zijden - Gevulde gedraaide rechthoeken, en de onderstreep- en doorstreepbalken van gedraaide tekst, zien er hetzelfde uit als voorheen
Version 2.765.18
Fixed
- Negatieve getallen die in gegenereerde PDF's worden geschreven, worden nu correct afgerond. Waarden zoals -50 werden geschreven als -49.99, dus negatieve coördinaten, offsets en posities in pagina-inhoud, annotatierechthoeken en vergelijkbare ingangen konden tot 0,01 eenheden ernaast zitten
- Negatieve waarden worden nu van nul af afgerond, precies gespiegeld aan positieve waarden; een negatieve waarde die op nul uitkomt wordt als 0 geschreven
- Output voor nul en positieve getallen is onveranderd
Version 2.765.17
Fixed
- Free text-annotaties met Chinese, Japanse, Koreaanse, Arabische, Cyrillische of andere niet-ASCII-inhoud tonen hun tekst nu in elke viewer. Ze vertrouwden voorheen op de viewer die de tekst in Helvetica tekende, wat alleen Westerse tekens kan weergeven, dus viewers zoals Poppler toonden alleen de ASCII-interpunctie
- Deze annotaties dragen nu hun eigen appearance (ISO 32000-1 12.5.5): de tekst wordt getekend in het huidige lettertype van de pagina, samen met de paginatekst ingebed en als subset opgenomen, afgebroken op de annotatiebox (tussen woorden, of tussen tekens voor tekst zonder spaties), uitgelijnd volgens de gekozen uitvulling en over hetzelfde kader en dezelfde vulling geplaatst als voorheen
- De appearance wordt ook onder PDF/A geschreven, waar het ingebedde lettertype het document conformant houdt en de annotatietekst nu zichtbaar is in plaats van een leeg vakje
- Free text-annotaties met alleen ASCII-inhoud worden exact zo geschreven als voorheen
Version 2.765.16
Fixed
- Lege pagina's die met
InsertLoadedBlankPagein geladen documenten worden ingevoegd, bevatten nu de resource dictionary die elke pagina nodig heeft (ISO 32000-1 Tabel 30), waardoor validators zoals qpdf de paginaboom niet langer als beschadigd melden en er later inhoud aan de pagina kan worden toegevoegd
Version 2.765.15
Fixed
- In de
Table-demo loopt het subtotaalbedrag nu over de kolommen Qty en Price zoals bedoeld; er werd een verkeerde celindex gebruikt, waardoor de kolom Qty als lege cel bleef staan
Version 2.765.14
Fixed
- Afbeeldingen in cellen van
THPDFTableworden nu binnen hun cel getekend en nemen de verticale uitlijning mee; ze werden één afbeeldingshoogte te laag geplaatst, onder de cel en buiten de tabel
Version 2.765.13
Fixed
- Unicode-tekstbreedtes (
GetWideTextWidthen de uitvullingsmaat) komen nu overeen met het lettertype; bij lettertypen als Arial vielen ze ongeveer twee keer te groot uit - Tabellen, automatisch omgebroken tekst en rechts uitgelijnde, gecentreerde of uitgevulde tekst die op deze breedtes zijn gebaseerd, worden weer correct opgemaakt: korte celtekst wordt niet langer afgebroken, rechts uitgelijnde waarden komen tot de celrand en HTML-tekst in tabelcellen vertoont geen grote gaten meer tussen woorden
Version 2.765.12
Fixed
- Formulieren met check boxes of radio buttons nemen het lettertype ZapfDingbats (
/ZaDb) nu op in de default resources van het formulier. Viewers die deze velden zelf tekenen (de default wanneerAutoFormAppearancesuit staat) zoeken het lettertype daar op om het vinkje te tekenen; voorheen meldden op Poppler gebaseerde viewers een onbekend lettertype en toonden ze geen vinkje
Version 2.765.11
Fixed
- In de
CJKAnnotations-demo staat het eerste notitiepictogram van elke taalrij nu in lijn met de andere pictogrammen van die rij; het werd 5 punten hoger geplaatst
Version 2.765.10
Fixed
- Lettertypen die bij hun Engelse naam worden aangevraagd, worden nu ook gevonden op Windows-systemen in andere talen. Een aanvraag voor SimSun, Microsoft YaHei of MS Gothic op een Chinese, Japanse of Koreaanse Windows werd behandeld als een ontbrekend lettertype, omdat Windows de naam in de systeemtaal rapporteert, en de tekst werd stilletjes in Arial Unicode MS gezet
Version 2.765.9
Fixed
- Lettertypen die Windows in TrueType-collecties (.ttc) bewaart, zoals SimSun, Microsoft YaHei en MS Gothic, worden nu als geldige zelfstandige lettertypen ingebed. Voorheen wees elke tabel van het ingebedde lettertype naar de verkeerde data, waardoor viewers het weigerden en terugvielen op een systeemlettertype, en op computers zonder dat lettertype vertoonde de tekst verkeerde glyphs
- Dit trof ook documenten waarvan het aangevraagde lettertype ontbrak en dat Windows aan een collectielettertype toewees, bijvoorbeeld Unicode-tekst met Arial Unicode MS op systemen waar alleen SimSun beschikbaar was
Version 2.765.8
Fixed
- Bronbestanden met niet-ASCII-tekst worden weer opgeslagen als UTF-8 met een byte order mark. Zonder die mark leest Delphi een bronbestand in de codepagina van de compilerende computer, waardoor op Chinese, Japanse, Koreaanse en andere niet-Westerse Windows-systemen de CJK-, Arabische, Hebreeuwse en geaccentueerde tekst in de demo's verminkt in de gegenereerde PDF's terechtkwam en foutmeldingen van de library verkeerde tekens toonden
- De demo's
CJKAnnotations,Annotations,HelloWorld,RtLTextOut,PageSizes,TextOut,ShowcaseenViewerPrefproduceren weer de bedoelde tekst, waar ze ook worden gecompileerd
Version 2.765.7
Fixed
- Documentinformatie die als UTF-8 wordt aangeleverd (
Title,Author,Subject,Keywords, titels van article threads enSetLoadedDocumentInfomet deSetLoadedTitle-familie) wordt nu als Unicode opgeslagen, waardoor viewers geaccentueerde en CJK-tekst correct tonen en de documentinformatie overeenkomt met de XMP-metadata - Tekst in de systeemcodepagina (bijvoorbeeld een Chinese titel op een Chinese Windows) wordt ook correct opgeslagen, omdat bytes die geen geldige UTF-8 vormen in die codepagina worden gelezen
Version 2.765.6
Fixed
- De oorspronkelijke weergave van nieuwe documenten (
InitialZoom) schrijft nu volledige fit-width- en fit-height-bestemmingen; de operand die ISO 32000-1 Tabel 151 vereist ontbrak, waardoor viewers zoals Poppler voor elk document dat met de default instelling is gemaakt een te korte destination-array meldden
Version 2.765.5
Fixed
- Page labels die niet op de eerste pagina beginnen, dekken nu ook de pagina's vóór het eerste bereik, die gewone nummers houden; de page label tree moet de eerste pagina bevatten (ISO 32000-1 12.4.2), en zonder die ingang konden viewers verkeerde labels tonen
SetLoadedPageLabelhoudt de bereiken nu in paginavolgorde en vervangt een bereik dat op dezelfde pagina begint, zodat viewers de bedoelde labels tonen; voorheen werden nieuwe bereiken ongeordend achteraan toegevoegd en konden ze dubbel voorkomenSetLoadedPageLabelgooit de bestaande labels van documenten die die in een apart object bewaren niet langer weg, en hij werkt ook label trees bij die in meerdere knooppunten zijn gesplitst- Page label-prefixes die als UTF-8 worden aangeleverd, worden nu als Unicode opgeslagen
Version 2.765.4
Fixed
- Linkbeschrijvingen die als UTF-8 worden aangeleverd (
AddURILink,AddGoToLink,AddGoToRLink,AddLaunchLink,AddNamedDestinationLinken de structure-destination-links) worden nu als Unicode geschreven, waardoor screen readers en viewers geaccentueerde en CJK-tekst tonen in plaats van verminkte tekens - Hetzelfde geldt voor de tekst en de auteur van annotaties die met de
AddLoaded...Annotation-methoden aan geladen documenten worden toegevoegd, gelijk aan annotaties die in nieuwe documenten worden gemaakt
Version 2.765.3
Fixed
AddGoToLinkkan nu linken naar een pagina die later in een nieuw document wordt toegevoegd, zodat een inhoudsopgave op de eerste pagina vooruit kan linken; zulke links werden voorheen zonder enige foutmelding weggegooid- Een link waarvan de doelpagina nooit wordt toegevoegd, behoudt zijn gebied maar geen action, in plaats van naar een ontbrekende pagina te verwijzen
Version 2.765.2
Fixed
SetLoadedOutlineOpenopent en sluit bladwijzers in geladen documenten nu echt; voorheen schreef hij een sleutel die viewers negeren en behield de bladwijzer zijn statusAddLoadedOutline,SetLoadedOutlineURIenSetLoadedOutlineDestinationwerken nu op de aangevraagde bladwijzer; bij elke index boven 0 veranderden ze de verkeerde bladwijzer of deden ze niets- Het toevoegen van een bladwijzer aan een geladen document werkt nu de tellingen van zichtbare items bij van zijn ouder, zijn voorouders en de outline, zodat viewers geen verkeerde uitklapstatussen of itemtotalen meer tonen
- Een weblink op een geladen bladwijzer zetten verwijdert nu zijn paginabestemming, en een bestemming zetten verwijdert zijn action, omdat een bladwijzer slechts één van beide kan dragen
- Bladwijzertitels die als UTF-8 aan
AddLoadedOutlineenSetLoadedOutlineTitleworden meegegeven, worden nu als Unicode opgeslagen in plaats van als verminkte bytes
Version 2.765.1
Fixed
- Bladwijzers in nieuwe documenten leggen nu vast hoeveel ingangen zichtbaar zijn, zoals ISO 32000-1 12.3.3 vereist: voorheen telden de outline en elke open bladwijzer alle geneste ingangen, ook die binnen gesloten bladwijzers
Openedop een bladwijzer zetten nadat zijn kinderen zijn toegevoegd, opent hem nu in de viewer; voorheen bereikte de wijziging het bestand nooitTitleaan een bestaande bladwijzer toewijzen verandert nu de titel die het document toont- Bladwijzertitels met niet-ASCII-tekst die als UTF-8 worden aangeleverd, worden nu als Unicode geschreven, zodat geaccentueerde en CJK-titels correct verschijnen in plaats van als verminkte tekens
- Bladwijzers dragen nu de ouderverwijzing die de specificatie vereist
Version 2.765.0
Added
HPDFTokenizeContentStreamAppendtokenizeert een content stream rechtstreeks in een bestaande token-array, zodat aanroepers die meerdere streams combineren geen tijdelijke array per stream nodig hebben
Changed
- Het compileren van een pagina voor rendering wijst niet langer per getal en operator in de content stream geheugen toe, en de pagina-inhoud wordt rechtstreeks in de display list van de pagina getokeniseerd in plaats van daarheen gekopieerd te worden
- Parallelle paginarendering schaalt veel beter op een koud document: op een vector-testdocument van 128 pagina's zijn 4 workers nu ongeveer 3 tot 3,5 keer sneller klaar dan 1 worker (voorheen ongeveer 1,4 keer in 32-bit- en 1,7 keer in 64-bit-builds)
- Enkeldraads compileren en renderen van pagina's is op dat document ook ongeveer 35% sneller; tokens, display lists en gerenderde output zijn onveranderd
Version 2.764.7
Changed
- Het renderen van content die de graphics state vaak opslaat en herstelt (
q/Q) wijst niet langer per opslagactie geheugen toe, waardoor workerthreads van parallelle paginarendering in de geheugenbeheerder op elkaar moesten wachten - Koud parallel renderen van het vector-testdocument van 128 pagina's is met 4 workers ongeveer 7–10% sneller en met één worker ongeveer 5% sneller; de gerenderde output is onveranderd
Version 2.764.6
Fixed
- Parallelle paginarendering valt niet langer terug op één pagina tegelijk wanneer de pagina's al eerder zijn gerenderd en hun display lists nog in de cache staan
- Voorheen hield elke pagina die op een tekening wachtte zijn geheugenreservering vast terwijl er maar één pagina tegelijk werd getekend, waardoor de andere workers op het gedeelde geheugenbudget bleven hangen; zodra er evenveel pagina's wachten als er workers zijn, worden ze nu parallel getekend
- De eerste pagina komt nog steeds vroeg, en het geheugen dat een batch reserveert blijft nu evenredig met het aantal workers in plaats van het hele budget te vullen
Version 2.764.5
Fixed
SetStructureClassMapEntrykan één attribute dictionary nu onder meerdere klassenamen registreren, of opnieuw onder dezelfde naam, zonder het vrij te geven- Voorheen gaf het verwijderen of vervangen van één van die ingangen het gedeelde woordenboek vrij, waardoor de resterende
/ClassMap-ingangen naar vrijgegeven geheugen wezen en het opslaan van het document rommel kon wegschrijven of een access violation kon veroorzaken - Een direct aangemaakt attribute dictionary wordt bij registratie nu een indirect object, en elke
/ClassMap-ingang verwijst ernaar; het document is eigenaar van het woordenboek, dus aanroepers mogen het niet vrijgeven
Version 2.764.4
Fixed
RemoveUnusedLoadedPageResourcesschrijft niet langer in een resourcetabel nadat hij die heeft verwijderd, wanneer de/Font-,/XObject- of andere resourcetabel van een pagina direct binnen/Resourcesstaat en elke ingang erin ongebruikt is- Voorheen ging die schrijfactie naar vrijgegeven geheugen, wat meestal onopgemerkt bleef maar later in de sessie het geheugen kon beschadigen of een access violation kon veroorzaken
- Geleegde resourcetabellen worden nog steeds uit
/Resourcesverwijderd, en de opgeslagen output is onveranderd
Version 2.764.3
Fixed
- Het openen van een met een public key (certificaat) versleutelde PDF met
PubSecKeyMaterial, viaLoadFromFileofBeginIncrementalUpdate, leest de recipient-envelopes niet langer uit geheugen dat al was vrijgegeven tijdens het herstellen van de bestandssleutel - De fout hing af van hoe het geheugen toevallig werd hergebruikt: het document ging meestal open, maar kon worden geweigerd alsof er geen key material was toegewezen, of de verkeerde bytes unwrappen
- Documenten met meerdere recipients, de callback voor het kiezen van de recipient en extra key materials die met
AddPubSecKeyMaterialzijn geregistreerd, gebruiken allemaal dezelfde gecorrigeerde enveloplijst
Version 2.764.2
Fixed
- Veld-appearances die voor geladen formulieren worden gegenereerd, door
AddLoadedTextFielden de andereAddLoaded*-veldmethoden,EnsureLoadedFieldAppearanceStreamofFlattenFormFields, hebben nu een eigen verwijzing naar het/DR-font van het AcroForm in plaats van het/DR-item te delen - Het vervangen of verwijderen van het AcroForm-
/DR-woordenboek, of het verwijderen van het laatste formulierveld (waarbij ook het AcroForm verdwijnt), laat die appearances niet langer naar vrijgegeven fontobjecten wijzen - Eerder kon het daarna vrijgeven van het document een verborgen access violation treffen waardoor de rest van het document niet werd vrijgegeven of het geheugen beschadigd raakte, het vaakst in 64-bit-builds
- Een font dat direct in
/DRwordt geschreven, wordt een indirect object zodra een appearance het voor het eerst gebruikt, zodat de veld-appearance en/DRin het opgeslagen bestand naar hetzelfde fontobject verwijzen
Version 2.764.1
Fixed
- Het aanroepen van
ProcessObjectStreamsForDecompressionnaLoadFromFileleest niet langer de bestandsstroom die het laden al had gesloten; in plaats daarvan wordt het geladen bestand opnieuw gescand, zodat de leden van object streams beschikbaar blijven voorExtractObjectFromStream - De fout hing af van de toevallige geheugenindeling: hij viel meestal niet op, maar kon een access violation veroorzaken of niet-gerelateerd geheugen scannen, het vaakst in 64-bit-builds
FindAllObjectStreams,ScanAndLoadReferencedObjectsenForceLoadMissingReferencedObjectsdoen nu niets wanneer ze buiten een laadactie worden aangeroepen, in plaats van de gesloten stroom aan te raken
Version 2.764.0
Changed
- Eén
THotPDF-instantie, bijvoorbeeld een component die op een formulier is geplaatst, kan nu een willekeurig aantal documenten na elkaar schrijven:BeginDocnaEndDocstart een nieuw, onafhankelijk document in plaats van een exception te genereren EndDocverwijdert alles wat voor het geschreven document is geregistreerd, waaronder zijn afbeeldingen, fonts, formuliervelden, outlines, document-JavaScript, named destinations, page labels, ICC-profielen en output intents, en de volgendeBeginDocgeeft zijn pagina's en objecten vrij, zodat niets daarvan in het volgende bestand terechtkomt; metReproducibleOutputaan is een tweede document van een hergebruikte instantie byte voor byte identiek aan dat document vanuit een nieuwe instantie- Registraties die tussen
EndDocen de volgendeBeginDocworden gedaan, zoalsAddPDFAOutputIntentof scripts die viaNamesworden toegevoegd, horen bij het volgende document en worden niet langer doorBeginDocgewist - Property-instellingen zoals
FileName,Compression,PDFACompliance,AuthorenTitle, samen met paginalagen en font-fallback-ketens, worden naar het volgende document overgenomen; een PDF-versie die voor één document automatisch is verhoogd, keert terug naar de waarde van de propertyVersion - Het geschreven document blijft na
EndDocbeschikbaar tot de volgendeBeginDoc, zodatValidatePDFUA2Structure,CurrentPageNumber,PagesCounten de lay-outdiagnostiek er blijven werken - Omdat de wachtwoorden worden gewist zodra een beveiligd document is versleuteld, genereert
BeginDoceen exception wanneerActivateProtectionnog aanstaat en er geen nieuw wachtwoord is ingesteld, in plaats van het volgende bestand met lege wachtwoorden te beveiligen - Ook het starten van een nieuw document na het herschrijven van een geladen document op dezelfde instantie levert een schoon bestand op
Version 2.763.1
Fixed
- Bij het converteren van een EPUB of het importeren van HTML met het HTML5-profiel bestaat geen risico meer op een access violation wanneer een alinea niet op de huidige pagina past; de alinea wordt nu altijd op de nieuwe pagina getekend
- Dezelfde oplossing geldt voor alinea's, lijstitems en horizontale lijnen in de compacte block-renderer die
HPDFRenderHTMLDocumentgebruikt - De fout hing af van de toevallige geheugenindeling, dus deze verscheen slechts af en toe, het vaakst in 64-bit-builds, en kon een conversie zonder output achterlaten of de inhoud corrupt maken
Version 2.762.1
Fixed
BeginDocopnieuw aanroepen op eenTHotPDF-instantie die al een nieuw document heeft geschreven eindigt niet meer in een access violation; er wordt een exception gegenereerd die om een nieuwe instantie vraagt, omdat de instantie nog de objecten, afbeeldingen, fonts en formuliervelden van het voltooide document bevat- Zelfs afgezien van de crash zou het tweede document de objecten van het eerste hebben meegedragen, inclusief diens inhoud en formuliervelden; één instantie per nieuw document houdt elk bestand bij zijn eigen inhoud
- Een bestaand document met
LoadFromFileladen en daarna herschrijven blijft onveranderd werken
Version 2.762.0
Fixed
- Tekst-, free text-, lijn-, vierkant-, cirkel-, stempel- en file-attachment-annotaties zijn zichtbaar in PDF/A-2-, PDF/A-3-, PDF/A-4- en PDF/X-6-documenten; ze hadden een lege appearance stream die alleen de validator tevreden hield, en omdat viewers de appearance tekenen, werd er niets getoond
- Deze appearances tekenen nu de annotatie: de vierkant- en cirkelkaders, de lijn, een notitiepictogram en een bijlagepictogram in de annotatiekleur, het stempelkader en het free-text-vak gevuld met zijn achtergrondkleur
- PDF 2.0-output geeft elk van deze annotaties, de extended markup-annotaties en nieuwe formuliervelden een appearance stream, zoals ISO 32000-2 Tabel 166 vereist, en schrijft
/NeedAppearances false; buiten PDF/A en PDF/X worden de free text en de stempelnaam in Helvetica getekend - In PDF/A en PDF/X tekenen de free-text- en stempelappearances geen tekst, omdat elk daar gebruikte font ingebed moet zijn; de tekst blijft in de annotatie staan zodat viewers die kunnen tonen
Version 2.761.6
Fixed
- File-attachment-annotaties (
AddFileAttachmentAnnotation) zijn weer te openen en op te slaan in viewers: de file specification schreef de embedded file stream zelf als/EF, terwijl ISO 32000-1 Tabel 44 een/EF-woordenboek vereist dat de stream onder/Fbevat, waardoor readers meldden dat de bestandsingang ontbrak - De embedded file stream van zo'n bijlage krijgt het type
/EmbeddedFile, en de annotatietekst wordt bovendien opgeslagen als de beschrijving van het bestand
Version 2.761.5
Fixed
- Named destinations, document-level JavaScript en documentbijlagen worden geschreven met hun name tree-sleutels in gesorteerde volgorde, zoals ISO 32000-1 7.9.6 vereist; ze werden in registratievolgorde geschreven, en readers die in de boom zoeken konden ingangen missen (qpdf meldde de bomen als ongesorteerd)
- Het bijvoegen van twee bestanden met dezelfde bestandsnaam maakt niet langer twee ingangen met één sleutel aan, waardoor slechts één bijlage bereikbaar bleef; de tweede krijgt een genummerde sleutel zoals
a (2).txten behoudt zijn oorspronkelijke bestandsnaam - Wijzigingen van
AddLoadedDocumentJavaScriptenAddLoadedNamedDestinationworden opgeslagen; de bewerkte name tree werd niet teruggeschreven wanneer deze in een direct woordenboek stond, waardoor de nieuwe ingangen verloren gingen. Beide voegen op de gesorteerde positie in, ook in bomen die in/Kids-knooppunten zijn gesplitst, en vervangen een bestaande ingang van dezelfde naam AddLoadedDocumentJavaScriptslaat een JavaScript-action op als name tree-waarde in plaats van een kale scriptstream, enAddLoadedNamedDestinationschrijft de zoom-operand van zijn/XYZ-destinationRemoveLoadedJavaScriptenRemoveLoadedJavaScriptAllverwijderen de scripts uit het document zelf; voorheen veranderde alleen de lijst die de getters teruggeven en bleven de scripts in het opgeslagen bestand staanSetDocumentAttachmentMetadatahernoemt de bijlage die hij meekrijgt; hij hernoemde de sleutel van de laatste bijlage in de boom, en de hernoemde ingang verplaatst zich nu naar zijn gesorteerde positie
Version 2.761.4
Fixed
- Nieuwe AcroForms definiëren altijd het Helvetica-font dat de default appearance-strings van de velden noemen in de default resources van het formulier (
/DR), zoals ISO 32000-1 12.7.3.3 vereist; zonderAutoFormAppearancesontbrak het font, zodat viewers die veldappearances opbouwen geen font hadden om dat mee te doen AddLoadedComboBoxmaakt een echte combo box; hij zette de Edit-vlag in plaats van de Combo-vlag, waardoor het veld een list box was die viewers als een lijst van alle opties toonden- Velden die aan een geladen document worden toegevoegd schrijven
/NeedAppearancesals de booleantruein plaats van de naam/true, en een voor hen aangemaakte AcroForm krijgt de default appearance-string en default resources waarnaar hun/DA-strings verwijzen AddLoadedTextField,AddLoadedCheckBox,AddLoadedComboBox,AddLoadedListBoxenAddLoadedPushButtongeven het nieuwe veld een appearance stream, zodat het zichtbaar is in viewers die geen appearances opbouwen en in documenten waarvan het formulier/NeedAppearances falsezet- Appearances die voor geladen push buttons worden gegenereerd (bij toevoegen, hertekenen of flattenen) tekenen de caption, waar ze leeg waren
Version 2.761.3
Fixed
- Het wijzigen van de waarde van een tekst- of keuzeveld in een geladen formulier tekent het veld nu opnieuw:
SetFormFieldValue,ResetLoadedFormFielden updates van multi-selection-list boxes regenereren de appearance stream, terwijl het opgeslagen bestand eerder in elke viewer en bij het printen de oude tekst bleef tonen, omdat viewers de appearance tekenen, niet de opgeslagen waarde - Gegenereerde appearances van password-tekstvelden tonen één asterisk per teken in plaats van het wachtwoord in leesbare vorm (ISO 32000-1 Tabel 228), zowel voor nieuwe velden met
AutoFormAppearancesals voor geladen velden die worden hertekend of geflatteerd AnalyzeLoadedSignatureRevisionsclassificeert het nieuwe appearance-woordenboek, de appearance stream en zijn resources die een formulierinvulling na het ondertekenen toevoegt als formuliervulling, zoals het al voor het veld zelf deed, waardoor het invullen van een gecertificeerd formulier in een incrementele update niet langer wordt gemeld als een wijziging buiten herkende structuren
Version 2.761.2
Fixed
- 1-bit- en 4-bit-palettebitmaps die met Flate-compressie worden toegevoegd, behouden hun kleuren; voorheen werden ze afgebeeld op het 256-kleuren-systeempalet, waardoor elke kleur die dat palet niet bevat verschoof. Ze worden nu ingebed op hun eigen bitdiepte met hun eigen palet, wat ook de afbeeldingsdata kleiner maakt
- 1-bit-bitmaps waarvan het palet wit vóór zwart vermeldt, komen bij CCITT Group 3, CCITT Group 4 of JBIG2-compressie niet langer als negatief uit de bus, inclusief de batch- en cross-page-JBIG2-paden; de donkerste paletkleur wordt altijd als zwart gecodeerd
icAutoMonoenAddMonochromeImageAutolaten een 1-bit-bitmap met een gekleurd palet op Flate staan in plaats van er met CCITT of JBIG2 zwart-wit van te maken- CCITT Group 3-tweedimensionale afbeeldingen (
icCCITT32) volgen nu hun/K-parameter: de eerste rij en elke tweede rij worden ééndimensionaal gecodeerd en/Kis 2, waar voorheen elke rij tweedimensionaal werd gecodeerd onder/K 1, wat helemaal geen tweedimensionale rijen toestaat (ISO 32000-1 Tabel 11, ITU-T T.4)
Version 2.761.1
Fixed
- JPEG-afbeeldingen die met DCT-compressie worden toegevoegd, behouden hun eigen kleurmodel: grijswaarden-JPEG's worden weggeschreven als
DeviceGrayen CMYK-JPEG's alsDeviceCMYK, waar voorheen elke JPEG alsDeviceRGBwerd aangeduid; readers toonden toen grijswaardenbestanden verminkt of afgekap en CMYK-bestanden in verkeerde kleuren - CMYK-JPEG's met de Adobe-marker (de gebruikelijke Photoshop-output) krijgen de geïnverteerde
/Decode-array die hun samplewaarden nodig hebben (ISO 32000-1 8.9.5.2 en 7.4.8) - PDF/A-kleuruimtecontroles zien grijswaarden- en CMYK-JPEG-afbeeldingen nu als DeviceGray- en DeviceCMYK-gebruik in plaats van DeviceRGB
StampLoadedPageImagepast hetzelfde kleurmodel toe wanneer een JPEG op een geladen pagina wordt gestempeld- Bestandsnamen als
PHOTO.JPGofscan.jpegworden nu bij elk compressietype als JPEG geladen; de file-overload vanAddImageherkent JPEG-data aan zijn signature in plaats van aan een hoofdlettergevoelige.jpg-extensie en probeert zulke bestanden niet langer als bitmap te lezen
Version 2.761.0
Added
- De nieuwe methode
AddLoadedSignedSignatureFieldvoegt aan een geladen document een handtekeningveld toe dat klaar is om te ondertekenen, zodat een al ondertekende PDF via een incremental update een tweede handtekening kan ontvangen (counter-signature of goedkeuring) - Het veld reserveert de handtekenruimte die
SignPDFWithPFX,PreparePDFForSigningenInsertSignatureHexinvullen; naBeginIncrementalUpdateenSaveIncrementalUpdatedekt de nieuwe handtekening het hele bestand terwijl eerdere handtekeningen geldig blijven - Optionele reden, locatie- en contactinformatie, de SubFilter en de gereserveerde handtekeninggrootte zijn per veld in te stellen; het AcroForm wordt gemarkeerd als signed en append-only, en het ondertekende document krijgt geen vlag voor appearance-regeneratie
Fixed
- De gedocumenteerde multi-signature-workflow voor
BeginIncrementalUpdatebeschrijft nu stappen die werken; de oude beschrijving ging uit van een huidige pagina die na het laden niet bestaat en van een handtekeningveld zonder gereserveerde handtekenruimte, waardoor ondertekenen mislukte
Version 2.760.1
Fixed
DrawQRCode,DrawDataMatrix,DrawPDF417enDrawAztecherstellen na het tekenen de vulkleur van de pagina, zoals gedocumenteerd; vormen die daarna gevuld werden, namen voorheen de kleur van de barcode over- Deze barcodes worden als één pad getekend, waarbij elke reeks donkere modules op een rij wordt samengevoegd tot één rechthoek, zodat de pagina-inhoud kleiner is en viewers geen flauwe naden meer tonen tussen aangrenzende modules
Version 2.760.0
Changed
CryptKeyLengthopaes256zetten tilt de output naar PDF 1.7 wanneer die lager is, zoals andere versieafhankelijke features dat al doen, zodat documenten echt met AES-256 worden beveiligd. Bij de standaard PDF 1.6-output werden ze voorheen zonder enige melding met AES-128 weggeschreven; metStrictVersionLockaan valt een lagere versie nog steeds terug op AES-128
Fixed
- De helppagina's bij de protection-eigenschappen toonden permission-namen die niet bestaan; de voorbeelden en de beschrijvingen van
prPrintenprPrint12bitsluiten nu aan op de werkelijke opties, en de public-key-encryptienotities noemen de ondersteunde key-types
Version 2.759.0
Fixed
- Ondertekende PDF's houden nu de hele
/Contents-string, inclusief de<- en>-scheidingstekens, buiten de ondertekende byte ranges, zoals ISO/IEC 32000-1 12.8.3.3 voorschrijft; voorheen werden de scheidingstekens mee ondertekend, wat validators die de byte range tegen de handtekeningwaarde toetsen als een ongeldige byte range rapporteren - PDF MAC-validatie van handtekeningen met een bijgevoegde MAC accepteert zowel de standaard byte range als de byte range die eerdere versies schreven
Security
- Handtekeningverificatie wijst een document af waarvan de niet-ondertekende tussenruimte tussen de twee byte ranges iets anders bevat dan de
/Contents-string van de handtekening zelf. Daarmee is een signature-wrapping-gat gedicht waarbij inhoud buiten de ondertekende bytes als gedekt werd gemeld; handtekeningen uit eerdere versies verifiëren nog steeds
Version 2.758.1
Fixed
- De default appearance die
AttachSignatureFieldAppearanceaan een niet-ondertekend handtekeningveld meegeeft, tekent zijn lichtgrijze achtergrond weer: de vulrechthoek miste twee operanden en zette zijn kleur binnen het pad, wat viewers afwijzen - Free-text-annotaties die op een nieuwe pagina worden aangemaakt, dragen de default appearance-string die ISO 32000-1 vereist, zodat viewers de tekst zelf kunnen indelen in plaats van een leeg kader te tonen
Version 2.758.0
Fixed
- De ingebouwde JBIG2-decoder plaatst elk symbool na de eerste op de plaats waar ISO/IEC 14492 het neerzet; elk volgende symbool kwam voorheen telkens één pixel verder naar rechts terecht, waardoor tekst in JBIG2-scans van andere encoders uit elkaar dreef
- JBIG2-afbeeldingen die met de native arithmetic encoder en een symboolwoordenboek met slechts één glyph zijn weggeschreven, kunnen nu door andere PDF-viewers gelezen worden; de symbol identifiers waren gecodeerd met één bit in plaats van met geen, waardoor die viewers op de eerste glyph stukliepen
- Symboolwoordenboeken die glyphs via refinement en aggregation combineren, worden nu met de standaardspatiëring gedecodeerd, net als bij andere JBIG2-decoders
- JBIG2-afbeeldingen die een globaal symboolwoordenboek delen, schrijven
/DecodeParmsals array die past bij de/Filter-array; andere viewers negeerden het losse woordenboek en konden de gedeelde glyphs niet vinden, waardoor zulke afbeeldingen niet werden weergegeven
Version 2.757.0
Fixed
DirectDrawBarcodeen deSimple*-balkfuncties tekenen nu echte barcodes voor elke symbologie; de meesten gaven voorheen afwisselend even brede balken terug zonder enige data. GS1-128 met code set C (type 22) wordt getekend in plaats van terug te vallen op Code 39, en de korte balken van POSTNET worden op 40 % van de hoogte getekendDirectDrawBarcodeschaalt balkbreedtes en -hoogtes mee met het coördinatensysteem van de pagina, zodat barcodes leesbaar blijven wanneer de documentschaal niet één punt per eenheid is- Code 128, Code 93 en de EAN / UPC-familie houden exacte elementbreedtes van één tot vier modules aan, ongeacht de ingestelde
Ratio; elke andere ratio dan 2 maakte ze voorheen onleesbaar - EAN-8, EAN-13, UPC-A en UPC-E die alleen hun datacijfers krijgen aangeleverd, krijgen het controlecijfer automatisch toegevoegd; voorheen diende het laatste datacijfer als controlecijfer. Met
Checksumaan verliest UPC-A zijn laatste datacijfer niet meer, en het UPC-E-controlecijfer (dat ook de balkpariteit bepaalt) wordt berekend uit het uitgeklapte UPC-A-nummer - MSI-controlecijfers kloppen nu voor getallen met een oneven aantal cijfers, POSTNET-codes krijgen hun correctiecijfer, en Interleaved 2 of 5 behoudt het laatste cijfer van een oneven lang getal door een voorloopnul toe te voegen
- Code 128 A codeert kleine letters via SHIFT in plaats van ze in spaties of controlekarakters te veranderen, Code 39 vouwt kleine letters naar hoofdletters, en Codabar behoudt opgegeven start- en stopkarakters
- Karakters die een symbologie niet kan weergeven, veroorzaken nu een exception; Code 39 en Code 128 lieten ze voorheen vallen of vervingen ze, en Codabar las voorbij zijn karaktertabel
- GS1-128 met
Checksumaan plakt niet langer elke keer een extra controlecijfer achterTextaan wanneer de barcode wordt opgemeten of getekend
Version 2.756.0
Fixed
- QR-codes getekend met
DrawQRCodeof gebouwd metTHPDFQRCodescannen nu met standaardreaders: de format-informatie staat op de plaats die ISO/IEC 18004 voorschrijft, en de blokstructuur van de errorcorrectie klopt voor elke versie van 10 tot 40 (en voor versie 7-Q) - Automatische modusselectie houdt tekst met kleine letters in byte-modus, zodat een URL als
https://example.comniet langer in hoofdletters wordt gecodeerd en teruggelezen - Tekst waarvan de lengte op één of twee cijfers of op één alfanumeriek teken eindigt, krijgt een symbool dat groot genoeg is; voorheen vielen de laatste karakters weg
- Twee keer encoderen met dezelfde
THPDFQRCode-instantie mengt het vorige symbool niet langer door het nieuwe EncodegeeftFalseterug wanneer een expliciet gevraagde versie te klein is of de gevraagde numeric- of alphanumeric-modus de data niet kwijt kan, in plaats van een afgekap symbool te produceren- Maskerselectie past de penalty-regels voor finder-achtige patronen en de balans van donkere modules toe, conform ISO/IEC 18004 7.8.3
- De ingebouwde barcodedecoder leest standaard QR-codes: multi-blok-symbolen met Reed-Solomon-verificatie, numeric-, alphanumeric-, byte- en ECI-segmenten, UTF-8-payloads en versies met meerdere alignment-patronen
Added
HPDFQRFunctionMapenHPDFQRExtractDataWordsgeven code die QR-symbolen leest toegang tot de module-indeling en de block-de-interleaving met foutdetectie
Version 2.755.9
Changed
- Rendering van afbeeldings-softmasks hergebruikt exacte horizontale sample-indices en gebruikt SSE2-alfapremultiplicatie op ondersteunde Delphi x86- en x64-doelen, met behoud van pixelafronding en annuleerbaarheid via begrensde tijdelijke opslag en een scalaire fallback
Version 2.755.8
Fixed
- Voorgrondrendering kan hervatten zodra geannuleerd pagina-prefetch de documentresources heeft vrijgegeven, zonder te wachten tot de workerthread klaar is met afsluiten; expliciete annulering, vervanging, herladen en destructie joinen de thread nog steeds, en ongeldige paginabereiken lekken geen geschorste worker meer
Version 2.755.7
Fixed
- Paginarendering behoudt het huidige pad over graphics-state-restores heen en isoleert Form XObject- en Type3-glyphpaden, clipping en opgeslagen status, inclusief misvormde extra restores en annulering
Version 2.755.6
Fixed
- De SIMD-rectanglerenderaar eerbiedigt nu samengestelde even-odd- en nonzero-fill-regels, en behoudt gaten, gespiegelde subpadrichting en fractionele randplaatsing; annulering tijdens rasterisering gooit de gedeeltelijke bitmap weg en propageert correct
Version 2.755.5
Fixed
- Imports van multi-select-formulieren reserveren nu exacte optiewaarden voordat hexadecimale compatibiliteitspellingen in XFDF worden geïnterpreteerd, waardoor letterlijke waarden niet langer een andere optie selecteren en opgeslagen waarden consistent blijven met selectie-indexen
Version 2.755.4
Fixed
- Tekstextractie uit verticale (WMode 1) CID-tekst beweegt de pen nu met de ISO 32000-1 9.4.4-verschuiving, zodat tekenafstand de stap door de kolom verkort zoals de specificatie definieert in plaats van deze te verlengen
- Een
TJ-positieaanpassing in verticale tekst beweegt de pen nu naar beneden of boven in de kolom in plaats van zijwaarts, zodat geëxtraheerde kolommen niet langer splitsen en de leesvolgorde van boven naar beneden blijft - De
/DW2-array van het CIDFont wordt tijdens extractie in de gespecificeerde volgorde[v1y w1y]gelezen, zodat glyphen die op de standaardwaarden vertrouwen een volle em opschuiven in plaats van 0,88 em - De oorsprongen van geëxtraheerde verticale glyphen blijven op de middenlijn van de kolom, en glyph-kaders worden geplaatst op de verticale oorsprong minus de positievector, waarbij de horizontale component standaard de halve glyphbreedte is
/W2-lijstitems die verschillende opeenvolgende CIDs beschrijven, passen hun meetwaarden tijdens extractie nu toe op elke CID in de reeks in plaats van alleen op de eerste- De paginarenderaar en de tekstextractie-interpreter delen nu één implementatie van de glyph- en
TJ-verschuivingsregels, zodat weergegeven en geëxtraheerde posities niet kunnen uiteenlopen
Version 2.755.3
Added
THPDFQCStatementInfokrijgtHasPSD2Statement,PSD2RolesOfPSP,PSD2NCANameenPSD2NCAId; de descriptor op CMS-niveau draagt dezelfde veldenHPDFParsePSD2QcStatementparseert een PSD2-verklaring die u al als DER in handen heeft en wijst elke misvormde invoer af
Deprecated
PSD2RolesPayerenPSD2RolesPayeeblijven bestaan voor broncompatibiliteit maar zijn altijd leeg, omdat de specificatie geen betaler- en ontvangerrollenlijsten definieert; gebruikPSD2RolesOfPSP
Fixed
- De PSD2-verklaring van gekwalificeerde certificaten wordt nu gelezen met zijn ETSI TS 119 495-structuur en meldt elke rol van de betaaldienstverlener met rol-OID en rollenaam, de naam van de nationale bevoegde autoriteit en de identificator van de autoriteit; echte PSD2-certificaten meldden voorheen helemaal geen rollen
- Een misvormde PSD2-verklaring, waaronder overschrijdende of niet-minimale lengtes, ontbrekende of overtollige componenten, verkeerde tekenreekstypen en namen die geen geldige UTF-8 zijn, wordt nu als geheel genegeerd in plaats van gedeeltelijk gemeld te worden
Version 2.755.2
Fixed
- Het paginarenderen van verticale (WMode 1) tekst schuift elke glyph nu op met de tekstruimteverschuiving ISO 32000-1 9.4.4: woordafstand wordt niet langer geschaald met de lettergrootte en wordt niet langer opgeteld bij tweabyte CID-codes, omdat hij alleen op de code van de single-byte spatie van toepassing is
- Tekenafstand in verticale tekst wordt nu precies langs de schrijfrichting toegepast zoals de specificatie dat definieert, zodat kolommen die met een niet-nul
Tczijn gezet even hoog worden weergegeven als in andere conformerende viewers - Onzichtbare tekst (rendermodus 3 en verborgen optionele inhoud) schuift verticale kolommen op volgens dezelfde regels als geschilderde tekst, waardoor latere zichtbare glyphen op de juiste plaats blijven
- De
/DW2-array van het CIDFont wordt gelezen in de gespecificeerde volgorde[v1y w1y], zodat lettertypen die op de standaardwaarden vertrouwen een volle em opschuiven in plaats van 0,88 em - Verticale glyphen worden geschilderd op de verticale oorsprong minus hun positievector, waarbij de horizontale component standaard de halve glyphbreedte is, waardoor kolommen rond de penpositie worden gecentreerd
/W2-lijstitems die verschillende opeenvolgende CIDs beschrijven, passen hun meetwaarden nu toe op elke CID in de reeks in plaats van alleen op de eerste
Version 2.755.1
Fixed
- ExportLoadedFormToFDF genereert nu de volledige FDF-body voordat het doelbestand wordt aangemaakt, zodat een mislukking halverwege de export de bestemming niet langer vervangt door een afgebroken document
- De FDF-stream-uitwisselscanner volgt hexadecimale strings, zodat veldwoordenboeken intact blijven wanneer een hexadecimale waarde direct tegen de woordenboekafsluiter eindigt
- De gelijktrekking van keuze-selectieindices decodeert gemengde PDFDocEncoding-, UTF-16- en hexadecimale spellingen met één matcher, zodat equivalente exportwaarden /I consistent opbouwen
- XFDF-import accepteert de hexadecimale spelling van een optie-exportwaarde die als gewone letterlijke tekst wordt aangeleverd, waardoor round trips van tools van derden weer werken
- FDF-export slaat velden zonder veldnaam die alleen een widget bevatten over, in lijn met de XFDF-exporter en het gedrag van elke importer
- De Delphi Stamp-demo verankert zijn watermerk- en stempelannotatie aan de werkelijke paginagrootte, zodat ze zichtbaar blijven op liggende en niet-A4-invoer
- De C++Builder DigiPrint-demo geeft zijn afbeeldingen en regellijsten per pagina vrij, initialiseert de regelafstandfactor van de koptekst en meldt een ontbrekende demo.xml in plaats van te crashen
- De buildscripts van de Win64 ABI-DLL en de codec-workers vinden dcc64 in bin64 op RAD Studio 12 en nieuwer, en volledige C++Builder-librarybuilds detecteren en verwijderen trial-restanten uit de gedeelde uitvoermap
Version 2.755.0
Added
- Geladen keuzevelden met meervoudige selectie wisselen nu individuele geselecteerde waarden uit via de FDF-bestands- en stream-API's en XFDF-callbacks die arrays begrijpen, waarbij optiegrenzen behouden blijven en selectieindices bij import worden gesynchroniseerd
Version 2.754.6
Fixed
SetLoadedFormFieldExportValuegebruikt nu het normale pad voor het bijwerken van veldwaarden, waarbij buttonwaardetypes, selectieindices, weergavestatussen, gecodeerde strings en het bijhouden van berekeningwijzigingen behouden blijven
Version 2.754.5
Fixed
- XFDF-formulierwaarden en annotatietekstelementen behouden nu hun exacte inhoud zonder opmaakwitruimte toe te voegen, inclusief voorloop- en volgspaties, tabs en regeleinden
Version 2.754.4
Fixed
- Helpers voor geladen formulierwaarden, standaardwaarden en maximumlengte honoreren nu overgeërfde en indirecte entries, terwijl veldresets standaardwaardetypes behouden, keuzeselecties en buttonstatussen synchroniseren en zustervelden onaangetast laten; opnieuw gegenereerde buttonweergaven behouden de geselecteerde status en geldige renderinggrenzen
Version 2.754.3
Fixed
- Geladen benoemde kindvelden blijven nu afzonderlijk adresseerbaar wanneer hun veldtype wordt overgeërfd, met overgeëfd type, vlaggen en opties beschikbaar via de veldhelpers, en verwijderen laat zustervelden en hun widgets intact
Version 2.754.2
Fixed
- Opnieuw gegenereerde weergaven van geladen keuzevelden tonen nu Unicode-optielabels terwijl exportwaarden behouden blijven, renderen niet-geselecteerde lijstopties en markeren enkele of meervoudige selecties consistent met de veldwaarden en indices
Version 2.754.1
Fixed
- Het bijwerken van een geladen keuzeveld houdt de indices van geselecteerde opties nu consistent met de nieuwe waarde, inclusief optie-exportwaarden en bewerkbare entries buiten de optielijst, zonder gedeelde selectiearrays te wijzigen
Version 2.754.0
Added
- Optionele fabrieksfuncties HPDFCreateTesseractOCREngine en HPDFCreateRapidOCREngine verbinden lokale herkenningsprogramma's en door de aanroeper aangeleverde modellen met doorzoekbare tekstlagen, met Unicode-tekst, woordcoördinaten, time-outs, annulering en uitvoerbudgetten
Fixed
- Tekstmatrix-advances, indirecte CID-lettertypebreedtes, herstel van q/Q- en Form-clipping, reduced-JPEG-oriëntatie, afbeeldings-softmasks en Indexed-streampaletten gecorrigeerd, zodat tekstlay-out en afbeeldingsinhoud op getroffen pagina's weer kloppen
- Kleine ingebedde TrueType-gevulde glyphs gebruiken nu lokale coverage-antialiasing om dunne streken bij lage DPI te verbeteren; geannuleerde OCR-verzoeken worden als annulering gemeld, zelfs wanneer de herkenningsengine een fout teruggeeft
- RenderOutputDither werkt nu over renderingbackends en parallelle paginarendering heen, met consistente cacheinvalidatie en annulering
Version 2.753.0
Added
- SetLoadedFreeTextPlainText converteert ondersteunde geladen FreeText-annotaties expliciet naar ASCII Helvetica platte tekst en bouwt hun zichtbare weergave opnieuw op voor volledige herschrijvingen en incrementele opslaanbewerkingen
Fixed
- Paginaconversie en opslaanvalidatie van geladen documenten resolveert nu indirecte en overgeërfde paginaboxen, waardoor gedeelde pagina-afmetingen behouden blijven in plaats van vervangen te worden door A4
Version 2.752.5
Fixed
- Initialisatie van paginabitmaps controleert nu annulering tijdens het wissen van begrensde blokken, geeft onafgemaakte bitmaps vrij en voorkomt dat voorgrondrendering wordt opgehouden terwijl geannuleerde prefetch-initialisatie afloopt
Version 2.752.4
Fixed
- Het sluiten of herladen van een document geeft nu zijn eigen PDF-objectgrafen en streampayloads vrij, inclusief gedeeld en cyclisch eigendom, zonder gekoppelde verwijzingen tweemaal vrij te geven
Version 2.752.3
Fixed
- Waardewijzigingen van geladen checkboxen synchroniseren nu de weergavestatussen, zelfs wanneer het normale weergavewoordenboek alleen de geselecteerde status bevat
Version 2.752.2
Fixed
- Het inschakelen van reproduceerbare uitvoer na documentconstructie fixt nu de aanmaaktijd, zodat equivalente opslaanbewerkingen byte-identiek blijven over kloktikken heen
Version 2.752.1
Fixed
- Namen van geladen formuliervelden decoderen PDF-strings nu consistent, zodat velden met UTF-16-namen gevonden en bijgewerkt kunnen worden zonder hun identiteit te veranderen
Version 2.752.0
Fixed
- Het verplaatsen van een geladen niet-widgetannotatie behoudt nu de annotatie-objectidentiteit en werkt zijn optionele paginareferentie bij naar de doelpagina
Version 2.751.0
Fixed
- Het verwijderen van geladen pagina's onderhoudt nu benoemde bestemmingen, outline-bestemmingen, structuurbomen, ouderbomen en annotatie-objectverwijzingen, waardoor bereikbare null-verwijzingen verdwijnen in zowel volledige herschrijvingen als incrementele opslaanbewerkingen
Version 2.750.0
Fixed
- Volledige PDF-herschrijvingen vouwen ongelezen gecomprimeerde objecten nu uit voordat object-stream-containers worden vervangen, waardoor lettertypen, kleurruimten en ActualText behouden blijven terwijl rare Chinese tekens, gewijzigde paginaweergave en gewijzigde extractietekst worden verholpen
- Versleutelde documenten met een leeg gebruikerswachtwoord worden nu direct geladen en beginnen met herschrijven, terwijl vergrendelde objectstromen duidelijk falen in plaats van een onvolledig document op te leveren
- Ongewijzigde numerieke objecten behouden hun bronprecisie, waardoor subtiel kleur- en transparantieverloop na een herschrijving wordt voorkomen
- Gekopieerde pagina's behouden hun gevalideerde resourcenamen en verwijzingen, wat fouten met indirecte resourcewoordenboeken en verkeerd gebonden afbeeldingen verhelpt
Version 2.748.6
Fixed
- Opgelost dat een cross-reference-subsectie die meer items declareert dan de tabel bevat de hele aangegeven hoeveelheid doorliep zonder dat er nog data te lezen viel, waardoor het afwijzen van een malformeerd bestand van veertig bytes tientallen seconden duurde
- Opgelost dat de job runner alle al geproduceerde resultaten verloor wanneer een operatie een exception gooide, en dat HTML-import een afbeeldingsobject verloor wanneer de stream eromheen niet aangemaakt kon worden
Version 2.748.5
Fixed
- Opgelost dat PKCS#12-bestanden met een niet-ASCII-wachtwoord niet openden: het wachtwoord is een UTF-8-bytestring, maar werd per byte verbreed in plaats van gedecodeerd, dus de afgeleide sleutel was voor elk teken buiten ASCII verkeerd. Bestanden die met het moderne PBES2-schema waren beveiligd waren niet getroffen, en daarom gedroegen de twee zich anders
- Opgelost dat de signature-batchvalidator en de revocation-evidencecache een access violation gooiden in plaats van hun eigen fout wanneer ze met een ongeldige optie geconstrueerd werden, omdat de destructor draaide voordat de leden die hij vrijgeeft waren aangemaakt
- Opgelost dat de evidence-downloadtaak in zijn destructor faalde wanneer zijn argumenten werden afgewezen, omdat de controles draaiden voordat de thread zelf was aangemaakt
- Opgelost dat de cloud-signature-provider een algoritme-identifier encodeerde waarvan de tweede boog meer dan 39 is; een malformeerde identifier gooit nu de eigen fout van de provider in plaats van een conversiefout
- Certificaat- en signature-containers wijzen nu een genest element af dat een lengte declareert die voorbij het element reikt dat het bevat, dus wat gevalideerd wordt en wat door de signature gedekt wordt kunnen niet langer uiteenlopen
- Private-key-waarden worden na het RSA-ondertekenen uit het geheugen gewist in plaats van op de heap te blijven liggen voor de volgende allocatie
Version 2.748.4
Fixed
- Opgelost dat het laden van Type 1-lettertypen elke eigenschap uit de eerste regel van het lettertypeprogramma las: de tokenlijst werd bijgevuld zonder geleegd te worden, dus de versie-, familie- en gewichtstrings, de stem hints en de charstring-sleutellengte kwamen uit verouderde tokens. Type 1-lettertypen rapporteren nu hun eigen metadata
- Opgelost dat de charstring-sleutellengte als pointer naar een al vrijgegeven string werd bewaard en zonder rangecontrole werd gebruikt; hij wordt nu als waarde opgeslagen en geklemd tot het bereik dat het formaat toestaat
- Opgelost dat niet-ingebakken lettertypen altijd terugvielen op het standaard-systeemlettertype: de gevraagde facenaam werd byte voor byte gekopieerd naar het wide-char-lettertyperecord, dus geen enkele geïnstalleerde familie kwam ooit overeen
- Opgelost dat het parsen van ingebakken TrueType en OpenType voorbij het einde van een afgekapt lettertypeprogramma las tijdens het decoderen van glyph-outlines, composite-glyph-argumenten en de CFF-tabel van een OpenType-container, en een malformeerde character map vraagt niet langer om een negatieve glyph-array
- Opgelost dat gedeclareerde objectnummers in cross-reference-tabellen en streams overliepen: een item dat een nummer nabij de integerlimiet claimde werd een negatieve index en buiten de tabel weggeschreven, en een gedeclareerd objectaantal of
/Sizedat veel groter was dan het bestand kon bevatten, mat de arrays van de loader op basis van alleen die claim
Version 2.748.3
Fixed
- Opgelost dat Data Matrix geldige invoer afwees: de symboolgrootte werd geschat door het aantal cijfers te halveren, maar alleen aangrenzende cijfers delen een codewoord, dus tekst zoals
1a2a3akoos een symbool dat te klein was voor zijn eigen data en faalde bij het encoderen - Opgelost dat vierbyte-UTF-8-tekens in XFDF, zoals emoji, naar de verkeerde surrogate pair decodeerden, en een onherkend byte slikt niet langer de drie erop volgende tekens in
- Region-records van enhanced-metafiles begrenzen hun rechthoekenaantal nu op basis van de recordgrootte in plaats van te vertrouwen op het aantal in de region-header, dat ver voorbij het record kon lezen
- PNG-afbeeldingen waarvan de gedeclareerde breedte maal hoogte het adresseerbare bereik overschrijdt worden al op de header afgewezen in plaats van een pixelbuffer met negatieve lengte toe te wijzen
- Resampling van afbeeldingen in hoge kwaliteit meldt nu een buiten-bereik-verzoek in plaats van de grootte van zijn tussenbuffer te laten overlopen
- Een WebP-meta-prefix-afbeelding die meer entropy-groepen claimt dan ze pixels heeft wordt afgewezen in plaats van honderden megabytes aan prefix-tabellen toe te wijzen vanuit een paar honderd byte invoer
- Leaks op de faalpaden van Aztec-encoding, WebP-bitmapdecoding en de worker pool voor object-stream-decoding zijn opgelost, waar een half gebouwd object achtergelaten werd toen een latere stap een exception gooide
Version 2.748.2
Fixed
- Opgelost dat QR Code-symbolen de laatste codewoordbits lieten vallen: de plaatsingsronde van modules sloeg de meest linkse kolom over, dus de staart van het laatste foutcorrectieblok werd nooit in het symbool geschreven
- Opgelost dat de QR-terminator de hele rest van het datablok met nulbits vulde, zodat er geen ruimte overbleef voor de 0xEC / 0x11-padcodewoorden die ISO/IEC 18004 vereist; een versie-1-symbool droeg in plaats daarvan zes nulcodewoorden
- Een nieuwe test leest het gegenereerde symbool terug uit zijn modules, dus het datablok, de padcodewoorden, het foutcorrectieblok, het masker en de plaatsing worden allemaal tegen de standaard gecontroleerd in plaats van tegen de output van de encoder zelf
Version 2.748.1
Fixed
- Opgelost dat drie parsers hingen op malformeerde invoer in plaats van die te melden: de objectparser op een
>>in een array of een]in een dictionary, de CMap-lezer op een los haakje of accolade, en de XFDF-lezer op een constructie zonder tagnaam (een document type declaration bijvoorbeeld) of een los byte tussen attributen. Elk van hen stopte met zijn cursor voort te bewegen, dus één onverwacht byte maakte van het parsen een eindloze lus - Opgelost dat CDATA-secties in XFDF als markup werden gelezen: hun inhoud wordt nu als elementtekst genomen, en de sectiemarker wordt correct gemeten in plaats van het eerste teken in te slikken
- Opgelost dat een WebP-chunklengte nabij 2 GB de groottecontrole liet overlopen, waardoor de payload-kopie voorbij het einde van de bestandsbuffer las; chunklengtes worden nu in 64-bit-rekenkunde op bereik gecontroleerd
- Opgelost dat een PNG-chunklengte van 0xFFFFFFFF de chunkbuffer vrijgaf terwijl de chunk nog zijn gedeclareerde lengte meldde, waardoor latere lezen naar vrijgegeven geheugen wezen; te lange chunks worden afgewezen
- Opgelost dat CCITT-faxdecoding zijn rijbuffergrootteberekening liet overlopen voor zeer grote gedeclareerde pagina-geometrieën, wat voorbij de buffer kon schrijven; de rijopslag is nu begrensd en het decoderen stopt netjes op de limiet
- Opgelost dat de CCITT-encoder één byte voorbij het einde van een scanlijn las voor breedtes die een veelvoud van acht zijn
- Opgelost dat comment-records van enhanced-metafiles via een tot 32 bit afgekapt pointer werden gelezen op 64-bit-builds, wat voor elke EMF met een GDI-comment een ongerelateerd adres las
- Opgelost dat 8-bit-afbeeldingen met minder dan 256 paletitems ongeïnitialiseerd geheugen als staart van hun kleurentabel publiceerden; de tabel declareert nu zijn echte itemaantal
- Opgelost dat diep geneste BER-structuren met onbepaalde lengte de stack uitputten tijdens het parsen van een signature- of certificaatcontainer; nesting voorbij 128 niveaus wordt afgewezen
Version 2.748.0
Fixed
- Opgelost dat de foutcorrectie van elke 2D-barcode die de library tekent verkeerd was: QR Code, Data Matrix, PDF417 en Aztec bouwden hun generatorpolynoom vanaf de constante term omhoog maar deelden erdoor alsof de leading term eerst kwam, dus elk symbool droeg checkwords die geen enkele conforme reader accepteert. De checkwords komen nu overeen met de uitgewerkte voorbeelden uit ISO/IEC 18004, ISO/IEC 16022 en ISO/IEC 15438
- Opgelost dat Aztec-symbolen hun payload verloren: de encoder deelt de codewoordarray in place en de aanroeper emit dezelfde array, dus de berichtwoorden werden door de deling overschreven en het symbool droeg noch de data noch een geldige mode message
- Opgelost dat het generatorpolynoom van Data Matrix zijn wortels één macht te laag liet beginnen, waardoor een ander polynoom ontstond dan ISO/IEC 16022 Bijlage E voorschrijft
- Opgelost het finder pattern van Data Matrix: de dichte L is nu de linkerkolom en de onderste rij, en het afwisselende klokspoor is de bovenste rij en de rechterkolom, elk beginnend donker in de hoek die het met de L deelt. De twee stonden verwisseld, dus readers konden de oriëntatie van het symbool niet vaststellen
Version 2.747.4
Fixed
- Opgelost dat bewerken van geladen documenten PDF-getallen wegschreef met de decimaalscheiding van het systeem: page stitching, rectangle redaction, tekst- en afbeeldingsstempels, samengestelde watermerkvormen en ellips-appearances geven nu altijd een punt terug, dus documenten die op een decimaalkomma-locale zijn bewerkt (bijvoorbeeld Duitse of Franse Windows) bevatten geen content streams meer die viewers afwijzen
- Opgelost dat het laden van Type 1-lettertypen van de systeemlocale afhing: FontMatrix, BlueValues, stem hints en charstring-reële getallen worden nu geparseerd als PostScript-getallen met een punt, dus PFB-lettertypen behouden hun metrics en outlines op decimaalkomma-systemen in plaats van stilletjes uit elkaar te vallen
- Opgelost dat het parsen van lettertypegrootte en kleur in de default-appearance (
/DA), de HTML-width- ensize-attributen, FormCalc-resultaten en job-JSON-getallen de process-locale volgden; ze gebruiken nu in alle richtingen het invariant-formaat - Opgelost dat het ingebouwde barcode-tekenen zijn balkrectangles via een locale-afhankelijk formaat wegschreef, wat een ongeldige content stream opleverde op een decimaalkomma-systeem
- Free Pascal-builds parsen en formatteren content-stream-operanden, text-extraction-metrics en JavaScript-getallen nu met het invariant-formaat, gelijk aan de Delphi-builds, in plaats van terug te vallen op de locale-afhankelijke conversie
- De number writer herschrijft de decimaalscheiding van de globale formaatinstellingen van de hosting-applicatie niet meer bij elke aanroep — dat veranderde hoe de rest van het programma zijn eigen getallen formatteerde en was onveilig wanneer meerdere threads tegelijk documenten produceerden
Version 2.747.3
Fixed
- Opgelost dat bewerkingen verdwenen op gecomprimeerde pagina's: rectangle-redaction, page stitching, samengestelde watermerkvormen en annotatie-flattening voegden hun operators toe aan een nog steeds gecomprimeerde pagina-inhoudsstream, waardoor de redactiebalk, de samengeplakte pagina, de watermerkvorm of de gebakken annotatie stilletjes ontbrak in het opgeslagen bestand. De pagina-inhoud wordt nu uitgevouwen voordat er iets wordt toegevoegd
- Opgelost dat toegevoegde inhoud samensmolt met de laatste operator die al op de pagina stond wanneer die pagina niet op witruimte eindigde, wat een onleesbaar token zoals
Q0.5opleverde en een viewer de hele pagina kon laten afwijzen; waar nodig wordt nu een regeleinde ingevoegd
Version 2.747.2
Added
- Free Pascal Win32-ondersteuning toegevoegd: het Lazarus-package bouwt nu voor zowel
i386-win32alsx86_64-win64via eigen build-entry points, de smoke suites accepteren een architecture-argument en de problemen met de 32-bit-compiler en het linken van C-symbolen zijn opgelost; PDF-aanmaak, laden, Flate-compressie, AES-versleuteling en CBZ-documentafhandeling zijn op beide targets gedekt
Version 2.747.1
Fixed
- De rotated-mask-retry van de ingebouwde barcodedecoder liet oude bytes achter in onaangeroerde cellen van het gedraaide masker, waardoor er fantoominkt ontstond en een kwartslag gedraaide Code 39-symbolen onleesbaar werden; de gedraaide buffer wordt nu expliciet op nul gezet, dus kwartslag-gedraaide Code 39-foto's en -scans decoderen wél via de rotatie-retry
Version 2.747.0
Added
- WebP-afbeeldingsimport toegevoegd:
AddImageFromFileaccepteert nu.webp-bestanden via een ingebouwde lossless (VP8L)-decoder die RFC 9649 implementeert — canonieke prefix codes, spatiale meta-prefixcodes, LZ77 backward references met de neighborhood distance map, de color cache en alle vier inverse transformaties (predictor, color, subtract-green, color indexing met pixel bundling); lossy VP8-frames worden met een duidelijke melding geweigerd
Version 2.746.0
Added
- De ingebouwde barcodedecoder leest QR-symbolen nu in alle acht oriëntaties waarin een gefotografeerde of gescande pagina kan binnenkomen: de finder patterns identificeren de ontbrekende hoek, en de gesamplede modulematrix wordt vóór het decoderen gedraaid of gespiegeld naar de verwachte indeling, dus kwartslag-gedraaide en gespiegelde captures worden zonder voorbewerking gelezen
Version 2.745.0
Added
- eIDAS qualified-certificate-evaluatie toegevoegd voor geladen handtekeningen: GetLoadedSignatureQCStatements rapporteert de ETSI EN 319 412-5 QCStatements van het ondertekenaarcertificaat — QcCompliance, QcSSCD, QcType-waarden, de QcLimitValue-valuta/bedrag/exponent en de PDS-locaties — plus de TS 119 495 PSD2-payer- en payee-rollen, en activeert een qualified-signature-heuristiek zodra QcCompliance en QcSSCD allebei geclaimd zijn (de QTSP-trustbeslissing blijft bij de aanroeper)
Version 2.744.0
Added
- N-up-impositie toegevoegd voor geladen documenten: ComposeLoadedPagesNUp zet elke pagina om naar rastergewijs samengestelde vellen op het bronpapierformaat (2-up, 4-up, 6-up, tot 16x16) voor drukklare output, neemt de
/Rotatevan elke pagina op in de plaatsingsmatrix, deelt de paginabronnen met de samengestelde form en tekent optioneel haarfijne celkaders met een instelbare gutter
Version 2.743.0
Added
- FlattenLoadedAnnotations bakt nu annotaties in die geen appearance stream hebben in plaats van ze stilletjes over te slaan: widgets krijgen eerst hun veldverschijning gegenereerd uit de veldwaarde (het
/NeedAppearances-geval dat vaak voorkomt in vanuit de browser geprinte formulieren), zodat de ingevulde waarde in de pagina-inhoud terechtkomt - Markup-annotaties zonder
/APkrijgen een gesynthetiseerde verschijning getekend uit hun eigen eigenschappen — FreeText- en Stamp-tekst met/DA-styling en/Q-quadding, Square- en Circle-vormen met/C//IC-kleur en/BS-breedte, Line- en Ink-strepen, en Highlight / Underline / StrikeOut / Squiggly-quad-markup die/QuadPointsen/CA-dekking respecteert - Verborgen annotaties (de
/Fhidden flag) blijven annotaties als ze geen appearance hebben, want een onzichtbare notitie inbakken zou die juist zichtbaar maken
Version 2.742.0
Fixed
- Free Pascal-package-builds faalden sinds 2.738.0: de LTV-evidence- en seed-value-memberdeclaraties stonden in een Delphi-only conditioneel blok terwijl hun implementaties onconditioneel waren, dus het Free Pascal-package compileerde niet meer; de implementaties dragen nu dezelfde conditional en het package bouwt weer
Added
- HTML-import zet tabellen nu op een volledig occupancy-grid, dus
rowspan- encolspan-cellen claimen hun kolommen correct en latere rijen slaan de geclaimde posities over in plaats van naar links te schuiven - Tabelrijhoogten komen nu uit het ombreken van de celtekst in het eigen lettertype van de cel in plaats van uit een teken-aantalschatting, dus gemengde smalle en brede inhoud produceert geen overlopende of te grote cellen meer
- Kolombreedtes volgen
<col>-breedtehints en per-cel breedteattributen, en koprijen gemarkeerd met<thead>(of voorste rijen van alleen<th>) herhalen zich bovenaan elke vervolgpagina wanneer een tabel een pagina-einde overschrijdt - Een rowspan-groep blijft heel over pagina-einden heen: de rijen die door een overspannende cel verbonden zijn, gaan samen naar de volgende pagina zodat de overspannende cel nooit wordt afgesneden
Version 2.741.0
Fixed
- Free Pascal-builds beëindigden het proces in plaats van een fout te melden wanneer een document een van de codecs nodig had die die builds niet linken: een TIFF openen, een JPEG 2000- of JBIG2-afbeelding decoderen, een progressieve of verschaalde JPEG lezen, een ICC-kleurtransformatie toepassen of Zopfli-hercompressie vragen haalde het proces ronduit neer
- Elke van die operaties faalt nu op de manier die de aanroeper al verwacht, dus een document die er een gebruikt laadt met die functie overgeslagen in plaats van de applicatie neer te halen
Added
- Structuurvolgorde-tekstextractie toegevoegd: ExtractLoadedPageStructureText loopt de documentstructuurboom af in auteursvolgorde (ISO 32000-1 14.8.4) en voegt de marked-content-runs van een pagina per MCID samen, dus getagde documenten zoals overheidsformulieren en toegankelijke publicaties extraheren hun gezaghebbende leesvolgorde in plaats van een geometrische gok; glyphs die de boom nooit claimt vallen in een geometrische staart en tellen mee in het untagged-rapport
Version 2.740.0
Fixed
- Kleurglyphs verloren hun transparantie in Free Pascal-builds: ingebedde kleurbitmaps werden gelezen via een pad dat het alpha-kanaal weggooit, dus elke emoji- of kleurfontglyph werd als een dekkende rechthoek getekend. De bitmaps behouden nu hun per-pixel alpha
Fixed
- P-384 ECDH key agreement ingeschakeld: de laatste conditionele subtractie van de CIOS Montgomery-vermenigvuldiging vergeleek met P-limb plus borrow, wat omwrapt naar nul bij de all-ones high limbs van de P-384 / P-521-priemgetallen en stilletjes misborrowde; de vergelijking detecteert de borrow nu zonder de overlopende optelling en het P-384 gedeelde geheim matcht OpenSSL-referencevectoren byte voor byte
Version 2.739.0
Added
- Free Pascal-builds versleutelen en ontsleutelen nu documenten: de AES-entry points worden bediend door de eigen FIPS-197-implementatie van de library in plaats van een unsupported-operation-fout, dus AES-128- en AES-256-beschermde bestanden kunnen daar worden aangemaakt en geopend
- AES-GCM-versleuteling en -ontsleuteling, inclusief de streaming context voor grote payloads, is beschikbaar in Free Pascal-builds
- De Free Pascal-smoketest controleert de cipher nu tegen het FIPS-197 known answer, oefent PKCS#7- en GCM-roundtrips en maakt een AES-256-beschermd document aan en herlaadt het, inclusief wachtwoordweigering
Added
- CSS2.1-paragraftypografie toegevoegd aan de HTML5-importengine: text-align (met legacy align-attribuut en center-tag-mapping), letter-spacing en word-spacing via de PDF Tc / word-space-operatoren, text-indent voor eerste-regel-inspringingen en text-decoration underline / line-through-regels, dus bestaande web- en e-mail-HTML-imports behouden hun gecentreerde koppen, inspringingen en onderstrepingen
- De ingebouwde QR-decoder gaat nu verder dan versie 1: de symboolversie volgt nu uit de finder-geometrie via grid-deelbaarheid (versies 2-40 met een strak modulegrid decoderen), de byte-mode-lengtecap volgt de ISO/IEC 18004 Table 7-capaciteit per versie, en de function-module-map dekt alignment patterns en versie-informatieblokken af voor grotere symbolen
Version 2.738.0
Added
- Free Pascal-builds comprimeren en decomprimeren documenten nu native: de deflate-codec wordt geleverd door een ingebouwde backend bovenop de Pascal-zlib-implementatie die met Free Pascal meekomt, dus FlateDecode-inhoud meldt geen unsupported-operation-fout meer
- Gecomprimeerde documenten kunnen onder Free Pascal worden aangemaakt en herladen met de standaardcompressie-instelling, en cross-reference streams, object streams, ingebedde bestanden en gecomprimeerde pagina-inhoud decoderen daar allemaal
- De backend dekt de zlib- en raw-deflate-wrappers, de gzip-wrapper en automatische headerdetectie, dus SVG-imports en de multi-window-size-decompressiefallback gedragen zich zoals onder Delphi
- De Free Pascal-smoketest verifieert de codec nu via een wrapper- en checksum-zelftest plus een gecomprimeerde documentroundtrip
Added
- AIA caIssuers-ketenafmaking toegevoegd: HPDFFetchAIAIntermediates loopt de access-method 1.3.6.1.5.5.7.48.2-endpoints van een CMS-certificaatset af via het transport van de aanroeper (kale DER- en PEM-bodies decoderen allebei), en de FetchMissingIntermediates-validatieoptie voedt de opgehaalde intermediates in de path building, dus handtekeningen van cloud-ondertekenaars met alleen een end-entity-certificaat valideren in plaats van op path building te struikelen
- LTV-activering in één aanroep toegevoegd: PopulatePAdESLTVEvidence loopt elke geladen handtekening af, haalt zijn intermediates plus OCSP/CRL-evidence online op en schrijft het materiaal in de document-DSS, waarmee een vers B-B-handtekeningdocument naar B-LT gaat zonder met de hand in elkaar gezette evidence-arrays
- Seed-value-afdwinging voor ondertekenen toegevoegd: CheckLoadedSignatureSeedValue leest een handtekeningveld /SV-dictionary en toetst een kandidaat-SubFilter, DigestMethod, Reason en DocMDP-profiel aan zijn constraints met de force-bit-semantiek van ISO 32000-1 12.7.5.5, dus form-author-constraints worden gerespecteerd voordat er een handtekening wordt gezet
Version 2.737.0
Added
- Strieke opslagverificatie toegevoegd via de VerifySavedOutput-property: na het schrijven herlaadt een verse reader-instantie met cross-reference-recovery uitgeschakeld het bestand, dus corrupte serialisatie gaat op de aanroepplek af in plaats van bij de volgende consument op te duiken
- ReproducibleOutput uitgebreid naar versleutelde documenten: AES-CBC-streams gebruiken de statische 14*(1+i)-IV-conventie, sleutelmateriaal en salts worden deterministisch afgeleid en de canonieke document-ID normaliseert vluchtige Info-tijdstempels, wat byte-identieke versleutelde opslagen oplevert voor regressiepipelines
Version 2.736.0
Added
- Hoogwaardige resampling en monochrome dithering toegevoegd via een nieuwe HPDFResample-unit: separable Catmull-Rom-bicubic- en Lanczos3-kernels vervangen de GDI-stretch-semantiek voor image-downsampling via de ImageDownsampleKernel-property, en RenderOutputDither past Floyd-Steinberg error diffusion toe na paginasamenstelling, zodat print-preview-output fotografisch detail in puur zwart-wit vasthoudt
Version 2.735.2
Fixed
- De Flate-decompressiestreams gaven bij het bijvullen vanuit de bronstroom het adres van hun buffervariabele door in plaats van de buffer zelf, wat bij elke leesactie het geheugen corrumpeerde en het proces kon laten crashen; gecomprimeerde documenten laden, de inflate-streamklassen en de compressie- en decompressie-streamhelpers zijn allemaal geraakt
Version 2.735.1
Fixed
- Uitgroeibare XFA-velden zonder data source klapten bij het inbakken samen tot één regel: hun hoogte wordt nu gemeten uit de tekst die de template zelf declareert, wat precies is wat zo'n veld toont. Een veld gebonden aan lege data meet nog steeds als leeg
Version 2.735.0
Added
- Free Pascal-builds dekken nu de hele library: elke unit compileert met FPC 3.2.2 en Lazarus, waar voorheen alleen het kernpad voor aanmaken en laden dat deed
- XPS-, EPUB- en CBZ-containers kunnen onder Free Pascal worden geïmporteerd, via een ingebouwde read-only ZIP-reader die ZIP64-groottes, opgeslagen en gedeflateerde entries, CRC-verificatie en traditioneel versleutelde entries afhandelt met dezelfde password-callback als het Delphi-pad
- XFA-formulier-plattening, de FormCalc-rekenengine, de widget-runtime, de documentviewer-componenten, de Type 1-fonthandlers, HTML-import, handtekeningverificatie en de job runner compileren allemaal in Free Pascal-builds; de XFA-pakketten van een geladen document inbakken heeft daarnaast de deflate-codec nodig, die die builds niet linken
Fixed
- De 64-bit byteswapping van de PNG-helperunit gaf onjuiste waarden terug op Win64 en de unit zat daardoor helemaal niet in de build
Added
- Missing-glyph-detectie op tekentijd toegevoegd: de TrackUnresolvedGlyphs-property registreert elk codepunt dat via het actieve Unicode-gezicht als .notdef-tofu-blok zou renderen, vuurt de OnUnresolvedGlyph-event af per bevinding en laat ongeregistreerde pure-GDI-documenten met rust
- Legacy kern-tabelondersteuning toegevoegd: RegisterUnicodeTTF vangt de kern-tabel uit het Apple/GDI-tijdperk af en de kerning-emit valt terug op zijn format-0 binary pair search wanneer een lettertype geen GPOS kern lookups heeft, wat de klassieke paarafstand herstelt in lettertypes als standaard Arial
- Per-run font fallback binnen paragraaflay-out toegevoegd: WideTextOutBox splitst elke omgebroken regel nu op codepunten die het huidige lettertype niet kan mappen en tekent elke run in zijn opgeloste fallback-font, dus gemengde Latijnse, emoji- en CJK-paragrafen renderen zonder tofu wanneer fallback chains zijn geregistreerd
Version 2.734.0
Added
- RFC 3161 time-stamp-request-plumbing toegevoegd: HPDFRFC3161BuildRequest emit de DER TimeStampReq met een verse positieve INTEGER-nonce, optionele policy-OID en certReq, en HPDFRFC3161ParseResponse decodeert de PKIStatusInfo-header en pakt het token eruit, dus TSA-transport-callbacks zijn drie regels in plaats van een DER-studie
- De ISO/TS 32002-developer extension-declaratie toegevoegd (THotPDF.EnsureISO32002Extensions) die EdDSA-signature-algoritmen en de extra ECDSA-curves in PDF 2.0-documenten dekt, idempotent en version-gated zoals de 32001 SHA-3-declaratie
Version 2.733.0
Added
- Draagbare X25519- en X448 Montgomery-ladder key agreement plus P-256 / P-521 NIST-curve ECDH met CIOS Montgomery-vermenigvuldiging toegevoegd, waardoor key-agreement (KARI) public-key-ontvangers volledig in-process kunnen worden aangemaakt en uitgepakt; RFC 7748 en OpenSSL-gegenereerde referencevectoren zetten het laddergedrag vast in de regressiesuite
- HPDFUnwrapKeyAgreementRecipientEnvelope toegevoegd, samen met de AddPubSecAgreementKeyMaterial- en AddPubKeyAgreementRecipientWithSecret-entry points, dus documenten versleuteld met ECDH / X25519 / X448-ontvangers zijn te openen met de private scalar van de ontvanger en te versleutelen zonder externe ECDH-tooling
Version 2.732.0
Changed
- Opslagen routeren de serializer-output nu door een gebufferde 1 MiB-schrijfstroom, waarbij de per-token Write-aanroepen van objectheaders, dictionary-keys en xref-rijen samenvouwen tot gebatchte pushes op bestandsgebaseerde bestemmingen
- Cross-reference-stream-payloads passen PNG Up prediction toe (/DecodeParms /Predictor 12) vóór FlateDecode en vouwen free-list-gaten dicht via /Index-subsecties, wat xref-containers verkleint op elk PDF 1.5+-document en op sparse objectbereiken
- De CompressionLevel-property kiest nu ook de Flate-inspanning van de cross-reference-stream- en object-stream-containers, dus clMaximum levert kleinere structuurstromen op tijdens het opslaan
Fixed
- De /W-veldbreedtes van de cross-reference-stream passen zich nu aan het werkelijke offsetbereik aan in plaats van een vaste [1 4 2]-indeling waarvan de Cardinal-cast offsets boven 4 GiB stilletjes afkapte tot beschadigde output
Version 2.731.0
Changed
- De ingebouwde template-matching-OCR herbouwd met connected-component-glyph-extractie, grijswaarden-dekkingsscores tegen gecachte multi-font-templates, Otsu-binarisatie met een local-window-fallback, bimodale gap-woordsplitsing, per-woord baselines, speckle-noise-verwerping en een uitgebreid 62-tekensalfabet dat mixed-case ASCII-tekst herkent via line-level height clustering en case-context-voorkeur
Version 2.730.0
Added
- Win64-ondersteuning toegevoegd voor Free Pascal 3.2.2 en Lazarus 4.6, inclusief een runtime-package, reproduceerbare build-script, compatibiliteitslaag en non-GUI create-and-reload-smoketest; native statische codec-integraties blijven Delphi-only en melden een expliciete unsupported-operation-fout in Free Pascal-builds
Version 2.729.0
Added
- Een host-neutrale dynamische XFA-widget-runtime toegevoegd met Unicode-bewerking, focus- en hit testing, instance-aware binding, atomaire validatie en berekening, begrensd reflow, en een read-only geladen-document-factory die de bron-XFA bewaart
Version 2.728.0
Fixed
- XFA intrinsieke meting en tekstcontinuatie gecorrigeerd om expliciet lege en berekende waarden te behouden, de bindingscontext van elk veld of herhaalde rij te gebruiken, breakAfter-acties te behouden, synthetische naamcollisies te vermijden en een gecacht globaal metingsbudget af te dwingen
Version 2.727.0
Changed
- XFA-lay-out past nu intrinsieke minimum- en maximumafmetingen toe, meet uitgroeibare velden vanuit hun gebonden tekst en splitst in aanmerking komende textEdit-inhoud atomaire over contentgebieden en pagina's heen, met read-only vervolgvelden en begrensde tekst-, fragment- en metingsbudgetten
Version 2.726.0
Added
- Complete NChannel process- en spot-attributes, mixing hints, begrensde PDF 2.0 CxF/X-4-spectrale inktstromen en documentbrede consistentiechecks voor spot tint-definities en externe output-intent-kleurentabellen toegevoegd
Version 2.725.0
Added
- Een thread-safe deterministische SIMD-scanline-renderbackend toegevoegd die ondersteunde rectangle-display lists vooraf toetst, de uiteindelijke bitmapsurface in vectorblokken schrijft zonder tussenliggende bitmapkopie en exacte per-request weigeringsredenen teruggeeft via de bestaande software-fallback- en telemetrie-pipeline
Version 2.724.0
Changed
- De begrensde native FormCalc-evaluator uitgebreid met algemene SOM node-set-aggregaten, gemengde scalaire en node-set-argumenten, geneste numerieke en string-aanroepen en deterministische selectie-, string-, trigonometrische, logaritmische en conversiefuncties, allemaal onder de bestaande operation-, array-, depth-, time- en output-budgetten
Version 2.723.0
Changed
SubsetLoadedFontssubset nu veilig ingebedde Type 1 PFB- en gesplitste binary en hex PFA-programma's, behoudt recursieve TrueType-compositedependenties en sluit COLR v0/v1-outlinedependenties af terwijl kleur-, bitmap-, variatie- en shaping-tabellen bewaard blijven
Version 2.722.0
Added
- Begrensde password-callbacks toegevoegd voor klassieke ZIP-versleutelde XPS-, EPUB- en CBZ-entries, inclusief per-entry retry-limieten, annuleringschecks, memory-only credential-afhandeling en fail-closed weigering van onbeschikbare, ongeldige of niet-ondersteunde versleuteling
Version 2.721.0
Changed
DownsampleLoadedImagesschaalt ondersteunde 8-bit Separation- en DeviceN-beeldsamples nu direct in de componentruimte en behoudt de originele kleurruimtegrafiek, tint transform, colourants,/Decode-bereiken en overprint-semantiek over opslaan en herladen heen
Version 2.720.0
Added
- Begrensde ingebouwde recognition-overloads toegevoegd voor high-contrast hoofdletter-ASCII-OCR, horizontale Code 39 en schone asuitgelijnde QR-versie-1 byte-mode-symbolen, waardoor doorzoekbare tekstlagen en geladen-pagina-barcodedecodering mogelijk zijn zonder een engine van de aanroeper, terwijl dubbelzinnige of niet-ondersteunde invoer fail-closed gaat
Version 2.719.0
Added
- Begrensde JPEG 2000-verfijning per resolutie- en quality layer toegevoegd via
THPDFJpeg2000Decoder.LoadProgressiveFromByteArray, plus multi-layer encoding viaTJpeg2000Bitmap.QualityLayers, met identieke uiteindelijke pixels voor LRCP-, RLCP-, RPCL-, PCRL- en CPRL-progression orders
Version 2.718.0
Changed
- Complete UniJIS-, UniGB-, UniCNS- en UniKS UCS2- en UTF16 horizontale en verticale CMaps ingebed, inclusief supplementary scalars en standaard verticale defaults, dus CJK-tekstextractie en -geometrie hangen niet meer af van externe Unicode-mappingbestanden of half-em-gokjes
Version 2.717.0
Added
- Expliciete linearized shared-object-afhankelijkheidsbereiken en een range-arrival-redraw-scheduler toegevoegd, zodat pagina's kunnen tekenen voordat alle optionele afhankelijkheden binnen zijn en exact opnieuw tekenen zodra nieuw beschikbare data het resultaat verandert
Version 2.716.0
Added
- Begrensd objectgrafiekherstel toegevoegd voor actionable xref-, trailer-, catalog-, page-tree- en name-tree-preflight-bevindingen, met gevalideerde transactiecommit en complete rollback bij onveilige of dubbelzinnige invoer
Version 2.715.0
Added
- PDF 2.0 encrypted payload-wrappers toegevoegd waarbij de zichtbare documentinhoud leesbaar blijft vóór authenticatie, terwijl ingebedde bestandsnamen, beschrijvingen en bytes beschermd blijven tot een expliciete password-unlock
Version 2.714.0
Changed
- SVG-export van geladen pagina's emit nu axiale en radiale gradients, begrensde PNG-representaties van Type 4 tot en met Type 7 mesh shadings en gedecodeerde inline afbeeldingen, zonder de bijbehorende skip-counters op te hogen
Version 2.713.0
Changed
- OpenType SVG-kleurglyphs gebruiken nu de begrensde Form XObject-pipeline voor arcs, vectorgradients, dekking, geometrische maskers en lokaal
#id-hergebruik, terwijl scripts, externe resources, afbeeldingen en niet-ondersteunde actieve inhoud geweigerd blijven
Version 2.712.0
Changed
ReplaceLoadedPageTextvervangt nu matches die overTJ-string-items en -arrays lopen via glyph source spans, terwijl kerning-getallen, niet-gematchte prefixes en suffixes, ongerelateerde operanden en de oorspronkelijke content-stream-structuur bewaard blijven
Version 2.711.0
Added
- CFF FontSet
SyntheticBase-resolutie toegevoegd met overgeërfde Top- en Private-DICT-waarden, CharStrings, charset, Encoding en Local Subrs, plus deterministische override-semantiek en begrensde weigering van ongeldige, cyclische of te diep geneste overerving
Version 2.710.0
Added
- Deterministische begrensde Flate-predictorselectie toegevoegd via
HPDFSelectFlatePredictor, met gedistribueerde rij samples, geschatte bytekosten, configureerbare CPU-weging en expliciete byte-, rij- en werk-budgetten
Version 2.709.0
Added
- Opt-in native JBIG2 Huffman symbol-dictionary- en text-region-output toegevoegd via
THPDFJBIG2Options.UseHuffmanEncoding, inclusief de standaard DH-, DW-, BMSIZE-, FS-, DS- en DT-tabellen, raw collective bitmaps, symbol-ID-tabellen, deterministische native routing en pixel-exacte decoderroundtrips, terwijl de arithmetic- en MMR-defaults bewaard blijven
Version 2.708.0
Changed
- Arabische en gecombineerde presentation-form reverse cmap-mappings gecacht per geregistreerde fontgeneratie, wat de herhaalde U+FB00..U+FDFF- en U+FE70..U+FEFF-scans vervangt in
ApplyArabicGSUBRefinement,ApplyArabicGSUBContextualRefinementen het generieke contextuele GSUB-pad, terwijl codepoint-precidentie en shaped output bewaard blijven
Version 2.707.0
Added
- De Aztec 2D-barcodemencoder toegevoegd (ISO/IEC 24778) via
THPDFPage.DrawAztecen de standaloneTHPDFAztec-unit: dynamic-programming high-level encoding met mode latches, shifts en binary-shift runs, bit stuffing, Reed-Solomon error correction over GF(16) tot GF(4096), automatische compacte 15x15..27x27 of volle 19x19..143x143-symboolselectie en forced-layer-control voor vaste symboolgroottes - Verticale paginatekst-assemblage toegevoegd:
THotPDF.ExtractLoadedPageTexten de range/stream-aggregatie-API's clusteren WMode 1-glyphs nu in kolommen op de glyph-origin X, ordenen de kolommen rechts-naar-links en lopen elke kolom van boven naar beneden, in plaats van verticale CJK-tekst te versnipperen tot per-glyph regels
Fixed
- Parallelle band-export faalde met een PNG band width mismatch op pagina's met fractionele pixerafmetingen (A4 bij 96 DPI): de rastergrootte wordt nu uniform met de band-writers met
Ceilafgerond, dus geleverde tiles matchen altijd de encoderbreedte
Version 2.706.0
Added
- Streaming PNG-export van geladen pagina's en gebandeerde multi-page TIFF-export toegevoegd via
THotPDF.SaveLoadedPageToPng,SaveLoadedPageToPngStream,SaveLoadedPagesToTiffBandedenSaveLoadedPagesToTiffStreamBanded, die gecomprimeerde beeldgegevens rij voor rij wegschrijven via band-encoders zodat zeer grote pagina's geen complete framebuffer nodig hebben;THPDFBandImageExportInforapporteert pagina-, band-, rij-, worker-, geheugen-, output-, timing- en annuleringstelemetrie
Version 2.705.0
Added
- PDF/A-finalisatie toegevoegd aan de geladen-opslagpaden:
THotPDF.SaveLoadedDocumentenSaveLoadedDocumentToStreamvalideren nu deGTS_PDFA1-OutputIntent (overgeërfd uit de broncatalogus of vers geregistreerd) en zenden depdfaid:part/pdfaid:conformance-XMP-identificatie uit wanneerPDFAComplianceis gezet, terwijl een bestaand pdfaid-pakket bij heropslag byte voor byte bewaard blijft - Verwerking van verticale schrijfrichting (WMode 1) toegevoegd aan de laadkant: CIDFont
/W2- en/DW2-celmetrics sturen nu tekstextractie en paginarendering aan, lopend kolomgewijs langs de y-as van de tekstruimte met de v1x/v1y-positioneringsvector in plaats van horizontale/W-advances
Version 2.704.0
Added
- Parallelle geladen-pagina-tile- en band-rendering toegevoegd via
THotPDF.RenderLoadedPageTilesParallelenTHotPDF.RenderLoadedPageBandsParallel, met row-major callbacks op de aanroepende thread, geleende bitmaps, coöperatieve annulering, door de aanroeper beheerst in-flight geheugen, peak-memory-toelating en een begrensde immutable Type 3-glyph- en halftone-screen-cache gedeeld over geïsoleerde rendercontexten
Version 2.703.0
Added
- Begrensde CSC multisign digest-batches toegevoegd via
THPDFCSCSignatureProvider.SignHashBatch, met één hash-gepinde SAD en éénsignatures/signHash-request voor een geordende batch met hetzelfde algoritme, terwijl lokale en credentialmultisign-limieten worden afgedwongen, evenals strikte response-cardinaliteit, synchrone of asynchrone resultaatsortering, SHA-256 content-addressed idempotency-keys en completed-batch-replay
Version 2.702.0
Added
THotPDF.RenewPAdESLTATimestampuitgebreid met door de aanroeper aangeleverd certificaat-, OCSP- en CRL-evidence dat vóór het nieuwe RFC 3161-documenttijdstempel in de bestaande DSS wordt samengevoegd, elke eerdere revisie byte voor byte bewaart en validatiestromen over opeenvolgende verlengingen exact dedupliceert
Version 2.701.0
Added
- Clause-addressable PAdES-baseline- en extended-profile-preflight toegevoegd via
THotPDF.PreflightLoadedPAdES, dat elke toepasselijke eis rapporteert met stabiele rule-ID, profiel, normatief niveau, standaardenclausule, PDF-pad, objectnummer, ondertekende of huidige revisie en pass-status, terwijl CMS-cardinaliteiten, ESS-referenties van het ondertekenaarcertificaat, signature-dictionary-constraints, byte-range-dekking, trusted time, DSS-evidence en document-timestamp-dekking worden gevalideerd
Version 2.700.0
Added
- End-to-end ECDSA-, Ed25519- en Ed448 PFX / PKCS#12 private-key-loading en CMS-documentondertekening toegevoegd, inclusief named-curve CNG ECDSA, optionele OpenSSL 3 PureEdDSA, RFC 8410-key-decoding, RFC 8419-digest- en parameterregels, SHAKE256 met 512-bit output voor Ed448, automatische key-algoritmeselectie en strikte certificaat-naar-sleutel-koppeling
Version 2.699.0
Added
- Deterministische multi-identity PFX / PKCS#12-credential-selectie toegevoegd via
HPDFEnumeratePFXIdentities,HPDFParsePFXByLocalKeyIDenTHPDFCMSSignOptions.PFXLocalKeyID, inclusief strikte single-valuedlocalKeyId- enfriendlyName-bag-attributes, public-key-koppeling, recursieve safe-content-bags, begrensde ambiguïteits- en cyclusdiagnostiek en automatische matching van intermediate- en root-certificaatketen-inbedding met exacte DER-deduplicatie
Version 2.698.0
Added
- In-process PFX / PKCS#12 PBES2-decryptie uitgebreid met AES-128-CBC en AES-192-CBC plus PBKDF2 HMAC-SHA-384- en HMAC-SHA-512-PRF's, inclusief cipherspecifieke optionele
keyLength-validatie en begrensde salt-, iteratie-, IV- en padding-checks, terwijl AES-256-CBC- en HMAC-SHA-1 / SHA-256-compatibiliteit bewaard blijft
Version 2.697.0
Added
- Specificatieconforme XPS- en OpenXPS Canvas
FixedPage.NavigateUri-overerving toegevoegd, zodat afstammendePath-,Glyphs- en geneste Canvas-visuals de scoped URI ontvangen tenzij ze die zelf overschrijven, met behoud van externe, mail-, package-page- en percent-gedecodeerdeLinkTarget-acties door transformaties, geneste clips, geïsoleerde opacity-groepen en reusable-visual-onderdrukking heen, herstel na geneste overrides en de bestaande link-, URI-, annulerings- en unsafe-scheme-limieten
Version 2.696.0
Added
- Begrensde native XPS- en OpenXPS Canvas-transparency groups toegevoegd, zodat
Opacity- en effen, gradient- of afbeeldings-Canvas.OpacityMask-waarden overlappende child-visuals één keer compositeren via geïsoleerde DeviceRGB Form XObjects, met gevouwen uniforme alpha, gedeelde variable-alpha soft masks, geneste groepen, getransformeerde clips, resourcetransfer, bewaarde links en fail-closed afhandeling van misvormde, niet-ondersteunde, singuliere of te grote inhoud
Version 2.695.0
Added
- Begrensde native XPS- en OpenXPS
Canvas.Clip-conversie toegevoegd voor afgekorte geometrie, lokale of externeStaticResourcePathGeometry-waarden, directe property-elementen, gestructureerde lijn-, Bézier-, kwadratische en boog-figuren, geometrietransformaties, lege clips en genesteEvenOdd- ofNonZero-clipping via PDFW*ofW, met geclipte navigatiegrenzen, een parselimiet van 100.000 waarden en fail-closed misvormde of singuliere transformaties
Version 2.694.0
Added
- Begrensde native XPS- en OpenXPS-navigatie voor getransformeerde
Path- enGlyphs-visuals toegevoegd, die HTTP-, HTTPS- en mail-links als PDF URI-annotaties bewaart en package-relatieve pagina's plus percent-gedecodeerdeLinkTarget-fragmenten als voorwaartse of achterwaartse PDF GoTo-acties oplost zodra alle pagina's bestaan, met metric-aware klikgrenzen, limieten van 65.536 links en 8.192 tekens, VisualBrush-capture-onderdrukking, annulering en fail-closed unsafe-scheme-diagnostiek
Version 2.693.0
Added
- Begrensde native XPS- en OpenXPS
VisualBrush-conversie toegevoegd voor inline of resource-gebaseerdeCanvas-,Path- enGlyphs-visuals, hiërarchische en externeResourceDictionary-lookup, absoluteViewbox, absolute of relatieveViewport,None-,Tile- en gereflecteerde tile-modi, transformaties, dekking, herbruikbare Form XObjects, gedeelde tiling patterns, token-aware resourcetransfer en fail-closed cyclus-, misvormde-invoer-, recursie-, inhouds-, cache- en plaatsingsbudgetten
Version 2.692.0
Added
- Native XPS- en OpenXPS-package-font-inbedding toegevoegd voor TrueType- en OpenType-programma's, TTC-member-fragmenten, GUID-obfusceerde resources, directe of cmap-afgeleide glyph-ID's, one-to-many Unicode-clusters, expliciete advances en offsets, breedte-correcte RTL-origins, gedeelde font-resources, inbedding- en no-subsetting-permissies, optionele glyph subsetting, begrensde
ToUnicode-maps en amortised-linear gepositioneerde run-output zonder GDI-face-substitutie
Version 2.691.0
Added
- Begrensde OpenXPS
GlyphsIndices-lay-out toegevoegd met strikte cluster code-unit- en glyph-aantallen, expliciete hundredths-of-em advances, horizontale en verticale offsets, omgekeerde progressie bij onevenBidiLevel, effen attribuut- of property-element-vullingen, dekking, native PDFTJ-batching, gepositioneerde Unicode-cluster-fallback, bewaarde tekstextractie, fail-closed misvormde-invoer-diagnostiek en amortised-linear buffers met een plafond van 65.536 mappings
Version 2.690.0
Added
- OpenXPS
Path.OpacityMask-ondersteuning toegevoegd voor effen, variable-alpha multi-stop lineaire en elliptische radiale gradient- en gewone, getilede of gereflecteerde PNGImageBrush-maskers via gevouwen uniforme alpha, begrensde native DeviceGray-transparency groups, gedeelde shading patterns en image soft-mask streams, fail-closed afhandeling van niet-ondersteunde inhoud en de herbruikbareRegisterLuminositySoftMaskState-builder met alpha-image-resource-binding
Version 2.689.0
Added
- OpenXPS
ImageBrushTile-,FlipX-,FlipY- enFlipXY-modi toegevoegd via native PDF tiling patterns met één, twee of vier onafhankelijk geclipte plaatsingen, gedeelde image- en PNG soft-mask-resources, samengestelde fixed-page-, path- en brush-matrices en de begrensdeRegisterImageTilingPattern-API voor herbruikbare image-gebaseerde patterns
Version 2.688.0
Added
- OpenXPS
ImageBrush.Transform-ondersteuning toegevoegd voor finite zes-parameter-attribuutmatrices enMatrixTransform-property-elementen, samengevoegd na nativePath-clipping en vóór viewport-clipping en beeldplaatsing, zodat de brush kan roteren, schalen, skewen of transleren zonder de omhullende vectorgeometrie te veranderen; niet-standaardRelativeTransformen onopgeloste matrix-resources blijven expliciete diagnostiek
Version 2.687.0
Added
- Matrixgestuurde image XObject-plaatsing toegevoegd via
THPDFPage.ShowImageMatrixen uitgebreide XPS fixed-page-import met package JPEG-, PNG-, TIFF- en JPEG XRImageBrush-vullingen, absolute of bounds-relatieveViewbox- enViewport-mapping, native path- en single-viewport-clipping, beeld- en path-dekking, PNG soft-mask-alpha, DPI-bewuste 96-DPI-sizing, gedeelde decoded-resource-caching en fail-safe diagnostiek voor niet-ondersteunde tiling, transformaties, kleurconversie en image strokes
Version 2.686.0
Changed
- Herbruikbare begrensde multi-stop radiale gradient-registratie toegevoegd en de native-vector XPS path-import uitgebreid met property-element elliptische
RadialGradientBrush-waarden, Pad spread, uniforme stop-alpha, brush-dekking, relatieve of absolute center-, origin- en radius-mapping, native Type 3 PDF shading en coördinaatherstel dat de path-geometrie ongewijzigd laat
Version 2.685.0
Changed
- Geordende native-vector XPS path-import uitgebreid met quote-aware en begrensde property-element-parsing, effen en multi-stop lineaire gradient-brushes, native PDF shading patterns, brush- en stop-alpha, standaard relatief-tot-bounds of expliciet absolute gradient-coördinaten, interpolatie van buitenbereik-stops en fail-safe diagnostiek voor niet-ondersteunde transformaties, spread-modi, kleurinterpolatie, variable alpha en degenerate assen
Version 2.684.0
Changed
- Geordende native-vector XPS path-import toegevoegd met begrensde afgekorte geometrie, fill-regels, effen RGB- en ARGB-vullingen en strokes, path-dekking, strookbreedte, zes-parameter-transformaties en fail-safe diagnostiek voor niet-ondersteunde tekenfuncties
Version 2.683.0
Changed
- Actual-painted-content PDF/X-6-validatie versterkt met graphics state van shading patterns op definitietijd, nonstroking pattern ExtGState-semantiek, fail-closed soft-mask-subtype- en backdrop-checks, exacte Type 3-glyph-metrics en overgeërfde-kleur-regels, strikte combined-paint-alpha-classificatie, begrensde JPX-kleurafleiding en appearance-aware annotatiecompositing
Version 2.682.0
Added
- Producer- en verifier-ondersteuning toegevoegd voor
brainpoolP256r1-,brainpoolP384r1- enbrainpoolP512r1-ECDSA-handtekeningen, inclusief de curvespecifieke SHA-2- en SHA3-digestmatrix, fail-before-provider ondertekeningsvalidatie, strikte named-curve-certificaatparameters, parameterloze ECDSA-algoritme-identifiers, canonieke DER-handtekeningswaarden, Windows CNG named-curve-import en deterministische diagnostiek voor expliciete, trailing, onbekende of mismatchende parameters
Version 2.681.0
Changed
- Non-progressive bitmap-, direct-DC-, Form- en display-list-contentuitvoering verenigd via
HPDFInterpretContentTokensDeviceen de optionele completeIHPDFContentOperatorDevice-extensie, met één annuleringscheckpoint per operator, compile-time operator-index-caching voor display-list-replay zonder operandscan, publiekeOperatorCount-metrics, bewaarde semantic-device-compatibiliteit, gecorrigeerde"-,v- eny-operatorsemantiek en legaleEI-terminator-afhandeling zonder valse fallback-diagnostiek
Version 2.680.0
Added
- Begrensde transactionele
RepairPDFA4-overloads toegevoegd met getypeerde opties, gedetailleerde repair-rapporten, gedeelde finding-provenance, veilige PDF 2.0-header-, trailer-ID-, metadata-, Catalog- en presentatienormalisatie, namespace-bewuste PDF/A-identificatiereparatie, configureerbaar commit-beleid voor gedeeltelijke of volledige conformiteit, foutregressiedetectie, byte-exacte grafiek- en XMP-rollback en een strikte grens die pagina-inhoud, lettertypes, kleur, transparantie, afbeeldingen, graphics-operatoren en geëxtraheerde tekst met rust laat
Version 2.679.0
Added
- Actual-painted-content PDF/X-6-validatie toegevoegd met selecteerbare ISO 15930-9:2020- of resolved-errata 2025-regels, werkelijke ICC-header- en kanaalchecks, resource-bewuste traversing van content arrays, Form XObjects, tiling- en shading patterns, afbeeldingen, Type 3-glyphs, soft masks en annotatie-appearances, overprint-mode- en combined-paint-transparantiediagnostiek, stabiele rule-provenance en begrensde decoded-byte-, token-, object-, issue-, recursie- en graphics-state-werk
Version 2.678.0
Added
- Begrensde PDF/A-4-validatie verdiept met gecachte ICC-header- en componentchecks, document- en pagina-output-intent-consistentie, werkelijke painted device-colour- en transparantieanalyse over content arrays, geneste Form XObjects, afbeeldingen, image masks, shadings en annotatie-appearances heen, overgeërfde graphics state, rendering-font-inbedding, CIDFont- en CMap-relaties, strikte annotatievlaggen en appearance states, UTF-8 XMP-pakket- en namespace-validatie, logische page-tree-locaties, stabiele clause-aware diagnostiek en configureerbare decoded-byte- en content-token-plafonds
Version 2.677.0
Added
- Begrensde PDF/UA-2-validatie afgerond voor document, door mensen leesbare strings, optional content, annotaties, AcroForm, structure-destinations, outlines, ingebedde bestanden en geneste paginalabels, inclusief fysiek ParentTree-eigendom, scalaire structuurkinderen, appearance-stream-beperkingen, namespace-URI-gebaseerde XMP-eigenschappen, Unicode private-use-detectie en clause-aware diagnostiek; gestructureerde HTML-, XHTML-, XML- en JSON-export delen nu een tagged-first toegankelijk leesmodel met taal, titel, navigatie, paginalabels, veilige links, annotaties, niet-gevoelige formulierbesturingselementen, marked-content-vervangingen, artifacts, beeldalternatieven, geometrische fallback, onafhankelijke limieten, annulering en atomaire publicatie
Version 2.676.0
Added
- Begrensde minimal byte-range-planning voor elke pagina in een linearized PDF toegevoegd via
PlanProgressiveLinearizedPageRanges, met raw- en Flate-primary- of overflow-hint-decoding, interoperabele byte-aligned gecombineerde en Annex F continue split hint-indelingen, exacte bootstrap-, pagina-, shared-group- en LF- of CRLF-geprefixeerde traditionele of stream cross-reference-afhankelijkheden, legale short-read-accumulatie, een standaard planner-geheugenplafond van 256 MiB met fail-closed encoding-disambiguatie, overlap-aware samenvoeging, strikte structurele kruiscontroles, getypeerde limieten en availability-diagnostiek, en een uniform[0, /E)-pad voor de eerste pagina
Version 2.675.0
Added
- Onafhankelijke standaardconforme crypt-filter-policies toegevoegd voor strings, normale streams en ingebedde bestanden via
ConfigureCryptFilterDefaultsenSetStreamCryptFilter, inclusief password- en public-key-reserved filters,/Identity, writer-correcte password-security/EFFen leading/Crypt-pipelines, fail-closed public-key stream-specifieke ontvangersgrenzen, case-sensitive externe named-filter-loading en -inspectie,/CFM /None, V2-key-length-rapportage, mixed-policy Direct File-fallback, gesplitste object-stream-container- en member-string-policies en policy-bewarende versleutelde incrementele updates
Version 2.674.0
Added
- Credential-bewarende Standard- en public-key-versleutelde incrementele updates toegevoegd via een password-aware
BeginIncrementalUpdate-overload en toegekend ontvanger-sleutelmateriaal, met veilig bewaarde file keys of FEK's, aparte string-, stream-, metadata- en Identity crypt-filter-policies, generation-aware legacy object-key-afleiding, exacte overgeërfde/Encrypt-referenties, byte-identieke bronrevisies, oorspronkelijke user-, owner- of ontvanger-toegang en fail-closed weigering van versleutelingswijzigingen of niet-ondersteunde heterogene filters
Version 2.673.0
Security
- Begrensde JBIG2 segment-graph-validatie toegevoegd vóór full-page-, region-, native- of externe decoding en vóór global-dictionary-sharing, met geïndexeerde duplicate- en missing-reference-checks, iteratieve cyclus- en dependency-depth-detectie, afdwinging van embedded-stream pagina-associatie, weigering van verboden segmenten, long-reference- en aggregate-edge-budgetten, symbol-dictionary-allocatieguards en precieze failure-telemetrie
Version 2.672.0
Added
- PAdES E-EPES
signature-policy-identifier-generatie en strikte validatie toegevoegd met expliciete policy-OID's, bekende of ETSI onbekende hashes, SPuri-, SPUserNotice- en SPDocSpecification-qualifiers, begrensde Unicode- en collection-parsing, policy-document-hashing, primary-signer OID- en hash-pinning vóór cryptografisch werk, dedicated mismatch-statussen en complete JSON-rapportage
Version 2.671.0
Added
- Deterministische RFC 5652-containers toegevoegd met tot 256 onafhankelijke primary
SignerInfo-records viaHPDFCMSBuildMultiSignedDataenHPDFCMSMergeSignedData, inclusief whole-batch-prevalidatie vóór signer-nevengeffecten, per-ondertekenaar attributes, algoritmen, certificaten en providers, strikte definite-length-containervalidatie, DER-gesorteerde en gededupliceerde sets, onafhankelijke verificatieresultaten, single-signer-byte-compatibiliteit en neveneffectvrije aggregate placeholder-sizing
Version 2.670.0
Added
- Optionele RFC 5652
SubjectKeyIdentifier-ondertekenaaridentiteiten toegevoegd viaTHPDFCMSSignOptions.SignerIdentifier, inclusief compacte IMPLICIT SID-encoding, automatischeSignerInfo- enSignedData-versieselectie, strikte X.509-extension-extractie, provider- en placeholder-sizing-ondersteuning en fail-closed SID-, certificaat- en version-matching tijdens verificatie
Version 2.669.0
Security
- Fail-fast CMS digest-algoritme-consistentiediagnostiek toegevoegd over
SignedData.digestAlgorithms,SignerInfo, signature-mechanismeparameters en RFC 6211CMSAlgorithmProtectionheen, met dedicated verificatiestatus, validatiefoutcode, tijdstempelpropagatie, gedetailleerde issueredenen en JSON-output
Version 2.668.0
Added
- SHA3-256-, SHA3-384- en SHA3-512-generatie en -verificatie toegevoegd over detached CMS, RSA PKCS#1 v1.5, RSA-PSS en ECDSA-providercontracten, RFC 3161 content- en signature-timestamps, PAdES-LTA-verlenging, Seed Value-dictionaries en ISO 32001 PDF 2.0 developer-extension-declaraties heen, met begrensde one-pass byte-range-hashing gedeeld met matching PDF MAC-policies
Version 2.667.0
Added
THotPDF.ValidatePDFMACChaintoegevoegd met oudste-naar-nieuwste incrementele-revisievalidatie, cumulatieve klassieke of xref-stream-indexering, exacte revisie- en xref-foutlocaties, detectie van historische MAC-vervanging, stabieleKDFSalt-afdwinging, weigering van digest-sterkte-downgrade, geauthenticeerde/P- en/Perms-checks, preflight-rapportage en begrensde revisieparsing zonder tijdelijke PDF-kopieën
Version 2.666.0
Added
THotPDF.SignPDFWithPFXAndAttachedPDFMACtoegevoegd plus signature-attached validatie met directe active-trailerAuthCode, indirecteSigObjRef, complete signed-revision-dekking, raw signature-value-digest-binding, SHA-2- of SHA-3-PDF MAC-policies, one-pass ondertekenings- en MAC-range-hashing, preflight-rapportage en atomaire output-vervanging
Version 2.665.0
Fixed
THotPDF.RegisterNChannelColorSpacegecorrigeerd om de ISO 32000-2 vijfelementDeviceN-vorm uit te zenden met/Subtype /NChannelen procescomponent-metadata, de minimum-PDF-versie verhoogd naar 1.6, en luminosity soft masks lossen NChannel-paint nu op via zijn alternate space terwijl read-compatibiliteit met legacy/NChannel-family-tokens bewaard blijft
Version 2.664.0
Added
- PDF blend-mode-rendering afgerond met integer hot-path-implementaties voor Hue, Saturation, Color en Luminosity, en de full-opacity fast path gecorrigeerd zodat elke actieve separable of non-separable blend mode tegen zijn backdrop compositeert
Version 2.663.0
Security
- PKCS#12-containers worden nu geauthenticeerd voordat versleutelde safe contents worden blootgegeven, door de optionele outer
MacDatate verifiëren met begrensde PKCS#12 KDF-iteraties, SHA-1- of SHA-256-HMAC, constante-tijd digest-vergelijking en fail-closed afhandeling van verkeerd wachtwoord en manipulatie
Version 2.662.0
Added
- Drie HotPDFCLI-commando's toegevoegd:
renderrastert elke geselecteerde pagina naar<prefix>-page<N>.pngvia de geladen-pagina-bitmap-pipeline (--pages-bereik,--dpi10..2400, standaard 150),tablesextraheert getypeerde tabellen naar CSV of JSON viaExportLoadedTypedTables(--json,-obestand of console) encompareprint het JSON-vergelijkingsrapport van twee documenten viaHPDFDocCompareDocuments(--mode0..5 met page-count, page-text, object-count, rendered-image, full en structural)
Fixed
- De Win64 ICC-transformatie-pipeline produceerde all-zero output bij 8-bit batchtransformaties (
TransformBytes): de geoptimaliseerde 1D-LUT fast path binnen de Win64 lcms2-objecten geeft nullen terug terwijl de generieke resampling-pipeline correct is, dus de 8-bit transformatie bouwt nu metcmsFLAGS_NOOPTIMIZEop Win64 alleen; het 16-bit single-colour-pad en alle Win32-transformaties behouden de geoptimaliseerde fast path (batch sRGB primaries roundtripsen nu op beide platforms)
Version 2.661.0
Added
- Echte budgettered Zopfli high-ratio Flate-compressie toegevoegd na de bestaande vier-strategie zlib-baseline, met strikte no-growth-selectie, invoer-, iteratie-, blok-, output- en verstreken-tijd-limieten, gedetailleerde stream- en parallel-image-telemetrie en deterministische fixed-corpus-besparringsgates
Version 2.660.0
Added
- Deterministische XML machine-readable preflight-rapporten en ABI-geversioneerde trusted plugins toegevoegd voor feature-extractie en aangepaste validatieregels, met stabiele volgorde, policy-bundle-integratie, annuleringspropagatie, fail-closed capability-checks en eindige plugin-, finding-, feature-, string-, output- en verstreken-tijd-budgetten
Version 2.659.0
Added
- Begrensde XFA FormCalc uitgebreid met conditionele logica, herhaalde numerieke aggregaten en gevalideerde dynamic-instance-callbacks, en standaard uitgeschakelde sandboxed QuickJS-formulierscripts toegevoegd met volledige control flow, native typed arrays, geïsoleerde datatoegang, eindige instructie-, tijd-, geheugen-, stack-, waarde- en instance-operation-budgetten en execution-telemetrie
Version 2.658.0
Added
- Begrensde editable XFA-pakket-DOM's toegevoegd voor complete XDP-streams en geordende pakketarrays met local-name-padqueries, pakket- en nodemutatie, exacte untouched-byte-preservatie, per-pakket selectief herschrijven, deterministische namespace- en attribuutoutput, veilige CDATA-splitsing, entity-escaping en eindige invoer-, output-, pakket-, node-, depth-, attribuut-, tekst- en querybudgetten
Version 2.657.0
Added
- CSC API v2 remote signing toegevoegd via de bestaande CMS-provider-pipeline met application-owned transport, OAuth-token-refresh, begrensde credential-chain-discovery, expliciete authorization- en SAD-afhandeling, synchrone of asynchrone digest signing, RSA-PSS-parameters, polling, RFC 3161-tijdstempels, annulering, stabiele idempotency-keys en een eindige completed-operation-cache
Version 2.656.0
Added
- Optionele content-scored XPS-, EPUB- en CBZ-documenthandlers toegevoegd met vervangbare thread-safe registratie, één gevalideerde archiefscan, fixed-page-, spine- en natuurlijke beeldvolgorde, immutable PDF-conversiecache, gedeelde archief-, resource-, reflow-, pagina-, pixel-, DPI-, output- en annuleringsbudgetten en rollback-safe PDF-publicatie
Version 2.655.0
Added
- Begrensde typed-table-extractie en atomaire CSV- of JSON-export toegevoegd met canonieke kolommen, same-page-fragment- en consecutive-page-merging, merged-cell-spans, herhaalde headers, pagina-geometrie, confidence, provenance en locale-gestuurde integer-, number-, boolean-, date-, date-time-, currency- en percentage-inference
Version 2.654.0
Added
- Atomaire gestructureerde export van geladen pagina's naar HTML, XHTML, XML en JSON toegevoegd via één reading-order-model met blokken, styled spans, gedetecteerde tabellen, coördinaten, bronvolgorde, optionele begrensde PNG-afbeeldingen, Unicode-veilige escaping, annulering en eindige resourcebudgetten
Version 2.653.0
Added
- Atomaire geladen-pagina-kleurherschrijving naar DeviceGray, DeviceRGB of DeviceCMYK toegevoegd met doorzoekbare vectorpreservatie, verliesvrije colour-managed rasterconversie voor afbeeldingen en complexe resources, rotatieveilige output, expliciete render-fidelity- en resourcebudgetten en preserve-, process-convert- of reject-policies voor spot plates
Version 2.652.0
Added
- Review-first redactiedetectie op geladen pagina's toegevoegd met checksum-bewuste PII-patronen, pluggable detectors voor entiteiten en gezichten, bevindingen in paginaruimte met confidence-scores, begrensde work-telemetrie, verplichte reviewer-identiteit, atomische staging van goedgekeurde annotaties en een afzonderlijke expliciete burn-in-boundary
Version 2.651.0
Added
- Begrensde barcode-decoding voor geladen pagina's en regio's toegevoegd met pluggable engines, progressieve rendering op lage resolutie, fallback-scans met kwartslagen, gevalideerde tekst- en raw payloads, grenzen en oriëntatie in PDF-ruimte, confidence-filtering, overlap-deduplicatie, cancellation en resource-telemetrie
Version 2.650.0
Added
- Begrensde, annuleerbare doorzoekbare OCR-tekstlagen toegevoegd met pluggable recognition-engines, confidence- en geometrievalidatie, rotatie-uitgelichte onzichtbare Unicode-tekst, optional-content-groepering, resource-telemetrie en atomische publicatie over meerdere pagina's
Version 2.649.0
Added
- Volledige objectgraaf-roundtrips via versioned JSON toegevoegd met streaming snapshot- en incrementele exports, raw of gedecodeerde embedded en atomische sidecar-payloads, begrensde schema-compatibele import, structuur- en streamlengtevalidatie en transactionele publicatie
Version 2.648.0
Added
- Begrensde reparatie voor handmatig bewerkte QDF-diagnostiekdocumenten toegevoegd die object- en stream-bytes bewaart, directe, indirecte, ontbrekende of verouderde streamlengtes herstelt, klassieke cross-reference-offsets en trailers herbouwt, onveilige structuur afwijst en de output verifieert via de gewone loader
Version 2.647.0
Added
- Een thread-safe registry voor custom stream filters toegevoegd met begrensde push- en pull-contracten, gedeelde decode-budgetten, cooperative cancellation, expliciete seek-vereisten, geïsoleerde custom-failures en execution-telemetrie
Version 2.646.0
Added
- Begrensde content-operator visitor- en event-API's toegevoegd met read-only operand views, deterministische state callbacks, inspect-, measure-, replace-, delete-, stop- en reject-actions, cooperative cancellation, gevalideerde output en atomische geladen-pagina-updates
Version 2.645.0
Added
- Een pluggable render-backendcontract voor geladen pagina's toegevoegd met toegang tot gecompileerde display lists, native GDI-implementatie, thread-safe parallelle dispatch, deterministisch fallback-beleid, cache-invalidation en execution-telemetrie
Version 2.644.0
Added
- Begrensde layout-overlapdetectie toegevoegd, elementpaden, opt-in source mapping, native vector overflow- en overlap-overlays, live diagnostische callbacks en work-statistieken
Version 2.643.0
Added
- Native begrensde vector charts toegevoegd met line-, bar-, area-, pie- en scatter-series, automatische of handmatige assen, themes, legends, labels, PDF/UA Figure-alternatieven en render-statistieken
Version 2.642.0
Added
- Begrensde RichEdit- en RTF-paginering op de GUI-thread toegevoegd met vector-EMF-output, afbeeldingen, opt-in ondersteunde OLE-presentaties, cancellation, behoud van stream-positie en expliciete input-, teken-, pagina- en output-budgetten
Version 2.641.0
Added
- Begrensde SVG 2-import als herbruikbare PDF Form XObjects toegevoegd met native geometrie en arcs, CSS cascade, vector gradients, clip- en mask-ondersteuning, Base 14-tekst, opacity-resources, placement-aware link-annotaties en import-statistieken
Version 2.640.0
Added
- Een versioned HTML5 paged-media importprofiel toegevoegd met tolerante DOM-parsing, print-CSS cascade, gepagineerde block- en table-layout, optionele AcroForm-controls, begrensde callback-gedreven resources en statistieken per operatie
Version 2.639.0
Changed
- Grote local-file mappings passen de geconfigureerde mapped-byte-cap nu aan tussen grotere sequentiële windows en tot 16 kleinere MRU random-access windows, behouden een expliciete fixed-geometry-optie en rapporteren actieve geometrie, transitions, access-pattern-aantallen en peak mapped bytes
Version 2.638.0
Added
- Begrensde cross-page JBIG2 symbol training toegevoegd met externe en native backends, één gedeelde global dictionary, exact hergebruik van duplicate pagina's, directe PDF image-batch-insertion, backend- en size-telemetrie en gemeten 78,8 procent compressiewinst op het 100-pagina regressiecorpus
Version 2.637.0
Changed
- Parallelle rendering van geladen pagina's verlaagt nu het aantal aangevraagde workers op basis van het process-wide geheugenbudget, reserveert elke geclaimde pagina, behoudt ordered-output-reserveringen tot aan de callback-delivery, wekt budget-waiters bij cancellation of failure en rapporteert concurrency-, reservation-, admission-, delay- en wait-telemetrie
Version 2.636.0
Changed
- Prefetch van geladen pagina's compileert en rendert nu buiten de cache-lock, annuleert cooperatief via tokenization en playback, wijkt voor foreground page rendering en toont progress-, failure-, preemption- en cancellation-latency-telemetrie
Version 2.635.0
Added
- Ordered streaming parallelle paginarendering toegevoegd met calling-thread callbacks, een begrensde completed-bitmap-queue, producer-backpressure, cooperative cancellation, borrowed bitmap-lifetimes en queue-, byte-, wait-, completion- en delivery-telemetrie
Version 2.634.0
Added
- Een two-stage parallelle pipeline voor geladen pagina's toegevoegd die display lists compileert buiten de render-cache-lock, playback start voordat de volledige paginaset gecompileerd is, begrensde workers dynamisch balanceert, de inputvolgorde bewaart, content-token-allocatie vermindert en stage-, cache-, completion- en latency-telemetrie blootlegt
Version 2.633.0
Added
- Immutable reference-counted handles voor gedecodeerde bitmaps toegevoegd met copy-free cache-hits, direct thread-safe tekenen in de renderer, geïsoleerde mutabele kopieën op verzoek, eviction-onafhankelijke lifetimes en cumulatieve handle- en copy-telemetrie
Version 2.632.0
Changed
- QuickJS-executie werkt nu zowel via statische objecten als een ABI-neutrale bridge-DLL op Win32 en Win64, met Unicode-safe waarden, deterministische statusrapportage, configureerbare geheugen-, stack-, script-, tijd- en interrupt-limieten, secure DLL discovery, herstel na geweigerde scripts en reproduceerbare cross-platform runtime-builds
Version 2.631.0
Changed
- Factur-X- en ZUGFeRD-businessrule-validatie voert nu het complete gereviewde XPath 2 Schematron-oppervlak uit met externe codedatabases, sequentiële bindings, quantifiers, FLWOR-sommen, stabiele fallback rule identifiers, secure begrensde XML-parsing, expliciete evaluation-error-bevindingen, geen enkele stille skip en fail-closed gecombineerde validatie
Version 2.630.0
Added
- Ingebouwde TrueType variable-font instancing toegevoegd met mapped axes, gedeelde en private
gvar-tuples, IUP-interpolatie, simple en composite outline-updates, phantom-point-metrics,HVAR-,VVAR- enMVAR-baking, compact herbouwen van statische glyphs, checksum-correcte output en callback-vrije Unicode-lettertyperegistratie
Version 2.629.0
Added
- Side-effect-vrije CMS-placeholder-schatting toegevoegd op basis van expliciete, provider- of RSA-certificaat-signaturengroottes, exacte statische container-shaping, conservatieve dynamische payload-reserves, pre-sign-rebuilds, capability-gated provider-retries, strenge single-invocation-garanties voor externe signers, begrensde sizing en gedetailleerde attempt-diagnostiek
Version 2.628.0
Added
- Op bereikbaarheid gebaseerde subsetting toegevoegd voor lettertypes die in geladen PDF's zijn ingesloten, inclusief pagina-inhoud, geneste Form XObjects, annotatie-appearance-states, gedeelde font-programma's, TrueType- en CFF-formaten, encoded-size-selectie, stabiele CID- en ToUnicode-mappings, gedetailleerde resultaten en standaardweigering wanneer handtekeningen aanwezig zijn
Version 2.627.0
Added
- Automatische PDF/UA-structuurgeneratie toegevoegd voor declaratieve layout-bomen, inclusief headings, lijsten, tabellen, figures, taal- en alternate-text-metadata, pagination-artefacten, continuation-safe marked-content-referenties, behoud van leesvolgorde, semantische validatie en structuurstatistieken
Version 2.626.0
Added
- Een declaratieve document-DOM toegevoegd met overerfbare styles, herbruikbare component factories, text, spacers, stacks, containers, sections, herhaalde headers en footers, gewogen tabellen met herhalende header-rijen, begrensde continuation-diepte, pagination-statistieken, niet-kopiërende tekst- en table-fragmenten, lineaire top-level-traversal, directe page flushing en matchende Delphi- en C++Builder-surfaces
Version 2.625.0
Added
- Een herhaalbare statistische performance gate voor Win32 en Win64 toegevoegd die load, save, render en tekstextractie isoleert, warmups en 30 raw samples vastlegt met p50, p95, sample variance, RSS, process I/O, environment en deterministische fixture-identiteit, vervolgens stabiele JSON-drempels evalueert en een failing exit code teruggeeft bij regressie
Version 2.624.0
Changed
- Parsing van simpele dictionaries en arrays herontworpen rond immutable source spans, directe numerieke conversie, single-pass geneste containers en indexed dictionary-insertion, met publieke materialisatie-telemetrie; een Win32-fixture met 30.000 paren vermindert de allocatiebytes van de vijfpasseerbewerking met 64,7 procent en de verstreken tijd van 3.656 ms naar 46 ms
Version 2.623.0
Added
- Configureerbare parser-limieten toegevoegd voor individuele token-bytes, aggregaat-tokens, array- of dictionary-entries en malformed tokens, plus een strict untrusted-input-preset, getypeerde limietexceptions en per-load-telemetrie; regression gates wijzen een 2 MiB-token en een container met een miljoen tokens af in onder de 250 ms en onder een procespiek van 37 MiB
Version 2.622.0
Added
- Expliciete release- en telemetry-API's voor de objectgraaf van geladen pagina's toegevoegd die schone page-owned roots en render-caches weggooien terwijl indirecte gedeelde resources en reload-metadata bewaard blijven; sequentiële verwerking van 100.000 pagina's blijft op een stabiele piek van 69,3 MiB en vrijgegeven gewone of gecomprimeerde pagina's materialiseren opnieuw met hun oorspronkelijke objectidentiteit
Version 2.621.0
Changed
- Gedecodeerde object-stream-containers gebruiken nu een configureerbare byte-gecapte LRU-cache met directe eviction per container, source-backed reload na eviction, een zero-retention-modus en peak-byte-, eviction- en reload-telemetrie
Version 2.620.0
Changed
- Grote gewone paginabomen openen nu als compacte placeholders, vinden willekeurige pagina's via
/Count-gestuurde traversal en een indirect-object hash-index, cachen geresolveerde pagina's, tonen materialisatie-telemetrie en -controls en breiden automatisch uit vóór structurele mutatie- of save-operaties
Version 2.619.0
Changed
- Geladen AcroForm-velden, qualified names, widgets, annotaties en pagina's delen nu een lazy bidirectionele relationship-cache met reverse annotatie-lookup, per-widget pagina-lookup, activity-telemetrie, expliciete invalidation voor raw objectgraaf-bewerkingen en mutation-safe automatisch onderhoud
Version 2.618.0
Changed
- Page-object-lookup gebruikt nu een lazy herbouwde mutation-aware reverse index voor objectnummers en geresolveerde pagina-pointers, wat herhaalde page-table-scans vervangt bij pagina's kopiëren, outlines, named destinations, actions, formulieren, accessibility en page-tree-reconciliation, met daarbij validity- en activity-telemetrie
Version 2.617.0
Changed
- Vergelijking van gerenderde documenten ondersteunt nu door de aanroeper gekozen DPI, RGB- of luminance-kleurtolerantie, changed-pixel-ratio- en SSIM-like similarity gates, deterministisch samenhangende changed regions, optionele PNG difference overlays en fail-closed pagina- en aggregaat-pixelbudgetten met expliciete rendering-diagnostiek
Version 2.616.0
Changed
- Documentvergelijking doorloopt indirecte objectgrafen nu via deterministische catalog-based paden, hasht waarden en streams binnen expliciete resourcelimieten, lijnt pagina's uit voordat insertions, deletions, moves en changes worden geclassificeerd, onderscheidt verplaatste objecten van toevoegingen en verwijderingen en rapporteert onvolledige vergelijkingen in plaats van budgetgelimiteerde resultaten als identiek te behandelen
Version 2.615.0
Changed
- Decoding van geladen afbeeldingen gebruikt nu 16 cache-metadata-shards en exacte per-key singleflight-coördinatie, voert onafhankelijke dure decodes gelijktijdig uit terwijl duplicate requests één owner-decode houden, handhaaft de geconfigureerde byte- en entry-budgetten over alle shards en stelt cached decode entry points bloot plus concurrency-telemetrie; vier onafhankelijke JPEG-requests van 12.000 pixels schalen 3,72 keer op vier Win64-workers terwijl acht requests met dezelfde key slechts één keer decoden
Version 2.614.0
Changed
- JPEG-rendering op lage resolutie in grijswaarden en RGB kiest nu een begrensde inverse-DCT-schaal van 1/2, 1/4 of 1/8, streamt geschaalde scanlines via een fixed-point resampler rechtstreeks naar de exacte target bitmap, behoudt decode-budgetten, cancellation en codec-worker-isolatie en toont source-, scaled-, target-, scanline- en memory-telemetrie via
GetLastJPEGReducedDecodeInfo; de regressiefixture van 12.000 bij 12.000 naar 300 bij 300 draait 24,05 keer sneller dan full decode zonder de 432 MB-bronraster te alloceren
Version 2.613.0
Changed
/Contents-arrays van geladen pagina's tonen nu een lazy seekable concatenated stream, bewaren ongefilterde segmenten in source-backed storage, decoderen maximaal één gefilterd segment tegelijk, gebruiken amortised-linear token- en byte-accumulatie, behouden originele streams bij bewerking door een nieuw segment toe te voegen en houden een reeks van 1 GiB met 10.000 segmenten onder 64 MiB extra werkgeheugen
Version 2.612.0
Changed
- Incrementele updates houden het bronbestand nu write-locked en file-backed in plaats van complete source-bytes vast te houden, bezoeken en emitten alleen changed, new en deleted objects in sparse xref-subsecties, streamen de originele prefix naar een nieuwe target en voegen direct toe met rollback voor same-target saves; een revisie van 4 GiB met één object blijft binnen 128 MiB extra werkgeheugen
Version 2.611.0
Added
- Een begrensde loaded-font decoder-cache per document toegevoegd met een LRU-limiet van 32 MiB en 128 entries, singleflight parse-hergebruik over pagina's en loaded text extraction, SVG-export en tekstvervanging, onafhankelijke deep-copy-resultaten van
GetLoadedFontDecoder, configureerbaar geheugenbudget en telemetry-API's en automatische invalidation van graph-, page-, reload-, JSON Patch- en CMap-configuratie; herhaald gebruik van één gedeeld indirect lettertype parseert nu zijn encoding, widths,ToUnicode,CIDToGIDMapen descendant-mappings slechts één keer zolang het vastgehouden wordt
Version 2.610.0
Changed
- Page-import en object grafting versneld door de lineaire, exact geresize foreign-object lookup-array te vervangen door een operation-scoped power-of-two open-addressed map, keyed op source document, objectnummer en generatie; gedeelde indirecte objecten en cyclische grafen behouden hun bestaande identity-semantics over batch-imports heen, terwijl grote objectgrafen nu amortised constant-time-registratie en expected constant-time-lookup gebruiken
Version 2.609.0
Changed
- Fidelity van SVG-page-export verbeterd: directe
w-,J-,j-,M- end-graphics-state-operators behouden nu lijndikte, named cap- en join-styles, miter limits, dash arrays en dash phase;q/Qherstelt deze attributen over geneste content en Form XObjects heen; even-oddf*-,B*- enb*-paint-operators emittenfill-rule="evenodd"; PDF-hairlines met nulbreedte blijven zichtbaar via non-scaling SVG-strokes
Version 2.608.0
Added
- QuickJS static-linking-infrastructure toegevoegd:
Lib/HPDFQuickJSStatic.paslinkt de vijf QuickJS-OMF-objecten (gebouwd met bcc32c uit gepatchte sources) via{'$L'}-directives — geen DLL-dependency — en declareert het volledige C-runtime-oppervlak (47 symbolen: msvcrt C99-wiskunde, Borland 64-bit-rekenkunde, size-neutrale atomic stubs, pthread-stubs);thirdparty/QuickJS/build-static.batautomatiseert de patch-and-compile-pipeline. Bekende beperking:JS_NewRuntimeslaagt, maarJS_NewContextloopt tegen een access violation aan omdat het verwijderen van_Atomicde struct-initialisatievolgorde verandert; de DLL-build uit v2.607.0 blijft het werkende evaluatiepad
Version 2.607.0
Added
- DataMatrix 2D-barcodegeneratie toegevoegd (
Lib/HPDFDataMatrix.pas): ASCII-mode-encoding met digit-pair-compressie, Reed-Solomon ECC over GF(256) met het DataMatrix-primitive polynoom $12D, vierkante formaten van 10x10 tot 144x144, codeword-plaatsing in wisselende richting en het L-vormige finder pattern;THPDFPage.DrawDataMatrixrendert de gecodeerde matrix als een grid van gevulde module-vierkantjes - PDF417 stacked 2D-barcodegeneratie toegevoegd (
Lib/HPDFPDF417.pas): text-mode-encoding met base-30-tekenparen, Reed-Solomon ECC over GF(929) met primitief 3, symbol descriptor-encoding en row/column-layout met start/stop-patterns;THPDFPage.DrawPDF417rendert de codeword-matrix - De QuickJS JavaScript engine binding toegevoegd (
Lib/HPDFQuickJS.pasplus voorgebouwde Win32/Win64quickjs.dllonderthirdparty/QuickJS/bin/): dynamic DLL loading, runtime+context-lifecycle en het evaluation-API-oppervlak (Eval/EvalInt/EvalFloat); hetEval-codepad heeft een bekende Win32-startup-crash wanneer het in een applicatie gelinkt wordt en is gedocumenteerd voor vervolgonderzoek - Het architecturale extraction-target
THPDFWritertoegevoegd (Lib/HPDFWriter.pas): xref-entry-registry (free/used/compressed), klassieke xref-table-serialiser en trailer-dictionary-builder waaraan het THotPDF-save-pad incrementeel delegeert
Version 2.606.0
Added
- Twee HotPDFCLI-commands toegevoegd:
decryptlaadt een versleutelde PDF met het opgegeven wachtwoord, ontsleutelt het viaDecryptLoadedDocumenten bewaart een onversleutelde kopie (-ooutput-pad, default<input>-decrypted.pdf) enoptimizecomprimeert elke stream opnieuw met FlateDecode viaCompressLoadedDocument(-ooutput-pad, default<input>-optimized.pdf, weigert versleutelde input)
Version 2.605.0
Added
- QR Code 2D-barcodegeneratie toegevoegd: de nieuwe
Lib/HPDFQRCode.pasimplementeert een complete QR-encoder (numeric-, alphanumeric- en byte-encoding-modes; Reed-Solomon error correction over GF(256); versies 1-40 met alle vier de EC-levels L/M/Q/H; alle acht mask patterns met penalty-evaluatie; correcte module-plaatsing inclusief finder-, timing-, alignment-, format info- en version info-patterns). De methodeTHPDFPage.DrawQRCoderendert de gecodeerde matrix als een grid van gevulde module-vierkantjes op elke schrijfpagina (ModuleSizein punten, configureerbaar EC-level en kleur)
Version 2.604.0
Added
- Volledige MacExpertEncoding-decode-table toegevoegd: de 128-byte hoge helft mapt expert-glyphs (small capitals, old-style figures, superior/inferior cijfers, breuken, typografische symbolen) nu op het dichtstbijzijnde Unicode-codepunt of Private Use Area-surrogaat, ter vervanging van de eerdere raw-byte identity fallback die garbled output opleverde voor documenten met expert-gecodeerde Type 1-lettertypen
Version 2.603.0
Fixed
- Een langlopende flaky failure in
ConcurrentObjStmDecryptionMatchesSerialopgelost: de globalFRevisionwas verouderd nadataes256onder de standaard PDF 1.6-versie was gedegradeerd naaraes128, waardoorCreateKeysverkeerd in de V5-branch belandde die nooit de legacy/O- en/U-wachtwoordhashes vult — de geserialiseerde encryption-dictionary bevatte toen lege of verouderde wachtwoordstrings en het bestand was niet te openen. De fix leidtFRevisionnu opnieuw af uit de gedegradeerdeFCryptKeyType, zowel bij de setter als op de twee version-negotiation-plekken, en de legacy dictionary-branch geeft nu een duidelijke diagnostische melding wanneer de wachtwoordstrings niet exact 32 bytes zijn
Added
- Het HotPDFCLI-command
htmltoegevoegd: rendert een beperkt HTML-bestand (h1-h6, p, ul, ol, hr, inline markup) naar een PDF viaHPDFRenderHTMLDocument
Version 2.602.0
Added
- Block-level HTML-import toegevoegd:
THPDFHTMLImporter(en deHPDFRenderHTMLDocument-convenience-wrapper) rendert een beperkte HTML-subset op een document in wording —h1-h6-headings met per-level groottes,p-paragrafen (kale bodytekst wordt impliciete paragrafen),ul/ol-lijsten met ingesprongenli-items (bullet- of1.-nummering),hr-regels, automatische pagina-einden bij de ondermarge en browser-style herstel voor niet-geslotenp/li-blocks;head/script/style-regio's worden overgeslagen en containertags gaan transparant door. Inline markup (b/i/u/font/a/sub/sup, entities, word wrap) wordt gedelegeerd aan de bestaandeTextOutHTML-renderer, dus blocks blijven keep-together binnen een pagina; tabellen, afbeeldingen, CSS en geneste lijsten vallen buiten scope
Version 2.601.0
Added
- Drie HotPDFCLI-commands toegevoegd:
mergeplakt elke pagina van de extra inputs achter het eerste document aan en bewaart het gecombineerde bestand (-ooutput-pad, minstens twee inputs, bewaking van output/input-botsingen),splitschrijft elke geselecteerde pagina van een document naar zijn eigen single-page-bestand (<prefix>-page<N>.pdf,--pageséén-gebaseerd bereik, default-prefix uit het input-pad) enexport-svgschrijft de SVG-export van elke geselecteerde pagina (<prefix>-page<N>.svg, default pagina 1)
Version 2.600.0
Added
- SVG-page-export toegevoegd:
BuildLoadedPageSVGgeeft een standalone SVG 1.1-document terug voor elke geladen pagina enSaveLoadedPageAsSVGschrijft het naar schijf; paths (fill/stroke/fill-and-stroke paint-operators met de DeviceRGB-kleuren), text runs (per-teken gepositioneerde<text>-elementen met dezelfde font-decode-fallback-chain als tekstextractie, met inachtneming van Tf/Tc/Tw/Tz/Ts en de text matrix incl. rotatie en schaling), image XObjects (gedecodeerd en ingesloten als base64 PNG data URI's gemapt door de CTM-unit-square) en Form XObjects (recursieve interpretatie met de form-matrix en eigen /Resources) worden geëxporteerd, en /Rotate 90/180/270-pagina's worden geëxporteerd in de geroteerde canvas-geometrie - Bekende limieten overgenomen van de gedeelde content-stream device dispatcher: geen W/W*-clipping, geen
sh-shadings, geen Type 3-lettertypen, inline images rapporteren alleen metadata en ExtGState-ondersteunde stroke-parameters (LW/LC/LJ/ca/CA) worden geëerd terwijl de gewonew/J/j/d-operators niet worden gedispatcht
Version 2.599.0
Added
- De HotPDFCLI commandline-tool toegevoegd (
tools/HotPDFCLI): een console-front-end met drie commands —info(PDF-versie, aantal pagina's en grootte van de eerste pagina, encryptiemethode, linearization- en xref-structuur, annotatie-/lettertype-/afbeeldings-/formulier-/handtekening-counters, Info-metadata),extract-text(één-gebaseerde--pages-bereiken,--outfile-output,--layoutmonospaced grid-modus die de visuele leesvolgorde volgt) enverify(status per handtekeningveld, signer, reden, hash, signing time, dekking van het hele document en certificaatstatus, non-zero exit zodra een handtekening faalt);Build-HotPDFCLI.batproduceert Win32- en Win64-binaries
Version 2.598.0
Added
SetRenditionMediaPlayParameterstoegevoegd: koppelt of werkt de/Pmedia play parameters-dictionary van een media rendition bij met must-honour/MH- of best-effort/BE-targets die het volumepercentage, de zichtbaarheid van de controller, de autoplay-flag, de fit mode (meet/slice/fill/scroll/hidden), het repeat-aantal en een intrinsic-, infinity- of expliciete timespan-duur meedragenSetRenditionMediaScreenParameterstoegevoegd: koppelt of werkt de/SPmedia screen parameters-dictionary van een media rendition bij (windowtype floating/full-screen/hidden/screen-annotation-rectangle, DeviceRGB-achtergrondkleur, background opacity, monitorindex)SetSoundAnnotationParameterstoegevoegd: herschrijft het sample-formaat van de/Sound-stream van een Sound-annotatie (rate, kanalen, bits per sample, Raw/Signed/muLaw/ALaw-encoding) voorbij de hardcoded 22050 Hz stereo 16-bit Signed-defaults en zet het/Name-icoon zoals Speaker of Mic
Version 2.597.0
Added
SetMovieAnnotationParameterstoegevoegd: overschrijft de/Movie-dictionary van een movie-annotatie (aspect-pair, rotatie 0/90/180/270, duur in seconden, poster-zichtbaarheid) dieAddMovieAnnotationmet zijn hardcoded defaults aanmaakteSetRichMediaPresentationtoegevoegd: vult de/RichMediaSettings-activation-, deactivation- en presentation-dictionaries van een RichMedia-annotatie (condition-namen zoalsPOpage-open, toolbar-/navigation UI-/context click-/transparency-flags); een lege condition-naam laat de bijbehorende dictionary wegResolveIndirectObjectopTHotPDFtoegevoegd: lost de indirecte referenties op die de authoring-kant in geschreven dictionaries opslaat, zodat callers door vers gebouwde objectbomen kunnen navigeren;AddRichMediaAnnotationregistreert zijn annotatie nu ook inLastAnnotation
Version 2.596.0
Added
- Live revocation evidence discovery toegevoegd: de certificaat-parser leest nu de AIA OCSP responder- en CRLDistributionPoints-URI-extensies,
HPDFExtractCertificateRevocationURLstoont ze per certificaat enHPDFCollectCMSRevocationRequestszet ze om in evidence-requests (GET pkix-crl per distribution point, POST ocsp-request met een minimale RFC 6960 SHA-256 CertID-body gebouwd uit het certificaat en zijn issuer, zelfondertekende certificaten resolvend als hun eigen issuer) HPDFValidateCMSCertificatePathOnlinetoegevoegd: verzamelt die requests, voert ze uit via het door de aanroeper geleverde transport over de bestaande retry/worker-machinery (de library opent nooit sockets) en voert elke opgehaalde OCSP-response en CRL door de offline validator; mislukte fetches degraderen naar de offline evidence-semantics
Version 2.595.0
Added
- JBIG2 halftone region-decoding toegevoegd (segmenttypes 22/23): pattern dictionaries (type 16) met MMR- of arithmetic-collective-bitmaps, gray-scale bit-plane-stacks in zowel MMR-vorm (byte-aligned chained planes) als arithmetic-vorm (één gedeelde MQ-decoder), grid-plaatsing met 8.8 fixed-point-vectoren en de optionele HSKIP-blank-map
- JBIG2 standalone generic-refinement-regions toegevoegd (types 42/43, GRTEMPLATE 0/1 met TPGRON) die de gearchiveerde bitmap van een referred region-segment of de page buffer verfijnen
AddPubSecKeyMaterial/ClearPubSecKeyMaterialstoegevoegd: extra recipient private keys die geprobeerd worden tegen elke/Recipients-envelope wanneer het primairePubSecKeyMaterialniet matcht- Test-stream-builders
HPDFJBIG2Codec_EncodeHalftoneRegionTestStreamenHPDFJBIG2Codec_EncodeStandaloneRefinementTestStreamtoegevoegd die de nieuwe segmenttypes end-to-end afdekken
Fixed
- Public-key AES-128 document loading gerepareerd: de legacy object-pass liet na de pubsec-split
FileKey,StringKeyTypeenStreamKeyTypeongeïnitialiseerd achter, waardoor elk object met een garbage-key werd gedecodeerd (een Win64-load faalde direct; een Win32-load produceerde stilletjes verkeerde plaintext) - Encrypted string round-tripping gerepareerd: ciphertext wordt nu altijd geserialiseerd als hex-string, omdat literal strings CR, LF en CRLF normaliseren naar een enkele LF en escape-processing willekeurige cipher-bytes kon omdraaien
Version 2.594.0
Added
- Ingebouwde identity-approximatie toegevoegd voor de voorgedefinieerde CJK UCS2/UTF16-CMaps (
UniJIS-UCS2-H,UniGB-UTF16-Ven 15 meer):HPDFLoadStandardCMapFileantwoordt vanuit een ingebouwde tabel wanneer er geen CMap-resources op schijf zitten, waardoor Type0-tekstextractie geen 2-byte-codes meer byte voor byte decodeert - Door de gebruiker geleverde JBIG2 Huffman-tabellen toegevoegd (segmenttype 53, Annex B.2 descriptor-vorm): de native decoder parseert de table-segments en de symbol-dictionary SDHUFFDH/SDHUFFDW/SDHUFFBMSIZE/SDHUFFAGGINST en text-region SBHUFFFS/DS/DT/RDW/RDH/RDX/RDY/RDSIZE selector-waarde 3 resolvet ze uit de referred-to-segmenten
SetStructureClassMapEntrytoegevoegd dat de gedeelde attribute-dictionary van een class-naam registreert in de StructTreeRoot/ClassMap, waarmee deSetStructureElementClass/C-API compleet is
Fixed
- Public-key multi-recipient key recovery gerepareerd: de
/Recipients-envelopes zaten in een ongetelde lijst die één buffer aliaste over entries heen, waardoor documenten met twee of meer recipients voor elke cipher een verkeerde file key afleidden; envelopes zijn nu owned copies en het legacy SHA-1-pad hasht pristine envelope-bytes zoals het AES-256-pad
Version 2.593.0
Added
- Shading Type 1 (function-based) rendering toegevoegd: het zichtbare deel van de domain-rectangle wordt onderverdeeld door een kleurfout-gedreven quadtree en elke leaf-cell wordt geschilderd als twee gradient-driehoeken met vertex-kleuren gesampled uit de 2-input-functie, ter vervanging van de eerdere "not sampled"-fallback-diagnostiek
- Soepelere 2-input-functie-evaluatie toegevoegd: een functie die slechts één input declareert degradeert naar
f(x)(constant in de tweede domain-coördinaat) in plaats van te falen, dus sampled en exponentiële functies achter een Type 1-shading schilderen nog steeds
Version 2.592.0
Added
- Object-stream-quarantaine toegevoegd: een corrupte
/Type /ObjStm-container wordt geregistreerd met een reden (THPDFObjStmQuarantineReason: not a stream, bad dictionary, bad header, bad stream size, decrypt failed, decompress failed,/Firstout of range, header unparsable of container exception), een diagnostische regel en de member-objectnummers die hij onopgelost liet, terwijl onafhankelijke containers gewoon blijven laden - Member-level-quarantaine toegevoegd (
osqrMemberUnparsable): een member-body die niet parseert uit een succesvol gedecodeerde container wordt één keer geregistreerd zonder zijn siblings te beïnvloeden, enGetLoadedQuarantinedObjStmCount/GetLoadedQuarantinedObjStmInfotonen elke registratie; quarantaineregistraties overleven de recovery-retries van één load, dedupliceren per container en worden gewist bij de volgende load