Pendahuluan
Aspose.TeX FOSS untuk Python memperkenalkan mesin API yang ringkas dibangun di sekitar tiga konsep: titik masuk terpadu (TeXJob), perangkat keluaran yang dapat dipasang (PdfDevice, DviDevice, SvgDevice), dan dua jenis sumber input (FileInputSource, StringInputSource). Artikel ini membahas setiap komponen dan menunjukkan cara mereka digabungkan untuk menghasilkan output PDF, DVI, dan SVG dari markup TeX.
TeXJob — Titik Masuk
TeXJob adalah kelas utama untuk mengendalikan mesin TeX. Ia menerima sumber input, perangkat keluaran, dan TeXOptions opsional, kemudian menjalankan pipeline penataan huruf ketika run() dipanggil. Nilai kembaliannya adalah byte output untuk tipe perangkat yang menghasilkan satu output (PDF, DVI); untuk output SVG, halaman diambil dari objek perangkat setelah run() selesai.
TeXOptions mengonfigurasi perilaku mesin. Membuatnya dengan nilai baku (TeXOptions()) menggunakan pengaturan TeX standar yang cocok untuk kebanyakan dokumen.
Perangkat Keluaran
PdfDevice
PdfDevice menulis dokumen yang telah diatur tipenya ke aliran byte PDF. Ini adalah perangkat output standar untuk menghasilkan output yang dapat dipindahkan dan dapat dicetak:
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)
Setelah run(), byte yang dikembalikan berisi dokumen PDF lengkap.
DviDevice
DviDevice menghasilkan output format Device Independent (DVI) — format perantara asli dari TeX. Output DVI dapat digunakan oleh alat-alat hilir untuk rendering atau pemrosesan lebih lanjut:
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 merender setiap halaman yang telah diatur tipenya sebagai grafik vektor SVG. Setelah pekerjaan selesai, get_all_pages() mengembalikan daftar string byte SVG per halaman:
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)
Sumber Input
FileInputSource
FileInputSource membaca markup TeX dari file .tex di disk. Ini adalah mode input standar saat melakukan typesetting dokumen yang ada:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource
pdf_bytes = TeXJob(FileInputSource("document.tex"), PdfDevice(), options=TeXOptions()).run()
StringInputSource
StringInputSource menerima markup TeX sebagai string Python. Mode input ini digunakan untuk generasi markup dinamis — membangun TeX secara programatik dan melakukan typesetting tanpa menulis ke disk:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource
tex = "Hello, world!"
pdf_bytes = TeXJob(StringInputSource(tex), PdfDevice(), options=TeXOptions()).run()
Menggabungkan Komponen
Ketiga komponen bekerja bersama untuk membentuk pipeline typesetting yang lengkap. Pilih sumber input yang sesuai dengan alur data Anda dan perangkat yang sesuai dengan format output Anda:
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")
Tip dan Praktik Terbaik
- Gunakan
StringInputSourceuntuk fragmen TeX yang pendek atau dihasilkan secara dinamis; gunakanFileInputSourcesaat bekerja dengan file.texyang ada. PdfDeviceadalah format output paling portabel; gunakanSvgDevicesaat menyematkan output TeX dalam halaman web atau alur kerja grafis vektor.- Gunakan kembali instance
TeXOptionsdi seluruh pekerjaan jika memproses beberapa dokumen dengan pengaturan yang sama. - Nilai kembali
run()adalahbytesuntuk PDF dan DVI; untuk SVG, byte diambil dariSvgDevice.get_all_pages()setelah pekerjaan selesai.
API Reference Ringkasan
| Kelas | Peran |
|---|---|
TeXJob | Titik masuk; menggerakkan alur penataan TeX |
TeXOptions | Konfigurasi mesin; nilai default bekerja untuk kebanyakan dokumen |
PdfDevice | Perangkat keluaran yang menghasilkan byte PDF |
DviDevice | Perangkat output yang menghasilkan byte DVI |
SvgDevice | Perangkat output yang menghasilkan SVG per halaman melalui get_all_pages() |
FileInputSource | Masukan dari file .tex di disk |
StringInputSource | Masukan dari string Python |