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 за кілька кроків:

  1. Створіть екземпляр TexDocument.
  2. Завантажте вихідний файл .tex за допомогою TexDocument.Load.
  3. (Необов’язково) Налаштуйте XpsSaveOptions, такі як параметри стиснення.
  4. Збережіть документ у 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. Кроки такі:

  1. Створіть TexDocument та завантажте вихідний код LaTeX.
  2. Створіть MemoryStream для зберігання виводу XPS.
  3. Створіть екземпляр XpsDevice з потоком.
  4. Збережіть документ на пристрої, після чого ви зможете використовувати потік (наприклад, надіслати його через мережу або зберегти в базі даних).

Цей підхід корисний, коли вам потрібні дані 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.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.