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

问题描述 投票:0回答:3

我在 primefaces 中使用流式内容并使用媒体标签来显示它。当在查看器中按下下载按钮时,它会下载名为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>

我的流媒体内容是从 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");

有什么办法可以重命名吗?或者有什么办法可以隐藏工具栏吗?

jsf iframe primefaces pdf-generation embed
3个回答
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”。


0
投票

您需要使用构造函数为流式内容设置名称

org.primefaces.model.DefaultStreamedContent.DefaultStreamedContent(InputStream stream, String contentType, String name)
org.primefaces.model.DefaultStreamedContent.setName(String)
方法。


0
投票

搜索报告 本报告反映了截至 2020 年 8 月 2 日以纸质形式交付的文件以及以电子方式交付的文件 至 2020 年 8 月 4 日 搜索标准: 文件编号:MR00700000A 本报告创建于: 2020 年 8 月 4 日星期二上午 11:27:37 搜索条件不返回任何结果。

© www.soinside.com 2019 - 2024. All rights reserved.