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

Aspose.Font FOSS for Python

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

کار با فونت ها به صورت برنامه ریزی شده در پایتون

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 است و با یک فرمان pip install از PyPI قابل نصب است. این ابزار برای ابزارهای طراحی قلم، خطوط لوله وب‌فونت، موتورهای رندرینگ گلیف، و هر برنامه Python که نیاز به خواندن، تبدیل یا تولید فایل‌های قلم دارد مناسب است. برای مجموعه محصولات سازمانی، به Aspose.Font — Enterprise Product Family مراجعه کنید.

بارگیری فونت و تشخیص فرمت

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

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

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

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

  • گلیف ها را با ID یا یونیکد با 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 و نوع 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
  • جریان های کاری مجوز نامه که فرعی از مجموعه صفحات را توزیع می کنند.
  • بهینه سازی عملکرد برای برنامه های وب موبایل

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

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

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

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

بارگیری یک فایل فونت

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

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 برای پایتون چیست؟

این یک کتابخانه رایگان و با مجوز MIT برای بارگیری، بازرسی، تبدیل کردن و زیرنویس کردن فونت ها در فرمت های TTF ، OTF، CFF ، Type 1 ، WOFF، WOff2 و EOT است. هیچ وابستگی بومی مورد نیاز نیست.

چطور می توانم Aspose.Font FOSS را برای پایتون نصب کنم؟

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

چه فرمت های فونت پشتیبانی می شوند؟

FontLoader.open() TTF، OTF, CFF، Type 1, WOFF, WOff2 و EOT را می خواند. FontConverter.convert() نوشته شده است TFT، CFCF، WOFF و WOWF2. Eot فقط برای خواندن است.

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

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

میتونم یک فونت رو برای تحویل وب تنظیم کنم؟

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

  

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

 فارسی