×
新网 > 建站推广 > 正文

php如何实现doc转pdf

  • 作者:zccc
  • 来源:网络
  • 2020-09-02 12:04:07

php实现doc转pdf的方法:首先引入autoload文件;然后通过“$templateProcessor->saveAs('test.docx');”加载模板的word文件;最后将“test.docx”转换成“test.pdf”即可

php实现doc转pdf的方法:首先引入autoload文件;然后通过“$templateProcessor->saveAs('test.docx');”加载模板的word文件;最后将“test.docx”转换成“test.pdf”即可。

推荐:《PHP视频教程》

php 编辑PDF文件,php word 转 PDF,php 编辑 word,phpoffice,phpword,libreoffice

废话不多说,直接说需求

1、项目经理:“小江啊,我这里有份合同,是word格式的,你把它生成PDF格式,并且里面的内容还能编辑”。

大致思路

1、遇到这种需求,我有点震惊了,什么需求啊这是,以前从没碰到过。然后google啊百度啊一大推的东西。我也看了几种常规生成pdf的php第三方类库。

有tcpdf,zend framework,fpdf等,tcpdf生成pdf呢,直接点呢就是文档的内容还要用html,css写,那要用这个还不吐血,zend framework 下面有个生成pdf的类库,但是有个致命的缺点,不支持中文,中文会乱码,fpdf也是一样。我全都试了个遍,没个毛用,感觉要被这个玩意搞死,当我快要放弃的时候,我看到了phpword,看到了希望,phpword支持编辑word文档,但转换成pdf不是他的拿手好菜,无奈最后下了个libreoffice转换器,这才勉强完成了这个需求,哎,觉得非常不容易,一定要分享下,如果有更好的办法,可在下方评论:

1、直接引入autoload文件

require_once ’ vendor/phpoffice/phpword/bootstrap.php’;

2、

       $templateProcessor = new      \\PhpOffice\\PhpWord\\TemplateProcessor('layout.docx');
       $templateProcessor->setValue('name', 'AAAAAAA');
       $templateProcessor->setValue('ID_card', '36042819950812782112');
       $templateProcessor->setValue('mobile', '12312341234');
       $templateProcessor->setValue('adress', '广东省深圳市宝安区西乡');
       $templateProcessor->saveAs('test.docx');

以上代码说明: 加载我们模板的word文件,我们在其里面设置变量格式是${name} 等等这种格式,生成的test.docx就是把setValue的值赋给了变量,是不是很神奇。

3、最后将test.docx 转换成test.pdf,这一步也走的很心酸,查了很多资料,总以为有个第三方的库可以解决,但还是没找到,libreoffice是一个开源的软件,这是个大家伙,将近1G的大小。下面将用法介绍下:

system(“export HOME=/tmp/ && libreoffice --invisible --convert-to pdf --outdir /phpstudy/www/Uploads/activity/2017-02-28/ /phpstudy/www/Uploads/activity/2017-02-28/58b53f9cad22e.xls 2>&1”);

直接用system 系统函数

本文就介绍到这里吧,有疑问的小伙伴欢迎下方评论。

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading