Відтворення окремих фігур і математичних формул LaTeX у Java
Відтворюйте окремі математичні рівняння LaTeX, хімічні формули та структурні фігури безпосередньо у високоякісні формати зображень (PNG, SVG, JPEG, BMP) або векторні формати за допомогою Aspose.TeX for Java. Перетворюйте фрагменти формул, такі як \sum_{i=1}^{n} i = \frac{n(n+1)}{2}, на окремі зображення без компіляції повних документів \documentclass{article} або запису тимчасових .tex-файлів на диск.
Aspose.TeX for Java надає спеціалізовані механізми відтворення (MathRenderer і FigureRenderer), призначені для мікровідтворення математичних виразів і графічних блоків:
- Для застосунків, мобільних екранів, платформ LMS (Canvas, Moodle) і зберігання в базах даних обирайте формат PNG, відтворений за допомогою класу
PngMathRenderer. - Для дисплеїв із високою роздільною здатністю, адаптивних вебсторінок, масштабованих елементів інтерфейсу та публікацій, готових до друку, обирайте формат SVG, відтворений за допомогою класу
SvgMathRenderer. - Для окремих графічних елементів LaTeX, фігур TikZ або табличних блоків, відтворених безпосередньо як зображення, обирайте формат PNG, відтворений за допомогою класу
PngFigureRenderer. - Для векторних фігур і діаграм, незалежних від роздільної здатності та безпосередньо відтворених із фрагментів LaTeX, обирайте вихідний формат SVG, відтворений за допомогою класу
SvgFigureRenderer.
Відтворення математичної формули 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
Створюйте масштабовану векторну графіку (.svg) з математичних виразів LaTeX для адаптивного вебвідтворення за допомогою 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.");
}
}Відтворення окремих фігур і таблиць LaTeX
Відтворюйте ізольовані блоки LaTeX, що містять таблиці, діаграми або спеціальні середовища, за допомогою 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.");
}
}Встановлення та налаштування
Інтегруйте Aspose.TeX for Java у свій проєкт за допомогою 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. Що станеться, якщо не вказати ім’я завдання в TeXOptions?
Якщо ім’я завдання явно не налаштовано через setJobName(), Aspose.TeX використовує ім’я основного вхідного файлу за замовчуванням (наприклад, main.tex створює main.pdf і main.log).
2. Як повністю вимкнути створення файлу компіляції .log?
Встановіть options.setLogOutput(false) перед створенням і запуском TeXJob. Це запобігає створенню механізмом додаткових файлів журналу на диску або в робочому каталозі виведення.
3. Чи можна перехоплювати повідомлення термінала TeX у серверних/headless-середовищах?
Так. Призначення власного OutputMemoryTerminal або реалізація IOutputTerminal дає змогу перенаправляти всі повідомлення stdout/stderr термінала до корпоративної системи журналювання вашого сервера (наприклад, Log4j або SLF4J).