1. Productos
  2.   Font
  3.   C++
  4.   Aspose.Font para C++

Aspose.Font para C++

 
 

API de fuentes C++ para leer, guardar y convertir fuentes

La biblioteca C++ permite cargar, leer, guardar y convertir diferentes formatos de fuentes como TrueType, WOFF, EOT, OpenType, CFF y Type1 dentro de aplicaciones basadas en C++.

Aspose.Font para C++ es una herramienta muy potente que simplifica el manejo de fuentes y ofrece un conjunto amplio de funciones para desarrolladores de software y programadores. Permite a los desarrolladores C++ trabajar con varios formatos de fuentes y realizar una amplia gama de tareas relacionadas con fuentes. Facilita a los desarrolladores de software cargar, generar, editar y convertir archivos de fuentes en varios formatos, como TrueType (TTF), OpenType (OTF), PostScript Type 1 (PFB/PFA), WOFF, EOT y muchos otros. La API puede elevar sus tareas relacionadas con fuentes al siguiente nivel sin dependencias externas.

Aspose.Font para C++ es una biblioteca rica en funciones que ofrece capacidades integrales de manipulación de fuentes para desarrolladores de C++. La biblioteca admite una amplia gama de operaciones con fuentes, incluyendo la extracción de metadatos de fuentes, cargar archivos de fuentes desde disco o flujo, acceder a información de glifos, convertir fuentes a diferentes formatos, leer información de fuentes, actualizar archivos de fuentes y guardarlos en el disco, leer información de métricas de archivos de fuentes, renderizar texto usando glifos de fuentes, combinar fuentes TrueType y mucho más. Soporta sistemas operativos de 32 bits así como de 64 bits.

Aspose.Font para C++ ofrece capacidades tipográficas avanzadas, incluyendo el manejo de ligaduras, sustituciones de glifos contextuales y discrecionales, y opciones avanzadas de diseño de texto. Estas funciones son particularmente útiles al trabajar con escrituras complejas o idiomas que requieren un modelado y renderizado de texto sofisticado. La API es multiplataforma y permite a los usuarios utilizarla sin problemas en diferentes sistemas operativos, incluidos Windows, Linux y macOS. Si buscas mejorar las capacidades de manipulación de fuentes en tus aplicaciones C++, Aspose.Font sin duda vale la pena considerar.

Previous Next

Comenzando con Aspose.Font para C++

La forma recomendada de instalar Aspose.Font para C++ es mediante NuGet. Por favor, use el siguiente comando para una instalación sin problemas.

Instalar Aspose.Font para C++ mediante el comando NuGet

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

Puede descargar la biblioteca directamente desde la página del producto Aspose.Font para C++ product page

Conversión de fuentes a formatos de archivo compatibles mediante la API de C++

El siguiente ejemplo muestra cómo cargar una fuente desde cualquiera de los formatos compatibles, como TTF, y convertirla a WOFF2 usando comandos de C++.

Convertir TTF a WOFF2 usando la API de C++

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

Cargar y extraer fuentes Type1 mediante la API de C++

Aspose.Font para C++ permite a los desarrolladores de software cargar Type1, así como otros formatos de fuentes compatibles, desde diferentes fuentes, como archivos locales, flujos o URL. Los desarrolladores pueden cargar fuentes individualmente o en lote, lo que facilita procesar múltiples fuentes simultáneamente. Una vez cargadas, los desarrolladores pueden actualizar las propiedades de las fuentes y guardarlas nuevamente en el formato deseado o exportarlas a otros formatos con facilidad. El siguiente ejemplo muestra cómo cargar y extraer datos de fuentes type1 dentro de aplicaciones C++.

¿Cómo cargar y extraer datos de fuentes Type1 usando la API de 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));

Soporte de métricas de fuentes y glifos

Aspose.Font para C++ es una biblioteca muy rica en funciones que brinda acceso a una gran cantidad de métricas de fuentes, incluyendo ascenso, descenso, espacio entre líneas y varias otras medidas esenciales. Los desarrolladores de software pueden obtener información de glifos como valores Unicode, cajas delimitadoras, anchos de avance y más. Estas funciones permiten a los usuarios posicionar y renderizar texto con precisión dentro de sus aplicaciones. El siguiente ejemplo muestra cómo los desarrolladores de software pueden renderizar texto con los glifos usando comandos C++.

¿Cómo renderizar texto con los glifos en aplicaciones 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;
    }

Manipulación y edición de fuentes mediante la API de C++

Aspose.Font para C++ permite a los desarrolladores de software cargar Type1 así como otros formatos de fuente compatibles desde diferentes fuentes, como archivos locales, flujos o URL. Los desarrolladores pueden cargar fuentes individualmente o en lote, lo que facilita procesar múltiples fuentes simultáneamente. Una vez cargadas, los desarrolladores pueden actualizar las propiedades de las fuentes y guardarlas de nuevo en el formato deseado o exportarlas a otros formatos con facilidad. El siguiente ejemplo muestra cómo cargar y extraer datos de fuentes type1 dentro de aplicaciones C++.

Leer información de métricas de fuentes Type1 dentro de aplicaciones 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);

 Español