Cree formato TeX personalizado y composición tipográfica en PDF y XPS usando C++

TeX es un sistema de composición tipográfica que se ha destacado como uno de los sistemas tipográficos digitales más sofisticados. TeX se utiliza para componer documentos y generar resultados como PDF, XPS y diferentes formatos de imagen. Puede haber situaciones en las que necesite diseñar un conjunto de documentos de manera uniforme. Para eso, será útil crear un formato TeX personalizado. Con ese fin, este artículo le enseñará cómo crear un formato TeX personalizado y escribirlo en formatos PDF y XPS usando C++.

API de C++ para crear un formato TeX personalizado y componerlo en PDF y XPS

Aspose.TeX for C++ es una biblioteca de C++ para trabajar con archivos TeX sin necesidad de instalar ningún software adicional. La API le permite componer archivos TeX, crear un formato TeX personalizado y generar resultados en formatos como XPS, PDF, PNG, JPEG, TIFF, BMP. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.TeX.Cpp

Cree un formato TeX personalizado usando C++

Los siguientes son los pasos para crear un formato TeX personalizado.

El siguiente código de ejemplo demuestra cómo crear un formato TeX personalizado usando C++.

// Cree opciones de composición tipográfica en la extensión del motor ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectIniTeX());

// Especifique un directorio de trabajo del sistema de archivos para la entrada.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Especifique un directorio de trabajo del sistema de archivos para la salida.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Ejecutar creación de formato.
Aspose::TeX::TeX::CreateFormat(u"customtex", options);

Composición tipográfica de formato TeX personalizado a formato XPS

Los siguientes son los pasos para componer el formato TeX personalizado al formato XPS.

El siguiente es el código de muestra para componer un formato TeX personalizado en formato XPS.

// Cree un directorio de trabajo de entrada del sistema de archivos.
System::SharedPtr<IWorkingDirectory> wd = System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory");
{
    // Cree un proveedor de formato.
    System::SharedPtr<FormatProvider> formatProvider = System::MakeObject<FormatProvider>(wd, u"customtex");

    // Borrar recursos bajo la declaración 'usando'
    System::Details::DisposeGuard<1> __dispose_guard_0({ formatProvider });
    // ---------------------------------------------------------

    try
    {
        // Cree opciones de composición tipográfica para un formato personalizado en la extensión del motor ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
        options->set_JobName(u"typeset-with-custom-format");

        // Especifique el directorio de trabajo de entrada.
        options->set_InputWorkingDirectory(wd);

        // Especifique un directorio de trabajo del sistema de archivos para la salida.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

        // Ejecutar composición tipográfica.
        Aspose::TeX::TeX::Typeset(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<XpsDevice>(), options);
    }
    catch (...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}

Composición tipográfica de formato TeX personalizado a formato PDF

Los siguientes son los pasos para escribir un formato TeX personalizado en formato PDF.

El siguiente código de ejemplo muestra cómo componer un formato TeX personalizado en formato PDF.

// Cree un directorio de trabajo de entrada del sistema de archivos.
System::SharedPtr<IWorkingDirectory> wd = System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory");
{
    // Cree un proveedor de formato.
    System::SharedPtr<FormatProvider> formatProvider = System::MakeObject<FormatProvider>(wd, u"customtex");

    // Borrar recursos bajo la declaración 'usando'
    System::Details::DisposeGuard<1> __dispose_guard_0({ formatProvider });
    // ---------------------------------------------------------

    try
    {
        // Cree opciones de composición tipográfica para un formato personalizado en la extensión del motor ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
        options->set_JobName(u"typeset-with-custom-format");

        // Especifique el directorio de trabajo de entrada.
        options->set_InputWorkingDirectory(wd);

        // Especifique un directorio de trabajo del sistema de archivos para la salida.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

        // Especificar las opciones de PdfSave
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Ejecutar composición tipográfica.
        Aspose::TeX::TeX::Typeset(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<PdfDevice>(), options);
    }
    catch (...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido cómo crear un formato TeX personalizado usando C++. Además, ha aprendido a escribir un formato TeX personalizado en formatos PDF y XPS utilizando Aspose.TeX for C++. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también