JSON es un formato de intercambio de datos formateado y legible para transmitir datos con atributos. Sin embargo, los grandes datos en formato JSON no son muy presentables y fácilmente comprensibles. Principalmente necesitamos convertir los grandes datos JSON en un formato presentable. Este artículo lo guiará para convertir datos JSON en informes PDF y MS Word en Java usando una plantilla simple.

API Java de generación de informes

Usaré la API GroupDocs.Assembly para Java para generar informes a partir de la plantilla y los datos JSON proporcionados en formato DOCX y TXT. También admite la generación automática de informes en múltiples formatos a partir de fuentes de datos CSV, XML.

Descargar o configurar

Puede descargar el archivo JAR de la sección de descargas, o simplemente obtener el repositorio y las configuraciones de dependencia para el pox.xml de sus aplicaciones Java basadas en 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>

Generar informe en PDF a partir de datos JSON en Java

Pasemos rápidamente a los pasos que lo llevarán a convertir datos JSON en el informe PDF formateado.

  • Obtener fuente de datos JSON
  • Definir plantilla según datos JSON
  • Proporcione una fuente de datos JSON y una plantilla a un código Java simple para la generación de informes.
Informe JSON a PDF en Java

Datos JSON

Para la generación de informes en PDF, usaré los siguientes datos JSON de muestra de gerentes y sus respectivos clientes y detalles.

\[
	{
		"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 la siguiente plantilla en formato TXT o DOCX. Esto permitirá iterar sobre los Gerentes y sus respectivos Clientes y sus detalles. Después de eso, puede saltar al código para la generación de informes.

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

Pasos de Java para generar un informe PDF desde JSON

Los siguientes pasos y el código Java permiten la conversión automática de datos JSON en informes PDF según la plantilla definida.

  • Defina el archivo de datos JSON, el archivo de plantilla .txt y las rutas del archivo de informe de salida PDF.
  • Instanciar JsonDataSoure con el archivo de datos JSON.
  • Crear DataSourceInfo con JsonDataSource definido.
  • Llame al método assembleDocument de la clase DocumentAssembler para generar el informe en PDF a partir de los datos JSON proporcionados y la plantilla definida.
// Genere un informe en PDF a partir de datos JSON utilizando una plantilla TXT en Java con GroupDocs.Assembly API
// Defina la fuente de datos, la plantilla y los archivos de informe de salida.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromJSON.pdf";				
// Crear una instancia de la fuente de datos JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Generar informe
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Genere un informe de MS Word a partir de datos JSON en Java

De manera similar, al igual que la generación de informes en PDF anterior, puede crear fácilmente el informe DOCX al:

  • Definición de la misma plantilla en formato DOCX.
  • Establezca el formato del documento de informe de salida como DOCX.
  • El resto del código seguirá siendo el mismo para generar un informe DOCX de MS Word a partir de los datos JSON.
// Genere un informe de Word a partir de datos JSON usando una plantilla DOCX en Java con GroupDocs.Assembly API
// Defina la fuente de datos, la plantilla y los archivos de informe de salida.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/reportFromJSON.docx";			
// Crear una instancia de la fuente de datos JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Generar informe
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Para obtener más detalles, opciones y ejemplos, puede consultar el repositorio de documentación y GitHub. En caso de más consultas y ambigüedades, comuníquese con el soporte gratuito en el foro.

Conclusión

Espero que se sienta cómodo creando su propia aplicación basada en Java para generar informes al convertir datos JSON a formato PDF. Del mismo modo, puede generar informes en otros formatos como DOCX utilizando otras fuentes de datos como CSV y XML.

Ver también