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

 Български