THPDFHeadlessDocument
HPDFHeadlessDocument leverer en konsol dokument-API til native Linux og Windows med den eksisterende HotPDF objektparser, Direct File-helpers, font-dekodere, content-fortolker, filter-dekodere og xref-writer
Dokumentloaderen accepterer klassiske cross-reference-tabeller, xref-streams, hybride xref-afsnit, inkrementelle Prev-kæder, direkte og komprimerede objekter, nedarvede sideressourcer, content-arrays, Form XObjects og AcroForm felttræer
Hybride sidestreams har forrang over den tilhørende tabel, mens nyere revisioner har forrang over ældre; object stream-members dekodes og parses lazily gennem den delte objektparser
Livscyklus og ejerskab
Create bruger THPDFHeadlessDocumentOptions.Default, mens options-overloadet accepterer eksplicitte budgetter og en kalder-ejet cancellation-token
LoadFromFile lukker det tidligere dokument, åbner kilden skrivebeskyttet, indlæser den aktuelle objektgraf og lukker delvis tilstand ved fejl; Close frigiver kilden og alle indlæste objekter
LoadFromFile(FileName, Password) autentificerer Standard AES-256 R5- eller R6-dokumenter gennem THPDFHeadlessAES256Security; det originale enkelt-argument-overload bruger en tom adgangskode
User-adgangskoder skal give tekstudtrækning eller formularudfyldning, før disse operationer afvikles, mens owner-adgangskoder omgår brugertilladelsesbegrænsninger; forkerte adgangskoder, autentificerede Perms-afvigelser, nægtede operationer og misdannede cipher-payloads har distinkte dokumentdiagnostikker
Direkte strenge og streams dekrypteres gennem den delte kryptografiske kode, komprimerede members dekrypteres kun med deres container, og krypterede inkrementelle erstatninger forbliver krypteret under de originale nøgler og tilladelsespolitik
Adgangskoder bruger UTF-8-bytes afklippet ved 127 bytes uden SASLprep-normalisering; ikke-understøttede handlers, eksplicitte Crypt-filtre og PDF MAC-politikker diagnosticeres snarere end ignoreres
Encodede dictionary-nøgler og ressourcenavne dekodes før brug, case forbliver signifikant, og duplikerede dekodede nøgler afvises; feltflag og MaxLen skal passe i det understøttede ikke-negative 32-bit-interval
Instances er ikke trådsikre; brug én instance pr. worker og hold dens cancellation-token i live, indtil instansen destrueres
Sider og tekst
PageCount rapporterer antallet af page tree-blade; ExtractPageText(PageIndex) accepterer et nul-baseret indeks og returnerer Unicode-tekst sammensat af den delte glyph-fortolker
ExtractPageTextBounded anvender midlertidige glyph- og streamgrænser inden tekstforberedelse og gendanner alle originale ressource-options efter succes, fejl eller cancellation
GetObjectAccess udstiller skrivebeskyttet lånt katalog, informations- og objektadgang med afgrænset indeks-allokering til native strukturel og fuld sammenligning
Tekstdekodning følger font-encodings, encoding-forskelle, indlejrede ToUnicode-CMaps, eksplicitte bredder og standardfont metrics-provideren; nestede Form XObjects anvender deres matricer og bruger egne eller nedarvede ressource-dictionaries
Linux standardfont-fallback kræver Fontconfig og installerede TrueType-fonte; komplekse dokumentfonte skal levere en understøttet dekodningsstrategi, og manglende fontressourcer giver en diagnostik
AppendPageText tilføjer synlig eller tilpasset usynlig Unicode-tekst, mens originalt sideindhold og krypterede sikkerhedspolitikker bevares
AppendImportedPages kloner valgte side ressource-grafer, nedarvet geometri og synlige normale appearances, mens eksisterende destinationsrevisioner og autentificeret krypteringspolitik bevares
AcroForm tekstværdier
FormFieldCount, GetFormField(FieldIndex) og FindFormField(Name) enumererer terminalfelter med fuldt kvalificerede navne samt nedarvede felttyper, flag, maksimale længder og værdier; indeks er nul-baserede, og et manglende navn returnerer -1
SetTextFieldValue(FieldIndex, Text) accepterer skrivbare Tx-felter, skriver en UTF-16BE PDF-streng og sætter NeedAppearances=true på AcroForm-dictionaryen
Denne value-only-metode stoler på viewer-regenerering; viewers, der ikke regenererer appearances, kan fortsætte med at vise en gammel appearance eller en tom widget
SetTextFieldValueWithAppearance genererer eksplicitte Unicode-appearances til hver eksisterende widget med en kalder-leveret TrueType-font, faktiske glyph-metrics, Identity-H-encoding, ToUnicode og fuld FontFile2-indlejring
Appearance-profilen understøtter enkeltlinje- og multilinetekst, ombrydning, comb-celler, kvartdrejede rotationer, fast størrelse eller auto-tilpasning, justering og valgfri native HarfBuzz/FriBidi kompleks shaping
SetChoiceFieldValuesWithAppearance håndterer multiple-selection list boxes, nedarvede options, sorterede export-arrays og hver synlig valgt række; enkeltværdi-helperen understøtter også combo export/display-labels
GetChoiceFieldValues læser det komplette valgte export-array; SetButtonFieldValueWithAppearance og SetPushButtonAppearance genererer rigtige button-tilstande og captions
Nye appearance-objekter og -streams afgrænses inden feltændringer og forbliver krypteret under den originale AES-sikkerhedspolitik ved gemning; native Linux Cairo og uafhængige readers forbruger de samme genererede objekter
Tekstfelt-metoder håndhæver skrivebeskyttede flag, MaxLen i UTF-16 code units og felttypen; choice- og button-felter bruger deres separate appearance-metoder, mens XFA-formularer forbliver uden for denne dokumentloaders AcroForm-profil
Signerede dokumenter bruger autentificerede DocMDP- og FieldMDP-politikker: tilladte formularopdateringer bevarer eksisterende signerede revisioner, mens låste felter, P1-begrænsninger og forsøg på at overskrive signede signaturfelter afvises
Valideret DSS/VRI-evidence tilføjer autentificeret certifikat- og revocation-data til en inkrementel revision uden at ændre eksisterende ByteRange-signaturer
Signaturverifikation
SignatureCount enumererer signede AcroForm-signaturfelter, og VerifySignature(SignatureIndex, Options) validerer nul-baserede signaturer med den delte parser og streaming OpenSSL 3 CMS-provider
PDF-profilen accepterer adbe.pkcs7.detached og automatisk genkendt ETSI.CAdES.detached med hexadecimale eller standard literal Contents; CAdES autentificerer altid ESS signing-certificate-bindingen, mens eksplicitte CA-indstillinger vurderer trust separat
DocTimeStamp med ETSI.RFC3161 autentificerer automatisk rigtig indkapslet TSTInfo, ESS, TSA-formål og signernavn samt det eksakte PDF-aftryk; konfigurerede timestamp-rødder og CRL'er vurderer TSA-trust separat
Verifikation validerer det eksakte usignerede gap inklusive dets skilletegn og binder dets dekodede bytes til den aktuelle signature dictionary inden kryptografisk verifikation
Resultatet adskiller integritet, eksplicit vurderet CA-trust og usignerede bytes efter den autentificerede revision; ikke-understøttede PDF-signaturprofiler giver en typet diagnostik
Se HPDFVerifyHeadlessCMS for runtime-krav og THPDFHeadlessCMSOptions for budgetter og trust-indstillinger
Inkrementelle approval-signaturer
SignToFile signerer et eksisterende skrivbart, usigneret Sig-felt og publicerer en uafhængig inkrementelt opdateret PDF med en kalder-leveret PEM-certifikat og ukrypteret PEM-privatnøgle
AddSignatureField opretter en sidewidget og dennes AcroForm-links, inklusive en ny AcroForm på en plain importeret PDF; SetSignatureFieldAppearance genererer dens synlige caption, og SignPFXToFile indlæser en PKCS12-certifikat/nøgle-identitet med dens kæde
CertificationPermission opretter den første DocMDP-certificeringssignatur; P2 og P3 tillader efterfølgende approval-signaturer i eksisterende felter, mens P1 afviser yderligere signaturer
De originale kilde-bytes og indlæste objektgraf forbliver uændret; senere approval-signaturer bevarer tidligere signaturer og autoriserer kun tilladte feltændringer
Standard AES-256 R5- og R6-kryptering, adgangskoder, ID'er og tilladelser forbliver gældende, inklusive krypterede object streams under gemning
Eksisterende signaturværdier, skrivebeskyttede felter, certificeret dokument-politikker, nægtede form-fill-tilladelser, afvigende kandidatgraf og overskredne budgetter afvises inden publicering
Dokumenttidsstempler
TimestampToFile opretter et rigtigt RFC 3161 dokumenttidsstempel i et eksisterende tomt signaturfelt og publicerer en uafhængig inkrementel opdatering atomisk
Writeren bevarer originale revisioner og AES-sikkerhed, erklærer ESIC-udvidelsen for pre-PDF 2.0-input og erstatter target atomisk efter TSA-validering
Nødvendige autentificerede dokument timestamp-ændringer er tilladt under DocMDP og FieldMDP; almindelige formularedigeringer og approval-signering forbliver forbudt af den originale politik
FDF- og XFDF-formularudveksling
ExportAnnotationsFDF eksporterer afgrænsede annotationsobjektgrafer og deres delte appearance-ressourcer; SaveAnnotationsFDFToFile forbereder navngivne erstatninger og tilføjer i en separat atomisk PDF-revision
Den binære FDF-annotationsprofil bevarer det autentificerede dokuments krypterings- og signaturpolitik, kontekstfølsomme lokale GoTo-sidereferencer og eksakt uændret publicering; den lader det loadede dokument forblive uændret efter lagring
SaveAnnotationsXFDFToFile tilføjer afgrænsede mappede annotationer og publicerer en inkrementel PDF atomisk
ExportFormData returnerer afgrænset Unicode feltdata inklusive rigtige rich-værdier
ImportFormDataToFile regenererer rigtige appearances på en privat revision og publicerer atomisk
ImportRichFormDataToFile importerer den afgrænsede XHTML-profil med leverede stilfonte
SaveRichTextFieldUpdatesToFile anvender scalar-felter og typede rich-runs i én blandet transaktion
Eksisterende kryptering, skrivebeskyttede flag, autentificeret DocMDP og FieldMDP, originale signaturer, cancellation og ressourcebudgetter gælder alle formularoperationer
Lånt renderingsadgang
GetRenderAccess(PageIndex) leverer den eksisterende side dictionary, nedarvede ressourcer, font-resolver, objekt-opløsning, tilladelsestjek samt afgrænsede læse- og dybdegrænser til native Cairo-rendering og dokument-sammenligning
Dette er en seriell skrivebeskyttet lånt view; dokumentet skal forblive indlæst og uændret, indtil rendereren er færdig, og kaldere må ikke mutere det
Viewets RequireOutputPath-callback tjekker en prospektiv output mod kildens kanoniske sti og fysiske filidentitet uden at oprette eller ændre en fil
Uafhængigt output
ExtractPageGlyphs returnerer positionerede glyphs gennem den afgrænsede nestede indholdswalker; AnalyzePageSemanticText leverer semantisk tekst og kildegeometri til native kontraktsammenligning
SaveToFile(FileName) kopierer de originale bytes og tilføjer erstatningsobjektværdier, en klassisk xref-tabel og en trailer forbundet gennem Prev; komprimerede objekt-members materialiseres som direkte objekter i den tilføjede revision, og originale stream-bytes bevares
Outputtet må ikke aliasere kildestien eller filidentiteten; skrivning bruger en eksklusivt oprettet staging-fil i destinationsmappen, flusher den og erstatter target atomisk
Budget-, cancellation- eller serialiseringsfejl bevarer en eksisterende destination og sletter den upublicerede staging-fil; kilden forbliver skrivebeskyttet
Native annoteret review-PDF eksporterer rigtige Unicode-highlights og synlige appearances med autentificeret politik
Formatgrænser
Den aktuelle profil understøtter Standard AES-256 R5- og R6-kryptering, diagnosticerer eksplicit ikke-understøttede security handlers og streamfiltre og afviser pensionerede free-object-generationer, som ikke kan repræsenteres af dens writer
Bootstrap xref-streams kræver direkte dictionary-værdier og en direkte afgrænset Length; misdannede bredder, subsection-overlap, unsigned offsets over Int64, komprimeret member-afvigelser, referencecyklusser og konfigurerede grænser giver typede diagnostikker
Dekodet indhold understøtter Flate, ASCIIHex, ASCII85 og LZW-filtre med understøttede predictors og indirekte streamlængder; billedpayloads dekodes ikke til teksteekstraktion
Native signeringsworkflows dækker signaturfelter, synlige appearances og certificering; autentificerede signeret-formular-politikker, timestamp- og langtidsvaliderings-API'er beholder deres eksplicitte integritets- og trust-options
Accept
Navngivne rich font-familier tilføjer flere faktiske leverede familier gennem SetRichTextFieldValueWithFamilies og ImportRichFormDataWithFamiliesToFile med de eksisterende felt-, sikkerheds- og transaktionspolitikker
Native rich-text felter leverer typede stylede runs, rigtige indlejrede stilfont-appearances, synkroniserede V- og RV-værdier, krypteret inkrementelt output og afgrænsede transaktionelle redigeringer; GetRichTextFieldValue læser gemt eller nedarvet XHTML
Tests/Linux/Run-HeadlessDocumentTests.sh bygger en native ELF-eksekverbar med desktop-variabler ryddet og tjekker for GUI-biblioteksafhængigheder; Run-HeadlessDocumentTests-Windows.cmd Win32 og Win64 øver samme delte dokument-API
Se THPDFHeadlessFormField, EHPDFHeadlessDocumentError og THPDFHeadlessDiagnosticCode for returnerede værdier og typede diagnostikker
Annotationsfjernelse
Fjern sideannotationer efter eksakt side- og Unicode-NM-identitet gennem SaveAnnotationRemovalsToFile, med popup- og reply-kaskader, afgrænset forberedelse og atomisk separat output
Det loadede dokument forbliver uændret; et uændret udvalg kopierer den eksakte aktuelle revision, og inkrementel fjernelse bevarer historiske bytes