我正在开发的一个基于PHP的网站需要将PDF文档拆分为单个页面。经过广泛的搜索,我最终决定使用Stapler (https://github.com/hellerbarde/stapler),这是PDFtk的Python替代品。
注意:在我的例子中,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.
SOLVED:通过使用-d选项,我可以指定输出目录。不需要更改apache运行的用户,我就可以从PHP执行订书机。
exec("python2 ../directory/stapler -vd ../directory burst ../directory/filename.pdf 2>&1", $output, $return_var);
$output的Dump:
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."
}
您确定在php脚本中提供的路径(filename.pdf)指向一个有效的文件吗?
我会在你的脚本中创建一个绝对路径,通过realpath
的检查,并在你的命令中作为参数提供。
另外,您可以使用getcwd
来检查调用exec
时使用的路径,并查看它是否与您在命令行上使用的路径相同。