Sorties TeX flexibles et répertoires de travail de sortie en Java
Configurez les cibles de sortie et les mécanismes de stockage pour la compilation de documents TeX et LaTeX à l’aide d’Aspose.Font pour Java. Enregistrez les documents rendus (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) et les artefacts de compilation auxiliaires (.log, .aux) directement dans des dossiers physiques sur disque, des archives ZIP compressées ou des flux personnalisés en mémoire, sans nécessiter d’installations TeX de bureau.
Lors de la compilation, le moteur de composition TeX produit deux grandes catégories de sorties :
- Fichiers de sortie principaux : Le document cible (par exemple,
.pdf,.xpsou des séquences d’images). - Fichiers de sortie auxiliaires : Journaux (
.log), données auxiliaires (.aux) et fichiers intermédiaires générés par les macros LaTeX.
Aspose.TeX pour Java encapsule les destinations de sortie dans des répertoires de travail abstraits via l’interface IOutputWorkingDirectory, permettant aux développeurs de diriger dynamiquement les flux de sortie. Types de répertoires de sortie pris en charge :
- Le répertoire de travail de sortie Système de fichiers local utilise
OutputFileSystemDirectorypour enregistrer les documents rendus et les fichiers journaux directement dans des dossiers du disque local. - Le répertoire de travail de sortie Archive ZIP utilise
OutputZipDirectorypour regrouper les documents de sortie, les journaux et les ressources générées dans un seul fichier.zip. - Le répertoire de travail de sortie Flux/mémoire personnalisés utilise
IOutputWorkingDirectorypour capturer les sorties directement en mémoire, dans des BLOB de base de données ou dans des flux cloud (S3/Azure Blob).
Enregistrer la sortie TeX dans un répertoire du système de fichiers local
Dirigez les sorties du document principal et les journaux de compilation auxiliaires vers un dossier physique à l’aide de 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);
}
}Enregistrer directement la sortie TeX dans une archive ZIP
Regroupez les documents rendus ainsi que les journaux intermédiaires et les images générées dans un fichier ZIP compressé à l’aide de 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.");
}
}Diffuser la sortie TeX vers la mémoire/ByteArray
Pour les applications cloud ou web, capturez les documents rendus directement sous forme de flux d’octets sans écrire de fichiers sur le stockage du disque 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.");
}
}Installation et configuration
Intégrez Aspose.TeX pour Java à votre projet à l’aide de 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>
Questions fréquentes
1. Quels périphériques de sortie cibles sont pris en charge dans Aspose.TeX for Java ?
Aspose.TeX prend en charge plusieurs périphériques de sortie, notamment PdfDevice (documents PDF), XpsDevice (documents XPS), SvgDevice (graphiques vectoriels évolutifs) et ImageDevice (images matricielles telles que PNG, JPEG, TIFF et BMP).
2. Où sont enregistrés les fichiers auxiliaires de compilation (.log, .aux) ?
Les fichiers auxiliaires sont écrits dans le répertoire spécifié dans TeXOptions.setOutputWorkingDirectory(). Si vous utilisez OutputZipDirectory, les fichiers .log et .aux seront directement intégrés à l’archive ZIP avec le document rendu.
3. Puis-je supprimer ou rediriger les fichiers de sortie des journaux ?
Oui. Vous pouvez personnaliser la gestion de la sortie du terminal/des journaux via TeXOptions.setTerminalOut() ou affecter une implémentation personnalisée de IOutputWorkingDirectory afin d’ignorer ou de rediriger les journaux de compilation.