XML 是一个 eXtensive Markup Language,它是自描述的、W3C 推荐的,旨在存储和传输数据。在收到 XML 格式的数据后,作为开发人员,您可以将其转换为任何其他更好的人类可读格式,如 PDF 或 MS Word 文档。本文将指导您使用简单的模板将 XML 数据转换为 Java 中的 PDF 和 MS Word 报告。

下面讨论以下主题:

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

GroupDocs.Assembly 提供 Java API 以使用 DOCXTXT 模板从 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 格式的报告。在阅读了从 JSONCSVXML 生成 PDF 和 MS Word 报告系列之后,您应该能够轻松构建自己的报告生成器Java 应用程序。

同样,您可以将许多其他数据源转换为报告。有关更多详细信息、选项和示例,您可以访问 文档 和 GitHub 存储库。如有其他疑问,请通过 论坛 联系我们。

也可以看看