Annotation removal JSON and callback operations

Vstupní body operací Windows i nativního Linux C ABI přijímají annotations.remove; požadavek JSON vybírá anotace, zatímco bajty PDF putují přes callback IO místo vkládání do JSON

{
  "schemaVersion": 1,
  "type": "annotations.remove",
  "annotations": [{"page": 0, "name": "review-note"}],
  "annotationLimits": {
    "maxAnnotations": 4096,
    "maxOperations": 1000000,
    "maxNameBytes": 1048576,
    "maxWorkingBytes": 33554432
  }
}

annotations musí být pole objektů obsahujících celočíselný page v rámci skutečného vstupního dokumentu a neprázdný řetězec name; názvy odpovídají dekódovanému Unicode NM exaktně

Prázdné pole či neodpovídající platné identity jsou no-op; duplicitní selektory, dvojsmyslné vybrané názvy, poškozené vlastnictví anotací a výběr Widgetu selžou

Životní cyklus vstupu a publikace

Bez vstupního IO operuje odebrání na aktuálním commitovaném dokumentu handle; explicitní vstupní IO dodává nezávislé PDF a je odložený soukromě místo nahrazení aktuálního kontextu dřív, než operace uspěje

Dodajte password, když autentizace šifrovaného vstupu to vyžaduje; skutečné oprávnění anotací a politika podepsaných dokumentů stále platí

Výstupní IO PDF a výsledkový IO jsou samostatné stoky; engine připraví kandidáta, publikuje jeho PDF, publikuje ohraničený JSON výsledek, zkontroluje zrušení a teprve poté nahradí aktuální dokument handle

Selhání čtení, zápisu, publikace výsledku, politiky, rozpočtu či zrušení zachovává předchozí commitovaný kontext a dovoluje normální opakování na tomto handle

Callback stoka může už obsahovat bajty, když pozdější zápis, result callback či zrušení selže; rollback kontextu nemůže tyto externí bajty stáhnout zpět, takže volající musí své stoky odložit a publikovat transakčně

Opakované odebrání na commitovaném výsledku vrátí nulu a publikuje exaktní aktuální revizi; porovnávejte callback výstup jen po kontrole stavu operace

Výsledek a meze

Úspěšný výsledek má schemaVersion: 1, statusCode: 0, status: "ok", removed, mediaType: "application/pdf" a annotationProfile: "page-and-nm-removal-v1"

removed zahrnuje kaskády popup a replies a počítá každou anotaci jednou, i když závislosti tvoří cyklus

annotationLimits snižuje efektivní kladné kapacity popsané THPDFHeadlessAnnotationRemovalOptions; limity paměti operace, objektů, stránek, výstupu, výsledku i uplynulého času zůstávají nezávislé

Volitelné signaturePolicy konfiguruje stávající autentizovanou CMS politiku, včetně požadovaného CAdES, časových razítek a požadavků důvěry podporovaných vstupním bodem operace

Skutečná odebrání podléhají oprávněním anotací AES a autentizované certifikační politice P1/P2/P3; úspěšná kontrola hesla či nepodepsaná chybová zpráva nejsou důkazem oprávnění či důvěryhodné certifikace

Při selhání zkontrolujte vrácený stav operace a dostupný strukturovaný chybový výsledek; selhaná výsledková stoka může zabránit doručení kompletního chybového JSON dokumentu

Viz nativní sémantika odebrání a běžné Windows file joby