我刚刚安装了pdf2htmlEX,没有任何问题。如果我在服务器上运行该命令,它可以正常工作。所以我知道图书馆本身正在做它应该做的事情。如果我通过exec
函数在php
中运行命令,则没有任何反应。我假设在这种情况下使用exec
??
在 PHP 中
// doesn't work
$output = exec('pdf2htmlEX --zoom 1.3 pdf/test.pdf');
// doesn't work
$output = shell_exec('pdf2htmlEX --zoom 1.3 pdf/test.pdf');
如果我在exec
函数中运行常规命令,它可以正常工作,因此我知道exec
已启用并按预期工作。
// works fine
$exec = exec('pwd', $output);
print_r($output);
直接在命令行而不是在 PHP 中
// works and generates the file as expected.
pdf2htmlEX --zoom 1.3 pdf/test.pdf
任何帮助将不胜感激。
库的命令行参考https://github.com/coolwanglu/pdf2htmlEX/wiki/Quick-Start
编辑:经过进一步挖掘后,可能是php
脚本以命令行的不同用户身份运行。那么我的问题是如何检查/解决此问题?
您只需要在命令中添加输出 html 路径和文件名:
大多数软件包pdf_to_something exec() 的使用都是package_name [options] <input-filename> <output-filename>
$path = 'path/to/your/folder/';
$command = 'pdf2htmlEX '.$path.'test.pdf '.$path.'test.html';
exec($command);
尝试关注并检查您的文件是否在工作目录中创建。
exec('pdf2htmlEX --zoom 1.3 pdf/test.pdf',$output);
pdf2htmlEX
不输出任何内容。
$cmd= "pdf2htmlEX --zoom 1.3 test/test.pdf";
exec($cmd, $output);
将在当前目录中创建一个test.html
文件。
你期待别的东西吗?
注意:我已经通过在 ubuntu 上安装pdf2htmlEX
对此进行了测试
sudo apt-get install pdf2htmlex
要获取输出,
$a = file_get_contents("test.html");
echo $a;