THPDFHeadlessDocument

HPDFHeadlessDocument dodává konzolové dokumentové API pro nativní Linux i Windows pomocí stávajícího objektového parseru HotPDF, helperů Direct File, dekodérů písem, interpretu obsahu, dekodérů filtrů i xref writeru

Dokumentový loader přijme klasické tabulky cross-reference, xref streamy, hybridní xref sekce, inkrementální řetězce Prev, přímé i komprimované objekty, zděděné page resource, content pole, Form XObject i stromy polí AcroForm

Hybridní vedlejší streamy mají přednost před doprovodnou tabulkou a novější revize před staršími; členové objektových streamů se dekódují a parsují líně přes sdílený objektový parser

Životní cyklus a vlastnictví

Create použije THPDFHeadlessDocumentOptions.Default, zatímco overload voleb přijme explicitní rozpočty i cancellation token vlastněný volajícím

LoadFromFile zavře předchozí dokument, otevře zdroj read-only, načte aktuální objektový graf a při selhání zavře částečný stav; Close uvolní zdroj i všechny načtené objekty

LoadFromFile(FileName, Password) autentizuje Standard AES-256 R5 či R6 dokumenty přes THPDFHeadlessAES256Security; původní jednoargumentový overload použije prázdné heslo

User hesla musí před provedením těch operací umožnit extrakci textu či vyplňování formulářů, zatímco owner hesla uživatelské restrikce oprávnění obcházejí; špatná hesla, neshody autentizovaných Perms, odmítnuté operace i poškozené šifrové payloady mají odlišnou dokumentovou diagnostiku

Přímé řetězce i streamy se dešifrují přes sdílený kryptografický kód, komprimované členy se dešifrují jen s jejich kontejnerem a šifrované inkrementální náhrady zůstávají šifrované pod původními klíči i politikou oprávnění

Hesla používají UTF-8 bajty useknuté na 127 bajtech, bez normalizace SASLprep; nepodporované handlery, explicitní Crypt filtry i politiky PDF MAC se diagnostikují, namísto ignorování

Kódované klíče slovníků i názvy resource se dekódují před použitím, velikost písmen zůstává významná a duplicitní dekódované klíče se odmítají; příznaky polí i MaxLen se musí vejít do podporovaného nezáporného 32bit rozpětí

Instance nejsou thread-safe; používejte jednu instanci na workera a držte její cancellation token naživu, dokud se instance nezničí

Stránky a text

PageCount reportuje počet listů stromu stránek; ExtractPageText(PageIndex) přijme zero-based index a vrátí Unicode text složený sdíleným glyfovým interpretrem

ExtractPageTextBounded aplikuje dočasné limity glyfů i streamů, dřív než přípravu textu, a po úspěchu, selhání či zrušení obnoví všechny původní volby resource

GetObjectAccess vystaví read-only vypůjčený přístup ke katalogu, informacím i objektům s ohraničenou alokací indexů pro nativní strukturální i full porovnání

Dekódování textu řídí kódování písem, rozdíly kódování, vložené CMap ToUnicode, explicitní šířky i provider metrik standardních písem; vnořené Form XObject aplikují své matice a použijí vlastní či zděděné slovníky resource

Linux fallback standardních písem vyžaduje Fontconfig a instalovaná TrueType písma; složité dokumentové písma musí dodávat podporovanou dekódovací strategii a chybějící font resource vytvoří diagnostiku

AppendPageText přidá viditelný či přizpůsobený neviditelný Unicode text, při zachování původního obsahu stránek i šifrovaných bezpečnostních politik

AppendImportedPages naklonuje grafy resource vybraných stránek, zděděnou geometrii i viditelná normal appearance, při zachování stávajících cílových revizí i autentizované šifrovací politiky

Textové hodnoty AcroForm

FormFieldCount, GetFormField(FieldIndex) a FindFormField(Name) enumerují terminální pole s plně kvalifikovanými názvy i zděděnými typy, příznaky, maximálními délkami a hodnotami; indexy jsou zero-based a chybějící název vrátí -1

