چگونه با فونت ها در Python کار کنیم

چگونه با فونت ها در 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_tablesttf_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).

See Also

 فارسی