
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.
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.0Puede 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);
