需要实现的功能:
1.用户提交信息,例如:名称,年龄,电话等等
2.将这些信息填充到固定好的word模板中。
3.将生成的word转化为PDF。
4.使用的语言PHP
开始demo.docx文件中的内容
步骤:
poser 安装PHPword
composer require phpoffice/phpword
poser 安装dompdf
composer require dompdf/dompdf
3.正文代码
require_once 'vendor/autoload.php';//引入$demoDoc = 'demo.docx';//模板docx文件$doc = new \PhpOffice\PhpWord\TemplateProcessor($demoDoc);$username = '名字';$phone = '130123456789';$age = '32岁';$doc->setValue('username',$username);$doc->setValue('phone',$phone);$doc->setValue('age',$age);$newDoc = $phone.'.docx';//生成的word文件$doc->saveAs($newDoc);//保存$newPdf = $phone.'.pdf';//生成pdf文件\PhpOffice\PhpWord\Settings::setPdfRendererName(\PhpOffice\PhpWord\Settings::PDF_RENDERER_DOMPDF);\PhpOffice\PhpWord\Settings::setPdfRendererPath('.');$pdf = \PhpOffice\PhpWord\IOFactory::load($newDoc);$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($pdf, 'PDF');$html = $xmlWriter->getContent();//获取word内容到HTML//echo $html;$xmlWriter->save($newPdf, 'PDF');//保存PDF文件header('location:'.$newPdf);//网页显示PDF//到这个时候可以生成PDF了,但是中文的会乱码
执行以后生成的文件是这个样子的
4.因为没有引入中文字体所以出现乱码
5.下载字体直接放到D盘,我下载的是微软雅黑,直接从网上搜索下载就可以
6.安装字体
下载Dompdf的工具包
该工具包的Git地址为:/dompdf/utils。
下载完成后,解压,复制其中的load_font.php文件到项目下的verdor/dompdf/dompdf目录下,与lib和src目录同级。
修改load_font.php文件
因为之前把该文件直接放在了dompdf目录下,因此需要其默认的加载autoloader的路径如下:
<?php// 1. [Required] Point to the composer or dompdf autoloaderrequire_once "../../autoload.php";
win+r cmd 然后切换到目标文件夹 然后执行PHP文件
回车以后出现的
查看是否安装成功
7.修改msyh为 微软雅黑
8.模板文件也要修改字体为 微软雅黑
9.执行程序查看生成的pdf文档
10.现在都已经全部完成了,如果还有什么不懂的直接给我留言,看到后我会回复的,如果确实帮到了您可以点赞支持一下哦
如果觉得《使用PHP将Word文档转化为pdf文件(用户提交数据到Word模板并修改部分内容 再将Word转为PDF)》对你有帮助,请点赞、收藏,并留下你的观点哦!