我正在研究的基于PHP的网站需要将PDF文档拆分为单个页面。 经过深入和广泛的搜索,我终于决定使用Stapler(https://github.com/hellerbarde/stapler),这是Python替代PDFtk。
注意:在我的情况下,PDF文件与public_html一起放在公共访问上方的目录中。我也在这里放置了订书机。
当我通过控制台运行时,该工具可以很好地工作。使用-v verbose选项,我得到以下输出:
[root@server directory]# python2 stapler -v burst filename.pdf
Mode: burst
filename_1.pdf
filename_2.pdf
2 page(s) in 1 file(s) processed.
已解决:通过使用-d选项,我可以指定输出目录。在没有对用户进行任何更改的情况下运行apache,我能够从PHP执行订书机。
exec("python2 ../directory/stapler -vd ../directory burst ../directory/filename.pdf 2>&1", $output, $return_var);
$ output的转储:
Dump => array(5) {
[0] => string(11) "Mode: burst"
[1] => string(16) "filename_1.pdf"
[2] => string(16) "filename_2.pdf"
[3] => string(0) ""
[4] => string(33) "2 page(s) in 1 file(s) processed."
}
答案 0 :(得分:1)
你确定你的PHP脚本中你提供的路径(filename.pdf)指向一个有效的文件吗?
我会在你的脚本中创建一个绝对路径,通过realpath
的审查,并在你的命令中提供一个参数。
此外,您可以使用getcwd
检查调用exec
时使用的路径,并查看它是否与您在命令行中使用的路径相同。