Ú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 StringInputSource pro krátké nebo dynamicky generované fragmenty TeX; použijte FileInputSource, když pracujete s existujícími soubory .tex.
  • PdfDevice je nejpřenositelnější výstupní formát; použijte SvgDevice, když vkládáte výstup TeX do webových stránek nebo pracovních postupů vektorové grafiky.
  • Znovu použijte instance TeXOptions napříč úlohami, pokud zpracováváte více dokumentů se stejným nastavením.
  • Návratová hodnota run() je bytes pro PDF a DVI; pro SVG jsou bajty načteny z SvgDevice.get_all_pages() po dokončení úlohy.

API Reference Souhrn

TřídaRole
TeXJobVstupní bod; řídí pipeline sazby TeX
TeXOptionsKonfigurace engine; výchozí nastavení fungují pro většinu dokumentů
PdfDeviceVýstupní zařízení produkující PDF bajty
DviDeviceVýstupní zařízení produkující DVI bajty
SvgDeviceVýstupní zařízení produkující SVG po stránce pomocí get_all_pages()
FileInputSourceVstup ze souboru .tex na disku
StringInputSourceVstup z Python řetězce

Viz také:

Začínáme

Související zdroje