LaTeX zum Bild | Aspose.TeX für Python
Aspose.TeX für Python bietet uns die Möglichkeit, LaTeX-Dateien in verschiedene Rasterbildformate zu konvertieren.
Konvertieren von LaTeX in PNG
Schauen wir uns nun den Python-Code an, der den einfachsten Ansatz zur Konvertierung von LaTeX in das PNG-Format bietet.
1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in PNG format.
6options.save_options = PngSaveOptions()
7
8# Run LaTeX to PNG conversion.
9TeXJob(path.join(Util.input_directory, "hello-world.ltx"), ImageDevice(True), options).run()
Zunächst müssen wir mit der Methode console_app_options() eine Instanz der Klasse TeXOptions erstellen. Machen Sie sich keine Sorgen um den Namen, es ist nur die statische Methode, die die Instanz erstellt. Diese Methode verwendet die Instanz object_latex der Klasse TeXConfig, die sich perfekt zum Konvertieren einer LaTeX-Datei eignet. Diese Konfiguration richtet die Object TeX-Engine so ein, dass sie das Object LaTeX-Format lädt und für die Verarbeitung der LaTeX-Datei bereit ist. Das Object-LaTeX-Format ist im Wesentlichen dasselbe wie das LaTeX-Format, verwendet jedoch Object-TeX-spezifische Grundelemente, um die Seitenmetriken zu definieren.
Die erste der notwendigen Optionen ist output_working_directory, die den Speicherort angibt, an dem die TeX-Ausgabe gespeichert wird. Bei Interesse können Sie weitere Informationen zum Konzept des Ausgabeverzeichnisses in Aspose.TeX für Python erfahren. In diesem speziellen Beispiel verwenden wir die Klasse OutputFileSystemDirectory, um die Ausgabe in ein bestimmtes Verzeichnis oder einen bestimmten Ordner zu schreiben.
Die zweite Option ist eine Instanz der Klasse SaveOptions, die für die Verwaltung der Konvertierung vom Objektmodell in das gewünschte Format verantwortlich ist. Da wir in diesem Fall LaTeX in PNG konvertieren, verwenden wir die Klasseninstanz PngSaveOptions, mit der wir die Auflösung der Ausgabebilder angeben können.
Als nächstes erstellen wir eine Instanz der Klasse TeXJob. Da wir in diesem Fall eine im Dateisystem gespeicherte LaTeX-Datei konvertieren möchten, verwenden wir diese Version des Konstruktors. Wir müssen den vollständigen Pfad zur Datei angeben, andernfalls sucht die Engine im aktuellen Verzeichnis (dem Arbeitsverzeichnis des Skripts) danach und findet sie möglicherweise nicht. Die Erweiterung „.tex“ kann jedoch weggelassen werden, da die Engine sie automatisch anhängt. Das zweite Argument des Konstruktors ist eine Instanz der Klasse Device. Da wir LaTeX in PNG konvertieren, handelt es sich um eine ImageDevice-Klasseninstanz, die allen unterstützten Bildformaten gemeinsam ist. Abschließend übergeben wir als letztes Argument die vorbereiteten Konvertierungsoptionen.
Jetzt müssen Sie nur noch den Job ausführen.
Nachdem der Job ausgeführt wurde, ist die erste Ausgabe, auf die wir stoßen, unabhängig von Erfolg oder Misserfolg, die Terminalausgabe. Bei erfolgreicher Ausführung sieht die Ausgabe etwa wie folgt aus:
1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
2entering extended mode
3
4(<input_directory>\hello-world.ltx
5LaTeX2e <2011/06/27>
6(article.cls
7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
8(size10.clo))
9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.png (1 page).
13Transcript written on hello-world.log.
Die Ergebnisse der Arbeit der Engine finden Sie im von uns angegebenen Ausgabeverzeichnis. Dazu gehören die Transkriptdatei und vor allem die PNG-Bilddatei(en) für die Hauptausgabe.
Eine alternative Möglichkeit, die Hauptausgabe-PNG-Datei(en) zu schreiben.
Es gibt eine alternative Methode, um Bilddaten als Array von Byte-Arrays zu erhalten, wobei jedes Array in der zweiten Dimension die Bilddaten für eine separate Seite darstellt.
1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in PNG format.
6so = PngSaveOptions()
7so.device_writes_images = False # Run LaTeX to PNG conversion.
8options.save_options = so
9device = ImageDevice(True)
10TeXJob(path.join(Util.input_directory, "hello-world.ltx"), device, options).run()
11
12# Save pages file by file.
13for i in range(len(device.result)):
14 with open(path.join(Util.output_directory, f"page-{(i + 1)}" + ".png"), "wb") as fs:
15 fs.write(device.result[i][0:len(device.result[i])])
Die Datei(en) „page-n.png“ können in jeden angegebenen Pfad geschrieben werden. Im Gegensatz zu PDF-Ausgabe duplizieren diese PNG-Dateien die Ausgabe-PNG-Dateien, die in das Ausgabeverzeichnis geschrieben werden.
Zu den Eingabemöglichkeiten
Wenn unsere Haupteingabedatei Abhängigkeiten erfordert, wie etwa Pakete, die nicht im grundlegenden LaTeX-System enthalten sind, oder unterstützte Pakete, müssen wir die Option required_input_directory auf ähnliche Weise festlegen, wie wir die Option output_working_directory festlegen Platzieren Sie die Abhängigkeiten in diesem Verzeichnis. Die Abhängigkeiten können je nach Bedarf in Unterverzeichnissen organisiert werden. Wenn wir unsere Dateien in den Satzprozess einbeziehen möchten, beispielsweise externe Grafikdateien, müssen wir auch das input_working_directory auf den Speicherort dieser Dateien festlegen. Wir können die Haupteingabedatei auch im Eingabeverzeichnis platzieren und den relativen Pfad in der Methode „run()“ angeben oder überhaupt keinen Pfad angeben, wenn sich die Haupteingabedatei im Stammverzeichnis befindet. Es gibt auch weitere Details zum Eingabeverzeichniskonzept in Aspose.TeX und den bereitgestellten Implementierungen, die beschrieben werden.
Erfahren Sie auch die anderen TeX-Joboptionen hier.
Sie können auch die kostenlose Web-App für die Konvertierung von LaTeX in PNG erkunden, die mit der Aspose.TeX für .NET API entwickelt wurde.
Im Folgenden erklären wir kurz die Konvertierung von LaTeX in andere unterstützte Rasterbildformate, ohne zu sehr ins Detail zu gehen, da es keine wesentlichen Unterschiede gibt. Die einzige Variation liegt im Typ der Eigenschaft save_options in den Konvertierungsoptionen.
Konvertieren von LaTeX in JPG
1# Create conversion options instance.
2...
3# Initialize the options for saving in JPEG format.
4options.save_options = JpegSaveOptions()
Sie können auch die kostenlose Web-App für die Konvertierung von LaTeX in JPG erkunden, die mit der Aspose.TeX für .NET API entwickelt wurde.
Konvertieren von LaTeX in TIFF
1# Create conversion options instance.
2...
3# Initialize the options for saving in TIFF format.
4options.save_options = TiffSaveOptions()
Sie können auch die kostenlose Web-App für die Konvertierung von LaTeX in TIFF erkunden, die mit der Aspose.TeX für .NET API entwickelt wurde.
Konvertieren von LaTeX in BMP
1# Create conversion options instance.
2...
3# Initialize the options for saving in BMP format.
4options.save_options = BmpSaveOptions()
Sie können auch die kostenlose Web-App für die Konvertierung von LaTeX in BMP erkunden, die mit der Aspose.TeX für .NET API entwickelt wurde.
Konvertieren von LaTeX in SVG
Ein weiteres unterstütztes Zielformat ist SVG. Skalierbare Vektorgrafiken (SVG) ist ein XML-basiertes Vektorbildformat, das zur Definition zweidimensionaler Grafiken verwendet wird. Es unterstützt Interaktivität und Animation.
SVG-Bilder werden in XML-Textdateien gespeichert und in einem Vektorgrafikformat definiert. Dies bedeutet, dass SVG-Bilder ohne Qualitätsverlust in der Größe skaliert werden können und SVG-Dateien selbst durchsucht, indiziert, mit Skripts versehen und komprimiert werden können. Die XML-Textdateien können mit Texteditoren oder Vektorgrafik-Editoren erstellt und bearbeitet werden und können von den am häufigsten verwendeten Webbrowsern gerendert werden.
Die Aspose.SVG API bietet eine Reihe von Funktionen für die Arbeit mit SVG, wie zum Beispiel das Erstellen, Laden, Bearbeiten und Konvertieren von SVG-Dokumenten.
Das Konvertieren von LaTeX in SVG ist genauso einfach wie das Konvertieren in Rasterbildformate, mit dem einzigen Unterschied, dass save_options auf eine Instanz der Klasse SvgSaveOptions gesetzt werden muss und die Das Gerät muss in eine Instanz der Klasse SvgDevice geändert werden.
1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in SVG format.
6options.save_options = SvgSaveOptions()
7# Run LaTeX to SVG conversion.
8TeXJob(path.join(Util.input_directory, "hello-world.ltx"), SvgDevice(), options).run()
Sie können auch die kostenlose Web-App für die Konvertierung von LaTeX in SVG erkunden, die mit der Aspose.TeX für .NET API entwickelt wurde.