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

Rob*_*ick 5 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>
Run Code Online (Sandbox Code Playgroud)

post.php它保存发布的数据并包含HTML类似的内容...

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

    <?php exec("wkhtmltopdf http://example.com/post.php ecard.pdf"); ?>
Run Code Online (Sandbox Code Playgroud)

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

非常感谢任何见解。

Tim*_*olo 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");
?> 
Run Code Online (Sandbox Code Playgroud)

请参阅是否有 wkhtmltopdf 选项可以转换 html 文本而不是文件?用于解释使用文本而不是文件。