LaTeX转PDF | Java
如何将LaTeX转换为PDF
让我们仔细研究Java代码,提供将LaTeX转换为PDF格式的最简单方法。
将 inputFile 设置为 LaTeX 文件(例如 hello-world.ltx)的完整路径,将 outputDirectory 设置为现有输出文件夹。导入代码片段中使用的 com.aspose.tex 和 com.aspose.tex.rendering 类。调用方法必须处理或声明异常。请按照
许可指南应用许可证,以避免评估版限制。此示例采用非交互式处理,并关闭输出资源。
1// Convert LaTeX to PDF using the default output filename.
2// inputFile is the full input path; outputDirectory is an existing output folder.
3TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
4OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
5options.setOutputWorkingDirectory(output);
6options.setSaveOptions(new PdfSaveOptions());
7options.setInteraction(Interaction.NonstopMode);
8
9PdfDevice device = new PdfDevice();
10TeXJobResult result;
11try {
12 result = new TeXJob(inputFile, device, options).run();
13} finally {
14 device.dispose();
15 output.close();
16}因此,我们需要做的第一件事(有时不是第一件事,正如我们稍后会发现的那样)是创建 Texoptions类的实例。这样做的唯一静态方法是 consoleappoptions(),因此,我们不要理会其名称的含义。该方法采用 TexConfig类的 实例,该类完全适合转换 LaTeX文件。此配置指示对象TeX引擎加载对象LaTeX格式并准备好接受LaTeX文件。对象LaTeX格式只是 LaTeX格式,只是它使用 Object tex特定的原始图来设置页面指标。
所需的第一个选项是 outputWorkingDirectory,该选项定义了将编写Tex输出的空间或区域。 这里是有关Java Aspose.TeX中输出目录概念的详细信息。在此示例中,我们使用 outputsystemdirectory类,该类使我们能够将输出写入指定的目录或文件夹。
第二个选项是 SaveOptions类实例,它将控制 对象模型对目标格式的转换。由于我们将LaTeX转换为PDF,因此是 PDFSaveoptions类实例。
然后,我们需要创建一个 Texjob类的实例。要转换存储在文件系统中的LaTeX文件,我们使用 this版本的构造函数。我们应该指定文件的完整路径。否则,发动机将在当前目录中寻找它(在 此处)中寻找它,并且很可能找不到它。但是,如果我们的文件具有 .tex一个,我们可能会省略扩展名。引擎将自动添加它。构造函数的第二个参数是 设备类实例。由于我们将LaTeX转换为PDF,因此是 PDFDEVICE类实例。作为最后一个论点,我们通过了最近准备的转换选项。
我们现在要做的就是 运行工作。
无论运行是否成功,我们都会看到的第一个结果将是终端输出。在成功的情况下,看起来像这样:
1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
2entering extended mode
3
4(<input_directory>\hello-world.ltx
5LaTeX2e <2011/06/27>
6(article.cls
7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
8(size10.clo))
9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.pdf (1 page).
13Transcript written on hello-world.log.我们将在我们指定为输出目录的文件夹中找到引擎运行的其他产品。这些将是成绩单(.log)文件,voila!,主要输出PDF文件。
编写主输出PDF文件的另一种方法
PDFDEVICE类的另一个构造函数使我们可以以另一种方式获取所得的PDF文件。
使用与上文相同的 inputFile 和 outputDirectory 值。将 pdfFile 设置为 java.nio.file.Path,例如 Paths.get(outputDirectory, "any-name.pdf")。除 Aspose.TeX 类外,还需导入 java.io.OutputStream、java.nio.file.Files、java.nio.file.Path 和 java.nio.file.Paths。
1// Convert LaTeX to PDF using an explicitly selected output stream.
2// inputFile is the full input path; outputDirectory is an existing output folder.
3// pdfFile is the java.nio.file.Path of the PDF file to create.
4TeXJobResult result;
5try (OutputStream pdfStream = Files.newOutputStream(pdfFile)) {
6 TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectLaTeX());
7 OutputFileSystemDirectory output = new OutputFileSystemDirectory(outputDirectory);
8 options.setOutputWorkingDirectory(output);
9 options.setSaveOptions(new PdfSaveOptions());
10 options.setInteraction(Interaction.NonstopMode);
11
12 PdfDevice device = new PdfDevice(pdfStream);
13 try {
14 result = new TeXJob(inputFile, device, options).run();
15 } finally {
16 device.dispose();
17 output.close();
18 }
19}指定目录中的 any-name.pdf文件将是我们的主要输出PDF文件。同时,与 图像输出不同,我们在转换选项定义的输出目录中找不到任何PDF文件。异常: any-name.pdf位于同一文件系统目录中(通过其路径),使用 outputfilesystemdirectory分配给 outputWorkingDirectory选项。
关于输入选项
如果我们的主要输入文件需要依赖项,例如,这些依赖项不包含在基本LaTeX系统和受支持的软件包中,则我们必须设置
requientInputDirectory选项选项的类似方式,我们设置了
outputworkworkingDirectory选项并将依赖项放入该目录中。依赖项可以在子目录中任意组织。如果我们有自己的文件要在排版过程中包括,例如外部图形文件,我们还必须使用通往收集这些文件的位置的路径来设置
InputWorkingDirectory。我们还可以将主输入文件放置在输入目录中的某个位置,并将相对路径传递给 TeXJob 构造函数(或者如果主输入文件位于根中,则根本没有指定路径)。
此处是有关Java ** aspose.tex中输入目录概念的详细信息,并提供了实现。
讨论了其他TEX的工作选择 此处。
您还可以查看基于 Aspose.TeX for .NET API 构建的免费 LaTeX 转 PDF 网页应用。 此处 是 Java 版本页面。