PHP使用Word模板生成Word文档
最近要做一个这样的功能,把word文档协议,上传到服务器之后,用户就可以在线签署协议了。
使用PhpOffice/PHPWord实现。
第一步:使用composer安装PHPWord到你的项目:
composer require phpoffice/phpword
第二步:给doc模板(template/word_1.docx文件)添加变量(简单点说,就是在word文档添加内容),写法示例:
(在线签字)
${sign}
签署日期: ${year}年 ${month}月 ${day}日
第三步:在php代码中加载word模板:
$templateProcessor = new TemplateProcessor('template/word_1.docx');
第四步:给模板中的变量赋值:
// 这里支持单值赋值
$templateProcessor->setValue('year', date('Y'));
$templateProcessor->setValue('month', date('m'));
$templateProcessor->setValue('day', date('d'));
// 也支持通过数组来赋值
$templateProcessor->setValues(array(
'year' => date('Y'),
'month' => date('m'),
'day' => date('d'),
));
// 还可以用来加载图片
$templateProcessor->setImageValue('sign', 'template/sign.jpg');
第五步:生成word文档并保存
$templateProcessor->saveAs('template/' . date('Y-m-d-H-i-s') . '.docx');
PHPWord也不止只有这些用法,更多功能可以参考链接:PHPWord 0.16.0 文档