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