Thư viện C# .NET miễn phí để tải, đọc và vẽ phông chữ
Thư viện C# .NET mã nguồn mở để tải, đọc và vẽ các loại phông chữ khác nhau như TrueType, CFF, Woff, Woff2 và nhiều hơn nữa.
Khi làm việc với phông chữ một cách lập trình, các nhà phát triển phần mềm thường cần các công cụ và thư viện mạnh mẽ để xử lý các thao tác liên quan đến phông chữ. Một thư viện mã nguồn mở mạnh mẽ đã thu hút sự chú ý của các nhà phát triển là thư viện SixLabors Fonts. Fonts là một thư viện C# .NET mã nguồn mở rất hữu ích, cung cấp một bộ chức năng toàn diện để làm việc với các loại phông chữ khác nhau trong các ứng dụng C#. Được phát triển bởi đội ngũ Six Labors, thư viện Fonts nhằm đơn giản hoá các nhiệm vụ xử lý phông chữ và giúp các nhà phát triển dễ dàng làm việc với các kiểu chữ một cách lập trình. Dù người dùng cần tải, hiển thị, đo lường hay thao tác với phông chữ, thư viện Fonts cung cấp một API sạch sẽ và trực quan cho tất cả các thao tác này.
Thư viện Fonts mã nguồn mở cung cấp nhiều tính năng cho việc thao tác và tùy chỉnh phông chữ, cho phép các nhà phát triển phần mềm tạo ra các yếu tố văn bản độc đáo và hấp dẫn trong ứng dụng của họ. Có một số tính năng quan trọng của thư viện, chẳng hạn như tải phông chữ từ nhiều nguồn khác nhau (đường dẫn, luồng hoặc tài nguyên nhúng), khả năng render glyph chất lượng cao, thực hiện bố cục và căn chỉnh văn bản chính xác, xử lý văn bản Unicode, tổ chức phông chữ thành các bộ sưu tập và nhiều hơn nữa.
Thư viện Fonts được xây dựng trên .NET Standard, giúp nó tương thích với nhiều nền tảng và khung công tác, bao gồm .NET Core, .NET Framework, Xamarin và Mono. Thư viện cung cấp một API đơn giản và trực quan, giúp mọi nhà phát triển ở mọi cấp độ kỹ năng có thể tiếp cận. Dù bạn đang xây dựng ứng dụng desktop, dịch vụ web hay ứng dụng di động, thư viện Fonts cung cấp nền tảng vững chắc cho mọi nhu cầu quản lý phông chữ của bạn. Vì vậy, hãy thử và mở ra thế giới phông chữ sáng tạo trong các ứng dụng của bạn với thư viện Fonts mã nguồn mở.
Bắt đầu với Phông chữ
Cách khuyến nghị để cài đặt Fonts là sử dụng NuGet. Vui lòng sử dụng lệnh sau để cài đặt một cách suôn sẻ.
Cài đặt Phông chữ qua NuGet
PM > Install-Package SixLabors.Fonts –PreRelease
Bạn cũng có thể cài đặt thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ kho GitHub.
Tải & Đọc chi tiết phông chữ trong ứng dụng C#
Thư viện Fonts mã nguồn mở cho phép các nhà phát triển phần mềm tải các loại phông chữ khác nhau và hiển thị chi tiết đầy đủ của chúng trong các ứng dụng C#. Thư viện hỗ trợ tải phông chữ từ nhiều nguồn, bao gồm đường dẫn tệp, luồng, tài nguyên nhúng và hơn nữa. Tính linh hoạt này cho phép các nhà phát triển tích hợp việc tải phông chữ một cách liền mạch vào ứng dụng của họ. Thư viện hỗ trợ làm việc với phông chữ TrueType, phông chữ OpenType có đường viền CFF1, Woff, Woff2 và các định dạng khác. Ví dụ sau cho thấy cách đọc mô tả về phông chữ TTF bằng các lệnh C#.
Cách đọc mô tả phông chữ bằng API C#?
FontDescription description = null;
using(var fs = File.OpenRead("Font.ttf")){
description = FontDescription.Load(fs); // once it has loaded the data the stream is no longer required and can be disposed of
}
string name = description.FontName(CultureInfo.InvariantCulture);
Hỗ trợ Bộ sưu tập Phông chữ qua C#
Thư viện mã nguồn mở Fonts cho phép các nhà phát triển phần mềm tổ chức phông chữ thành các bộ sưu tập, giúp dễ dàng quản lý và chuyển đổi giữa các họ phông chữ và kiểu dáng khác nhau. Chỉ với vài dòng mã, các nhà phát triển có thể tạo các bộ sưu tập phông chữ tùy chỉnh. Thư viện cũng đã cung cấp hỗ trợ cho các tính năng OpenType nâng cao như thay thế glyph (GSUB) và định vị glyph (GPOS). Ví dụ sau đây cho thấy cách các nhà phát triển có thể làm việc với các bộ sưu tập phông chữ trong các ứng dụng C#.
Cách làm việc với Bộ sFont qua mã C#?
using SixLabors.Fonts;
FontCollection collection = new();
collection.Add("path/to/font.ttf");
collection.Add("path/to/font2.ttf");
collection.Add("path/to/emojiFont.ttf");
collection.AddCollection("path/to/font.ttc");
if(collection.TryFind("Font Name", out FontFamily family))
if(collection.TryFind("Emoji Font Name", out FontFamily emojiFamily))
{
// family will not be null here
Font font = family.CreateFont(12, FontStyle.Italic);
// TextOptions provides comprehensive customization options support
TextOptions options = new(font)
{
// Will be used if a particular code point doesn't exist in the font passed into the constructor. (e.g. emoji)
FallbackFontFamilies = new [] { emojiFamily }
};
FontRectangle rect = TextMeasurer.Measure("Text to measure", options);
}