LaTeX a XPS | Java
Un altro formato target è xps. Un file XPS è fisicamente un pacchetto zip che contiene contenuto paginato di un documento, nonché i metadati richiesti per la visualizzazione corretta da parte di specifici telespettatori (come Windows XPS Viewer) e la stampa. Tutti i dati in un pacchetto sono organizzati come file nelle directory. Alcuni di essi contengono risorse come immagini, caratteri e profili ICC. Altri sono file XML in vari schemi specifici. Quest’ultimo include file che contengono i dati del documento stesso. I dati del documento sono un set di file: ogni file contiene dati per una singola pagina del documento. Tali file sono costituiti da un singolo elemento di pagina e un albero di elementi figlio - tela, percorso e glicfi. Canvasè un elemento di raggruppamento che può contenere altretele,percorsi e glicfi. Il suo scopo è il controllo sull’aspetto di tutti gli elementi figlio come gruppo. Path Gli elementi vengono utilizzati per definire percorsi grafici vettoriali. E gli elementi glifi vengono utilizzati per definire il contenuto di testo. Tutti e tre gli elementi hanno proprietà per definire vari aspetti dell’apparenza.
Esiste la libreria Aspose.Page che fornisce un’API per manipolare i documenti XPS, oltre a convertirli in formati di immagini PDF e raster.
Come convertire il LaTeX in XPS
La conversione in XPS è semplice quanto la conversione in formati di immagini raster, tranne che oltre ai SaveOptions, dobbiamo usare un’istanza della classe XPSDevice .
Impostare inputFile sul percorso completo del file LaTeX, ad esempio hello-world.ltx, e outputDirectory su una cartella di output esistente. Importare le classi di com.aspose.tex e com.aspose.tex.rendering utilizzate nel frammento. Il metodo chiamante deve gestire o dichiarare le eccezioni. Applicare una licenza come descritto nella
guida alle licenze per evitare le limitazioni della versione di valutazione. L’esempio utilizza l’elaborazione non interattiva e chiude le risorse di output. Per il file di input autonomo hello-world.ltx, l’output predefinito è hello-world.xps.
1// Convert LaTeX to XPS using the default output filename.
2// inputFile is the full input path; outputDirectory is an existing output folder.
3TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
4OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
5options.setOutputWorkingDirectory(output);
6options.setSaveOptions(new XpsSaveOptions());
7options.setInteraction(Interaction.NonstopMode);
8
9XpsDevice device = new XpsDevice();
10TeXJobResult result;
11try {
12 result = new TeXJob(inputFile, device, options).run();
13} finally {
14 device.dispose();
15 output.close();
16}Un modo alternativo per scrivere il file XPS di output principale
C’è un altro costruttore della classe XPSDevice, che ci consente di ottenere il file XPS risultante in modo alternativo.
Utilizzare gli stessi valori di inputFile e outputDirectory indicati sopra. Impostare xpsFile su un java.nio.file.Path, ad esempio Paths.get(outputDirectory, "any-name.xps"). Oltre alle classi Aspose.TeX, importare java.io.OutputStream, java.nio.file.Files, java.nio.file.Path e java.nio.file.Paths. Il flusso determina la destinazione del file XPS; i file ausiliari vengono comunque scritti in outputDirectory.
1// Convert LaTeX to XPS using an explicitly selected output stream.
2// inputFile is the full input path; outputDirectory is an existing output folder.
3// xpsFile is the java.nio.file.Path of the XPS file to create.
4TeXJobResult result;
5try (OutputStream xpsStream = Files.newOutputStream(xpsFile)) {
6 TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
7 OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
8 options.setOutputWorkingDirectory(output);
9 options.setSaveOptions(new XpsSaveOptions());
10 options.setInteraction(Interaction.NonstopMode);
11
12 XpsDevice device = new XpsDevice(xpsStream);
13 try {
14 result = new TeXJob(inputFile, device, options).run();
15 } finally {
16 device.dispose();
17 output.close();
18 }
19}L’effetto è lo stesso che otteniamo qui.
È inoltre possibile controllare la conversione da lattoce a XPS gratuita app Web basata in base all’API Aspose.TeX per .NET. Qui è la pagina della versione Java.