XFA 프로퍼티 스키마 기본값
선언된 font, para, edge, color, comb, textEdit, hyphenation, margin 노드는 일반 JavaScript와 FormCalc 실행에서 지원하는 스키마 속성 기본값을 노출합니다
네이티브 HPDFXFAResolveFormInstanceProperty는 템플릿이 속성을 생략했을 때 같은 카탈로그를 쓴 뒤 일치하는 폼 인스턴스 재정의를 적용합니다
유효 값
const field = xfa.resolveNode("main.row[1].cell");
const face = field.font.typeface;
const width = field.border.edge.thickness;
field.font.size = "0.75pt";
field.font.weight = "";
field.border.edge.setAttribute("hidden", "presence");
const currentPresence = field.border.edge.presence;
명시적 템플릿 속성과 인스턴스별 재정의는 기본값보다 우선합니다. 명시적으로 저장된 빈 문자열도 마찬가지입니다. 스키마 조회는 소스 템플릿에 기본 속성을 끼워 넣지 않습니다
새 반복 인스턴스는 스키마와 템플릿 기본값으로 시작하고, 기존 인스턴스는 자기만의 유효한 재정의를 유지합니다
| 클래스 | 지원 기본값 |
|---|---|
| font | Courier, 10pt, normal 굵기와 자세, 수평·수직 스케일 100퍼센트, 베이스라인 시프트와 자간 0, 커닝 없음, 밑줄·윗줄·취소선 없음 |
| para | 왼쪽·위 정렬, 행 높이·들여쓰기·간격 0, widow와 orphan 0, 선언된 탭 정지 없음 |
| edge | square 캡, visible presence, solid 스트로크, 0.5pt 두께 |
| color | sRGB, fill 아래는 흰색, edge나 corner 아래는 검은색 |
| comb | numberOfCells 0 |
| textEdit | 자동 스크롤 정책, field에서는 한 줄, draw에서는 여러 줄, allowRichText는 연결된 exData 콘텐츠를 따름 |
| hyphenation | 하이픈 넣기와 대문자 단어 플래그 꺼짐, push와 remain 카운트 3, 단어 수 7 |
| margin | 선언된 inset 0 |
| checkButton | size=10pt, shape=square, mark=default, allowNeutral=0 |
| caption | placement=left, presence=visible, 자연 크기 계산을 위한 reserve=-1 |
카탈로그 값은 선언된 스키마 속성을 기술합니다. 계산되는 위젯 margin 지오메트리는 여기에 더해 경계와 폰트 메트릭에 의존할 수 있습니다
corner 기본값은 inverted=0, join=square, radius=0in, presence=visible, stroke=solid, thickness=0.5pt이고 기본 색은 검은색입니다
지원되는 부재 프로퍼티는 생성과 반복 프로토타입 클론 때 이 스키마 기본값으로 초기화됩니다
UI는 공통 프로토타입 속성을 노출합니다. passwordEdit는 hScrollPolicy=auto, passwordChar=*가 기본이고, choiceList는 open=userControl, textEntry=0, commitOn=select가 기본입니다
Value는 공통 프로토타입 속성과 override=0, 빈 relevant 속성을 노출합니다. 지원되는 스칼라 값 클래스는 공통 프로토타입 속성과 빈 name을 노출합니다
Image는 aspect=fit, transferEncoding=base64가 기본입니다. line은 역슬래시 기울기가, arc는 각도 0과 360의 circular=0이 기본이고, line/arc/rectangle은 hand=even이 기본입니다
생성된 이미지·그래픽 값은 네이티브 기본값, 인스턴스별 프로퍼티, 실제 draw 소비자를 유지합니다
네이티브 스칼라 값 생성은 field의 현재 유효 값으로 실체화된 값 콘텐츠를 초기화합니다
생성된 UI 선택은 실제 런타임 위젯 분류와 저장된 field 플래그를 통해 이 속성을 소비합니다
저장된 PDF 출력
플래트닝 스타일 채널은 소수 pt 값을 보존합니다. AcroForm 기본 외관과 경계 사전은 0.75pt, 0.125pt 같은 크기를 정수 pt로 반올림하지 않고 유지합니다
그래픽 모서리 두께는 기본 0.5pt 폭을 포함해 PDF 콘텐츠 스트림에서 소수 값을 유지합니다. 숫자 출력은 시스템 소수점 구분자와 무관하게 유지됩니다
HPDFXFAFlatten은 field만 뽑아 낼 때 없는 draw 콜백을 받아들이고, 빈 콜백을 호출하지 않은 채 그래픽 출력을 건너뜁니다
적용 범위
생성된 exData 프로퍼티는 maxLength=-1, transferEncoding=none이 기본이고 contentType, href, id, name, rid, use, usehref 속성은 비어 있습니다
카탈로그는 현재 위에 나열한 클래스를 커버합니다. 추가 스키마 클래스, 추가 생성 클래스, 상속 프로토타입 기본값, 계산되는 위젯 margin은 별도 통합 과제로 남아 있습니다
선언 프로퍼티 조회와 변경은 기존 트랜잭션, 반복 인스턴스 식별자, 값 예산 동작을 유지합니다
리치 텍스트 draw는 측정과 출력 중에 유효한 폰트 기본값과 인스턴스 재정의를 씁니다
참고 자료와 관련 API
기본값은 컨텍스트 의존적인 textEdit와 color 정의를 포함해 XFA 3.3 사양을 따릅니다
네이티브 XFA Property DOM, HPDFXFAResolveFormInstanceProperty, 인터랙티브 XFA 런타임