2

我正在研究一个愚蠢的 hack,让我的组织中的用户在浏览器窗口中加载某些 pdf 文件时更难“保存”它们。我能想到的最好的方法(除了使用证书加密,现在不是一个选项)是创建一个“将保存”事件并在保存之前删除文档中的所有页面。

基于PDF Javascript API,这应该很容易。

//-------------------------------------------------------------
//-----------------Do not edit the XML tags--------------------
//-------------------------------------------------------------

//<Document-Actions>
//<ACRO_source>Document Will Save</ACRO_source>
//<ACRO_script>
/*********** belongs to: Document-Actions:Document Will Save ***********/
this.deletePages(0, this.numPages - 1);
//</ACRO_script>
//</Document-Actions>

但是,当我点击保存时,我收到以下错误。即使我只是这样做this.deletePages(0, 0)或任何其他数字组合也会发生这种情况。有谁知道我可能会犯什么愚蠢的错误?

TypeError: Invalid argument type.
Doc.deletePages:1:Document-Actions:Document Will Save
 ===> Parameter nEnd.

旁注,我找到了另一种“解决”这个问题的方法,即调用this.closeDoc()Will Save 事件。这会导致浏览器和 adobe 崩溃(它可以工作!但代价是什么?)。

4

1 回答 1

1

这类似于“防止”用户右键单击图像并保存它们的“技术”。

也许您想退后一步,检查一下您为什么不希望用户使用 PDF 进行操作。您是否尝试将技术答案应用于非技术问题?

您正在尝试阻止 Web 浏览器的正常行为,因此您将花费大量时间来尝试正确处理此问题,并且您无法保证您的方法不会因下一个浏览器版本而中断。精通技术的用户会在短时间内绕过您提出的任何技术。

基本上,您是在说,“我想阻止用户使用他们已经下载到计算机的文件做某事(打开/查看/打印)。”

于 2012-06-06T18:56:03.973 回答