最近安装了wkhtmltopdf。但是,尝试以当前状态捕获整个页面时,下面的方法似乎导航到该页面的初始状态,而没有用户输入的所有输入字段。
PHP
shell_exec('wkhtmltopdf http://localhost/www/bolt/invoice.php invoice.pdf');
我想知道是否有人知道wkhtmltopdf
的实现会捕获页面的当前状态,包括在文本字段中输入的任何文本?
我感谢任何建议。
非常感谢提前!
答案 0 :(得分:4)
wkhtmltopdf独立于您当前的浏览会话点击该页面。如果你这样打,你会得到任何人第一次去你的页面时会看到的东西。您可能想要做的是使用输出缓冲区保存当前页面,然后在保存的页面上运行wkhtmltopdf。这是一些示例代码:
sub.php
<?php
$documentTemplate = file_get_contents ("template.html");
foreach ($_POST as $key => $postVar)
{
$documentTemplate =
preg_replace ("/name=\"$key\"/", "value=\"$postVar\"", $documentTemplate);
}
file_put_contents ("out.html", $documentTemplate);
shell_exec ("wkhtmltopdf out.html test.pdf");
?>
的template.php
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
</head>
<body>
<h1>This is a page</h1>
<form action="sub.php" method="post" accept-charset="utf-8">
My Test Field:
<input type="text" name="test_field" value="">
<input type="submit" value = "submit">
</form>
</body>
</html>
可能从长远来看,你应该有两种页面都会使用的某种基本模板,并且你的输入字段中有一些标记,比如value ='%valueOfThisVariable%',你可以在显示字段时用空格替换它们对用户而言,在创建要写入pdf的页面时填写用户数据。现在它只是通过并用value ='this_name-&gt; value'替换所有name ='this_name'。