在tcpdf中添加动态内容

问题描述

我有一个需要以 pdf 格式处理的表单结果。

我正在考虑使用 tcpdf。

它在一个例子中有这个代码

// Set some content to print
$html = <<<EOD
<h1>Welcome to </h1>
etc..
EOD;

// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0,'',$html,1,true,true);

现在我想要在 html 部分,例如:

$html = <<<EOD
<h1>Welcome to !</h1><table>
$resultcvp = $conn->query($sqlcvp);
if ($resultcvp->num_rows > 0) {
    // output data of each row
    while($row = $resultcvp->fetch_assoc()) {
        echo "<tr><td>" . $row["PARTNUMBER"]. " </td><td> " . $row["DESCRIPTION"]. "</td><td> " . $row["AMOUNT"]. "</td></tr>";
    }
};
</table>
EOD;

};

但是无论我尝试什么,我都无法在 pdf 中加载这个 while 语句结果。 有什么想法吗?谢谢!

解决方法

当您处于代码的 HEREDOC 部分时,您不能执行循环和查询。您需要在循环过程中构建 HTML。

$html = '<h1>Welcome to !</h1><table>';
$resultcvp = $conn->query($sqlcvp);
if ($resultcvp->num_rows > 0) {
    while($row = $resultcvp->fetch_assoc()) {
        $html .= '<tr><td>' . $row["PARTNUMBER"]. ' </td><td> ' . $row["DESCRIPTION"]. '</td><td> ' . $row["AMOUNT"]. '</td></tr>';
    }
};
$html .= '</table>';
$pdf->writeHTMLCell(0,'',$html,1,true,true);