Windows annotation XFDF exchange

Windows file joby i hpdf_document_execute_json_v1 exportují mapované anotace a připojují XFDF anotace přes autentizovaný Windows transakční most

Mapované typy a vlastnosti sdílí s nativním anotačním XFDF, tedy i ohraničené binární attachment/sound streamy, Unicode rich obsah, popup objekty i forward replies

File joby

{
  "schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
  "input": "source.pdf", "annotationInput": "annotations.xfdf",
  "output": "annotated.pdf", "password": "owner",
  "annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
  "budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
    "timeMilliseconds": 60000, "resultBytes": 16777216}
}

annotations.export používá stejný formát, vstup, výstup i volitelné heslo, jen místo PDF píše UTF-8 XFDF; import vyžaduje annotationInput

Výstup nesmí být aliasem PDF vstupu, XFDF vstupu ani dodaných trust/důkazních souborů, tedy ani existujícího hard linku; publikace zarezervuje výhradního dočasného sourozence, validuje ohraničené výsledky, flushne a zavře kandidáta a pak atomicky nahradí cíl

Selhání i zrušení zachovají existující kompletní cíl a odstraní dočasný soubor operace

Původní V1 callbacky

Použijte nezměněné hpdf_operation_v1 a hpdf_io_v1 z hotpdf_abi.h; anotační výměna nevyžaduje žádné font rozšíření

Cílové PDF nejdřív načtěte přes hpdf_document_load_from_io; import čte XFDF z InputIO, zapisuje kandidátní PDF do OutputIO a ohraničený JSON do ResultIO; export čte aktivní vlastněné PDF a zapisuje XFDF do OutputIO

U šifrovaného vstupu zopakujte operation password použitou k autentizaci načteného PDF; tato operace si implicitní heslo z dřívějšího load volání nenechává

Nový dokument i vlastněnou revizi osvojí jen úspěšné callbacky PDF i výsledku následované finálním checkpointem zrušení; neúspěšné callbacky vstupu, výstupu či výsledku, poškozené XML, vyčerpané limity i zrušení zachovají předchozí kontext

Callbacky mohou dostat kandidátní bajty, dřív než pozdější selhání; cíl vlastněný volajícím publikujte, až se vrátí HPDF_STATUS_OK

Politika, limity a výsledky

Import autentizuje stávající integritu podpisů i vazbu ESS podepsávajícího; certifikace P1 a P2 změny anotací zakáže, zatímco P3 dovolí anotační revizi zachovávající původní podepsané bajty

Importy AES-256 R5/R6 zachovají šifrovací parametry i původní prefix revize; prázdný import autentizuje politiku a zachová přesné aktuální bajty

signaturePolicy přijímá stávající Booleovské požadavky důvěry/timestampů/revokací i explicitní trust cesty popsané v Windows form-data exchange

annotationLimits může snížit maxBytes, maxAnnotations, maxNodes, maxDepth a maxWorkingBytes; hodnoty jsou kladná celočíselná JSON čísla a spočítané defaulty zvednout nemohou

Platí i rozpočty práce, výstupu, výsledku, objektů a stránek; callback operace přijmou elapsedMilliseconds jako dodatečně přísnější deadline

Export reportuje annotationCount, skippedAnnotationCount, decodedAttachmentBytes a outputBytes; import reportuje updated, outputBytes a annotationProfile rovné mapped-annotations-v1

Hranice

Capabilities inzerují anotační výměnu přes file-job a execute-json-v1, s importem jen pro append, obecným appearanceImport=false a scopovaným stampAppearanceImport=true

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

Obecný transport AP, náhrada/odebrání anotací, širší akce i anotační data FDF zůstávají samostatnou prací; vzdálené GoToR akce i lokální cíle používají své stávající ohraničené profily

Obecný ExecuteLoadedOperation i starší callback záznam job-handlů jsou samostatné vstupní body; Pascal volající mohou použít explicitní transaction třídu

Binární FDF výměna

Stejné file joby i V1 callbacky přijímají format="fdf"; souborové importy čtou binární FDF z annotationInput a exporty zapisují binární FDF do vybraného výstupu

FDF profil grafu objektů zachovává dodané appearance resource a sdílené nepřímé objekty a podporuje nahrazení podle shodné neprázdné anotační NM na stejné stránce

FDF import vrací annotationProfile="pdf-object-graph-v1"; updated počítá skutečné změny anotací a ekvivalentní import zachovává přesně aktuální revizi

FDF přidává maxObjects k controls kladných celých čísel annotationLimits a používá stávající authenticated politiku, ohraničenou publikaci kandidáta a pravidla vlastnění callbacků

Pascal volající mohou použít THPDFWindowsFormDataTransaction.ExportAnnotationsFDF a ImportAnnotationsFDF; ChangedAnnotations hlásí skutečné změny pro tento profil

Neprázdná FDF pole Fields a vložené rozdíly Differences vyžadují samostatné zacházení a selžou v čisto-anotačních operacích dřív než publikace

Odstranění anotací ve Windows poskytuje samostatnou připravenou transakci a JSON job pro přesné identity stránka-NM, beze změny sémantiky mapovaného XFDF připojování