Rendu de figures et de formules mathématiques LaTeX autonomes en Java

Rendez des équations mathématiques LaTeX, des formules chimiques et des figures structurelles autonomes directement dans des formats d’image haute fidélité (PNG, SVG, JPEG, BMP) ou des sorties vectorielles avec Aspose.TeX for Java. Convertissez des extraits de formules tels que \sum_{i=1}^{n} i = \frac{n(n+1)}{2} en images autonomes sans compiler des documents \documentclass{article} complets ni écrire de fichiers .tex temporaires sur le disque.

 

Aspose.TeX for Java fournit des moteurs de rendu dédiés (MathRenderer et FigureRenderer) conçus pour le rendu de micro-éléments d’expressions mathématiques et de blocs graphiques :

  • Pour les applications, les écrans mobiles, les plateformes LMS (Canvas, Moodle) et le stockage dans des bases de données, choisissez le format de sortie PNG rendu avec la classe PngMathRenderer.
  • Pour les écrans haute résolution (DPI), les pages web responsives, les éléments d’interface utilisateur évolutifs et les publications prêtes à l’impression, choisissez le format de sortie SVG rendu avec la classe SvgMathRenderer.
  • Pour les graphiques LaTeX autonomes, les figures TikZ ou les blocs de tableaux rendus directement sous forme d’images, choisissez le format de sortie PNG rendu avec la classe PngFigureRenderer.
  • Pour les figures et diagrammes vectoriels indépendants de la résolution, rendus directement à partir d’extraits LaTeX, choisissez le format de sortie SVG rendu avec la classe SvgFigureRenderer.

Rendre une formule mathématique LaTeX en image PNG

Utilisez PngMathRenderer pour convertir des extraits de formules mathématiques LaTeX brutes en images PNG avec un arrière-plan transparent ou uni en quelques lignes de code.

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.");
    }
}

Rendre une formule mathématique LaTeX en SVG vectoriel

Générez des graphiques vectoriels évolutifs (.svg) à partir d’expressions mathématiques LaTeX pour un rendu web responsive avec 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.");
    }
}

Rendre des figures et des tableaux LaTeX autonomes

Rendez des blocs LaTeX isolés contenant des tableaux, des diagrammes ou des environnements spéciaux à l’aide de 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.");
    }
}

Installation et configuration

Intégrez Aspose.TeX for Java à votre projet à l’aide de 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>

Questions fréquentes

1. Que se passe-t-il si je ne spécifie pas de nom de tâche dans TeXOptions ?

Si aucun nom de tâche n’est explicitement configuré via setJobName(), Aspose.TeX utilise par défaut le nom du fichier d’entrée principal (par exemple, main.tex génère main.pdf et main.log).

2. Comment puis-je désactiver complètement la création du fichier de compilation .log ?

Définissez options.setLogOutput(false) avant de créer et d’exécuter TeXJob. Cela empêche le moteur de générer des fichiers journaux auxiliaires sur le disque ou dans le répertoire de travail de sortie.

3. Puis-je capturer les messages du terminal TeX dans des environnements serveur/sans interface graphique ?

Oui. L’affectation d’un OutputMemoryTerminal personnalisé ou l’implémentation de IOutputTerminal permet de rediriger tous les messages stdout/stderr du terminal vers le système de journalisation d’entreprise de votre serveur (par exemple, Log4j ou SLF4J).