我已使用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文件打开到浏览器中?
答案 0 :(得分:0)
我建议您查看Liferay 6.1的Liferay Faces jsf2-export-pdf-portlet演示。它有一个JSF 2.x ResourceHandler示例,可以生成和下载PDF。
答案 1 :(得分:0)
创建一个HttpServlet并在响应中返回PDF。 然后只需将commandButton链接到servlet的URL即可...