Output TeX flessibili e directory di lavoro di output in Java
Configura le destinazioni di output e i meccanismi di archiviazione per la compilazione di documenti TeX e LaTeX utilizzando Aspose.Font per Java. Salva i documenti sottoposti a rendering (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) e gli artefatti di compilazione ausiliari (.log, .aux) direttamente in cartelle fisiche del disco, archivi ZIP compressi o stream personalizzati in memoria, senza richiedere installazioni desktop di TeX.
Durante la compilazione, il motore di composizione tipografica TeX produce due categorie principali di output:
- File di output principali: Il documento di destinazione (ad esempio,
.pdf,.xpso sequenze di immagini). - File di output ausiliari: Log (
.log), dati ausiliari (.aux) e file intermedi generati dalle macro LaTeX.
Aspose.TeX per Java incapsula le destinazioni di output in directory di lavoro astratte tramite l’interfaccia IOutputWorkingDirectory, consentendo agli sviluppatori di indirizzare dinamicamente gli stream di output. Tipi di directory di output supportati:
- La directory di lavoro dell’output Sistema di file locale utilizza
OutputFileSystemDirectoryper salvare i documenti sottoposti a rendering e i file di log direttamente nelle cartelle del disco locale. - La directory di lavoro dell’output Archivio ZIP utilizza
OutputZipDirectoryper raggruppare documenti di output, log e risorse generate in un unico file.zip. - La directory di lavoro dell’output Stream/memoria personalizzati utilizza
IOutputWorkingDirectoryper acquisire l’output direttamente in memoria, BLOB di database o stream cloud (S3/Azure Blob).
Salvare l'output TeX in una directory del file system locale
Indirizza gli output del documento principale e i log di compilazione ausiliari a una cartella fisica utilizzando 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);
}
}Salvare l'output TeX direttamente in un archivio ZIP
Raggruppa i documenti sottoposti a rendering insieme ai log intermedi e alle immagini generate in un file ZIP compresso utilizzando 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.");
}
}Trasmettere l'output TeX alla memoria/ByteArray
Per le applicazioni cloud o web, acquisisci i documenti sottoposti a rendering direttamente come flussi di byte senza scrivere file sullo spazio di archiviazione del disco locale.
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.");
}
}Installazione e configurazione
Integra Aspose.TeX per Java nel tuo progetto utilizzando 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>
FAQ
1. Quali dispositivi di output di destinazione sono supportati in Aspose.TeX for Java?
Aspose.TeX supporta diversi dispositivi di output, tra cui PdfDevice (documenti PDF), XpsDevice (documenti XPS), SvgDevice (grafica vettoriale scalabile) e ImageDevice (immagini raster come PNG, JPEG, TIFF e BMP).
2. Dove vengono salvati i file di compilazione ausiliari (.log, .aux)?
I file ausiliari vengono scritti nella directory specificata in TeXOptions.setOutputWorkingDirectory(). Se si utilizza OutputZipDirectory, i file .log e .aux vengono inseriti direttamente nell’archivio ZIP insieme al documento sottoposto a rendering.
3. È possibile sopprimere o reindirizzare i file di output dei log?
Sì. È possibile personalizzare la gestione dell’output del terminale/log tramite TeXOptions.setTerminalOut() oppure assegnare un’implementazione personalizzata di IOutputWorkingDirectory per eliminare o reindirizzare i log di compilazione.