1

我有一个在 JAVA 中使用 iText 动态生成的 PDF。豆属性:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
Document document = new Document(PageSize.LETTER);
pdfWriter = PdfWriter.getInstance(document, baos);
//iText code here
ByteArrayInputStream stream = new ByteArrayInputStream(baos.toByteArray());
StreamedContent file = new DefaultStreamedContent(stream,"application/pdf","Sds.pdf");

所以,bean 属性返回这个 StreamedContent 类型的文件变量。当我使用标签时,它就像一个魅力。但是,当我按如下方式使用媒体对象时:

    <p:media player="pdf" height="500" width="400" value="#{beanName.beanProperty}"></p:media>

我收到警告“文件不以 %pdf- 开头”,在控制台中显示

"org.primefaces.application.PrimeResourceHandler handleResourceRequest
 SEVERE: Error in streaming dynamic resource. Expression cannot be null"

我也尝试过使用 iframe,但没有运气。基本上,我试图在网页上嵌入一个框架,我生成的动态 PDF 可以在页面加载后立即自动加载。静态 URL 有效,但动态内容无效!我尝试了各种解决方案。Primefaces downloadLink 有效,但 primefaces media 无效。顺便说一句,我正在尝试在 IE9 中实现这一点。(它也不适用于 Chrome)。我真的很感激任何帮助。谢谢!

4

0 回答 0