Гнучке виведення TeX і робочі каталоги виведення в Java

Налаштуйте цільові об’єкти виведення та механізми зберігання для компіляції документів TeX і LaTeX за допомогою Aspose.Font for Java. Зберігайте відрендерені документи (PDF, XPS, SVG, PNG, JPEG, TIFF, BMP) і допоміжні артефакти компіляції (.log, .aux) безпосередньо у фізичних папках на диску, стиснених ZIP-архівах або спеціальних потоках у пам’яті без необхідності встановлення настільних TeX.

 

Під час компіляції механізм верстки TeX створює дві основні категорії виведення:

  • Файли основного виведення: Цільовий документ (наприклад, .pdf, .xps або послідовності зображень).
  • Допоміжні файли виведення: Журнали (.log), допоміжні дані (.aux) і проміжні файли, створені макросами LaTeX.

Aspose.TeX for 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 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>

FAQ

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, щоб відкидати або перенаправляти журнали компіляції.