โหลดไฟล์ฟอนต์จากอาร์เรย์ไบต์
โซลูชัน API C++ เพื่อโหลดฟอนต์ TTF, WOFF, EOT, Type 1, และ CFF จาก MemoryStream.
โซลูชัน Aspose.Font API ให้คุณมีความสามารถอย่างกว้างขวางในการทำงานกับฟอนต์ รวมถึงการแปลง, การจัดการ glyph, การตรวจจับสัญลักษณ์ละติน, และอื่น ๆ อีกมากมาย. แต่ขั้นตอนแรกในการจัดการฟอนต์คือการโหลดไฟล์ฟอนต์เพื่อใช้งานต่อไป.
บทความนี้อธิบายวิธีโหลดไฟล์ฟอนต์จากสตรีม, แต่สำหรับข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการโหลดฟอนต์ กรุณาอ้างอิงบทความ วิธีโหลดไฟล์? . ที่นั่นคุณจะพบตัวอย่างโค้ด C++ มากมายและเข้าใจอ็อบเจกต์และพารามิเตอร์ที่จำเป็นสำหรับการโหลดฟอนต์.
API รองรับหลายรูปแบบฟอนต์ รวมถึง TrueType (ฟอนต์เดี่ยว), TrueType (คอลเลกชันฟอนต์), Web Open Font Format, Web Open Font Format เวอร์ชัน 2.0, Embedded OpenType, ฟอนต์ Adobe Type 1 (pfa, pfb, afm, pfm) และ Compact Font Format. ตัวอย่างโค้ดที่ให้มานี้แสดงวิธีโหลดไฟล์ True Type Font (TTF) จากสตรีม.
ตามที่เราสามารถเรียนรู้จาก Wikipedia TTF ย่อมาจาก TrueType Font ซึ่งเป็นรูปแบบไฟล์สำหรับฟอนต์ที่ขยายขนาดได้ มันถูกพัฒนาโดย Apple Computer แต่อยู่ในสภาพแวดล้อมของ Mac และ Windows อย่างกว้างขวาง. ไฟล์ TTF มีคำสั่งสำหรับการวาดตัวอักษรแต่ละตัวในขนาดและสไตล์ต่าง ๆ ทำให้สามารถปรับขนาดและใช้ในแอปพลิเคชันต่าง ๆ ได้โดยไม่สูญเสียคุณภาพ. ฟอนต์ TTF ถูกใช้กันอย่างแพร่หลายในการพิมพ์ดิจิทัลและการออกแบบเว็บ, การประมวลผลคำ, และการจัดพิมพ์บนเดสก์ท็อป.
เพื่อโหลดฟอนต์ คุณจะต้องใช้ Aspose.Font สำหรับ C++ API ซึ่งเป็น API ที่ทรงพลังและใช้งานง่ายสำหรับการจัดการเอกสารและการแปลงบนแพลตฟอร์ม C++. เพื่อรับ API ให้เปิด NuGet package manager ค้นหา Aspose.Font แล้วติดตั้ง คุณยังสามารถใช้คำสั่งต่อไปนี้ใน Package Manager Console.
Package Manager Console Command
PM> Install-Package Aspose.Font
โหลด TTF จากอาร์เรย์ไบต์/MemoryStream ด้วย C++
ส่วนนี้เป็นโค้ดสแนปพท์ที่เขียนด้วย C++ และแสดงวิธีโหลดไฟล์ TrueType Font (TTF) โดยใช้ Aspose.Font API. โค้ดทำขั้นตอนต่อไปนี้:
- สร้างเส้นทางไปยังไฟล์ฟอนต์. ที่นี่ DataDir เป็นตัวแปรที่กำหนดไว้ล่วงหน้าซึ่งบรรจุพาธไปยังไดเรกทอรีที่ไฟล์ฟอนต์ Montserrat-Regular.ttf อยู่. เมธอด Path.Combine จะเชื่อมสองพาธเข้าด้วยกันเพื่อสร้างพาธเต็มของไฟล์ฟอนต์.
- โหลดข้อมูลไบต์ของฟอนต์ลงในอาร์เรย์ไบต์. เมธอด File.ReadAllBytes() จะอ่านเนื้อหาของไฟล์ฟอนต์และคืนค่าข้อมูลเป็นอาร์เรย์ไบต์.
- เริ่มต้นอ็อบเจกต์ FontDefinition . FontType.TTF ระบุว่าไฟล์ฟอนต์เป็น TrueType Font (.ttf) และ ByteContentStreamSource (fontBytes) สร้างอ็อบเจกต์ ByteContentStreamSource จากข้อมูลไบต์ของฟอนต์ที่จัดเก็บในอาร์เรย์ fontBytes.
- โหลดฟอนต์. เมธอด Font.Open() รับอ็อบเจกต์ FontDefinition เป็นพารามิเตอร์และคืนค่าฟอนต์ที่โหลดแล้ว ซึ่งสามารถใช้ต่อเพื่อการทำงานเพิ่มเติม.
โค้ด C++ สำหรับโหลดฟอนต์จากสตรีม
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);