مخرجات TeX مرنة وأدلة عمل المخرجات في Java

قم بتكوين أهداف المخرجات وآليات التخزين لتجميع مستندات TeX وLaTeX باستخدام Aspose.Font لـ Java. احفظ المستندات المُصيّرة (PDF وXPS وSVG وPNG وJPEG وTIFF وBMP) وملفات التجميع المساعدة (.log، .aux) مباشرةً في مجلدات القرص الفعلية أو أرشيفات ZIP المضغوطة أو التدفقات المخصصة الموجودة في الذاكرة، دون الحاجة إلى تثبيتات TeX على سطح المكتب.

 

أثناء التجميع، ينتج محرك تنضيد TeX فئتين رئيسيتين من المخرجات:

  • ملفات المخرجات الأساسية: المستند المستهدف (مثل .pdf أو .xps أو تسلسلات الصور).
  • ملفات المخرجات المساعدة: السجلات (.log) والبيانات المساعدة (.aux) والملفات الوسيطة التي تنشئها وحدات ماكرو LaTeX.

يُغلّف Aspose.TeX لـ Java وجهات المخرجات في أدلة عمل مجردة عبر الواجهة IOutputWorkingDirectory، مما يسمح للمطورين بتوجيه تدفقات المخرجات بشكل ديناميكي. أنواع أدلة المخرجات المدعومة:

  • يستخدم دليل عمل المخرجات نظام الملفات المحلي OutputFileSystemDirectory لحفظ المستندات المُصيّرة وملفات السجل مباشرةً في مجلدات القرص المحلي.
  • يستخدم دليل عمل المخرجات أرشيف ZIP OutputZipDirectory لتجميع مستندات المخرجات والسجلات والأصول المُنشأة في ملف .zip واحد.
  • يستخدم دليل عمل المخرجات التدفق المخصص/الذاكرة IOutputWorkingDirectory لالتقاط المخرجات مباشرةً في الذاكرة أو كائنات BLOB في قاعدة البيانات أو التدفقات السحابية (S3/Azure Blob).

حفظ مخرجات TeX في دليل على نظام الملفات المحلي

وجّه مخرجات المستند الأساسية وسجلات التجميع المساعدة إلى مجلد فعلي باستخدام OutputFileSystemDirectory.

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

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

        // Set input working directory
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));

        // Set output working directory for compiled documents and logs
        String outputDirPath = "C:/TeXProject/Output/";
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory(outputDirPath));

        // Execute TeX job producing PDF output
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        System.out.println("TeX compilation complete. Outputs saved to: " + outputDirPath);
    }
}

حفظ مخرجات TeX مباشرةً في أرشيف ZIP

اجمع المستندات المُصيّرة مع السجلات الوسيطة والصور المُنشأة في ملف ZIP مضغوط باستخدام OutputZipDirectory.

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

public class TeXOutputToZipArchive {
    public static void main(String[] args) throws IOException {
        // Initialize LaTeX conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));

        // Create output stream for destination ZIP file
        FileOutputStream zipStream = new FileOutputStream("C:/TeXProject/OutputBundle.zip");

        // Set output working directory to ZIP stream
        options.setOutputWorkingDirectory(new OutputZipDirectory(zipStream));

        // Run job targeting PDF rendering
        TeXJob job = new TeXJob("main", new PdfDevice(), options);
        job.run();

        zipStream.close();
        System.out.println("TeX outputs and logs successfully bundled into OutputBundle.zip.");
    }
}

تدفق مخرجات TeX إلى الذاكرة/ByteArray

بالنسبة إلى التطبيقات السحابية أو تطبيقات الويب، التقط المستندات المُصيّرة مباشرةً كتدفقات بايت دون كتابة الملفات إلى وحدة تخزين القرص المحلي.

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

public class TeXOutputToMemoryStream {
    public static void main(String[] args) throws Exception {
        // Configure conversion options
        TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
        options.setInputWorkingDirectory(new InputFileSystemDirectory("C:/TeXProject/Input/"));

        // Initialize memory output stream device
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        
        // Configure output working directory for log/auxiliary files
        options.setOutputWorkingDirectory(new OutputFileSystemDirectory("C:/TeXProject/Logs/"));

        // Run compilation directing PDF output to byte array stream
        TeXJob job = new TeXJob("main", new PdfDevice(outputStream), options);
        job.run();

        byte[] pdfBytes = outputStream.toByteArray();
        System.out.println("Generated PDF size in memory: " + pdfBytes.length + " bytes.");
    }
}

التثبيت والإعداد

قم بدمج 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>

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

1. ما هي أجهزة الإخراج المستهدفة المدعومة في Aspose.TeX for Java؟

يدعم Aspose.TeX العديد من أجهزة الإخراج، بما في ذلك PdfDevice (مستندات PDF)، وXpsDevice (مستندات XPS)، وSvgDevice (رسومات متجهة قابلة للتطوير)، وImageDevice (صور نقطية مثل PNG وJPEG وTIFF وBMP).

2. أين يتم حفظ ملفات الترجمة المساعدة (.log، .aux

تتم كتابة الملفات المساعدة إلى الدليل المحدد في TeXOptions.setOutputWorkingDirectory(). وإذا كنت تستخدم OutputZipDirectory، فسيتم تجميع ملفات .log و.aux مباشرةً داخل أرشيف ZIP إلى جانب المستند المعروض.

3. هل يمكنني منع أو إعادة توجيه ملفات سجل الإخراج؟

نعم. يمكنك تخصيص معالجة إخراج الطرفية/السجل من خلال TeXOptions.setTerminalOut() أو تعيين تطبيق مخصص لـ IOutputWorkingDirectory لتجاهل سجلات الترجمة أو إعادة توجيهها.