OpenType CFF2 기본 인스턴스 appearance

네이티브 plain, rich, shaped, family appearance 빌더는 기본 변형 좌표의 CFF2 아웃라인을 담은 완전한 OpenType OTTO 폰트를 받습니다

원본 폰트는 Unicode 문자 매핑, 글리프 인덱스, 수평 전진, 셰이핑의 원천으로 남고, HarfBuzz는 여러 폰트 사전을 통해 선택된 아웃라인을 포함해 기본 인스턴스 아웃라인을 해석합니다

빌더는 모든 글리프를 정적 CID-keyed CFF 1 프로그램으로 변환해 FontFile3로 내장하며, Subtype은 CIDFontType0C, 컬렉션은 Adobe Identity, CID는 원본 글리프 인덱스와 같습니다

생성된 인코딩, 폭, ToUnicode 매핑은 보조 문자, 리게이처, 결합 마크를 포함해 원본 글리프 정체성과 논리 Unicode 시퀀스를 유지합니다

결과는 ISO 32000-1:2008 9.7과 9.9가 기술한 CFF 1 구조를 쓰는 PDF 1.7 폰트 프로그램이며, CFF2를 PDF 폰트 스트림에 직접 내장하지 않습니다

셰이핑하지 않는 텍스트를 포함해 hb_font_draw_glyph와 불변 draw 콜백을 노출하는 같은 아키텍처의 HarfBuzz 라이브러리가 필요합니다. 이 API는 HarfBuzz 7부터 제공되고, HOTPDF_HARFBUZZ_LIBRARY로 라이브러리를 명시 지정합니다

복잡한 셰이핑은 기존 FriBidi 의존성과 기존 scale-1000 정수 전진 계약도 씁니다. 원본 unitsPerEm 기준 이상적인 비양자화 전진은 별개의 정밀도 한계입니다

편집 가능한 appearance는 installable 또는 editable 내장 권한을 요구합니다. 읽기 전용 appearance 생성은 preview-and-print 권한을 허용하고, restricted와 bitmap-only 권한은 계속 거부됩니다

no-subsetting은 사용하지 않는 글리프를 포함해 변환된 프로그램에 모든 원본 글리프를 유지합니다. 변환은 폰트 프로그램 형식을 바꾸며 원본 OpenType 컨테이너의 바이트 단위 보존을 보장하지 않습니다

변환된 프로그램은 별개의 기본 이름을 쓰고 읽을 수 있는 copyright와 license 고지, 그리고 원본 name-table 바이트를 유지합니다

소스 폰트, 작업 버퍼, 완전 폰트 레이아웃, 객체 크기, 리치 폰트 집계, 취소, 네이티브 렌더링 경계는 게시 전에 검사합니다. malformed한 missing glyph 프로그램은 계속 오류이고 유효한 빈 글리프는 유지됩니다

Type 2 출력은 16.16 좌표 정밀도와 유계 operand 델타를 쓰고, 글리프는 최대 65,535개, 글리프 프로그램 하나는 최대 65,535바이트입니다

독립 raw CFF2 테이블, 기존 PDF 기본 appearance 리소스의 직접 CFF2 폰트 스트림, 기본값이 아닌 변형 축 선택, 더 넓은 복합 텍스트 레이아웃은 이 백엔드 밖입니다

기존 CFF 1 OpenType 입력은 계속 컴팩트 appearance 백엔드를 쓰고, 내장된 Type1, Type1C, CIDFontType0C 주석 리소스는 원래 raw-font 폴백을 씁니다

TryGetCFF2FontTable은 전체 아웃라인이나 권한 검증이 아니라 유계 형식 지원 조회입니다

HPDFBuildHeadlessTextAppearance과 THPDFTrueTypeData를 참고하세요