49 lines
2.4 KiB
Java
49 lines
2.4 KiB
Java
/*
|
|
* To change this license header, choose License Headers in Project Properties.
|
|
* To change this template file, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package com.baeldung.yarg;
|
|
|
|
import com.haulmont.yarg.formatters.factory.DefaultFormatterFactory;
|
|
import com.haulmont.yarg.loaders.factory.DefaultLoaderFactory;
|
|
import com.haulmont.yarg.loaders.impl.JsonDataLoader;
|
|
import com.haulmont.yarg.reporting.Reporting;
|
|
import com.haulmont.yarg.reporting.RunParams;
|
|
import com.haulmont.yarg.structure.Report;
|
|
import com.haulmont.yarg.structure.ReportBand;
|
|
import com.haulmont.yarg.structure.ReportOutputType;
|
|
import com.haulmont.yarg.structure.impl.BandBuilder;
|
|
import com.haulmont.yarg.structure.impl.ReportBuilder;
|
|
import com.haulmont.yarg.structure.impl.ReportTemplateBuilder;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
@RestController
|
|
public class DocumentController {
|
|
|
|
@RequestMapping(path = "/generate/doc", method = RequestMethod.GET)
|
|
public void generateDocument(HttpServletResponse response) throws IOException {
|
|
ReportBuilder reportBuilder = new ReportBuilder();
|
|
ReportTemplateBuilder reportTemplateBuilder = new ReportTemplateBuilder().documentPath("./src/main/resources/Letter.docx").documentName("Letter.docx").outputType(ReportOutputType.docx).readFileFromPath();
|
|
reportBuilder.template(reportTemplateBuilder.build());
|
|
BandBuilder bandBuilder = new BandBuilder();
|
|
String json = FileUtils.readFileToString(new File("./src/main/resources/Data.json"));
|
|
ReportBand main = bandBuilder.name("Main").query("Main", "parameter=param1 $.main", "json").build();
|
|
reportBuilder.band(main);
|
|
Report report = reportBuilder.build();
|
|
|
|
Reporting reporting = new Reporting();
|
|
reporting.setFormatterFactory(new DefaultFormatterFactory());
|
|
reporting.setLoaderFactory(new DefaultLoaderFactory().setJsonDataLoader(new JsonDataLoader()));
|
|
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
|
reporting.runReport(new RunParams(report).param("param1", json), response.getOutputStream());
|
|
}
|
|
|
|
}
|