PDF aus LaTeX in Java erstellen

LaTeX wird häufig zur Erstellung technischer und wissenschaftlicher Dokumentationen verwendet. LaTeX-Dateien (TEX oder LTX) sind Quelldokumente, die mit Befehlen gefüllt sind, um das Format des Dokuments anzugeben, einschließlich Text, Symbolen, mathematischen Ausdrücken und Grafiken. Wir können ganz einfach programmgesteuert ein PDF-Dokument aus der LaTeX-Quelle generieren. PDF ermöglicht die gemeinsame Nutzung von Dokumenten in einem schreibgeschützten Format, ohne deren Stil oder Layout zu beeinträchtigen. In diesem Artikel erfahren Sie, wie Sie aus der LaTeX-Quelldatei in Java ein PDF-Dokument erstellen.

Folgende Themen sollen in diesem Artikel behandelt werden:

Java-API zum Erstellen von PDFs aus LaTeX

Zum Erstellen von PDF-Dokumenten aus LaTeX-Quelldateien verwenden wir die API Aspose.TeX for Java. Es ermöglicht das Setzen von TeX-Dateien in verschiedene Dateiformate wie PDF, XPS oder Bilder. Bitte laden Sie die JAR-Datei der API herunter oder fügen Sie die folgende pom.xml-Konfiguration in einer Maven-basierten Java-Anwendung hinzu.

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Abhängigkeit:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>21.11</version>
    <type>jar</type>
</dependency>

Erstellen Sie PDF aus LaTeX TeX-Datei in Java

Wir können ein PDF-Dokument aus einer LaTeX (TeX)-Datei erstellen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der Klasse TeXOptions mit der Methode consoleAppOptions().
  2. Legen Sie die TeX-Konfiguration als TeXConfig.objectLaTeX() fest.
  3. Legen Sie als Nächstes Eingabe- und Ausgabe-Arbeitsverzeichnisse fest.
  4. Geben Sie dann Konsole oder Speicherstream als Ausgabeterminal an.
  5. Stellen Sie danach Optionen für das Rendern in das PDF-Format ein.
  6. Rufen Sie schließlich die Methode run() für die neu erstellte Klasseninstanz TexJob mit der Ausgabe-PDF und dem Klassenobjekt PdfDevice als Argumente auf.

Das folgende Codebeispiel zeigt, wie Sie mit Java eine PDF-Datei aus einer TeX-Datei erstellen.

// Dieses Codebeispiel zeigt, wie Sie aus einer TeX-Quelldatei ein PDF erstellen.
// Arbeitsverzeichnis
String dataDir = "D:\\Files\\Tex\\";

// Erstellen Sie Satzoptionen.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Eingabe an.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Ausgabe an.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Geben Sie den Speicherstrom als Ausgabeterminal an.
options.setTerminalOut(new OutputMemoryTerminal());

// Legen Sie Optionen zum Rendern im PDF-Format fest.
options.setSaveOptions(new PdfSaveOptions());

// Schriftsatz ausführen.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Erstellen Sie PDF aus LaTeX TeX-Datei in Java

Erstellen Sie PDF aus LaTeX TeX-Datei in Java.

PDF aus LTX-Datei in Java erstellen

LaTeX verwendet eine LTX-Dateierweiterung, die Markup-Tags und -Eigenschaften setzt, die die Dokumentstruktur und den Inhalt definieren. Wir können auch eine PDF-Datei aus einer LaTeX-Datei (LTX) erstellen, indem Sie die zuvor genannten Schritte ausführen. Wir müssen jedoch im letzten Schritt nur die Quelldatei mit der Erweiterung .ltx eingeben.

Das folgende Codebeispiel zeigt, wie Sie mit Java eine PDF-Datei aus einer LTX-Datei erstellen.

// Dieses Codebeispiel zeigt, wie Sie eine PDF-Datei aus einer LTX-Quelldatei erstellen.
// Arbeitsverzeichnis
String dataDir = "D:\\Files\\Tex\\";

// Erstellen Sie Satzoptionen.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Eingabe an.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Ausgabe an.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Geben Sie den Speicherstrom als Ausgabeterminal an.
options.setTerminalOut(new OutputMemoryTerminal());

// Legen Sie Optionen zum Rendern im PDF-Format fest.
options.setSaveOptions(new PdfSaveOptions());

// Schriftsatz ausführen.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();

Konvertieren Sie TeX mit Java in XPS

