Renderização de figuras e fórmulas matemáticas LaTeX independentes em Java

Renderize equações matemáticas LaTeX, fórmulas químicas e figuras estruturais independentes diretamente em formatos de imagem de alta fidelidade (PNG, SVG, JPEG, BMP) ou saídas vetoriais usando o Aspose.TeX for Java. Converta trechos de fórmulas como \sum_{i=1}^{n} i = \frac{n(n+1)}{2} em imagens independentes sem compilar documentos completos \documentclass{article} ou gravar arquivos .tex temporários no disco.

 

O Aspose.TeX for Java fornece mecanismos de renderização dedicados (MathRenderer e FigureRenderer) desenvolvidos para a microrenderização de expressões matemáticas e blocos gráficos:

  • Para aplicativos, telas de dispositivos móveis, plataformas LMS (Canvas, Moodle) e armazenamento em bancos de dados, escolha o formato de saída PNG renderizado com a classe PngMathRenderer.
  • Para telas de alta densidade de pixels (DPI), páginas da Web responsivas, elementos de UI escaláveis e publicações prontas para impressão, escolha o formato de saída SVG renderizado com a classe SvgMathRenderer.
  • Para gráficos LaTeX independentes, figuras TikZ ou blocos tabulares renderizados diretamente como imagens, escolha o formato de saída PNG renderizado com a classe PngFigureRenderer.
  • Para figuras e diagramas vetoriais independentes de resolução, renderizados diretamente a partir de trechos LaTeX, escolha o formato de saída SVG renderizado com a classe SvgFigureRenderer.

Renderizar fórmula matemática LaTeX como imagem PNG

Use PngMathRenderer para converter trechos brutos de fórmulas matemáticas LaTeX em imagens PNG com fundo transparente ou sólido usando apenas algumas linhas de código.

import com.aspose.tex.*;
import com.aspose.tex.mathrenderer.*;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class RenderLaTeXFormulaToPng {
    public static void main(String[] args) throws Exception {
        // Step 1: Initialize PNG Math Renderer Options
        PngMathRendererOptions options = new PngMathRendererOptions();
        options.setResolution(300); // Set DPI resolution (300 DPI for high quality)
        options.setTextColor(java.awt.Color.BLACK); // Formula text color
        options.setBackgroundColor(java.awt.Color.WHITE); // Background color
        options.setLogOutput(new OutputConsoleTerminal());

        // Define LaTeX math snippet
        String mathFormula = "\\int_{0}^{\\infty} e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}";

        // Define output stream for the generated PNG
        OutputStream stream = new FileOutputStream("C:/TeXProject/Output/formula.png");

        // Execute rendering job
        PngMathRenderer renderer = new PngMathRenderer();
        MathRendererResult result = renderer.render(mathFormula, stream, options, null);

        stream.close();
        System.out.println("LaTeX math formula rendered to PNG successfully.");
    }
}

Renderizar fórmula matemática LaTeX como SVG vetorial

Gere gráficos vetoriais escaláveis (.svg) a partir de expressões matemáticas LaTeX para renderização responsiva na Web usando SvgMathRenderer.

import com.aspose.tex.*;
import com.aspose.tex.mathrenderer.*;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class RenderLaTeXFormulaToSvg {
    public static void main(String[] args) throws Exception {
        // Create SVG Renderer Options
        SvgMathRendererOptions options = new SvgMathRendererOptions();
        options.setTextColor(java.awt.Color.BLUE); // Custom formula color

        // Define quadratic formula snippet
        String mathFormula = "x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}";

        // Stream output to SVG file
        OutputStream stream = new FileOutputStream("C:/TeXProject/Output/quadratic.svg");

        // Perform rendering
        SvgMathRenderer renderer = new SvgMathRenderer();
        renderer.render(mathFormula, stream, options, null);

        stream.close();
        System.out.println("LaTeX math formula rendered to SVG successfully.");
    }
}

Renderizar figuras e tabelas LaTeX independentes

Renderize blocos LaTeX isolados contendo tabelas, diagramas ou ambientes especiais usando PngFigureRenderer.

import com.aspose.tex.*;
import com.aspose.tex.figurerenderer.*;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class RenderLaTeXFigureToPng {
    public static void main(String[] args) throws Exception {
        // Configure Figure Renderer Options
        PngFigureRendererOptions options = new PngFigureRendererOptions();
        options.setResolution(150);

        // Create standalone figure or matrix snippet
        String figureText = "\\begin{matrix} a & b \\\\ c & d \\end{matrix}";

        // Render snippet directly to output image stream
        OutputStream stream = new FileOutputStream("C:/TeXProject/Output/matrix.png");

        PngFigureRenderer renderer = new PngFigureRenderer();
        renderer.render(figureText, stream, options, null);

        stream.close();
        System.out.println("LaTeX matrix figure rendered to image successfully.");
    }
}

Instalação e configuração

Integre o Aspose.TeX for Java ao seu projeto usando o Maven:

Package Manager Console Command

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>Latest</version>
</dependency>

FAQ

1. O que acontece se eu não especificar um nome de job em TeXOptions?

Se um nome de job não for configurado explicitamente por meio de setJobName(), o Aspose.TeX usará como padrão o nome do arquivo de entrada principal (por exemplo, main.tex gera main.pdf e main.log).

2. Como desabilito completamente a criação do arquivo de compilação .log?

Defina options.setLogOutput(false) antes de criar e executar TeXJob. Isso impede que o mecanismo gere arquivos de log auxiliares no disco ou no diretório de trabalho de saída.

3. Posso capturar mensagens do terminal TeX em ambientes de servidor/headless?

Sim. Atribuir um OutputMemoryTerminal personalizado ou implementar IOutputTerminal permite encaminhar todas as mensagens stdout/stderr do terminal para o sistema de registro corporativo do seu servidor (por exemplo, Log4j ou SLF4J).