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

Aspose.Font FOSS for 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 các font theo chương 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, cắt 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 thư viện phông chữ OS bên ngoài hay phụ thuộc gốc.

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 hoá web qua FontCleaner, cắt con 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ố glyph, mã hoá 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 thủ công các bảng nhị phân.

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, engine render 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.

Load Font và định dạng phát hiện

  • Tải phông từ đường dẫn tệp hoặc byte thô với FontLoader.open()FontLoader.load()
  • Hình thức tự động phát hiện: TTF, OTF , CFF, WOFF , WOff2, EOT, Loại 1
  • Truy cập siêu dữ liệu phông chữ thông qua lớp cơ bản Font: font_name, font_family,font_style , num_glyphs
  • Đọc bản đồ mã hóa glyph với FontEncoding.unicode_to_gid()get_all_codepoints()
  • Kiểm tra các thước đo phông chữ với FontMetrics: tăng, giảm, khoảng cách đường, em-quadrat

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

  • Phương pháp xác nhận phông chữ và chiết xuất siêu dữ liệu
  • Kiểm tra CI/CD xác minh tên gia đình phông chữ và số lượng ký tự
  • Dịch vụ nhập phông chữ trên 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ó thời gian chạy máy tính để bàn

Truy cập và kiểm tra đường dẫn của chữ ký

  • Lấy các glyph theo ID hoặc Unicode bằng GlyphAccessor.get_glyph_by_id()get_glyph_by_unicode()
  • Xác định tất cả các glyph cho một chuỗi bằng GlyphAccessor.get_glyphs_for_text()
  • Kiểm tra các đường viền outline của glyph dưới dạng các lệnh đã gõ: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Truy cập hộp bao, chiều rộng tiến và các side bearings của glyph từ các thuộc tính Glyph
  • Đọ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ủ của chữ ký cho việc hiển thị văn bản đa ngôn ngữ
  • Thu thập sơ đồ cho đường dẫn SVG hoặc tạo vector
  • Chứng nhận bảng điều khiển trong các luồng làm việc kiểm tra chất lượng phông chữ
  • Nghiên cứu định hình văn bản và thử nghiệm bố trí 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 đường dẫn glyph giữa hình vuông và khối 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

  • Các đường ống font web chuyển đổi TTF master fonts thành WOFF2 để phân phối
  • Loại công cụ đúc xuất sang nhiều định dạng mục tiêu từ một nguồn
  • Chuyển đổi EOT cũ cho các chồng phông web tương thích ngược
  • Định dạng phông chữ tự động trong tích hợp liên tục

Phân tích phông chữ

  • Phân tập phông chữ theo văn bản Unicode với FontSubsetter.subset_by_text()
  • Tóm tắt bởi danh sách ID glyph với FontSubsetter.subset_by_gids()
  • Tạo các bộ phận được tối ưu hóa web với FontSubsetter.subset_for_web()
  • Ứng dụng tên hồ sơ đặt sẵn với FontSubsetter.subset_by_presets()available_presets()
  • Phân tích sự bao phủ của các bộ phận 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 tải hữu ích WOFF2 cho các trang web với tập hợp ký tự hạn chế
  • Tạo các tập hợp phụ phông chữ cụ thể cho ngôn ngữ để triển khai i18n
  • Phương trình cấp phép phông chữ phân phối các tập hợp phụ theo trang-set
  • Tối ưu hóa hiệu suất cho các ứng dụng web di động

Tối ưu hóa trang web và xem trước phông chữ biến

  • Bước bảng và Mac tên ghi với FontCleaner.clean_for_web()
  • Kiểm tra biến font trục tương thích với CompatibilityChecker.compare_fonts()compare_variable_instances()
  • Tạo APNG trục động quét với AnimationPreviewBuilder.build_axis_sweep()
  • Tạo đường dẫn hoạt hình nhiều 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à các trình khám phá trục tương tác cho nhà đúc loại
  • Các đường ống CI xác minh hành vi phông chữ biến trước khi phân phối
  • Các đường ống hiệu suất web loại bỏ các bảng nhị phân không cần thiết
  • Thumbnails xem trước phông chữ cho các ứng dụng quản lý phôi chữ

Tải tệp phông chữ

Mở một TrueType hoặc OpenTyme font 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 Glyphs cho một chuỗi văn bản

Giải quyết tất cả các ký tự cho một điểm mã Unicode và kiểm tra đường lối phác thảo 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 một động tác quét theo trục font biến đổi

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

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

Dọn sạch một phông chữ để triển khai trên Web

Tắt các bảng cũ và hồ sơ 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 tự do, được cấp phép MIT để tải, kiểm tra, chuyển đổi và đặt các phông chữ trong định dạng TTF, OTF , CFF, Type 1, WOFF , WOff2 và EOT. Không cần phụ thuộc bản địa .

Làm thế nào để cài đặt Aspose.Font FOSS cho Python?

pip install "aspose-font>=1.0.0" chạy. 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 hoặc mới hơn.

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

FontLoader.open() đọc TTF, OTF , CFF, Loại 1, WOFF , WOff2 và EOT. FontConverter.convert() viết TFT, CFC, WOFN, và WOW2. Eot chỉ có thể đọc được.

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

Không. Font.to_bytes() không được thực hiện trong lớp cơ bản. 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ữ cho web giao?

Vâng. FontSubsetter.subset_by_text(font, text) trả về một Font mới chỉ chứa các ký tự cần thiết cho văn bản đã cung cấp.FontSubsetter.subset(font, codepoints)subset_by_gids(font, gids) đưa ra kiểm soát tinh tế hơn.

  

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

 Tiếng Việt