مقدمة

Aspose.Font FOSS for Python is a new open-source library that gives Python developers مجموعة أدوات كاملة للعمل مع ملفات الخط برمجيا. إذا كنت بحاجة إلى تحميل TTF للتفتيش على الخطوط، تحويل OTF إلى WOFF2 لتوصيل الويب، تعيين شفرة فرعية ل تقليل حجم الحمولة المفيدة، أو إنشاء عرض مُتحرك لمواجهات محور الخط المتغير ، مكتبة يُعرض واجهة برمجة تطبيقية موحدة خالية من الاعتماد لجميع هذه المهام.

تم نشر المكتبة على PyPI كـ: aspose-font تحت ترخيص MIT. إنه يتطلب بايثون 3.10 أو أحدث ولا يعتمد على مكتبات عرض الخطوط على مستوى نظام التشغيل مثل: هذا يجعله مناسب جداً لبيئات الخادم بدون رأس،, أنابيب CI، وعبء العمل المحتوى حيث تثبيت النظام الخطوط غير عملي.

Aspose.Font FOSS v1.0.0 supports loading fonts in TTF, OTF, CFF, Type 1, WOFF, WOFF2, و أشكال EOT ، مع القدرة على التصدير إلى نفس مجموعة الأشكالا عبر FontConverter.


ما هو مدرجة

تحميل الخطوط والوصول إلى البيانات الـ (metadata)

المجلس الوزاري FontLoader class هو نقطة الدخول الوحيدة لتحميل الخطوط. اتصل FontLoader.open() مع مسار الملف أو بايتات الخام والمكتبة سوف تكتشف الشكل تلقائيا و يعيد الكائن الخط المناسب. بمجرد تحميله، Font الطبقة الأساسية تمنحك الوصول إلى font_name, font_family, font_style, num_glyphs,، والخريطة التشفير.

from aspose_font.loader import FontLoader

font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # "Roboto"
print(font.font_family)  # "Roboto"
print(font.num_glyphs)   # number of glyphs in the font

فحص الخطوط والوصول إلى المسار

المجلس الوزاري GlyphAccessor يسمح لك الفصل بالبحث عن الرموز بواسطة معرف الرمز أو نقطة رمز يونيكود عبر get_glyph_by_id() و get_glyph_by_unicode().لحل كل الصفوف لسلسله من نص في آن واحد، استخدام get_glyphs_for_text().كل واحد منهم Glyph الكائن يعرض مساره المخططى كسلسلة من أوامر المسار المكتوبة MoveTo, LineTo, QuadraticTo, CurveTo,، و ClosePath يمنحك الوصول إلى بيانات بيزار الخام بدون محرك تقديم.

from aspose_font.loader import FontLoader

font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode code point for 'A'
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

إضافة الخطوط

FontSubsetter يوفر استراتيجيات فرعية متعددة. استخدام subset_by_text() إلى تحتفظ فقط بالرموز اللازمة لسلسلة معينة،, subset_by_gids() لتحديد النصوص بطاقة الهوية مباشرة، أو subset_for_web() لتطبيق إعداد مسبق مُحسن للويب الذي يقع نادراً استخدموا الرموز والجداول. analyze_coverage() الطريقة تسمح لك بفحص النسبة المئوية من الخط الأصلي الذي تغطيه مجموعة فرعية قبل الالتزام بها.

from aspose_font.loader import FontLoader
from aspose_font.subsetter import FontSubsetter

font = FontLoader.open("NotoSans-Regular.ttf")
# Subset to the characters needed for a Latin-script page
result = FontSubsetter.subset_by_text(font, "Hello, World!")

تحسين الخطوط على الويب

FontCleaner.clean_for_web() يقطع DSIG، FFTM، وجداول الميثا ويزيل Mac سجلات اسم المنصة من جدول أسماء الخط. النتيجة هي ثنائية أصغر الذي يُحمّل أسرع كخطوط ويب دون تغيير خطوط الخطط أو المقاييس.

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

font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# stripped of legacy tables; ready for WOFF2 packaging

عرض المقبل لتحريك الخطوط المتغيرة

للخطوط المتغيرة،, AnimationPreviewBuilder يمكن أن تولد APNG متحركة التي تمسح محور واحد من قيمة البداية إلى القيمة النهائية. build_axis_sweep() الطريقة تقبل علامة المحور (مثل،., "wdth" أو "wght"), عدد الإطارات, إطار في الثانية , و العلم الارتدادي الاختياري الذي يعكس التجديف لإنشاء حركة متحركة. النتيجة هو AnimationAsset من write_to() الطريقة تقوم بحفظ APNG على القرص.

from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder

font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

asset = AnimationPreviewBuilder.build_axis_sweep(
    font,
    axis_tag="wdth",
    start_val=75.0,
    end_val=100.0,
    frames=3,
    fps=10,
    text="A",
    size=10.0,
    bounce=True,
)

asset.write_to("roboto-sweep-wdth.png")

بدء سريع

تثبيت المكتبة من PyPI:

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

ثم تحميل الخط وتفقد البيانات الوصفيّة في بضعة خطوط:

from aspose_font.loader import FontLoader

font = FontLoader.open("MyFont.ttf")
print(f"Family: {font.font_family}")
print(f"Style:  {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")

# Look up a glyph by Unicode code point
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
print(f"Path commands for 'A': {len(glyph.path.commands)}")

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

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

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

Aspose.Font FOSS for Python is published under the MIT license. You can use it in المشاريع التجارية، وتعديلها وتوزيعها بحرية. على GitHub في aspose-font-foss/Aspose.Font-FOSS-لـبايثون و المجموعة متاحة على PyPI كـ aspose-font.


بدءاً من

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