تجسيد النص باستخدام الحروف الرسومية

حل API C++. لعرض النص بالخط المطلوب.

 

يوفر Aspose.Font API Solution إمكانات ثرية للعمل مع الخطوط ، بما في ذلك التحويل ، ومعالجة الحروف الرسومية ، واكتشاف الرموز اللاتينية ، والمزيد. ترتبط بعض الميزات بمعالجة الصورة الرمزية ، مثل عرض النص.

الحرف الرسومي هو تصميم فريد لحرف ما في محرف أو تمثيل رسومي لرمز أو حرف. للحصول على فهم أعمق لوحدة الخطوط هذه ، اقرأ مقالة مقدمة إلى Glyph .

تشرح هذه الصفحة كيفية عرض النص باستخدام الحروف الرسومية ، ولكن يتم توفير شرح شامل للوظيفة في المقالة Using Glyph Objects . هناك ، ستجد المزيد من أمثلة كود C++ والتعرف على قدرات Aspose.Font للعمل مع الحروف الرسومية وكائنات Glyph على وجه التحديد. يمكنك أيضًا التعرف على أمثلة وملفات بيانات كاملة في Aspose Github Project .

لكتابة النصوص ذات الحروف الرسومية ، نحتاج إلى:

  • Aspose.Font لـ C++ API وهي واجهة برمجة تطبيقات لمعالجة المستندات وتحويلها غنية بالميزات وقوية وسهلة الاستخدام.

  • افتح مدير الحزم NuGet ، وابحث عن Aspose.Font وقم بالتثبيت. يمكنك أيضًا استخدام الأمر التالي من Package Manager Console.

Package Manager Console Command


    PM> Install-Package Aspose.Font

تجسيد النص مع الحروف الرسومية باستخدام C++

عادةً ما تكون الخطوات التالية مطلوبة لعرض النص باستخدام الحروف الرسومية:

  1. قم بتحميل ملف الخط في الذاكرة. هنا تحتاج إلى إنشاء كائن خط ، مثل كائن Type1Font ، وتمريره في مسار ملف الخط.
  2. قم بفك تشفير النص إلى معرفات الحروف الرسومية المقابلة له. لهذا ، قم بتمرير كل حرف من النص عبر كائن ترميز الخط وفك تشفيره إلى معرف الصورة الرمزية المقابل له.
  3. احصل على مخطط تفصيلي لكل حرف رسومي. المخطط التفصيلي هو مسار يحدد شكل الشخصية. يمكن تحقيق ذلك باستخدام GetGlyphOutline() أسلوب الكائن الخط .
  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؟

لعرض الخطوط باستخدام حل واجهة برمجة التطبيقات هذا، ستحتاج إلى كيانات Aspose.Font.Rendering و Aspose.Font.Renderers و مساحات الأسماء. أولاً، قم بتنفيذ أساليب IGlyphOutlinePainter، ثم قم بإنشاء أسلوب DrawText(). قم بإنشاء طريقة الأداة المساعدة لحساب عرض الخط واستدعاء وظيفة عرض النص.

2. ما هي العوامل التي يجب عليك الانتباه إليها عند عرض النص باستخدام الحروف الرسومية؟

عند عرض النص باستخدام الحروف الرسومية، هناك العديد من العوامل المهمة التي يجب أخذها في الاعتبار لضمان نتائج دقيقة وجذابة بصريًا مثل تحديد الخط والتلميحات وتقنين الأحرف والتعقب ومقاييس الحروف الرسومية واللون والتباين وما إلى ذلك.

3. ما هو تلميح الخط؟

يمكن أن يساعد التلميح في الحفاظ على وضوح النص ووضوحه، خاصة في الأحجام الصغيرة أو على الشاشات ذات الدقة المنخفضة.