【发布时间】:2020-04-25 22:21:25
【问题描述】:
我正在使用 PF 6.2 并尝试使用 p:media 组件来显示 PDF。
(我不再使用 pe:documentViewer 只是因为它目前不显示数字签名,因为 PDF.js 首先不支持该功能)。
但是,我观察到呈现的 PDF 查看器的外观在不同浏览器中是不同的。
我的用法:
<p:media id="pdfVw" height="600" width="800" value="#{viewerController4.pdfDocumentStream}" player="pdf" cache="false">
<f:param name="id" value="#{viewerController4.currentDocId}" />
</p:media>
在后台bean中:
public StreamedContent getPdfDocumentStream() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
String id = context.getExternalContext().getRequestParameterMap().get("id");
Doc doc = pdfDocMap.get(id);
return new DefaultStreamedContent(new FileInputStream(new File(doc.getDocPath())), "application/pdf", doc.getDocName());
}
}
关于外观...例如,在 Chrome 中:
* 页面没有缩略图条!
* 字符串“Microsoft word-Dokument1”来自 PDF 的“title”属性(我希望我可以禁止显示它!)
在 Firefox 中:
* 缩略图条在那里
* 数字签名不见了!
* 标题字符串不存在(对我来说,这是一个加号)
* 与 Chrome 相比,菜单也完全不同
(在 IE 中就更不一样了)
我的客户的目标浏览器是 Chrome。
如果我能以某种方式抑制该标题并开始在 Chrome 中显示缩略图条,那将完全解决我的目的。有什么建议吗?
【问题讨论】:
-
这里你可以找到如何配置一些customizations (toolbar->0 隐藏工具栏,这是我找到的最接近的选项,虽然它是一个有点激烈的解决方案,但据报道@987654330 @)
-
另外请注意,Firefox 的 PDF 渲染器是 PDF.js,这解释了为什么数字签名消失了。 PDF.js 是一个 Mozilla 项目,专门用于在 Firefox 浏览器中呈现 PDF。
-
@Melloware 非常感谢您提供的信息。那时我不会在 Firefox 上追逐任何 PDF 版本。
-
@WoAiNii 正如你所建议的,这个
<f:param name="#toolbar" value="0"/>会消失整个工具栏本身。但就个人而言,我没有任何运气单独压制标题。我意识到,至少对于 Chrome,工具栏中的标题来自 PDF 的 "title" 元数据。因此,如果我想显示与文件名相同的标题,那么一种选择可能是在显示之前编辑原始 PDF 本身——但这不是一个好的解决方案(尽管它确实有效)。跨度> -
如果我能知道其他
<f:param>配置值可以传递给用于 PDF 播放器的 Chrome 的<p:media>,那将是一些希望......但我找不到任何文档这个 :(
标签: pdf primefaces primefaces-extensions