Uvod u članak
Compact Font Format (CFF) je binarni oblik opisa glifa koji se koristi u OpenType-u. fontovi s PostScript-kompatibilnim motorom za oblikovanje. Aspose.Font FOSS za Python ekspone Određeni skup klasa pod aspose_font.cff ime prostora za čitanje i provjeravanje CFF-ovih struktura podataka: CffFont, CffCharset, CffEncoding, CffDict, CffIndex, i Type2Interpreter.Ovaj post vodi kroz kako učitati CFF fontove, Navigacija unutar njihovog tabela, i interpretacije charstring programa koristeći biblioteku.
Paket je licenciran na MIT. pip install aspose-font>=1.0.0.
Glavne karakteristike
Upisivanje font CFF-a
FontLoader.open() Sljedeći članakSvijetlo: .cff datoteka ili OTF datotekom koja uključuje CFF tabelu. Vratljeni objekt je CffFont (dostupno putem: cff_font imovina na TtfFont za OTF datoteke).
from aspose_font.loader import FontLoader
# Load a standalone CFF file
font = FontLoader.open("OpenSans.cff")
# Load a standalone CFF file (auto-detected from format)
font = FontLoader.open("OpenSans.cff")
print(font.font_name, font.num_glyphs)
CFF Charset Mapping Glyph IDs na imena
CffCharset mapira GID-ove na PostScript imena. Koristi se standard() u iznosu od: dobiti standardni ISO Adobe znakovnik ili from_reader() da analiziraš znakovnu skupinu iz binarne tabele. Podaci CFF-a. name_for() metoda vraća ime PostScript za GID, i gid_for() provodi obrnutog pretraživanja.
from aspose_font.cff.charset import CffCharset
charset = CffCharset.standard()
print(charset.name_for(1)) # ".notdef" or similar
print(charset.gid_for("A")) # GID for the PostScript name "A"
CFF kodiranje Unicode-to-GID mapiranje
CffEncoding U ovom slučaju, u skladu s člankom 16. stavkom 1. točkom (a) ovog članka. standard() vraća standardnu kodiranje, expert() povratiti kodiranje stručnjaka, i from_reader() Parser prilagođen kodiranje iz CFF binarnih podataka. unicode_to_gid() u iznosu od: Tražite GID po Unicode kodnom tački i get_all_codepoints() da se popisuju svi mapirani Kodne točke.
from aspose_font.cff.encoding import CffEncoding
encoding = CffEncoding.standard()
gid = encoding.unicode_to_gid(0x41) # Unicode for 'A'
all_codepoints = encoding.get_all_codepoints()
print(f"Standard encoding covers {len(all_codepoints)} code points")
CFF rječnik Proučavanje
CFF fontovi čuvaju metapodatke najvišeg razina i privatne u rječnicima. CffDict.from_bytes() Analizira sirovu CFF DICT blob i daje vam get() i u članku 1. set() pristup ključem operatora. TopDict.from_dict() specijalisti za najviši razred rječnika CFF-a, i PrivateDict.from_dict() Isto radi i za privatne DICT-ove.
from aspose_font.cff.dict_ import CffDict
# Parse a raw CFF DICT from bytes
raw_dict_bytes = b"..." # CFF-encoded DICT bytes
d = CffDict.from_bytes(raw_dict_bytes)
vals = d.get(21) # retrieve values for operator 21 (PostScript CharstringType)
Sredstva za upravljanje i provedbu financijskih aktivnosti
CffIndex predstavlja CFF INDEX datoteku niz promjenjivih s dugim prefiksom. dužina bajtni nizovi koji se koriste za charstrings, subrs i imenovnih tabela. from_reader() Parsezi U ovom slučaju, ako je to moguće, treba se koristiti brojnik koji sadrži indeks iz binarnog čitatelja i rezultat može biti upisan u indeksa cijela broja.
from aspose_font.cff.index import CffIndex
from aspose_font._io import BinaryReader # internal API — may change between releases
import io
raw_index = b"..." # raw CFF INDEX bytes
reader = BinaryReader(io.BytesIO(raw_index))
index = CffIndex.from_reader(reader)
print(f"INDEX entries: {len(index)}")
Interpretacija Charstringa tipa 2
Type2Interpreter izvršava program za čarstring tipa 2 (kompaktni PostScript-like U ovom slučaju, u obliku koji se koristi u CFF fontovima) i proizvodi GlyphPath -Pozovi. interpret() Ovo je bio jedan od najčešćih slučajeva u kojem su se ljudi počeli slijepiti. omogućuje vam da izvlačite sirove skice od CFF čarstringa bez punog PostScript prevodilac.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)
for cmd in glyph_path.commands:
print(type(cmd).__name__, cmd)
Brzi početak
pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
# Load an OTF with embedded CFF outlines
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
print(f"Path commands for 'A': {len(glyph.path.commands)}")
Podržani formati
| Format: | Proračunska sredstva | Čitaj. | Pišite. |
|---|---|---|---|
| CFF | .cff | ✓ | ✓ |
| OTF | .od | ✓ | ✓ |
| TTF | .ttf | ✓ | ✓ |
| WOFF | .-Ne, ne mogu. | ✓ | ✓ |
| WOFF2 | .woff2 | ✓ | ✓ |
| EOT | .-Ne. Ne, ne mogu. | ✓ | ✓ |
| TYPE1 | .pfb / .pfa | ✓ | ✓ |
Otvoreni izvor i licenciranje
Aspose.Font FOSS for Python is MIT licensed. Source code is on GitHub at Ako je to moguće, možete se prijaviti na:. Instalirajte iz PyPI kao: aspose-font.