以编程方式将生成的PDF文件打开到浏览器选项卡

时间:2015-08-02 15:39:22

标签: jsf primefaces liferay pdfbox

我已使用Apache PDFBox api在打印按钮的点击操作上创建了Pdf文件,如下所示。截至目前,我已将该文件保存到我的驱动器(文件系统)中。我需要的是将Pdf文件直接打开到浏览器而不保存到驱动器中,以便可以根据需要打印或下载。

TestPdfBean.java

@ManagedBean(name = "pdfBean")
@ViewScoped
public class TestPdfBean implements Serializable {

    public void createAndOpenPdf() {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        PDFont font = PDType1Font.HELVETICA;
        PDPageContentStream content = new PDPageContentStream(doc,page);

        content.beginText();
        content.setFont(font, 12);
        content.moveTextPositionByAmount(100, 700);
        content.drawString(" Generating Pdf content...");
        content.endText();

        content.close();
        document.save("/home/ck/Test/test.pdf");
        document.close();
    }

}

test.xhtml

的代码段
<h:form id="pdfForm">
     <p:panelGrid columns="2">

        <h:outputText value="Create Pdf file.." />
        <p:commandButton value="Print" actionListener="#{pdfBean.createAndOpenPdf}" />

    </p:panelGrid>
</h:form>

我已将上面的portlet部署到liferay-portal-6.1.1。

有没有办法通过Primefaces或Jsf Or Liferay直接将pdf文件打开到浏览器中?

2 个答案:

答案 0 :(得分:0)

我建议您查看Liferay 6.1的Liferay Faces jsf2-export-pdf-portlet演示。它有一个JSF 2.x ResourceHandler示例,可以生成和下载PDF。

答案 1 :(得分:0)

创建一个HttpServlet并在响应中返回PDF。 然后只需将commandButton链接到servlet的URL即可...