네이티브 주석 제거

0-기반 페이지 인덱스와 정확한 Unicode NM 값으로 기존 페이지 주석을 제거하면서 원본 PDF 리비전을 유지하고 별도의 증분 출력을 준비합니다

네이티브 진입점은 THPDFHeadlessDocument.SaveAnnotationRemovalsToFile이고, 일반 Windows 문서는 THPDFWindowsFormDataTransaction.RemoveAnnotations를 씁니다

identity와 의존성

각 identity는 유효한 페이지 인덱스와 비어 있지 않은 이름을 담습니다. 매칭은 PDF 텍스트 문자열을 디코딩한 뒤 대소문자를 구분하며, Unicode 정규화나 표시 텍스트와의 매칭은 없습니다

다른 페이지의 같은 이름은 다른 주석을 식별합니다. 선택된 페이지에 그 이름이 없으면 no-op입니다

주석을 제거하면 거기 의존하는 팝업과 답글도 제거되는데, 중첩 답글과 팝업 의존성을 포함합니다. 방문 집합이 의존성 사이클을 유한하게 만들고, 제거된 각 주석은 반환 개수에 한 번씩 기여합니다

팝업만 제거하면 소유자를 유지하고 소유자의 Popup 항목을 지웁니다. 관련 없는 주석은 원래 순서와 데이터를 유지합니다

중복 요청 identity, 한 페이지의 모호한 요청 이름, 여러 페이지 배열 항목이 공유하는 주석 사전은 게시 전에 실패를 일으킵니다

게시와 안전

네이티브 메서드는 성공과 실패 모두에서 로드된 문서를 그대로 둡니다. 제거를 적용하려면 결과 PDF를 로드하세요

게시는 준비된 파일과 원자적 목적지 교체를 씁니다. 실패하거나 취소된 준비는 기존 목적지를 보존하며, 목적지는 로드된 소스를 별칭해서는 안 됩니다

제거 0건은 현재 소스 리비전의 정확한 복사본을 게시합니다. 결과 문서에 같은 제거를 반복하면 0을 반환하고 바이트를 유지합니다

증분 리비전은 오래된 바이트와 리비전을 유지하면서 현재 페이지 그래프에서 주석을 제거합니다. 이 연산은 보안 삭제나 redaction이 아니며, 삭제된 내용은 파일 이력에서 복구 가능할 수 있습니다

권한과 자원 한계

실제 제거에는 암호화 입력의 인증된 주석 권한과 서명 입력의 시그니처 정책 인정이 필요합니다. 암호화 PDF를 성공적으로 여는 것만으로 주석 변경 권한이 주어지지 않습니다

인증된 certification P1과 P2는 주석 변경을 거부합니다. 허용되는 P3 갱신은 원본 서명 바이트를 유지하며, 시그니처 무결성과 인증서 바인딩 검사는 실제 문서에 적용됩니다

필요한 인증서 신뢰, 타임스탬프, 폐기 정책은 응용 프로그램의 보안 요구 사항에 그 검사가 있을 때 명시적으로 구성하세요

제거 옵션은 주석 수, 연산 작업, 이름 저장, 작업 메모리를 유계하며 문서나 트랜잭션과 공유하는 협력적 취소가 적용됩니다

현재 경계

선택된 Widget, 또는 제거 의존성을 통해 도달한 Widget은 거부됩니다. 폼 필드 제거에는 AcroForm 필드 트리 트랜잭션이 필요하기 때문입니다. 이 API는 필드를 삭제하거나 위젯을 조용히 분리하지 않습니다

이 연산은 주석 action이나 스크립트를 실행하지 않고, 제거를 Redact 주석 적용으로 해석하지 않습니다

annotations.remove, 명시적 입력 IO, 별개의 PDF, 결과, 컨텍스트 커밋 단계는 JSON과 콜백 연산을 참고하세요