如何使用princeXML和PHP进行转换

时间:2013-10-21 18:43:35

标签: php princexml

我按照自述文件上的说明进行操作,但我没有收到任何错误,也没有任何输出或任何写入日志文件的内容。 那么,与王子一起转换和HTML文件到PDF的正确方法是什么,谢谢你。

ini_set('display_errors', '1');
error_reporting(-1);

require 'prince.php';



$exepath='/Users/agk/Desktop/prince/bin/prince';
$prince= new Prince($exepath);

if(!$prince) die("Prince instantiation failed");


$prince->setHTML(TRUE);
$prince->setLog('prince.log');


$xmlPath='/Applications/MAMP/htdocs/test/newhtml.html';



$msgs= array();
$convert=$prince->convert_file($xmlPath, $msgs);


if(!$convert)
{
echo 'nothing converted';
var_dump($msgs);

 }

1 个答案:

答案 0 :(得分:1)

我注意到你正在使用MAMP - 这就是我遇到同样问题的地方 - 这就是我修复它的方法。

我设法找到一个与在MAMP上通过PHP运行shell命令相关的答案elsewhere on SO,所以会分享这个。

问题是在MAMP中设置了DYLD_LIBRARY_PATH,而PHP中的shell / shell_exec命令正在寻找其他地方。

正如原帖中所解释的那样,这可能不是最好的解决办法,但它现在让我起作用了 - 而那些替代建议对我来说并不适用。

所以,试试这个:

打开/ Applications / MAMP / Library / bin / envvars文件并注释以下行:

#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH

然后重启Apache

它可能搞砸了其他MAMP设置,但我现在可以忍受它,因为我需要在我的Mac上本地工作以进行测试,然后才将它加载到实时Linux服务器上。

希望这有帮助。