مقدمة
إيبيدد اوبن تايب (EOT) هو تنسيق شفرة ضئيل تم تطويره في الأصل لإضافة الخطوط TrueType إلى صفحات الويب. يغطى ملف EOT خط TTF أو OTF برأس بحجم ثابت يتضمن حقول البيانات النمطية التي تصف أبعاد الخط والإصدار ومجموعة الأحرف وأذونات الإضفاء. على الرغم من أن تطويق الالكتروني الحديث انتقل إلى حد كبير إلى WOFF / WOff2 ، إلا أن مقاطع Eot لا تزال متوفرًا في الوثائق القديمة وتطبيقات المؤسسات.
Aspose.Font FOSS for Python provides direct access to EOT font internals through the EotFont " ورفيقه " . EotHeader.يمكنك تحميل ملف EOT مع FontLoader.open,، قراءة حقل الرأس، وتجاوز الداخلية TtfFont,، وسلسليّة المواضيع النتيجة إلى بايت أو ملف باستخدام Font.save.
تم نشر المكتبة على PyPI كـ: aspose-font وترخيص تحت ترخيصة MIT. ليس لديها اعتمادات تجارية إلزامية وتعمل مع وقت تشغيل Python 3 القياسي.
الميزات الرئيسية
تحميل EOT Font
استخدام FontLoader.open لتحميل ملف EOT من مسار أو كائن بايت. الطريقة يعيد EotFont مثال عندما يكتشف توقيع EOT:
from aspose_font import FontLoader, EotFont
font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)
print(font.font_name) # e.g. "Roboto"
print(font.font_family) # e.g. "Roboto"
print(font.num_glyphs) # number of glyphs in the inner font
FontLoader.open يقرأ تمديد الملف و السحر الرأس للكشف عن الشكل تلقائياً لا font_type مطلوب دليل لملفات الخط المشتركة.
قراءة بيانات EotHeader
EotFont يعرض حقول العنوان مباشرة كخصائص على الطبقة. هذه تتوافق مع الحقول المحددة في مواصفات EOT الثنائية:
from aspose_font import FontLoader, EotFont, EotSerializer
# Load EOT — FontLoader returns an EotFont instance for .eot files
loaded = FontLoader.open("fonts/sample.eot")
# Serialize back to bytes to confirm the font loaded correctly
eot_bytes = EotSerializer.serialize(loaded)
print(f"EOT data loaded: {len(eot_bytes)} bytes")
# Base Font properties work on any loaded font
print("Font name:", loaded.font_name)
print("Glyphs :", loaded.num_glyphs)
المجلس الوزاري EotFont تعرض الطبقة الميتاداتا التالية لرأس كخصائص:
eot_version(int) نسخة شكل EOT (مثل:.0x00020002)flags(int) إدراج علامات الإذنcharset(int) معرف مجموعة الأحرف (0 = ANSI، 1 = DEFAULT)italic(int) علم متأرجح (0 أو 1)weight(int) وزن الخط (مثل 400 للخط العادي، 700 للكتابة بالجاف)fs_type(int) OS/2 fsType بتات التضمين
استخدام flags و fs_type لتحديد ما إذا كان النمط يسمح بتعيين أو التضمين، وهو أمر مهم عند معالجة الخطوط النصية لمجاري إعادة توزيع.
الوصول إلى النص الداخلي
كلّ واحد. EotFont يحوي خط TrueType القياسي. inner_font إعلانات العقارات المادة: TtfFont مثال، مما يمنحك الوصول إلى مجموعة جداول TrueType الكاملة:
from aspose_font import FontLoader, EotFont
loaded = FontLoader.open("fonts/sample.eot")
# Metrics are accessible directly from the loaded font
metrics = loaded.metrics
print("Units per em :", metrics.units_per_em)
print("Ascender :", metrics.ascender)
print("Descender :", metrics.descender)
print("Line gap :", metrics.line_gap)
المجلس الوزاري inner_font الممتلكات على EotFont يعيد الملفوفة TtfFont على سبيل المثال، توفير الوصول إلى مجموعة جداول TrueType الكاملة، أزواج النواة ، وجداول التشفير.
سلسلة EOT إلى بايتات
EotSerializer.serialize تحويل أي Font اعتراض على سلسلة بايت EOT الخام:
from aspose_font import FontLoader, EotFont, EotSerializer
font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)
eot_bytes = EotSerializer.serialize(font)
with open("output/sample_copy.eot", "wb") as fh:
fh.write(eot_bytes)
print(f"Serialized {len(eot_bytes)} bytes")
تحويل TTF إلى EOT
EotSerializer.serialize تقبل أيّة Font مثال، حتى تتمكن من تحميل TTF و تصفيه مباشرةً إلى بايتات EOT:
from aspose_font import FontLoader, EotFont, EotSerializer
ttf = FontLoader.open("fonts/Roboto-Regular.ttf")
eot_bytes = EotSerializer.serialize(ttf)
with open("output/Roboto-Regular.eot", "wb") as fh:
fh.write(eot_bytes)
reloaded = FontLoader.open("output/Roboto-Regular.eot")
assert isinstance(reloaded, EotFont)
print("Converted and verified:", reloaded.font_name)
قواعد المقياس والجوازات النووية
المجلس الوزاري EotFont يرث كامل العقود Font واجهة، لذلك المقاييس والترميز هي متاح مباشرة بدون المرور عبر inner_font:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/sample.eot")
metrics = loaded.metrics
print(f"Ascender : {metrics.ascender}")
print(f"Descender: {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline: {metrics.underline_position}")
for pair in loaded.get_kern_pairs():
print(f" Kern: {pair}")
بدء سريع
قم بتثبيت المكتبة:
.venv/bin/pip install aspose-font
تحميل وتفتيش خط EOT:
from aspose_font import FontLoader, EotFont, EotSerializer
loaded = FontLoader.open("sample.eot")
# Base font info
print(f"Font name : {loaded.font_name}")
print(f"Glyphs : {loaded.num_glyphs}")
# Metrics
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
# Serialize the loaded font back to EOT bytes
eot_bytes = EotSerializer.serialize(loaded)
print(f"Serialized: {len(eot_bytes)} bytes")
تنسيقات مدعومة
| شكل | تمديد | اقرأ | اكتب |
|---|---|---|---|
| TTF | .ttf | ✓ | — |
| OTF | .تف | ✓ | — |
| EOT | . لا | ✓ | — |
| CFF | . cff | ✓ | — |
| TYPE1 | .pfb/.pfa | ✓ | — |
| WOFF | . ووف | ✓ | — |
| WOFF2 | . ووف2 | ✓ | — |
جميع التنسيقات المذكورة أعلاه مدعومة لتحميل عبر FontLoader.open.الكتابة إلى شكل محدد يستخدم Font.save أو EotSerializer.serialize لـ (إيو تي).
المصدر المفتوح و الترخيص
Aspose.Font FOSS for Python is released under the MIT License. You can use it in المشاريع الشخصية والتجارية والمفتوحة المصدر دون أي تكلفة. ويتم استخدام رمز المصادر في متاح على GitHub ويتم توزيع الحزمة عبر PyPI كـ aspose-font.