OpenType CFF 주석 및 폼 필드 appearance
네이티브 appearance 빌더는 기존 TrueType 입력뿐 아니라 CFF 1 아웃라인을 담은 OpenType OTTO 폰트도 받습니다
Plain, rich, shaped, family 텍스트 appearance는 FontFile3에 Subtype OpenType과 CIDFontType0 자손으로 완전한 원본 OpenType 파일을 내장합니다
Name-keyed CFF는 글리프 인덱스를 CID로 쓰고, CID-keyed CFF는 글리프 인덱스에서 CID로 가는 실제 Registry, Ordering, Supplement, charset 매핑을 유지합니다
생성된 Encoding CMap은 텍스트 문자 코드를 실제 CID로 매핑하고, 폭은 그 CID를 쓰며, ToUnicode는 논리 텍스트를 유지하고, CIDFontType0은 CIDToGIDMap을 받지 않습니다
글리프 위치와 범위는 리치 fragment와 결합 마크 경계를 포함해 HarfBuzz OpenType 메트릭을 씁니다. 리치 fragment는 스타일별 불변 폰트 reader와 하나의 내장 폰트 리소스를 공유합니다
CFF 메트릭은 ShapeComplexText가 False일 때도 같은 아키텍처의 HarfBuzz 라이브러리를 요구합니다. HOTPDF_HARFBUZZ_LIBRARY가 명시 경로를 고르고, 복잡한 셰이핑은 기존 FriBidi 의존성을 추가로 씁니다
normal appearance가 없는 보이는 FreeText 주석은 완전한 OpenType CFF 폰트를 담은 유효한 default-appearance 리소스를 쓸 수 있습니다. 기존 리소스 우선순위, 클리핑, 색, 읽기 전용 내장 정책이 그대로 적용됩니다
편집 가능한 필드 생성에는 여전히 installable 또는 editable 권한이 필요합니다. 읽기 전용 폴백은 preview-and-print 권한을 허용하고, restricted 또는 bitmap-only 아웃라인은 계속 거부되며, no-subsetting은 모든 원본 폰트 바이트를 유지합니다
폰트 바이트, 글리프, 객체 크기, 집계 리치 폰트, 취소, 네이티브 render 예산은 계속 강제됩니다. malformed한 CFF INDEX 오프셋, 사전, charset 범위, 중복 CID, 누락된 컬렉션 문자열은 게시 전에 거부됩니다
형식 매핑은 명시적 CID-keyed OpenType charset 매핑을 포함해 ISO 32000-1:2008 9.7.4.2와 9.9를 따릅니다
네이티브 렌더링, MuPDF, Ghostscript는 sparse-CID OpenType 픽스처를 통과합니다. 테스트된 Poppler 백엔드에는 별개의 sparse-CID OpenType 매핑 비호환성이 있고, Poppler identity-CID OpenType과 sparse raw CIDFontType0C 대조군은 올바르게 렌더링됩니다
독립 reader는 누락된 주석 appearance를 다르게 합성할 수 있습니다. 명시적으로 생성된 appearance는 reader별 폴백 동작과 따로 검사합니다
누락된 주석 appearance는 원래 raw-font 주석 경로로 원본 bare Type1, Type1C, CIDFontType0C 리소스를 유지할 수도 있습니다. OpenType CFF2 입력은 CFF2를 PDF 1.7 폰트 스트림에 직접 내장하는 대신 명시적 형식 변환을 거치는 별개의 정적 기본 인스턴스 appearance 백엔드를 씁니다
HPDFBuildHeadlessTextAppearance과 TryGetCompactFontTable을 참고하세요