如何在primefaces媒体标记中重命名PDF

Imr*_*ram 5 embed iframe jsf pdf-generation primefaces

我在primefaces中使用streamedcontent并使用媒体标记来显示它.当在查看器中按下下载按钮时,它会下载名为dynamiccontent.properties的文件.有没有办法重命名它?

我使用的是html4,java 7和primefaces 5.2.24.

我试图设置参数#toolbar以隐藏工具栏,但它不起作用:

<p:media id="pdfViewer" value="#{mybean.pdfMedia}" width="100%" height="90%" player="pdf" cache="false" >
        <f:param name="#toolbar" value="0"></f:param>
</p:media>
Run Code Online (Sandbox Code Playgroud)

我的流内容是从iText生成的,如下所示:

   baos = new ByteArrayOutputStream();
   document = new Document();
   document.setPageSize(PageSize.A4);
   document.setMargins(70, 70, 100, 100);
   writer = PdfWriter.getInstance(document, baos);
   document.open();
   document.newPage();
   XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                new ByteArrayInputStream(pageContents));
   document.close();

   InputStream stream = new ByteArrayInputStream(baos.toByteArray());
   StreamedContent  pdfMedia = new DefaultStreamedContent(stream, "application/pdf");
Run Code Online (Sandbox Code Playgroud)

有没有办法重命名它?或者有没有办法隐藏工具栏?

Mel*_*are 5

这是您正在使用的PF 5.2.24中的错误,并且已在PF 6.1或更高版本中修复.
请参阅此错误凭单:https://github.com/primefaces/primefaces/issues/2055

确保使用构造函数org.primefaces.model.DefaultStreamedContent.DefaultStreamedContent(InputStream stream, String contentType, String name)org.primefaces.model.DefaultStreamedContent.setName(String)方法在DefaultStreamedContent中设置"NAME" .