通过传递URL和$ _GET参数来旋转PDF?

时间:2009-05-12 18:09:10

标签: php pdf pdf-generation

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

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

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

任何意见都会受到赞赏。

- 尼古拉斯

2 个答案:

答案 0 :(得分:0)

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

我不明白“使用动态数据作为源”是什么意思(或者更确切地说,我认为生成静态PDF并不重要!),但是FPDF用于生成各种动态文档,例如e-中的发票商业产品。我看到人们使用分叉(如TCPDF)来处理Unicode数据。

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

答案 1 :(得分: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