Introduzione

Aspose.TeX FOSS per Python espone un motore API conciso costruito attorno a tre concetti: un punto di ingresso unificato (TeXJob), dispositivi di output plug-in (PdfDevice, DviDevice, SvgDevice) e due tipi di fonti di input (FileInputSource, StringInputSource). Questo articolo copre ciascun componente e mostra come combinano per produrre output PDF, DVI e SVG da markup TeX.


TeXJob — Il punto di ingresso

TeXJob è la classe principale per guidare il motore TeX. Accetta una fonte di input, un dispositivo di output e, opzionalmente, TeXOptions, quindi esegue la pipeline di composizione tipografica quando viene chiamato run(). Il valore restituito è i byte di output per i tipi di dispositivo che producono un singolo output (PDF, DVI); per l’output SVG, le pagine vengono recuperate dall’oggetto dispositivo dopo il completamento di run().

TeXOptions configura il comportamento del motore. Costruirlo con i valori predefiniti (TeXOptions()) utilizza le impostazioni standard TeX adatte alla maggior parte dei documenti.


Dispositivi di output

PdfDevice

PdfDevice scrive il documento impaginato in un flusso di byte PDF. È il dispositivo di output standard per produrre output portabile e stampabile:

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)

Dopo run(), i byte restituiti contengono il documento PDF completo.

DviDevice

DviDevice produce output in formato Device Independent (DVI) — il formato intermedio nativo di TeX. L’output DVI può essere consumato da strumenti a valle per il rendering o ulteriori elaborazioni:

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 rende ogni pagina impaginata come grafica vettoriale SVG. Dopo l’esecuzione del job, get_all_pages() restituisce l’elenco delle stringhe di byte SVG per pagina:

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)

Fonti di input

FileInputSource

FileInputSource legge il markup TeX da un file .tex su disco. Questa è la modalità di input standard durante la composizione di documenti esistenti:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource

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

StringInputSource

StringInputSource accetta il markup TeX come stringa Python. Questa modalità di input è usata per la generazione dinamica di markup — costruendo TeX in modo programmatico e composendolo senza scrivere su disco:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

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

Combinazione dei componenti

I tre componenti lavorano insieme per formare una pipeline di composizione completa. Seleziona la sorgente di input che corrisponde al tuo flusso di dati e il dispositivo che corrisponde al tuo formato di output:

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

Suggerimenti e migliori pratiche

  • Usa StringInputSource per frammenti brevi o generati dinamicamente di TeX; usa FileInputSource quando lavori con file .tex esistenti.
  • PdfDevice è il formato di output più portabile; usa SvgDevice quando incorpori l’output TeX in pagine web o flussi di lavoro di grafica vettoriale.
  • Riutilizza le istanze TeXOptions tra i job se si elaborano più documenti con le stesse impostazioni.
  • Il valore restituito da run() è bytes per PDF e DVI; per SVG, i byte vengono recuperati da SvgDevice.get_all_pages() al termine del job.

ClasseRuolo
TeXJobPunto di ingresso; gestisce la pipeline di composizione tipografica di TeX
TeXOptionsConfigurazione del motore; le impostazioni predefinite funzionano per la maggior parte dei documenti
PdfDeviceDispositivo di output che produce byte PDF
DviDeviceDispositivo di output che produce byte DVI
SvgDeviceDispositivo di output che produce SVG per pagina tramite get_all_pages()
FileInputSourceInput da un file .tex sul disco
StringInputSourceInput da una stringa Python

Vedi anche

Guida introduttiva

Risorse correlate