gpt4 book ai didi

servlets - 禁用 Adob​​e PDF 阅读器中的保存按钮并隐藏 IE 窗口中的菜单栏

转载 作者:行者123 更新时间:2023-12-02 21:56:20 25 4
gpt4 key购买 nike

我正在尝试通过 servlet 渲染 PDF,使用 Itext 获取 PDF 文件。
需要禁用 adobe pdf reader 菜单栏中的保存、打印选项,而其他选项(如滚动、查找)应该存在,此外还需要禁用呈现它的浏览器窗口的文件菜单。

我使用下面的代码禁用了打印和文件菜单

stamper.setEncryption(null,null,
PdfWriter.HideWindowUI, PdfWriter.STRENGTH40BITS);

stamper.setViewerPreferences(PdfWriter.HideToolbar);

问题是

  1. 禁用 Adob​​e PDF 阅读器菜单栏中的保存按钮(使用 **Adobe Reader 9**)。

最佳答案

我们需要区分两个不同的方面:打印和保存。

您可以加密文件并设置不允许打印的权限。但是:如果您仅使用所有者密码加密文档,则很容易解密该文档并删除限制。使用所有者密码加密文档仅在心理层面起作用:例如:您表明文档的原始制作者不希望打印该文档。

如果您想避免最终用户保存 PDF 文档,那么您的要求是不可能的。避免最终用户没有 PDF 副本的唯一方法是不向他发送 PDF。如果磁盘上没有实际字节,则无法在 Adob​​e Reader 中打开 PDF。即使您禁用保存(例如在 Web 应用程序的上下文中),您也总是会在临时文件中的某个位置找到 PDF,并且人们可以根据需要多次复制该文件。

在您的代码片段中,您尝试隐藏工具栏(查看器首选项),但这没有意义。是否会尊重此查看器偏好完全取决于 PDF 查看器。例如:在 Adob​​e Reader X 及更高版本中,当您将鼠标悬停在文档上时,会出现一个特殊的小部件。该小部件允许用户保存文档。

即使使用 Adob​​e Reader 9,隐藏工具栏也是不够的:如果用户选择适当的菜单项或点击适当的“热键”,工具栏就会出现,他们可以愉快地单击“保存”按钮。此外,他们也可以右键单击并选择“保存”。

简而言之,您问了错误的问题。

您需要做的不是阻止保存,而是控制 PDF 的实际使用,这就是 DRM(数字版权管理)的用武之地。然而,DRM 通常非常昂贵,它需要自定义 PDF 查看器,并且超出了iText 的范围。

关于servlets - 禁用 Adob​​e PDF 阅读器中的保存按钮并隐藏 IE 窗口中的菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22880444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com