gpt4 book ai didi

php - 使用 TCPDF 和特定 div 作为内容创建 PDF

转载 作者:行者123 更新时间:2023-12-02 19:07:37 26 4
gpt4 key购买 nike

我正在尝试通过将 HTML 代码中的收据转换为 PDF 来为 Web 应用程序创建收据,以便在完成应用程序后可以下载它。我尝试通过将目标 div 的内容分配到表单中的隐藏输入字段来将代码发送到 PHP 文件。最后按下按钮后,onclick 就会执行下面的 js 函数,以及 PHP 文件:

function print() {
var elem = document.getElementById("receipt").innerHTML;
document.getElementById("hiddenhtml").value = elem;
}

以下是表格的粗略轮廓:

<form method="post" action="htmlpdf.php" target="_blank">
<div id="receipt">
------- CONTENT THAT I WANT IN THE PDF ----------
</div>
<input type="submit" onclick="print()" value="Print"/>
<input id="hiddenhtml" type="hidden" value=""/>
</form>

其中hiddenhtml是隐藏的输入字段。按下打印按钮后,收据 div 的内容将添加到隐藏输入字段的值中。然后我尝试按如下方式传递该值:

$html = $_POST['hiddenhtml'];
$pdf->writeHTML($html, true, false, true, false, '');

在 writeHTML 函数中使用它。但是,返回的是空白 PDF 文件。我想知道是否可以将目标 div 的内容作为 writeHTML 方法中的参数传递。 div 没有外部样式,并且包含文档中所有兼容的标签。

最佳答案

您需要向文档添加一个页面来呈现您的 html,然后您需要实际输出您的页面。请参阅example pdf page 。您的代码应如下所示:-

$pdf = new TCPDF();
$pdf->AddPage('P');
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output();

我做了一些进一步的测试并创建了这段代码:-

if(isset($_POST['hidden'])){
$pdf = new TCPDF();
$pdf->AddPage('P');
$html = $_POST['hidden'];
$pdf->writeHTML($html);
$pdf->Output();
}
?>
<form method="POST">
<input name="hidden" type="hidden" value="
<div>
<h1>Receipt</h1>
<p>Some stuff</p>
<p>More stuff</p>
</div>"/>
<input type="submit" value="Submit"/>
</form>

提交后,给了我这个输出:-

enter image description here

如您所见,这是一个不错的 pdf 页面,其中呈现了我的 html。

我建议您将代码简化为像这样简单的代码,以帮助解决问题。一旦你做到了这一点,那么你就可以增加复杂性。

关于php - 使用 TCPDF 和特定 div 作为内容创建 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com