ITPub博客

首页 > IT职业 > IT生活 > 使用LiveDocx和Zend Framework生成基于模板的文档

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

原创 IT生活 作者:cenfeng 时间:2019-07-29 19:20:22 0 删除 编辑

使用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博客 ” ,链接:https://blog.itpub.net/69933200/viewspace-2652131/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-06-18

  • 博文量
    125
  • 访问量
    129475