العمل مع CFF Fonts
العمل مع CFF Fonts
يوضح هذا الدليل كيفية تحميل وتفتيش عناصر النصوص CFF الداخلية مجموعات الحروف ، جداول التشفير ، القواميس ، وهياكل المؤشرات ?? باستخدام Aspose.Font FOSS لـ Python .
تصميم الخطوط المضغطة (CFF) تخزن خطوط النمط كبرامج تشارسترينغ من نوع 2. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff مساحة أسماء لقراءة المخططات CFF، جداول التشفير والمعجمات والمؤشرات.
سي.إف. تشارست
CffCharset تربط معطيات العلامات إلى أسماء العلمات في PostScript. اتصل CffCharset.standard() للحصول على مجموعة الحروف ISO Adobe المدمجة، ثم استخدام 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 Latin; use 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()تحليل قاموس CFF
CffDict.from_bytes() يقوم بتحليل قطعة CFF DICT الخام إلى ترسم خرائطية مخصصة للمفتاح. يترجم كل مفتاح من المفاتيح الخاصة بالشريك إلى قائمة القيم العددية التي تكوّن الخط، مثل عرض الافتراضي أو تعويضات البرنامج الفرعي.
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 تشارسترينغ التفسير
Type2Interpreter.interpret() يقوم بتنفيذ سلسلة تشارنج من النوع 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()يسمح لك بإعادة تصنيف القواميس المعدلة- تفسير تشارسترينغ ضروري فقط لاستخراج الخطوط العريضة الخام.;
GlyphAccessorتغطي معظم حالات الاستخدام على مستوى أعلى.
إشارة API
| الفئة / الطريقة | وصف |
|---|---|
CffCharset.standard() | عبارة عن مجموعة أدوب ISO القياسية. |
CffCharset.name_for(gid) | اسم PostScript لمعرفة العلامات الرسمية |
CffCharset.gid_for(name) | معرف الخطوط لـ اسم PostScript |
CffEncoding.standard() | جدول ترميز CFF القياسي |
CffEncoding.unicode_to_gid(cp) | نقطة رمز الخريطة إلى GID |
CffDict.from_bytes(data) | تحليل CFF DICT الخام |
CffDict.get(operator) | الحصول على قيم لمشغل DICT |
CffIndex.from_reader(reader) | تحليل مؤشر CFF |
Type2Interpreter.interpret(cs, pd) | تنفيذ سلسلة تشارنج من النوع 2 |