Introduction
Aspose.TeX FOSS for Python exposes a concise engine API built around three concepts: единый пункт въезда (TeXJob), встраиваемые выходное устройство (PdfDevice, DviDevice, SvgDevice), и двух типов источников ввода (FileInputSource, StringInputSource). В этой статье рассматривается каждый компонент и показывается, как они объединяются для получения PDF, DVI, и SVG-вывод из TeX.
TeXJob Входный пункт
TeXJob является основным классом для управления двигателем TeX. Он принимает источник ввода, и выходное устройство и дополнительное оборудование, необязательное. TeXOptions, затем запускает трубопровод для настройки типа, когда: run() Возвратное значение - это выходные байты для типов устройств, которые производят один выход (PDF, DVI); для выхода SVG страницы извлекаются из объекта устройства. после run() завершает.
TeXOptions Конфигурирует поведение двигателя.TeXOptions()) использует стандартные настройки TeX, подходящие для большинства документов.
Выходное устройство
PdfDevice (устройство)
PdfDevice пишет набор документов в потоке PDF байтов. Это стандартный выходное устройство для производства переносного, распечатываемого выхода:
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)
After run(), возвращенные байты содержат полный PDF-документ.
Диви-устройство
DviDevice производит выход в формате Device Independent (DVI) нативный промежуточный формат TeX. Выход DVI может быть использован инструментами для рендеринга или дальнейшая обработка:
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 После выполнения работы, мы можем сделать это в виде SVG-векторной графики., get_all_pages() возвращает список строк байтов SVG на страницу:
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)
Источники ввода
FileInputSource
FileInputSource читает TeX отметки из .tex Это файл на диске. стандартный режим ввода при настройке существующих документов:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, FileInputSource
pdf_bytes = TeXJob(FileInputSource("document.tex"), PdfDevice(), options=TeXOptions()).run()
StringInputSource
StringInputSource принимает разметку TeX как строку Python. Этот режим ввода является используется для создания динамических разметки программируемой конструкции TeX и настройка без записи на диск:
from aspose_tex import TeXJob, TeXOptions, PdfDevice, StringInputSource
tex = "Hello, world!"
pdf_bytes = TeXJob(StringInputSource(tex), PdfDevice(), options=TeXOptions()).run()
Объединение компонентов
Три компонента работают вместе, чтобы сформировать полную систему типообразования. Выберите источник ввода, который соответствует потоку данных и устройство, которое соответствуёт формату вывоза:
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")
Советы и лучшие практики
- Использование:
StringInputSourceдля коротких или динамически генерируемых фрагментов TeX; использование:FileInputSourceпри работе с существующими.texФайлы. PdfDeviceявляется наиболее переносным форматом вывода; использованиеSvgDeviceпри встраивании Вывод TeX на веб-страницах или в потоках работы векторной графики.- Reuse
TeXOptionsпри обработке нескольких документов с помощью в тех же параметрах. - В связи с этим
run()возвращаемая величина:bytesдля PDF и DVI; для SVG байты: полученные из:SvgDevice.get_all_pages()после того, как работа будет завершена.
Справочное резюме API
| Class | Role |
|---|---|
TeXJob | Входная точка; управляет трубопроводом типообразования TeX. |
TeXOptions | Конфигурация двигателя; по умолчанию работает для большинства документов |
PdfDevice | Выходное устройство, производящее байты PDF. |
DviDevice | Выходное устройство, производящее байты DVI. |
SvgDevice | Выходное устройство, производящее SVG на страницу через: get_all_pages() |
FileInputSource | Вход от .tex файл на диске |
StringInputSource | Ввод из строки Python |