Látex para imagem | Aspose.TeX para java
Aspose.TeX para java fornece recursos para converter arquivos de LaTeX em vários formatos de imagem raster.
Como converter LaTeX para png
Vamos dar uma olhada no código Java, fornecendo a maneira mais simples de converter o LATEX para o formato PNG.
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 PNG format.
6options.setSaveOptions(new PngSaveOptions());
7// Run LaTeX to PNG conversion.
8new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", new ImageDevice(), 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 a instância objectLaTeX() 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 do Object é na verdade apenas o formato LATEX, exceto que ele usa as primitivas específicas Object tex 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 o LATEX em PNG, é a instância da classe pngSaveOptions, que nos permite especificar a resolução das imagens de saída.
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 PNG, trata-se de uma instância da classe ImageDevice (que é comum a todos os formatos de imagem suportados). 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.png (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. Esse será o arquivo transcriptista (.log) e, pronto!, o (s) arquivo (s) da 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
Há outra maneira de obter dados da imagem como uma matriz de matrizes de bytes, cada matriz na segunda dimensão representa dados de imagem para uma página separada.
1// Create conversion options instance.
2...
3// Initialize the options for saving in PNG format.
4PngSaveOptions saveOptions = new PngSaveOptions();
5// Set this property to instruct the device not to output images as you will access them alternatively.
6saveOptions.deviceWritesImages(false);
7options.setSaveOptions(saveOptions);
8// Create the image device.
9ImageDevice device = new ImageDevice();
10// Run LaTeX to PNG conversion.
11new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", device, options).run();
12
13// Save pages file by file.
14for (int i = 0; i < device.getResult().length; i++)
15{
16 final OutputStream fs = new FileOutputStream(Utils.getOutputDirectory() + MessageFormat.format("page-{0}.png", (i + 1)));
17 try {
18 fs.write(device.getResult()[i], 0, device.getResult()[i].length);
19 } finally {
20 if (fs != null)
21 fs.close();
22 }
23}
Os arquivos * “página-n.png” * serão gravados em qualquer caminho que especifique. Ao contrário de saída em PDF, eles duplicarão os arquivos PNG de saída gravados no diretório de saída.
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-PNG GRATUITA aplicativo da Web construído com base no Aspose.TeX para .NET API. Aqui é a página da versão Java.
Abaixo, discutimos a conversão de LaTeX para outros formatos de imagem raster suportados. Não vamos entrar em detalhes apenas porque não há realmente detalhes. A única diferença está no tipo de propriedade SaveOptions nas opções de conversão.
Como converter LaTeX em jpg
1// Create conversion options instance.
2...
3// Initialize the options for saving in JPEG format.
4options.SaveOptions = new JpegSaveOptions();
Você também pode conferir a conversão LATEX-JPG GRATUITA aplicativo da Web construído com base na API Aspose.TeX para .NET. Aqui é a página da versão Java.
Como converter LaTeX para TIFF
1// Create conversion options instance.
2...
3// Initialize the options for saving in TIFF format.
4options.SaveOptions = new TiffSaveOptions();
Você também pode conferir a conversão LATEX-TIFF GRATUITA aplicativo da web construído com base na API Aspose.TeX para .NET. Aqui é a página da versão Java.
Como converter LaTeX para BMP
1// Create conversion options instance.
2...
3// Initialize the options for saving in BMP format.
4options.SaveOptions = new BmpSaveOptions();
Você também pode conferir a conversão LATEX-BMP GRATUITA aplicativo da Web construído com base na API Aspose.TeX para .NET. Aqui é a página da versão Java.
Como converter LaTeX para SVG
E ainda outro formato de destino suportado é svg. Gráficos vetoriais escaláveis (SVG) é um formato de imagem vetorial baseado em XML para definir gráficos bidimensionais, tendo suporte para interatividade e animação.
As imagens SVG são definidas em um formato de gráfico vetorial e armazenadas em arquivos de texto XML. Isso significa que as imagens SVG podem ser escalonadas em tamanho sem perda de qualidade e os arquivos SVG podem ser pesquisados, indexados, scripts e compactados. Os arquivos de texto XML podem ser criados e editados com editores de texto ou editores de gráficos vetoriais. Thay é renderizado pelos navegadores da web mais usados.
Além disso, existe a biblioteca Aspose.svg que possui vários recursos baseados no formato svg. Isso inclui a criação, carregamento, edição e conversão de documentos SVG.
A conversão para SVG é tão simples quanto a conversão em formatos de imagem raster, exceto que, além das saveOptions, precisamos alterar o dispositivo para uma instância da classe svgDevice.
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 SVG format.
6options.setSaveOptions(new SvgSaveOptions());
7// Run LaTeX to SVG conversion.
8new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", new SvgDevice(), options).run();
Você também pode conferir a conversão LATEX-SVG GRATUITA aplicativo da Web construído com base no Aspose.TeX para .NET. Aqui é a página da versão Java.