1. 제품
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS - Aspose.Font Python용 FOSS

TTF, OTF, CFF, WOFF, WOFF2 및 EOT 글꼴 파일을 로드하고, 검사하고, 변환하며, 서브셋팅하기 위한 오픈소스 Python 라이브러리.

Python에서 프로그래밍 방식으로 글꼴 작업하기

Aspose.Font FOSS for Python은(는) TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 및 EOT 형식 전반에 걸쳐 글꼴을 로드, 검사, 변환, 서브셋 및 미리 보기 위한 순수-Python 툴킷입니다. 이 라이브러리는 Python 3.10 이상에서 실행되며 외부 OS 글꼴 라이브러리나 네이티브 종속성이 필요하지 않습니다.

이 라이브러리는 FontLoader를 통해 글꼴 로딩을 위한 깔끔한 API를 제공하고, GlyphAccessor를 통해 글리프 접근을, FontConverter를 통해 포맷 변환을, FontCleaner를 통해 웹 최적화를, FontSubsetter를 통한 텍스트 인식 서브세팅을, 그리고 AnimationPreviewBuilder를 통한 가변 글꼴 애니메이션을 제공합니다. 이름, 패밀리, 스타일, 글리프 수, 인코딩 및 메트릭과 같은 글꼴 메타데이터는 Font 기본 클래스를 통해 바이너리 테이블을 수동으로 파싱하지 않고도 접근할 수 있습니다.

Aspose.Font FOSS는 MIT 라이선스를 가지고 있으며 단일 pip install 명령으로 PyPI에서 설치할 수 있습니다. 이는 폰트 디자인 툴링, 웹 폰트 파이프라인, 글리프 렌더링 엔진 및 폰트 파일을 읽고 변환하거나 생성해야 하는 모든 Python 애플리케이션에 적합합니다. 엔터프라이즈 제품군에 대해서는 Aspose.Font — Enterprise Product Family을(를) 참조하십시오.

글꼴 로드 및 형식 감지

  • 파일 경로 또는 원시 바이트에서 FontLoader.open()FontLoader.load()을 사용하여 글꼴을 로드합니다
  • 자동 감지 형식: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • 다음 Font 기본 클래스를 통해 글꼴 메타데이터에 액세스합니다: font_name, font_family, font_style, num_glyphs
  • FontEncoding.unicode_to_gid()get_all_codepoints()을 사용하여 글리프 인코딩 맵을 읽습니다.
  • 폰트 메트릭을 FontMetrics로 검사: ascent, descent, line gap, em-square

일반적인 사용 사례

  • 폰트 검증 및 메타데이터 추출 파이프라인
  • CI/CD 검사에서 폰트 패밀리 이름과 글리프 수를 확인합니다
  • 다양한 입력 형식을 허용하는 웹 폰트 인제션 서비스
  • 데스크톱 런타임 없이 메타데이터를 표시하는 글꼴 디자인 도구

글리프 접근 및 경로 검사

  • ID 또는 유니코드로 글리프를 검색하려면 GlyphAccessor.get_glyph_by_id()get_glyph_by_unicode()을(를) 사용하십시오.
  • 문자열에 대한 모든 글리프를 GlyphAccessor.get_glyphs_for_text()와 함께 해결합니다
  • 입력된 명령으로서 글리프 윤곽 경로를 검사합니다: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Glyph 속성에서 글리프 경계 상자, 전진 너비 및 사이드 베어링에 접근합니다.
  • 정확한 텍스트 레이아웃 계산을 위해 KernPair에서 커닝 페어를 읽습니다.

일반적인 사용 사례

  • 다국어 텍스트 렌더링을 위한 글리프 커버리지 검사
  • SVG 경로나 벡터 생성을 위한 윤곽선 추출
  • 글꼴 QA 워크플로우에서 커닝 테이블 검증
  • 텍스트 셰이핑 연구 및 저수준 레이아웃 실험

글꼴 변환

  • TTF, OTF, CFF, WOFF, WOFF2, EOT 및 Type 1을 FontConverter.convert()으로 변환합니다
  • Bezier 곡선 유형을 CurveAdapter.quad_to_cubic()cubic_to_quads()와 함께 적용합니다
  • Quadratic와 cubic 사이에서 글리프 경로를 convert_path_quad_to_cubic()convert_path_cubic_to_quad()로 변환합니다.

일반적인 사용 사례

  • 배포를 위해 TTF 마스터 폰트를 WOFF2로 변환하는 웹 폰트 파이프라인
  • 하나의 소스에서 여러 형식 대상으로 내보내는 타입 파운드리 툴링
  • 레거시 EOT 변환(하위 호환 웹 폰트 스택용)
  • 지속적 통합에서 자동 글꼴 형식 정규화

