تكوين خيارات محرك TeX المتقدمة في Java

اضبط معلمات تجميع مستندات TeX وLaTeX بدقة باستخدام الفئة TeXOptions في Aspose.TeX for 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 for 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>

الأسئلة الشائعة

1. ماذا يحدث إذا لم أحدد اسم مهمة في TeXOptions؟

إذا لم يتم تكوين اسم مهمة بشكل صريح عبر setJobName()، فسيستخدم Aspose.TeX اسم ملف الإدخال الرئيسي افتراضيًا (على سبيل المثال، ينتج عن main.tex الملفات main.pdf وmain.log).

2. كيف يمكنني تعطيل إنشاء ملف التجميع .log بالكامل؟

عيّن options.setLogOutput(false) قبل إنشاء وتشغيل TeXJob. ويمنع ذلك المحرك من إنشاء ملفات السجل المساعدة على القرص أو في دليل عمل الإخراج.

3. هل يمكنني التقاط رسائل طرفية TeX في بيئات الخادم/بدون واجهة رسومية؟

نعم. يتيح تعيين OutputMemoryTerminal مخصص أو تنفيذ IOutputTerminal توجيه جميع رسائل stdout/stderr الطرفية إلى نظام تسجيل المؤسسات الخاص بالخادم (مثل Log4j أو SLF4J).