1. Sản Phẩm
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS cho Python

Thư viện Python mã nguồn mở để tải, kiểm tra, chuyển đổi và tạo tập con các tệp phông chữ TTF, OTF, CFF, WOFF, WOFF2 và EOT.

Làm việc với Phông chữ một cách lập trình trong Python

Aspose.Font FOSS cho Python là một bộ công cụ pure-Python để tải, kiểm tra, chuyển đổi, tạo tập con và xem trước phông chữ trên các định dạng TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 và EOT. Thư viện chạy trên Python 3.10 trở lên và không yêu cầu bất kỳ thư viện phông chữ OS bên ngoài hay phụ thuộc gốc nào.

Thư viện cung cấp một API sạch sẽ cho việc tải phông chữ qua FontLoader, truy cập glyph qua GlyphAccessor, chuyển đổi định dạng qua FontConverter, tối ưu hóa web qua FontCleaner, phân đoạn có nhận thức văn bản qua FontSubsetter, và hoạt hình phông chữ biến đổi qua AnimationPreviewBuilder. Siêu dữ liệu phông chữ như tên, họ, kiểu, số lượng glyph, mã hóa và các chỉ số có thể truy cập thông qua lớp cơ sở Font mà không cần phân tích các bảng nhị phân một cách thủ công.

Aspose.Font FOSS được cấp phép MIT và có thể cài đặt từ PyPI bằng một lệnh pip install duy nhất. Nó phù hợp cho công cụ thiết kế phông chữ, quy trình phông chữ web, động cơ hiển thị glyph và bất kỳ ứng dụng Python nào cần đọc, chuyển đổi hoặc tạo ra các tệp phông chữ. Đối với dòng sản phẩm doanh nghiệp, xem Aspose.Font — Enterprise Product Family.

Tải Phông và Phát Hiện Định Dạng

  • Tải phông chữ từ đường dẫn tệp hoặc byte thô bằng FontLoader.open()FontLoader.load()
  • Tự động phát hiện định dạng: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Truy cập siêu dữ liệu phông chữ thông qua lớp cơ sở Font: font_name, font_family, font_style, num_glyphs
  • Đọc bản đồ mã hoá glyph với FontEncoding.unicode_to_gid()get_all_codepoints()
  • Kiểm tra các chỉ số phông chữ với FontMetrics: ascent, descent, line gap, em-square

Các trường hợp sử dụng điển hình

  • Các pipeline xác thực phông chữ và trích xuất siêu dữ liệu
  • Kiểm tra CI/CD xác minh tên họ phông chữ và số lượng glyph
  • Dịch vụ nhập phông chữ web chấp nhận nhiều định dạng đầu vào
  • Công cụ thiết kế phông chữ hiển thị siêu dữ liệu mà không cần môi trường chạy trên máy tính để bàn

Truy cập Glyph và Kiểm tra Đường dẫn

  • Truy xuất glyphs theo ID hoặc Unicode bằng GlyphAccessor.get_glyph_by_id()get_glyph_by_unicode()
  • Giải quyết tất cả các glyph cho một chuỗi với GlyphAccessor.get_glyphs_for_text()
  • Kiểm tra các đường viền glyph dưới dạng lệnh đã nhập: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Truy cập hộp bao quanh glyph, độ rộng tiến và các biên bên từ các thuộc tính Glyph properties
  • Đọc các cặp kerning từ KernPair để tính toán bố cục văn bản chính xác

Các trường hợp sử dụng điển hình

  • Kiểm tra độ bao phủ glyph cho việc hiển thị văn bản đa ngôn ngữ
  • Trích xuất đường viền cho đường dẫn SVG hoặc tạo vector
  • Xác thực bảng kerning trong quy trình QA phông chữ
  • Nghiên cứu định hình văn bản và thí nghiệm bố cục cấp thấp

Chuyển đổi phông chữ

  • Chuyển đổi giữa TTF, OTF, CFF, WOFF, WOFF2, EOT và Type 1 với FontConverter.convert()
  • Điều chỉnh các loại đường cong Bezier với CurveAdapter.quad_to_cubic()cubic_to_quads()
  • Chuyển đổi các đường glyph giữa dạng quadratic và cubic với convert_path_quad_to_cubic()convert_path_cubic_to_quad()

Các trường hợp sử dụng điển hình

  • Quy trình phông chữ web chuyển đổi phông chữ gốc TTF sang WOFF2 để phân phối
  • Công cụ nhà máy phông chữ cho phép xuất ra nhiều định dạng mục tiêu từ một nguồn
  • Chuyển đổi EOT legacy cho các ngăn xếp phông chữ web tương thích ngược
  • Chuẩn hoá định dạng phông chữ tự động trong tích hợp liên tục

