使用PHP将Word文档转化为pdf文件(用户提交数据到Word模板并修改部分内容,再将Word转为PDF)

it2023-01-09  61

需要实现的功能: 1.用户提交信息,例如:名称,年龄,电话等等 2.将这些信息填充到固定好的word模板中。 3.将生成的word转化为PDF。 使用语言:PHP 步骤: 1.composer 安装PHPword

composer require phpoffice/phpword

2.composer 安装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.因为没有引入中文字体所以出现乱码(解决办法参考:https://blog.csdn.net/hwhsong/article/details/88579332) 5.修改字体配置 6.执行发现也支持中文了 7.另外这个也可以实现的功能是将Word文档的内容显示在HTML网页中

最新回复(0)