Annotation-Entfernung per JSON und Callback-Operationen

Die Windows- und nativen Linux-C-ABI-Operationseinstiegspunkte akzeptieren annotations.remove; das Anfrage-JSON wählt Annotationen aus, während PDF-Bytes durch Callback-IO laufen, statt in JSON eingebettet zu werden

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

annotations muss ein Array von Objekten sein, die einen ganzzahligen page innerhalb des tatsächlichen Eingabedokuments und einen nichtleeren String name enthalten; Namen matchen dekodiertes Unicode-NM exakt

Ein leeres Array oder unübertroffene gültige Identitäten sind ein No-Op; doppelte Selektoren, mehrdeutige gewählte Namen, fehlerhafte Annotation-Eigentümerschaft und Widget-Auswahl scheitern

Eingabe- und Veröffentlichungs-Lebenszyklus

Ohne Eingabe-IO arbeitet die Entfernung auf dem aktuell committeten Dokument des Handles; explizite Eingabe-IO liefert ein unabhängiges PDF und wird privat gestagt, statt den aktuellen Kontext zu ersetzen, bevor die Operation erfolgreich ist

Geben Sie password an, wenn die Authentifizierung verschlüsselter Eingabe es erfordert; tatsächliche Annotation-Berechtigung und signierte Dokument-Policy gelten weiterhin

PDF-Ausgabe-IO und Ergebnis-IO sind getrennte Senken; die Engine bereitet den Kandidaten vor, veröffentlicht sein PDF, veröffentlicht das begrenzte JSON-Ergebnis, prüft den Abbruch und ersetzt erst dann das aktuelle Dokument des Handles

Ein Lese-, Schreib-, Ergebnisveröffentlichungs-, Policy-, Budget- oder Abbruchfehler bewahrt den vorherigen committeten Kontext und erlaubt einen normalen Retry auf diesem Handle

Eine Callback-Senke kann bereits Bytes enthalten, wenn ein späterer Schreib-, Ergebnis-Callback oder Abbruch fehlschlägt; ein Kontext-Rollback kann diese externen Bytes nicht zurückziehen, also müssen Aufrufer ihre Senken selbst transaktional stagen und veröffentlichen

Wiederholte Entfernung gegen das committete Ergebnis gibt null zurück und veröffentlicht die exakte aktuelle Revision; vergleichen Sie die Callback-Ausgabe erst nach Prüfung des Operationsstatus

Ergebnis und Grenzen

Ein erfolgreiches Ergebnis hat schemaVersion: 1, statusCode: 0, status: "ok", removed, mediaType: "application/pdf" und annotationProfile: "page-and-nm-removal-v1"

removed schließt Popup- und Antwort-Kaskaden ein und zählt jede Annotation einmal, selbst wenn Abhängigkeiten einen Zyklus bilden

annotationLimits senkt die effektiven positiven Kapazitäten, die THPDFHeadlessAnnotationRemovalOptions beschreibt; Operations-, Objekt-, Seiten-, Ausgabe-, Ergebnis- und Ablaufzeitgrenzen bleiben unabhängig

Optionale signaturePolicy konfiguriert die vorhandene authentifizierte CMS-Policy, einschließlich der vom Operationseinstiegspunkt unterstützten erforderlichen CAdES-, Zeitstempel- und Trust-Anforderungen

Tatsächliche Entfernungen unterliegen AES-Annotation-Berechtigungen und authentifizierter Zertifizierungs-P1/P2/P3-Policy; eine erfolgreiche Passwortprüfung oder eine unsignierte Fehlermeldung ist kein Nachweis für Berechtigung oder vertrauenswürdige Zertifizierung

Prüfen Sie bei Fehlschlag den zurückgegebenen Operationsstatus und das verfügbare strukturierte Fehlerergebnis; eine fehlgeschlagene Ergebnis-Senke kann die Zustellung eines vollständigen Fehler-JSON-Dokuments verhindern

Siehe native Entfernungssemantik und gewöhnliche Windows-Dateijobs