Úvod
Aspose.TeX FOSS pro Python představuje stručný engine API postavený kolem tří konceptů: jednotný vstupní bod (TeXJob), připojitelné výstupní zařízení (PdfDevice, DviDevice, SvgDevice) a dva typy vstupních zdrojů (FileInputSource, StringInputSource). Tento článek popisuje každou komponentu a ukazuje, jak se kombinují k vytvoření výstupu PDF, DVI a SVG z TeX značkování.
TeXJob — Vstupní bod
TeXJob je hlavní třída pro řízení engine TeX. Přijímá vstupní zdroj, výstupní zařízení a volitelný TeXOptions, pak spouští pipeline sazby, když je zavoláno run(). Návratová hodnota jsou výstupní bajty pro typy zařízení, které produkují jediný výstup (PDF, DVI); pro SVG výstup jsou stránky získány z objektu zařízení po dokončení run().
TeXOptions konfiguruje chování engine. Vytvoření s výchozími hodnotami (TeXOptions()) používá standardní nastavení TeX, vhodné pro většinu dokumentů.
Výstupní zařízení
PdfDevice
PdfDevice zapisuje sazbu dokumentu do PDF bytového proudu. Je to standardní výstupní zařízení pro tvorbu přenositelného, tisknutelného výstupu:
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)
Po run() obsahují vrácené bajty kompletní PDF dokument.
DviDevice
DviDevice vytváří výstup ve formátu Device Independent (DVI) — nativní meziformát TeX. Výstup DVI může být spotřebován downstream nástroji pro renderování nebo další zpracování:
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 vykresluje každou sazbu stránky jako vektorovou grafiku SVG. Po dokončení úlohy get_all_pages() vrací seznam SVG bytových řetězců po stránkách:
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)
Vstupní zdroje
FileInputSource
FileInputSource čte TeX značkování z .tex souboru na disku. Toto je standardní vstupní režim při sazbě existujících dokumentů:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource
pdf_bytes = TeXJob(FileInputSource("document.tex"), PdfDevice(), options=TeXOptions()).run()
StringInputSource
StringInputSource přijímá TeX značkování jako řetězec Python. Tento vstupní režim se používá pro dynamické generování značkování — programově vytváření TeX a sazbu bez zápisu na disk:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource
tex = "Hello, world!"
pdf_bytes = TeXJob(StringInputSource(tex), PdfDevice(), options=TeXOptions()).run()
Kombinování komponent
Tři komponenty spolupracují a tvoří kompletní sazební řetězec. Vyberte vstupní zdroj, který odpovídá vašemu toku dat, a zařízení, které odpovídá vašemu výstupnímu formátu:
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")
Tipy a osvědčené postupy
- Použijte
StringInputSourcepro krátké nebo dynamicky generované fragmenty TeX; použijteFileInputSource, když pracujete s existujícími soubory.tex. PdfDeviceje nejpřenositelnější výstupní formát; použijteSvgDevice, když vkládáte výstup TeX do webových stránek nebo pracovních postupů vektorové grafiky.- Znovu použijte instance
TeXOptionsnapříč úlohami, pokud zpracováváte více dokumentů se stejným nastavením. - Návratová hodnota
run()jebytespro PDF a DVI; pro SVG jsou bajty načteny zSvgDevice.get_all_pages()po dokončení úlohy.
API Reference Souhrn
| Třída | Role |
|---|---|
TeXJob | Vstupní bod; řídí pipeline sazby TeX |
TeXOptions | Konfigurace engine; výchozí nastavení fungují pro většinu dokumentů |
PdfDevice | Výstupní zařízení produkující PDF bajty |
DviDevice | Výstupní zařízení produkující DVI bajty |
SvgDevice | Výstupní zařízení produkující SVG po stránce pomocí get_all_pages() |
FileInputSource | Vstup ze souboru .tex na disku |
StringInputSource | Vstup z Python řetězce |