欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php如何实现doc转pdf

程序员文章站 2022-03-13 11:36:58
...

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

php如何实现doc转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 系统函数

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

以上就是php如何实现doc转pdf的详细内容,更多请关注其它相关文章!

相关标签: php doc pdf