1. 제품
  2.   Font
  3.   C++
  4.   Aspose.Font for C++

Aspose.Font for C++

 
 

글꼴을 읽고, 저장하고 변환하는 C++ API

C++ 라이브러리는 C++ 기반 애플리케이션에서 TrueType, WOFF, EOT, OpenType, CFF 및 Type1과 같은 다양한 글꼴 형식을 로드, 읽기, 저장 및 변환할 수 있게 합니다.

Aspose.Font for C++는 폰트 처리를 간소화하고 소프트웨어 개발자와 프로그래머를 위한 방대한 기능 세트를 제공하는 매우 강력한 도구입니다. 이 도구는 C++ 개발자가 다양한 폰트 형식을 다루고 광범위한 폰트 관련 작업을 수행할 수 있도록 지원합니다. 또한 소프트웨어 개발자가 TrueType(TTF), OpenType(OTF), PostScript Type 1(PFB/PFA), WOFF, EOT 등 다양한 형식의 폰트 파일을 로드, 생성, 편집 및 변환할 수 있게 합니다. 이 API는 외부 종속성 없이 폰트 관련 작업을 한 단계 끌어올릴 수 있습니다.

Aspose.Font for C++는 C++ 개발자를 위한 포괄적인 글꼴 조작 기능을 제공하는 기능이 풍부한 라이브러리입니다. 이 라이브러리는 글꼴 메타데이터 추출, 디스크 또는 스트림에서 글꼴 파일 로드, 글리프 정보 접근, 글꼴을 다양한 형식으로 변환, 글꼴 정보 읽기, 글꼴 파일 업데이트 및 디스크에 저장, 글꼴 파일에서 메트릭 정보 읽기, 글리프를 사용한 텍스트 렌더링, TrueType 글꼴 병합 등 광범위한 글꼴 작업을 지원합니다. 32비트와 64비트 운영 체제를 모두 지원합니다.

Aspose.Font for C++는 리가처 처리, 문맥 및 선택적 글리프 교체, 고급 텍스트 레이아웃 옵션 등을 포함한 고급 타이포그래피 기능을 제공합니다. 이러한 기능은 복잡한 스크립트나 정교한 텍스트 셰이핑 및 렌더링이 필요한 언어 작업 시 특히 유용합니다. API는 크로스 플랫폼이며 Windows, Linux, macOS를 포함한 다양한 운영 체제에서 원활하게 사용할 수 있습니다. C++ 애플리케이션에서 글꼴 조작 기능을 강화하고자 한다면 Aspose.Font를 고려해 볼 가치가 확실히 있습니다.

Previous Next

Aspose.Font for C++ 시작하기

Aspose.Font for C++를 설치하는 권장 방법은 NuGet을 사용하는 것입니다. 원활한 설치를 위해 다음 명령을 사용하십시오.

NuGet 명령을 통해 Aspose.Font for C++ 설치

NuGet\Install-Package Aspose.Font.Cpp -Version 23.4.0

라이브러리를 직접 Aspose.Font for C++ 제품 페이지에서 다운로드할 수 있습니다.

C++ API를 통한 지원 파일 형식으로의 글꼴 변환

Aspose.Font for C++의 주목할 만한 기능 중 하나는 다양한 지원 파일 형식 간에 글꼴을 변환할 수 있는 능력입니다. 이는 소프트웨어 개발자가 대상 환경이나 플랫폼과 호환되는 특정 형식으로 글꼴을 변환해야 할 때 매우 편리합니다. 이 라이브러리는 TrueType, OpenType, CFF, PostScript Type 1 글꼴 등 사이의 원활한 변환을 지원하여 개발자가 다양한 시나리오에 대응할 수 있게 합니다. 다음 예제는 TTF와 같은 지원 형식 중 하나에서 글꼴을 로드하고 C++ 명령을 사용하여 WOFF2로 변환하는 방법을 보여줍니다.

C++ API를 사용하여 TTF를 WOFF2로 변환

