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