LaTeX до XPS | Aspose.TeX для Python
Іншим цільовим форматом є XPS. Файл XPS — це, по суті, пакет ZIP, який містить розбитий на сторінки вміст документа, а також необхідні метадані для належного відображення певними засобами перегляду (наприклад, Windows XPS Viewer) і друку. Пакет складається з різних файлів, деякі з яких двійкові та містять такі ресурси, як зображення, шрифти та профілі ICC. Інші — це файли XML у певних схемах, включаючи файли, які містять самі дані документа. Дані документа поділено на кілька файлів, кожен з яких представляє окрему сторінку документа. Ці файли складаються з одного елемента сторінки та дерева дочірніх елементів, включаючи Canvas, Path і Glyphs. Елемент Canvas — це груповий елемент, який може містити інші Canvases, 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 для .NET API.