Note that there are some explanatory texts on larger screens.

plurals
  1. POLiferay - Creating PDF and outputing to stream
    primarykey
    data
    text
    <p>Having a little trouble here. Basic premise is that I need to hit a button, generate HTML, create PDF, and throw into output-stream for download:</p> <pre><code>&lt;ice:commandButton title="Download" image="/images/dl.png" value="Download" action="#{bean.downloadPDF}"&gt; &lt;/ice:commandButton&gt; </code></pre> <hr> <pre><code>public void downloadPDF() throws IOException { PD4ML pdf = new PD4ML(); pdf.setPageSize(PD4Constants.LETTER); pdf.setPageInsets(new Insets(0, 0, 0, 0)); pdf.setHtmlWidth(1000); pdf.enableImgSplit(false); pdf.generateOutlines(false); File pdfFile = new File("tmp.pdf"); FileOutputStream fos = new FileOutputStream(pdfFile); StringReader sr = new StringReader("&lt;p&gt;Testing Download&lt;/p&gt;"); pdf.render(sr, fos); FacesContext facesContext = FacesContext.getCurrentInstance(); PortletResponse portletResponse= (PortletResponse)facesContext.getExternalContext().getResponse(); ResourceResponse portletResourceResponse = (ResourceResponse) portletResponse; portletResourceResponse.setContentType("application/pdf"); OutputStream out = portletResourceResponse.getPortletOutputStream(); out.flush(); facesContext.responseComplete(); } </code></pre> <p>Problem I am having is after the <code>pdf.render()</code>, when I attempt to generate the response based on the current context and the convertion to <code>ResourceResponse</code>:</p> <pre><code>java.lang.ClassCastException: com.liferay.portlet.RenderResponseImpl cannot be cast to javax.portlet.ResourceResponse </code></pre> <p>What is the proper way to take that file and output it in Liferay/portlet?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload