Látex para pdf | Python via .NET

Converter LaTeX em pdf

Agora, vamos examinar o código Python que oferece a abordagem mais direta para converter o LATEX em formato PDF em profundidade.

 1from aspose.tex import *
 2from aspose.tex.io import *
 3from aspose.tex.presentation.pdf import *
 4from util import Util
 5from os import path
 6###############################################
 7###### Class and Method declaration here ######
 8###############################################
 9
10# Create conversion options for Object LaTeX format upon Object TeX engine extension.
11options = TeXOptions.console_app_options(TeXConfig.object_latex)
12# Specify a file system working directory for the output.
13options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
14# Initialize the options for saving in PDF format.
15options.save_options = PdfSaveOptions()
16# Run LaTeX to PDF conversion.
17TeXJob(path.join(Util.input_directory, "hello-world.ltx"), PdfDevice(), options).run()

Para começar, precisamos criar uma instância da classe Texoptions. O método Console_App_Options () é o único método estático que realiza isso, portanto, não se preocupe com o nome. Este método pega uma instância object_latex da classe texconfig, que é perfeita para converter um arquivo de LaTeX. Essa configuração instrui o mecanismo Tex do objeto a carregar o formato de LaTeX de objeto e estar preparado para processar o arquivo LATEX. O formato LATEX de objeto é essencialmente o mesmo que o formato LATEX, mas utiliza objeto tex primitivos específicos para definir as métricas da página.

A primeira opção que precisa ser especificada é output_working_directory, que determina o local em que a saída TEX será salva. Se necessário, você pode encontrar mais informações sobre o conceito do diretório de saída em aspose.tex. Neste caso em particular, utilizamos a classe O outputFilesystemDirectory, que nos permite escrever a saída em um diretório ou pasta designada.

A segunda opção requer uma instância da classe SaveOptions, que determina como o modelo de objeto é transformado no formato desejado. No nosso caso, à medida que estamos convertendo LaTeX em pdf, ele se refere a uma instância da classe pdfSaveOptions.

Para converter um ficheiro LaTeX armazenado no sistema de ficheiros, necessitamos de criar uma instância da classe TeXJob utilizando o construtor que recebe como parâmetro o caminho completo do ficheiro. Se não especificarmos o caminho completo, o motor irá procurar o ficheiro no diretório atual (que é o diretório de trabalho do script) e poderá não o encontrar. No entanto, podemos omitir a extensão se o nosso ficheiro tiver a extensão . tex, uma vez que o motor irá anexá-la automaticamente. O segundo argumento do construtor é uma instância da classe Device. No nosso caso, como estamos a converter LaTeX para PDF, é uma instância da classe PdfDevice. Por fim, passamos as opções de conversão recentemente preparadas como último argumento.

Agora, tudo o que resta é correr o trabalho.

Após a execução, independentemente de ter sido bem -sucedido ou não, a primeira coisa que veremos é a saída do terminal. Se a execução for bem -sucedida, a saída será semelhante a isso:

 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.

Na pasta que especificamos como diretório de saída, encontraremos o arquivo de transcrição e, aqui está!, o principal arquivo PDF de saída, entre outros resultados do trabalho do mecanismo.

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

A classe pdfDevice possui outro construtor que nos permite obter o arquivo PDF resultante de maneira diferente.

 1from aspose.tex import *
 2from aspose.tex.io import *
 3from aspose.tex.presentation.pdf import *
 4from util import Util
 5from os import path
 6###############################################
 7###### Class and Method declaration here ######
 8###############################################
 9
10# Create the stream to write the PDF file to.
11with open(path.join(Util.output_directory, "any-name.pdf"), "wb") as pdf_stream:
12    # Create conversion options for Object LaTeX format upon Object TeX engine extension.
13    options = TeXOptions.console_app_options(TeXConfig.object_latex)
14    # Specify a file system working directory for the output.
15    options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
16    # Initialize the options for saving in PDF format.
17    options.save_options = PdfSaveOptions()
18    # Run LaTeX to PDF conversion.
19    TeXJob(path.join(Util.input_directory, "hello-world.ltx"), PdfDevice(pdf_stream), options).run()

O ficheiro PDF de saída principal será denominado any-name. pdf e estará localizado no diretório especificado. No entanto, ao contrário da saída da imagem, não existirão outros ficheiros PDF no diretório de saída especificado pelas opções de conversão. A exceção será se any-name. pdf estiver localizado no mesmo diretório do sistema de ficheiros atribuído à opção output_working_directory utilizando OutputFileSystemDirectory.

Sobre opções de entrada

Se nosso arquivo de entrada principal exigir dependências, como pacotes que não estão incluídos no sistema de LaTeX básico e pacotes suportados, é necessário definir a opção requerir_input_directory de uma maneira semelhante à opção * output_working_directory * e colocar as dependências nesse diretório. As dependências podem ser organizadas nos subdiretos, conforme desejado. Além disso, se tivermos nossos próprios arquivos a serem incluídos no processo de tipoTTing, como arquivos gráficos externos, também devemos definir o input_working_directory usando o caminho para o local em que esses arquivos são armazenados. Também podemos colocar o arquivo de entrada principal 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. Para obter mais detalhes sobre o conceito de diretório de entrada em aspose.tex para python e as implementações fornecidas, consulte aqui.

Há também outras opções de emprego no TEX discutidas.

Você também pode explorar o aplicativo gratuito da web para conversão de LaTeX para PDF, que é desenvolvido usando o Aspose.TeX para .NET API.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.