Annotation removal JSON and callback operations
De operation-entry points van de Windows- en native Linux C ABI accepteren annotations.remove; request-JSON selecteert annotaties, terwijl PDF-bytes via callback-IO reizen in plaats van in de JSON te zitten
{
"schemaVersion": 1,
"type": "annotations.remove",
"annotations": [{"page": 0, "name": "review-note"}],
"annotationLimits": {
"maxAnnotations": 4096,
"maxOperations": 1000000,
"maxNameBytes": 1048576,
"maxWorkingBytes": 33554432
}
}
annotations moet een array van objecten zijn met een integer page binnen het echte invoerdocument en een niet-lege string name; namen matchen decoded Unicode NM exact
Een lege array of niet-matchende geldige identiteiten is een no-op; gedupliceerde selectors, ambigue geselecteerde namen, misvormd annotatie-eigenaarschap en Widget-selectie falen
Invoer- en publicatielevenscyclus
Zonder input-IO opereert removal op het huidige gecommitte document van de handle; expliciete input-IO levert een onafhankelijke PDF aan en wordt privé gestaged in plaats van de huidige context te vervangen vóór de operatie slaagt
Geef password op wanneer authenticatie van versleutelde invoer dat vraagt; echte annotation-permission en signed-document-beleid blijven gelden
PDF-output-IO en resultaat-IO zijn aparte sinks; de engine bereidt de candidate voor, publiceert diens PDF, publiceert het begrensde JSON-resultaat, checkt annulering, en pas daarna vervangt hij het huidige document van de handle
Een lees-, schrijf-, resultaatpublicatie-, beleids-, budget- of annuleringsfout behoudt de vorige gecommitte context en staat een normale retry op die handle toe
Een callback-sink kan al bytes bevatten wanneer een latere write, result-callback of annulering faalt; context-rollback kan die externe bytes niet terugdraaien, dus callers moeten hun eigen sinks transactioneel stagen en publiceren
Herhaalde removal tegen het gecommitte resultaat geeft nul terug en publiceert de exacte huidige revisie; vergelijk callback-uitvoer pas na het checken van de status van de operatie
Resultaat en limieten
Een geslaagd resultaat heeft schemaVersion: 1, statusCode: 0, status: "ok", removed, mediaType: "application/pdf" en annotationProfile: "page-and-nm-removal-v1"
removed omvat popup- en reply-cascades en telt elke annotatie een keer, zelfs wanneer afhankelijkheden een cyclus vormen
annotationLimits verlaagt de effectieve positieve capaciteiten die THPDFHeadlessAnnotationRemovalOptions beschrijft; limieten voor operatiegeheugen, objecten, pagina's, uitvoer, resultaat en verstreken tijd blijven onafhankelijk
Optionele signaturePolicy configureert het bestaande geauthenticeerde CMS-beleid, inclusief vereiste CAdES, timestamps en trust-eisen die de operation-entry point ondersteunt
Echte verwijderingen vallen onder AES annotation-permissions en geauthenticeerd certification P1/P2/P3-beleid; een geslaagde password-check of een unsigned foutmelding is geen bewijs van permission of vertrouwde certificering
Check bij falen de teruggegeven operation-status en het beschikbare gestructureerde foutresultaat; een gefaalde result-sink kan de aflevering van een compleet fout-JSON-document verhinderen