newdeveloper55
Member
I would like to download a PDF after creating it from a base 64 string. I also tried with the PdfBox module but I can't use it. Do you know how I can solve it?
Here is the last code I wanted to use but which gives me an error:
import groovy.transform.CompileStatic;
import com.oracle.e1.common.OrchestrationAttributes;
import java.sql.*;
import java.util.Base64
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import javax.servlet.http.HttpServletResponse
@CompileStatic
HashMap<String, Object> main(OrchestrationAttributes orchAttr, Connection sqlConnection, HashMap inputMap)
{
HashMap<String, Object> returnMap = new HashMap<String, Object>();
def base64EncodedPDF = "base 64 code"
def pdfBytes = Base64.getDecoder().decode(base64EncodedPDF)
def outputStream = new ByteArrayInputStream(pdfBytes)
PdfController.createPdfAndDownload(response, outputStream)
return returnMap;
}
class PdfController {
static void createPdfAndDownload(HttpServletResponse response, ByteArrayInputStream inputStream) {
// Imposta i content type e gli header per indicare al browser che è un file PDF da scaricare
response.setContentType("application/pdf")
response.setHeader("Content-Disposition", "attachment; filename=output.pdf")
// Scrivi i byte del PDF nella risposta
byte[] buffer = new byte[4096]
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, bytesRead)
}
inputStream.close()
response.getOutputStream().flush()
response.getOutputStream().close()
}
}
Here is the last code I wanted to use but which gives me an error:
import groovy.transform.CompileStatic;
import com.oracle.e1.common.OrchestrationAttributes;
import java.sql.*;
import java.util.Base64
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import javax.servlet.http.HttpServletResponse
@CompileStatic
HashMap<String, Object> main(OrchestrationAttributes orchAttr, Connection sqlConnection, HashMap inputMap)
{
HashMap<String, Object> returnMap = new HashMap<String, Object>();
def base64EncodedPDF = "base 64 code"
def pdfBytes = Base64.getDecoder().decode(base64EncodedPDF)
def outputStream = new ByteArrayInputStream(pdfBytes)
PdfController.createPdfAndDownload(response, outputStream)
return returnMap;
}
class PdfController {
static void createPdfAndDownload(HttpServletResponse response, ByteArrayInputStream inputStream) {
// Imposta i content type e gli header per indicare al browser che è un file PDF da scaricare
response.setContentType("application/pdf")
response.setHeader("Content-Disposition", "attachment; filename=output.pdf")
// Scrivi i byte del PDF nella risposta
byte[] buffer = new byte[4096]
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, bytesRead)
}
inputStream.close()
response.getOutputStream().flush()
response.getOutputStream().close()
}
}