Jak pracovat s CFF fonty v Python

Jak pracovat s CFF fonty v Python

CFF (Compact Font Format) je formát obrysů používaný uvnitř fontů OpenType a samostatných souborů .cff. Aspose.Font FOSS představuje písma CFF jako instance CffFont, které rozšiřují základní třídu Font a vystavují data specifická pro CFF.

Průvodce krok po kroku

Krok 1: Nainstalujte balíček

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Krok 2: Importujte požadované třídy

from aspose_font import FontLoader
from aspose_font import CffFont
from aspose_font import FontType

Krok 3: Načtěte písmo CFF

Zavolejte FontLoader.open() s cestou k vašemu souboru .cff. Vrácený objekt je instance CffFont, která vystavuje počet glifů, název písma a specifické vlastnosti CFF:

font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)

Krok 4: Přístup k páru kernů

Přetypujte načtené písmo na CffFont a poté zavolejte get_kern_pairs() pro získání seznamu záznamů páru kernů. Ne všechna písma CFF obsahují data kern; před iterací zkontrolujte délku:

from aspose_font import FontLoader
from aspose_font import CffFont

cff_font: CffFont = FontLoader.open("MyFont.cff")
kern_pairs = cff_font.get_kern_pairs()
print(f"kern pairs: {len(kern_pairs)}")

Krok 5: Převod CFF na TTF

Předávejte načtený CffFont do FontConverter.convert() s FontType.TTF, aby vznikl nový TtfFont ve formátu obrysů TTF:

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("MyFont.cff")
ttf = FontConverter.convert(font, FontType.TTF)

Časté problémy a opravy

CffFont has no attribute cff_font — cff_font je vlastností na TtfFont která vrací vložená data CFF, nikoli na základní Font třída. Pro samostatné soubory CFF použijte CffFont přímo.

Prázdné páry kerningu — Ne všechny písma CFF obsahují data o párech kerningu. Zkontrolujte pomocí len(cff_font.get_kern_pairs()) > 0 před iterací.

Často kladené otázky

Jaký je rozdíl mezi CffFont a TtfFont?

CffFont představuje samostatné soubory CFF. TtfFont představuje soubory TTF/OTF; OTF může obsahovat obrys CFF přístupný přes ttf_font.cff_font.

Mohu převést písmo CFF na WOFF2?

Ano. FontConverter.convert(font, FontType.WOFF2) funguje s jakoukoliv instancí Font, včetně CffFont.

Viz také:

 Čeština