Látex para pdf | Aspose.TeX para java

Como converter LaTeX em pdf

Vamos dar uma olhada no código Java, fornecendo a maneira mais simples de converter o LATEX para o formato PDF.

1// Create conversion options for Object LaTeX format upon Object TeX engine extension.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
3// Specify a file system working directory for the output.
4options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));
5// Initialize the options for saving in PDF format.
6options.setSaveOptions(new PdfSaveOptions());
7// Run LaTeX to PDF conversion.
8new TeXJob(Utils.getInputDirectory() +  "hello-world.ltx", new PdfDevice(), options).run();

Portanto, a primeira coisa que precisamos fazer (às vezes não é a primeira, como descobriremos mais tarde) é criar uma instância da classe Texoptions. O único método estático que faz isso é consoleAppOptions(), então não vamos nos incomodar com o significado de seu nome. O método pega uma instance da classe TexConfig, que é exatamente adequada para converter um arquivo de LaTeX. Esta configuração instrui o mecanismo Tex do objeto a carregar o formato de LaTeX de objeto e estar pronto para aceitar o arquivo LATEX. O formato LATEX de objeto é apenas o formato LATEX, exceto que ele usa Object tex Primitives específicas para configurar as métricas da página.

A primeira das opções necessárias é OutputWorkingDirectory que define o espaço ou área, onde a saída TEX será gravada. Aqui são os detalhes sobre o conceito de diretório de saída em aspose.tex para java. Neste exemplo, usamos a classe outputFilesystemDirectory, que nos permite gravar a saída no diretório ou pasta especificada.

A segunda opção é uma instância de classe saveOptions que controlará a transformação do modelo de objeto no formato de destino. Como estamos convertendo LaTeX em PDF, é a instância da classe PDFSaveOptions.

Then we need to create an instance of the TeXJob class. Wanting to convert a LaTeX file stored in the file system, we use this version of the constructor. We should specify the full path to the file. Otherwise, the engine will look for it in the current directory (which is defined here) and most likely will not find it. Nevertheless, we may omit the extension if our file has the .tex one. 1,073 / 5,000 De seguida, precisamos de criar uma instância da classe TeXJob. Para converter um ficheiro LaTeX armazenado no sistema de ficheiros, utilizamos esta versão do construtor. Devemos especificar o caminho completo para o ficheiro. Caso contrário, o motor irá procurá-lo no directório actual (definido aqui) e provavelmente não o encontrará. No entanto, podemos omitir a extensão se o nosso ficheiro tiver a extensão . tex. O mecanismo irá anexá-la automaticamente. O segundo argumento do construtor é uma instância da classe Device. Como estamos a converter LaTeX para PDF, trata-se de uma instância da classe PdfDevice. Como último argumento, passámos as opções de conversão preparadas recentemente.

Tudo o que precisamos fazer agora é correr o trabalho.

Independentemente de a execução ter sido bem -sucedida ou não, o primeiro resultado que veremos será a saída do terminal. Em caso de sucesso, parece algo assim:

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3
 4(<input_directory>\hello-world.ltx
 5LaTeX2e <2011/06/27>
 6(article.cls
 7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
 8(size10.clo))
 9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.pdf (1 page).
13Transcript written on hello-world.log.

Encontraremos outros produtos da execução do mecanismo na pasta que especificamos como diretório de saída. Esses serão o arquivo transcript (.log) e pronto!, o arquivo PDF de saída principal.

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

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

 1// Create the stream to write the PDF file to.
 2final OutputStream pdfStream = new FileOutputStream(Utils.getOutputDirectory() + "any-name.pdf");
 3try {
 4  // Create conversion options for Object LaTeX format upon Object TeX engine extension.
 5  ...
 6    // Run LaTeX to PDF conversion.
 7    new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", new PdfDevice(pdfStream), options).run();
 8} finally {
 9  if (pdfStream != null)
10    pdfStream.close();
11}

O arquivo any-name.pdf no diretório especificado será o nosso principal arquivo PDF de saída. Ao mesmo tempo, diferentemente do saída de imagem, não encontraremos nenhum arquivo PDF no diretório de saída definido pelas opções de conversão. Exceção: any-name.pdf está localizado (por seu caminho) no mesmo diretório do sistema de arquivos atribuído à opção outputWorkingDirectory usando outputFilesystemDirectory.

Sobre opções de entrada

Caso nosso arquivo de entrada principal exija dependências, por exemplo, pacotes, que não estão incluídos no sistema de LaTeX básico e pacotes suportados, devemos definir a opção requerirInputDirectory da maneira semelhante a definir a opção OutputWorkingDirectory e colocar as dependências nesse diretório. As dependências podem ser organizadas arbitrariamente em subdiretos. Caso tenhamos nossos próprios arquivos a serem incluídos ao longo do processo de composição, digamos arquivos gráficos externos, também devemos definir o InputWorkingDirectory usando o caminho para o local onde esses arquivos são coletados. Também podemos colocar o arquivo de entrada principal em algum lugar dentro do diretório de entrada e especificar o caminho relativo no método run() (ou especificar nenhum caminho se o arquivo de entrada principal estiver na raiz). Aqui são os detalhes sobre o conceito de diretório de entrada em aspose.tex para java e fornecem implementações.

Outras opções de trabalho Tex são discutidas aqui.

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

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.