Inleiding

Aspose.TeX FOSS voor Python onthult een beknopte engine API gebouwd rond drie concepten: een verenigd toegangspunt (TeXJob), inplugbare uitvoerapparaten (PdfDevice, DviDevice, SvgDevice), en twee invoerbron-typen (FileInputSource, StringInputSource). Dit artikel behandelt elk component en laat zien hoe ze combineren om PDF-, DVI- en SVG-uitvoer te produceren vanuit TeX markup.


TeXJob — Het toegangspunt

TeXJob is de hoofdklasse voor het aansturen van de TeX engine. Het accepteert een invoerbron, een uitvoerapparaat en optionele TeXOptions, en voert vervolgens de typesetting-pipeline uit wanneer run() wordt aangeroepen. De retourwaarde is de uitvoerbytes voor apparaattype die een enkele output produceren (PDF, DVI); voor SVG-output worden pagina’s opgehaald uit het apparaatobject nadat run() is voltooid.

TeXOptions configureert het gedrag van de engine. Het construeren ervan met de standaardwaarden (TeXOptions()) gebruikt de standaard TeX instellingen die geschikt zijn voor de meeste documenten.


Uitvoerapparaten

PdfDevice

PdfDevice schrijft het getypte document naar een PDF-byte-stroom. Het is het standaard uitvoerapparaat voor het produceren van draagbare, afdrukbare 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)

Na run() bevatten de geretourneerde bytes het volledige PDF-document.

DviDevice

DviDevice produceert Device Independent (DVI)-formaatoutput — het native tussenformaat van TeX. DVI-output kan worden geconsumeerd door downstream-tools voor weergave of verdere verwerking:

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 elke getypte pagina als een SVG-vectorafbeelding. Nadat de taak is uitgevoerd, retourneert get_all_pages() de lijst met per-pagina SVG-byte-strings:

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)

Invoerbronnen

FileInputSource

FileInputSource leest TeX markup van een .tex bestand op schijf. Dit is de standaard invoermodus bij het zetten van bestaande documenten:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource

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

StringInputSource

StringInputSource accepteert TeX markup als een Python string. Deze invoermodus wordt gebruikt voor dynamische markupgeneratie — het programmatisch construeren van TeX en het zetten ervan zonder naar schijf te schrijven:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

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

Componenten combineren

De drie componenten werken samen om een volledige zet-pijplijn te vormen. Selecteer de invoerbron die overeenkomt met uw datastroom en het apparaat dat overeenkomt met uw uitvoerformaat:

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 en beste praktijken

  • Gebruik StringInputSource voor korte of dynamisch gegenereerde TeX fragmenten; gebruik FileInputSource bij het werken met bestaande .tex bestanden.
  • PdfDevice is het meest draagbare uitvoerformaat; gebruik SvgDevice bij het insluiten van TeX uitvoer in webpagina’s of vector-grafiek-workflows.
  • Herbruik TeXOptions instanties over taken als er meerdere documenten met dezelfde instellingen worden verwerkt.
  • De run() retourwaarde is bytes voor PDF en DVI; voor SVG worden de bytes opgehaald uit SvgDevice.get_all_pages() nadat de taak is voltooid.

API Reference Samenvatting

KlasseRol
TeXJobInstappunt; stuurt de TeX opmaak-pijplijn
TeXOptionsEngine-configuratie; standaardinstellingen werken voor de meeste documenten
PdfDeviceUitvoerapparaat dat PDF-bytes produceert
DviDeviceUitvoerapparaat dat DVI-bytes produceert
SvgDeviceUitvoerapparaat dat per-pagina SVG produceert via get_all_pages()
FileInputSourceInvoer van een .tex bestand op schijf
StringInputSourceInvoer van een Python tekenreeks

Zie ook

Aan de slag

Gerelateerde bronnen