Работа с CFF шрифтове

Работа с 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

Вижте също:

 Български