Java’da gelişmiş TeX motoru seçenekleri yapılandırması

Aspose.TeX for Java’daki TeXOptions sınıfını kullanarak TeX ve LaTeX belge derleme parametrelerinde ince ayar yapın. Otomatik belge işleme iş akışları sırasında yürütme iş adları, terminal ve dosya günlükleme davranışı, yazı tipi/paket arama yolları ve hata işleme tercihleri üzerinde ayrıntılı denetim elde edin.

 

Kurumsal Java ortamlarında TeX veya LaTeX işlerini yürütürken çalışma zamanı davranışını yapılandırmak, hata takibi, denetim ve çok kiracılı kaynak yönetimi açısından kritik öneme sahiptir.

  • İş Adı, oluşturulan belgeler ve yardımcı dosyalar (.pdf, .log, .aux) için birincil çıktı dosyası adı ön ekini belirtmek üzere setJobName(String) yöntemini kullanır.
  • Terminal Çıktısı, motor konsol mesajlarının ve uyarılarının nereye yönlendirileceğini kontrol etmek için setTerminalOut(IOutputTerminal) yöntemini kullanır (Konsol, Dosya, Bellek Akışı veya Null).
  • Terminal Girdisi, TeX yürütmesi için etkileşimli konsol girişi davranışını yapılandırmak üzere setTerminalIn(IInputTerminal) yöntemini kullanır.
  • Günlük Çıktısı, yardımcı derleme .log dosyalarının oluşturulmasını etkinleştirmek veya devre dışı bırakmak için setLogOutput(Boolean) yöntemini kullanır.
  • Hatada Tekrarla, kurtarılabilir dizgi hatalarıyla karşılaşıldığında motorun işleme döngülerini yeniden çalıştırıp çalıştırmayacağını belirlemek için setRepeatOnError(Boolean) yöntemini kullanır.

İş adını ve çıktı adlandırmasını yapılandırma

Oluşturulan belgeler, ara dosyalar ve günlük çıktıları için dosya ön ekini belirlemek üzere özel bir iş adı ayarlayın.

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

Terminal çıktısını ve konsol günlüklemesini yeniden yönlendirme

Özel IOutputTerminal örneklerini yapılandırarak çalışma zamanı konsol günlüklerini yakalayın veya susturun (örneğin, terminal mesajlarını doğrudan belleğe veya diske yazın).

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

Hata işlemeyi ve yürütme davranışını yönetme

Aspose.TeX’in derleme sırasında yürütme uyarılarını ve ayrıştırma hatalarını nasıl işleyeceğini yapılandırın.

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

Kurulum ve Ayarlar

Maven kullanarak Aspose.TeX for Java’yı projenize entegre edin:

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 içinde bir iş adı belirtmezsem ne olur?

setJobName() aracılığıyla açıkça bir iş adı yapılandırılmazsa, Aspose.TeX varsayılan olarak ana giriş dosyasının adını kullanır (örneğin, main.tex, main.pdf ve main.log dosyalarını oluşturur).

2. Derleme .log dosyası oluşturmayı tamamen nasıl devre dışı bırakabilirim?

TeXJob oluşturmadan ve çalıştırmadan önce options.setLogOutput(false) ayarını yapın. Bu, motorun diskte veya çıktı çalışma dizininde yardımcı günlük dosyaları oluşturmasını engeller.

3. Sunucu/headless ortamlarda TeX terminal mesajlarını yakalayabilir miyim?

Evet. Özel bir OutputMemoryTerminal atamak veya IOutputTerminal uygulamak, tüm terminal stdout/stderr mesajlarını sunucunuzun kurumsal günlük sistemine (örneğin, Log4j veya SLF4J) yönlendirmenizi sağlar.