THPDFHeadlessDocument

HPDFHeadlessDocument levert een console document-API voor native Linux en Windows met de bestaande HotPDF-object-parser, Direct File-helpers, font-decoders, content-interpreter, filter-decoders en xref-writer

De document-loader accepteert klassieke cross-reference-tabellen, xref-streams, hybride xref-secties, incrementele Prev-ketens, directe en gecomprimeerde objecten, geërfde pagina-resources, content-arrays, Form XObjects en AcroForm-veldbomen

Hybride side-streams hebben voorrang op de bijbehorende tabel, terwijl nieuwere revisies voorrang hebben op oudere; object-stream-leden worden lui gedecodeerd en geparsd via de gedeelde object-parser

Levenscyclus en eigendom

Create gebruikt THPDFHeadlessDocumentOptions.Default, terwijl de options-overload expliciete budgetten en een annuleringstoken in caller-eigendom accepteert

LoadFromFile sluit het vorige document, opent de bron read-only, laadt de huidige objectgraaf en sluit partiele status bij falen; Close geeft de bron en alle geladen objecten vrij

LoadFromFile(FileName, Password) authenticeert Standard AES-256 R5- of R6-documenten via THPDFHeadlessAES256Security; de originele één-argument-overload gebruikt een leeg wachtwoord

User-wachtwoorden moeten tekstextractie of formulierinvulling verlenen voordat die operaties worden uitgevoerd, terwijl owner-wachtwoorden user-permission-beperkingen omzeilen; verkeerde wachtwoorden, geauthenticeerde Perms-mismatches, geweigerde operaties en misvormde cipher-payloads hebben distincte document-diagnostiek

Directe strings en streams worden ontsleuteld via de gedeelde cryptografische code, gecomprimeerde leden worden alleen met diens container ontsleuteld, en versleutelde incrementele vervangingen blijven versleuteld onder de originele keys en het permission-beleid

Wachtwoorden gebruiken UTF-8-bytes afgekapt op 127 bytes zonder SASLprep-normalisatie; niet-ondersteunde handlers, expliciete Crypt-filters en PDF MAC-policies worden gediagnosticeerd in plaats van genegeerd

Encoded dictionary-keys en resourcenamen worden vóór gebruik gedecodeerd, case blijft significant, en dubbele gedecodeerde keys worden geweigerd; veldvlaggen en MaxLen moeten in het ondersteunde niet-negatieve 32-bit-bereik passen

Instanties zijn niet thread-safe; gebruik één instantie per worker en houd diens annuleringstoken in leven tot de instantie wordt vernietigd

Pagina's en tekst

PageCount rapporteert het aantal page-tree-bladeren; ExtractPageText(PageIndex) accepteert een zero-based index en geeft Unicode-tekst terug opgebouwd vanuit de gedeelde glyph-interpreter

ExtractPageTextBounded past tijdelijke glyph- en streamlimieten toe vóór tekstvoorbereiding en herstelt alle originele resource-options na succes, falen of annulering

GetObjectAccess legt read-only geleende catalog-, information- en object-toegang bloot met begrensde index-allocatie voor native structurele en volledige vergelijking

Tekstdecodering volgt font-encodings, encoding-verschillen, embedded ToUnicode CMaps, expliciete widths en de standard-font-metric-provider; nested Form XObjects passen diens matrices toe en gebruiken diens eigen of geërfde resource-dictionaries

De Linux standard-font-fallback vraagt Fontconfig en installed TrueType-fonts; complexe documentfonts moeten een ondersteunde decodeerstrategie leveren, en ontbrekende fontresources leveren een diagnostiek op

AppendPageText voegt zichtbare of gefitte onzichtbare Unicode-tekst toe met behoud van originele paginacontent en versleutelde security-policies

AppendImportedPages kloont geselecteerde pagina-resource-grafen, geërfde geometrie en zichtbare normale appearances met behoud van bestaande destination-revisies en geauthenticeerd encryptiebeleid

AcroForm-tekstwaarden

FormFieldCount, GetFormField(FieldIndex) en FindFormField(Name) enumereren terminal-velden met volledig gekwalificeerde namen en geërfde veldtypes, vlaggen, maximumlengtes en waarden; indices zijn zero-based, en een ontbrekende naam geeft -1 terug

SetTextFieldValue(FieldIndex, Text) accepteert schrijfbare Tx-velden, schrijft een UTF-16BE PDF-string en zet NeedAppearances=true op het AcroForm-dictionary

Deze value-only-methode leunt op viewer-regeneratie; viewers die appearances niet regenereren kunnen een oude appearance of een lege widget blijven tonen

SetTextFieldValueWithAppearance genereert expliciete Unicode-appearances voor elke bestaande widget met een door de aanroeper geleverd TrueType-font, echte glyph-metrics, Identity-H-encoding, ToUnicode en volledige FontFile2-embedding

