LaTeX в XPS | Aspose.TeX для Python
Другой целевой формат — XPS. Файл XPS по сути представляет собой ZIP-пакет, содержащий содержимое документа с разбивкой на страницы, а также необходимые метаданные для правильного отображения конкретными программами просмотра (например, Windows XPS Viewer) и печати. Пакет состоит из различных файлов, некоторые из которых являются двоичными и содержат такие ресурсы, как изображения, шрифты и профили ICC. Другие представляют собой XML-файлы в определенных схемах, включая файлы, содержащие сами данные документа. Данные документа разделены на несколько файлов, каждый из которых представляет отдельную страницу документа. Эти файлы состоят из одного элемента страницы и дерева дочерних элементов, включая Canvas, Path и Glyphs. Элемент Canvas — это элемент группировки, который может содержать другие Canvas, Paths и Glyphs и управляет внешним видом всех дочерних элементов как группы. Элементы Path используются для определения путей векторной графики, а элементы Glyphs используются для определения текстового содержимого. Все три элемента обладают свойствами, определяющими различные аспекты внешнего вида.
Существует библиотека Aspose.Page, которая предлагает API для работы с документами XPS, а также позволяет конвертировать эти документы в форматы PDF и растровых изображений.
Преобразование LaTeX в XPS
Процесс преобразования LaTeX в XPS столь же прост, как и преобразование в форматы растровых изображений. Однако для этого необходимо установить save_options на экземпляр класса XpsSaveOptions (по умолчанию или явно) и изменить устройство на экземпляр класса XpsDevice.
1# Create conversion options instance.
2...
3# Initialize the options for saving in XPS format.
4so = XpsSaveOptions()
5options.save_options = so # Default value. Arbitrary assignment.
6# Run LaTeX to XPS conversion.
7TeXJob(path.join(Util.input_directory, "sample.ltx"), XpsDevice(), options).run()
Альтернативный способ записи основного выходного файла XPS.
Для класса XpsDevice доступен альтернативный конструктор, который позволяет получить результирующий файл XPS другим способом.
1# Create the stream to write the XPS file to.
2with open(path.join(Util.output_directory, "any-name.xps"), "wb") as xps_stream:
3 # Create conversion options for Object LaTeX format upon Object TeX engine extension.
4 options = TeXOptions.console_app_options(TeXConfig.object_latex)
5 # Specify a file system working directory for the output.
6 options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
7 # Initialize the options for saving in XPS format.
8 options.save_options = XpsSaveOptions() # Default value. Arbitrary assignment.
9 # Run LaTeX to XPS conversion.
10 TeXJob(path.join(Util.input_directory, "hello-world.ltx"), XpsDevice(xps_stream), options).run()
Эффект тот же, что мы получаем здесь.
Вы также можете изучить бесплатное веб-приложение для преобразования LaTeX в XPS, разработанное с использованием Aspose.TeX for .NET API.