Tải tệp phông chữ từ một mảng byte

Giải pháp API C++ để tải các phông chữ TTF, WOFF, EOT, Type 1 và CFF từ MemoryStream.

 

Giải pháp API Aspose.Font cung cấp cho bạn các khả năng mở rộng để 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 Latinh, v.v. Nhưng bước đầu tiên trong thao tác với phông chữ là tải các tệp phông chữ để sử dụng chúng sau này.

Bài viết này trình bày cách tải tệp phông chữ từ luồng, nhưng để biết thêm thông tin chi tiết về cách tải phông chữ, hãy tham khảo bài viết Cách tải tệp? . Ở đó, bạn sẽ tìm thấy nhiều ví dụ mã C++ và hiểu các đối tượng và tham số cần thiết để 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ữ), Định dạng phông chữ mở trên web, Định dạng phông chữ mở trên web phiên bản 2.0, OpenType được nhúng, phông chữ Adobe Type 1 (pfa, pfb, afm, pfm) và Định dạng phông chữ nhỏ gọn. Các đoạn mã được cung cấp minh họa cách tải tệp Phông chữ Loại Đúng (TTF) từ một luồng.

Như chúng ta có thể tìm hiểu từ Wikipedia TTF là viết tắt của Phông chữ TrueType và là một định dạng tệp cho các phông chữ máy tính có thể mở rộng. Ban đầu nó được phát triển bởi Apple Computer, nhưng hiện đượ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 hướng dẫn về cách hiển thị từng ký tự của phông chữ ở các kích thước và kiểu phông chữ khác nhau, đồng thời chúng có thể dễ dàng thay đổi kích thước và sử dụng trong các ứng dụng khác nhau mà không làm giảm chất lượng. Phông chữ TTF được sử dụng rộng rãi cho kiểu chữ kỹ thuật số và thường được sử dụng trong 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 API Aspose.Font cho C++, đây là API chuyển đổi và thao tác tài liệu mạnh mẽ, dễ sử dụng cho nền tảng C++. Để lấy API, hãy mở trình quản lý gói NuGet và tìm kiếm Aspose.Font, sau đó cài đặt nó. Bạn cũng có thể sử dụng lệnh sau trong Bảng điều khiển quản lý gói.

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 tệp Phông chữ TrueType (TTF) bằng API Aspose.Font. Đoạn mã thực hiện các bước sau:

  1. Tạo đường dẫn đến tệp phông chữ. Ở đây, DataDir là một biến được xác định trước chứa đường dẫn đến thư mục chứa tệp phông chữ Montserrat-Regular.ttf. Phương thức Path.Combine kết hợp hai đường dẫn để tạo đường dẫn đầy đủ tới tệp phông chữ.
  2. Tải dữ liệu nhị phân 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ột mảng byte.
  3. Khởi tạo đối tượng FontDefinition . FontType.TTF cho biết rằng tệp phông chữ là Phông chữ TrueType(.ttf) và ByteContentStreamSource mới (fontBytes) tạo đối tượng ByteContentStreamSource dựa trên dữ liệu nhị phân phông chữ được lưu trữ trong mảng fontBytes.
  4. Tải phông chữ. Phương thức Font.Open() lấy đối tượng FontDefinition làm tham số và trả về phông chữ đã tải , sau đó 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);



Câu hỏi thường gặp

1. Các tham số để tải phông chữ theo chương trình là gì?

Để tải đúng phông chữ, bạn cần biết hai tham số chính. Chúng là định dạng phông chữ và lưu trữ.

2. Phông chữ nằm ở đâu trên máy tính của tôi?

Để xem các phông chữ có sẵn trên máy tính của bạn, hãy chuyển đến thư mục C:>Windows>Fonts. Ở đó bạn sẽ có thể quản lý phông chữ của mình.

3. Làm cách nào để tải phông chữ từ luồng?

Đặt mảng bồn tắm bằng cách sử dụng FontFileDefinition và tạo đối tượng bằng phương thức Open(). Chỉ định định dạng phông chữ. Hoàn tất tải bằng phương thức Aspose.Font.Font.Open().