Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static final String OUTPUT_FILE = "report.pdf";
- private static final String UTF_8 = "UTF-8";
- @Autowired
- private AgfService service;
- @Autowired
- private DateUteisComponent dataUtil;
- public OutputStream generatePdf(Object dataReport, String template) throws Exception {
- String renderedHtmlContent = generateHtml(dataReport, template);
- String xHtml = convertToXhtml(renderedHtmlContent);
- ITextRenderer renderer = new ITextRenderer();
- renderer.getFontResolver().addFont("template/Code39.ttf", IDENTITY_H, EMBEDDED);
- String baseUrl = FileSystems.getDefault().getPath("src", "main", "resources").toUri().toURL().toString();
- renderer.setDocumentFromString(xHtml, baseUrl);
- renderer.layout();
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- renderer.createPDF(outputStream);
- outputStream.close();
- return outputStream;
- }
- private String convertToXhtml(String html) throws UnsupportedEncodingException {
- Tidy tidy = new Tidy();
- tidy.setInputEncoding(UTF_8);
- tidy.setOutputEncoding(UTF_8);
- tidy.setXHTML(true);
- ByteArrayInputStream inputStream = new ByteArrayInputStream(html.getBytes(UTF_8));
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- tidy.parseDOM(inputStream, outputStream);
- return outputStream.toString(UTF_8);
- }
- public String generateHtml(Object dataReport, String template) {
- ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
- templateResolver.setPrefix("/");
- templateResolver.setSuffix(".html");
- templateResolver.setTemplateMode(HTML);
- templateResolver.setCharacterEncoding(UTF_8);
- TemplateEngine templateEngine = new TemplateEngine();
- templateEngine.setTemplateResolver(templateResolver);
- Date instanteAtual = new Date();
- String[] instanteAtualF = dataUtil.formatDateInstant(instanteAtual);
- Context context = new Context();
- context.setVariable("instante", instanteAtualF);
- context.setVariable("data", dataReport);
- String renderedHtmlContent = templateEngine.process(template, context);
- return renderedHtmlContent;
- }`
- public OutputStream gerarRelatorioPrePostagemPorEstadoPdf(String estado) throws Exception {
- List<PrePostagemBean> prePostagensBeans = generateDataForReportForUf(estado);
- ByteArrayOutputStream outputStream = (ByteArrayOutputStream) this.generatePdfService.generatePdf(prePostagensBeans, "template/templateE");
- this.sendConfirmationHtmlEmail(outputStream.toByteArray());
- return outputStream;
- }
- @GetMapping(value = "agfs/{estado}/pdf", produces = "application/pdf")
- public ResponseEntity<?> prepostReportEstadoPdf(@PathVariable("estado") String estado) throws Exception {
- ByteArrayOutputStream os = (ByteArrayOutputStream) this.agfService.gerarRelatorioPrePostagemPorEstadoPdf(estado);
- byte[] content = os.toByteArray();
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_PDF);
- ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(content, headers, HttpStatus.OK);
- return response;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement