Introduction

Aspose.Font FOSS for Python is a new open-source library that gives Python developers một bộ công cụ hoàn chỉnh để làm việc với các tệp chữ viết theo lập trình. nếu bạn cần tải lên TTF cho kiểm tra glyph, chuyển đổi OTF sang WOFF2 để giao hàng web, đặt chữ ký thành giảm kích thước tải, hoặc tạo các bản xem trước hoạt hình của ax chữ số biến đổi, thư viện trình bày một API thống nhất, không phụ thuộc cho tất cả các nhiệm vụ này.

Thư viện được xuất bản trên PyPI như: aspose-font theo giấy phép MIT. nó đòi hỏi Python 3.10 hoặc mới hơn và không phụ thuộc vào thư viện bản phông cấp OS như: FreeType hoặc HarfBuzz. Điều này làm cho nó phù hợp với môi trường máy chủ không đầu, CI ống, và tải công việc chứa nơi cài đặt các phông chữ hệ thống là không thực tế.

Aspose.Font FOSS v1.0.0 supports loading fonts in TTF, OTF, CFF, Type 1, WOFF, WOFF2, và các định dạng EOT, với khả năng xuất khẩu đến cùng một tập hợp định hình thông qua FontConverter.


Những gì được bao gồm

Tải Font và truy cập Metadata

Các FontLoader lớp là điểm nhập duy nhất cho các phông chữ tải. FontLoader.open() với một đường file hoặc byte nguyên và thư viện sẽ phát hiện định dạng tự động và trả lại đối tượng chữ phù hợp. một khi tải, các Font lớp cơ sở cho bạn quyền truy cập để font_name, font_family, font_style, num_glyphs,Và bản đồ mã hóa.

from aspose_font.loader import FontLoader

font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # "Roboto"
print(font.font_family)  # "Roboto"
print(font.num_glyphs)   # number of glyphs in the font

Glyph Inspection và Path Access

Các GlyphAccessor lớp cho phép bạn xem glyphs bằng Glyph ID hoặc Unicode code point thông qua get_glyph_by_id() và get_glyph_by_unicode().Để giải quyết tất cả các glyphs cho một dòng của Tác giả: Text at once, use get_glyphs_for_text().Mỗi người Glyph Object tiết lộ con đường xuất phát của nó như một chuỗi các lệnh đường được viết - MoveTo, LineTo, QuadraticTo, CurveTo, và ClosePath - cho phép bạn truy cập dữ liệu Bézier nguyên chất mà không có động cơ rendering.

from aspose_font.loader import FontLoader

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

Font Subsetting Đề xuất

FontSubsetter - Có nhiều chiến lược sử dụng: Sử dụng subset_by_text() để giữ chỉ các glyphs cần thiết cho một dây cụ thể, subset_by_gids() Để xác định glyph ID trực tiếp, hoặc subset_for_web() để áp dụng một bản cài đặt web tối ưu mà hiếm khi rơi xuống sử dụng glyphs và bảng.The analyze_coverage() Phương pháp cho phép bạn kiểm tra tỷ lệ nào từ chữ cái ban đầu, một phần bao gồm trước khi cam kết với nó.

from aspose_font.loader import FontLoader
from aspose_font.subsetter import FontSubsetter

font = FontLoader.open("NotoSans-Regular.ttf")
# Subset to the characters needed for a Latin-script page
result = FontSubsetter.subset_by_text(font, "Hello, World!")

Web Font Optimization (Tốt nhất)

FontCleaner.clean_for_web() xé DSIG, FFTM và các bảng meta và loại bỏ Mac Danh sách tên nền từ bảng tên của chữ cái. kết quả là một nhị phân nhỏ hơn Nó tải nhanh hơn như một font web mà không thay đổi các dòng xích hoặc đo.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# stripped of legacy tables; ready for WOFF2 packaging

Variable Font Animation Tính năng trước

Đối với các font khác nhau, AnimationPreviewBuilder có thể tạo ra một APNG hoạt hình mà thổi phồng 1 axis từ giá trị khởi đầu đến giá cả cuối. build_axis_sweep() Phương pháp chấp nhận Tác giả: Axis tag (ví dụ,., "wdth" hoặc "wght", một số khung, khép mỗi giây và một lá cờ bounce tùy chọn mà quay ngược lưỡi để tạo ra một hoạt hình xoay. kết quả là một AnimationAsset người mà write_to() Phương pháp tiết kiệm APNG vào đĩa.

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

Khởi động nhanh

Cài đặt thư viện từ PyPI:

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Sau đó tải một phông chữ và kiểm tra các metadata của nó trong vài dòng:

from aspose_font.loader import FontLoader

font = FontLoader.open("MyFont.ttf")
print(f"Family: {font.font_family}")
print(f"Style:  {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")

# Look up a glyph by Unicode code point
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
print(f"Path commands for 'A': {len(glyph.path.commands)}")

Các định dạng hỗ trợ

FormatExtensionReadWrite
TTF.Ttf✓✓
OTF.OTP✓✓
CFF.CFF✓✓
TYPE1.pfb / .fpc✓✓
WOFF.Vôff✓✓
WOFF2.Đồ họa WOFF2✓✓
EOT.EOT✓✓

Open Source & Giấy phép

Aspose.Font FOSS for Python is published under the MIT license. You can use it in dự án thương mại, sửa đổi nó và phân phối nó tự do. mã nguồn có sẵn GitHub tại Tải về: Font-FOSS for Python và gói có sẵn trên PyPI như aspose-font.


bắt đầu

Tài nguyên liên quan