순서 있는 리치 텍스트 폰트 후보 목록

리치 텍스트는 명시적인 순서 있는 패밀리 목록을 유지할 수 있고, 온전한 Unicode 그래펨에 실제 공급된 폰트 프로그램을 고를 때 그 순서를 씁니다

Run:= THPDFHeadlessRichTextRun.Default;
Run.Text:= 'A' + WideChar($03A9) + 'B';
Run.FontFamily:= 'Primary';
SetLength(Run.FontFamilyCandidates, 3);
Run.FontFamilyCandidates[0]:= 'Primary';
Run.FontFamilyCandidates[1]:= 'Serif';
Run.FontFamilyCandidates[2]:= 'Sans';
Options:= THPDFHeadlessTextAppearanceOptions.Default;
Options.FallbackFontFamilies:= True;

기존 이름 있는 패밀리 API로 실제 패밀리·스타일 프로그램을 공급하세요. FontFamilyCandidates의 레이블은 폰트를 찾거나 내려받지 않습니다

선택과 보존

대상을 받는 첫 authored run이 그래펨 전체의 목록을 공급합니다. 스타일 이음새와 조합 기호도 포함이며, 구성한 각 후보는 자신의 실제 regular, bold, italic, bold-italic 프로그램으로 스타일이 적용된 모든 부분을 덮어야 합니다

모르는 레이블과 스타일 프로그램이 없는 후보는 건너뜁니다. 선언된 어느 후보도 그래펨을 덮지 못하면 기존 선택 패밀리·공급 배열 폴백 규칙이 적용됩니다

FontFamily는 비어 있지 않은 후보 목록이 있을 때 그 목록의 첫 구성 레이블과 일치해야 합니다. typed JSON에서 FontFamily를 생략하면 이 일치 항목이 자동으로 선택됩니다

폴백은 appearance 준비에만 영향을 줍니다. authored 평문 값, 정확한 typed 크기와 색, 원본 후보 순서는 V와 RV에 그대로 남고, 리졸버는 호출자의 run을 다시 쓰지 않습니다

인라인 XHTML과 교환

THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists를 True로 하고 FontFamilyNames를 구성하면, 지원하는 쉼표 구분 인라인 font-family 선언을 상속과 속성별 important 우선순위까지 포함해 유지합니다

패밀리 인식 FDF·XFDF 임포트는 appearance 옵션이 FallbackFontFamilies를 켤 때 이 보존을 활성화합니다. 엄격한 기본 디코딩은 기존 첫 구성 패밀리 선택을 유지합니다

목록에는 최대 열여섯 개 레이블이 들어갑니다. 각 레이블은 128 UTF-16 코드 단위로 한정되며 유효한 Unicode여야 하고, 제어 문자, 앞뒤 공백, 따옴표, 백슬래시, 쉼표, 세미콜론이 없어야 합니다. 중복 레이블과 선언됐지만 모르는 레이블도 authored 순서를 유지합니다

네이티브 Linux JSON

{"schemaVersion":1,"type":"forms.fill",
 "fontFamilies":["Primary","Sans","Serif"],"fallbackFontFamilies":true,
 "fields":[{"name":"Input","richTextRuns":[
   {"text":"A\u03a9B","fontFamily":"Primary",
    "fontFamilyCandidates":["Primary","Serif","Sans"]}
 ]}]}

선언된 Serif-before-Sans 순서가 폴백을 지배합니다. 연산이 Sans를 Serif보다 앞서 구성해도 마찬가지이며, 기존 Fontconfig 프로바이더가 같은 집계 폰트·메모리 한도 안에서 실제 이름 있는 프로그램을 공급합니다

typed run 후보 배열에는 fontFamilies 구성과 fallbackFontFamilies 활성화가 필요합니다. 형식이 틀린 배열·레이블, 온전한 그래펨 커버리지 누락, 예산 소진, 취소는 컨텍스트 커밋 전에 트랜잭션적으로 실패합니다

formData.richFontFamilyCandidates 기능과 maxFontFamilyCandidates=16이 이 bounded 옵션을 바뀌지 않은 V1 콜백과 익스포트 심볼 버전으로 광고합니다

성공한 연쇄 폼 채우기와 동등한 FDF/XFDF 임포트는 커밋된 문서와 소스 스냅샷을 유지합니다. 출력·결과 콜백이 실패하면 앞선 커밋 리비전이 보존됩니다

범위

이 프로필은 공급된 후보 레이블과 지원 인라인 선언을 다룹니다. 외부 스타일시트, 임의 CSS 레이아웃, 제네릭 패밀리 탐색, Windows 콜백 폴백 로딩은 별도 작업으로 남습니다

폴백 동작 · typed run 레코드 · 디코드 옵션 · 네이티브 Linux 바인딩