Wprowadzenie

Aspose.TeX FOSS dla Python udostępnia zwięzły silnik API zbudowany wokół trzech koncepcji: jednolitego punktu wejścia (TeXJob), wtyczkowych urządzeń wyjściowych (PdfDevice, DviDevice, SvgDevice) oraz dwóch typów źródeł wejściowych (FileInputSource, StringInputSource). Ten artykuł opisuje każdy komponent i pokazuje, jak łączą się, aby generować wyjście PDF, DVI i SVG z markup TeX.


TeXJob — Punkt wejścia

TeXJob jest główną klasą sterującą silnikiem TeX. Przyjmuje źródło wejściowe, urządzenie wyjściowe oraz opcjonalny TeXOptions, a następnie uruchamia potok składu, gdy run() jest wywołane. Zwracana wartość to bajty wyjściowe dla typów urządzeń, które generują pojedynczy wynik (PDF, DVI); w przypadku wyjścia SVG strony są pobierane z obiektu urządzenia po zakończeniu run().

TeXOptions konfiguruje zachowanie silnika. Tworzenie go z domyślnymi ustawieniami (TeXOptions()) używa standardowych ustawień TeX odpowiednich dla większości dokumentów.


Urządzenia wyjściowe

PdfDevice

PdfDevice zapisuje składany dokument do strumienia bajtów PDF. Jest to standardowe urządzenie wyjściowe do tworzenia przenośnego, drukowalnego wyjścia:

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() zwrócone bajty zawierają pełny dokument PDF.

DviDevice

DviDevice generuje wyjście w formacie Device Independent (DVI) — natywny format pośredni TeX. Wyjście DVI może być wykorzystywane przez downstream narzędzia do renderowania lub dalszego przetwarzania:

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 renderuje każdą składaną stronę jako wektorowy grafik SVG. Po zakończeniu zadania get_all_pages() zwraca listę bajtowych łańcuchów SVG dla poszczególnych stron:

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)

Źródła wejściowe

FileInputSource

FileInputSource odczytuje TeX markup z pliku .tex na dysku. To jest standardowy tryb wejścia przy składaniu istniejących dokumentów:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource

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

StringInputSource

StringInputSource akceptuje TeX markup jako ciąg Python. Ten tryb wejścia jest używany do dynamicznego generowania markup — programowego konstruowania TeX i składania go bez zapisywania na dysk:

from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource

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

Łączenie komponentów

Trzy komponenty współpracują, tworząc kompletny potok składania. Wybierz źródło wejścia odpowiadające Twojemu przepływowi danych oraz urządzenie pasujące do formatu wyjściowego:

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

Wskazówki i najlepsze praktyki

  • Używaj StringInputSource dla krótkich lub dynamicznie generowanych fragmentów TeX; używaj FileInputSource, gdy pracujesz z istniejącymi plikami .tex.
  • PdfDevice jest najbardziej przenośnym formatem wyjściowym; użyj SvgDevice, gdy osadzasz wyjście TeX w stronach internetowych lub w przepływach pracy grafiki wektorowej.
  • Ponownie użyj instancji TeXOptions w różnych zadaniach, jeśli przetwarzasz wiele dokumentów z tymi samymi ustawieniami.
  • Wartość zwracana przez run() to bytes dla PDF i DVI; dla SVG bajty są pobierane z SvgDevice.get_all_pages() po zakończeniu zadania.

API Reference Podsumowanie

KlasaRola
TeXJobPunkt wejścia; napędza pipeline składania TeX
TeXOptionsKonfiguracja silnika; domyślne ustawienia działają dla większości dokumentów
PdfDeviceUrządzenie wyjściowe generujące bajty PDF
DviDeviceUrządzenie wyjściowe generujące bajty DVI
SvgDeviceUrządzenie wyjściowe generujące SVG dla każdej strony za pomocą get_all_pages()
FileInputSourceWejście z pliku .tex na dysku
StringInputSourceWejście z ciągu Python

Zobacz także

Rozpoczęcie

Powiązane zasoby