1. Продукти
  2.   Font
  3.   C++
  4.   Aspose.Font для C++

Aspose.Font для C++

 
 

C++ API шрифтів для читання, збереження та конвертації шрифтів

Бібліотека C++ дозволяє завантажувати, читати, зберігати та конвертувати різні формати шрифтів, такі як TrueType, WOFF, EOT, OpenType, CFF та Type1 у C++‑застосунках.

Aspose.Font для C++ — дуже потужний інструмент, який спрощує роботу зі шрифтами та пропонує широкий набір функцій для розробників програмного забезпечення та програмістів. Він дає змогу розробникам C++ працювати з різними форматами шрифтів і виконувати широкий спектр завдань, пов’язаних зі шрифтами. Він дозволяє розробникам завантажувати, генерувати, редагувати та конвертувати файли шрифтів у різних форматах, таких як TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT та інші. API може піднести ваші завдання, пов’язані зі шрифтами, на новий рівень без будь‑яких зовнішніх залежностей.

Aspose.Font для C++ — це багатофункціональна бібліотека, яка надає комплексні можливості маніпулювання шрифтами для розробників C++. Бібліотека підтримує широкий спектр операцій з шрифтами, включаючи витягування метаданих шрифту, завантаження файлів шрифтів з диска або потоку, доступ до інформації про гліфи, конвертацію шрифтів у різні формати, читання інформації про шрифт, оновлення файлів шрифтів та їх збереження на диск, читання метрик з файлів шрифтів, рендеринг тексту за допомогою гліфів шрифту, об’єднання TrueType‑шрифтів та багато іншого. Підтримуються 32‑бітні та 64‑бітні операційні системи.

Aspose.Font для C++ пропонує розширені типографічні можливості, включаючи обробку лігатур, контекстуальні та дискреційні заміни гліфів, а також розширені параметри розташування тексту. Ці функції особливо корисні при роботі зі складними писемностями або мовами, які вимагають складного формування та рендерингу тексту. API є крос‑платформеним і дозволяє користувачам безперешкодно використовувати його на різних операційних системах, включаючи Windows, Linux та macOS. Якщо ви шукаєте спосіб розширити можливості маніпулювання шрифтами у ваших C++ додатках, Aspose.Font без сумніву варто розглянути.

Previous Next

Початок роботи з Aspose.Font для C++

Рекомендований спосіб встановлення Aspose.Font для C++ — використання NuGet. Будь ласка, використайте наступну команду для безперешкодної інсталяції.

Встановлення Aspose.Font для C++ за допомогою команди NuGet

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

Ви можете завантажити бібліотеку безпосередньо зі Aspose.Font for C++ сторінки продукту

Конвертація шрифтів у підтримувані формати файлів за допомогою C++ API

Однією з помітних можливостей Aspose.Font для C++ є здатність конвертувати шрифти між різними підтримуваними форматами файлів. Це дуже зручно, коли розробникам програмного забезпечення потрібно конвертувати шрифти у конкретний формат, сумісний із цільовим середовищем або платформою. Бібліотека підтримує безшовну конвертацію між TrueType, OpenType, CFF, PostScript Type 1 шрифтами та іншим, що дозволяє розробникам охоплювати широкий спектр сценаріїв. Нижче наведено приклад, який показує, як завантажити шрифт з будь‑якого підтримуваного формату, наприклад TTF, і конвертувати його у WOFF2 за допомогою команд C++.

Конвертація TTF у WOFF2 за допомогою C++ API

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);

Завантаження та витягування шрифтів Type1 за допомогою C++ API

Aspose.Font для C++ дозволяє розробникам програмного забезпечення завантажувати Type1, а також інші підтримувані формати шрифтів з різних джерел, таких як локальні файли, потоки або URL-адреси. Розробники можуть завантажувати шрифти окремо або пакетно, що спрощує обробку кількох шрифтів одночасно. Після завантаження розробники можуть оновлювати властивості шрифтів і зберігати їх у потрібному форматі або легко експортувати в інші формати. Нижче наведено приклад, який показує, як завантажити та витягти дані з шрифтів type1 у C++ застосунках.

Як завантажити та витягнути дані зі шрифтів Type1 за допомогою C++ API?

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 для C++ — це дуже функціональна бібліотека, яка надає доступ до великої кількості метрик шрифтів, включаючи висоту підйому, спуску, інтервал між рядками та інші важливі вимірювання. Розробники можуть отримувати інформацію про гліфи, таку як значення Unicode, обмежувальні рамки, ширини кроку та інше. Ці можливості дозволяють користувачам точно позиціонувати та відображати текст у ваших застосунках. Нижче наведено приклад, який показує, як розробники можуть рендерити текст за допомогою гліфів, використовуючи команди 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 для C++ дозволяє розробникам програмного забезпечення завантажувати Type1, а також інші підтримувані формати шрифтів з різних джерел, таких як локальні файли, потоки або URL-адреси. Розробники можуть завантажувати шрифти окремо або пакетно, що спрощує обробку кількох шрифтів одночасно. Після завантаження розробники можуть оновлювати властивості шрифтів і зберігати їх у потрібному форматі або легко експортувати в інші формати. Наведений нижче приклад показує, як завантажити та витягти дані з шрифтів type1 у C++ застосунках.

Читати інформацію про метрики шрифтів Type1 у C++ застосунках

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);

 Українська