LaTeX до XPS | Aspose.TeX для Java
Іншим цільовим форматом є XPS. Файл XPS фізично є ZIP-пакетом, який містить розбитий на сторінки вміст документа, а також метадані, необхідні для належного відображення певними засобами перегляду (наприклад, Windows XPS Viewer) і друку. Усі дані в пакеті організовано як файли в каталогах. Деякі з них містять такі ресурси, як зображення, шрифти та профілі ICC. Інші — це XML-файли в різних конкретних схемах. До останніх відносяться файли, що містять самі дані документа. Дані документа — це набір файлів — кожен файл містить дані для окремої сторінки документа. Такі файли складаються з одного елемента сторінки та дерева дочірніх елементів - Canvas, Path і Glyphs. Canvas — це груповий елемент, який може містити інші Canvases, Paths і Glyphs. Його призначення — контролювати вигляд усіх дочірніх елементів як групи. Елементи Path використовуються для визначення шляхів векторної графіки. А елементи Glyphs використовуються для визначення текстового вмісту. Усі три елементи мають властивості для визначення різних аспектів зовнішнього вигляду.
Існує бібліотека Aspose.Page, яка надає API для роботи з документами XPS, а також для їх перетворення у формати PDF і растрових зображень.
Як конвертувати LaTeX у XPS
Перетворення в XPS таке ж просте, як і перетворення у формати растрових зображень, за винятком того, що на додаток до SaveOptions ми маємо використовувати екземпляр класу XpsDevice.
Альтернативний спосіб запису основного вихідного файлу XPS
Є ще один конструктор класу XpsDevice, який дозволяє нам отримати результуючий файл XPS альтернативним способом.
1// Create the stream to write the XPS file to.
2final OutputStream xpsStream = new FileOutputStream(Utils.getOutputDirectory() + "any-name.xps");
3{
4 // Create conversion options for Object LaTeX format upon Object TeX engine extension.
5 ...
6 // Initialize the options for saving in XPS format.
7 options.setSaveOptions(new XpsSaveOptions()); // Default value. Arbitrary assignment.
8 // Run LaTeX to XPS conversion.
9 new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", new XpsDevice(xpsStream), options).run();
10} finally {
11 if (xpsStream != null)
12 xpsStream.close();
13}
Ефект такий самий, як ми отримуємо тут.
Ви також можете ознайомитися з безкоштовною [веб-програмою] для перетворення LaTeX на XPS (8), створеною на основі API Aspose.TeX для .NET. Тут – сторінка версії Java.