네이티브 Linux C ABI 폼 교환
기존 버전화 hpdf_document_execute_json_v1 진입점과 hpdf_operation_v1 레코드로 scalar와 bounded 리치 AcroForm 값을 FDF 또는 XFDF로 익스포트·임포트합니다
ABI 버전, 익스포트 심볼, 콜백 레코드 레이아웃은 바뀌지 않습니다
| 연산 | InputIO | OutputIO | ResultIO |
|---|---|---|---|
forms.export | 선택적 PDF 입력. 없으면 로드된 문서를 씁니다 | 실제 FDF 또는 XFDF 바이트 | JSON 형식, 미디어 타입, 필드 개수, 출력 바이트 수 |
forms.import | FDF 또는 XFDF 바이트 필수. 대상 PDF는 이미 로드되어 있어야 합니다 | 준비된 갱신 PDF 바이트 | JSON 형식, 미디어 타입, 필드 개수, 바뀐 필드 개수 |
두 연산 모두 format이 정확히 fdf 또는 xfdf여야 하고 schemaVersion은 1로 설정합니다
{"schemaVersion":1,"type":"forms.export","format":"xfdf"}
{"schemaVersion":1,"type":"forms.import","format":"fdf","fontFamily":"DejaVu Sans","fontSize":12}
지원 값에는 중첩 Unicode 텍스트 필드, checkbox·radio 익스포트 상태, scalar 선택, 다중 선택이 있습니다. UTF-8과 BOM이 붙은 UTF-16 XFDF를 받습니다
FDF RV와 XFDF value-richtext는 inline-xhtml-v1 리치 프로필을 쓰며, fontFamily가 실제 regular, bold, italic, bold-italic 폰트 프로그램을 고릅니다
서명·푸시버튼 필드는 값을 임포트하지 않고 이름으로만 표현되어, 채워진 서명과 기존 버튼 동작을 유지합니다
임포트는 실제 appearance를 재생성하고 인증된 AES R5/R6 암호화, 읽기 전용 필드, DocMDP 권한, FieldMDP 잠금을 보존합니다
선택적 signaturePolicy는 requireCAdES, requireTimestamp, requireTimestampRevocation, 기존 신뢰 파일 또는 PEM 설정, 서명 옵션 스키마를 쓰는 revocationInfo를 받습니다
명시적인 서명된 폐기 정책은 RFC 3161 문서 timestamp 안의 것을 포함해 실제 임베드 서명 속성을 검증합니다. 외부에서 공급한 상태 바이트는 누락된 필수 속성을 대체하지 못합니다
선택적 formDataLimits는 양의 정수 maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits, maxTotalCodeUnits 설정을 담고, 네이티브 기본값과 연산 용량으로 한정됩니다
기존 limits.memoryBytes, outputBytes, resultBytes는 준비와 발행을 추가로 제한합니다. 교환 한도를 소진하면 HPDF_STATUS_BUDGET_EXCEEDED를 돌려줍니다
콜백은 호출 스레드에서 동기로 실행되고 부분 읽기·쓰기를 반환할 수 있습니다. 폼 입력 읽기, 파싱, appearance 준비, 결과 발행 동안 취소가 관찰됩니다
로드된 대상 핸들은 갱신 PDF와 JSON 결과 콜백이 성공한 뒤에만 커밋합니다. 콜백 오류나 취소는 이전 상태를 유지하고, 호출자 소유 싱크가 이미 받아들인 바이트는 호출자 책임으로 남습니다
어노테이션 XFDF 연산은 popup/reply 참조와 임베드 파일·사운드 스트림을 갖춘 별도 append 프로필을 씁니다
임의 CSS 레이아웃, 임베드 FDF 파일, 임의 액션, 증분 FDF 리비전 교환은 폼 데이터 프로필 밖입니다