Introduction

Aspose.Font FOSS for Python provides a coherent set of classes for every common nhiệm vụ quản lý phông chữ: tải các tệp phon trong nhiều định dạng, đọc metadata và dữ liệu glyph, chuyển đổi giữa các định dạng, đặt hàng cho giao hàng web và làm sạch bảng nhị phân cho kích thước tệp tối ưu. hướng dẫn này đi qua mỗi khả năng cốt lõi với ví dụ mã làm việc thu được từ API đã xác minh của thư viện.

gói (aspose-font( ) là MIT cấp phép, yêu cầu Python 3.10+, và không có giấy phép OS-level font library phụ thuộc. cài đặt nó với pip install aspose-font>=1.0.0.


Các tính năng chính

Tải Fonts với FontLoader

FontLoader là điểm nhập duy nhất cho tất cả các hoạt động tải phông chữ. open() phương pháp chấp nhận một đường file (str hoặc Path) và tự phát hiện định dạng. load() phương pháp chấp nhận các byte nguyên cho dòng công việc trong bộ nhớ. cả hai trả về một Font- Nhóm Các đối tượng bạn có thể kiểm tra ngay lập tức.

from aspose_font.loader import FontLoader

# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")

# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
    font_bytes = f.read()
font = FontLoader.load(font_bytes)

Đọc Font Metadata thông qua lớp Font Base

Khi tải, các Font lớp cơ sở tiết lộ các thuộc tính metadata tiêu chuẩn mà không có yêu cầu bạn để phân phối bảng chữ cái nhị phân. các thuộc tính font_name, font_family, font_style, và num_glyphs đáp ứng nhu cầu metadata phổ biến nhất.

font = FontLoader.open(“NotoSans-Regular.ttf”) print(f"Name: {font.font_name}") print(f"Family: {font.font_family}") print(f"Style: {font.font_style}") print(f"Glyphs: {font.num_glyphs}")


### Glyph Encoding và Access

`FontEncoding` Bản đồ Unicode mã điểm đến glyph IDs. sử dụng `unicode_to_gid()` Đối với 1 điểm mã hoặc `get_all_codepoints()` để liệt kê toàn bộ bao phủ của font ạ. `GlyphAccessor` sau đó thu hồi các đối tượng glyph bằng ID qua `get_glyph_by_id()`, Unicode qua `get_glyph_by_unicode()`,hoặc để viết một dòng văn bản qua `get_glyphs_for_text()`.

font = FontLoader.open("OpenSans-Regular.otf")

# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41)  # 'A'
print(f"Glyph ID for 'A': {glyph_id}")

# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

# Inspect path commands
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Chuyển đổi Font với FontConverter

FontConverter.convert() chuyển đổi một phông chữ tải giữa các định dạng được hỗ trợ. font nguồn và định dạng mục tiêu xác định để có được một đối tượng chữ mới trong mục đích Phương pháp này xử lý CFF, TTF, WOFF , Woff2, EOT và Type 1 như nguồn gốc và mục tiêu .

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter

source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")

Tối ưu hóa web với FontCleaner

FontCleaner.clean_for_web() xóa các bảng nhị phân không cần thiết cho web Giao hàng chữ cái – cụ thể là DSIG, FFTM và meta – và các dòng trên nền tảng Mac (platform_id=1) Tên ghi từ bảng tên. kết quả là một nhị phân mềm hơn làm giảm mạng lưới tải tiền mà không chạm vào các dấu hiệu hoặc đo. chủ đề từ khóa tùy chọn cho phép bạn Bảo vệ các loại bảng cụ thể nếu cần thiết.

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

font = FontLoader.open("Roboto-Regular.ttf")

# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)

# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
    font,
    drop_metadata_tables=False,
    drop_legacy_tables=True,
    drop_mac_names=True,
)

Khóa Glyph Path Inspection

Every Glyph đối tượng thể hiện kết quả của nó như một GlyphPath người mà commands sequence → tiếp theo Có các ví dụ được mô tả về MoveTo, LineTo, QuadraticTo, CurveTo, và ClosePath.Mỗi lệnh mang theo các thuộc tính phối hợp liên quan - ví dụ:, CurveTox1, y1, x2, y2, x, y - cho phép bạn lấy ra Bézier nguyên chất dữ liệu cho rendering, SVG generation, hoặc sụp đổ địa chất.

from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo

font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")

Khởi động nhanh

pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")

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 MIT licensed. The source is on GitHub at Tải về: Font-FOSS for Python và gói là trên PyPI như aspose-font.


bắt đầu

Tài nguyên liên quan