Rendering gambar dan rumus matematika LaTeX mandiri di Java
Render persamaan matematika LaTeX, rumus kimia, dan gambar struktural mandiri langsung ke format gambar berkualitas tinggi (PNG, SVG, JPEG, BMP) atau output vektor menggunakan Aspose.TeX for Java. Konversikan potongan rumus seperti \sum_{i=1}^{n} i = \frac{n(n+1)}{2} menjadi gambar mandiri tanpa mengompilasi dokumen \documentclass{article} lengkap atau menulis file .tex sementara ke disk.
Aspose.TeX for Java menyediakan mesin rendering khusus (MathRenderer dan FigureRenderer) yang dirancang untuk rendering mikro ekspresi matematika dan blok grafis:
- Untuk aplikasi, layar seluler, platform LMS (Canvas, Moodle), dan penyimpanan basis data, pilih format output PNG yang dirender dengan kelas
PngMathRenderer. - Untuk layar dengan DPI tinggi, halaman web responsif, elemen UI yang dapat diskalakan, dan publikasi siap cetak, pilih format output SVG yang dirender dengan kelas
SvgMathRenderer. - Untuk grafik LaTeX mandiri, gambar TikZ, atau blok tabel yang dirender langsung sebagai gambar, pilih format output PNG yang dirender dengan kelas
PngFigureRenderer. - Untuk gambar dan diagram vektor yang tidak bergantung pada resolusi dan dirender langsung dari potongan LaTeX, pilih format output SVG yang dirender dengan kelas
SvgFigureRenderer.
Render rumus matematika LaTeX ke gambar PNG
Gunakan PngMathRenderer untuk mengonversi potongan rumus matematika LaTeX mentah menjadi gambar PNG dengan latar belakang transparan atau solid hanya dengan beberapa baris kode.
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.");
}
}Render rumus matematika LaTeX ke SVG vektor
Hasilkan grafik vektor yang dapat diskalakan (.svg) dari ekspresi matematika LaTeX untuk rendering web responsif menggunakan 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.");
}
}Render gambar dan tabel LaTeX mandiri
Render blok LaTeX terisolasi yang berisi tabel, diagram, atau lingkungan khusus menggunakan 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.");
}
}Instalasi dan Penyiapan
Integrasikan Aspose.TeX for Java ke dalam proyek Anda menggunakan 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>
Pertanyaan yang Sering Diajukan
1. Apa yang terjadi jika saya tidak menentukan nama pekerjaan di TeXOptions?
Jika nama pekerjaan tidak dikonfigurasi secara eksplisit melalui setJobName(), Aspose.TeX secara default menggunakan nama file input utama (misalnya, main.tex menghasilkan main.pdf dan main.log).
2. Bagaimana cara menonaktifkan sepenuhnya pembuatan file kompilasi .log?
Atur options.setLogOutput(false) sebelum membuat dan menjalankan TeXJob. Ini mencegah mesin menghasilkan file log tambahan di disk atau di direktori kerja output.
3. Bisakah saya menangkap pesan terminal TeX di lingkungan server/headless?
Ya. Dengan menetapkan OutputMemoryTerminal khusus atau mengimplementasikan IOutputTerminal, Anda dapat mengarahkan semua pesan stdout/stderr terminal ke sistem logging perusahaan di server Anda (misalnya, Log4j atau SLF4J).