如何将wkhtmltopdf与POST数据一起使用

时间:2016-10-22 16:26:57

标签: php wkhtmltopdf

我目前使用wkhtmltopdf我尝试在用户在我们的网站上提交表单后生成.pdf文件。表单数据将提交到post.php,在那里它可以很好地显示为格式化的网页。我想生成这个确切页面的.pdf文件。

但是在尝试执行wkhtmltopdf时问题就出现了。我得到一个连续的循环,因为我试图从这个post.php文件内部生成.pdf,这也是目标。

我还尝试include()一个单独的PHP文件来处理exec()函数,但我仍然得到一个连续的循环。

也许下面的视觉有助于:

form.php包含以下内容......

<form id="ecard" action="post.php" method="post">
    <input type="text" name="ecard_message" />
    <input type="submit" />
</form>

post.php保存发布的数据并包含HTML,如此...

    <div class="content">
        <?php echo $_POST['ecard_message']; ?>
    </div>

    <?php exec("wkhtmltopdf http://example.com/post.php ecard.pdf"); ?>

我的代码在exec()函数与这些文件分开运行时工作,但我如何自动完成同一进程中的exec()

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

调用wkhtmltopdf http://example.com/post.php ecard.pdf会丢失帖子数据,因此即使有效,pdf也会为空。

而是将pdf生成为html,然后将其传递给wkhtmltopdf。例如:(未经测试)

<?php
  $html = '<div class="content">' . $_POST['ecard_message'] . '</div>';
  exec("echo $html | wkhtmltopdf - ecard.pdf");
?> 

有关使用文字而非文件的说明,请参阅Is there any wkhtmltopdf option to convert html text rather than file?