Die Ausgabeschnittstelle von Aspose.TeX | Python

Formale Definitionen der E/A-Implementierung finden Sie in der API-Referenz von Aspose.TeX für Python.

Die Idee hinter dem Ausgabeverzeichnis

Aspose.TeX definiert ein Verzeichnis als eine Zuordnung zwischen Namen und Datenmengen, wobei die Datenmengen Dateien, Streams, Arrays oder andere Datentypen sein können. Die API ermöglicht die Angabe separater Eingabe- und Ausgabearbeitsverzeichnisse. Für die Ausgabe stellt die API die allgemeine Schnittstelle IOutputWorkingDirectory zur Verfügung, die vom Benutzer für seine spezifischen Anforderungen implementiert werden kann. Darüber hinaus stellt die API gebrauchsfertige Implementierungen bereit, die im Folgenden erläutert werden. Die IOutputWorkingDirectory-Schnittstelle erweitert IInputWorkingDirectory, da die Engine zunächst eine Datei erstellen und schreiben und diese dann zurücklesen kann. Die Schnittstelle enthält die Methode get_output_file(), die den Stream zum Schreiben zurückgibt, im Gegensatz zur Methode get_file(), die den Stream zum Lesen zurückgibt.

Speichern der Ausgabe als Datei im Festplattendateisystem

Wie oben erwähnt, wird das output_working_directory üblicherweise als Instanz der Klasse OutputFileSystemDirectory festgelegt.

So würden wir es einstellen:

1# Create conversion options instance.
2...
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Utils.output_directory)

Dieser spezielle Anwendungsfall ist unkompliziert, sodass es nicht erforderlich ist, sich weiter damit zu befassen.

Speichern der Ausgabe als ZIP-Archivdatei.

Eine andere Möglichkeit besteht darin, eine Datei oder einen Stream zu erstellen und diese als ZIP-Archiv zum Speichern der Ausgabedateien zu verwenden. Hier ist ein Beispiel:

1# Open the stream for the ZIP archive that will serve as the output working directory.
2with open(path.join(Utils.output_directory, "zip-pdf-out.zip") as out_zip_stream:
3    # Create conversion options instance.
4    ...
5    # Specify a ZIP archive working directory for the output.
6    options.output_working_directory = OutputZipDirectory(out_zip_stream)

Zunächst erstellen wir einen Ausgabestream für die ZIP-Datei. Nachdem wir die Konvertierungsoptionen erstellt haben, legen wir dann die Option output_working_directory als Instanz der Klasse OutputZipDirectory fest.

Die Idee hinter dem Ausgabeterminal

Die Terminalausgabe ist ein weiterer wichtiger Aspekt der Ausgabe. Zu diesem Zweck definiert Aspose.TeX für Python die allgemeine Schnittstelle IOutputTerminal, die über eine einzelne Eigenschaft verfügt, die eine Instanz der TerminalWriter-Implementierung zurückgibt. Die verfügbaren Implementierungen werden im Folgenden erläutert.

Schreiben der Terminalausgabe in die Konsole

Um dies zu erreichen, müssen wir die Option terminal_out als Instanz der Klasse OutputConsoleTerminal festlegen.

1# Create conversion options instance.
2...
3# Specify the console as the input terminal.
4options.terminal_out = OutputConsoleTerminal()  # Default value. Arbitrary assignment.

Auch hier handelt es sich um den Standardwert der Option, sodass keine wirkliche Notwendigkeit besteht, ihn anzugeben. Daher dient dieser Abschnitt ausschließlich zu Demonstrationszwecken.

Terminalausgabe in eine Datei schreiben

Im Gegensatz zum Eingabeterminal enthält Aspose.TeX für Python eine Implementierung der IOutputTerminal-Schnittstelle, die es uns ermöglicht, die Terminalausgabe in eine Datei innerhalb eines angegebenen Ausgabeverzeichnisses zu schreiben.

1# Create conversion options instance.
2...
3# Specify that the terminal output must be written to a file in the output working directory.
4# The file name is <job_name>.trm.
5options.terminal_out = OutputFileTerminal(options.output_working_directory)

In diesem Fall weisen wir die TeX-Engine an, die Terminalausgabe in eine Datei mit dem Namen <job_name>.trm zu schreiben, die sich im selben Ausgabeverzeichnis wie der Rest der Ausgabe befindet. Dies ist jedoch nicht zwingend. Wir können dem Konstruktor auch jede andere Instanz einer Implementierung von IOutputTerminal bereitstellen.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.