Het appearance-profiel ondersteunt single-line- en multiline-tekst, wrapping, comb-cellen, kwartslagrotaties, vaste grootte of auto-fit, uitlijning en optionele native HarfBuzz/FriBidi-complex-shaping

SetChoiceFieldValuesWithAppearance behandelt multiple-selection-listboxen, geërfde opties, gesorteerde export-arrays en elke zichtbare geselecteerde rij; de single-value-helper ondersteunt ook combo-export/display-labels

GetChoiceFieldValues leest de complete geselecteerde export-array; SetButtonFieldValueWithAppearance en SetPushButtonAppearance genereren echte button-statussen en -captions

Nieuwe appearance-objecten en -streams worden afgeklemd vóór veldwijzigingen en blijven versleuteld onder het originele AES-securitybeleid bij opslaan; native Linux Cairo en onafhankelijke readers consumeren dezelfde gegenereerde objecten

Read-only-velden, waarden langer dan MaxLen in UTF-16-code-units, niet-tekstvelden, XFA-formulieren, signed velden en certified-document-permissions worden voor bewerking geweigerd

Gevalideerd DSS/VRI-bewijs voegt geauthenticeerde certificaat- en revocation-data toe aan een incrementele revisie zonder bestaande ByteRange-signatures te wijzigen

Signature-verificatie

SignatureCount enumerert getekende AcroForm-signature-velden en VerifySignature(SignatureIndex, Options) valideert zero-based signatures met de gedeelde parser en de streaming OpenSSL 3 CMS-provider

Het PDF-profiel accepteert adbe.pkcs7.detached en automatisch herkende ETSI.CAdES.detached met hexadecimale of standaard letterlijke Contents; CAdES authenticeert altijd de ESS signing-certificate-binding, terwijl expliciete CA-instellingen trust apart beoordelen

DocTimeStamp met ETSI.RFC3161 authenticeert automatisch echte ingekapselde TSTInfo, ESS, TSA-doel en signer-naam en de exacte PDF-imprint; geconfigureerde timestamp-roots en CRL's beoordelen TSA-trust apart

Verificatie valideert de exacte unsigned gap inclusief diens delimiters en bindt diens gedecodeerde bytes aan de huidige signature-dictionary vóór cryptografische verificatie

Het resultaat onderscheidt integriteit, expliciet beoordeeld CA-vertrouwen en unsigned bytes na de geauthenticeerde revisie; niet-ondersteunde PDF-signature-profielen leveren een getypeerde diagnostiek op

Zie HPDFVerifyHeadlessCMS voor runtime-vereisten en THPDFHeadlessCMSOptions voor budget- en trust-instellingen

Incrementele approval-signatures

SignToFile tekent een bestaand schrijfbaar, niet-getekend Sig-veld en publiceert een onafhankelijk incrementeel bijgewerkte PDF met een door de aanroeper geleverd PEM-certificaat en niet-versleutelde PEM private key

AddSignatureField maakt een pagina-widget en diens AcroForm-links aan, inclusief een nieuwe AcroForm op een platte geïmporteerde PDF; SetSignatureFieldAppearance genereert diens zichtbare caption, en SignPFXToFile laadt een PKCS12-certificaat/key-identiteit met diens keten

CertificationPermission maakt de eerste DocMDP-certification-signature; P2 en P3 staan daaropvolgende approval-signatures in bestaande velden toe, terwijl P1 verdere signatures verwerpt

De originele bronbytes en geladen objectgraaf blijven ongewijzigd; latere approval-signatures behouden eerdere signature-bytes en diens geauthenticeerde revisiegrenzen

Standard AES-256 R5- en R6-encryptie, wachtwoorden, ID's en permissions blijven van kracht, inclusief versleutelde object-stream-bronnen; de signature Contents-string volgt de PDF-vrijstelling van encryptie

Bestaande signature-waarden, read-only-velden, certified-document-policies, geweigerde form-fill-permissions, afwijkende annuleringstokens en uitgeputte uitvoerbudgetten worden geweigerd zonder een uitvoer te publiceren

Document-timestamps

TimestampToFile maakt een echte RFC 3161 document timestamp aan in een bestaand niet-getekend signature-veld zonder een applicatie-signing-key, met een transport in caller-eigendom en expliciete TSA-trust

De writer behoudt originele revisies en AES-security, declareert de ESIC-extensie voor pre-PDF 2.0-invoer en publiceert atomair pas nadat nonce-, imprint-, signature-, certificaat-, geconfigureerde revocation- en seed-checks slagen

Noodzakelijke geauthenticeerde document-timestamp-wijzigingen zijn toegestaan onder DocMDP en FieldMDP; gewone formulierbewerkingen en approval-signatures behouden diens originele beperkingen

FDF- en XFDF-formulier-interchange

SaveAnnotationsXFDFToFile plakt begrensde mapped annotaties aan een onafhankelijke incrementele revisie; HPDFExportHeadlessAnnotationsXFDF geeft diens XFDF-bytes terug