폰트 서브세팅

  • Unicode 텍스트를 사용하여 FontSubsetter.subset_by_text()로 서브셋 폰트 만들기
  • Glyph ID 목록을 사용하여 서브셋 만들기 FontSubsetter.subset_by_gids()
  • 웹에 최적화된 하위 집합을 FontSubsetter.subset_for_web()와 함께 생성합니다
  • 이름이 지정된 사전 설정 프로필을 FontSubsetter.subset_by_presets()available_presets()와 함께 적용합니다.
  • FontSubsetter.analyze_coverage()analyze_web_coverage()를 사용하여 하위 집합 커버리지를 분석합니다

일반적인 사용 사례

  • 제한된 문자 집합을 가진 웹 페이지의 WOFF2 페이로드 크기 줄이기
  • i18n 배포를 위한 언어별 폰트 서브셋 생성
  • 페이지 세트별 하위 집합을 배포하는 글꼴 라이선스 워크플로우
  • 모바일 웹 애플리케이션 성능 최적화

웹 최적화 및 가변 폰트 미리보기

  • 레거시 테이블과 Mac 이름 레코드를 FontCleaner.clean_for_web() 로 제거합니다
  • 변수 글꼴 축 호환성을 CompatibilityChecker.compare_fonts()compare_variable_instances()와 확인하십시오
  • AnimationPreviewBuilder.build_axis_sweep()를 사용하여 애니메이션 APNG 축 스윕을 생성합니다
  • 다단계 애니메이션 경로를 AnimationPreviewBuilder.build_path()와 함께 구축

일반적인 사용 사례

  • 폰트 견본 페이지와 타입 파운드리를 위한 인터랙티브 축 탐색기
  • 배포 전에 가변 글꼴 동작을 검증하는 CI 파이프라인
  • 비핵심 바이너리 테이블을 제거하는 웹 성능 파이프라인
  • 폰트 관리 애플리케이션용 폰트 미리보기 썸네일

글꼴 파일 로드

파일 경로에서 TrueType 또는 OpenType 글꼴을 열고 기본 메타데이터를 읽습니다.

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

텍스트 문자열의 글리프에 접근

Unicode 코드 포인트에 대한 모든 글리프를 해결하고 해당 윤곽 경로를 검사합니다.

from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

가변 글꼴 축 스윕 애니메이션 생성

시작값에서 끝값까지 가변 글꼴 축을 스윕하는 애니메이션 APNG를 생성하세요.

from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder

font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

asset = AnimationPreviewBuilder.build_axis_sweep(
    font,
    axis_tag="wdth",
    start_val=75.0,
    end_val=100.0,
    frames=3,
    fps=10,
    text="A",
    size=10.0,
    bounce=True,
)

asset.write_to("roboto-sweep-wdth.png")

웹 배포용 글꼴 정리

웹 제공 전에 바이너리 크기를 줄이기 위해 레거시 테이블과 Mac 이름 레코드를 제거합니다.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

자주 묻는 질문

Aspose.Font FOSS for Python이 무엇인가요?

이 라이브러리는 무료이며 MIT 라이선스를 가진 순수-Python 라이브러리로, TTF, OTF, CFF, Type 1, WOFF, WOFF2, EOT 포맷의 글꼴을 로드, 검사, 변환 및 서브셋할 수 있습니다. 네이티브 종속성이 필요하지 않습니다.

Aspose.Font FOSS for Python을 어떻게 설치하나요?

pip install "aspose-font>=1.0.0"를 실행하세요. 시스템 수준의 종속성이 필요하지 않습니다. 이 라이브러리는 Windows, macOS, Linux에서 Python 3.10 이상과 함께 작동합니다.

지원되는 폰트 형식은 무엇인가요?

FontLoader.open()는 TTF, OTF, CFF, Type 1, WOFF, WOFF2, EOT를 읽습니다. FontConverter.convert()는 TTF, CFF, WOFF, WOFF2를 씁니다. EOT는 읽기 전용입니다.

Font.to_bytes()를 사용할 수 있나요?

아니요. Font.to_bytes()는 기본 클래스에 구현되어 있지 않습니다. 원하는 형식의 새로운 Font를 만들려면 FontConverter.convert()을 사용하세요.

웹 배포를 위해 폰트를 서브셋할 수 있나요?

예. FontSubsetter.subset_by_text(font, text)는 주어진 텍스트에 필요한 글리프만 포함하는 새로운 Font를 반환합니다. FontSubsetter.subset(font, codepoints)subset_by_gids(font, gids)는 보다 세밀한 제어를 제공합니다.

  

지원 및 학습 자료

 한국어