我正在进行一项愚蠢的黑客攻击,以便让我的组织中的用户在浏览器窗口加载时“保存”某些pdf更难。我能想到的最好的(除了使用证书加密,现在不是一个选项)是创建一个“Will Save”事件并删除文档中的所有页面。
基于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.
旁注,我发现另一种“解决”这种方法,即在Will Save事件中调用this.closeDoc()
。这会导致浏览器和adobe崩溃(它可以工作!但代价是什么?)。
答案 0 :(得分:0)
这类似于“防止”用户右键单击图像并保存图像的“技术”。
也许您想退一步,检查为什么您不希望用户使用PDF进行操作。您是否尝试将技术答案应用于非技术问题?
您试图阻止网络浏览器的正常行为,因此您将花费大量时间尝试正确行事,并且您无法保证您的方法不会破坏下一个浏览器版本。精通技术的用户将绕过你提出的任何技术。
基本上,你说,“我想阻止用户使用他们已经下载到他们计算机上的文件做某事(打开/查看/打印)。”