XML 是一種自描述的擴展標記語言,W3C 推薦,旨在存儲和傳輸數據。收到 XML 格式的數據後,作為開發人員,您可以將其轉換為任何其他更好的人類可讀格式,如 PDF 或 MS Word 文檔。本文將指導您使用簡單的模板將 XML 數據轉換為 Java 中的 PDF 和 MS Word 報告。

下面討論以下主題:

報告生成 Java API - XML 到 PDF 和 WORD

GroupDocs.Assembly 提供 Java API 以使用 DOCX 或 TXT 模板從 XML 數據自動生成報告。進一步支持JSON、CSV等數據源,將數據轉換為不同文件格式的可呈現報表。

下載或配置

您可以從 下載部分 下載 JAR 文件,或者只獲取基於 maven 的 Java 應用程序的 pom.xml 的存儲庫和依賴項配置。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-assembly</artifactId>
        <version>21.4</version> 
</dependency>

在 Java 中從 XML 數據生成 PDF 報告

讓我們快速跳到將引導您將 XML 數據轉換為格式化的 PDF 報告的步驟。

  • 加載 XML 數據源
  • 根據您的 XML 數據定義模板
  • 為報告生成方法提供 XML 數據源和模板。
Java 中的 XML 到 PDF 報告

XML數據

對於 PDF 報告生成,使用以下 XML 示例數據。它包含經理及其各自客戶的詳細信息。

<Managers>
	<Manager>
		<Name>John Smith</Name>
		<Contract>
			<Client>
				<Name>A Company</Name>
			</Client>
			<Price>1200000</Price>
		</Contract>
		<Contract>
		...
		</Contract>
		...
	</Manager>
	<Manager>
		<Name>Tony Anderson</Name>
		...
	</Manager>
	...
</Managers>

模板

以 TXT 或 DOCX 格式定義以下模板。這允許對經理及其各自的客戶進行迭代。之後,使用下面提到的代碼生成報告。

<<foreach \[in managers\]>>Manager: <<\[Name\]>>
Contracts:
<<foreach \[in Contract\]>>- <<\[Client.Name\]>> ($<<\[Price\]>>)
<</foreach>>
<</foreach>>

Java 從 XML 生成 PDF 報告的步驟

以下步驟和代碼允許根據定義的模板從 XML 數據自動生成 PDF 報告。

  • 定義 XML 數據文件、文本模板文件和 PDF 輸出報告文件。
  • 使用 XML 數據文件實例化 XMLDataSoure
  • 使用已定義的 XML 數據源創建 DataSourceInfo
  • 調用 assembleDocument 方法生成 PDF 報告。

下面的代碼實現了上述步驟,並用 Java 從 XML 數據源生成 PDF。

// 在 Java 中使用 TXT 模板從 XML 數據生成 PDF 報告
// 定義數據源、模板和輸出報告文件。
String xmlDataSource = "dataPath/Managers.xml";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/PDFreportFromXML.pdf";

// 加載 XML 數據源
XmlDataSource datasource = new XmlDataSource(xmlDataSource);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");

// 組裝文件生成PDF
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath,dataSourceInfo);

在 Java 中從 XML 數據生成 MS Word 報告

同樣,您可以使用 Java 從相同的 XML 數據創建 MS Word DOC/DOCX 報告。除了更改輸出文件名外,不會有任何區別。

  • 加載 XML 數據文件。
  • 以 TXT 或 DOCX 格式定義模板。
  • 設置輸出報表文檔格式為DOCX。
  • 向 DocumentAssembler 提供 XML 數據文件、模板和輸出文件路徑,以將 XML 轉換為 DOCX。

以下代碼使用 Java 中定義的模板轉換 XML 並生成 DOCX 文件。

// 使用 Java 中的文本模板從 XML 數據生成 MS Word 報告
// 定義數據源、模板和輸出報告文件。
String xmlDataSource = "dataPath/Managers.xml";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/WordReportFromXML.docx";

//實例化 XML 數據源
XmlDataSource datasource = new XmlDataSource(xmlDataSource);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");

//組裝文件 
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath,dataSourceInfo);

獲取免費的 API 許可證

您可以獲得免費的臨時許可證,以便在不受評估限制的情況下使用 API。

結論

總而言之,您已經學會了將 XML 數據轉換為 PDF 格式作為 Java 中的報告。此外,您還看到了使用模板從相同的 XML 生成 DOC/DOCX 格式的報告。閱讀完從 JSONCSV、XML 生成 PDF 和 MS Word 報告系列後,您應該能夠輕鬆構建自己的報告生成器 Java 應用程序。

同樣,您可以將許多其他數據源轉換為報表。有關更多詳細信息、選項和示例,您可以訪問 文檔 和 GitHub 存儲庫。如有進一步疑問,請通過論壇與我們聯繫。

也可以看看