مقدمة

Aspose.Font FOSS for Python provides a coherent set of classes for every common مهمة إدارة الخطوط: تحميل ملفات الخطوص في تنسيقات متعددة، قراءة البيانات الـ (ميتا) والبياناته المختلفة. بيانات النمط، التحويل بين الصيغ، التعيين الفرعي لتقديم الويب، والتنظيف الجداول الثنائية لحجم الملف الأمثل. هذا الدليل يمر عبر كل قدرة أساسية مع أمثلة شفرة عمل مستمدة من واجهة التطبيقات المستخدمة للمكتبة التي تمت التحقق منها.

المجموعة (aspose-font) مع ترخيص MIT، ويتطلب Python 3.10+ ، وليس لديه أي إمكانية للاستفادة من البرنامج. اعتمادات مكتبة الخط على مستوى نظام التشغيل. قم بتثبيتها بواسطة pip install aspose-font>=1.0.0.


الميزات الرئيسية

تحميل الخطوط باستخدام FontLoader

FontLoader هو نقطة الدخول الوحيدة لجميع عمليات تحميل الخطوط. open() يوافق المنهج على مسار ملف (str أو Path) ويكشف التنسيق تلقائياً. load() تستقبل طريقة بايتات خام لمتدفقات العمل في الذاكرة. كلا يعود a Font-مخططها شئ يمكنك فحصه فوراً.

from aspose_font.loader import FontLoader

# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")

# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
    font_bytes = f.read()
font = FontLoader.load(font_bytes)

قراءة البيانات النصية عبر فئة القاعدة للخطوط

بمجرد تحميلها، Font الفئة الأساسية تعرض خصائص البيانات الوصفية القياسية دون يتطلب منك تحليل جداول الخط الثنائي. خصائص font_name, font_family, font_style,، و num_glyphs تغطي احتياجات البيانات الوصفية الأكثر شيوعاً.

from aspose_font.loader import FontLoader

font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name:   {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style:  {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")

ترميز ووصول الخطوط المخططة

FontEncoding خرائط رمز يونيكود يشير إلى هويات النقاط. استخدام unicode_to_gid() لـ: نقاط رمز واحدة أو get_all_codepoints() لتحديد التغطية الكاملة للدراسات المهنية. النص. GlyphAccessor ثم يسترد الكائنات النمطية عن طريق ID عبر get_glyph_by_id(), بواسطة يونيكود عبر get_glyph_by_unicode(),، أو لسلسلاً نصياً عبر get_glyphs_for_text().

from aspose_font.loader import FontLoader

font = FontLoader.open("OpenSans-Regular.otf")

# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41)  # 'A'
print(f"Glyph ID for 'A': {glyph_id}")

# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

# Inspect path commands
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

تحويل الخطوط باستخدام FontConverter

FontConverter.convert() يحول الخط المثمر بين الصيغ المدعومة. تمرر النمط مصدر الخط والشكل الهدف لتحصل على كائن خط جديد في الهداف النمط. تتعامل الطريقة مع CFF، TTF، WOFF ، WOff2 ، EOT ، و Type 1 كصدر وكذلك الهدف.

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter

source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")

تحسين الويب باستخدام FontCleaner

FontCleaner.clean_for_web() يزيل الجداول الثنائية التي ليست ضرورية لـ web تسليم الخطوط على وجه التحديد DSIG و FFTM ، وميتا ?? والشرائح منصة Mac (platform_id=1) سجلات الاسم من جدول الأسماء. والنتيجة هي ثنائية أكثر رفاهية التي تقلل الشبكة تحميل بدون لمس الخطوط العريضة أو المقاييس. حجج الكلمات الرئيسية الاختيارية تسمح لك الحفاظ على أنواع الجداول المحددة إذا لزم الأمر.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

font = FontLoader.open("Roboto-Regular.ttf")

# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)

# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
    font,
    drop_metadata_tables=False,
    drop_legacy_tables=True,
    drop_mac_names=True,
)

فحص مسار الخطوط المخططة

كلّ واحد. Glyph كائن يعرض ملامحه كموضوع GlyphPath من commands التسلسل تحتوي على حالات من النوع المطبوع لـ: MoveTo, LineTo, QuadraticTo, CurveTo,، و ClosePath.كل أمر يحمل صفات الإحداثيات ذات الصلة على سبيل المثال،, CurveTo لديه x1, y1, x2, y2, x, y تسمح لك بإستخراج بيزير الخام بيانات للتعريض، أو توليد SVG، او هندسة التصادم.

from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo

font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")

بدء سريع

pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")

تنسيقات مدعومة

شكلتمديداقرأاكتب
TTF.ttf
OTF.تف
CFF. cff
TYPE1.pfb / .pfa
WOFF. ووف
WOFF2. ووف2
EOT. لا

المصدر المفتوح و الترخيص

Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at aspose-font-foss/Aspose.Font-FOSS-لـبايثون و الحزمة على PyPI كما هو الحال aspose-font.


بدءاً من

الموارد ذات الصلة