LaTeX zum Bild | .NET
Aspose.TeX für .NET ermöglicht uns die Konvertierung von LaTeX-Dateien in eine Reihe von Rasterbildformaten.
So konvertieren Sie LaTeX in PNG
Werfen wir einen detaillierten Blick auf den Code in C#, der die einfachste Möglichkeit zum Konvertieren von LaTeX in das PNG-Format bietet.
1// Convert LaTeX to PNG - simplest approach
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in PNG format.
10PngSaveOptions pngOptions = new PngSaveOptions();
11// Set image resolution to 300 DPI.
12pngOptions.Resolution = 300;
13options.SaveOptions = pngOptions;
14
15// Run LaTeX to PNG conversion.
16new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();Das erste, was wir also tun müssen (na ja, manchmal nicht das allererste), ist, eine Instanz der Klasse TeXOptions zu erstellen. Die einzige statische Methode, die dies tut, ist ConsoleAppOptions(). Lassen Sie uns also nicht über die Bedeutung ihres Namens rätseln. Die Methode verwendet die ObjectLaTeX-Instanz der Klasse TeXConfig, die genau zum Konvertieren einer LaTeX-Datei geeignet ist. Diese Konfiguration weist die Object TeX-Engine an, das Object LaTeX-Format zu laden und bereit zu sein, die LaTeX-Datei zu akzeptieren. Das Object LaTeX-Format ist eigentlich nur das LaTeX-Format, außer dass es Object TeX-spezifische Grundelemente verwendet, um die Seitenmetriken einzurichten.
Die erste der erforderlichen Optionen ist OutputWorkingDirectory, die den Raum oder Bereich definiert, in den die TeX-Ausgabe geschrieben wird. Hier finden Sie die Details zum Ausgabeverzeichniskonzept in Aspose.TeX für .NET. In diesem Beispiel verwenden wir die Klasse OutputFileSystemDirectory, mit der wir die Ausgabe in das angegebene Verzeichnis oder den angegebenen Ordner schreiben können.
Die zweite Option ist eine Klasseninstanz SaveOptions, die die Transformation des Objektmodells in das Zielformat steuert. Da wir LaTeX in PNG konvertieren, ist es die Klasseninstanz PngSaveOptions, mit der wir die Auflösung der Ausgabebilder festlegen können.
Dann müssen wir eine Instanz der Klasse TeXJob erstellen. Wenn wir 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 ( CurrentDirectory) danach und wird es höchstwahrscheinlich nicht finden. Dennoch kann die Erweiterung .tex weggelassen werden. Die Engine wird es automatisch anhängen. Das zweite Argument des Konstruktors ist eine Klasseninstanz Device. Da wir LaTeX in PNG konvertieren, handelt es sich um eine Instanz der Klasse ImageDevice, und dies gilt für alle unterstützten Bildformate. Als letztes Argument übergeben wir die kürzlich vorbereiteten Konvertierungsoptionen.
Jetzt müssen Sie nur noch den Job ausführen.
Unabhängig davon, ob die Ausführung erfolgreich war oder nicht, ist das erste Ergebnis, das wir sehen, die Terminalausgabe. Wenn der Lauf erfolgreich war, sieht es in etwa so 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.Weitere „Früchte“ der Engine-Arbeit finden wir in dem Ordner, den wir als Ausgabeverzeichnis angegeben haben. Dabei handelt es sich um die Transkriptdatei und, hier ist sie!, die Hauptausgabe-PNG-Bilddatei(en).
Eine alternative Möglichkeit, die Hauptausgabe-PNG-Datei(en) zu schreiben.
Es gibt eine andere Möglichkeit, Bilddaten als Array von Byte-Arrays abzurufen. Jedes Array in der zweiten Dimension repräsentiert Bilddaten für eine separate Seite.
Alternatives Konvertierungsbeispiel
Der folgende C#-Ausschnitt zeigt eine weitere Möglichkeit, die PNG-Ausgabe zu erhalten, indem die Bilddaten in einen Speicherstream statt direkt in das Dateisystem geschrieben werden. Dieser Ansatz ist nützlich, wenn Sie die generierten PNG-Bytes im Speicher für die weitere Verarbeitung benötigen, z. B. zum Senden über ein Netzwerk, zum Speichern in einer Datenbank oder für zusätzliche Transformationen vor dem Speichern.
1// Convert LaTeX to PNG - alternative approach with manual page-by-page saving
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in PNG format.
10PngSaveOptions pngSaveOptions = new PngSaveOptions();
11// Disable automatic image writing - we'll write them manually.
12pngSaveOptions.DeviceWritesImages = false;
13options.SaveOptions = pngSaveOptions;
14
15// Create the image device.
16ImageDevice device = new ImageDevice();
17
18// Run LaTeX to PNG conversion.
19new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), device, options).Run();
20
21// Save pages file by file (useful for multi-page documents).
22for (int i = 0; i < device.Result.Length; i++)
23{
24 using (Stream fs = File.Open(Path.Combine(OutputDir, $"page-{i + 1}.png"), FileMode.Create))
25 fs.Write(device.Result[i], 0, device.Result[i].Length);
26}Die “page-n.png”-Datei(en) werden in jeden von uns angegebenen Pfad geschrieben. Im Gegensatz zu PDF-Ausgabe duplizieren sie die ausgegebenen PNG-Dateien, die in das Ausgabeverzeichnis geschrieben werden.
Über Eingabemöglichkeiten
Falls unsere Haupteingabedatei Abhängigkeiten erfordert, beispielsweise Pakete, die nicht im grundlegenden LaTeX-System und den unterstützten Paketen enthalten sind, MÜSSEN wir die Option RequiredInputDirectory auf die gleiche Weise festlegen, wie wir die Option OutputWorkingDirectory festlegen. Option und legen Sie die Abhängigkeiten in diesem Verzeichnis ab. Abhängigkeiten können beliebig in Unterverzeichnissen organisiert werden. Falls wir unsere eigenen Dateien in den Schriftsatzprozess einbeziehen möchten, beispielsweise externe Grafikdateien, MÜSSEN wir auch das InputWorkingDirectory festlegen, indem wir den Pfad zum Speicherort verwenden, an dem diese Dateien gesammelt werden. Wir können die Haupteingabedatei auch irgendwo im Eingabeverzeichnis platzieren und den relativen Pfad in der Methode „run()“ angeben (oder überhaupt keinen Pfad angeben, wenn sich die Haupteingabedatei im Stammverzeichnis befindet). Hier finden Sie die Details zum Eingabeverzeichniskonzept in Aspose.TeX für .NET und den bereitgestellten Implementierungen.
Weitere TeX-Joboptionen werden hier besprochen.
Sie können sich auch die kostenlose LaTeX-zu-PNG-Konvertierung Web-App ansehen, die auf der Aspose.TeX for .NET API basiert.
Im Folgenden diskutieren wir die LaTeX-Konvertierung in andere unterstützte Rasterbildformate, ohne tief ins Detail zu gehen, da es eigentlich keine Details gibt. Der einzige Unterschied besteht im Typ der Eigenschaft SaveOptions in den Konvertierungsoptionen.
So konvertieren Sie LaTeX in JPG
1// Convert LaTeX to JPEG
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in JPEG format.
10options.SaveOptions = new JpegSaveOptions();
11
12// Run LaTeX to JPEG conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();Sie können sich auch die kostenlose LaTeX-zu-JPG-Konvertierung Web-App ansehen, die auf Aspose.TeX für .NET API basiert.
So konvertieren Sie LaTeX in TIFF
1// Convert LaTeX to TIFF
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in TIFF format.
10options.SaveOptions = new TiffSaveOptions();
11
12// Run LaTeX to TIFF conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();Sie können sich auch die kostenlose LaTeX-zu-TIFF-Konvertierung Web-App ansehen, die auf Aspose.TeX für .NET API basiert.
So konvertieren Sie LaTeX in BMP
1// Convert LaTeX to BMP
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in BMP format.
10options.SaveOptions = new BmpSaveOptions();
11
12// Run LaTeX to BMP conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new ImageDevice(), options).Run();Sie können sich auch die kostenlose LaTeX-zu-BMP-Konvertierung Web-App ansehen, die auf Aspose.TeX für .NET API basiert.
So konvertieren Sie LaTeX in SVG
Und ein weiteres unterstütztes Zielformat ist SVG. Skalierbare Vektorgrafiken (SVG) ist ein XML-basiertes Vektorbildformat zum Definieren zweidimensionaler Grafiken mit Unterstützung für Interaktivität und Animation.
SVG-Bilder werden in einem Vektorgrafikformat definiert und in XML-Textdateien gespeichert. SVG-Bilder können somit ohne Qualitätsverlust in der Größe skaliert werden und SVG-Dateien können durchsucht, indiziert, mit Skripts versehen und komprimiert werden. Die XML-Textdateien können mit Texteditoren oder Vektorgrafik-Editoren erstellt und bearbeitet werden und werden von den gängigsten Webbrowsern gerendert.
Es gibt die Bibliothek Aspose.SVG, die verschiedene Funktionen im Zusammenhang mit SVG bereitstellt. Dazu gehören das Erstellen, Laden, Bearbeiten und Konvertieren von SVG-Dokumenten.
Die Konvertierung von LaTeX in SVG ist ebenfalls so einfach wie die Konvertierung in Rasterbildformate, außer dass SaveOptions auf eine Instanz der Klasse SvgSaveOptions gesetzt sein MUSS und das Gerät darauf MUSS in eine Instanz der Klasse SvgDevice geändert.
1// Convert LaTeX to SVG - simplest approach
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in SVG format.
10options.SaveOptions = new SvgSaveOptions();
11
12// Run LaTeX to SVG conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new SvgDevice(), options).Run();Sie können sich auch die kostenlose LaTeX-zu-SVG-Konvertierung Web-App ansehen, die auf der Aspose.TeX for .NET API basiert.