چگونه با فونت ها در Python کار کنیم
این راهنمای نشان می دهد که چگونه برای خواندن جدول های TTF نامیده شده، به دست آوردن بایت های دایره ای خام و نوشتن داده های جدول با استفاده از TtfFont در Aspose.Font FOSS برای Python. TrueType فونت ها تمام داده ها را در جدول های باینری که با برچسب های 4 کاراکتر شناسایی می شوند ذخیره می کنند. Aspose.Font فوس نشان می دهد TtfTableSet برای دسترسی به میز نامیده می شود و TtfFont.get_table_bytes() / TtfFont.set_table_bytes() برای دسترسی دوگانه خام.
راهنمای گام به گام
مرحله اول: نصب بسته بندی
نصب بسته FOSS از PyPI با استفاده از دستور Pip زیر:
pip install "aspose-font>=1.0.0"مرحله دوم: کلاس های مورد نیاز واردات
Import FontLoader و TtfFont برای بارگذاری یک فایل فونت و دسترسی به مجموعه جدول آن:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontمرحله سوم: دسترسی به جدول های نامیده شده
فایل TTF را با FontLoader.open() و دسترسی به نام های جدول از طریق ttf_tables املاک :
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern present:", tables.kern is not None)
print("cmap present:", tables.cmap is not None)مرحله چهارم: کتاب های خرده فروشی را بخوانید
اطلاعات دوگانه خام برای یک جدول خاص را با عبور از برچسب 4 کاراکتر به get_table_bytes():
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw)} bytes")مرحله پنجم: نوشتن بایت های جدول اصلاح شده
نوشتن داده های باینری اصلاح شده به یک جدول با استفاده از نام گذاری set_table_bytes() با برچسب و بایت پرداخت:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified = b"..." # your modified binary data
ttf_font.set_table_bytes("GSUB", modified)مشکلات و اصلاحات مشترک
AttributeError: Font has no attribute ttf_tables — ttf_tables در آن است TtfFont, نه پایه ای Font کلاس استفاده ttf_font: TtfFont = FontLoader.open(...) برای دریافت یک نوع مرجع.
get_table_bytes بازگرداندن بایت های خالی - برچسب باید دقیقا 4 کاراکتر باشد. (در صورت لزوم در محل کار، به عنوان مثال:. "kern" نه "KRN").
پرسش های متداول
کدام جدول های نامیده شده در TtfTableSet قرار دارند؟?
سر، hhea، maxp، os2، نام، پست، cmap، loca، Hmtx و هسته.
آیا می توانم یک جدول جدید را به یک فونت اضافه کنم؟?
بله، هر گونه برچسب 4 بایت معتبر و داده های بیتی را به TtfFont.set_table_bytes(tag, data).