XML là một Ngôn ngữ đánh dấu mở rộng tự mô tả, được khuyến nghị bởi W3C và được thiết kế để lưu trữ và vận chuyển dữ liệu. Sau khi nhận được dữ liệu ở định dạng XML, với tư cách là nhà phát triển, bạn có thể chuyển đổi nó thành bất kỳ định dạng nào tốt hơn mà con người có thể đọc được như tài liệu PDF hoặc MS Word. Bài viết này sẽ hướng dẫn bạn chuyển đổi dữ liệu XML thành báo cáo PDF và MS Word trong Java bằng cách sử dụng các mẫu đơn giản.

Các chủ đề sau đây được thảo luận dưới đây:

API Java tạo báo cáo - XML sang PDF và WORD

GroupDocs.Assembly cung cấp API Java để tự động tạo báo cáo từ dữ liệu XML bằng mẫu DOCX hoặc TXT. Nó hỗ trợ thêm JSON, CSV và các nguồn dữ liệu khác để chuyển đổi dữ liệu thành các báo cáo có thể hiển thị ở các định dạng tệp khác nhau.

Tải xuống hoặc định cấu hình

Bạn có thể tải xuống tệp JAR từ phần tải xuống hoặc chỉ nhận cấu hình kho lưu trữ và phần phụ thuộc cho tệp pom.xml của các ứng dụng Java dựa trên maven của bạn.

<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>

Tạo báo cáo PDF từ dữ liệu XML trong Java

Hãy nhanh chóng chuyển sang các bước sẽ dẫn bạn chuyển đổi dữ liệu XML thành báo cáo PDF được định dạng.

  • Tải nguồn dữ liệu XML
  • Xác định mẫu theo dữ liệu XML của bạn
  • Cung cấp nguồn dữ liệu XML và mẫu cho phương pháp tạo báo cáo.
Báo cáo XML sang PDF trong Java

Dữ liệu XML

Đối với việc tạo báo cáo PDF, dữ liệu mẫu XML sau được sử dụng. Nó chứa dữ liệu của người quản lý và khách hàng tương ứng của họ với các chi tiết.

<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>

Mẫu

Xác định mẫu sau ở định dạng TXT hoặc DOCX. Điều này cho phép lặp lại Người quản lý và Khách hàng tương ứng của họ. Sau đó, sử dụng mã được đề cập bên dưới để tạo báo cáo.

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

Các bước Java để tạo báo cáo PDF từ XML

Các bước và mã sau đây cho phép tự động tạo báo cáo PDF từ dữ liệu XML theo mẫu đã xác định.

  • Xác định tệp dữ liệu XML, tệp mẫu văn bản và tệp báo cáo đầu ra PDF.
  • Khởi tạo XMLDataSoure bằng tệp dữ liệu XML.
  • Tạo DataSourceInfo với nguồn dữ liệu XML đã xác định.
  • Gọi phương thức assembleDocument để tạo báo cáo PDF.

Đoạn mã sau thực hiện các bước trên và tạo tệp PDF từ nguồn dữ liệu XML trong Java.

// Tạo Báo cáo PDF từ dữ liệu XML bằng mẫu TXT trong Java
// Xác định nguồn dữ liệu, mẫu và tệp báo cáo đầu ra.
String xmlDataSource = "dataPath/Managers.xml";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/PDFreportFromXML.pdf";

// Tải nguồn dữ liệu XML
XmlDataSource datasource = new XmlDataSource(xmlDataSource);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");

// Tập hợp tài liệu để tạo PDF
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath,dataSourceInfo);

Tạo Báo cáo MS Word từ dữ liệu XML trong Java

Tương tự như vậy, bạn có thể tạo báo cáo MS Word DOC/DOCX từ cùng một dữ liệu XML trong Java. Sẽ không có sự khác biệt, ngoại trừ việc thay đổi tên tệp đầu ra.

  • Tải tệp dữ liệu XML.
  • Xác định mẫu ở định dạng TXT hoặc DOCX.
  • Đặt định dạng tài liệu báo cáo đầu ra là DOCX.
  • Cung cấp tệp dữ liệu XML, mẫu và đường dẫn tệp đầu ra cho DocumentAssembler để chuyển đổi XML thành DOCX.

Đoạn mã sau chuyển đổi XML và tạo tệp DOCX bằng cách sử dụng mẫu đã xác định trong Java.

// Tạo Báo cáo MS Word từ dữ liệu XML bằng cách sử dụng mẫu văn bản trong Java
// Xác định nguồn dữ liệu, mẫu và tệp báo cáo đầu ra.
String xmlDataSource = "dataPath/Managers.xml";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/WordReportFromXML.docx";

//Khởi tạo nguồn dữ liệu XML
XmlDataSource datasource = new XmlDataSource(xmlDataSource);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");

//Tập hợp tài liệu 
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath,dataSourceInfo);

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Để kết luận, bạn đã học cách chuyển đổi dữ liệu XML sang định dạng PDF dưới dạng báo cáo trong Java. Ngoài ra, bạn đã thấy việc tạo báo cáo ở định dạng DOC/DOCX từ cùng một XML bằng cách sử dụng mẫu. Sau khi đọc loạt bài Tạo báo cáo PDF và MS Word từ JSON, CSV, XML, bạn sẽ cảm thấy thoải mái trong việc xây dựng ứng dụng Java trình tạo báo cáo của riêng mình.

Tương tự, bạn có thể chuyển đổi nhiều nguồn dữ liệu khác để báo cáo. Để biết thêm chi tiết, tùy chọn và ví dụ, bạn có thể truy cập tài liệu và kho lưu trữ GitHub. Trong trường hợp có thêm thắc mắc, hãy liên hệ với chúng tôi qua diễn đàn.

Xem thêm