Látex a XPS | Aspose.TeX para Java
Otro formato de destino es XPS. Un archivo XPS es físicamente un paquete ZIP que contiene contenido paginado de un documento, así como los metadatos necesarios para que visores específicos (como Windows XPS Viewer) lo muestren correctamente y lo impriman. Todos los datos de un paquete están organizados como archivos en directorios. Algunos de ellos contienen recursos como imágenes, fuentes y perfiles ICC. Otros son archivos XML en varios esquemas específicos. Estos últimos incluyen archivos que contienen los datos del documento en sí. Los datos del documento son un conjunto de archivos: cada archivo contiene datos para una página individual del documento. Dichos archivos constan de un único elemento de página y un árbol de elementos secundarios: Canvas, Path y Glyphs. Canvas es un elemento de agrupación que puede contener otros Canvases, Paths y Glyphs. Su propósito es controlar la apariencia de todos los elementos secundarios como grupo. Los elementos Path se utilizan para definir rutas de gráficos vectoriales. Y los elementos Glifos se utilizan para definir el contenido del texto. Los tres elementos tienen propiedades para definir varios aspectos de la apariencia.
Existe la biblioteca Aspose.Page que proporciona una API para manipular documentos XPS, así como convertirlos a formatos PDF y de imágenes rasterizadas.
Cómo convertir LaTeX a XPS
La conversión a XPS es tan simple como la conversión a formatos de imagen rasterizada, excepto que además de SaveOptions, tenemos que usar una instancia de la clase XpsDevice.
1// Create conversion options instance.
2...
3// Initialize the options for saving in XPS format.
4options.setSaveOptions(new XpsSaveOptions()); // Default value. Arbitrary assignment.
5// Run LaTeX to XPS conversion.
6new TeXJob(Utils.getInputDirectory() + "sample.ltx", new XpsDevice(), options).run();
Una forma alternativa de escribir el archivo XPS de salida principal
Existe otro constructor de la clase XpsDevice, que nos permite obtener el archivo XPS resultante de una forma alternativa.
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}
El efecto es el mismo que obtenemos aquí.
También puede consultar la aplicación web gratuita de conversión de LaTeX a XPS creada en base a la API Aspose.TeX para .NET. Aquí es la página de la versión de Java.