1. สินค้า
  2.   Font
  3.   C++
  4.   Aspose.Font for C++

Aspose.Font for C++

 
 

API แบบอักษร C++ เพื่ออ่าน, บันทึกและแปลงแบบอักษร

ไลบรารี C++ ช่วยให้สามารถโหลด, อ่าน, บันทึกและแปลงรูปแบบแบบอักษรต่าง ๆ เช่น TrueType, WOFF, EOT, OpenType, CFF และ Type1 ภายในแอปพลิเคชันที่ใช้ C++

Aspose.Font for C++ เป็นเครื่องมือที่มีประสิทธิภาพสูงที่ทำให้การจัดการฟอนต์ง่ายขึ้นและให้ชุดคุณสมบัติที่ครอบคลุมสำหรับนักพัฒนาและโปรแกรมเมอร์ มันทำให้นักพัฒนา C++ สามารถทำงานกับฟอร์แมตฟอนต์ต่าง ๆ และทำงานที่เกี่ยวกับฟอนต์ได้หลากหลาย มันช่วยให้นักพัฒนาซอฟต์แวร์สามารถโหลด, สร้าง, แก้ไข, และแปลงไฟล์ฟอนต์ในฟอร์แมตต่าง ๆ เช่น TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT, และอื่น ๆ อีกมาก API นี้สามารถยกระดับงานที่เกี่ยวกับฟอนต์ของคุณไปสู่ระดับต่อไปโดยไม่ต้องพึ่งพาไลบรารีภายนอก

Aspose.Font สำหรับ C++ เป็นไลบรารีที่เต็มไปด้วยคุณลักษณะซึ่งให้ความสามารถในการจัดการฟอนต์อย่างครอบคลุมสำหรับนักพัฒนา C++ ไลบรารีนี้รองรับการดำเนินการกับฟอนต์หลากหลายประเภท รวมถึงการสกัดข้อมูลเมตาดาต้าของฟอนต์, โหลดไฟล์ฟอนต์จากดิสก์หรือสตรีม, เข้าถึงข้อมูล glyph, แปลงฟอนต์เป็นรูปแบบต่าง ๆ, อ่านข้อมูลฟอนต์, อัปเดตไฟล์ฟอนต์และบันทึกลงดิสก์, อ่านข้อมูลเมตริกจากไฟล์ฟอนต์, เรนเดอร์ข้อความโดยใช้ glyph ของฟอนต์, รวมฟอนต์ TrueType และอื่น ๆ อีกมากมาย ไลบรารีนี้รองรับระบบปฏิบัติการ 32-bit และ 64-bit

Aspose.Font สำหรับ C++ มีความสามารถด้านการพิมพ์ขั้นสูง รวมถึงการจัดการลิแกเชอร์, การแทนที่ glyph ตามบริบทและการแทนที่ตามดุลยพินิจ, และตัวเลือกการจัดวางข้อความขั้นสูง คุณลักษณะเหล่านี้มีประโยชน์อย่างยิ่งเมื่อทำงานกับสคริปต์หรือภาษาที่ซับซ้อนซึ่งต้องการการจัดรูปแบบและการเรนเดอร์ข้อความที่ละเอียดอ่อน API นี้เป็นแบบข้ามแพลตฟอร์มและทำให้ผู้ใช้สามารถใช้งานได้อย่างราบรื่นบนระบบปฏิบัติการต่าง ๆ รวมถึง Windows, Linux, และ macOS หากคุณกำลังมองหาเพื่อเพิ่มความสามารถในการจัดการฟอนต์ในแอปพลิเคชัน C++ ของคุณ Aspose.Font แน่นอนว่าควรพิจารณา

Previous Next

เริ่มต้นใช้งาน Aspose.Font สำหรับ C++

วิธีที่แนะนำในการติดตั้ง Aspose.Font สำหรับ C++ คือการใช้ NuGet โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

ติดตั้ง Aspose.Font สำหรับ C++ ผ่านคำสั่ง NuGet

NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0

