LaTeX a XPS | Python tramite .NET
Un altro formato target è xps. Un file xps è essenzialmente un pacchetto zip che contiene un contenuto paginato di un documento, insieme ai metadati necessari per la visualizzazione corretta da parte di specifici telespettatori (come Windows XPS Viewer) e la stampa. Il pacchetto è composto da vari file, alcuni dei quali sono binari e contengono risorse come immagini, caratteri e profili ICC. Altri sono file XML in schemi specifici, inclusi file che contengono i dati del documento stessi. I dati del documento sono divisi in più file, con ciascun file che rappresenta una singola pagina del documento. Questi file sono costituiti da un elemento di singola pagina e un albero di elementi figlio, tra cui tela, percorso e glicfi. L’elemento telaè un elemento di raggruppamento che può contenere altri tele, percorsi e glifi e controlla l’aspetto di tutti gli elementi figlio come gruppo. Path Gli elementi vengono utilizzati per definire i percorsi grafici vettoriali, mentre gli elementi Glifi vengono utilizzati per definire il contenuto testuale. Tutti e tre gli elementi hanno proprietà che definiscono vari aspetti dell’apparenza.
Esiste la libreria Aspose.Page, che offre un’API per manipolare i documenti XPS e consente anche la conversione di questi documenti in formati di immagini PDF e raster.
Convertire il LaTeX in XPS
Il processo di conversione del LaTeX in XPS è ugualmente semplice, simile alla conversione in formati di immagini raster. Tuttavia, richiede l’impostazione di Save_options su un’istanza della classe XPSSaveOptions (per impostazione predefinita o esplicitamente) e cambiando il dispositivo in un’istanza della classe XPSDevice.
Impostare ASPOSE_TEX_INPUT_FILE sul file LaTeX e ASPOSE_TEX_OUTPUT_DIR sulla directory di output, oppure modificare i percorsi nell’esempio. I valori predefiniti sono hello-world.ltx e output. Applicare prima una licenza. I file di input aggiuntivi vengono cercati accanto al documento principale; l’elaborazione non è interattiva.
Licenze
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()Un modo alternativo per scrivere il file XPS di output principale
È disponibile un costruttore alternativo per la classe * XPSDevice *, che consente di ottenere il file XPS risultante in modo diverso.
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()Il flusso binario scrive any-name.xps nella directory di output configurata. Non viene creato un altro file XPS con il nome predefinito; i file ausiliari e il registro vengono comunque salvati in output_working_directory.
È anche possibile esplorare la conversione gratuita app Web per la latex-xps, che viene sviluppata utilizzando Aspose.TeX per .NET API.