SetTextFieldValue(FieldIndex, Text) přijme zapisovatelná pole Tx, zapíše PDF řetězec UTF-16BE a nastaví NeedAppearances=true na slovníku AcroForm

Ta metoda jen s hodnotou spoléhá na regeneraci čtečkou; čtečky, které appearance neregenerují, mohou dál zobrazovat starou appearance či prázdný widget

SetTextFieldValueWithAppearance vygeneruje explicitní Unicode appearance pro každý existující widget pomocí TrueType písma dodaného volajícím, skutečných glyfových metrik, kódování Identity-H, ToUnicode i úplného vkládání FontFile2

Profil appearance podporuje jednořádkový i víceřádkový text, zalamování, comb buňky, rotace o čtvrtotáčky, pevnou velikost či auto-fit, zarovnání i volitelný nativní složitý shaping HarfBuzz/FriBidi

SetChoiceFieldValuesWithAppearance zvládne list boxy s vícenásobným výběrem, zděděné volby, setříděná exportní pole i každý viditelný vybraný řádek; helper s jednou hodnotou podporuje navíc exportní/display popisky comb

GetChoiceFieldValues přečte kompletní pole vybraných exportů; SetButtonFieldValueWithAppearance a SetPushButtonAppearance vygenerují skutečné stavy buttonů i caption

Nové objekty i streamy appearance se ohraničí, dřív než se pole změní, a při ukládání zůstanou šifrované pod původní AES bezpečnostní politikou; nativní Linux Cairo i nezávislé čtečky konzumují tytéž generované objekty

Metody textových polí vynucují příznaky read-only, MaxLen v UTF-16 code unit i typ pole; choice i button pole použijí své samostatné appearance metody, zatímco formuláře XFA zůstávají mimo AcroForm profil tohoto dokumentového loaderu

Podepsané dokumenty používají autentizované politiky DocMDP a FieldMDP: povolené formulářové aktualizace zachovávají stávající podepsané revize, zatímco uzamčená pole, restrikce P1 i pokusy přepsat podepsaná pole podpisů se odmítnou

Validované důkazy DSS/VRI přidají autentizovaná data certifikátů i revokací do inkrementální revize, aniž by změnily stávající podpisy ByteRange

Verifikace podpisů

SignatureCount enumeruje podepsaná pole podpisů AcroForm a VerifySignature(SignatureIndex, Options) validuje zero-based podpisy pomocí sdíleného parseru i streamovaného providera CMS OpenSSL 3

PDF profil přijme adbe.pkcs7.detached i automaticky rozpoznané ETSI.CAdES.detached s hexadecimálními či standardními literálními Contents; CAdES vždy autentizuje vazbu ESS signing-certificate, zatímco explicitní nastavení CA důvěru vyhodnotí odděleně

DocTimeStamp s ETSI.RFC3161 automaticky autentizuje skutečné zapouzdřené TSTInfo, ESS, účel TSA i název podepsávajícího i přesný PDF imprint; nakonfigurované TSA rooty i CRL důvěru TSA vyhodnotí odděleně

Verifikace validuje přesnou nepodepsanou mezeru včetně jejích oddělovačů a naváže její dekódované bajty na aktuální slovník podpisu, dřív než kryptografická verifikace

Výsledek odliší integritu, explicitně vyhodnocenou CA důvěru i nepodepsané bajty po autentizované revizi; nepodporované profily PDF podpisů vytvoří typovanou diagnostiku

Runtime požadavky popisuje HPDFVerifyHeadlessCMS a rozpočty i trust nastavení THPDFHeadlessCMSOptions

Inkrementální schvalovací podpisy

SignToFile podepíše existující zapisovatelné nepodepsané pole Sig a publikuje nezávisle inkrementálně aktualizované PDF pomocí PEM certifikátu dodaného volajícím i nešifrovaného PEM privátního klíče

