Standard XFDF stamp appearance transport

Anotace Stamp mohou exportovat i importovat své skutečné PDF appearance streamy i resource slovníky přes element appearance Adobe XFDF

Profil stamp-typed-xml-v1 používá base64 kódované UTF-8 typed XML, jak popisuje specifikace Adobe XFDF 3; dekódovaný payload reprezentuje PDF objekty, nikoli kompletní PDF či FDF soubor

Mapované resource

Top-level DICT KEY="AP" obsahuje povinný normal N Form stream a volitelné streamy rollover R a down D

Form si uchovávají své konečné čtyřčíselné BBox, volitelnou šestičíselnou Matrix i podporovaný graf resource, tedy písma a jejich vložené programy, obrázky a soft masky, barevné prostory, patterny, shadings, funkce i grafické stavy

Typované hodnoty zahrnují DICT, STREAM, ARRAY, INT, FIXED, NAME, BOOL a NULL; klíče slovníků i name hodnoty si uchovávají své sémantické PDF názvy a platné zdrojové číselné tokeny desetinnou přesnost

Stream DATA podporuje MODE="RAW" či MODE="FILTERED" s ENCODING="HEX" či sedmibitovým ENCODING="ASCII"; RAW si uchová kódované bajty i jejich Filter/DecodeParms, zatímco FILTERED vloží dekódované bajty bez zastaralých filtrovacích metadat

Export používá RAW hexadecimální data a zpočítá délku streamu ze skutečných bajtů; autentizované šifrované streamy se před výměnou dekódují či dešifrují a v uložené revizi se správně zašifrují

Sdílené acyklické resource se rozbalí jako ekvivalentní hodnoty a importují s nezávislými objektovými referencemi; tenhle profil neuchovává identitu referencí

Bajty vložených font programů i jejich embedding příznaky se zachovávají, aniž by se změnily licenční bity či substituoval jiný font program

API a callbacky

Pro nativní transakce použijte HPDFExportHeadlessAnnotationsXFDF a SaveAnnotationsXFDFToFile, případně ohraničené overloads HPDFXFDFExportAnnotations a HPDFXFDFImportAnnotations pro grafové adaptéry vlastněné volajícím

Stávající Windows file joby a V1 callbacky i Linux V1 callbacky používají své stávající anotační operace i rozložení záznamů

Capabilities si uchovávají appearanceImport=false pro obecná anotační appearance a přidávají stampAppearanceImport=true, appearanceProfile="stamp-typed-xml-v1", appearanceTypes=["stamp"], appearanceDataModes=["RAW","FILTERED"], appearanceEncodings=["ASCII","HEX"] a appearanceResources="acyclic-expanded-graph"

Transakce a limity

Vstupní XML, base64, názvy, kódování streamů, typy resource, sémantické klíče slovníků i geometrie Form se validují, dřív než publikace; poškozená data, cykly, vyčerpané kumulativní limity či zrušení zhatí kompletní transakci

Limity XFDF pokrývají celkový vstup/výstup, uzly XML i grafu, hloubku, úložiště streamů i pracovní rezervace napříč anotační operací

Import si uchová aktuální neuložený grafový stav, zabezpečení AES R5/R6 i autentizovaná certifikační omezení; P1/P2 změny anotací zakáže a P3 zachová původní podepsanou předponu i skutečnou integritu podpisu

Autorizovaný prázdný import vrátí nulu a zachová přesné aktuální PDF bajty, když nejsou žádné neuložené změny; zašpiněné grafové změny se uloží, aniž by se zahodily

Windows i Linux callback kontexty osvojí připravené PDF jen poté, co uspějí výstup PDF, JSON výsledek i finální kontrola zrušení; neúspěšné či částečné callbacky zachovají předchozí kontext a první selhavý writer zůstane lepivý

Import jen pro anotace přijme prázdné kontejnery fields i deklarace polí bez hodnoty jako no-op metadata; skutečné formulářové hodnoty i rich aktualizace polí vyžadují samostatnou autentizovanou form-data operaci

Zbývající práce

Obecný transport anotačních AP, stavové slovníky appearance, řetězcové resource hodnoty, neprázdné reference DEFINE/REF, cyklické grafy, Redact overlayappearance, náhrada/odebrání anotací i FDF anotační výměna zůstávají samostatnou prací

Geometrické a textové anotace bez transportované stamp appearance si uchovávají stávající chování; tahle operace nesyntetizuje libovolná anotační appearance ani nespouští akce

Sdílený ohraničený adaptér rezervuje surové anotační klíče i expandované AP grafy, dřív než konverzi payloadu, a rezervuje base64 bílé znaky i dekódovaná DATA, dřív než alokuje ty reprezentace; konverze PDF názvů používá lineární průchody s checkpointy zrušení