LaTeX широко используется для создания технической и научной документации. Файлы LaTeX (TEX или LTX) представляют собой исходные документы, заполненные командами для указания формата документа, включая текст, символы, математические выражения и графику. Мы можем легко сгенерировать документ PDF из исходного кода LaTeX программно. PDF позволяет обмениваться документами в формате только для чтения без ущерба для их стиля или макета. В этой статье мы узнаем, как создать PDF-документ из исходного файла LaTeX на Java.
В этой статье должны быть раскрыты следующие темы:
- Java API для создания PDF из LaTeX
- Создать PDF из файла TeX (LaTeX) в Java
- Создать PDF из файла LTX (LaTeX) в Java
- Преобразование TeX в XPS с помощью Java
- Преобразование ZIP-каталога TeX в ZIP-каталог PDF с использованием Java
Java API для создания PDF из LaTeX
Для создания документов PDF из исходных файлов LaTeX мы будем использовать API Aspose.TeX for Java. Он позволяет набирать файлы TeX в различные форматы файлов, такие как PDF, XPS или изображения. Пожалуйста, либо загрузите JAR API, либо добавьте следующую конфигурацию pom.xml в приложение Java на основе Maven.
Репозиторий:
<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>21.11</version>
<type>jar</type>
</dependency>
Создать PDF из файла LaTeX TeX в Java
Мы можем создать PDF-документ из файла LaTeX (TeX), выполнив следующие шаги:
- Во-первых, создайте экземпляр класса TeXOptions, используя метод consoleAppOptions().
- Установите конфигурацию TeX как TeXConfig.objectLaTeX().
- Затем установите входные и выходные рабочие каталоги.
- Затем укажите консоль или поток памяти в качестве выходного терминала.
- После этого установите параметры рендеринга в формат PDF.
- Наконец, вызовите метод run() для вновь созданного экземпляра класса TexJob с выходным PDF-файлом и объектом класса PdfDevice в качестве аргументов.
В следующем примере кода показано, как создать PDF-файл из файла TeX с помощью Java.
// В этом примере кода показано, как создать PDF-файл из исходного файла TeX.
// Рабочий каталог
String dataDir = "D:\\Files\\Tex\\";
// Создание вариантов набора.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Укажите рабочий каталог файловой системы для ввода.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));
// Укажите рабочий каталог файловой системы для вывода.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));
// Укажите поток памяти в качестве выходного терминала.
options.setTerminalOut(new OutputMemoryTerminal());
// Установите параметры рендеринга в формат PDF.
options.setSaveOptions(new PdfSaveOptions());
// Запустите набор текста.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Создать PDF из файла LTX в Java
LaTeX использует теги разметки и свойства набора файлов расширения LTX, которые определяют структуру и содержимое документа. Мы также можем создать PDF-файл из файла LaTeX (LTX), выполнив шаги, упомянутые ранее. Однако нам просто нужно ввести исходный файл с расширением .ltx на последнем шаге.
В следующем примере кода показано, как создать PDF-файл из файла LTX с помощью Java.
// В этом примере кода показано, как создать PDF-файл из исходного файла LTX.
// Рабочий каталог
String dataDir = "D:\\Files\\Tex\\";
// Создание вариантов набора.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Укажите рабочий каталог файловой системы для ввода.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));
// Укажите рабочий каталог файловой системы для вывода.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));
// Укажите поток памяти в качестве выходного терминала.
options.setTerminalOut(new OutputMemoryTerminal());
// Установите параметры рендеринга в формат PDF.
options.setSaveOptions(new PdfSaveOptions());
// Запустите набор текста.
new TeXJob(dataDir + "sample.ltx", new PdfDevice(), options).run();
Преобразование TeX в XPS с помощью Java
Мы также можем преобразовать файл LaTeX (TeX) в XPS, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить XpsSaveOptions вместо PdfSaveOptions на шаге № 5.
В следующем примере кода показано, как преобразовать TeX в XPS с помощью Java.
// В этом примере кода показано, как преобразовать Tex в XPS.
// Рабочий каталог
String dataDir = "D:\\Files\\Tex\\";
// Создание вариантов набора.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Укажите рабочий каталог файловой системы для ввода.
options.setInputWorkingDirectory(new InputFileSystemDirectory(dataDir));
// Укажите рабочий каталог файловой системы для вывода.
options.setOutputWorkingDirectory(new OutputFileSystemDirectory(dataDir));
// Укажите поток памяти в качестве выходного терминала.
options.setTerminalOut(new OutputMemoryTerminal());
// Установите параметры рендеринга в формат XPS.
options.setSaveOptions(new XpsSaveOptions());
// Запустите набор текста.
new TeXJob(dataDir + "sample.tex", new PdfDevice(), options).run();
Преобразование ZIP-каталога TeX в ZIP-каталог PDF с использованием Java
Мы можем конвертировать сразу несколько файлов TeX, сжатых в ZIP-архиве, в PDF, выполнив следующие шаги:
- Во-первых, открывайте потоки в ZIP-архивах в качестве входного и выходного рабочего каталога.
- Затем создайте экземпляр класса TeXOptions, используя метод consoleAppOptions().
- Затем установите конфигурацию TeX как TeXConfig.objectLaTeX().
- Затем установите входные и выходные ZIP-каталоги.
- Затем укажите консоль или поток памяти в качестве выходного терминала.
- После этого установите параметры рендеринга в формат PDF.
- Наконец, вызовите метод run() для вновь созданного экземпляра класса TexJob с выходным PDF-файлом и объектом класса PdfDevice в качестве аргументов.
В следующем примере кода показано, как преобразовать ZIP-архив TeX в ZIP-архив PDF с помощью Java.
// В этом примере кода показано, как преобразовать ZIP-каталог TeX в ZIP-каталог PDF.
// Рабочий каталог
String dataDir = "D:\\Files\\Tex\\";
// Откройте поток в ZIP-архиве, который будет служить входным рабочим каталогом.
final InputStream inZipStream = new FileInputStream(dataDir + "files.zip");
// Откройте поток в ZIP-архиве, который будет служить выходным рабочим каталогом.
final OutputStream outZipStream = new FileOutputStream(dataDir + "files-out.zip");
try {
// Создайте параметры преобразования для формата ObjectTeX по умолчанию в расширении ядра ObjectTeX.
TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
// Укажите рабочий каталог ZIP-архива для ввода.
options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "files"));
// Укажите рабочий каталог ZIP-архива для вывода.
options.setOutputWorkingDirectory(new OutputZipDirectory(outZipStream));
// Укажите консоль в качестве выходного терминала.
options.setTerminalOut(new OutputConsoleTerminal()); // Default. Not necessary to specify.
// Определите параметры сохранения.
options.setSaveOptions(new PdfSaveOptions());
// Запустите работу.
TeXJob job = new TeXJob("sample", new PdfDevice(), options);
job.run();
// Для последующего вывода посмотреть напишите.
options.getTerminalOut().getWriter().newLine();
// Завершить выходной ZIP-архив.
((OutputZipDirectory)options.getOutputWorkingDirectory()).finish();
} finally {
outZipStream.close();
}
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.
Вывод
В этой статье мы узнали, как:
- генерировать вывод PDF из исходного файла LaTeX на Java;
- программно создать выходной документ XPS из файла TeX;
- преобразовать ZIP-архив TeX в ZIP-архив PDF с помощью Java.
Кроме того, вы можете узнать больше об Aspose.TeX for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.