Convierta archivos TeX a PDF o XPS mediante programación usando C++

Los archivos TeX se utilizan para componer diferentes documentos y libros que contienen texto, símbolos y expresiones aritméticas. Además, estos archivos pueden generar salidas como PDF, XPS y varios formatos de imagen. En este artículo, aprenderá cómo convertir archivos TeX a formato XPS y PDF usando C++.

API de C++ para convertir TeX a formato 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 y generar resultados en formatos como XPS, PDF, PNG, JPEG, TIFF, MPB. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.TeX.Cpp

Convierta el formato TeX a XPS usando C++

Puede convertir archivos TeX a formato XPS en solo unas pocas líneas de código. Para lograr esto, siga los pasos que se indican a continuación.

El siguiente código de ejemplo demuestra cómo convertir un archivo TeX a formato XPS usando C++.

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

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

// Especifique la consola como terminal de salida.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Defecto. No es necesario especificar.
// Especifique el flujo de memoria como terminal de salida, si no desea que la salida del terminal se escriba en la consola.
//opciones.TerminalOut = new OutputMemoryTerminal();

// Ejecutar composición tipográfica.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// Para obtener más resultados para buscar escribir.
options->get_TerminalOut()->get_Writer()->WriteLine();

Conversión de TeX a formato PDF usando C++

Los siguientes son los pasos para convertir archivos TeX a formato PDF.

El siguiente código de ejemplo muestra cómo convertir un archivo TeX a formato PDF usando C++.

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

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

// Especifique la consola como terminal de salida.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Defecto. No es necesario especificar.
// Especifique el flujo de memoria como terminal de salida, si no desea que la salida del terminal se escriba en la consola.
//opciones.TerminalOut = new OutputMemoryTerminal();

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

// Ejecutar composición tipográfica.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// Para obtener más resultados para buscar escribir.
options->get_TerminalOut()->get_Writer()->WriteLine();

Convierta el directorio ZIP de TeX al directorio ZIP de PDF usando C++

Para convertir varios archivos TeX a formato PDF de una sola vez, puede agregar los archivos TeX a un archivo ZIP y convertirlos en archivos PDF comprimidos. Los siguientes son los pasos para lograrlo.

El siguiente código de muestra muestra cómo convertir un archivo ZIP de TeX a un archivo ZIP de PDF usando C++.

// Abra el archivo zip de origen en una secuencia
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Borrar recursos bajo la declaración 'usando'
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------------------------------------

try {
    // Abra el archivo zip de salida en una secuencia
    System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // Borrar recursos bajo la declaración 'usando'
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------------------------------------

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

        // Especifique un directorio de trabajo de archivo ZIP para la entrada.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Especifique un directorio de trabajo de archivo ZIP para la salida.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Especifique la consola como terminal de salida.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Defecto. No es necesario especificar.

        // Crear y especificar opciones de guardado.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Ejecutar composición tipográfica.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // Para que la salida consecuente busque escribir. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Finalice el archivo ZIP de salida.
        (System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
    }
    catch (...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}
catch (...)
{
    __dispose_guard_1.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 convertir archivos TeX a formato XPS y PDF usando C++. Además, ha aprendido cómo convertir archivos TeX en un archivo ZIP a archivos PDF comprimidos. Aspose.TeX for C++ proporciona muchas características adicionales para trabajar con archivos TeX. 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