Flexible TeX-Ausgaben und Ausgabe-Arbeitsverzeichnisse in Java
Konfigurieren Sie Ausgabeziele und Speichermethoden für die Kompilierung von TeX- und LaTeX-Dokumenten mit Aspose.Font für Java. Speichern Sie gerenderte Dokumente (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) und zusätzliche Kompilierungsartefakte (.log, .aux) direkt in physischen Ordnern auf der Festplatte, komprimierten ZIP-Archiven oder benutzerdefinierten In-Memory-Streams, ohne Desktop-TeX-Installationen zu benötigen.
Während der Kompilierung erzeugt die TeX-Satz-Engine zwei Hauptkategorien von Ausgaben:
- Primäre Ausgabedateien: Das Zieldokument (z. B.
.pdf,.xpsoder Bildsequenzen). - Zusätzliche Ausgabedateien: Protokolle (
.log), zusätzliche Daten (.aux) und von LaTeX-Makros generierte Zwischendateien.
Aspose.TeX für Java kapselt Ausgabeziele über die Schnittstelle IOutputWorkingDirectory in abstrakten Arbeitsverzeichnissen, sodass Entwickler Ausgabestreams dynamisch weiterleiten können. Unterstützte Ausgabe-Verzeichnistypen:
- Das Ausgabe-Arbeitsverzeichnis Lokales Dateisystem verwendet
OutputFileSystemDirectory, um gerenderte Dokumente und Protokolldateien direkt in lokalen Ordnern auf der Festplatte zu speichern. - Das Ausgabe-Arbeitsverzeichnis ZIP-Archiv verwendet
OutputZipDirectory, um Ausgabedokumente, Protokolle und generierte Ressourcen in einer einzigen.zip-Datei zu bündeln. - Das Ausgabe-Arbeitsverzeichnis Benutzerdefinierter Stream/Speicher verwendet
IOutputWorkingDirectory, um Ausgaben direkt im Arbeitsspeicher, in Datenbank-BLOBs oder in Cloud-Streams (S3/Azure Blob) zu erfassen.
TeX-Ausgabe in einem Verzeichnis des lokalen Dateisystems speichern
Leiten Sie primäre Dokumentausgaben und zusätzliche Kompilierungsprotokolle mithilfe von OutputFileSystemDirectory in einen physischen Ordner.
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);
}
}TeX-Ausgabe direkt in einem ZIP-Archiv speichern
Bündeln Sie gerenderte Dokumente zusammen mit Zwischenprotokollen und generierten Bildern mithilfe von OutputZipDirectory in einer komprimierten ZIP-Datei.
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.");
}
}TeX-Ausgabe in den Speicher/ByteArray streamen
Erfassen Sie für Cloud- oder Webanwendungen gerenderte Dokumente direkt als Bytestreams, ohne Dateien auf dem lokalen Festplattenspeicher abzulegen.
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 und Einrichtung
Integrieren Sie Aspose.TeX für Java mithilfe von Maven in Ihr Projekt:
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>
Häufig gestellte Fragen
1. Welche Ausgabezielgeräte werden in Aspose.TeX for Java unterstützt?
Aspose.TeX unterstützt mehrere Ausgabegeräte, darunter PdfDevice (PDF-Dokumente), XpsDevice (XPS-Dokumente), SvgDevice (skalierbare Vektorgrafiken) und ImageDevice (Rasterbilder wie PNG, JPEG, TIFF und BMP).
2. Wo werden Hilfsdateien der Kompilierung (.log, .aux) gespeichert?
Hilfsdateien werden in das in TeXOptions.setOutputWorkingDirectory() angegebene Verzeichnis geschrieben. Wenn Sie OutputZipDirectory verwenden, werden die .log- und .aux-Dateien direkt zusammen mit dem gerenderten Dokument im ZIP-Archiv abgelegt.
3. Kann ich die Ausgabe von Protokolldateien unterdrücken oder umleiten?
Ja. Sie können die Verarbeitung der Terminal-/Protokollausgabe über TeXOptions.setTerminalOut() anpassen oder eine benutzerdefinierte Implementierung von IOutputWorkingDirectory zuweisen, um Kompilierungsprotokolle zu verwerfen oder umzuleiten.