แสดงข้อความโดยใช้ glyphs

โซลูชัน API C++ เพื่อแสดงข้อความด้วยฟอนต์ที่ต้องการ.

 

Aspose.Font API Solution มีความสามารถหลากหลายสำหรับการทำงานกับฟอนต์ รวมถึงการแปลง การจัดการ glyphs การตรวจจับสัญลักษณ์ละติน และอื่น ๆ บางคุณสมบัติเกี่ยวกับการจัดการ glyphs เช่นการเรนเดอร์ข้อความ.

Glyph คือการออกแบบที่เป็นเอกลักษณ์ของอักขระในแบบอักษรหรือการแสดงผลกราฟิกของสัญลักษณ์หรืออักขระ เพื่อทำความเข้าใจหน่วยฟอนต์นี้ให้ลึกขึ้น อ่านบทความ บทนำสู่ Glyph เพื่อทำความเข้าใจเพิ่มเติม.

หน้านี้อธิบายวิธีการแสดงข้อความโดยใช้ glyphs แต่การอธิบายอย่างละเอียดของฟังก์ชันนี้มีในบทความ การใช้วัตถุ Glyph . ที่นั่นคุณจะพบตัวอย่างโค้ด C++ เพิ่มเติมและเรียนรู้เกี่ยวกับความสามารถของ Aspose.Font สำหรับการทำงานกับ glyphs และวัตถุ Glyph โดยเฉพาะ คุณยังสามารถเรียนรู้ตัวอย่างเต็มและไฟล์ข้อมูลได้จากโครงการ โครงการ Github .

เพื่อพิมพ์ข้อความด้วย glyphs เราต้องการ:

  • Aspose.Font for C++ API ซึ่งเป็น API ที่เต็มไปด้วยฟีเจอร์ มีประสิทธิภาพและใช้งานง่ายสำหรับการจัดการเอกสารและการแปลง.

  • เปิดตัวจัดการแพคเกจ NuGet และค้นหา Aspose.Font แล้วติดตั้ง คุณยังสามารถใช้คำสั่งต่อไปนี้จาก Package Manager Console.

Package Manager Console Command


    PM> Install-Package Aspose.Font

เรนเดอร์ข้อความด้วย glyphs ด้วย C++

ขั้นตอนต่อไปนี้โดยปกติจะต้องทำเพื่อเรนเดอร์ข้อความด้วย glyphs:

  1. โหลดไฟล์ฟอนต์เข้าสู่หน่วยความจำ ที่นี่คุณต้องสร้างอ็อบเจกต์ฟอนต์ เช่นอ็อบเจกต์ Type1Font และระบุเส้นทางไฟล์ฟอนต์.
  2. ถอดรหัสข้อความเป็น ID ของ glyph ที่สอดคล้อง สำหรับนี้ ส่งอักขระแต่ละตัวของข้อความผ่านอ็อบเจกต์การเข้ารหัสของฟอนต์และถอดรหัสเป็น ID ของ glyph ที่สอดคล้อง.
  3. รับโครงร่างของแต่ละ glyph โครงร่างเป็นพาธที่กำหนดรูปทรงของอักขระ สามารถทำได้โดยใช้เมธอด GetGlyphOutline() ของอ็อบเจกต์ Font .
  4. วาดโครงร่างของแต่ละ glyph ด้วยอ็อบเจกต์กราฟิก เช่นอ็อบเจกต์ GraphicsPath สร้างอ็อบเจกต์ที่ทำตามอินเทอร์เฟซ IGlyphOutlinePainter ซึ่งรับผิดชอบการวาดโครงร่างของ glyphs.
  5. แสดงข้อความโดยใช้กราฟิกอ็อบเจกต์เพื่อวาดโครงร่างของแต่ละ glyph สามารถทำได้โดยใช้เมธอด DrawPath() ของอ็อบเจกต์กราฟิก.

โค้ด C++ เพื่อเรนเดอร์ข้อความ

    using Aspose::Font::Glyphs;
    using Aspose::Font::Rendering;
    using Aspose::Font::RenderingPath;
    class GlyphOutlinePainter: IGlyphOutlinePainter
    RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr<System::Drawing::Drawing2D::GraphicsPath> path)
    {
        _path = path;
    }

    void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr<Aspose::Font::RenderingPath::MoveTo> moveTo)
    {
        _path->CloseFigure();
        _currentPoint.set_X((float)moveTo->get_X());
        _currentPoint.set_Y((float)moveTo->get_Y());
    }

    void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr<Aspose::Font::RenderingPath::LineTo> 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<Aspose::Font::RenderingPath::CurveTo> 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;
    }



คำถามที่พบบ่อย

1. แบบอักษรแสดงผลผ่าน Aspose.Font อย่างไร

ในการเรนเดอร์ฟอนต์โดยใช้โซลูชัน API นี้ คุณจะต้องมีเอนทิตีของ Aspose.Font.Rendering และ Aspose.Font.Renderers เนมสเปซ ขั้นแรก ปรับใช้เมธอด IGlyphOutlinePainter จากนั้นสร้างเมธอด DrawText() สร้างวิธีการอรรถประโยชน์เพื่อคำนวณความกว้างของแบบอักษรและเรียกใช้ฟังก์ชันการแสดงผลข้อความ

2. ปัจจัยใดที่คุณควรคำนึงถึงเมื่อแสดงข้อความด้วยสัญลักษณ์

เมื่อแสดงข้อความด้วยร่ายมนตร์ มีปัจจัยสำคัญหลายประการที่ต้องพิจารณาเพื่อให้แน่ใจว่าผลลัพธ์ถูกต้องและน่าดึงดูดสายตา เช่น การเลือกแบบอักษร การบอกใบ้ การจัดช่องไฟและการติดตาม ตัวชี้วัดของสัญลักษณ์ สีและคอนทราสต์ ฯลฯ

3. คำใบ้แบบอักษรคืออะไร

คำใบ้สามารถช่วยรักษาความชัดเจนและความชัดเจนของข้อความ โดยเฉพาะในขนาดที่เล็กกว่าหรือบนหน้าจอที่มีความละเอียดต่ำ