0

我花了很多时间试图让 dompdf ( http://www.digitaljunkies.ca/dompdf/ ) 工作,但我一直遇到问题。我正在尝试从一个 PHP 脚本生成一个 PDF,该脚本会生成一个相当复杂的、填写好的 Web 表单。该脚本接受 $_GET 参数(记录号)并使用数据库中的数据相应地填写表单。将这些数据作为字符串或任何类型的值放入脚本中没有问题。我想知道将这种类型的数据转换为 PDF 的最佳方法是什么?

流程如下:用户填写表格并进入确认页面,我想添加一个“另存为 PDF”按钮。此时可能会发生以下两种情况之一,当前正在浏览器中显示的页面可以直接转为 pdf,或者可以使用 PHP 的 http_get( ) 函数并将 HTML 存储为字符串。从那里我在准备准确的 PDF 表示时遇到问题。

我听说过一些关于 fpdf 的讨论,但他们的例子并没有真正让我相信你可以使用动态数据作为源,但如果我对此有误,请纠正我。

任何输入将不胜感激。

——尼古拉斯

4

2 回答 2

0

好吧,我不知道 dompdf。奇怪的是,它使用了商业图书馆 (PDFlib) 或过时的 (?) 图书馆(CPDF,3 年未更新)。但是,只要它有效(概念很有趣)。

我不明白您所说的“使用动态数据作为源”是什么意思(或者更确切地说,我认为生成静态 PDF 没有意义!),但 FPDF 用于生成各种动态文档,例如电子商务产品中的发票。不过,我看到人们使用叉子(如TCPDF)来处理 Unicode 数据。

您无法使用 FPDF 将 HTML 页面转换为 PDF,但您可以使用带有数据的单元格的概念对布局进行非常精确的控制。
你可以在那里看到这样的代码:http ://svn.prestashop.com/trunk/classes/PDF.php

于 2009-05-12T19:07:28.893 回答
0

过去在遇到这个问题时,我使用 FPDF 在 PDF 模板上放置数据。然后,通过设置适当的 HTTP 标头,强制浏览器弹出“下载/另存为”框以供用户保存所述 PDF。

在适当扩展 FPDF/FPDI 的类中,使用以下内容从您已经创建的模板 PDF 生成 PDF ( http://www.setasign.de/products/pdf-php-solutions/fpdi/ ) :

$this->setSourceFile('pdf_template.pdf');
$template_page = $this->importPage(1, '/MediaBox');
$this->useTemplate($template_page, 0, 0);

然后,让 FPDF 使用以下命令生成 PDF 用于输出:

$this->Output();

您还可以使用此处找到的脚本扩展 FPDF 以接受(有限的)HTML 格式:http ://www.fpdf.org/en/script/script41.php

于 2009-05-12T19:24:33.203 回答