Налаштування розширених параметрів рушія TeX у Java

Точно налаштовуйте параметри компіляції документів TeX і LaTeX за допомогою класу TeXOptions в Aspose.TeX для Java. Отримайте детальний контроль над іменами завдань виконання, поведінкою журналювання в термінал і файл, шляхами пошуку шрифтів/пакетів та параметрами обробки помилок під час автоматизованих робочих процесів обробки документів.

 

Під час виконання завдань TeX або LaTeX у корпоративних середовищах Java налаштування поведінки під час виконання має вирішальне значення для відстеження помилок, аудиту та керування ресурсами в багатокористувацьких середовищах.

  • Ім’я завдання використовує метод 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.");
    }
}

Встановлення та налаштування

Інтегруйте Aspose.TeX для 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).