Látex para xps | Java

Outro formato de destino é xps. Um arquivo xps é fisicamente um pacote ZIP que contém conteúdo paginado de um documento, bem como os metadados necessários para a exibição adequada por visualizadores específicos (como o Windows XPS Viewer) e a impressão. Todos os dados em um pacote são organizados como arquivos nos diretórios. Alguns deles contêm recursos como imagens, fontes e perfis da ICC. Outros são arquivos XML em vários esquemas específicos. Este último inclui arquivos que contêm os dados do documento em si. Os dados do documento são um conjunto de arquivos - cada arquivo contém dados para uma página individual do documento. Esses arquivos consistem em um elemento de página única e uma árvore de elementos filhos - Canvas, Paths e Glyphs. Canvasé um elemento de agrupamento que pode conter outrasCanvas, Paths e Glyphs. Seu objetivo é o controle sobre o aparecimento de todos os elementos filhos como um grupo. Os elementos do caminho são usados ​​para definir os caminhos gráficos vetoriais. E Glyphs elementos são usados ​​para definir o conteúdo de texto. Todos os três elementos têm propriedades para definir vários aspectos da aparência.

Existe a biblioteca Aspose.page que fornece uma API para manipular documentos XPS, além de convertê -los em formatos de imagem PDF e raster.

Como converter LaTeX em xps

A conversão em XPS é tão simples quanto a conversão em formatos de imagem raster, exceto que, além das SaveOptions, precisamos usar uma instância da classe xpsDevice .

Defina inputFile como o caminho completo do arquivo LaTeX, como hello-world.ltx, e outputDirectory como uma pasta de saída existente. Importe as classes de com.aspose.tex e com.aspose.tex.rendering usadas no trecho. O método que faz a chamada deve tratar ou declarar as exceções. Aplique uma licença conforme o guia de licenciamento para evitar as restrições de avaliação. O exemplo utiliza processamento não interativo e fecha seus recursos de saída. Para o arquivo de entrada independente hello-world.ltx, a saída padrão é 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}

Uma maneira alternativa de escrever o arquivo XPS de saída principal

Há outro construtor da classe XPSDEVICE, que nos permite obter o arquivo XPS resultante de uma maneira alternativa.

Use os mesmos valores de inputFile e outputDirectory indicados acima. Defina xpsFile como um java.nio.file.Path, por exemplo Paths.get(outputDirectory, "any-name.xps"). Além das classes Aspose.TeX, importe java.io.OutputStream, java.nio.file.Files, java.nio.file.Path e java.nio.file.Paths. O fluxo controla o destino do arquivo XPS; os arquivos auxiliares continuam sendo gravados em 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}

O efeito é o mesmo que chegamos aqui.

Você também pode conferir a conversão LATEX-XPS gratuita aplicativo da Web construído com base no Aspose.TeX para .NET API. Aqui é a página da versão Java.