You cannot push binary in portlet like you do in web application. What you have to do is to generate the PDF on the server and pass the path info to the portlet so that it can read the pdf as a normal client.
you might have to use the <EMBED> tag to display the pdf in the portlet.
<EMBED TYPE="application/pdf" SRC="<%=filename%>" WIDTH='<%=width%>' HEIGHT='<%=portletRequest.getAttribute("height")%>' HREF='<%=filename%>' PLUGINSPAGE="http://www.adobe.com/products/acrobat/readstep.html"
If you had used WebSphere portal, the document viewer portlet comes out of the box, but looks like you are using liferay. But its easy, you should be able to achieve the functionality.
[ December 01, 2007: Message edited by: Sanjay Kannan ]