AddSignatureField vytvoří stránkový widget i jeho odkazy AcroForm, tedy i nové AcroForm na prostém importovaném PDF; SetSignatureFieldAppearance vygeneruje jeho viditelnou caption a SignPFXToFile načte identitu certifikát/klíč PKCS12 i s jejím řetězcem

CertificationPermission vytvoří první certifikační podpis DocMDP; P2 a P3 dovolí následné schvalovací podpisy ve stávajících polích, zatímco P1 další podpisy odmítne

Původní zdrojové bajty i načtený objektový graf zůstávají beze změny; pozdější schvalovací podpisy zachovají bajty dřívějších podpisů i jejich autentizované revizní hranice

Standardní šifrování AES-256 R5 a R6, hesla, ID i oprávnění zůstávají v platnosti, tedy i u šifrovaných zdrojů objektových streamů; řetězec Contents podpisu řídí PDF výjimka ze šifrování

Stávající hodnoty podpisů, read-only pole, politiky certifikovaných dokumentů, odmítnutá oprávnění pro vyplňování formulářů, rozeběhnuté cancellation tokeny i vyčerpané výstupní rozpočty se odmítnou, bez publikace výstupu

Document timestampy

TimestampToFile vytvoří skutečný RFC 3161 document timestamp v existujícím nepodepsaném poli podpisu bez podepisujícího klíče aplikace, pomocí TSA transportu vlastněného volajícím i explicitní TSA důvěry

Writer zachová původní revize i AES zabezpečení, deklaruje rozšíření ESIC u vstupu před PDF 2.0 a atomicky publikuje až poté, co projdou kontroly nonce, imprintu, signatury, certifikátu, nakonfigurovaných revokací i seedu

Nutné autentizované změny document timestampu jsou dovolené pod DocMDP i FieldMDP; běžné formulářové editace i schvalovací podpisy si uchovávají původní restrikce

Form interchange FDF a XFDF

ExportAnnotationsFDF exportuje ohraničené grafy anotačních objektů a jejich sdílené appearance resource; SaveAnnotationsFDFToFile připraví pojmenované náhrady a připojí je v nezávislé atomické revizi PDF

Binární FDF profil anotací zachovává šifrovací a podpisovou politiku autentizovaného dokumentu, kontextově citlivé lokální odkazy na stránky GoTo a přesně nezměněnou publikaci; po uložení ponechá načtený dokument beze změny

SaveAnnotationsXFDFToFile připojí ohraničené mapované anotace do nezávislé inkrementální revize; HPDFExportHeadlessAnnotationsXFDF vrátí jejich XFDF bajty

ExportFormData vrátí ohraničená Unicode data polí, tedy i skutečné pole voleb i exportní stavy checkboxů či radio

ImportFormDataToFile zregeneruje skutečná appearance na soukromém autentizovaném revizním grafu a atomicky publikuje inkrementální PDF, při zachování načteného stavu zdroje

ImportRichFormDataToFile importuje ohraničený XHTML profil z FDF RV či XFDF value-richtext se skutečnými font programy regular, bold, italic a bold-italic

SaveRichTextFieldUpdatesToFile aplikuje skalární pole i původní typované rich runy v jedné nezávislé atomické revizi, se zachováním skutečných font programů i PDF číselné přesnosti; nezměněná chráněná pole vyžadují odpovídající dekódované appearance i rozřešené resource pro každý widget

Stávající šifrování, příznaky read-only, autentizované DocMDP a FieldMDP, původní podpisy, zrušení i rozpočty resource zůstávají vynucené; podporovanou syntaxi i hranice skalárního interchange popisují Nativní form data FDF a XFDF

Vypůjčený render přístup

GetRenderAccess(PageIndex) poskytuje stávající slovník stránky, zděděné resource, font resolver, rozřešení objektů, kontrolu oprávnění, cancellation token i ohraničené callbacky dekódovaných streamů přes THPDFHeadlessRenderAccess

