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 디스플레이, 반응형 웹 페이지, 확장 가능한 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)을 생성하고 반응형 웹 렌더링에 활용할 수 있습니다.
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.pdf 및 main.log를 생성합니다).
2. 컴파일 .log 파일 생성을 완전히 비활성화하려면 어떻게 해야 하나요?
TeXJob을 생성하고 실행하기 전에 options.setLogOutput(false)를 설정합니다. 이렇게 하면 엔진이 디스크나 출력 작업 디렉터리에 보조 로그 파일을 생성하지 않습니다.
3. 서버/headless 환경에서 TeX 터미널 메시지를 캡처할 수 있나요?
예. 사용자 지정 OutputMemoryTerminal을 할당하거나 IOutputTerminal을 구현하면 모든 터미널 stdout/stderr 메시지를 서버의 엔터프라이즈 로깅 시스템(예Log4j 또는 SLF4J)으로 라우팅할 수 있습니다.