0

I have a code look as below:

                JasperPrint print = JasperFillManager.fillReport(reportsrc, Param, conn);
                JRExporter exporter = new JRPdfExporter();
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
                exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outputFile);
                exporter.exportReport();

which are working fine to output a pdf file to a physical folder. What I want is to export the pdf as base64 string. Is there any way to do that?

thanks

Teddybugs
  • 1,232
  • 1
  • 12
  • 37
  • 1
    You can use `exportReportToStream` to send the PDF to an OutputStream which performs Base64 encoding. – tgdavies Sep 24 '21 at 03:37

1 Answers1

1

I got it working by following code:

final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
JasperPrint print = JasperFillManager.fillReport(reportsrc, Param, conn);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
exporter.exportReport();

byte[] output = outputStream.toByteArray();
String pdfbase64 = Base64.getEncoder().encodeToString(output);
System.out.println("pdf: "+pdfbase64 );
Teddybugs
  • 1,232
  • 1
  • 12
  • 37