1

私が取り組んでいる PHP ベースの Web サイトでは、PDF ドキュメントを 1 つのページに分割する必要があります。広範囲に検索した結果、PDFtk に代わる Python である Stapler ( https://github.com/hellerbarde/stapler ) を使用することに最終的に落ち着きました。

注:私の場合、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 から Stapler を実行できます。

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

1 に答える 1

1

PHP スクリプト内で指定したパス (filename.pdf) が有効なファイルを指していることは確かですか?

realpathの精査に合格するスクリプト内に絶対パスを作成し、それをコマンド内の引数として提供します。

また、が呼び出さgetcwdれたときに使用されるパスを確認execし、コマンド ラインで作業しているものと同じかどうかを確認するために使用できます。

于 2013-05-23T01:33:11.197 に答える