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() بارگذاری کنیدFont: font_name، font_family، font_style، num_glyphsFontEncoding.unicode_to_gid() و get_all_codepoints() بخوانیدFontMetrics بررسی کنید: بالا رفتن، پایین رفتن، فاصله خط، مربع امGlyphAccessor.get_glyph_by_id() و get_glyph_by_unicode() بازیابی کنیدGlyphAccessor.get_glyphs_for_text() حل کنیدMoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyphKernPair برای محاسبات دقیق چیدمان متن بخوانیدFontConverter.convert()CurveAdapter.quad_to_cubic() و cubic_to_quads() سازگار کنیدconvert_path_quad_to_cubic() و convert_path_cubic_to_quad()FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web()FontSubsetter.subset_by_presets() و available_presets() اعمال کنیدFontSubsetter.analyze_coverage() و analyze_web_coverage()FontCleaner.clean_for_web() حذف کنیدCompatibilityChecker.compare_fonts() و compare_variable_instances() بررسی کنیدAnimationPreviewBuilder.build_axis_sweep()AnimationPreviewBuilder.build_path() بسازیدیک فونت 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
این یک کتابخانهٔ رایگان، تحت مجوز MIT، pure-Python برای بارگذاری، بازرسی، تبدیل و زیرمجموعهسازی فونتها در فرمتهای TTF، OTF، CFF، Type 1، WOFF، WOFF2 و EOT است. هیچ وابستگی بومی لازم نیست.
دستور 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() در کلاس پایه پیادهسازی نشده است. از FontConverter.convert() برای تولید یک Font جدید در قالب مورد نظر استفاده کنید.
بله. FontSubsetter.subset_by_text(font, text) یک Font جدید برمیگرداند که فقط گلیفهای مورد نیاز برای متن دادهشده را شامل میشود. FontSubsetter.subset(font, codepoints) و subset_by_gids(font, gids) کنترل دقیقتری فراهم میکنند.