แสดงข้อความโดยใช้ร่ายมนตร์

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

 

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

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

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

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

  • Aspose.Font สำหรับ C++ API ซึ่งเป็น API การจัดการและการแปลงเอกสารที่มีคุณลักษณะหลากหลาย ทรงพลัง และใช้งานง่าย

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

Package Manager Console Command


    PM> Install-Package Aspose.Font

แสดงข้อความด้วยสัญลักษณ์โดยใช้ C++

ขั้นตอนต่อไปมักจะจำเป็นในการแสดงข้อความด้วยร่ายมนตร์:

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

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