คุณสามารถดาวน์โหลดไลบรารีได้โดยตรงจากหน้า Aspose.Font สำหรับ C++ ของผลิตภัณฑ์

การแปลงฟอนต์เป็นรูปแบบไฟล์ที่รองรับผ่าน C++ API

หนึ่งในคุณสมบัติที่โดดเด่นของ Aspose.Font สำหรับ C++ คือความสามารถในการแปลงฟอนต์ระหว่างรูปแบบไฟล์ที่รองรับต่าง ๆ ซึ่งเป็นประโยชน์อย่างยิ่งเมื่อผู้พัฒนาซอฟต์แวร์ต้องการแปลงฟอนต์เป็นรูปแบบเฉพาะที่เข้ากันได้กับสภาพแวดล้อมหรือแพลตฟอร์มเป้าหมายของคุณ ไลบรารีสนับสนุนการแปลงอย่างราบรื่นระหว่างฟอนต์ TrueType, OpenType, CFF, PostScript Type 1 และอื่น ๆ ทำให้ผู้พัฒนาสามารถตอบสนองต่อสถานการณ์ที่หลากหลาย ตัวอย่างต่อไปนี้แสดงวิธีโหลดฟอนต์จากรูปแบบที่รองรับใด ๆ เช่น TTF และแปลงเป็น WOFF2 ด้วยคำสั่ง C++

แปลง TTF เป็น WOFF2 ด้วย C++ API

using namespace System;
    using namespace Aspose::Font::Sources;
    using namespace Aspose::Font::Ttf;
    using namespace Aspose::Font;

    // Open TTF font
    SharedPtr fontFileDefinition = MakeObject(MakeObject(u"Montserrat-Regular.ttf"));
    SharedPtr fontDefinition = MakeObject(FontType::TTF, fontFileDefinition);
    SharedPtr font = Font::Open(fontDefinition);

    // WOFF2 output settings
    SharedPtr outStream = IO::File::Create(u"Montserrat-Regular.woff2");

    // Convert TTF to WOFF2
    font->SaveToFormat(outStream, FontSavingFormats::WOFF2);

โหลดและดึงข้อมูลฟอนต์ Type1 ผ่าน C++ API

Aspose.Font สำหรับ C++ ช่วยให้นักพัฒนาซอฟต์แวร์สามารถโหลดฟอนต์ Type1 รวมถึงฟอร์แมตฟอนต์ที่รองรับอื่น ๆ จากแหล่งต่าง ๆ เช่น ไฟล์ในเครื่อง, สตรีม, หรือ URL. นักพัฒนาซอฟต์แวร์สามารถโหลดฟอนต์แบบแยกเดี่ยวหรือเป็นกลุ่ม ทำให้การประมวลผลหลายฟอนต์พร้อมกันเป็นเรื่องง่าย. เมื่อโหลดแล้ว นักพัฒนาสามารถอัปเดตคุณสมบัติของฟอนต์และบันทึกกลับไปยังฟอร์แมตที่ต้องการหรือส่งออกไปยังฟอร์แมตอื่น ๆ ได้อย่างง่ายดาย. ตัวอย่างต่อไปนี้แสดงวิธีโหลดและดึงข้อมูลจากฟอนต์ type1 ภายในแอปพลิเคชัน C++.

วิธีโหลดและดึงข้อมูลจากฟอนต์ Type1 ด้วย C++ API?

System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
    
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));

การสนับสนุนเมตริกฟอนต์และ Glyphs

Aspose.Font สำหรับ C++ เป็นไลบรารีที่เต็มไปด้วยคุณลักษณะหลายอย่างซึ่งให้การเข้าถึงเมตริกฟอนต์จำนวนมาก รวมถึงค่า ascent, descent, line gap และการวัดอื่น ๆ ที่สำคัญ. นักพัฒนาซอฟต์แวร์สามารถดึงข้อมูล glyph เช่น ค่า Unicode, กล่องขอบเขต (bounding boxes), ความกว้างที่ก้าวหน้า (advance widths) และอื่น ๆ อีกมาก. คุณลักษณะเหล่านี้ทำให้ผู้ใช้สามารถกำหนดตำแหน่งและเรนเดอร์ข้อความได้อย่างแม่นยำภายในแอปพลิเคชันของคุณ. ตัวอย่างต่อไปนี้แสดงวิธีที่นักพัฒนาซอฟต์แวร์สามารถเรนเดอร์ข้อความด้วย glyphs โดยใช้คำสั่ง C++.