Cắt giảm phông chữ

  • Cắt bớt phông chữ theo văn bản Unicode với FontSubsetter.subset_by_text()
  • Tập con theo danh sách ID glyph với FontSubsetter.subset_by_gids()
  • Tạo các tập con được tối ưu cho web với FontSubsetter.subset_for_web()
  • Áp dụng các hồ sơ cài đặt trước có tên với FontSubsetter.subset_by_presets()available_presets()
  • Phân tích phạm vi tập con với FontSubsetter.analyze_coverage()analyze_web_coverage()

Các trường hợp sử dụng điển hình

  • Giảm kích thước payload WOFF2 cho các trang web có bộ ký tự hạn chế
  • Tạo các tập con phông chữ riêng cho từng ngôn ngữ cho việc triển khai i18n
  • Quy trình cấp phép phông chữ phân phối các tập hợp con theo từng bộ trang
  • Tối ưu hoá hiệu năng cho các ứng dụng web di động

Tối ưu hoá web và Xem trước phông chữ biến thể

  • Xóa các bảng kế thừa và bản ghi tên Mac bằng FontCleaner.clean_for_web()
  • Kiểm tra tính tương thích của trục phông chữ biến đổi với CompatibilityChecker.compare_fonts()compare_variable_instances()
  • Tạo các quét trục APNG hoạt hình với AnimationPreviewBuilder.build_axis_sweep()
  • Xây dựng các đường dẫn hoạt ảnh đa bước với AnimationPreviewBuilder.build_path()

Các trường hợp sử dụng điển hình

  • Các trang mẫu phông chữ và trình khám phá trục tương tác cho các nhà sản xuất phông chữ
  • Các pipeline CI kiểm tra hành vi phông chữ biến thể trước khi phân phối
  • Các pipeline hiệu suất web loại bỏ các bảng nhị phân không thiết yếu
  • Hình thu nhỏ xem trước phông chữ cho các ứng dụng quản lý phông chữ

Tải tệp phông chữ

Mở một phông chữ TrueType hoặc OpenType từ đường dẫn tệp và đọc siêu dữ liệu cơ bản của nó.

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

Truy cập các Glyphs cho một chuỗi văn bản

Xác định tất cả các glyph cho một điểm mã Unicode và kiểm tra các đường viền của chúng.

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)

Tạo hoạt ảnh quét trục cho Variable Font

Tạo một APNG hoạt hình quét trục phông chữ biến đổi từ giá trị bắt đầu đến giá trị kết thúc.

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

Làm sạch phông chữ để triển khai trên web

Loại bỏ các bảng kế thừa và bản ghi tên Mac để giảm kích thước nhị phân trước khi phục vụ web.

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

Câu Hỏi Thường Gặp

Cái gì là Aspose.Font FOSS cho Python?

Đây là một thư viện Python thuần, miễn phí, có giấy phép MIT, dùng để tải, kiểm tra, chuyển đổi và tạo subset phông chữ ở các định dạng TTF, OTF, CFF, Type 1, WOFF, WOFF2 và EOT. Không cần bất kỳ phụ thuộc gốc nào.

Tôi cài đặt Aspose.Font FOSS cho Python như thế nào?

Chạy pip install "aspose-font>=1.0.0". Không cần phụ thuộc cấp hệ thống. Thư viện hoạt động trên Windows, macOS và Linux với Python 3.10 trở lên.

Các định dạng phông chữ nào được hỗ trợ?

FontLoader.open() đọc các định dạng TTF, OTF, CFF, Type 1, WOFF, WOFF2 và EOT. FontConverter.convert() ghi các định dạng TTF, CFF, WOFF và WOFF2. EOT chỉ đọc.

Font.to_bytes() có sẵn không?

Không. Font.to_bytes() không được triển khai trong lớp cơ sở. Sử dụng FontConverter.convert() để tạo một Font mới ở định dạng mong muốn.

Tôi có thể subset một phông chữ để cung cấp trên web không?

Có. FontSubsetter.subset_by_text(font, text) trả về một Font mới chỉ chứa các glyph cần thiết cho văn bản đã cho. FontSubsetter.subset(font, codepoints)subset_by_gids(font, gids) cung cấp kiểm soát chi tiết hơn.

  

Tài Nguyên Hỗ Trợ và Học Tập

 Tiếng Việt