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
StringInputSourcedla krótkich lub dynamicznie generowanych fragmentów TeX; używajFileInputSource, gdy pracujesz z istniejącymi plikami.tex. PdfDevicejest najbardziej przenośnym formatem wyjściowym; użyjSvgDevice, gdy osadzasz wyjście TeX w stronach internetowych lub w przepływach pracy grafiki wektorowej.- Ponownie użyj instancji
TeXOptionsw różnych zadaniach, jeśli przetwarzasz wiele dokumentów z tymi samymi ustawieniami. - Wartość zwracana przez
run()tobytesdla PDF i DVI; dla SVG bajty są pobierane zSvgDevice.get_all_pages()po zakończeniu zadania.
API Reference Podsumowanie
| Klasa | Rola |
|---|---|
TeXJob | Punkt wejścia; napędza pipeline składania TeX |
TeXOptions | Konfiguracja silnika; domyślne ustawienia działają dla większości dokumentów |
PdfDevice | Urządzenie wyjściowe generujące bajty PDF |
DviDevice | Urządzenie wyjściowe generujące bajty DVI |
SvgDevice | Urządzenie wyjściowe generujące SVG dla każdej strony za pomocą get_all_pages() |
FileInputSource | Wejście z pliku .tex na dysku |
StringInputSource | Wejście z ciągu Python |