Látex a XPS | Aspose.TeX para Python
Otro formato de destino es XPS. Un archivo XPS es esencialmente un paquete ZIP que contiene todo el contenido paginado de un documento, junto con los metadatos necesarios para su correcta visualización por parte de visores específicos (como Windows XPS Viewer) e impresión. El paquete consta de varios archivos, algunos de los cuales son binarios y contienen recursos como imágenes, fuentes y perfiles ICC. Otros son archivos XML en esquemas específicos, incluidos archivos que contienen los datos del documento. Los datos del documento se dividen en varios archivos, y cada archivo representa una página individual del documento. Estos archivos constan de un único elemento de página y un árbol de elementos secundarios, incluidos Canvas, Path y Glyphs. El elemento Canvas es un elemento de agrupación que puede contener otros Canvases, Paths y Glyphs, y controla la apariencia de todos los elementos secundarios como un grupo. Los elementos Path se utilizan para definir rutas de gráficos vectoriales, mientras que los elementos Glyphs se utilizan para definir contenido textual. Los tres elementos tienen propiedades que definen varios aspectos de la apariencia.
Existe la biblioteca Aspose.Page, que ofrece una API para manipular documentos XPS y también permite la conversión de estos documentos a formatos PDF y de imágenes rasterizadas.
Conversión de LaTeX a XPS
El proceso de conversión de LaTeX a XPS es igualmente sencillo, similar a la conversión a formatos de imágenes rasterizadas. Sin embargo, requiere configurar save_options en una instancia de la clase XpsSaveOptions (ya sea de forma predeterminada o explícitamente) y cambiar el dispositivo a una instancia de la clase XpsDevice.
Establezca ASPOSE_TEX_INPUT_FILE en su archivo LaTeX y ASPOSE_TEX_OUTPUT_DIR en el directorio de salida, o edite las rutas del ejemplo. Los valores predeterminados son hello-world.ltx y output. Aplique primero una licencia. Los archivos de entrada adicionales se buscan junto al documento principal y el procesamiento no es interactivo.
Licencias
1# Convert LaTeX to XPS.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.xps import XpsDevice, XpsSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = XpsSaveOptions()
22device = XpsDevice()
23job_result = TeXJob(str(input_file), device, options).run()Una forma alternativa de escribir el archivo XPS de salida principal
Hay un constructor alternativo disponible para la clase XpsDevice, que permite obtener el archivo XPS resultante de una manera diferente.
1# Convert LaTeX to XPS using an explicitly named binary output stream.
2import os
3from pathlib import Path
4from aspose.tex import Interaction, TeXConfig, TeXJob, TeXOptions
5from aspose.tex.io import InputFileSystemDirectory, OutputFileSystemDirectory, OutputMemoryTerminal
6from aspose.tex.presentation.xps import XpsDevice, XpsSaveOptions
7
8# Set these paths to your LaTeX document and output directory.
9input_file = Path(os.environ.get("ASPOSE_TEX_INPUT_FILE", "hello-world.ltx")).resolve()
10output_dir = Path(os.environ.get("ASPOSE_TEX_OUTPUT_DIR", "output")).resolve()
11if not input_file.is_file():
12 raise FileNotFoundError(input_file)
13output_dir.mkdir(parents=True, exist_ok=True)
14
15# Use the Object LaTeX format and resolve additional inputs beside the main file.
16options = TeXOptions.console_app_options(TeXConfig.object_latex)
17options.input_working_directory = InputFileSystemDirectory(str(input_file.parent))
18options.output_working_directory = OutputFileSystemDirectory(str(output_dir))
19options.interaction = Interaction.NONSTOP_MODE
20options.terminal_out = OutputMemoryTerminal()
21options.save_options = XpsSaveOptions()
22
23# Supply a binary stream to choose the output filename.
24with (output_dir / "any-name.xps").open("wb") as output_stream:
25 device = XpsDevice(output_stream)
26 job_result = TeXJob(str(input_file), device, options).run()El flujo binario escribe any-name.xps en el directorio de salida configurado. No se crea otro archivo XPS con el nombre predeterminado; los archivos auxiliares y el registro siguen guardándose en output_working_directory.
También puede explorar la aplicación web gratuita para la conversión de LaTeX a XPS, que se desarrolla utilizando Aspose.TeX para .NET API.