Wir können auch LaTeX (TeX)-Dateien in XPS konvertieren, indem wir die zuvor genannten Schritte ausführen. Wir müssen jedoch nur die XpsSaveOptions anstelle von PdfSaveOptions in Schritt 5 festlegen.

Das folgende Codebeispiel zeigt, wie TeX mit Java in XPS konvertiert wird.

// Dieses Codebeispiel zeigt, wie ein Tex in XPS konvertiert wird.
// Arbeitsverzeichnis
String dataDir = "D:\\Files\\Tex\\";

// Erstellen Sie Satzoptionen.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Eingabe an.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Ausgabe an.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));

// Geben Sie den Speicherstrom als Ausgabeterminal an.
options.setTerminalOut(new OutputMemoryTerminal());

// Legen Sie Optionen zum Rendern im XPS-Format fest.
options.setSaveOptions(new XpsSaveOptions());

// Schriftsatz ausführen.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();

Konvertieren Sie das TeX-ZIP-Verzeichnis in das PDF-ZIP-Verzeichnis mit Java

Wir können mehrere in einem ZIP-Archiv komprimierte TeX-Dateien gleichzeitig in PDF konvertieren, indem wir die folgenden Schritte ausführen:

  1. Öffnen Sie zunächst Streams in ZIP-Archiven als Eingabe- und Ausgabe-Arbeitsverzeichnis.
  2. Erstellen Sie als Nächstes eine Instanz der Klasse TeXOptions mit der Methode consoleAppOptions().
  3. Legen Sie dann die TeX-Konfiguration als TeXConfig.objectLaTeX() fest.
  4. Legen Sie als Nächstes Eingabe- und Ausgabe-ZIP-Verzeichnisse fest.
  5. Geben Sie dann Konsole oder Speicherstream als Ausgabeterminal an.
  6. Stellen Sie danach Optionen für das Rendern in das PDF-Format ein.
  7. Rufen Sie schließlich die Methode run() für die neu erstellte Klasseninstanz TexJob mit der Ausgabe-PDF und dem Klassenobjekt PdfDevice als Argumente auf.

Das folgende Codebeispiel zeigt, wie Sie ein TeX-ZIP-Archiv mit Java in ein PDF-ZIP-Archiv konvertieren.

// Dieses Codebeispiel zeigt, wie Sie ein TeX-ZIP-Verzeichnis in ein PDF-ZIP-Verzeichnis konvertieren.
// Arbeitsverzeichnis
String dataDir = "D:\\Files\\Tex\\";

// Öffnen Sie den Stream im ZIP-Archiv, das als Eingabe-Arbeitsverzeichnis dienen soll.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");

// Öffnen Sie den Stream im ZIP-Archiv, das als Ausgabe-Arbeitsverzeichnis dienen soll.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");

try {
    // Erstellen Sie Konvertierungsoptionen für das standardmäßige ObjectTeX-Format in der ObjectTeX-Engine-Erweiterung.
    TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

    // Geben Sie ein ZIP-Archiv-Arbeitsverzeichnis für die Eingabe an.
    options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));

    // Geben Sie ein ZIP-Archiv-Arbeitsverzeichnis für die Ausgabe an.
    options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));

    // Geben Sie die Konsole als Ausgabeterminal an.
    options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.

    // Legen Sie die Speicheroptionen fest.
    options.setSaveOptions(new PdfSaveOptions());

    // Führen Sie den Auftrag aus.
    TeXJob job = new TeXJob("sample", new PdfDevice(), options);
    job.run();

    // Für eine konsequente Ausgabe suchen Sie schreiben. 
    options.getTerminalOut().getWriter().newLine();

    // Ausgabe-ZIP-Archiv abschließen.
    ((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
  outZipStream.close();
}
Konvertieren Sie ein TeX-ZIP-Archiv in ein PDF-ZIP-Archiv

Konvertieren Sie ein TeX-ZIP-Archiv in ein PDF-ZIP-Archiv.

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • Generieren Sie eine PDF-Ausgabe aus der LaTeX-Quelldatei in Java;
  • programmgesteuert ein XPS-Ausgabedokument aus der TeX-Datei erstellen;
  • Konvertieren Sie ein TeX-ZIP-Archiv mit Java in ein PDF-ZIP-Archiv.

Außerdem können Sie in der Dokumentation mehr über Aspose.TeX für die Java-API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch