표준 XFDF 스탬프 appearance 전송

스탬프 주석은 Adobe XFDF appearance 요소를 통해 실제 PDF appearance 스트림과 리소스 사전을 내보내고 가져올 수 있습니다

stamp-typed-xml-v1 프로파일은 Adobe XFDF 3 명세가 기술한 대로 base64 인코딩 UTF-8 타입화 XML을 씁니다. 디코딩된 페이로드는 완전한 PDF나 FDF 파일이 아니라 PDF 객체를 나타냅니다

매핑 리소스

최상위 DICT KEY="AP"는 필수 normal N Form 스트림과 선택적 rollover R, down D 스트림을 담습니다

Form은 유한한 네 숫자 BBox, 선택적 여섯 숫자 Matrix, 폰트와 내장 프로그램, 이미지와 소프트 마스크, 색 공간, 패턴, 셰이딩, 함수, 그래픽 상태를 포함한 지원 리소스 그래프를 유지합니다

타입화 값에는 DICT, STREAM, ARRAY, INT, FIXED, NAME, BOOL, NULL이 있습니다. 사전 키와 이름 값은 의미론적 PDF 이름을 보존하고, 유효한 소스 숫자 토큰은 십진 정밀도를 보존합니다

스트림 DATA는 ENCODING="HEX" 또는 7비트 ENCODING="ASCII"와 함께 MODE="RAW" 또는 MODE="FILTERED"를 지원합니다. RAW는 인코딩된 바이트와 그 Filter/DecodeParms를 유지하고, FILTERED는 낡은 필터링 메타데이터 없이 디코딩된 바이트를 설치합니다

내보내기는 RAW 16진수 데이터를 쓰고 실제 바이트에서 스트림 Length를 다시 만듭니다. 인증된 암호화 스트림은 교환 전에 디코딩 또는 복호화되고 저장된 리비전에서 올바르게 암호화됩니다

공유 비순환 리소스는 동등한 값으로 확장되어 독립적인 객체 참조로 가져옵니다. 이 프로파일은 참조 identity를 보존하지 않습니다

내장 폰트 프로그램 바이트와 내장 플래그는 라이선스 비트를 바꾸거나 다른 폰트 프로그램으로 대체하지 않고 보존됩니다

API와 콜백

네이티브 트랜잭션에는 HPDFExportHeadlessAnnotationsXFDF와 SaveAnnotationsXFDFToFile을, 호출자 소유 그래프 어댑터에는 HPDFXFDFExportAnnotations와 HPDFXFDFImportAnnotations의 유계 오버로드를 쓰세요

기존 Windows 파일 작업과 V1 콜백, Linux V1 콜백은 기존 주석 연산과 레코드 레이아웃을 씁니다

capability는 일반 주석 appearance에 appearanceImport=false를 유지하고 stampAppearanceImport=true, appearanceProfile="stamp-typed-xml-v1", appearanceTypes=["stamp"], appearanceDataModes=["RAW","FILTERED"], appearanceEncodings=["ASCII","HEX"], appearanceResources="acyclic-expanded-graph"를 추가합니다

트랜잭션과 한계

입력 XML, base64, 이름, 스트림 인코딩, 리소스 타입, 의미론적 사전 키, Form 지오메트리는 게시 전에 검증됩니다. malformed 데이터, 사이클, 누적 한계 소진, 취소는 전체 트랜잭션을 실패시킵니다

XFDF 한계는 주석 연산 전반에서 총 입력/출력, XML과 그래프 노드, 깊이, 스트림 저장소, 작업 예약을 커버합니다

가져오기는 현재 저장되지 않은 그래프 상태, AES R5/R6 보안, 인증된 certification 제한을 유지합니다. P1/P2는 주석 변경을 거부하고 P3는 원본 서명 접두부와 진짜 시그니처 무결성을 보존합니다

권한 있는 빈 가져오기는 0을 반환하고 저장되지 않은 변경이 없을 때 현재 PDF 바이트를 정확히 유지합니다. dirty 그래프 변경은 버려지지 않고 저장됩니다

Windows와 Linux 콜백 컨텍스트는 PDF 출력, JSON 결과 출력, 최종 취소 검사가 모두 성공한 뒤에야 준비된 PDF를 채택합니다. 실패하거나 부분적인 콜백은 이전 컨텍스트를 유지하고, 첫 실패 writer는 sticky로 남습니다

주석 전용 가져오기는 빈 fields 컨테이너와 값 없는 필드 선언을 no-op 메타데이터로 받습니다. 실제 폼 값과 리치 필드 갱신에는 별개의 인증된 폼 데이터 연산이 필요합니다

남은 작업

일반 주석 AP 전송, appearance 상태 사전, 문자열 리소스 값, 비어 있지 않은 DEFINE/REF 참조, 순환 그래프, Redact overlayappearance, 주석 교체/제거, FDF 주석 교환은 별개의 작업입니다

전송된 스탬프 appearance가 없는 지오메트리 및 텍스트 주석은 기존 동작을 유지합니다. 이 연산은 임의 주석 appearance를 합성하거나 action을 실행하지 않습니다

공유 유계 어댑터는 페이로드 변환 전에 raw 주석 키와 확장 AP 그래프를 예약하고, 그 표현들을 할당하기 전에 base64 공백과 디코딩된 DATA를 예약합니다. PDF 이름 변환은 취소 체크포인트가 있는 선형 패스를 씁니다