ExportFormData geeft begrensde Unicode-velddata terug, inclusief echte choice-arrays en checkbox- of radio-exportstatussen

ImportFormDataToFile regenereert echte appearances op een privé geauthenticeerde revisie-graaf en publiceert atomair een incrementele PDF met behoud van de geladen bronstatus

ImportRichFormDataToFile importeert het begrensde XHTML-profiel vanuit FDF RV of XFDF value-richtext met echte regular-, bold-, italic- en bold-italic-fontprogramma's

SaveRichTextFieldUpdatesToFile past scalar-velden en originele getypeerde rich-runs toe in één onafhankelijke atomare revisie, met behoud van echte fontprogramma's en PDF numerieke precisie; ongewijzigde beschermde velden vragen matchende gedecodeerde appearances en opgeloste resources voor elke widget

Bestaande encryptie, read-only-vlaggen, geauthenticeerde DocMDP en FieldMDP, originele signatures, annulering en resourcebudgetten blijven gehandhaafd; zie Native FDF- en XFDF-formulierdata voor ondersteunde syntax en scalar-interchange-grenzen

Geleende rendering-toegang

GetRenderAccess(PageIndex) levert de bestaande pagina-dictionary, geërfde resources, font-resolver, object-resolutie, permission-check, annuleringstoken en begrensde decoded-stream-callbacks via THPDFHeadlessRenderAccess

Dit is een seriële read-only geleende view; het document moet geladen en ongewijzigd blijven tot de renderer klaar is, en aanroepers mogen diens blootgelegde objectgraaf niet muteren

De RequireOutputPath-callback van de view checkt een prospectieve uitvoer tegen het canonieke pad en de fysieke bestandsidentiteit van de bron zonder een bestand aan te maken of te wijzigen

Onafhankelijke uitvoer

ExtractPageGlyphs geeft gepositioneerde glyphs terug via de begrensde nested-content-walker; AnalyzePageSemanticText levert semantische tekst en bron-geometrie voor native contractvergelijking

SaveToFile(FileName) kopieert de originele bytes en plakt vervangende objectwaarden, een klassieke xref-tabel en een trailer gelinkt via Prev aan; gecomprimeerde object-leden worden gematerialiseerd als directe objecten in de toegevoegde revisie, en originele stream-bytes worden behouden

De uitvoer mag niet aliasen met het bronpad of de bronbestandsidentiteit; schrijven gebruikt een exclusief aangemaakt staging-bestand in de doeldirectory, flußt het en publiceert het via atomare rename

Budget-, annulerings- of serialisatiefalen behouden een bestaande destination en verwijderen het ongepubliceerde staging-bestand; de bron blijft read-only

Native annotated review PDF exporteert echte Unicode-highlights en zichtbare appearances met geauthenticeerde annotatie-permissions, met behoud van het originele geladen document en signature-revisies

Formaatgrenzen

Het huidige profiel ondersteunt Standard AES-256 R5- en R6-encryptie, diagnosticeert expliciet niet-ondersteunde security-handlers en stream-filters en verwerkt gepensioneerde free-object-generaties die niet door diens writer kunnen worden gerepresenteerd

Bootstrap xref-streams vragen directe dictionary-waarden en een directe begrensde Length; misvormde widths, subsection-overlaps, unsigned offsets boven Int64, gecomprimeerd-lid-mismatches, referentiecycli en geconfigureerde limieten leveren getypeerde diagnostiek op

Gedecodeerde content ondersteunt Flate-, ASCIIHex-, ASCII85- en LZW-filters met ondersteunde predictors en indirecte streamlengtes; image-payloads worden niet gedecodeerd voor tekstextractie

Native signing-workflows dekken signature-velden, zichtbare appearances en certification; geauthenticeerde signed-form-policies, timestamp- en langetermijn-validatie-API's behouden diens expliciete integriteits- en trust-options

Acceptatie

Named rich font families voegen meerdere echte supplied families toe via SetRichTextFieldValueWithFamilies en ImportRichFormDataWithFamiliesToFile, met het bestaande veld-, security- en transactiebeleid

Native rich-text fields leveren getypeerde gestijlde runs, echte embedded stijlfont-appearances, gesynchroniseerde V- en RV-waarden, versleutelde incrementele uitvoer en begrensde transactionele bewerkingen; GetRichTextFieldValue leest opgeslagen of geërfde XHTML

Tests/Linux/Run-HeadlessDocumentTests.sh bouwt een native ELF-executable met gewiste desktop-variabelen en checkt op GUI-library-dependencies; Run-HeadlessDocumentTests-Windows.cmd Win32 en Win64 oefenen dezelfde gedeelde document-API

Zie THPDFHeadlessFormField, EHPDFHeadlessDocumentError en THPDFHeadlessDiagnosticCode voor teruggegeven waarden en getypeerde diagnostiek