从iText生成PDF的质点面在对象组件中显示空白



我需要你的助手在object组件中显示PDF文档的内容。目前PDF显示为空白。

bean代码为:

    public void  CreatePDF() throws IOException {
      try{
        Document doc = new Document(PageSize.A4, 50, 50, 50, 50);
        OutputStream out = new ByteArrayOutputStream();
        PdfWriter writer = PdfWriter.getInstance(doc, out);
        doc.open();
        PdfPTable table = new PdfPTable(1);
        PdfPCell cell = new PdfPCell(new Phrase("First PDF"));
        cell.setBorder(Rectangle.NO_BORDER);
        cell.setRunDirection(PdfWriter.RUN_DIRECTION_LTR);
        table.addCell(cell);
        doc.add(table);
        doc.close();
        out.close();
        InputStream in =new ByteArrayInputStream(((ByteArrayOutputStream)out).toByteArray());
                    streamedContent = new DefaultStreamedContent(in, "application/pdf");
                Map<String, Object> session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
                byte[] b = (byte[]) session.get("reportBytes");
                if (b != null) {
                    streamedContent = new DefaultStreamedContent(new ByteArrayInputStream(b), "application/pdf");
                }         
      }
        catch (Exception e) {
          e.printStackTrace();
                }
    }

和jsf代码:

<p:commandButton value="Show PDF"  actionListener="#{pdf.CreatePDF}"  icon="ui-icon-disk" update=":request:testpdf" />
<p:media id="testpdf" value="#{pdf.streamedContent}" width="190" height="250" player="pdf"/>  

现在我得到下面的错误:

[p>]] ServletException的根本原因。java.lang.NoClassDefFoundError:javax/el/ValueReferenceorg.primefaces.el.InterceptingResolver.getValue (InterceptingResolver.java: 51)在com.sun.el.parser.AstIdentifier。getValue(未知来源)atcom.sun.el.parser.AstValue。getValue(未知来源)atcom.sun.el.ValueExpressionImpl。getValue(未知来源)atcom.sun.faces.facelets.el.TagValueExpression.getValue (TagValueExpression.java: 109)在org.primefaces.el.ValueExpressionAnalyzer.intercept (ValueExpressionAnalyzer.java: 69)在org.primefaces.el.ValueExpressionAnalyzer.getExpression (ValueExpressionAnalyzer.java: 45)在org.primefaces.util.DynamicResourceBuilder.build (DynamicResourceBuilder.java: 49)在org.primefaces.component.media.MediaRenderer.getMediaSrc (MediaRenderer.java: 125)在org.primefaces.component.media.MediaRenderer.encodeEnd (MediaRenderer.java: 42)在javax.faces.component.UIComponentBase.encodeEnd (UIComponentBase.java: 884)

iText WAR文件保存在/lib文件夹下,它工作得很好。兼容的版本是iText 2.1.7,请参考文档

中的依赖项。

最新更新