注釈削除の JSON とコールバック操作

Windows とネイティブ Linux C ABI の操作エントリポイントは annotations.remove を受け入れます。要求 JSON が注釈を選択し、PDF バイトは JSON に埋め込まれずコールバック IO を通じて渡されます

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

annotations は、実際の入力ドキュメント内の整数 page と空でない文字列 name を含むオブジェクトの配列でなければなりません。名前はデコード済み Unicode NM と正確に一致します

空の配列や一致しない有効な識別子は no-op です。重複セレクタ、曖昧な選択名、不正な注釈所有、Widget 選択は失敗します

入力と公開のライフサイクル

入力 IO がない場合、削除はハンドルの現在のコミット済みドキュメントに対して行われます。明示的な入力 IO は独立した PDF を供給し、操作が成功するまで現在のコンテキストを置き換えず非公開でステージングされます

暗号化入力の認証に必要な場合は password を供給してください。実際の注釈権限と署名ドキュメントポリシーは引き続き適用されます

PDF 出力 IO と結果 IO は別個のシンクです。エンジンは候補を準備し、PDF を公開し、境界付き JSON 結果を公開し、キャンセルを検査してから、ハンドルの現在のドキュメントを置き換えます

読み取り、書き込み、結果公開、ポリシー、予算、キャンセルの失敗は以前のコミット済みコンテキストを保持し、そのハンドルでの通常の再試行を可能にします

後続の書き込み、結果コールバック、キャンセルが失敗したとき、コールバックシンクはすでにバイトを含んでいる場合があります。コンテキストのロールバックはそれらの外部バイトを取り消せないため、呼び出し側は自身のシンクをトランザクション的にステージングし公開しなければなりません

コミット済み結果に対する繰り返し削除は 0 を返し、現在のリビジョンを正確に公開します。コールバック出力の比較は、操作ステータスの確認後に行ってください

結果と上限

成功した結果は schemaVersion: 1、statusCode: 0、status: "ok"、removed、mediaType: "application/pdf"、annotationProfile: "page-and-nm-removal-v1" を持ちます

removed には popup と返信のカスケードが含まれ、依存関係がサイクルを形成しても各注釈は 1 回だけ数えられます

annotationLimits は THPDFHeadlessAnnotationRemovalOptions が記述する実効正容量を引き下げます。操作メモリ、オブジェクト、ページ、出力、結果、経過時間の上限は独立したままです

オプションの signaturePolicy は既存の認証済み CMS ポリシーを設定します。操作エントリポイントがサポートする必須 CAdES、タイムスタンプ、信頼要件を含みます

実際の削除には AES 注釈権限と認証済み認定 P1/P2/P3 ポリシーが適用されます。パスワード確認の成功や未署名のエラーメッセージは、権限や信頼できる認定の証拠になりません

失敗時は、返された操作ステータスと利用可能な構造化エラー結果を確認してください。失敗した結果シンクは完全なエラー JSON ドキュメントの配信を妨げる可能性があります

ネイティブ削除セマンティクスと通常の Windows ファイルジョブを参照してください