Jde o sériový read-only vypůjčený pohled; dokument musí zůstat načtený a beze změny, dokud renderer neskončí, a volající nesmí mutovat jeho vystavený objektový graf

Callback pohledu RequireOutputPath zkontroluje prospektivní výstup proti kanonické cestě i fyzické identitě souboru zdroje, aniž by vytvořil či změnil soubor

Nezávislý výstup

ExtractPageGlyphs vrátí pozicované glyfy přes ohraničeného walkera vnořeného obsahu; AnalyzePageSemanticText dodá sémantický text i zdrojovou geometrii pro nativní kontrahové porovnání

SaveToFile(FileName) zkopíruje původní bajty a připojí náhradní hodnoty objektů, klasickou tabulku xref i trailer provázaný přes Prev; komprimovaní členové objektových streamů se materializují jako přímé objekty v připojené revizi a původní stream bajty se zachovají

Výstup nesmí být aliasem zdrojové cesty ani identity souboru; zápis použije výhradně vytvořený staging soubor v cílovém adresáři, flushne ho a publikuje atomickým přejmenováním

Selhání rozpočtu, zrušení či serializace zachovají existující cíl a smažou nepublikovaný staging soubor; zdroj zůstává read-only

Nativní anotované review PDF exportuje skutečná Unicode zvýraznění i viditelná appearance s autentizovanými anotačními oprávněními, se zachováním původního načteného dokumentu i podpisových revizí

Formátové hranice

Aktuální profil podporuje Standard šifrování AES-256 R5 a R6, explicitně diagnostikuje nepodporované security handlery i stream filtry a odmítá vysloužilé generace volných objektů, které jeho writer nedokáže reprezentovat

Bootstrap xref streamy vyžadují přímé hodnoty slovníku i přímou ohraničenou Length; poškozené šířky, překryvy podsekcí, nepodepsané offsety nad Int64, nesouhlasy komprimovaných členů, referenční cykly i nakonfigurované limity vytvoří typovanou diagnostiku

Dekódovaný obsah podporuje filtry Flate, ASCIIHex, ASCII85 a LZW s podporovanými prediktory i nepřímými délkami streamů; image payloady se pro extrakci textu nedekódují

Nativní podepisovací workflow pokrývají pole podpisů, viditelná appearance i certifikaci; autentizované politiky podepsaných formulářů, timestamp i dlouhodobé validační API si uchovávají své explicitní volby integrity i důvěry

Akceptace

Pojmenované rich font rodiny přidávají víc skutečně dodaných rodin přes SetRichTextFieldValueWithFamilies a ImportRichFormDataWithFamiliesToFile, se stávajícími politikami polí, zabezpečení i transakcí

Nativní rich-text pole dodávají typované stylované runy, skutečné appearance se style písmy, synchronizované hodnoty V i RV, šifrovaný inkrementální výstup i ohraničené transakční editace; GetRichTextFieldValue čte uložené či zděděné XHTML

Tests/Linux/Run-HeadlessDocumentTests.sh postaví nativní ELF spustitelný soubor s vymazanými desktopovými proměnnými a kontroluje závislosti GUI knihoven; Run-HeadlessDocumentTests-Windows.cmd Win32 a Win64 zkoušejí stejné sdílené dokumentové API

Vrácené hodnoty i typovanou diagnostiku popisují THPDFHeadlessFormField, EHPDFHeadlessDocumentError a THPDFHeadlessDiagnosticCode

Odstranění anotací

Odeberte anotace stránek podle přesné identity stránky a Unicode NM přes SaveAnnotationRemovalsToFile, s kaskádami popup a reply, ohraničenou přípravou a atomickým odděleným výstupem

Načtený dokument zůstává beze změny; nezměněný výběr zkopíruje přesně aktuální revizi a přírůstkové odebrání zachovává historické bajty