使用LiveDocx和Zend Framework生成基于模板的文档

本文介绍了一种使用PHP生成PDF的新方法,通过在WYSIWYG环境中创建模板,然后使用PHP填充数据,解决了传统HTML-to-PDF和程序化方法的不足。此方法不仅能够生成PDF,还能生成DOCX、DOC和RTF等格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用PHP生成打印良好的格式良好的PDF文档并非易事。 传统上,使用PHP生成PDF有两种主要方法。 如果有足够的时间和耐心,两者都可以完成工作,但仍然有很多不足之处:

HTML-to-PDF: 这种方法广泛用于主流应用程序。 这里使用众多开源库之一以编程方式创建HTML文档并将其转换为PDF。 但是,由于HTML不是面向页面的格式(如PDF),因此无法在HTML和PDF之间执行1对1映射。 典型的文字处理文件格式功能,例如页眉和页脚,孤儿和寡妇甚至页码都不能用HTML表示。

程序化: 此方法可以完全控制生成的PDF。 但是,它要求从程序代码中设置每行文本的x和y坐标,每个几何形状和图形。 这不仅是一个非常耗时的解决方案,而且非常脆弱:每当图形设计师更改文档的布局时,程序员必须重新编写他或她的程序代码。

一种全新的方法

在本文中,作者提出了一种全新的第三种方法。 它依赖于在WYSIWYG环境中创建的模板,例如Microsoft®Word或Open Office,然后使用PHP填充数据。 生成的文档不仅可以保存为PDF,还可以保存为DOCX,DOC和RTF。

在我们深入研究这种新方法的内部工作方式之前,让我们先来看一个实际的例子。 以下PHP 5代码说明了PDF生成,其中模板 template.docx  [46.7 KB]中 的合并字段软件,被许可方和公司 用PHP中的标量数据填充。 生成的文档 document.pdf  [104.7 KB]已创建并写入磁盘。



$ phpLiveDocx 


= 




new 




Zend_Service_LiveDocx_MailMerge 





    array 





'username' 




=> 




'yourUsername' 





'password' 




=> 




'yourPassword' 





); 




$ phpLiveDocx 




- > 




setLocalTemplate 





'template.docx' 




); 




$ phpLiveDocx 




- > 




assign 





'software' 





'Magic Graphical Compression Suite v1.9' 




); 




$ phpLiveDocx 




- > 




assign 





'licensee' 





'Henry Smith' 




); 




$ phpLiveDocx 




- >




 








 


       

       

   


 

 


'公司' 'Megasoft合作' ); $ phpLiveDocx - > createDocument (); $ document = $ phpLiveDocx - > retrieveDocument 'pdf' ); file_put_contents 'document.pdf' $ document ); unset $ phpLiveDocx );  
 

 

 

 

本文中演示的代码将随 Zend Framework 1.10一起 提供。 虽然在撰写本文时,没有正式发布日期,但预计将于2009年第四季度发布1.10。同时,您可以检查 标准孵化器  SVN存储库中 的组件 。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69933200/viewspace-2652131/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69933200/viewspace-2652131/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值