Tải tệp phông chữ từ mảng byte
Giải pháp API C++ để tải phông chữ TTF, WOFF, EOT, Type 1 và CFF từ MemoryStream.
Giải pháp Aspose.Font API cung cấp cho bạn các khả năng phong phú trong việc làm việc với phông chữ, bao gồm chuyển đổi, thao tác glyph, phát hiện ký hiệu Latin và nhiều hơn nữa. Nhưng bước đầu tiên trong việc thao tác phông chữ là tải các tệp phông chữ để sử dụng sau này.
Bài viết này mô tả cách tải tệp phông chữ từ luồng, nhưng để có thông tin chi tiết hơn về việc tải phông chữ, hãy tham khảo bài viết How to Load Files? . Ở đó bạn sẽ tìm thấy nhiều ví dụ mã C++ và hiểu các đối tượng cũng như tham số cần thiết cho việc tải phông chữ.
API hỗ trợ một số định dạng phông chữ, bao gồm TrueType (phông chữ đơn), TrueType (bộ sưu tập phông chữ), Web Open Font Format, Web Open Font Format phiên bản 2.0, Embedded OpenType, Adobe Type 1 (pfa, pfb, afm, pfm) và Compact Font Format. Các đoạn mã mẫu được cung cấp minh họa cách tải tệp True Type Font (TTF) từ luồng.
Như chúng ta có thể học từ Wikipedia TTF là viết tắt của TrueType Font và là định dạng tệp cho phông chữ máy tính có khả năng mở rộng. Nó ban đầu được phát triển bởi Apple Computer, nhưng hiện nay được sử dụng rộng rãi trên cả hệ điều hành Mac và Windows. Các tệp TTF chứa các chỉ dẫn về cách hiển thị mỗi ký tự của phông chữ ở các kích thước và kiểu khác nhau, và chúng có thể được thay đổi kích thước dễ dàng mà không mất chất lượng. Phông chữ TTF được sử dụng rộng rãi trong thiết kế typographic kỹ thuật số, thiết kế web, xử lý văn bản và xuất bản trên máy tính để bàn.
Để tải phông chữ, bạn sẽ cần Aspose.Font cho API C++, một API mạnh mẽ, dễ sử dụng cho việc thao tác và chuyển đổi tài liệu trên nền tảng C++. Để lấy API, mở Trình quản lý gói NuGet, tìm kiếm Aspose.Font và cài đặt. Bạn cũng có thể sử dụng lệnh sau trong Package Manager Console.
Package Manager Console Command
PM> Install-Package Aspose.Font
Tải TTF từ mảng byte/MemoryStream bằng C++
Đoạn mã này được viết bằng C++ và trình bày cách tải một TrueType Font (TTF) bằng Aspose.Font API. Đoạn mã thực hiện các bước sau:
- Xây dựng đường dẫn đến tệp phông chữ. Ở đây, DataDir là biến đã định nghĩa trước chứa đường dẫn tới thư mục nơi tệp phông chữ Montserrat-Regular.ttf nằm. Phương thức Path.Combine kết hợp hai đường dẫn để tạo ra đường dẫn đầy đủ tới tệp phông chữ.
- Tải dữ liệu nhị phân của phông chữ vào một mảng byte. Phương thức File.ReadAllBytes() đọc nội dung của tệp phông chữ và trả về dữ liệu dưới dạng mảng byte.
- Khởi tạo một đối tượng FontDefinition . FontType.TTF cho biết tệp phông chữ là TrueType Font(.ttf) và đối tượng mới ByteContentStreamSource (fontBytes) tạo ra một ByteContentStreamSource dựa trên dữ liệu nhị phân của phông chữ được lưu trong mảng fontBytes.
- Tải phông chữ. Phương thức Font.Open() nhận đối tượng FontDefinition làm tham số và trả về phông chữ đã được tải, có thể được sử dụng cho các thao tác tiếp theo.
Mã C++ để tải phông chữ từ luồng
using Aspose::Font;
using Aspose::Font::Sources;
using Aspose::Font::Ttf; // Construct the path to the file
System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");
// Load font binary data into the byte array
System::ArrayPtr<uint8_t> fontBytes = System::IO::File::ReadAllBytes(fontPath);
// Initialize the FontDefinition object passing TTF as the FontType value, "ttf" as the fileExtension value,
// and ByteContentStreamSource object based on the fontBytes array
System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition (Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));
// Load the font
System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);