Introduktion

Aspose.TeX FOSS för Python presenterar en koncis engine API byggd kring tre koncept: en enhetlig ingångspunkt (TeXJob), pluggbara utdataenheter (PdfDevice, DviDevice, SvgDevice), och två typer av inmatningskällor (FileInputSource, StringInputSource). Denna artikel täcker varje komponent och visar hur de kombineras för att producera PDF-, DVI- och SVG-utdata från TeX markup.


TeXJob — Ingångspunkten

TeXJob är huvudklassen för att driva TeX engine. Den accepterar en inmatningskälla, en utdataenhet och valfria TeXOptions, och kör sedan typograferingspipeline när run() anropas. Returvärdet är utdata-bytena för enhetstyper som producerar ett enda utdata (PDF, DVI); för SVG-utdata hämtas sidor från enhetsobjektet efter att run() har slutförts.

TeXOptions konfigurerar engine-beteendet. Att konstruera den med standardvärden (TeXOptions()) använder de vanliga TeX-inställningarna som är lämpliga för de flesta dokument.


Utdataenheter

PdfDevice

PdfDevice skriver det typesatta dokumentet till en PDF-byte-ström. Det är standardutgångsenheten för att producera portabel, utskrivbar output:

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)

Efter run() innehåller de returnerade byte-strömmarna det kompletta PDF-dokumentet.

DviDevice

DviDevice producerar Device Independent (DVI)-formatutdata — det inhemska mellanformatet för TeX. DVI-utdata kan konsumeras av efterföljande verktyg för rendering eller vidare bearbetning:

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 renderar varje typesatt sida som en SVG-vektorgrafik. Efter att jobbet har körts returnerar get_all_pages() listan med SVG-byte-strängar per sida:

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)

Inmatningskällor

FileInputSource

FileInputSource läser TeX markup från en .tex fil på disken. Detta är standardinmatningsläget vid typsättning av befintliga dokument:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource

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

StringInputSource

StringInputSource accepterar TeX markup som en Python sträng. Detta inmatningsläge används för dynamisk markup-generering — att konstruera TeX programatiskt och typsätta det utan att skriva till disk:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

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

Kombinera komponenter

De tre komponenterna arbetar tillsammans för att bilda en komplett typsättningspipeline. Välj den inmatningskälla som matchar ditt dataflöde och den enhet som matchar ditt utdataformat:

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")

Tips och bästa praxis

  • Använd StringInputSource för korta eller dynamiskt genererade TeX fragment; använd FileInputSource när du arbetar med befintliga .tex-filer.
  • PdfDevice är det mest portabla utdataformatet; använd SvgDevice när du bäddar in TeX-utdata i webbsidor eller vektor-grafikarbetsflöden.
  • Återanvänd TeXOptions-instanser över jobb om du bearbetar flera dokument med samma inställningar.
  • Returvärdet för run() är bytes för PDF och DVI; för SVG hämtas byte från SvgDevice.get_all_pages() när jobbet är slutfört.

API Reference Sammanfattning

KlassRoll
TeXJobIngångspunkt; driver TeX typograferingspipeline
TeXOptionsMotorkonfiguration; standardinställningarna fungerar för de flesta dokument
PdfDeviceUtdatarenhet som producerar PDF-bytes
DviDeviceUtmatningsenhet som producerar DVI-bytes
SvgDeviceUtdatarenhet som producerar SVG per sida via get_all_pages()
FileInputSourceInmatning från en .tex-fil på disk
StringInputSourceInmatning från en Python-sträng

Se även

Komma igång

Relaterade resurser