자주 묻는 질문
라이선스 및 오픈 소스
라이선스 모델은 무엇인가요?
Aspose.Font Python용 FOSS는 다음에 따라 릴리스됩니다 MIT License. 소프트웨어를 제한 없이 사용, 복사, 수정, 병합, 게시, 배포, 서브라이선스 부여 또는 판매할 수 있습니다. 유일한 요구 사항은 저작권 고지와 라이선스 텍스트를 소프트웨어의 모든 복사본 또는 실질적인 부분에 포함시키는 것입니다.
상업 제품에 사용할 수 있나요?
Yes. MIT 라이선스는 클로즈드‑source 및 상업 제품에서의 사용을 허용합니다. 라이브러리 자체의 복사본에 저작권 헤더를 유지하는 것 외에 로열티나 저작자 표시 의무는 없습니다. Note: the CffFont class가 업데이트되었습니다 (API_MODIFIED); 기존 코드는 약간의 조정이 필요할 수 있습니다.
더 많은 기능을 제공하는 유료 버전이 있나요?Aspose.Font FOSS는 오픈 소스 에디션입니다. FOSS 에디션은 TTF, OTF, CFF를 포함합니다,
Type 1, WOFF, WOFF2 및 EOT — 실제 폰트 작업의 대부분을 포괄합니다.
설치 및 요구 사항
어떻게 하면 Aspose.Font FOSS를 Python용으로 설치할 수 있나요?
업데이트된 패키지를 설치합니다 (Python 3.10+ 필요):
git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .폰트 API가 수정되었습니다 (API_MODIFIED). 시스템 수준의 네이티브 종속성은 필요하지 않습니다.
지원되는 Python 버전은 무엇인가요?
Python 3.10 이상. 라이브러리는 표준 라이브러리 기능만 사용하므로 CPython 및 PyPy 구현체에서 Python 3.10+을 지원하면 동작합니다.
네이티브 또는 플랫폼 종속성이 있나요?
아니오. Aspose.Font Python용 FOSS는 C 확장이 없으며, 시스템 글꼴이 없고, 플랫폼 API도 없습니다. Windows, macOS, Linux에서 동일하게 작동합니다.
형식 지원
읽을 수 있는 글꼴 형식은 무엇인가요?
FontLoader.open()는 TTF, OTF, CFF (standalone), Type 1, WOFF, WOFF2, 그리고 EOT를 로드할 수 있습니다.
from aspose_font import FontLoader
font = FontLoader.open("MyFont.ttf")어떤 형식으로 쓸 수 있나요?
FontConverter.convert()는 TTF, CFF, WOFF, WOFF2로의 변환을 지원합니다. 출력 글꼴은 바이트나 파일 스트림으로 저장할 수 있습니다.
WOFF2 압축 해제가 내장되어 있나요?
예. WOFF2 Brotli 압축 및 압축 해제는 라이브러리 내부에서 완전히 구현됩니다. 외부 Brotli 패키지는 필요하지 않습니다.
API Usage
폰트를 로드하고 메타데이터를 검사하려면 어떻게 해야 하나요?
FontLoader.open() 를 사용하면 Font 인스턴스를 반환합니다. TTF/OTF 폰트의 경우 TtfFont 로 캐스팅하여 TTF 전용 속성에 접근합니다:
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.num_glyphs)TTF를 WOFF2로 변환하려면 어떻게 해야 하나요?
FontLoader.open() 로 폰트를 로드한 다음, FontType.WOFF2 를 대상(Target)으로 지정하여 FontConverter.convert() 에 전달합니다. 반환된 객체는 직렬화할 준비가 된 Woff2Font 인스턴스입니다:
from aspose_font import FontLoader
from aspose_font.converter import FontConverter # internal API — may change between releases
from aspose_font import FontType
font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)웹 배포를 위해 폰트를 서브셋팅하려면 어떻게 해야 하나요?
FontSubsetter.subset_by_text() 를 사용하여 제공된 텍스트 문자열을 렌더링하는 데 필요한 글리프만 포함하는 새 폰트를 생성하고, 웹 페이지에 임베드할 파일 크기를 줄입니다:
from aspose_font import FontLoader
from aspose_font import FontSubsetter
font = FontLoader.open("Roboto-Regular.ttf")
subset = FontSubsetter.subset_by_text(font, "Hello World")개별 글리프에 접근하려면 어떻게 해야 하나요?
Font.glyph_accessor를 사용하십시오. Font.glyph_accessor는 GlyphAccessor을 구현합니다. get_glyph_by_unicode()를 유니코드 코드 포인트와 함께 호출하면 해당 글리프 객체를 가져와 메트릭이나 윤곽을 검사할 수 있습니다:
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
glyph = font.glyph_accessor.get_glyph_by_unicode(0x0041) # 'A'
print(glyph.glyph_id)알려진 제한 사항
Font.to_bytes()가 구현되어 있습니까?
추상 기반 클래스 Font.to_bytes(font_type)는 직접 호출될 경우 NotImplementedError을 발생시킵니다. 그러나 모든 구체적인 글꼴 클래스 — TtfFont, CffFont, WoffFont, Woff2Font, EotFont, 및 Type1Font — 은 to_bytes()을 완전히 구현합니다. FontLoader.open()으로 글꼴을 로드하고 반환된 구체 인스턴스에서 to_bytes()을 호출하십시오. FontConverter.convert()은 또한 지원되는 모든 대상 포맷으로 새로운 글꼴을 생성할 수 있습니다.
TtfTableSet에 있는 모든 테이블 유형이 채워져 있습니까?
일반 테이블(head, hhea, maxp, os2, name, post, cmap, loca, hmtx, kern)만 TtfTableSet의 명명된 속성으로 노출됩니다. 다른 테이블은 TtfFont.get_table_bytes(tag)을 통해 원시 바이트로 읽을 수 있습니다.
라이브러리가 가변 글꼴 인스턴스화를 지원합니까?
예. TtfFont.instantiate(coordinates)는 지정된 축 좌표에서 정적 TtfFont을 생성합니다. 먼저 TtfFont.is_variable와 TtfFont.axes을 사용하여 변형 축을 감지하십시오.