LaTeX в XPS | Aspose.TeX для .NET
Другой целевой формат — 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 так же просто, как и преобразование в форматы растровых изображений, за исключением того, что для SaveOptions ДОЛЖЕН быть установлен экземпляр класса XpsSaveOptions (по умолчанию или явно). , и устройство ДОЛЖНО быть изменено на экземпляр класса XpsDevice.
1// Create conversion options instance.
2...
3// Initialize the options for saving in XPS format.
4options.SaveOptions = new XpsSaveOptions(); // Default value. Arbitrary assignment.
5// Run LaTeX to XPS conversion.
6new TeXJob(Path.Combine(RunExamples.InputDirectory, "sample.ltx"), new XpsDevice(), options).Run();
Альтернативный способ записи основного выходного файла XPS.
Есть еще один конструктор класса XpsDevice, который позволяет нам получить результирующий XPS-файл альтернативным способом.
1// Create the stream to write the XPS file to.
2using (Stream xpsStream = File.Open(Path.Combine(RunExamples.OutputDirectory, "any-name.xps"), FileMode.Create))
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.SaveOptions = new XpsSaveOptions(); // Default value. Arbitrary assignment.
8 // Run LaTeX to XPS conversion.
9 new TeXJob(Path.Combine(RunExamples.InputDirectory, "hello-world.ltx"), new XpsDevice(xpsStream), options).Run();
10}
Эффект тот же, что мы получаем здесь.
Вы также можете ознакомиться с бесплатным преобразованием LaTeX в XPS веб-приложение, созданным на основе Aspose.TeX for .NET API.