العمل مع 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

انظر أيضا

 العربية