Componer TeX con E/S ZIP
Convierta TeX a PDF utilizando archivos ZIP como entrada y salida. API para C++
El lenguaje TeX es una herramienta de composición que le permite crear documentos profesionales sin preocuparse por el formato. Con TeX, ingresa texto sin formato que contiene fragmentos de texto de un documento junto con comandos que controlan la salida. En la salida obtendrá un archivo formateado en el formato deseado (especificado). Para comprender mejor la entrada y salida de TeX, consulte la documentación de TeX.
TeX es también un sistema potente y avanzado, pero no se utiliza ampliamente fuera de los círculos académicos y científicos. El PDF, por otro lado, es un formato portátil que se puede ver fácilmente en la mayoría de los dispositivos y es más ampliamente aceptado. La capacidad de leer PDF está presente en todos los dispositivos, en la mayoría de los navegadores modernos. La conversión de TeX a PDF permite compartir los documentos con una audiencia más amplia y proporciona un formato más accesible para aquellos que no tienen software especializado. Además, el PDF ofrece varias ventajas sobre TeX, como una mejor reproducción de fuentes, soporte para interactividad y un control más sencillo del tamaño y diseño de la página.
El código de C++ a continuación compone un archivo TeX, creando un PDF, que luego se guarda en un archivo ZIP en el sistema de archivos local. Para realizar esta tarea, utilice la API Aspose.TeX para C++, que es una herramienta de procesamiento y conversión de documentos rica en funciones, potente y fácil de usar. Para instalar la API, abra el administrador de paquetes NuGet y busque Aspose.TeX.Cpp. Alternativamente, puede usar el siguiente comando en la Consola del Administrador de Paquetes:
Package Manager Console Command
PM> Install-Package Aspose.TeX.Cpp
En el código a continuación, TeX toma el archivo de entrada principal de un archivo ZIP y lo convierte en un PDF, que se escribe en otro archivo ZIP. Siga la guía:
- Abra un flujo que contenga un archivo ZIP que servirá como directorio de trabajo de entrada. Opcionalmente, puede especificar un subdirectorio en el archivo. De lo contrario, el archivo se buscará en todo el archivo.
- Cree un flujo de archivo para un nuevo archivo ZIP que sirva como directorio de trabajo de salida.
- Cree opciones de composición para el formato Object TeX en la extensión del motor Object TeX.
- Especifique los directorios de trabajo del archivo ZIP para la entrada y la salida utilizando las clases InputZipDirectory e OutputZipDirectory .
- Especifique la consola como terminal de salida.
- Utilizando la clase PdfSaveOptions , especifique las opciones de guardado para las opciones de composición.
- Instancie la clase TeXJob pasando el nombre del archivo de entrada principal, un objeto PdfDevice recién creado y las opciones de composición como argumentos. Ejecute la conversión llamando al método Run().
- Finalice el archivo ZIP de salida.
Ejemplo de código C++: Conversión de TeX a PDF con entrada y salida ZIP
using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;// Open a stream on a ZIP archive that will serve as the input working directory.
System::SharedPtr<System::IO::Stream> inZipStream =
System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
// Clearing resources under the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
try
{
System::SharedPtr<System::IO::Stream> outZipStream =
System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
// Clearing resources under the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
try
{
// Create typesetting options for the default Object TeX format on the Object TeX engine extension.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Specify a ZIP archive working directory for the input.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Specify a ZIP archive working directory for the output.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Specify console as output terminal.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Create and specify saving options.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Run the typesetting job.
System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world", System::MakeObject<PdfDevice>(), options)->Run();
// Finalize the output ZIP archive.
(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());
}Preguntas más frecuentes
1. ¿Puedo componer documentos TeX utilizando un archivo ZIP como entrada?
Aspose.TeX admite la lectura de archivos fuente TeX desde archivos comprimidos como archivos ZIP. Puede incluir todos los archivos necesarios, incluidos archivos fuente TeX, imágenes y recursos adicionales, dentro de un archivo ZIP y luego especificar el archivo ZIP como entrada para el compilador LaTeX. Esto permite una organización y distribución convenientes de proyectos LaTeX, especialmente cuando se trata de documentos grandes o complejos con múltiples dependencias.
2. ¿Existe alguna ventaja en el uso de archivos ZIP para componer documentos TeX?
Sí, utilizar archivos ZIP para componer documentos TeX ofrece varias ventajas. En primer lugar, los archivos ZIP proporcionan una manera conveniente de empaquetar y organizar múltiples archivos asociados con un proyecto LaTeX, incluidos archivos fuente TeX, bibliografías, imágenes y archivos de estilo, en un único archivo comprimido. Esto simplifica la distribución y el intercambio de documentos LaTeX, especialmente cuando se colabora con otros o se comparten proyectos en línea.
3. ¿Cómo componer archivos TeX?
Para componer archivos TeX utilizando la solución API Aspose.TeX, debe crear opciones de conversión para el formato Object TeX u Object LaTeX basadas en la extensión del motor Object TeX. Luego especifique un directorio de trabajo del sistema de archivos para la salida. Finalmente, cree una instancia de la clase TeXJob y ejecute el proceso de composición tipográfica utilizando el método TeXJob.Run().
TeX What is TeX File Format
TeX es un sistema de composición tipográfica y un lenguaje de programación que permite crear documentos de alta calidad, especialmente con fórmulas matemáticas. Los archivos .tex son texto plano que procesan motores como pdfTeX, XeTeX o LuaTeX para generar salidas como PDF o DVI.