Работа с CFF шрифтове
Работа с CFF шрифтове
Това ръководство показва как да заредите и проверите вътрешните шрифтове на CFF символи, таблици за кодиране, речници и структури за индекс ?? с помощта на Aspose.Font FOSS за Python .
Фонтове с компактен формат на шрифт (CFF) съхраняват графичните очертания като програми за черножилови вериги тип 2. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff пространство за имена за четене на символи CFF, таблици за кодиране, речници и индекси.
CFF Charset (на английски: CFC)
CffCharset Карти сграфика IDs на PostScript имена. повикване CffCharset.standard() за да получите вграден ISO Adobe charset, след това използвайте name_for() и в) gid_for() да превежда между идентификатори на глифи и имена.
from aspose_font.cff.charset import CffCharset
charset = CffCharset.standard()
name = charset.name_for(1) # PostScript name for GID 1
gid = charset.gid_for("A") # GID for PostScript name "A"Кодиране на CFF
CffEncoding Стандартното кодиране обхваща набора от латински символи Adobe; използване unicode_to_gid() да търсят отделни кодови точки и get_all_codepoints() да изброя всяка отразена стойност.
from aspose_font.cff.encoding import CffEncoding
enc = CffEncoding.standard()
gid = enc.unicode_to_gid(0x41)
codepoints = enc.get_all_codepoints()СФС речник Анализ
CffDict.from_bytes() разглежда суровия CFF DICT blob в операторско-ключево картографиране. Всеки операторски ключ картографува към списък с числови стойности, които конфигурират шрифта, като например стандартна ширина или субрутинни офсетове.
from aspose_font.cff.dict_ import CffDict
d = CffDict.from_bytes(raw_bytes)
vals = d.get(21) # retrieve values for operator 21Индекс на CFF
CffIndex.from_reader() Индексът разглежда CFF INDEX структура от двоичен поток. Строки на INDEX са масиви с данни с променлива дължина, използвани за таблици с имена, струнни таблицы и съхранение на символи в шрифтове CFC.
from aspose_font.cff.index import CffIndex
from aspose_font._io import BinaryReader # internal API — may change between releases
import io
reader = BinaryReader(io.BytesIO(raw_index_bytes))
index = CffIndex.from_reader(reader)
print(f"INDEX entries: {len(index)}")Тип 2 интерпретация на Charstring
Type2Interpreter.interpret() Извършва Charstring тип 2 и връща a GlyphPath.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)Съвети и най-добри практики
- Използване на:
CffEncoding.standard()като база; заменят с:from_reader()за вградени кодировки CffDict.to_bytes()позволява ви да сериализирате модифицирани речници.- Тълкуването на Charstring е необходимо само за извличане на необработен обхват на глифа;
GlyphAccessorпокрива повечето случаи на използване на по-високо ниво;
Снимка на API референтна информация
| Клас / метод | Описание на състоянието |
|---|---|
CffCharset.standard() | Стандартен ISO Adobe символски набор |
CffCharset.name_for(gid) | Име на PostScript за идентификатор на глиф |
CffCharset.gid_for(name) | Идентификатор на знака за име PostScript |
CffEncoding.standard() | Стандартна таблица за кодиране на CFF |
CffEncoding.unicode_to_gid(cp) | Код на карта към ГИД |
CffDict.from_bytes(data) | Проверете суровия CFF DICT. |
CffDict.get(operator) | Получаване на стойности за оператор DICT |
CffIndex.from_reader(reader) | Проанализирайте индекса на CFF |
Type2Interpreter.interpret(cs, pd) | Извършване на Charstring тип 2 |