วิธีการเรนเดอร์ข้อความด้วย Glyphs ในแอปพลิเคชัน C++?

 using Aspose::Font::Glyphs;
using Aspose::Font::Rendering;
using Aspose::Font::RenderingPath;

class GlyphOutlinePainter: IGlyphOutlinePainter
    RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr path)
    {
        _path = path;
    }
    void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr moveTo)
    {
        _path->CloseFigure();
        _currentPoint.set_X((float)moveTo->get_X());
        _currentPoint.set_Y((float)moveTo->get_Y());
    }

    void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr lineTo)
    {
        float x = (float)lineTo->get_X();
        float y = (float)lineTo->get_Y();
        _path->AddLine(_currentPoint.get_X(), _currentPoint.get_Y(), x, y);
        _currentPoint.set_X(x);
        _currentPoint.set_Y(y);
    }

    void RenderingText::GlyphOutlinePainter::CurveTo(System::SharedPtr curveTo)
    {
        float x3 = (float)curveTo->get_X3();
        float y3 = (float)curveTo->get_Y3();
    
        _path->AddBezier(_currentPoint.get_X(), _currentPoint.get_Y(), (float)curveTo->get_X1(), (float)curveTo->get_Y1(), (float)curveTo->get_X2(), (float)curveTo->get_Y2(), x3, y3);
    
        _currentPoint.set_X(x3);
        _currentPoint.set_Y(y3);
    }

    void RenderingText::GlyphOutlinePainter::ClosePath()
    {
        _path->CloseFigure();
    }

    System::Object::shared_members_type Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::GetSharedMembers()
    {
        auto result = System::Object::GetSharedMembers();
    
        result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_path", this->_path);      result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_currentPoint", this->_currentPoint);
    
        return result;
    }

การจัดการและแก้ไขฟอนต์ผ่าน C++ API

Aspose.Font สำหรับ C++ ช่วยให้นักพัฒนาซอฟต์แวร์สามารถโหลดฟอนต์ Type1 รวมถึงฟอร์แมตฟอนต์ที่รองรับอื่น ๆ จากแหล่งต่าง ๆ เช่น ไฟล์ในเครื่อง, สตรีม, หรือ URL นักพัฒนาซอฟต์แวร์สามารถโหลดฟอนต์แบบแยกเดี่ยวหรือเป็นกลุ่ม ทำให้ง่ายต่อการประมวลผลหลายฟอนต์พร้อมกัน เมื่อลโหลดแล้ว นักพัฒนาสามารถอัปเดตคุณสมบัติของฟอนต์และบันทึกกลับไปยังฟอร์แมตที่ต้องการหรือส่งออกไปยังฟอร์แมตอื่นได้อย่างง่ายดาย ตัวอย่างต่อไปนี้แสดงวิธีโหลดและดึงข้อมูลจากฟอนต์ type1 ภายในแอปพลิเคชัน C++.

อ่านข้อมูลเมตริกฟอนต์จากฟอนต์ Type1 ภายในแอป C++

System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
    
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));
    
System::String name = font->get_FontName();
System::Console::WriteLine(System::String(u"Font name: ") + name);
System::Console::WriteLine(System::String(u"Glyph count: ") + font->get_NumGlyphs());
System::String metrics = System::String::Format(u"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}", font->get_Metrics()->get_Ascender(), font->get_Metrics()->get_Descender(), font->get_Metrics()->get_TypoAscender(), font->get_Metrics()->get_TypoDescender(), font->get_Metrics()->get_UnitsPerEM());
    
System::Console::WriteLine(metrics);

 ไทย