네이티브 Linux C ABI annotation 교환

hpdf_document_execute_json_v1은 기존 버전 지정 연산 디스크립터와 콜백 IO 인터페이스를 통해 annotations.export와 annotations.import를 노출합니다

먼저 PDF를 문서 컨텍스트에 로드하세요. annotation 임포트는 XFDF 바이트에 InputIO, 저장된 PDF에 OutputIO, JSON 결과 메타데이터에 ResultIO를 씁니다

{"schemaVersion":1,"type":"annotations.export","format":"xfdf"}

Export는 UTF-8 XFDF를 OutputIO에 쓰고 annotationCount, skippedAnnotationCount, decodedAttachmentBytes, outputBytes를 보고합니다

{"schemaVersion":1,"type":"annotations.import","format":"xfdf",
 "annotationLimits":{"maxBytes":1048576,"maxAnnotations":1000,
 "maxNodes":100000,"maxDepth":32,"maxWorkingBytes":67108864}}

임포트는 updated와 annotationProfile을 보고하며, PDF와 결과 콜백이 둘 다 성공한 뒤에만 저장된 리비전을 채택합니다

입력/출력 콜백 실패, 결과 콜백 실패, 취소는 이전에 커밋된 정확한 컨텍스트를 보존합니다. 외부 콜백은 이후 콜백 실패 전에 이미 부분 스트림을 받았을 수 있습니다

Capability JSON은 매핑 타입 프로파일, append 임포트 모드, 임베드 데이터, 전달 답장, popup 객체를 가진 annotationData를 알립니다. appearanceImport는 false입니다

Annotation 한도는 연산 용량을 낮출 수만 있고 올릴 수 없습니다. MaxBytes는 연산 메모리의 64분의 1로도 제한되고, 워킹 스토리지는 연산 메모리의 절반으로, export 바이트는 출력 한도로 제한됩니다

임포트는 CAdES, 신뢰, 타임스탬프 검증 설정에 기존 signaturePolicy 객체를 받고, annotation 권한과 인증된 DocMDP 정책을 강제합니다

빈 ABI 임포트는 갱신 0개를 반환하면서 커밋된 PDF 바이트를 유지합니다

로컬 named·explicit destination과 GoTo 액션은 공유 annotation 코덱을 통해 실제 페이지 참조와 제한된 정확한 10진 좌표를 보존합니다

ELF SONAME과 HOTPDF_1.0 심볼 버전은 변경되지 않으며, 기존 C 소비자는 같은 공개 연산 디스크립터를 계속 씁니다

매핑 프로파일과 네이티브 API · Linux C ABI · 폼 데이터 연산

표준 스탬프 appearance 전송은 base64 타입화 XML을 통해 실제 Form 스트림과 유계 비순환 폰트, 이미지, 그래픽 리소스를 보존합니다

FDF 객체 그래프 연산

{"schemaVersion":1,"type":"annotations.import","format":"fdf"}

format="fdf"를 고르면 같은 연산 디스크립터와 InputIO, OutputIO, ResultIO 콜백으로 바이너리 주석 그래프를 다룹니다. annotations.export는 FDF 바이트를 OutputIO에 씁니다

FDF 프로파일은 공급된 AP와 RO 리소스, 공유 간접 객체, 컨텍스트 민감 로컬 GoTo 페이지 참조를 보존합니다. 같은 페이지의 일치하는 주석 NM이 교체 대상을 식별하고, 이름 없거나 일치하지 않는 주석은 추가됩니다

성공한 FDF 가져오기는 annotationProfile="pdf-object-graph-v1"과 정수 updated 개수를 보고합니다. 갱신 0건 연산은 마지막으로 커밋된 정확한 PDF 바이트를 유지합니다

FDF annotationLimits는 maxObjects도 받습니다. 모든 한계는 감싸는 연산에 묶이며, 실패와 취소는 기존 콜백 트랜잭션 보장을 유지합니다

주석 전용 연산은 비어 있지 않은 Fields와 내장 Differences를 거부합니다. action 데이터는 실행 없이 전송됩니다

FDF 그래프 동작과 경계는 네이티브 주석 FDF 교환을, 네이티브 FDF 한계는 THPDFFDFOptions를 참고하세요

주석 제거

{"schemaVersion":1,"type":"annotations.remove","annotations":[{"page":0,"name":"review-note"}]}

annotations.remove는 현재 문서나 InputIO로 공급된 독립 PDF로 동작한 뒤, 컨텍스트를 커밋하기 전에 PDF OutputIO와 JSON ResultIO를 게시합니다

결과는 removed와 annotationProfile="page-and-nm-removal-v1"을 보고합니다. annotationLimits는 주석 수, 연산, 이름 바이트, 작업 저장소를 유계합니다

실패나 취소는 커밋된 컨텍스트를 보존합니다. 이미 쓴 바이트는 철회할 수 없으므로 호출자가 콜백 싱크를 직접 준비합니다