Látex para imagem | Aspose.TeX para Python
Aspose.TeX for python nos fornece a capacidade de converter arquivos de LaTeX em vários formatos de imagem raster.
Converter LaTeX em png
Agora, vamos examinar o código Python que oferece a abordagem mais direta para converter o LaTeX em formato PNG em profundidade.
1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in PNG format.
6options.save_options = PngSaveOptions()
7
8# Run LaTeX to PNG conversion.
9TeXJob(path.join(Util.input_directory, "hello-world.ltx"), ImageDevice(True), options).run()
Para começar, precisamos criar uma instância da classe texoptions usando o método console_app_options (). Não se preocupe com o nome, é apenas o método estático que cria a instância. Este método pega a instância object_latex da classe texconfig, que é perfeita para converter um arquivo de LaTeX. Essa configuração configura o mecanismo Tex Object para carregar o formato LATEX do objeto e estar pronto para processar o arquivo LATEX. O formato LATEX de objeto é essencialmente o mesmo que o formato de LaTeX, mas usa objeto tex primitivas específicas para definir as métricas da página.
A primeira das opções necessárias é output_working_directory, que especifica o local onde a saída TEX será salva. Se estiver interessado, você pode aprender mais informações sobre o conceito do diretório de saída em aspose.tex for python. Neste exemplo em particular, utilizamos a classe outputFilesystemDirectory para gravar a saída em um diretório ou pasta específica.
A segunda opção é uma instância da classe SaveOptions, responsável pelo gerenciamento da conversão do Modelo de Objeto para o formato desejado. Nesse caso, como estamos convertendo LaTeX em PNG, usamos a instância da classe pngSaveOptions, que nos permite especificar a resolução das imagens de saída.
De seguida, criamos uma instância da classe
TeXJob. Neste caso, como queremos converter um ficheiro LaTeX armazenado no sistema de ficheiros, utilizamos
esta versão do construtor. Precisamos de fornecer o caminho completo para o ficheiro, caso contrário, o motor irá procurá-lo no diretório atual (que é o diretório de trabalho do script) e poderá não o encontrar. No entanto, a extensão .tex
pode ser omitida, uma vez que o motor irá anexá-la automaticamente. O segundo argumento do construtor é uma instância da classe
Device. Como estamos a converter LaTeX para PNG, trata-se de uma instância da classe
ImageDevice, comum a todos os formatos de imagem suportados. Por fim, passamos as opções de conversão preparadas como último argumento.
Agora, tudo o que resta é correr o trabalho.
Após a execução do trabalho, independentemente de seu sucesso ou falha, a primeira saída que encontraremos é a saída do terminal. No caso de uma corrida bem -sucedida, a saída se parecerá com o seguinte:
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.png (1 page).
13Transcript written on hello-world.log.
Os resultados do trabalho do motor podem ser encontrados no diretório de saída que especificamos. Isso incluirá o arquivo de transcrição e, o mais importante, o (s) arquivo (s) da (s) imagem (s) da imagem de saída principal.
Uma maneira alternativa de escrever o (s) arquivo (s) principal (s) de saída da saída
Existe um método alternativo para obter dados de imagem como uma matriz de matrizes de bytes, onde cada matriz na segunda dimensão representa os dados da imagem para uma página separada.
1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in PNG format.
6so = PngSaveOptions()
7so.device_writes_images = False # Run LaTeX to PNG conversion.
8options.save_options = so
9device = ImageDevice(True)
10TeXJob(path.join(Util.input_directory, "hello-world.ltx"), device, options).run()
11
12# Save pages file by file.
13for i in range(len(device.result)):
14 with open(path.join(Util.output_directory, f"page-{(i + 1)}" + ".png"), "wb") as fs:
15 fs.write(device.result[i][0:len(device.result[i])])
Os arquivos “Page-n.png” podem ser gravados em qualquer caminho especificado. Ao contrário de saída em PDF, esses arquivos PNG duplicarão os arquivos PNG de saída gravados no diretório de saída.
Em relação às 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 ou em pacotes suportados, precisamos definir a opção
requerir_input_directory de maneira semelhante à como definirmos a opção * output_working_directory * e colocamos as dependências nesse diretório. As dependências podem ser organizadas nos subdiretos, conforme necessário. Se tivermos nossos arquivos a serem incluídos no processo de composição, como arquivos gráficos externos, também precisamos definir o
input_working_directory para o local onde esses arquivos são armazenados. Também podemos colocar o arquivo de entrada principal no diretório de entrada e especificar o caminho relativo no método run()
ou especificar nenhum caminho se o arquivo de entrada principal estiver no diretório raiz. Também existem mais detalhes sobre o
conceito de diretório de entrada em aspose.tex e as implementações fornecidas descritas.
Aprenda também as outras opções de emprego tex aqui.
Você também pode explorar o [aplicativo web] gratuito (24) para conversão de LaTeX-para-png, que é desenvolvida usando o Aspose.TeX para .NET API.
Abaixo, explicaremos brevemente a conversão de LaTeX em outros formatos de imagem raster suportados, sem mergulhar em muitos detalhes, pois não há diferenças significativas. A única variação está no tipo de propriedade Save_Options nas opções de conversão.
Converter LaTeX em jpg
1# Create conversion options instance.
2...
3# Initialize the options for saving in JPEG format.
4options.save_options = JpegSaveOptions()
Você também pode explorar o aplicativo gratuito da web para conversão de LaTeX-para-jpg, que é desenvolvido usando o Aspose.TeX para .NET API.
Convertendo LaTeX em tiff
1# Create conversion options instance.
2...
3# Initialize the options for saving in TIFF format.
4options.save_options = TiffSaveOptions()
Você também pode explorar o aplicativo gratuito da web para conversão de LaTeX-para-tiff, que é desenvolvido usando o Aspose.TeX para .NET API.
Converter LaTeX em BMP
1# Create conversion options instance.
2...
3# Initialize the options for saving in BMP format.
4options.save_options = BmpSaveOptions()
Você também pode explorar o aplicativo gratuito da web para conversão de LaTeX para BMP, que é desenvolvido usando o Aspose.TeX para .NET API.
Converter LaTeX em SVG
Outro formato de destino suportado é svg. Gráficos vetoriais escaláveis (SVG) é um formato de imagem vetorial baseado em XML que é usado para definir gráficos bidimensionais. Ele suporta interatividade e animação.
As imagens SVG são armazenadas em arquivos de texto XML e definidas em um formato gráfico vetorial. Isso significa que as imagens SVG podem ser escalonadas em tamanho sem perder a qualidade e os próprios arquivos SVG podem ser pesquisados, indexados, scripts e compactados. Os arquivos de texto XML podem ser criados e editados usando editores de texto ou editores de gráficos vetoriais, e eles podem ser renderizados pelos navegadores da web mais usados.
A API Aspose.svg oferece uma variedade de recursos para trabalhar com SVG, como criar, carregar, editar e converter SVG documentos.
A conversão de LaTeX em SVG é tão direta quanto converter em formatos de imagem raster, com a única diferença que as Save_Options devem ser definidas como uma instância da classe svgSaveOptions e o dispositivo deve ser alterado para uma instância da classe SvgDevice.
1# Create conversion options for Object LaTeX format upon Object TeX engine extension.
2options = TeXOptions.console_app_options(TeXConfig.object_latex)
3# Specify a file system working directory for the output.
4options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
5# Initialize the options for saving in SVG format.
6options.save_options = SvgSaveOptions()
7# Run LaTeX to SVG conversion.
8TeXJob(path.join(Util.input_directory, "hello-world.ltx"), SvgDevice(), options).run()
Você também pode explorar o aplicativo gratuito da web para conversão de LaTeX para SVG, que é desenvolvido usando o Aspose.TeX para .NET API.