Crear PDF desde LaTeX en Java

LaTeX es ampliamente utilizado para crear documentación técnica y científica. Los archivos LaTeX (TEX o LTX) son documentos fuente llenos de comandos para especificar el formato del documento, incluidos texto, símbolos, expresiones matemáticas y gráficos. Podemos generar fácilmente un documento PDF desde la fuente LaTeX mediante programación. PDF permite compartir documentos en un formato de solo lectura sin comprometer su estilo o diseño. En este artículo, aprenderemos cómo crear un documento PDF a partir del archivo fuente de LaTeX en Java.

En este artículo se tratarán los siguientes temas:

API de Java para crear PDF desde LaTeX

Para crear documentos PDF a partir de archivos fuente LaTeX, utilizaremos la API Aspose.TeX for Java. Permite componer archivos TeX en diferentes formatos de archivo como PDF, XPS o imágenes. Descargue el JAR de la API o agregue la siguiente configuración pom.xml en una aplicación Java basada en Maven.

Repositorio:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dependencia:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>21.11</version>
    <type>jar</type>
</dependency>

Crear PDF desde un archivo LaTeX TeX en Java

Podemos crear un documento PDF a partir de un archivo LaTeX (TeX) siguiendo los pasos que se detallan a continuación:

  1. Primero, crea una instancia de la clase TeXOptions usando el método consoleAppOptions().
  2. Establezca la configuración de TeX como TeXConfig.objectLaTeX().
  3. A continuación, configure los directorios de trabajo de entrada y salida.
  4. Luego, especifique la consola o el flujo de memoria como terminal de salida.
  5. Después de eso, configure las opciones para renderizar en formato PDF.
  6. Finalmente, llame al método run() para la instancia de clase TexJob recién creada con el PDF de salida y el objeto de clase PdfDevice como argumentos.

El siguiente ejemplo de código demuestra cómo crear un PDF a partir de un archivo TeX usando Java.

// Este ejemplo de código demuestra cómo crear un PDF a partir de un archivo de origen TeX.
// Directorio de trabajo
String dataDir = "D:\\Files\\Tex\\";

// Crear opciones de composición tipográfica.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Especifique un directorio de trabajo del sistema de archivos para la entrada.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Especifique un directorio de trabajo del sistema de archivos para la salida.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Especifique el flujo de memoria como terminal de salida.
options.setTerminalOut(new OutputMemoryTerminal());

// Establezca opciones para renderizar en formato PDF.
options.setSaveOptions(new PdfSaveOptions());

// Ejecutar composición tipográfica.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Crear PDF desde un archivo LaTeX TeX en Java

Cree PDF desde un archivo LaTeX TeX en Java.

Crear PDF desde un archivo LTX en Java

LaTeX utiliza una extensión de archivo LTX para escribir etiquetas de marcado y propiedades que definen la estructura y el contenido del documento. También podemos crear un PDF a partir de un archivo LaTeX (LTX) siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos ingresar el archivo fuente con la extensión .ltx en el último paso.

El siguiente ejemplo de código demuestra cómo crear un PDF a partir de un archivo LTX usando Java.

// Este ejemplo de código demuestra cómo crear un PDF a partir de un archivo fuente LTX.
// Directorio de trabajo
String dataDir = "D:\\Files\\Tex\\";

// Crear opciones de composición tipográfica.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Especifique un directorio de trabajo del sistema de archivos para la entrada.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Especifique un directorio de trabajo del sistema de archivos para la salida.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Especifique el flujo de memoria como terminal de salida.
options.setTerminalOut(new OutputMemoryTerminal());

// Establezca opciones para renderizar en formato PDF.
options.setSaveOptions(new PdfSaveOptions());

// Ejecutar composición tipográfica.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Convierta TeX a XPS usando Java

También podemos convertir un archivo LaTeX (TeX) a XPS siguiendo los pasos mencionados anteriormente. Sin embargo, solo necesitamos configurar XpsSaveOptions en lugar de PdfSaveOptions en el paso 5.

El siguiente ejemplo de código demuestra cómo convertir TeX a XPS usando Java.

// Este ejemplo de código demuestra cómo convertir un Tex a XPS.
// Directorio de trabajo
String dataDir = "D:\\Files\\Tex\\";

// Crear opciones de composición tipográfica.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Especifique un directorio de trabajo del sistema de archivos para la entrada.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Especifique un directorio de trabajo del sistema de archivos para la salida.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Especifique el flujo de memoria como terminal de salida.
options.setTerminalOut(new OutputMemoryTerminal());

// Establezca opciones para renderizar en formato XPS.
options.setSaveOptions(new XpsSaveOptions());

// Ejecutar composición tipográfica.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Convierta el directorio ZIP de TeX en un directorio ZIP PDF usando Java

Podemos convertir varios archivos TeX comprimidos en un archivo ZIP a PDF a la vez siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, abra flujos en archivos ZIP como directorio de trabajo de entrada y salida.
  2. A continuación, cree una instancia de la clase TeXOptions utilizando el método consoleAppOptions().
  3. Luego, establezca la configuración de TeX como TeXConfig.objectLaTeX().
  4. A continuación, configure los directorios ZIP de entrada y salida.
  5. Luego, especifique la consola o el flujo de memoria como terminal de salida.
  6. Después de eso, configure las opciones para renderizar en formato PDF.
  7. Finalmente, llame al método run() para la instancia de clase TexJob recién creada con el PDF de salida y el objeto de clase PdfDevice como argumentos.

El siguiente ejemplo de código demuestra cómo convertir un archivo ZIP de TeX en un archivo ZIP de PDF usando Java.

// Este ejemplo de código demuestra cómo convertir un directorio ZIP de TeX en un directorio ZIP de PDF.
// Directorio de trabajo
String dataDir = "D:\\Files\\Tex\\";

// Abra la secuencia en el archivo ZIP que servirá como directorio de trabajo de entrada.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Abra la secuencia en el archivo ZIP que servirá como directorio de trabajo de salida.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Cree opciones de conversión para el formato ObjectTeX predeterminado en la extensión del motor ObjectTeX.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Especifique un directorio de trabajo de archivo ZIP para la entrada.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Especifique un directorio de trabajo de archivo ZIP para la salida.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Especifique la consola como terminal de salida.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Defina las opciones de guardado.
    options.setSaveOptions(new PdfSaveOptions());

    // Ejecute el trabajo.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Para que la salida consecuente busque escribir. 
    options.getTerminalOut().getWriter().newLine();

    // Finalice el archivo ZIP de salida.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Convierta un archivo ZIP TeX en un archivo ZIP PDF

Convierta un archivo ZIP TeX en un archivo ZIP PDF.

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • generar una salida PDF desde el archivo fuente de LaTeX en Java;
  • crear un documento de salida XPS desde el archivo TeX mediante programación;
  • convertir un archivo ZIP TeX en un archivo ZIP PDF usando Java.

Además, puede obtener más información sobre Aspose.TeX for Java API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también