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// Convert LaTeX to XPS - simplest approach
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Initialize the options for saving in XPS format.
10options.SaveOptions = new XpsSaveOptions();
11
12// Run LaTeX to XPS conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new XpsDevice(), options).Run();Альтернативний спосіб запису основного вихідного файлу XPS
Є ще один конструктор класу XpsDevice, який дозволяє нам отримати кінцевий файл XPS альтернативним способом.
Приклад альтернативної конвертації
Цей фрагмент демонструє використання конструктора XpsDevice, який приймає Stream. Кроки такі:
- Створіть
TexDocumentта завантажте вихідний код LaTeX. - Створіть
MemoryStreamдля зберігання виводу XPS. - Створіть екземпляр
XpsDeviceз потоком. - Збережіть документ на пристрої, після чого ви зможете використовувати потік (наприклад, надіслати його через мережу або зберегти в базі даних).
Цей підхід корисний, коли вам потрібні дані XPS у пам’яті, а не у вигляді файлу на диску.
1// Convert LaTeX to XPS - alternative approach with stream
2
3// Create the stream to write the XPS file to.
4using (Stream xpsStream = File.Open(Path.Combine(OutputDir, "hello-world-alt.xps"), FileMode.Create))
5{
6 // Create conversion options for Object LaTeX format upon Object TeX engine extension.
7 TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
8
9 // Specify a file system working directory for the output.
10 options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
11
12 // Initialize the options for saving in XPS format.
13 options.SaveOptions = new XpsSaveOptions(); // Default value. Arbitrary assignment.
14
15 // Run LaTeX to XPS conversion.
16 new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new XpsDevice(xpsStream), options).Run();
17}Ефект такий самий, як ми отримуємо тут.
Ви також можете ознайомитися з безкоштовною веб-програмою для перетворення LaTeX на XPS, створеною на основі Aspose.TeX для .NET API.