我创建了一个测试页面来使用Prince xml进行测试,但这段代码似乎不起作用。
索引.php
require_once("prince.php");
$prince = new Prince('www1.must.edu.ph/tts/prince/Engine/bin/prince.exe');
$prince->setHTML(true);
$html = file_get_contents("reportHeader.html");
$ret = $prince->convert_string_to_file($html,'www1.must.edu.ph/tts/prince/Engine/bin/pink.pdf');
echo $html;
if($ret)
echo "converted";
else
echo "not";
每当我访问该页面时,都没有错误......它只显示回显的$html和"not"。
问题 1:
我发现了问题所在。您在.html
中运行PHP代码?将文件扩展名更改为.php
,然后重新上传到启用PHP的托管服务器,然后重试。
问题2:
构造函数设置不正确。构造函数需要服务器上的绝对路径,而不是 URL。readme.html
已经提到了这一点。它应如下所示:
$prince = new Prince('/usr/local/bin/prince');
在读我的时候,它说:
在 Windows 上,请务必指定位于
prince.exe
文件的路径 在 Prince 安装的Engine'bin
子文件夹中。
注意:大多数启用PHP的托管服务器都不是基于Windows的;即使它是基于Windows的,它也不允许你执行.exe
。
这发生在我身上,所以我使用 SSH 访问我的服务器,并意识到我没有安装字体库。 如果你使用的是 CentOS 之类的东西,那么你需要先安装一个字体库。我发现这个有用的 http://blog.whatgeek.com.pt/2011/11/10/install-core-fonts-centos-6/
使用 YesLogic PHP 包装器在 Mac 上的虚拟盒子上运行 Prince 并使用 Web 浏览器解析 PHP 文件。没有 PDF 输出,包装器没有报告错误。
上面的答案并没有为我解决问题。
所以我使用"php -f index.php"从命令行解析 PHP 文件,它起作用了。我的愚蠢错误 - 我的 PHP 文件根本没有正确的权限。