Steam / View pdf using helper method on managebean using byte array and HttpServletResponse

Posted: March 22, 2013 in web

xhtml

<h:commandLink action=”#{BBean.streamPDF()}” value=”View PDF” target=”_blank” />
Backing Bean


public void streamPDF() throws IOException, DocumentException {
 byte[] pdfData = generateContract();
 ExternalContext externalContext = facesContext.getExternalContext();
 HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

response.reset();
 response.setContentType("application/pdf");
 OutputStream output = response.getOutputStream();
 output.write(pdfData);
 output.close();

facesContext.responseComplete();
 }

public byte[] generateContract() throws IOException, DocumentException {
 InputStream inputStream = Thread.currentThread().getContextClassLoader()
 .getResourceAsStream("template.pdf");

PdfReader reader = new PdfReader(inputStream);

ByteArrayOutputStream out = new ByteArrayOutputStream();

PdfStamper pdfStamper = new PdfStamper(reader, out);
 AcroFields acroFields = pdfStamper.getAcroFields();

acroFields.setField("Sample", "sample text");

pdfStamper.close();
 reader.close();
 return out.toByteArray();
 }
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s