1. محصولات
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS برای Python

کتابخانه منبع باز Python برای بارگذاری، بازرسی، تبدیل و زیرمجموعه‌سازی فایل‌های قلم TTF، OTF، CFF، WOFF، WOFF2 و EOT.

کار با قلم‌ها به‌صورت برنامه‌نویسی در Python

Aspose.Font FOSS برای Python یک کیت‌ابزار pure-Python برای بارگذاری، بازرسی، تبدیل، زیرمجموعه‌سازی و پیش‌نمایش فونت‌ها در قالب‌های TrueType، OpenType، CFF، Type 1، WOFF، WOFF2 و EOT است. این کتابخانه بر روی Python 3.10 یا نسخه‌های بعدی اجرا می‌شود و نیازی به کتابخانه‌های فونت خارجی سیستم‌عامل یا وابستگی‌های بومی ندارد.

کتابخانه یک API تمیز برای بارگذاری فونت از طریق FontLoader، دسترسی به گلیف از طریق GlyphAccessor، تبدیل فرمت از طریق FontConverter، بهینه‌سازی وب از طریق FontCleaner، زیرمجموعه‌سازی آگاه به متن از طریق FontSubsetter، و انیمیشن فونت متغیر از طریق AnimationPreviewBuilder ارائه می‌دهد. متادیتای فونت مانند نام، خانواده، سبک، تعداد گلیف، رمزگذاری و معیارها از طریق کلاس پایه Font بدون نیاز به تجزیه‌وتحلیل جداول باینری به‌صورت دستی در دسترس است.

Aspose.Font FOSS تحت مجوز MIT است و می‌توان آن را از PyPI با یک فرمان pip install نصب کرد. این برای ابزارهای طراحی فونت، خطوط لوله وب‌فونت، موتورهای رندرینگ گلیف و هر برنامه Python که نیاز به خواندن، تبدیل یا تولید فایل‌های فونت دارد مناسب است. برای خانواده محصولات سازمانی، به Aspose.Font — Enterprise Product Family مراجعه کنید.

بارگذاری قلم و تشخیص قالب

  • فونت‌ها را از مسیرهای فایل یا بایت‌های خام با FontLoader.open() و FontLoader.load() بارگذاری کنید
  • به‌صورت خودکار فرمت را شناسایی کنید: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • دسترسی به فرادادهٔ قلم از طریق کلاس پایه Font: font_name، font_family، font_style، num_glyphs
  • نقشه‌های کدگذاری گلیف را با FontEncoding.unicode_to_gid() و get_all_codepoints() بخوانید
  • متریک‌های قلم را با FontMetrics بررسی کنید: بالا رفتن، پایین رفتن، فاصله خط، مربع ام

موارد استفاده رایج

  • خط لوله‌های اعتبارسنجی فونت و استخراج فراداده
  • بررسی‌های CI/CD که نام خانواده قلم و تعداد گلیف‌ها را تأیید می‌کنند
  • سرویس‌های دریافت فونت وب که فرمت‌های ورودی متعددی را می‌پذیرند
  • ابزارهای طراحی فونت که متادیتا را بدون زمان اجرای دسکتاپ نمایش می‌دهند

دسترسی به گلیف و بازرسی مسیر

  • گلیف‌ها را بر اساس شناسه یا یونیکد با GlyphAccessor.get_glyph_by_id() و get_glyph_by_unicode() بازیابی کنید
  • تمام گلیف‌ها را برای یک رشته با GlyphAccessor.get_glyphs_for_text() حل کنید
  • مسیرهای طرح حروف را به‌عنوان دستورات تایپ‌شده بررسی کنید: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • دسترسی به جعبه مرزی گلیف، عرض پیشروی و حاشیه‌های جانبی از ویژگی‌های Glyph
  • جفت‌های کرنینگ را از KernPair برای محاسبات دقیق چیدمان متن بخوانید

موارد استفاده معمول

  • بررسی پوشش گلیف‌ها برای رندر متن چندزبانه
  • استخراج خطوط مرزی برای مسیر SVG یا تولید وکتور
  • اعتبارسنجی جدول کرنینگ در جریان‌های کاری QA فونت
  • تحقیقات شکل‌دهی متن و آزمایش‌های چیدمان سطح پایین

تبدیل قلم

  • تبدیل بین TTF، OTF، CFF، WOFF، WOFF2، EOT و Type 1 با FontConverter.convert()
  • انواع منحنی بزیه را با CurveAdapter.quad_to_cubic() و cubic_to_quads() سازگار کنید
  • تبدیل مسیرهای گلیف بین منحنی‌های درجه دوم و درجه سوم با convert_path_quad_to_cubic() و convert_path_cubic_to_quad()

