THotPDF.CompactFontSubsetting

THotPDF

 

Properties  EnableFontSubsetting  FontEmbedding

폰트 서브셋이 남기는 글리프를 다시 번호 매겨 훨씬 작게 만들지 제어합니다

 

Delphi syntax:

property CompactFontSubsetting: Boolean;

 

C++ syntax:

__property bool CompactFontSubsetting;

 

Description

BeginDoc 전에 CompactFontSubsetting을 true로 설정하면 컴팩트 폰트 서브셋을 만듭니다. 보통 서브셋은 원본 폰트의 글리프 번호를 그대로 유지합니다. 사용하지 않는 글리프는 비우지만 폰트가 모든 글리프를 여전히 선언하고 각 글리프마다 위치 항목과 너비 항목을 하나씩 갖고 있습니다. 글리프 20,000~30,000개를 가진 CJK 폰트라면 페이지에 글자 두 개만 보여도 이 테이블만으로 압축 전에 200 KB가 넘게 늘어납니다

 

컴팩트 서브셋은 남기는 글리프를 조밀한 범위로 다시 번호 매기고 그 글리프만 대상으로 글리프 테이블을 다시 만듭니다. 페이지 콘텐츠는 여전히 원래 글리프 번호를 CID로 표시하며, 명시적인 /CIDToGIDMap 스트림(ISO 32000-1 9.7.4.2)이 이 번호를 다시 매겨진 글리프에 연결하므로 텍스트, 너비, 텍스트 추출은 바뀌지 않습니다. SimSun에서 한자 두 개는 보통 서브셋에서는 폰트 데이터 약 25 KB, 컴팩트 서브셋에서는 약 3 KB를 차지합니다

 

이 프로퍼티는 Type 0 폰트로 기록되는 TrueType 폰트에 적용되며, EnableFontSubsetting이 켜져 있을 때와 RegisterUnicodeTTF로 등록한 폰트(항상 서브셋)에도 적용됩니다. OpenType-CFF 폰트는 보통 서브셋을 유지합니다. 어떤 폰트에 대해 컴팩트 서브셋을 만들 수 없으면 HotPDF는 보통 서브셋으로 되돌아갑니다

 

이 프로퍼티는 기본적으로 꺼져 있으므로 기존 출력은 그대로입니다. PDF/A에서는 등록된 폰트가 언제나 컴팩트 서브셋을 받습니다. 컴팩트 서브셋은 최종 출력에 가장 어울립니다. 나중에 같은 폰트로 문서에 텍스트를 더 추가하면 새 서브셋이 필요하고, 나중에 병합되는 문서는 같은 폰트의 서브셋을 공유할 수 없습니다

 

See also: EnableFontSubsetting, FontEmbedding, RegisterUnicodeTTF