Java에서 고급 TeX 엔진 옵션 구성

Aspose.TeX for Java의 TeXOptions 클래스를 사용하여 TeX 및 LaTeX 문서 컴파일 매개 변수를 세밀하게 조정할 수 있습니다. 자동화된 문서 처리 워크플로에서 실행 작업 이름, 터미널 및 파일 로깅 동작, 글꼴/패키지 검색 경로 및 오류 처리 기본 설정을 세부적으로 제어할 수 있습니다.

 

엔터프라이즈 Java 환경에서 TeX 또는 LaTeX 작업을 실행할 때 런타임 동작을 구성하는 것은 오류 추적, 감사 및 멀티테넌트 리소스 관리에 매우 중요합니다.

  • 작업 이름setJobName(String) 메서드를 사용하여 생성되는 문서 및 보조 파일(.pdf, .log, .aux)의 기본 출력 파일 이름 접두사를 지정합니다.
  • 터미널 출력setTerminalOut(IOutputTerminal) 메서드를 사용하여 엔진 콘솔 메시지와 경고가 전달되는 위치(콘솔, 파일, 메모리 스트림 또는 Null)를 제어합니다.
  • 터미널 입력setTerminalIn(IInputTerminal) 메서드를 사용하여 TeX 실행 중 대화형 콘솔 입력 동작을 구성합니다.
  • 로그 출력setLogOutput(Boolean) 메서드를 사용하여 컴파일 .log 보조 파일 생성을 활성화하거나 억제합니다.
  • 오류 발생 시 반복setRepeatOnError(Boolean) 메서드를 사용하여 복구 가능한 조판 오류가 발생했을 때 엔진이 처리 사이클을 다시 실행할지 여부를 지정합니다.

작업 이름 및 출력 파일 이름 구성

사용자 지정 작업 이름을 설정하여 생성된 문서, 중간 파일 및 로그 출력에 사용할 파일 접두사를 결정합니다.

import com.aspose.tex.*;
import java.io.IOException;

public class ConfigureTeXJobName {
    public static void main(String[] args) throws IOException {
        // Initialize options for LaTeX format
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Set input and output working directories
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Explicitly set a custom job name (Output will be 'Invoice_2026.pdf')
        options.setJobName("Invoice_2026");

        // Run TeX job using the designated job name options
        TeXJob job = new TeXJob(options);
        job.run();

        System.out.println("TeX job completed with custom output file name: Invoice_2026.pdf");
    }
}

터미널 출력 및 콘솔 로깅 리디렉션

사용자 지정 IOutputTerminal 인스턴스를 구성하여 런타임 콘솔 로그를 캡처하거나 표시하지 않을 수 있습니다(예: 터미널 메시지를 메모리 또는 디스크에 직접 기록).

import com.aspose.tex.*;
import java.io.ByteArrayOutputStream;

public class ConfigureTeXTerminalOutput {
    public static void main(String[] args) throws Exception {
        // Initialize LaTeX conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Redirect terminal output to an in-memory stream instead of System.out
        ByteArrayOutputStream terminalStream = new ByteArrayOutputStream();
        options.setTerminalOut(new OutputConsoleTerminal()); // Or use custom stream terminal

        // Enable execution log file writing
        options.setLogOutput(true);

        // Execute the compilation job
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        System.out.println("TeX execution log captured successfully.");
    }
}

오류 처리 및 실행 동작 관리

컴파일 중 Aspose.TeX가 실행 경고 및 구문 분석 오류를 처리하는 방식을 구성합니다.

import com.aspose.tex.*;

public class ConfigureTeXExecutionSettings {
    public static void main(String[] args) throws Exception {
        // Initialize base options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());

        // Configure directory paths
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Output/"));

        // Set repeat-on-error and logging preferences
        options.setRepeatOnError(false); // Halt or proceed without retry loops on non-fatal errors
        options.setLogOutput(true);      // Ensure detailed engine log is written to output directory

        // Execute job
        TeXJob job = new TeXJob("document", new PdfDevice(), options);
        job.run();

        System.out.println("Document compiled with fine-tuned error settings.");
    }
}

설치 및 설정

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.texmain.pdfmain.log를 생성합니다).

2. 컴파일 .log 파일 생성을 완전히 비활성화하려면 어떻게 해야 하나요?

TeXJob을 생성하고 실행하기 전에 options.setLogOutput(false)를 설정합니다. 이렇게 하면 엔진이 디스크나 출력 작업 디렉터리에 보조 로그 파일을 생성하지 않습니다.

3. 서버/headless 환경에서 TeX 터미널 메시지를 캡처할 수 있나요?

예. 사용자 지정 OutputMemoryTerminal을 할당하거나 IOutputTerminal을 구현하면 모든 터미널 stdout/stderr 메시지를 서버의 엔터프라이즈 로깅 시스템(예Log4j 또는 SLF4J)으로 라우팅할 수 있습니다.