주석 제거 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과 정확히 일치합니다

빈 배열이나 일치하지 않는 유효 identity는 no-op입니다. 중복 selector, 모호한 선택 이름, malformed 주석 소유, 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는 팝업과 답글 캐스케이드를 포함하며, 의존성이 사이클을 이뤄도 각 주석을 한 번만 셉니다

annotationLimits는 THPDFHeadlessAnnotationRemovalOptions가 기술하는 유효 양수 용량을 낮춥니다. 연산 메모리, 객체, 페이지, 출력, 결과, 경과 시간 한계는 독립적으로 남습니다

선택적 signaturePolicy는 연산 진입점이 지원하는 필수 CAdES, 타임스탬프, 신뢰 요구를 포함해 기존 인증 CMS 정책을 구성합니다

실제 제거는 AES 주석 권한과 인증된 인증 P1/P2/P3 정책의 대상입니다. 성공한 암호 검사나 서명 없는 오류 메시지는 권한이나 신뢰된 인증의 증거가 아닙니다

실패 시 반환된 연산 상태와 사용 가능한 구조화 오류 결과를 확인하세요. 실패한 결과 싱크는 완전한 오류 JSON 문서의 전달을 막을 수 있습니다

네이티브 제거 의미론과 일반 Windows 파일 작업을 참고하세요