TCPDF,php变量值不会出现在保存的pdf文件中

时间:2011-05-23 12:04:52

标签: tcpdf

我使用TCPDF创建了一个pdf,我用一些php变量填充它,并使用heredoc语法填充当前日期

在浏览器中生成并查看pdf时,一切都很好,但在保存的pdf文件中,不显示php变量值,只显示日期...

我将变量放在顶部,如下所示:

$name = $_POST['name'];
$score = $_POST['percentage'];
$ku_number = $_POST['ku-number'];
$date = Date('d - m - Y');

保存的pdf上只显示$ date。

有什么建议吗?

谢谢

编辑:将变量传递给TCPDF的代码

// Print a text
$html = <<<EOF
<!-- EXAMPLE OF CSS STYLE -->
<style>
table{
 text-align:center;
 color:#000;
}
</style>
<table id="name" cellpadding="0">
<tr>
<td width="10" height="80">&nbsp;</td>
<td width="620">&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="620">$name</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td>&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
</table>

<table id="score" cellpadding="0" >
<tr>
<td width="10" height="180">&nbsp;</td>
<td width="620">&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="620">$score</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="10" height="207">&nbsp;</td>
<td>&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
</table>

<table id="ku-number" cellpadding="0" >
<tr height="2">
<td width="50" height="2"></td>
<td width="620" height="2"></td>
<td width="10" height="2"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="620" height="20"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="50">&nbsp;</td>
<td>$ku_number</td>
<td >&nbsp;</td>
</tr>
</table>

<table id="date" cellpadding="0" >
<tr height="2">
<td width="50" height="2"></td>
<td width="620" height="2"></td>
<td width="10" height="2"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="420" height="20">$date</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="50">&nbsp;</td>
<td></td>
<td >&nbsp;</td>
</tr>
</table>

EOF;
$pdf->writeHTML($html, true, false, true, false, '');


//Close and output PDF document
$pdf->Output('certificate.pdf', 'I');

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。我通过实验自己提到的方法找到了一个解决方案如下:

请使用连接将$ html字符串分解为多个部分。这肯定会解决问题。例如我使用过这样的东西:

$html = 'HTML CONTENT BREAKS HERE' . $variable_name . 'HTML CONTENT CONTINUES HERE' ;

通常,大多数开发人员都会在$ html值中使用PHP变量,

$html = 'HTML CONTENT echo php variable HTML CONTENT' ;

我希望这会奏效。

答案 1 :(得分:0)

获得更精确的结果:

输出最终PDF: 当您完成所有必需的单元格,图像,链接,文本等的创建后,您必须调用Output()方法来实际掌握动态创建的PDF。这可以不带参数,在这种情况下,PDF被发送到浏览器,但更常见的是,开发人员指定生成的PDF的文件名和目的地。目的地可以是四个值之一,它们是:

I:将文件内联发送到浏览器。

D:发送到浏览器并使用名称给出的名称强制下载文件。

F:保存到名称给出名称的本地文件。

S:将文档作为字符串返回。

您可以看到我的代码将目标值设置为F:

$pdf->Output(”./pdfs/example.pdf”, “F”);

引自:this

有一个bAlaNCeD生活!

答案 2 :(得分:0)

在输出PDF之前使用$ _SESSION存储变量解决了问题

积分转到Yuri Stuken