LaTeX 廣泛用於創建技術和科學文檔。 LaTeX 文件(TEX 或 LTX)是充滿了指定文檔格式的命令的源文檔,包括文本、符號、數學表達式和圖形。我們可以輕鬆地以編程方式從 LaTeX 源代碼生成 PDF 文檔。 PDF 允許以只讀格式共享文檔,而不會影響其樣式或佈局。在本文中,我們將學習如何使用 Java 從 LaTeX 源文件創建 PDF 文檔。
本文應涵蓋以下主題:
- 從 LaTeX 創建 PDF 的 Java API
- 在 Java 中從 TeX (LaTeX) 文件創建 PDF
- 在 Java 中從 LTX (LaTeX) 文件創建 PDF
- 使用 Java 將 TeX 轉換為 XPS
- 使用 Java 將 TeX ZIP 目錄轉換為 PDF ZIP 目錄
從 LaTeX 創建 PDF 的 Java API
為了從 LaTeX 源文件創建 PDF 文檔,我們將使用 Aspose.TeX for Java API。它允許將 TeX 文件排版為不同的文件格式,如 PDF、XPS 或圖像。請下載 API 的 JAR 或在基於 Maven 的 Java 應用程序中添加以下 pom.xml 配置。
存儲庫:
<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>
在 Java 中從 LaTeX TeX 文件創建 PDF
我們可以按照以下步驟從 LaTeX (TeX) 文件創建 PDF 文檔:
- 首先,使用 consoleAppOptions() 方法創建 TeXOptions 類的實例。
- 將 TeX 配置設置為 TeXConfig.objectLaTeX()。
- 接下來,設置輸入和輸出工作目錄。
- 然後,指定控制台或內存流作為輸出終端。
- 之後,設置渲染成 PDF 格式的選項。
- 最後,使用輸出 PDF 和 PdfDevice 類對像作為參數為新創建的 TexJob 類實例調用 run() 方法。
以下代碼示例演示瞭如何使用 Java 從 TeX 文件創建 PDF。
// 此代碼示例演示如何從 TeX 源文件創建 PDF。
// 工作目錄
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();
在 Java 中從 LTX 文件創建 PDF
LaTeX 使用 LTX 文件擴展名排版標記標籤和定義文檔結構和內容的屬性。我們也可以按照前面提到的步驟從 LaTeX (LTX) 文件創建 PDF。但是,我們只需要在最後一步輸入擴展名為.ltx 的源文件即可。
以下代碼示例演示瞭如何使用 Java 從 LTX 文件創建 PDF。
// 此代碼示例演示如何從 LTX 源文件創建 PDF。
// 工作目錄
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();
使用 Java 將 TeX 轉換為 XPS
我們也可以按照前面提到的步驟將 LaTeX (TeX) 文件轉換為 XPS。但是,我們只需要在第 5 步設置 XpsSaveOptions 而不是 PdfSaveOptions。
以下代碼示例演示瞭如何使用 Java 將 TeX 轉換為 XPS。
// 此代碼示例演示如何將 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();
使用 Java 將 TeX ZIP 目錄轉換為 PDF ZIP 目錄
我們可以按照以下步驟將壓縮在 ZIP 存檔中的多個 TeX 文件一次轉換為 PDF:
- 首先,打開 ZIP 存檔上的流作為輸入和輸出工作目錄。
- 接下來,使用 consoleAppOptions() 方法創建 TeXOptions 類的實例。
- 然後,將 TeX 配置設置為 TeXConfig.objectLaTeX()。
- 接下來,設置輸入和輸出 ZIP 目錄。
- 然後,指定控制台或內存流作為輸出終端。
- 之後,設置渲染成 PDF 格式的選項。
- 最後,使用輸出 PDF 和 PdfDevice 類對像作為參數為新創建的 TexJob 類實例調用 run() 方法。
以下代碼示例演示瞭如何使用 Java 將 TeX ZIP 存檔轉換為 PDF ZIP 存檔。
// 此代碼示例演示如何將 TeX ZIP 目錄轉換為 PDF ZIP 目錄。
// 工作目錄
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();
}
獲得免費許可證
您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。
結論
在本文中,我們學習瞭如何:
- 從 Java 中的 LaTeX 源文件生成 PDF 輸出;
- 以編程方式從 TeX 文件創建 XPS 輸出文檔;
- 使用 Java 將 TeX ZIP 存檔轉換為 PDF ZIP 存檔。
此外,您可以使用 文檔 了解更多關於 Aspose.TeX for Java API 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。