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

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

 

Aspose.Font API 솔루션은 변환, 글리프 조작, 라틴 문자 감지 등 다양한 글꼴 작업 기능을 제공합니다. 텍스트 렌더링과 같은 글리프 조작과 관련된 기능도 포함됩니다.

글리프는 글꼴에서 문자 디자인이 고유하게 정의된 것이며, 기호나 문자의 그래픽 표현입니다. 이 글꼴 단위에 대해 더 깊이 이해하려면 글리프 소개 문서를 읽어 보세요.

이 페이지에서는 글리프를 사용해 텍스트를 표시하는 방법을 설명하지만, 기능에 대한 포괄적인 설명은 글리프 객체 사용 문서에 나와 있습니다. 해당 문서에서 더 많은 C++ 코드 예제와 Aspose.Font가 글리프와 글리프 객체를 다루는 기능을 확인할 수 있습니다. 또한 Aspose의 Github 프로젝트 에서 전체 예제와 데이터 파일을 확인할 수 있습니다.

글리프를 사용해 텍스트를 입력하려면 다음이 필요합니다:

  • 풍부한 기능과 강력함을 갖춘, 사용하기 쉬운 문서 조작 및 변환 API인 Aspose.Font for C++ 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. 글꼴 힌트란 무엇입니까?

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