Native Linux C ABI annotation exchange
hpdf_document_execute_json_v1 vystavuje annotations.export a annotations.import přes stávající verzovaný operation deskriptor a callback IO rozhraní
PDF nejdřív načtěte do kontextu dokumentu; import anotací používá InputIO pro XFDF bajty, OutputIO pro uložené PDF a ResultIO pro JSON metadata výsledku
{"schemaVersion":1,"type":"annotations.export","format":"xfdf"}
Export zapíše UTF-8 XFDF do OutputIO a reportuje annotationCount, skippedAnnotationCount, decodedAttachmentBytes i outputBytes
{"schemaVersion":1,"type":"annotations.import","format":"xfdf",
"annotationLimits":{"maxBytes":1048576,"maxAnnotations":1000,
"maxNodes":100000,"maxDepth":32,"maxWorkingBytes":67108864}}
Import reportuje updated i annotationProfile a potvrzenou revizi osvojí až poté, co uspějí jak callback PDF, tak výsledku
Selhání vstupních/výstupních callbacků, selhání result callbacku i zrušení zachovají přesný dříve potvrzený kontext; externí callbacky už mohly dostat částečný stream dřív, než selhal pozdější callback
Capability JSON inzeruje annotationData s mapovaným typovým profilem, append režimem importu, vloženými daty, forward replies i popup objekty; appearanceImport je false
Limity anotací mohou kapacity operace snížit, zvýšit je nemohou; MaxBytes se navíc ořeže dělením paměti operace 64, pracovní úložiště polovinou paměti operace a exportní bajty limitovým výstupem
Import přijímá stávající objekt signaturePolicy pro nastavení CAdES, důvěry i validace timestampů a vynucuje oprávnění anotací i autentizovanou politiku DocMDP
Prázdné ABI importy si ponechají potvrzené PDF bajty, zatímco vrátí nula aktualizací
Lokální pojmenované a explicitní cíle a GoTo akce zachovávají skutečné reference stránek a ohraničené přesné desetinné souřadnice přes sdílený anotační kodek
ELF SONAME i symbolová verze HOTPDF_1.0 zůstávají nezměněné a stávající C konzumenti dál používají tentýž veřejný operation deskriptor
Mapovaný profil a nativní API · Linux C ABI · Form-data operace
Transport standardních stamp appearance přenáší skutečné Form streamy a ohraničené acyklické zdroje písem, obrázků a grafiky přes base64 typed XML
Operace grafu objektů FDF
{"schemaVersion":1,"type":"annotations.import","format":"fdf"}
Zvolte format="fdf" pro binární grafy anotací přes tentýž operation deskriptor a callbacky InputIO, OutputIO a ResultIO; annotations.export zapisuje bajty FDF do OutputIO
FDF profil zachovává dodané resource AP a RO, sdílené nepřímé objekty a kontextově citlivé lokální odkazy na stránky GoTo; shodná anotační NM na stejné stránce identifikuje náhradu, zatímco nepojmenované či neshodné anotace se připojují
Úspěšný FDF import hlásí annotationProfile="pdf-object-graph-v1" a celočíselný počet updated; operace s nulovou aktualizací zachovává přesné poslední potvrzené bajty PDF
FDF annotationLimits přijímá navíc maxObjects; všechny limity zůstávají omezené nadřazenou operací, přičemž selhání a zrušení si ponechávají stávající transakční záruky callbacků
Čisto-anotační operace odmítají neprázdná pole Fields a vložené rozdíly Differences; data akcí se přenášejí bez jejich vykonání
Viz chování a meze grafu FDF a nativní limity FDF
Odstranění anotací
{"schemaVersion":1,"type":"annotations.remove","annotations":[{"page":0,"name":"review-note"}]}
annotations.remove použije aktuální dokument nebo nezávislé PDF dodané přes InputIO, pak publikuje PDF do OutputIO a JSON do ResultIO dřív, než potvrdí kontext
Výsledek hlásí removed a annotationProfile="page-and-nm-removal-v1"; annotationLimits ohraničuje počet anotací, operací, bajtů názvů i pracovního úložiště
Selhání či zrušení zachovává potvrzený kontext; volající si stagují callback sinky sami, protože už zapsané bajty nelze vzít zpět