Salidas de TeX flexibles y directorios de trabajo de salida en Java
Configure destinos de salida y mecanismos de almacenamiento para la compilación de documentos TeX y LaTeX mediante Aspose.Font para Java. Guarde documentos renderizados (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) y artefactos auxiliares de compilación (.log, .aux) directamente en carpetas físicas del disco, archivos ZIP comprimidos o flujos personalizados en memoria, sin necesidad de instalaciones de TeX de escritorio.
Durante la compilación, el motor de composición tipográfica TeX genera dos categorías principales de salida:
- Archivos de salida principales: El documento de destino (por ejemplo,
.pdf,.xpso secuencias de imágenes). - Archivos de salida auxiliares: Registros (
.log), datos auxiliares (.aux) y archivos intermedios generados por las macros de LaTeX.
Aspose.TeX para Java encapsula los destinos de salida en directorios de trabajo abstractos mediante la interfaz IOutputWorkingDirectory, lo que permite a los desarrolladores dirigir los flujos de salida de forma dinámica. Tipos de directorios de salida compatibles:
- El directorio de trabajo de salida Sistema de archivos local utiliza
OutputFileSystemDirectorypara guardar documentos renderizados y archivos de registro directamente en carpetas del disco local. - El directorio de trabajo de salida Archivo ZIP utiliza
OutputZipDirectorypara empaquetar documentos de salida, registros y recursos generados en un único archivo.zip. - El directorio de trabajo de salida Flujo/memoria personalizados utiliza
IOutputWorkingDirectorypara capturar la salida directamente en la memoria, BLOB de bases de datos o flujos en la nube (S3/Azure Blob).
Guardar la salida de TeX en un directorio del sistema de archivos local
Dirija las salidas del documento principal y los registros auxiliares de compilación a una carpeta física mediante OutputFileSystemDirectory.
import com.aspose.tex.*;
import java.io.IOException;
public class TeXOutputToFileSystem {
public static void main(String[] args) throws IOException {
// Initialize options for LaTeX format using ObjectTeX
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Set input working directory
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
// Set output working directory for compiled documents and logs
String outputDirPath = "C:/TeXProject/Output/";
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(outputDirPath));
// Execute TeX job producing PDF output
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
System.out.println("TeX compilation complete. Outputs saved to: " + outputDirPath);
}
}Guardar la salida de TeX directamente en un archivo ZIP
Empaquete documentos renderizados junto con registros intermedios e imágenes generadas en un archivo ZIP comprimido mediante OutputZipDirectory.
import com.aspose.tex.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TeXOutputToZipArchive {
public static void main(String[] args) throws IOException {
// Initialize LaTeX conversion options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
// Create output stream for destination ZIP file
FileOutputStream zipStream = new FileOutputStream("C:/TeXProject/OutputBundle.zip");
// Set output working directory to ZIP stream
options.setOutputWorkingDirectory(new OutputZipDirectory(zipStream));
// Run job targeting PDF rendering
TeXJob job = new TeXJob("main", new PdfDevice(), options);
job.run();
zipStream.close();
System.out.println("TeX outputs and logs successfully bundled into OutputBundle.zip.");
}
}Transmitir la salida de TeX a la memoria/ByteArray
Para aplicaciones en la nube o web, capture los documentos renderizados directamente como flujos de bytes sin escribir archivos en el almacenamiento del disco local.
import com.aspose.tex.*;
import java.io.ByteArrayOutputStream;
public class TeXOutputToMemoryStream {
public static void main(String[] args) throws Exception {
// Configure conversion options
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
// Initialize memory output stream device
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// Configure output working directory for log/auxiliary files
options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Logs/"));
// Run compilation directing PDF output to byte array stream
TeXJob job = new TeXJob("main", new PdfDevice(outputStream), options);
job.run();
byte[] pdfBytes = outputStream.toByteArray();
System.out.println("Generated PDF size in memory: " + pdfBytes.length + " bytes.");
}
}Instalación y configuración
Integre Aspose.TeX para Java en su proyecto mediante Maven:
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-tex</artifactId>
<version>Latest</version>
</dependency>
Preguntas frecuentes
1. ¿Qué dispositivos de destino de salida son compatibles con Aspose.TeX for Java?
Aspose.TeX admite varios dispositivos de salida, incluidos PdfDevice (documentos PDF), XpsDevice (documentos XPS), SvgDevice (gráficos vectoriales escalables) e ImageDevice (imágenes rasterizadas como PNG, JPEG, TIFF y BMP).
2. ¿Dónde se guardan los archivos auxiliares de compilación (.log, .aux)?
Los archivos auxiliares se escriben en el directorio especificado en TeXOptions.setOutputWorkingDirectory(). Si utiliza OutputZipDirectory, los archivos .log y .aux se empaquetarán directamente dentro del archivo ZIP junto con el documento procesado.
3. ¿Puedo suprimir o redirigir los archivos de salida del registro?
Sí. Puede personalizar el manejo de la salida de terminal/registros mediante TeXOptions.setTerminalOut() o asignar una implementación personalizada de IOutputWorkingDirectory para descartar o redirigir los registros de compilación.