네이티브 Linux ABI 폼 appearance

hpdf_document_execute_json_v1은 forms.fill로 로드된 AcroForm 필드를 채우고, 기본으로 대응하는 normal appearance를 만들며 원본 PDF 리비전, 암호, 보안 사전, 문서 ID를 유지합니다

{"schemaVersion":1,"type":"forms.fill","fields":[
  {"name":"Notes","value":"First line Ω\nSecond café","fontSize":13},
  {"name":"Combo","value":"two"},
  {"name":"Colors","values":["blue","red"]},
  {"name":"Check","checked":true},
  {"name":"Radio","checked":true,"onState":"B"},
  {"name":"Submit","caption":"Send Ω"}
]}

필드 값과 appearance

텍스트 필드는 value 또는 typed richTextRuns를 받습니다. richTextRuns와 함께 공급한 값은 CR 문단 구분자까지 파생 평문과 정확히 일치해야 합니다

평문 appearance는 상속된 multiline, comb, 정렬, 회전 설정을 따르고 선택한 Unicode TrueType 폰트를 임베드합니다. 스타일 run은 명시적인 폰트 스타일, 크기, 색, 정렬, 문단 나눔과 장식을 담습니다

암호 텍스트 필드는 실제 저장 필드 값과 원본 암호화를 유지하면서 appearance와 글리프 매핑을 Unicode scalar당 글머리 기호 하나로 가립니다. 파일 선택 필드는 선택한 파일을 열지 않고 literal Unicode 경로를 표시합니다

choice 필드는 value 문자열 하나 또는 완전한 values 배열 둘 중 하나만 받습니다. 익스포트 값은 옵션 표시 텍스트로 대응하고, 다중 선택은 옵션 인덱스 순으로 정렬되며, 빈 배열은 선택을 지웁니다

checkbox와 radio 그룹은 Boolean checked가 필요합니다. onState의 기본값은 Yes이고 명시적으로 공급하면 일치하는 radio 위젯을 선택하며, 지우기는 필드와 위젯 상태를 모두 갱신합니다

푸시버튼은 caption이 필요하고, 선택한 임베드 Unicode 폰트로 그려집니다

forms.read는 모든 choice 필드의 완전한 values 배열을 돌려줍니다. 지운 뒤의 빈 배열도 포함이며, scalar value 멤버도 계속 제공됩니다

리치 필드에는 forms.read가 저장된 XHTML richText 문자열도 반환합니다. 일반 값 교체는 RV를 동기화하고, 스타일 run은 appearance 생성이 필요합니다

옵션과 발행

각 편집은 fontFamily(기본 DejaVu Sans), fontSize(12), padding(2), characterSpacing(0), wordSpacing(0), paintWhiteBackground(true)를 받습니다

typed 리치 편집은 fontFamilies 배열과 run별 패밀리 선택도 쓸 수 있고, 배열이 없으면 기존 단일 패밀리 동작을 유지합니다

텍스트 편집은 값만 갱신할 때 appearance:false를 명시할 수 있습니다. choice와 버튼 편집은 appearance 생성이 필요합니다

모르는 필드, 중복 편집, 잘못된 선택, 과도한 comb 값, 형식이 틀린 매개변수, 취소, 리소스 소진, 실패한 콜백은 현재 로드된 문서를 그대로 둡니다. 출력은 바이너리 발행 콜백이 실행되기 전에 준비됩니다

연산 결과에는 updated와 현재 필드 목록이 들어갑니다. 지원 appearance 타입은 formAppearances 기능 배열로 조회하세요

네이티브 C ABI 인수 검증은 실제 평문과 AES R5/R6 폼 출력을 만듭니다. 독립 pypdf·MuPDF 검사가 선택 인덱스, 위젯 상태, 임베드 폰트, Unicode 값, 암호화, 실제 appearance 픽셀을 살핍니다

네이티브 Linux C ABI · 서명 워크플로 · 남은 전달 계획