使用wkhtmltopdf生成PDF

时间:2014-05-15 08:36:58

标签: php pdf wkhtmltopdf

我试图用PHP生成带wkhtmltopdf的PDF:

<?php
if(isset($_POST['submit']))
{
    require_once("../include/WkHtmlToPdf.php");

?>
<div id="layout">
<div id="top">
    <img src="images/logo.png">
    <br/><br/><br/>
    Net at Once <br/>
    Box 177 <br/>
    351 04 Växjö
</div>
<div id="addresspos">
<?= $_POST['firstname'] ?> <?= $_POST['lastname'] ?><br/>
<?= $_POST['address'] ?><br/>
<?= $_POST['zip'] ?> <?= $_POST['city'] ?>
</div>
<div id="middle">
<p><?= $_POST['textcontent'] ?>
</div>
<div id="bottomcontent">
<div class="addressinfo">Net at Once Sweden AB</div> 
<div class="addressinfo">Adress<br/>Box 177<br/>351 04 Växjö</div> 
<div class="addressinfo">Telefon<br/>0771-40 44 00</div> 
<div class="addressinfo">Fax<br/>0470-137 77</div> 
<div class="addressinfo">E-post/Hemsida<br/>support@netatonce.se<br/>www.netatonce.se</div>
<div class="addressinfo">Org.nr<br/>556506-3491<br/>Godkänd för f-skatt</div> 
</div>
</div>

<?php
$pdf = new WkHtmlToPdf;
$pdf->addPage('/var/www/kadm/www/ebrevcreate.php');
$pdf->addToc();
$pdf->saveAs('/var/www/kadm/www/test.pdf');
$pdf->send();
echo "<pre>";
var_dump($pdf);
echo "</pre>";
}
?>

当我运行脚本时,收到以下错误消息:

"Could not run command '/usr/bin/wkhtmltopdf' '/var/www/kadm/www/ebrevcreate.php' 'toc' /tmp/tmp_WkHtmlToPdf_yrCVEE:
wkhtmltopdf: cannot connect to X server 

任何可以帮助我的人?​​

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你绝对没有任何问题!

您之前需要使用xvfb命令! 如果从服务器启动命令,则没有X服务器,则需要添加

xvfb-run 

之前的命令&#34; wkhtmltopdf&#34;要创建虚拟帧缓冲区,只需在命令之前添加xvfb-run。

最后你会得到这样的东西:

xvfb-run wkhtmltopdf http://yourlink.com

我认为你需要编辑WkHtmlToPdf.php文件中的一些行来添加xvfb命令。