using namespace System;
    using namespace Aspose::Font::Sources;
    using namespace Aspose::Font::Ttf;
    using namespace Aspose::Font;

    // Open TTF font
    SharedPtr fontFileDefinition = MakeObject(MakeObject(u"Montserrat-Regular.ttf"));
    SharedPtr fontDefinition = MakeObject(FontType::TTF, fontFileDefinition);
    SharedPtr font = Font::Open(fontDefinition);

    // WOFF2 output settings
    SharedPtr outStream = IO::File::Create(u"Montserrat-Regular.woff2");

    // Convert TTF to WOFF2
    font->SaveToFormat(outStream, FontSavingFormats::WOFF2);

C++ API를 사용하여 Type1 글꼴 로드 및 추출

Aspose.Font for C++는 소프트웨어 개발자가 로컬 파일, 스트림 또는 URL과 같은 다양한 소스에서 Type1 및 기타 지원되는 글꼴 형식을 로드할 수 있게 합니다. 소프트웨어 개발자는 글꼴을 개별적으로 또는 일괄적으로 로드할 수 있어 여러 글꼴을 동시에 처리하기 쉽습니다. 로드된 후에는 개발자가 글꼴 속성을 업데이트하고 원하는 형식으로 다시 저장하거나 다른 형식으로 쉽게 내보낼 수 있습니다. 다음 예제는 C++ 애플리케이션 내에서 Type1 글꼴을 로드하고 데이터를 추출하는 방법을 보여줍니다.

C++ API를 사용하여 Type1 글꼴에서 데이터를 로드하고 추출하는 방법?

System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
    
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));

글꼴 메트릭 및 글리프 지원

Aspose.Font for C++는 상승, 하강, 라인 간격 및 기타 다양한 필수 측정값을 포함한 풍부한 글꼴 메트릭에 접근할 수 있는 매우 기능이 풍부한 라이브러리입니다. 소프트웨어 개발자는 유니코드 값, 경계 상자, 전진 너비 등과 같은 글리프 정보를 검색할 수 있습니다. 이러한 기능을 통해 사용자는 애플리케이션 내에서 텍스트를 정확하게 위치시키고 렌더링할 수 있습니다. 다음 예제는 소프트웨어 개발자가 C++ 명령을 사용하여 글리프로 텍스트를 렌더링하는 방법을 보여줍니다.

C++ 애플리케이션에서 글리프로 텍스트를 렌더링하는 방법은?

 using Aspose::Font::Glyphs;
using Aspose::Font::Rendering;
using Aspose::Font::RenderingPath;

class GlyphOutlinePainter: IGlyphOutlinePainter
    RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr path)
    {
        _path = path;
    }
    void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr moveTo)
    {
        _path->CloseFigure();
        _currentPoint.set_X((float)moveTo->get_X());
        _currentPoint.set_Y((float)moveTo->get_Y());
    }

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

C++ API를 통한 글꼴 조작 및 편집

Aspose.Font for C++는 소프트웨어 개발자가 로컬 파일, 스트림 또는 URL과 같은 다양한 소스에서 Type1 및 기타 지원되는 글꼴 형식을 로드할 수 있게 합니다. 개발자는 글꼴을 개별적으로 또는 일괄적으로 로드하여 여러 글꼴을 동시에 처리하기 쉽습니다. 로드된 후에는 글꼴의 속성을 업데이트하고 원하는 형식으로 다시 저장하거나 다른 형식으로 쉽게 내보낼 수 있습니다. 다음 예제는 C++ 애플리케이션 내에서 type1 글꼴을 로드하고 데이터를 추출하는 방법을 보여줍니다.

C++ 앱에서 Type1 글꼴의 폰트 메트릭 정보를 읽어오기

System::String fileName = dataDir + u"courier.pfb";
//Font file name with full path
    
System::SharedPtr fd = System::MakeObject(Aspose::Font::FontType::Type1, System::MakeObject(u"pfb", System::MakeObject(fileName)));
System::SharedPtr font = System::DynamicCast_noexcept(Aspose::Font::Font::Open(fd));
    
System::String name = font->get_FontName();
System::Console::WriteLine(System::String(u"Font name: ") + name);
System::Console::WriteLine(System::String(u"Glyph count: ") + font->get_NumGlyphs());
System::String metrics = System::String::Format(u"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}", font->get_Metrics()->get_Ascender(), font->get_Metrics()->get_Descender(), font->get_Metrics()->get_TypoAscender(), font->get_Metrics()->get_TypoDescender(), font->get_Metrics()->get_UnitsPerEM());
    
System::Console::WriteLine(metrics);

 한국인