Látex a XPS | .NET
Otro formato de destino es XPS. Un archivo XPS es físicamente un paquete ZIP que contiene el contenido paginado de un documento, junto con 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 representados por archivos. Algunos de ellos son binarios y 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 constan de 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. Sirve para 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 textual. 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 de LaTeX a XPS es tan simple como la conversión a formatos de imagen rasterizada, excepto que SaveOptions DEBE establecerse en una instancia de clase XpsSaveOptions (de forma predeterminada o explícitamente) y el dispositivo DEBE cambiarse a una instancia de la clase XpsDevice.
Ejemplo de conversión más sencillo
El siguiente ejemplo muestra cómo convertir un archivo LaTeX a XPS en pocos pasos:
- Cree una instancia TexDocument.
- Cargue el archivo fuente .texmedianteTexDocument.Load.
- (Opcional) Configure XpsSaveOptions, como la configuración de compresión.
- Guarde el documento en XPS llamando a document.Savecon unXpsDevice.
Este código muestra la forma más directa de generar un archivo XPS desde 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();Una forma alternativa de escribir el archivo XPS de salida principal
Hay otro constructor de la clase XpsDevice, que nos permite obtener el archivo XPS resultante de una forma alternativa.
Ejemplo de conversión alternativo
Este fragmento muestra el uso del constructor XpsDevice que acepta un Stream. Los pasos son:
- Cree un TexDocumenty cargue el archivo fuente LaTeX.
- Cree un MemoryStreampara almacenar la salida XPS. 3. Cree una instancia deXpsDevicecon la secuencia.
- Guarde el documento en el dispositivo para poder usar la secuencia (por ejemplo, enviarlo por red o almacenarlo en una base de datos).
Este método es útil cuando necesita los datos XPS en memoria en lugar de como un archivo en disco.
 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}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 Aspose.TeX para .NET API.
