Thư viện Python để đọc phông chữ
API Python nguồn mở giúp các nhà phát triển phần mềm và nhà thiết kế thao tác, chỉnh sửa và phân tích phông chữ một cách dễ dàng.
FontTools đóng vai trò then chốt trong thiết kế, xây dựng thương hiệu và truyền thông, và phông chữ là nền tảng của thẩm mỹ hình ảnh. Trong thời đại số, việc quản lý và thao tác phông chữ ngày càng trở nên quan trọng. Một công cụ mạnh mẽ đã thu hút sự chú ý của các nhà phát triển và nhà thiết kế là thư viện FontTools. FontTools là một thư viện Python mã nguồn mở đa năng, cung cấp một bộ công cụ toàn diện để làm việc với phông chữ và đã trở thành công cụ hữu ích cho những người đam mê phông chữ, nhà thiết kế, nhà phát triển và nhà chữ. Bộ tính năng phong phú của nó, kết hợp với giao diện dựa trên Python, khiến nó trở thành lựa chọn tuyệt vời cho các nhiệm vụ và dự án liên quan đến phông chữ.
FontTools là một thư viện mã nguồn mở cho phép các nhà phát triển phần mềm tương tác với các tệp phông chữ một cách lập trình. Nó cung cấp một loạt các chức năng cho việc thao tác, chỉnh sửa và phân tích phông chữ. Nó hỗ trợ các tính năng như thao tác phông chữ theo nhiều cách khác nhau, các thao tác chỉnh sửa glyph cơ bản, hợp nhất phông chữ nâng cao, loại bỏ các glyph đơn lẻ, hỗ trợ bảng SFNT, xác định và triển khai các giá trị SFNT khác nhau, chỉnh sửa đường viền glyph, điều chỉnh các chỉ số phông chữ, thay đổi mã hóa phông chữ, thêm hoặc xóa bảng, chuyển đổi định nghĩa bố cục giữa các hệ thống bố cục khác nhau, tìm và chỉnh sửa các chuỗi tên, v.v.
Thư viện FontTools cho phép các lập trình viên phần mềm truy cập, chỉnh sửa và phân tích một cách lập trình các khía cạnh khác nhau của tệp phông chữ. Nó hỗ trợ một số định dạng phông chữ, bao gồm TrueType (TTF), OpenType (OTF), AFM, một phần Type 1 và một số định dạng đặc thù của Mac, khiến nó trở thành lựa chọn đa năng cho việc làm việc với các loại phông chữ khác nhau. FontTools được hưởng lợi từ một cộng đồng sôi động và hỗ trợ. Dự án là mã nguồn mở và được duy trì tích cực, với các bản cập nhật thường xuyên và sửa lỗi. Dù bạn đang tự động hoá việc thao tác phông chữ, tinh chỉnh kiểu chữ, hay thực hiện phân tích chi tiết phông chữ, FontTools cung cấp các công cụ và tính linh hoạt cần thiết để đạt được mục tiêu một cách hiệu quả.
Bắt đầu với FontTools
FontTools yêu cầu Python 3.8 hoặc mới hơn. Cách khuyến nghị để cài đặt FontTools là sử dụng PyPI. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.
Cài đặt FontTools qua NuGet
pip install fonttools Bạn cũng có thể cài đặt nó thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ GitHub repository.
Chỉnh sửa & Thao tác Font qua API Python
Thư viện FontTools mở rất dễ sử dụng và đã bao gồm một số tính năng quan trọng giúp các nhà phát triển phần mềm thao tác với phông chữ theo nhiều cách khác nhau trong các ứng dụng Python của họ. Nó cho phép họ trích xuất thông tin từ các tệp phông chữ, sửa đổi đường viền glyph, thao tác các chỉ số, và thậm chí tạo phông chữ mới từ đầu, tự động hoá các nhiệm vụ lặp đi lặp lại liên quan đến phông chữ, v.v. Khi sử dụng thư viện FontTools, các nhà phát triển phần mềm cũng có thể sửa đổi đường viền glyph, điều chỉnh các chỉ số, thay đổi mã hoá và thêm hoặc loại bỏ các bảng. Tính linh hoạt này cho phép các nhà thiết kế tinh chỉnh phông chữ theo yêu cầu cụ thể hoặc tạo ra các phiên bản tùy chỉnh cho dự án của họ.
Cách sửa đổi các đường viền qua API Python?
path_orig = get_outline(font, "a")
startdraw(200,200)
paths = []
for i in path_orig:
if i[0] == 'moveTo':
path = draw.BezierPath()
path.moveTo((i[1][0]))
if i[0] == 'lineTo':
path.lineTo((i[1][0]))
if i[0] == 'qCurveTo':
path.qCurveTo(*(i[1]))
if i[0] == 'closePath':
path.closePath()
paths.append(path)
finalpath = paths[0].difference(paths[1])
finalpath.scale(0.3) #let's scale it down!
draw.fill(0.5)
draw.stroke(0)
draw.drawPath(finalpath)
show()
Thao tác Glyph qua API Python
Thư viện FontTools mã nguồn mở giúp các nhà phát triển phần mềm dễ dàng thao tác các glyph riêng lẻ một cách lập trình. Nó cung cấp các phương pháp để truy cập và sửa đổi đường viền glyph, các chỉ số và thuộc tính, mang lại cho người dùng sự linh hoạt trong việc tùy chỉnh phông chữ theo nhu cầu cụ thể. Cho dù là điều chỉnh các cặp kerning, thay đổi hình dạng glyph, thêm ligature, hay so sánh đường viền glyph, FontTools đơn giản hoá quá trình thao tác glyph. Ví dụ dưới đây cho thấy cách so sánh đường viền của hai glyph và hiển thị kết quả bằng mã Python.
Cách so sánh các đường viền của hai Glyph bằng API Python?
from fontTools.ttLib import TTFont
from fontTools.pens.recordingPen import RecordingPen
font = TTFont(filename)
cmap = font.getBestCmap()
gs = font.getGlyphSet()
g1 = gs[cmap[ord("A")]]
g2 = gs[cmap[ord("B")]]
p1 = RecordingPen()
p2 = RecordingPen()
g1.draw(p1)
g2.draw(p2)
print(p1.value == p2.value)
Tạo và Chuyển đổi Font qua API Python
Thư viện FontTools mã nguồn mở cung cấp các chức năng để tạo các tệp phông chữ mới hoặc chuyển đổi các tệp hiện có sang các định dạng khác. Tính năng này đặc biệt hữu ích cho các nhà thiết kế và nhà phát triển cần tạo phông chữ tùy chỉnh hoặc điều chỉnh phông chữ cho các nền tảng cụ thể. Với FontTools, người dùng có thể tạo các phiên bản phông chữ với các trọng lượng, kiểu dáng và biến thể khác nhau, hoặc chuyển đổi phông chữ giữa các định dạng TrueType và OpenType một cách liền mạch. Ví dụ dưới đây cho thấy cách chuyển đổi Định dạng CFF sang Định dạng CFF2 bằng các lệnh Python.