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, .xps oder 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.