Introducere

Aspose.TeX FOSS for Python exposes a concise engine API built around three concepts: un punct de intrare unificat (TeXJob), dispozitive de ieşire cu conexiune (PdfDevice, DviDevice, SvgDevice), și două tipuri de surse de intrare (FileInputSource, StringInputSource). Acest articol acoperă fiecare component și arată cum se combină pentru a produce PDF, DVI, şi ieşirea SVG din marcajul TeX.


TeXJob Punctul de intrare

TeXJob este clasa principală pentru a conduce motorul TeX. Acceptă o sursă de intrare, un sistem de comandă și un dispozitiv de control al motoarelor. dispozitiv de ieșire și opțional TeXOptions, apoi rulează pipeline-ul de tipare atunci când run() este numit. Valoarea returnată este bați de ieșire pentru tipurile de dispozitive care produc o singură ieșire (PDF, DVI); pentru ieşirea SVG, paginile sunt recuperate din obiectul dispozitivului. după ce: run() completă.

TeXOptions Configurează comportamentul motorului. Construirea acestuia cu standard (TeXOptions()) folosește setările standard TeX potrivite pentru majoritatea documentelor.


Dispozitive de ieșire

PdfDevice

PdfDevice Scrie documentul tip set într-un flux de bați PDF. Este standard dispozitiv de ieșire pentru producerea unei ieşiri portabile, imprimabilă:

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)

După … run(), baitii returnați conțin documentul PDF complet.

DviDevice

DviDevice produce format de ieșire Device Independent (DVI) intermediarul nativ Formatul de text DVI poate fi consumat de instrumentele din aval pentru redare sau prelucrarea ulterioară:

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 Rendează fiecare pagină tipărită ca o grafică vectorială SVG. După executarea sarcinii, get_all_pages() returnă lista de șiruri SVG pe pagină:

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)

Surse de intrare

FileInputSource

FileInputSource citește marcare TeX de la un .tex Acesta este fişierul de pe disc. modul standard de introducere în cazul tipării documentelor existente:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource

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

StringInputSource

StringInputSource Acceptă marcajul TeX ca o șir Python. Acest mod de intrare este utilizat pentru generarea de marcare dinamică construirea TeX programatic și Tiparea fără a scrie pe disc:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

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

Combinarea componentelor

Cele trei componente lucrează împreună pentru a forma o conduită completă de setare tip. Selectați sursa de intrare care se potrivește fluxului dvs. de date și dispozitivul care corespunde formatului dumneavoastră de ieșire:

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

Sfaturi şi cele mai bune practici

  • Utilizare: StringInputSource pentru fragmente scurte sau generate dinamic de TeX; utilizarea: FileInputSource în cazul lucrării cu un sistem existent de .tex Dosare.
  • PdfDevice este formatul de ieșire cel mai portabil; utilizarea SvgDevice în momentul introducerii Export TeX în paginile web sau fluxurile de lucru cu grafică vectorială.
  • Reutilizare TeXOptions În cazul în care procesarea mai multor documente cu un alt tip de document este necesară, se poate aplica o metodă diferită. aceleaşi setări.
  • În ceea ce priveşte run() valoarea returnată este: bytes pentru PDF și DVI; pentru SVG, baitii sunt: recuperate din: SvgDevice.get_all_pages() după ce se termină treaba.

Rezultatele de la data aplicării.

Clasa de învăţământRolul său
TeXJobPunct de intrare; conduce conducerea de tipare TeX
TeXOptionsConfigurația motorului; funcționează în mod implicit pentru majoritatea documentelor
PdfDeviceDispozitiv de ieșire care produce bați PDF
DviDeviceDispozitiv de ieșire care produce bați DVI
SvgDeviceDispozitiv de ieșire care produce SVG pe pagină prin intermediul: get_all_pages()
FileInputSourceIntrare de la un .tex Fişier pe disc
StringInputSourceIntrare dintr-un șir Python

Vezi și:

Cum să începem?

Resurse conexe