JavaでスタンドアロンのLaTeX図形と数式をレンダリング

Aspose.TeX for Javaを使用して、スタンドアロンのLaTeX数式、化学式、構造図を高品質な画像形式(PNG、SVG、JPEG、BMP)またはベクター出力に直接レンダリングします。 \sum_{i=1}^{n} i = \frac{n(n+1)}{2} のような数式スニペットを、完全な \documentclass{article} ドキュメントをコンパイルしたり、一時的な.texファイルをディスクに書き込んだりすることなく、スタンドアロン画像に変換できます。

 

Aspose.TeX for Javaは、数式表現やグラフィックブロックのマイクロレンダリングに特化した専用のレンダリングエンジン(MathRendererおよびFigureRenderer)を提供します。

  • アプリケーション、モバイル画面、LMSプラットフォーム(Canvas、Moodle)、データベースへの保存には、PngMathRendererクラスでレンダリングされるPNG出力形式を選択します。
  • 高DPIディスプレイ、レスポンシブWebページ、スケーラブルなUI要素、印刷用出版物には、SvgMathRendererクラスでレンダリングされるSVG出力形式を選択します。
  • スタンドアロンのLaTeXグラフィック、TikZ図形、または画像として直接レンダリングする表形式のブロックには、PngFigureRendererクラスでレンダリングされるPNG出力形式を選択します。
  • LaTeXスニペットから直接レンダリングする、解像度に依存しないベクター図形やダイアグラムには、SvgFigureRendererクラスでレンダリングされるSVG出力形式を選択します。

LaTeX数式をPNG画像にレンダリング

PngMathRendererを使用すると、LaTeXの数式スニペットをわずか数行のコードで、透明または単色の背景を持つPNG画像に変換できます。

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

LaTeX数式をベクターSVGにレンダリング

SvgMathRendererを使用して、LaTeX数式表現からスケーラブルなベクターグラフィック(.svg)を生成し、レスポンシブなWebレンダリングを実現します。

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

スタンドアロンのLaTeX図形と表をレンダリング

PngFigureRendererを使用して、表、ダイアグラム、特殊な環境を含む独立したLaTeXブロックをレンダリングします。

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

インストールとセットアップ

Mavenを使用して、Aspose.TeX for Javaをプロジェクトに統合します。

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. TeXOptionsでジョブ名を指定しない場合はどうなりますか?

setJobName()でジョブ名を明示的に設定しない場合、Aspose.TeXはデフォルトでメイン入力ファイル名を使用します(例:main.texの場合、main.pdfmain.logが生成されます)。

2. コンパイル時の.logファイルの作成を完全に無効にするにはどうすればよいですか?

TeXJobを作成して実行する前に、options.setLogOutput(false)を設定してください。これにより、エンジンがディスク上または出力作業ディレクトリに補助ログファイルを生成するのを防ぎます。

3. サーバー/ヘッドレス環境でTeXターミナルメッセージをキャプチャできますか?

はい。カスタムのOutputMemoryTerminalを割り当てるか、IOutputTerminalを実装することで、すべての端末の標準出力/標準エラーメッセージをサーバーのエンタープライズログシステム(Log4jやSLF4Jなど)にルーティングできます。