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 for 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 pom.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.
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.