1

我正在开发的基于 PHP 的网站需要将 PDF 文档拆分为单页。经过广泛搜索后,我最终决定使用 Stapler ( https://github.com/hellerbarde/stapler ),它是 PDFtk 的 Python 替代品。

注意:在我的例子中,PDF 文件放在 public_html 旁边的公共访问之上的目录中。我还在这里放置了订书机。


当我通过控制台运行该工具时,它运行良好。使用 -v 详细选项我会产生以下输出:

[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);

$输出转储:

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."
}
4

1 回答 1

1

您确定在您的 php 脚本中,您提供的路径 (filename.pdf) 指向有效文件吗?

我会在你的脚本中创建一个通过realpath's 审查的绝对路径,并将其作为你的命令中的参数提供。

此外,您可以使用getcwd来检查exec调用时使用的路径,并查看它是否与您在命令行上使用的路径相同。

于 2013-05-23T01:33:11.197 回答