글리프를 사용하여 텍스트 렌더링

C++ API 솔루션. 원하는 글꼴로 텍스트를 표시합니다.

 

Aspose.Font API 솔루션은 변환, 글리프 조작, 라틴 기호 감지 등 글꼴 작업을 위한 풍부한 기능을 제공합니다. 일부 기능은 텍스트 렌더링과 같은 글리프 조작과 관련이 있습니다.

글리프는 서체에서 문자의 고유한 디자인 또는 기호 또는 문자의 그래픽 표현입니다. 이 글꼴 단위에 대해 자세히 알아보려면 Glyph 소개 기사를 읽어보세요.

이 페이지에서는 글리프를 사용하여 텍스트를 표시하는 방법을 설명하지만 기능에 대한 포괄적인 설명은 글리프 개체 사용하기 . 여기에서 더 많은 C++ 코드 예제를 찾고 특히 글리프 및 글리프 개체 작업을 위한 Aspose.Font 기능에 대해 배웁니다. Aspose Github 프로젝트 에서 완전한 예제와 데이터 파일을 배울 수도 있습니다.

글리프로 텍스트를 입력하려면 다음이 필요합니다.

  • Aspose.Font for C++ API는 기능이 풍부하고 강력하며 사용하기 쉬운 문서 조작 및 변환 API입니다.

  • NuGet 패키지 관리자를 열고 Aspose.Font를 검색하여 설치합니다. 패키지 관리자 콘솔에서 다음 명령을 사용할 수도 있습니다.

Package Manager Console Command


    PM> Install-Package Aspose.Font

C++를 사용하여 글리프가 있는 텍스트 렌더링

글리프로 텍스트를 렌더링하려면 일반적으로 다음 단계가 필요합니다.

  1. 글꼴 파일을 메모리에 로드합니다. 여기서 Type1Font 개체와 같은 글꼴 개체를 만들고 글꼴 파일 경로에 전달해야 합니다.
  2. 텍스트를 해당 글리프 ID로 디코딩합니다. 이를 위해 글꼴의 인코딩 개체를 통해 텍스트의 각 문자를 전달하고 해당 글리프 ID로 디코딩합니다.
  3. 각 글리프의 개요를 가져옵니다. 외곽선은 캐릭터의 모양을 정의하는 경로입니다. 이는 Font 개체의 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를 통해 글꼴은 어떻게 렌더링됩니까?

이 API 솔루션을 사용하여 글꼴을 렌더링하려면 Aspose.Font.RenderingAspose.Font.Renderers 의 엔터티가 필요합니다. 네임스페이스 먼저 IGlyphOutlinePainter 메서드를 구현한 다음 DrawText() 메서드를 만듭니다. 글꼴 너비를 계산하고 렌더링 텍스트 기능을 호출하는 유틸리티 메서드를 만듭니다.

2. 글리프가 포함된 텍스트를 렌더링할 때 어떤 요소에 주의해야 합니까?

글리프가 포함된 텍스트를 렌더링할 때 글꼴 선택, 힌트, 커닝 및 추적, 글리프 측정항목, 색상 및 대비 등과 같이 정확하고 시각적으로 매력적인 결과를 보장하기 위해 고려해야 할 몇 가지 중요한 요소가 있습니다.

3. 글꼴 힌트란 무엇입니까?

힌트는 특히 작은 크기나 저해상도 화면에서 텍스트의 명확성과 가독성을 유지하는 데 도움이 될 수 있습니다.