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
StringInputSourcevoor korte of dynamisch gegenereerde TeX fragmenten; gebruikFileInputSourcebij het werken met bestaande.texbestanden. PdfDeviceis het meest draagbare uitvoerformaat; gebruikSvgDevicebij het insluiten van TeX uitvoer in webpagina’s of vector-grafiek-workflows.- Herbruik
TeXOptionsinstanties over taken als er meerdere documenten met dezelfde instellingen worden verwerkt. - De
run()retourwaarde isbytesvoor PDF en DVI; voor SVG worden de bytes opgehaald uitSvgDevice.get_all_pages()nadat de taak is voltooid.
API Reference Samenvatting
| Klasse | Rol |
|---|---|
TeXJob | Instappunt; stuurt de TeX opmaak-pijplijn |
TeXOptions | Engine-configuratie; standaardinstellingen werken voor de meeste documenten |
PdfDevice | Uitvoerapparaat dat PDF-bytes produceert |
DviDevice | Uitvoerapparaat dat DVI-bytes produceert |
SvgDevice | Uitvoerapparaat dat per-pagina SVG produceert via get_all_pages() |
FileInputSource | Invoer van een .tex bestand op schijf |
StringInputSource | Invoer van een Python tekenreeks |