TrueType 글꼴 작업
TrueType 글꼴 작업
이 가이드는 TrueType 글꼴을 로드하고, 바이너리 테이블 데이터를 검사하며, 원시 테이블 바이트를 읽고, TtfInstancer를 사용하여 가변 글꼴에서 정적 인스턴스를 만드는 방법을 보여줍니다.
TrueType (TTF) 글꼴은 가장 일반적인 데스크톱 및 웹 글꼴 형식입니다. Python용 Aspose.Font FOSS는 TTF 전용 테이블 데이터 접근, 글리프 블롭 검색 및 가변 글꼴 축 제어를 위해 TtfFont를 제공합니다.
TTF 글꼴 로드
FontLoader.open()는 TTF 형식을 자동 감지하고 TtfFont 타입 객체를 반환합니다. 반환된 인스턴스는 ttf_tables, get_table_bytes() 및 가변 글꼴 축 데이터와 같은 TTF 전용 기능에 접근할 수 있게 합니다.
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")TTF 테이블 접근
TtfFont.ttf_tables는 일반 테이블용으로 명명된 속성을 가진 TtfTableSet를 제공합니다.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern table present:", tables.kern is not None)원시 테이블 바이트
TtfFont.get_table_bytes(tag)을 사용하여 원시 바이너리 테이블 데이터를 가져오고 TtfFont.set_table_bytes(tag, data)을 사용하여 수정된 테이블 바이트를 기록합니다.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_cmap = ttf_font.get_table_bytes("cmap")가변 폰트 인스턴스
TtfFont.get_axis(tag)은 4자 태그(예: "wght", "wdth")로 단일 가변 축을 반환하며, 폰트가 해당 축을 정의하지 않은 경우 None을 반환합니다. TtfInstancer.instantiate()은 지정된 축 좌표에서 가변 폰트의 정적 인스턴스를 생성합니다.
from aspose_font import FontLoader
from aspose_font import TtfFont
from aspose_font.ttf.instancer import TtfInstancer # internal API — may change between releases
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
weight_axis = ttf_font.get_axis("wght")
if weight_axis is not None:
print(f"wght range: {weight_axis.min_value}-{weight_axis.max_value}")
# Get a static instance at wght=700, wdth=75
instance = TtfInstancer.instantiate(ttf_font, {"wght": 700.0, "wdth": 75.0})팁 및 모범 사례
- 항상
isinstance(font, TtfFont)을 사용한 후에ttf_tables또는get_table_bytes()에 접근하십시오. TtfTableSet.kern을 사용하여 커닝 페어를 읽기 전에 커닝 사용 가능 여부를 확인하십시오.- 가변 폰트 인스턴싱은 새로운 폰트 객체를 생성합니다; 원본은 변경되지 않습니다.
API Reference 요약
| 클래스 / 메서드 | 설명 |
|---|---|
TtfFont.ttf_tables | TTF 테이블 집합에 대한 접근 |
TtfFont.get_table_bytes(tag) | 명명된 테이블의 원시 바이트 |
TtfFont.set_table_bytes(tag, data) | 수정된 테이블 바이트 쓰기 |
TtfFont.get_axis(tag) | 태그별 가변 글꼴 축, 또는 None |
TtfInstancer.instantiate(font, coords) | 정적 인스턴스를 생성합니다 |
TtfTableSet.kern | 커닝 테이블 (없을 경우 None) |