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
StringInputSourcefür kurze oder dynamisch erzeugte TeX-Fragmente; verwenden SieFileInputSource, wenn Sie mit bestehenden.tex-Dateien arbeiten. PdfDeviceist das portabelste Ausgabeformat; verwenden SieSvgDevice, 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()istbytesfür PDF und DVI; für SVG werden die Bytes nach Abschluss des Jobs ausSvgDevice.get_all_pages()abgerufen.
API Reference Zusammenfassung
| Klasse | Rolle |
|---|---|
TeXJob | Einstiegspunkt; steuert die TeX Satzpipeline |
TeXOptions | Engine-Konfiguration; Standardwerte funktionieren für die meisten Dokumente |
PdfDevice | Ausgabegerät, das PDF-Bytes erzeugt |
DviDevice | Ausgabegerät, das DVI-Bytes erzeugt |
SvgDevice | Ausgabegerät, das pro Seite SVG über get_all_pages() erzeugt |
FileInputSource | Eingabe von einer .tex-Datei auf der Festplatte |
StringInputSource | Eingabe von einer Python-Zeichenkette |