موارد استفاده معمول

  • خط لوله‌های وب‌فونت که فونت‌های اصلی TTF را به WOFF2 برای توزیع تبدیل می‌کنند
  • ابزارهای تایپ فاندری که از یک منبع به چندین هدف فرمت صادر می‌شوند
  • تبدیل EOT قدیمی برای پشته‌های وب‌فونت سازگار با نسخه‌های قبلی
  • نرمال‌سازی خودکار فرمت فونت در ادغام مستمر

زیرمجموعه‌سازی فونت

  • قلم‌های زیرمجموعه بر اساس متن یونیکد با FontSubsetter.subset_by_text()
  • تقسیم‌بندی بر اساس فهرست شناسه گلیف با FontSubsetter.subset_by_gids()
  • زیرمجموعه‌های بهینه‌سازی‌شده برای وب تولید کنید با FontSubsetter.subset_for_web()
  • پروفایل‌های پیش‌تنظیم شده نام‌دار را با FontSubsetter.subset_by_presets() و available_presets() اعمال کنید
  • تحلیل پوشش زیرمجموعه با FontSubsetter.analyze_coverage() و analyze_web_coverage()

موارد استفاده معمول

  • کاهش اندازه بارگذاری WOFF2 برای صفحات وب با مجموعه کاراکترهای محدود
  • تولید زیرمجموعه‌های قلم مخصوص زبان برای استقرارهای i18n
  • گردش‌کارهای مجوزدهی فونت که زیرمجموعه‌های مجموعه صفحه‌ای را توزیع می‌کنند
  • بهینه‌سازی عملکرد برای برنامه‌های وب موبایل

بهینه‌سازی وب و پیش‌نمایش‌های فونت متغیر

  • جداول قدیمی و رکوردهای نام Mac را با FontCleaner.clean_for_web() حذف کنید
  • سازگاری محورهای قلم متغیر را با CompatibilityChecker.compare_fonts() و compare_variable_instances() بررسی کنید
  • تولید اسکن‌های محور انیمیشنی APNG با AnimationPreviewBuilder.build_axis_sweep()
  • مسیرهای انیمیشن چندمرحله‌ای را با AnimationPreviewBuilder.build_path() بسازید

موارد استفاده معمول

  • صفحات نمونه قلم و کاوشگرهای محور تعاملی برای کارخانه‌های حروف‌چینی
  • خطوط لوله CI که رفتار فونت متغیر را قبل از توزیع بررسی می‌کنند
  • خطوط لوله عملکرد وب که جداول باینری غیرضروری را حذف می‌کنند
  • تصاویر بندانگشتی پیش‌نمایش فونت برای برنامه‌های مدیریت فونت

بارگذاری یک فایل قلم

یک فونت TrueType یا OpenType را از مسیر فایل باز کنید و متادیتای پایه آن را بخوانید.

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

دسترسی به گلیف‌ها برای یک رشته متنی

تمام گلیف‌ها را برای یک نقطه کد یونیکد حل کنید و مسیرهای طرح کلی آن‌ها را بررسی کنید.

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

تولید انیمیشن اسکن محور قلم متغیر

یک 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")

پاک‌سازی یک قلم برای استقرار وب

جداول قدیمی و رکوردهای نام مک را حذف کنید تا قبل از سرویس وب، اندازه باینری کاهش یابد.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

سوالات متداول

Aspose.Font FOSS برای Python چیست؟

این یک کتابخانهٔ رایگان، تحت مجوز MIT، pure-Python برای بارگذاری، بازرسی، تبدیل و زیرمجموعه‌سازی فونت‌ها در فرمت‌های TTF، OTF، CFF، Type 1، WOFF، WOFF2 و EOT است. هیچ وابستگی بومی لازم نیست.

چگونه Aspose.Font FOSS را برای Python نصب کنم؟

دستور pip install "aspose-font>=1.0.0" را اجرا کنید. هیچ وابستگی سطح سیستمی لازم نیست. این کتابخانه بر روی Windows، macOS و Linux با Python 3.10 یا بالاتر کار می‌کند.

کدام فرمت‌های قلم پشتیبانی می‌شوند؟

FontLoader.open() فرمت‌های TTF، OTF، CFF، Type 1، WOFF، WOFF2 و EOT را می‌خواند. FontConverter.convert() فرمت‌های TTF، CFF، WOFF و WOFF2 را می‌نویسد. EOT فقط قابل خواندن است.

آیا Font.to_bytes() در دسترس است؟

خیر. Font.to_bytes() در کلاس پایه پیاده‌سازی نشده است. از FontConverter.convert() برای تولید یک Font جدید در قالب مورد نظر استفاده کنید.

آیا می‌توانم یک فونت را برای تحویل وب زیرمجموعه کنم؟

بله. FontSubsetter.subset_by_text(font, text) یک Font جدید برمی‌گرداند که فقط گلیف‌های مورد نیاز برای متن داده‌شده را شامل می‌شود. FontSubsetter.subset(font, codepoints) و subset_by_gids(font, gids) کنترل دقیق‌تری فراهم می‌کنند.

  

منابع پشتیبانی و آموزش

 فارسی