Einleitung

Aspose.TeX FOSS für Python stellt eine kompakte Engine API vor, die um drei Konzepte herum aufgebaut ist: ein einheitlicher Einstiegspunkt (TeXJob), anpassbare Ausgabegeräte (PdfDevice, DviDevice, SvgDevice) und zwei Eingabequellentypen (FileInputSource, StringInputSource). Dieser Artikel behandelt jede Komponente und zeigt, wie sie kombiniert werden, um PDF-, DVI- und SVG-Ausgabe aus TeX-Markup zu erzeugen.


TeXJob — Der Einstiegspunkt

TeXJob ist die Hauptklasse zur Steuerung der TeX Engine. Sie akzeptiert eine Eingabequelle, ein Ausgabegerät und optionale TeXOptions, und führt dann die Satzpipeline aus, wenn run() aufgerufen wird. Der Rückgabewert sind die Ausgabe-Bytes für Gerätetypen, die eine einzelne Ausgabe erzeugen (PDF, DVI); für SVG-Ausgabe werden die Seiten nach Abschluss von run() aus dem Geräteobjekt abgerufen.

TeXOptions konfiguriert das Verhalten der Engine. Die Erstellung mit Standardwerten (TeXOptions()) verwendet die normalen TeX-Einstellungen, die für die meisten Dokumente geeignet sind.


Ausgabegeräte

PdfDevice

PdfDevice schreibt das gesetzte Dokument in einen PDF-Byte-Stream. Es ist das Standardausgabegerät zur Erstellung tragbarer, druckbarer Ausgaben:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

pdf_bytes = TeXJob(StringInputSource("Hello, world!"), PdfDevice(), options=TeXOptions()).run()
with open("output.pdf", "wb") as f:
    f.write(pdf_bytes)

Nach run() enthalten die zurückgegebenen Bytes das vollständige PDF-Dokument.

DviDevice

DviDevice erzeugt Device Independent (DVI)-Formatausgabe — das native Zwischenformat von TeX. DVI-Ausgabe kann von nachgelagerten Werkzeugen zur Darstellung oder Weiterverarbeitung verwendet werden:

from aspose_tex import TeXJob, TeXOptions, DviDevice, StringInputSource

dvi_bytes = TeXJob(StringInputSource("Hello!"), DviDevice(), options=TeXOptions()).run()
with open("output.dvi", "wb") as f:
    f.write(dvi_bytes)

SvgDevice

SvgDevice rendert jede gesetzte Seite als SVG-Vektorgrafik. Nach dem Durchlauf gibt get_all_pages() die Liste der SVG-Byte-Strings pro Seite zurück:

from aspose_tex import TeXJob, TeXOptions, SvgDevice, StringInputSource

device = SvgDevice()
TeXJob(StringInputSource("Hello!"), device, options=TeXOptions()).run()
for i, svg in enumerate(device.get_all_pages()):
    with open(f"page_{i}.svg", "wb") as f:
        f.write(svg)

Eingabequellen

FileInputSource

FileInputSource liest TeX Markup aus einer .tex-Datei auf der Festplatte. Dies ist der Standard-Eingabemodus beim Setzen vorhandener Dokumente:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource

pdf_bytes = TeXJob(FileInputSource("document.tex"), PdfDevice(), options=TeXOptions()).run()

StringInputSource

StringInputSource akzeptiert TeX Markup als Python-String. Dieser Eingabemodus wird für die dynamische Markup-Generierung verwendet — TeX programmgesteuert zu erstellen und zu setzen, ohne es auf die Festplatte zu schreiben:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

tex = "Hello, world!"
pdf_bytes = TeXJob(StringInputSource(tex), PdfDevice(), options=TeXOptions()).run()

Kombinieren von Komponenten

Die drei Komponenten arbeiten zusammen, um eine vollständige Satz-Pipeline zu bilden. Wählen Sie die Eingabequelle, die Ihrem Datenfluss entspricht, und das Gerät, das Ihrem Ausgabeformat entspricht:

from aspose_tex import TeXJob, TeXOptions, SvgDevice, FileInputSource

device = SvgDevice()
TeXJob(FileInputSource("report.tex"), device, options=TeXOptions()).run()
pages = device.get_all_pages()
print(f"{len(pages)} SVG pages produced")

Tipps und bewährte Verfahren

  • Verwenden Sie StringInputSource für kurze oder dynamisch erzeugte TeX-Fragmente; verwenden Sie FileInputSource, wenn Sie mit bestehenden .tex-Dateien arbeiten.
  • PdfDevice ist das portabelste Ausgabeformat; verwenden Sie SvgDevice, wenn Sie TeX-Ausgaben in Webseiten oder Vektorgrafik-Workflows einbetten.
  • Wiederverwenden Sie TeXOptions-Instanzen über Jobs hinweg, wenn mehrere Dokumente mit denselben Einstellungen verarbeitet werden.
  • Der Rückgabewert von run() ist bytes für PDF und DVI; für SVG werden die Bytes nach Abschluss des Jobs aus SvgDevice.get_all_pages() abgerufen.

API Reference Zusammenfassung

KlasseRolle
TeXJobEinstiegspunkt; steuert die TeX Satzpipeline
TeXOptionsEngine-Konfiguration; Standardwerte funktionieren für die meisten Dokumente
PdfDeviceAusgabegerät, das PDF-Bytes erzeugt
DviDeviceAusgabegerät, das DVI-Bytes erzeugt
SvgDeviceAusgabegerät, das pro Seite SVG über get_all_pages() erzeugt
FileInputSourceEingabe von einer .tex-Datei auf der Festplatte
StringInputSourceEingabe von einer Python-Zeichenkette

Siehe auch

Erste Schritte

Verwandte Ressourcen