레거시 XFA 라디오 버튼
THotPDF.ApplyXFAAsAcroForm과 FlattenLoadedXFA는 XFA 레이아웃이 내보낸 네이티브 템플릿과 데이터셋 반복 스코프로 라디오 멤버를 그룹화합니다
같은 작성 이름을 가진 반복 그룹은 독립적인 부모 필드가 됩니다. 각자 자기 Kids, V, DV, Opt를 가집니다. 표시되는 이름 접미사는 스코프 신원이 이미 해석된 뒤에 고유한 PDF 필드 이름을 할당합니다
반환된 필드 수는 부모 사전만 세는 것이 아니라 각 라디오 멤버를 포함해 레이아웃 콜백을 셉니다
각 멤버는 자기 정확한 원시 export를 선택된 그룹 데이터 값과 비교합니다. 선행·후행 공백, Unicode, 빈 export, 리터럴 해시 시퀀스가 정확하게 유지됩니다
빈, Off, XFAOn 접두 export는 서로 다른 appearance 별칭을 쓰되 Opt는 리터럴 export를 유지합니다. 같은 그룹 안의 중복 export는 RadiosInUnison을 설정합니다
네이티브 appearance는 실제 XFA shape, mark, 크기, 테두리, 캡션 스타일을 소비합니다. 인스턴스별 Unicode와 리치 텍스트 캡션, 실제 설치된 regular/bold/italic 프로그램, 순서 있는 패밀리 후보를 포함합니다
AutoFormAppearances := True를 설정하면 실제 자기 완결 AP 스트림을 생성합니다. PDF 2.0은 이 appearance를 강제하고, appearance 생성을 끄면 캡션 폰트 프로그램을 임베드하지 않으면서 그룹 신원과 선택을 보존합니다
그룹 읽기 전용 상태는 부모 필드에 저장됩니다. 멤버 상태, 페이지, 선택된 AP 참조는 각 위젯과 함께 유지됩니다
그룹 준비는 그룹을 채택하기 전에 모든 멤버 appearance를 검증한 뒤, 부모와 자식, 네이티브 객체, 폰트, 터치된 페이지 annotation에 하나의 그래프 트랜잭션을 씁니다
준비 실패나 취소는 부분 그룹을 남기지 않습니다. 롤백은 기존 필드 순서, 페이지 리소스, annotation 참조, 지연된 폰트 배선을 복원하므로 이전 페이지 그리기와 이후 재시도가 유효하게 남습니다
같은 문서 위치에서 재시도하려면 ApplyXFAAsAcroForm을 다시 호출하기 전에 원하는 현재 페이지를 복원하세요. 일반 레이아웃은 현재 페이지에서 재개합니다
트랜잭션은 하나의 완전한 라디오 그룹을 다룹니다. 이전에 완료된 무관한 필드, 이전 그룹, 레이아웃이 만든 페이지는 이 그룹 트랜잭션 밖입니다
라디오 수집과 준비는 제한된 입력, 필드, 객체, 글리프, 폰트, 직렬화 바이트 검사를 적용하고 문서 취소 토큰을 존중합니다. 문서의 기존 연산과 스크립트 예산은 바뀌지 않습니다
이식 가능한 HPDFXFABuildRadioButtonAppearance 팩토리는 공급 폰트 바이트에서 분리된 네이티브 멤버 그래프를 Windows와 Linux에서 준비합니다. 레거시 설치 폰트 소비자는 Windows GDI를 씁니다