مقدمة
الخطوط TrueType (.ttf) ومجموعة OpenType المُضاف إليها (.otf) هي الخط المهيمن. تشارك كلا التنسيقين نفس هيكل الجدول الثنائي. متجذرة في مواصفات OpenType. Aspose. font FOSS لـ Python يعرض هذا الهيكل من خلال TtfFont,، مما يمنح الوصول المباشر إلى جداول OpenType الفردية، بيانات أزواج النواة., محورات الخط المتغير، وخطوط النمط.
المجلس الوزاري TtfFont الطبقة تمدد المرحلة الزمنية. Font فئة أساسية مع طرق خاصة بتقنية التدريب على النقل، بما في ذلك: get_blob, get_table_bytes, set_table_bytes,، و instantiate لخطوط متغيرة محور التثبيت. TtfTableSet الممتلكات (ttf_tables) يوفر إمكانية الوصول إلى النظام الأساسي. جداول OpenType الأكثر شيوعاً: head, hhea, maxp, os2, name, post.
تم نشر المكتبة على PyPI كـ: aspose-font وترخيص تحت ترخيصة MIT. ليس لديها إعتمادا تجاريا إلزامي.
الميزات الرئيسية
تحميل خطوط TTF و OTF
استخدام FontLoader.open لتحميل أي ملف خط TrueType أو OpenTybe:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open يكتشف شكل الخط من عنوان الملف. كلاهما .ttf (TrueType) و .otf (OpenType CFF) الملفات مدعومة وكلاهما يعيد a TtfFont مثال.
الوصول إلى جداول OpenType عبر TtfTableSet
المجلس الوزاري ttf_tables العقار يعود a TtfTableSet مع ملحقات المطبوعة للجسم العام الجداول OpenType. كل خاصية تعيد كائن الطاولة أو None إذا لم يكن هناك:
المجلس الوزاري ttf_tables الممتلكات على TtfFont يعيد a TtfTableSet مثال متاح ملحقات طاولة:
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
كل خاصية تعيد الجدول أو None إذا لم يكن هذا الجدول موجوداً في الملف. ملف الخط. الوصول TtfTableSet خصائص للتحقق من جداول محددة قبل القراءة بالنسبة للجدول غير المشمولة بالمساعدات المسماة، استخدم: TtfTableSet.get_raw(tag) إلى استرداد البايتات الخام بواسطة علامة OpenType ذات أربعة أحرف.
قراءة بايتات الجدول الخام
get_table_bytes(tag) يعيد البايتات الخام لأي جدول OpenType. استخدم get_blob(tag) لغير آمن الذي يعود None عندما يكون الجدول غائباً:
TtfFont يوفر طريقتين للوصول إلى الطاولة الخام:
get_table_bytes(tag) -> bytesيعيد البايتات الخام للجدول المسمى (يزيد إذا كان غائباً)get_blob(tag) -> bytes | NoneالعوائدNoneإذا كان الجدول غائباً (المتغير الآمن)
كلا الطريقتين تقبلون علامة جدول OpenType من أربعة أحرف مثل: "cmap", "GDEF",أو ، "GPOS".استخدمها . get_blob عندما تكون الطاولة اختيارية حتى تتمكن من التحقق من None قبل ذلك معالجة.
أزواج النواة
get_kern_pairs() يعيد كل أزواج النواة المشفرة في الخط. KernPair لديه left (غليفيد) ،, right (GlyphId) ، و value (int في وحدات الخط):
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
قوائم الخطوط
يمكن الوصول إلى المقاييس القياسية من خلال metrics العقارات:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
دعم الخطوط المتغيرة
للخطوط المتغيرة،, TtfFont المكشوفات is_variable, variable_axes,، و named_instances.استخدمها . get_axis(tag) لاسترداد محور معين من خلال أربع حروفها التسمية:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
المجلس الوزاري get_axis(tag) طريقة على TtfFont يستعيد VariableAxis بواسطة الرمز الأربع التسمية (مثل:. "wght" للوزن،, "wdth" يعود إلى None إذا كان المحور هو: غير موجود في الخطوط النصية fvar طاولة.
تحويل الخطوط
to_bytes(font_type) يحول الخط إلى شكل مختلف. استخدم النمط FontType إينوم تحديد الهدف:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
بدء سريع
قم بتثبيت المكتبة:
.venv/bin/pip install aspose-font
تحميل شفرة TTF وتفحصها:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
تنسيقات مدعومة
| شكل | تمديد | اقرأ | اكتب |
|---|---|---|---|
| TTF | .ttf | ✓ | — |
| OTF | .تف | ✓ | — |
| EOT | . لا | ✓ | — |
| CFF | . cff | ✓ | — |
| TYPE1 | .pfb/.pfa | ✓ | — |
| WOFF | . ووف | ✓ | — |
| WOFF2 | . ووف2 | ✓ | — |
جميع الصيغ تحميل عبر FontLoader.open. TTF/OTF النصوص تعيد a TtfFont مثال.
المصدر المفتوح و الترخيص
Aspose.Font FOSS for Python is released under the MIT License. You can use it in المشاريع الشخصية والتجارية والمفتوحة المصدر دون أي تكلفة. ويتم استخدام رمز المصادر في متاح على GitHub ويتم توزيع الحزمة عبر PyPI كـ aspose-font.