项目需求是这样的:用户签订合同,并读取用户信息生成合同,将合同保存为png图片保存
环境:windows(2012,linux要配置java环境,偷懒)+ apache(2.4.48) + php(7.1) + mysql(5.5.62)
框架:tp5.0.24,网站目录在public下面,环境直接用宝塔塔建的,phpenv 本地测试了也可以,其他的没有测试
第一步:向word写入用户信息
1. 将 PhpOffice 整个文件夹复制到 extend 文件夹下(如下图)

2. 接下来就是代码了,直接上:
// 文字写入world
public function word_write()
{
import('PhpOffice\PhpWord\TemplateProcessor', '.php');
// 1.创建模板对象
$temp_path = $_SERVER['DOCUMENT_ROOT'] . '/xieyi_fuwu_copy.docx'; // 模板文件路径
$document = new \PhpOffice\PhpWord\TemplateProcessor($temp_path);
// 2.插入数据 : word中的变量 ${name} ${idcard} ${phone} {$time}
$data = [
['key' => 'name', 'value' => '小度哇'],
['key' => 'idcard', 'value' => '341022188810222345'],
['key' => 'phone', 'value' => '18888888888'],
['key' => 'time', 'value' => date('Y年m月d日')],
];
foreach ($data as $k => $v) {
$document->setValue($v['key'], $v['value']);
}
// 3.保存文件
$file_path = $_SERVER['DOCUMENT_ROOT'] . '/file/' . date('Ymd');
if (!file_exists($file_path)) {
mkdir($file_path, '0777');
}
$document->saveAs($file_path.'/'.time().'.docx');
}
第二步:world 转为 pdf
-
修改php.ini
添加:extension=php_com_dotnet.dll
去除注释:com.allow_dcom = true
重启php环境 -
安装office,一定要安装office,(office 2007 需要手动安装
Microsoft Save as PDF and XPS)【https://files-cdn.cnblogs.com/files/XiaoMingBlingBling/SaveAsPDFandXPS.rar】 -
配置office组件服务:win+R打开运行菜单,输入dcomcnfg
找到 [组件服务] — [计算机]— [我的电脑] — [DCOM配置] — [Microsoft Wrord 97-2003文档]
右键 [Microsoft Wrord 97-2003文档] 设置属性 [标识] 为 [交互式用户] -
可以写代码了
// world 转为 pdf
function index3()
{
$filenamedoc = $_SERVER['DOCUMENT_ROOT'] . '/xieyi_fuwu_copy.docx'; // word 文件地址
$filenamepdf = $_SERVER['DOCUMENT_ROOT'] . '/xieyi_fuwu_copy.pdf'; // 生成的 PDF 文件保存地址
if (!file_exists($filenamedoc )) {
return 'word原文件不存在';
}
// 删除已有同名文件
if (file_exists($filenamepdf)) {
unlink($filenamepdf);
}
// 执行转换操作
$word = new \COM("word.Application") or die("Could not initialise Object");
$word->Documents->Open($filenamedoc);
$word->ActiveDocument->ExportAsFixedFormat($filenamepdf, 17, false, 0, 0, 0, 0, 7, true, true, 2, true, true, false);
$word->Quit(false);
unset($word);
return '转换成功';
}
第三步:PDF 转为图片

最低0.47元/天 解锁文章
514

被折叠的 条评论
为什么被折叠?



