我正在使用WordPress网站。在前端,我将提供在线创建简历的功能。在提交表格时,他将获得下载选项和以PDF格式打印简历。直到现在一切正常如果我传递一个简单的html文件转换成PDF。但我想从插入数据库的简历字段中创建一个PDF。如果我传递普通的html文件进行转换,它可以正常工作。 但是,如果我想创建PHP文件的动态PDF文件,该怎么办呢? 这是我尝试过的代码: 我已经使用了html2pdf转换库。
这是一个调用test.php的文件。
require("html2pdf/html2fpdf.php");
$htmlFile = "test.php";
$buffer = file_get_contents($htmlFile);
$pdf = new HTML2FPDF('P', 'mm', 'Letter');
$pdf->AddPage();
$pdf->WriteHTML($buffer);
$pdf->Output('test.pdf', 'F');
test.php文件是:
<html>
<body>
<?php
$username = "";
$password = "";
$hostname = "";
$dbname = "";
// Create connection
$con = mysqli_connect($hostname, $username, $password, $dbname);
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo $result = mysqli_query($con,"SELECT * FROM wp_resume ORDER BY id DESC LIMIT 1");
echo "hioooooo";
while($row = mysqli_fetch_array($result))
{
?>
<div>
<label>First Name</label><script type="text/php"><?php echo $row['firstName']; ?></script><br>
<label>Last Name</label><script type="text/php"><?php echo $row['lastName']; ?></script><br>
</div>
<?php
}
?>
</body>
</html>
现在提交表单后,我收到的PDF文件只包含这些数据:
我希望插入条目的所有细节。显然,这会忽略<?php ?>
标记内的代码。所以即使我使用var_dump()
,我也没有得到任何东西。
所以请帮助我这些家伙。如何将PHP数据传递给PDF文件。
答案 0 :(得分:2)
嘿,我得到了解决方案。正确的代码是:
require("html2pdf/html2fpdf.php");
$html = '<h2>Resume</h2>';
$query = "SELECT * FROM wp_resume order by id desc limit 1";
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result))
{
$html .= '<div>
<label>First Name</label> '. $row['firstName'].'<br>
<label>Last Name</label> '. $row['lastName']. '<br>
</div>';
}
$pdf = new HTML2FPDF('P', 'mm', 'Letter');
$pdf->AddPage();
$pdf->WriteHTML($html);
$pdf->Output('test.pdf', 'F');
我希望这会对某人有所帮助....
答案 1 :(得分:0)
file_get_contents返回文件的内容,而不将其解析为PHP ...
替换
$buffer = file_get_contents($htmlFile);
使用
ob_start();
include($htmlFile);
$buffer = ob_end_clean();
我们正在做什么:打开一个输出缓冲区(这可以防止echo在出现时进入客户端)然后我们包含PHP文件以便解析它们。记住所有回声都在输出缓冲区中,所以用ob_end_clean()抓取它并使用生成的HTML制作PDF。