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.