在你们开始咆哮之前......我已经知道,无论我做什么,总会有一种从网页下载图片和 PDF 的方法。
但我们假设我的用户不太懂技术,只了解基础知识。
在我们的网络应用程序中显示某些图像和 PDF 时,我被要求“禁用”下载选项。
我设法用一行 CSS 禁用了图像的上下文菜单,但我在处理 PDF 时遇到了问题。
到目前为止我已经尝试过:
- 使用该标签,向上移动元素以隐藏工具栏。在 Firefox 上工作正常,然后我发现其他浏览器只在悬停时显示下载按钮
- 用透明 div 覆盖元素。曾在 FF 和 Chrome 工作过。不适用于 IE 和 Edge(嵌入元素始终放在其余元素之上)
- 与两个相同,但使用 iFrame。 IE 在 后面时根本不显示 iFrame
- 我使用 SwingLabs PDF 渲染器将 PDF 转换为图像。最终图像颜色全部错误。
由于安全限制,我的资源有限,而且我已经没有想法了。有什么建议吗?
注意:能够查看这些 PDF 的用户需要进行身份验证并拥有特殊权限,因此不必担心摆弄。
最佳答案
虽然我同意有关要求的答案是愚蠢的,但有一些方法可以解决您的问题。也就是说,不要给普通用户提供 PDF,而是其他东西。并将 PDF 提供给特权用户。您已经指出您有办法区分它们。
您可以使用一些库将 PDF 转换为其他格式。我曾经被分配过一个相对相似的任务。我的任务是在用户下载文档并且客户端应用程序打开相关的文字处理软件之前预览文档。
虽然我不能凭良心推荐 Aspose 库(我真的不喜欢使用这个工具),但它们是我当时工作的公司正在使用的东西,而且我知道它们可以做什么你需要做的。它们既不像言论自由那样免费,也不像免费啤酒那样免费,但它们可以免费下载和试用,但代价是生成/转换的文档上有一个大水印。
我让 Aspose 完成将文档转换为 HTML 文件的工作,并将其加载到我界面中的 iFrame 中。
如果以其他格式提供 PDF 内容的解决方案不能被您的经理接受,那么您确实需要让他们知道他们的愚蠢行为。
关于java - 防止(普通用户)下载 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56576187/