JSON é um formato de intercâmbio de dados formatado e legível para transmitir dados com atributos. No entanto, os grandes dados em formato JSON não são muito apresentáveis e facilmente compreensíveis. Na maioria das vezes, precisamos converter os grandes dados JSON em um formato apresentável. Este artigo irá guiá-lo para converter dados JSON em relatórios PDF e MS Word em Java usando um modelo simples.

API Java de geração de relatórios

Usarei a API GroupDocs.Assembly for Java para gerar relatórios a partir dos dados e modelos JSON fornecidos nos formatos DOCX e TXT. Ele também suporta a geração automática de relatórios em vários formatos de fontes de dados CSV, XML.

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 pox.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.1</version> 
</dependency>

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

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

  • Obter fonte de dados JSON
  • Definir modelo de acordo com dados JSON
  • Fornecer fonte de dados JSON e modelo para código java simples para geração de relatórios.
Relatório JSON para PDF em Java

Dados JSON

Para a geração do relatório PDF, usarei os seguintes dados JSON de amostra de gerentes e seus respectivos clientes e detalhes.

\[
	{
		"Name":"John Smith","Contract":\[
		{"Client":{"Name":"A Company"},"Price":1200000},
		{"Client":{"Name":"B Ltd."},"Price":750000},
		{"Client":{"Name":"C & D"},"Price":350000}\]
	},
	{
		"Name":"Tony Anderson","Contract":\[
		{"Client":{"Name":"E Corp."},"Price":650000},
		{"Client":{"Name":"F & Partners"},"Price":550000}\]
	},
	{
		"Name":"July James","Contract":\[
		{"Client":{"Name":"G & Co."},"Price":350000},
		{"Client":{"Name":"H Group"},"Price":250000},
		{"Client":{"Name":"I & Sons"},"Price":100000},
		{"Client":{"Name":"J Ent."},"Price":100000}\]
	}
\]

Modelo

Defina o seguinte modelo no formato TXT ou DOCX. Isso permitirá iterar sobre os Gerentes e seus respectivos Clientes e seus detalhes. Depois disso, você pode pular para o código para geração de 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 JSON

As etapas a seguir e o código Java permitem a conversão automática de dados JSON em relatório PDF conforme o modelo definido.

  • Definir arquivo de dados JSON, arquivo de modelo .txt e caminhos de arquivo de relatório de saída em PDF.
  • Instanciar JsonDataSoure com arquivo de dados JSON.
  • Crie DataSourceInfo com JsonDataSource definido.
  • Chame o método assembleDocument da classe DocumentAssembler para gerar o relatório PDF a partir dos dados JSON fornecidos e do modelo definido.
// Gerar relatório PDF a partir de dados JSON usando modelo TXT em Java com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromJSON.pdf";				
// Instanciar fonte de dados JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

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

Da mesma forma, como na geração do relatório PDF acima, você pode criar facilmente o relatório DOCX:

  • Definindo o mesmo template no formato DOCX.
  • Defina o formato do documento do relatório de saída como DOCX.
  • O restante do código permanecerá o mesmo para gerar o relatório MS Word DOCX a partir dos dados JSON.
// Gerar relatório do Word a partir de dados JSON usando o modelo DOCX em Java com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/reportFromJSON.docx";			
// Instanciar fonte de dados JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Para mais detalhes, opções e exemplos, você pode acessar os repositórios documentation e GitHub. Em caso de dúvidas e ambiguidades, entre em contato com o suporte gratuito no fórum.

Conclusão

Espero que você se sinta à vontade para construir seu próprio aplicativo baseado em Java para gerar relatórios convertendo dados JSON para o formato PDF. Da mesma forma, você pode gerar relatórios em outros formatos como DOCX usando outras fontes de dados como CSV e XML.

Veja também