مقدمة
تنسيق الخط المضغوط (CFF) هو تنسيج وصف النمط الثنائي الذي يستخدم داخل OpenType الخطوط ذات محرك النمط المتماشى مع PostScript. Aspose.خطوط FOSS لبيثون تعرضات. مجموعة مخصصة من الفئات تحت المجموعة. aspose_font.cff مساحة أسماء للقراءة و فحص هياكل بيانات CFF: CffFont, CffCharset, CffEncoding, CffDict, CffIndex,، و Type2Interpreter.هذه المقالة تمر عبر كيفية تحميل خطوط CFF،, يتنقلون عبر جداولهم الداخلية، ويفسرون برامج تشارسترينغ باستخدام المكتبة.
الحزمة مع ترخيص MIT. قم بتثبيتها بواسطة pip install aspose-font>=1.0.0.
الميزات الرئيسية
تحميل خط CFF
FontLoader.open() يكتشف صيغة CFF تلقائيا تمر إما بشكل مستقل .cff أو ملف OTF يحتوي على جدول مخطط CFF. الكائن الذي تم إرجاعه هو a CffFont (يمكن الوصول إليها عبر الموقع الإلكتروني) cff_font الممتلكات على TtfFont لملفات OTF).
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 ترسم هويات العلامة إلى الأسماء
CffCharset ترسم هويات العلامة (GIDs) إلى أسماء العلم PostScript. استخدام standard() إلى احصل على ISO Adobe المعياري أو from_reader() تحليل مجموعة من الأحرف من النظام الثنائي بيانات CFF. name_for() يعيد طريقة اسم PostScript ل GID، و gid_for() يقوم بالبحث العكسي.
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 رسم خريطة من يونيكود إلى GID
CffEncoding يقوم بمعالجة جدول ترميز CFF، الذي يربط رموز الشخصيات مع هويات النقاط. standard() يعيد التعريف القياسي،, expert() يعيد ترميز الخبير، و from_reader() تحليل ترميز مخصص من بيانات ثنائية CFF. استخدام unicode_to_gid() إلى ابحث عن GID من خلال نقطة رمز يونيكود و get_all_codepoints() ليحصى كل المخططات نقاط رمزية.
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
مخزن CFF المخطوطات الرفيعة المستوى والبيانات النمطية الخاصة في القواميس. CffDict.from_bytes() يقوم بتحليل كميات CFF DICT الخام ويعطيكم get() و set() الوصول بواسطة مفتاح المشغل. TopDict.from_dict() يخصص هذا للمفردات CFF من أعلى المستوى، و PrivateDict.from_dict() يفعل نفس الشيء بالنسبة لـ DICTs الخاصة.
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)
هيكل مؤشر CFF
CffIndex يمثل هيكل بيانات CFF INDEX مجموعة متغيرات ذات مبدأ طول. سلاسل بايت طول تستخدم لخطوط الرسوم، والجزءات، وجداول الأسماء. from_reader() التفاصيل و النتيجة يمكن الاشتراك بها بواسطة مؤشر عدد كامل.
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)}")
النوع 2 تشارسترينغ التفسير
Type2Interpreter يقوم بتنفيذ برنامج تشارسترينغ من النوع 2 (مثل PostScript المضغوطة) النمط المستخدم في خطوط CFF) و ينتج a GlyphPath من الأوامر المخططية. interpret() مع بايتات charstring والمعجم الخاص المرتبط بها. هذا تمكنك من استخراج الخطوط العريضة للخطاط الصفراء من سلاسل CFF بدون إعادة التصفية الكاملة. مترجم PostScript.
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)
بدء سريع
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)}")
تنسيقات مدعومة
| شكل | تمديد | اقرأ | اكتب |
|---|---|---|---|
| CFF | . cff | ✓ | ✓ |
| OTF | .تف | ✓ | ✓ |
| TTF | .ttf | ✓ | ✓ |
| WOFF | . ووف | ✓ | ✓ |
| WOFF2 | . ووف2 | ✓ | ✓ |
| EOT | . لا | ✓ | ✓ |
| TYPE1 | .pfb / .pfa | ✓ | ✓ |
المصدر المفتوح و الترخيص
Aspose.Font FOSS for Python is MIT licensed. Source code is on GitHub at aspose-font-foss/Aspose.Font-FOSS-لـبايثون. تثبيت من PyPI كـ: aspose-font.