LaTeX до XPS | .NET
Іншим цільовим форматом є 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 таке ж просте, як і конвертація у формати растрових зображень, за винятком того, що для SaveOptions ПОВИННО бути встановлено екземпляр класу XpsSaveOptions (за замовчуванням або явно) , і пристрій ПОВИНЕН бути змінений на екземпляр класу XpsDevice.
Приклад найпростішої конвертації перетворення
Наведений нижче приклад показує, як конвертувати файл LaTeX у XPS за кілька кроків:
- Створіть екземпляр TexDocument.
- Завантажте вихідний файл .texза допомогоюTexDocument.Load.
- (Необов’язково) Налаштуйте XpsSaveOptions, такі як параметри стиснення.
- Збережіть документ у XPS, викликавши document.SaveзXpsDevice.
Цей код демонструє найпряміший спосіб створення файлу XPS з LaTeX.
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 альтернативним способом.
Приклад альтернативної конвертації
Цей фрагмент демонструє використання конструктора XpsDevice, який приймає Stream. Кроки такі:
- Створіть TexDocumentта завантажте вихідний код LaTeX.
- Створіть MemoryStreamдля зберігання виводу 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 для .NET API.
