我正在研究一种愚蠢的黑客技术,让我的组织中的用户在浏览器窗口中加载某些 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.
旁注,我找到了另一种“解决”此问题的方法,即在 Will Save 事件中调用 this.closeDoc()
。这会导致浏览器和 adobe 崩溃(它可以工作!但代价是什么?)。
最佳答案
这类似于“阻止”用户右键单击图像并保存它们的“技术”。
也许您想退后一步,检查为什么您不希望用户对 PDF 进行操作。您是否正在尝试将技术答案应用于非技术问题?
您试图阻止网络浏览器的正常行为,因此您将花费大量时间来尝试解决此问题,并且您无法保证您的方法不会因下一个浏览器版本而中断。精通技术的用户将在短时间内绕过您想出的任何技术。
基本上,您是说,“我想阻止用户使用他们已经下载到计算机上的文件执行某些操作(打开/查看/打印)。”
关于javascript - PDF JavaScript 删除页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920202/