我有一个PHP应用程序,需要生成一些PDF发票和PDF时间表与漂亮的页眉/页脚。一些Stackoverflow用户建议使用TCPDF来创建PDF文档。在我的研究中,我发现了两种生成PDF的方法:
1)以编程方式格式化PDF,如下所示:
$tcpdf->SetFillColor(255, 0, 0);
$tcpdf->SetTextColor(255);
$tcpdf->SetDrawColor(128, 0, 0);
$tcpdf->SetLineWidth(0.3);
$tcpdf->SetFont('', 'B');2)将HTML转换为PDF
我如何决定我应该使用哪种方法?
发布于 2009-11-28 21:22:27
我可以推荐Zend_Pdf,根据您的分类,它是一种编程方法。
HTML抽象很好,但我不相信你拥有完整的基于几何图形的绘图API的全部功能和控制。要提防像fpdf这样的库,这些库不支持UTF-8,并使用穷人的解析器将HTML‘转换’为PDF。
关于你的申请,我已经制作了一个生成模板化发票的系统。我的用户可以上传由Zend_Pdf提取的PDF模板。然后,此模板用于生成的发票的每一页,允许轻松定制。
请注意,我的读者主要是有能力制作这些模板的图形设计师,所以这里是合适的解决方案。如果你的读者只熟悉HTML,‘转换’HTML到PDF可能是最好的方法。
发布于 2009-11-28 21:15:56
我总是建议动态创建PDF,但基于模板,这些模板可以使用最终用户工具进行编辑,或者至少不需要成为程序员。在您的例子中,可能就是HTML。对我来说,理想的解决方案是采用Office模板,以编程方式用值填充它,并在技术上可行的情况下将其输出为PDF。我使用tbsOOO在PHP中完成了办公模板填充部分,它工作得很好。
使用基于模板的方法而不是从头开始生成文档的主要原因是:用户可以按自己认为合适的方式设计模板,而当设计需要更改时就不需要您了。(总有一天它需要改变。)只有当插入的数据需要以某种方式进行更改或扩展时,程序员才会发挥作用。这对你来说是一个巨大的工作量。
发布于 2009-11-28 21:44:43
您好,您有两个选择。您可以使用,它使您能够将文档设计为常规的html文档,并使用css设置样式。您可以将此文档转换为pdf。我的经历很好。我使用Zend_View呈现了一个常规的html页面,并将其转换为pdf格式。这样你就有了一个非常灵活的模板,因为你可以在你的html生成的视图中做出各种显示决定。
请参阅list of css-compatability→。
或者,您可以使用。这也允许基于模板的方法,但更严格,html更少。一个integration for Zend Framework正在赶来。
https://stackoverflow.com/questions/1812484
复制相似问题