Konfigurasi opsi lanjutan mesin TeX di Java

Sesuaikan parameter kompilasi dokumen TeX dan LaTeX secara terperinci menggunakan kelas TeXOptions di Aspose.TeX for Java. Dapatkan kontrol terperinci atas nama pekerjaan eksekusi, perilaku pencatatan terminal dan file, jalur pencarian font/paket, serta preferensi penanganan kesalahan selama alur kerja pemrosesan dokumen otomatis.

 

Saat menjalankan pekerjaan TeX atau LaTeX di lingkungan Java perusahaan, mengonfigurasi perilaku runtime sangat penting untuk pelacakan kesalahan, audit, dan pengelolaan sumber daya multi-tenant.

  • Nama Pekerjaan menggunakan metode setJobName(String) untuk menentukan awalan nama file output utama untuk dokumen dan file tambahan yang dihasilkan (.pdf, .log, .aux).
  • Output Terminal menggunakan metode setTerminalOut(IOutputTerminal) untuk mengontrol ke mana pesan konsol dan peringatan mesin diarahkan (Konsol, File, Memory Stream, atau Null).
  • Input Terminal menggunakan metode setTerminalIn(IInputTerminal) untuk mengonfigurasi perilaku input konsol interaktif selama eksekusi TeX.
  • Output Log menggunakan metode setLogOutput(Boolean) untuk mengaktifkan atau menonaktifkan pembuatan file tambahan kompilasi .log.
  • Ulangi saat Terjadi Kesalahan menggunakan metode setRepeatOnError(Boolean) untuk menentukan apakah mesin harus menjalankan kembali siklus pemrosesan saat menemukan kesalahan penyusunan huruf yang dapat dipulihkan.

Mengonfigurasi nama pekerjaan dan penamaan output

Tetapkan nama pekerjaan khusus untuk menentukan awalan file bagi dokumen yang dihasilkan, file perantara, dan output log.

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");
    }
}

Mengalihkan output terminal dan pencatatan konsol

Tangkap atau nonaktifkan log konsol runtime dengan mengonfigurasi instance IOutputTerminal khusus (seperti menulis pesan terminal langsung ke memori atau disk).

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.");
    }
}

Mengelola penanganan kesalahan dan perilaku eksekusi

Konfigurasikan cara Aspose.TeX menangani peringatan eksekusi dan kesalahan penguraian selama kompilasi.

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.");
    }
}

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).