【发布时间】:2017-09-22 16:13:54
【问题描述】:
我想在 JSF2 的新页面中打开 PDF,并在加载时在此 pdf 中显示特定页面。我的 jsf 页面中有一种 TOC,想直接从那里跳转到 PDF 中的页面。
我知道的(这不是我需要的,只是给adobe reader和其他pdf阅读器我想跳转到的页面的一个例子): 像这样的东西会打开页面(从互联网上选择一些东西): https://www.cdc.gov/diabetes/pdfs/data/statistics/national-diabetes-statistics-report.pdf#page=10
#page=10 使浏览器的pdf插件显示第10页。
选择 PDF 的要求:
- PDF 是根据必须仅驻留在 ManagedBeans 中的 ID 从 Web 服务动态下载的,因为它是秘密的,不应传递给其他人(如会话 ID...)(下面给出的分析器通过我传递的 ID在 GET 参数中,不应该这样做)
- PDF 不应该驻留在文件系统中,因为我不想处理临时文件(我在下面给出的答案实际上是在 FS 上使用 PDF,只有流它不起作用)
现在我真正的问题:我必须更改在 JSF 中显示/使用的 URL,但不能使用正常的方式和 includeViewParams,因为这会插入一个“?”,而不是一个“#”网址。
另外,我有一个支持 bean,它根据我提供的其他一些参数从后端服务获取 PDF 的内容,所以一个解决方案会很酷,但我知道这可能是不可能……
有没有人知道如何解决这个问题? 我没有包含任何代码,因为它无论如何都不起作用,而且我可能需要一种全新的方法来解决这个问题......
【问题讨论】:
-
通过 servlet 提供 pdf 服务...简单明了。没有任何 jsf 有效相关(查看您所需的 url)
-
我稍微澄清了这个问题,Servlet 可能不是一个选项,因为我无法访问打开 PDF 流所需的秘密