XML é um idioma eXtensivo Markup L que é autodescritivo, recomendado pelo W3C e projetado para armazenar e transportar dados. Depois de receber os dados em formato XML, como desenvolvedor, você pode convertê-los em qualquer outro formato melhor legível por humanos, como PDF ou documento MS Word. Este artigo irá guiá-lo para converter dados XML em relatórios PDF e MS Word em Java usando modelos simples.

Os seguintes tópicos são discutidos abaixo:

API Java de geração de relatórios - XML para PDF e WORD

GroupDocs.Assembly fornece a API Java para automatizar a geração de relatórios dos dados XML usando o modelo DOCX ou TXT. Ele também suporta JSON, CSV e outras fontes de dados para converter os dados em relatórios apresentáveis de diferentes formatos de arquivo.

Baixe ou configure

Você pode baixar o arquivo JAR da seção de downloads, ou apenas obter as configurações de repositório e dependência para o pom.xml de seus aplicativos Java baseados em maven.

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

Gerar relatório PDF a partir de dados XML em Java

Vamos pular rapidamente para as etapas que o levarão a converter dados XML no relatório PDF formatado.

  • Carregue a fonte de dados XML
  • Defina o modelo de acordo com seus dados XML
  • Fornecer fonte de dados XML e modelo para um método de geração de relatórios.
Relatório XML para PDF em Java

Dados XML

Para a geração do relatório PDF, são usados os seguintes dados de amostra XML. Contém os dados dos gestores e seus respectivos clientes com detalhes.

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

Modelo

Defina o seguinte modelo no formato TXT ou DOCX. Isso permite iteração sobre Gerentes e seus respectivos Clientes. Depois disso, use o código mencionado abaixo para geração do relatório.

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

Etapas Java para gerar relatório PDF a partir de XML

As etapas a seguir e o código permitem automatizar a geração de relatórios em PDF a partir dos dados XML conforme o modelo definido.

  • Definir arquivo de dados XML, arquivo de modelo de texto e arquivos de relatório de saída em PDF.
  • Instanciar XMLDataSoure com arquivo de dados XML.
  • Crie DataSourceInfo com fonte de dados XML definida.
  • Chame o método assembleDocument para gerar o relatório PDF.

O código a seguir implementa as etapas acima e gera um PDF da fonte de dados XML em Java.

// Gerar relatório PDF a partir de dados XML usando o modelo TXT em Java
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String xmlDataSource = "dataPath/Managers.xml";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/PDFreportFromXML.pdf";

// Carregar fonte de dados XML
XmlDataSource datasource = new XmlDataSource(xmlDataSource);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");

// Montar documento para gerar PDF
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath,dataSourceInfo);

Gerar relatório do MS Word a partir de dados XML em Java

Da mesma forma, você pode criar o relatório MS Word DOC/DOCX a partir dos mesmos dados XML em Java. Não haverá diferença, exceto para alterar o nome do arquivo de saída.

  • Carregue o arquivo de dados XML.
  • Definindo o template em formato TXT ou DOCX.
  • Defina o formato do documento do relatório de saída como DOCX.
  • Forneça o arquivo de dados XML, modelo e caminho do arquivo de saída para DocumentAssembler para converter o XML para DOCX.

O código a seguir converte o XML e gera o arquivo DOCX usando o modelo definido em Java.

// Gerar relatório do MS Word a partir de dados XML usando modelo de texto em Java
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String xmlDataSource = "dataPath/Managers.xml";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/WordReportFromXML.docx";

//Instanciar fonte de dados XML
XmlDataSource datasource = new XmlDataSource(xmlDataSource);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");

//Montar documento 
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath,dataSourceInfo);

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para concluir, você aprendeu a converter seus dados XML em formato PDF como um relatório em Java. Além disso, você viu a geração do relatório no formato DOC/DOCX a partir do mesmo XML usando o modelo. Depois de ler a série, Gerar relatórios em PDF e MS Word de JSON, CSV, XML, você deve se sentir à vontade para criar seu próprio construtor de relatórios Aplicativo Java.

Da mesma forma, você pode converter muitas outras fontes de dados em relatório. Para mais detalhes, opções e exemplos, você pode visitar documentation e o repositório GitHub. Em caso de dúvidas, entre em contato conosco através do fórum.

Veja também