php替换word模板,tp5 使用phpword 替换word模板
一、首先composer安装PHPword,就不多说了
二、然后是把模板中要替换的部分用变量代替
三、把原始的模板文件放入项目目录,tp框就放在了public/upload/目录下
四、
查看php.ini中是否已经开启了com.allow_dcom = true
从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件
如果没有网上下载个,一般都会有的吧应该大概可能。。
然后查找这个php.ini里面查找下#extension=php_com_dotnet.dll把前面的#号去掉
如果找不到就复制,手动添加一下
然后输出下phpinfo()
看看有没有com_dotnet
COM support enabled
DCOM support enabled
.Net support enabled
表示COM组件开启成功
五、
然后新建一个php文件在里面写上:
$com = new COM('word.application'); (#注意word.application 是电脑中必须有word文档才可以的)
echo $com;
如果没错的话应该会显示 Microsoft Word
说明COM扩展已经安装完成了!
四、代码
1 public function word2pdf()
2 {
3
4
5 $server=$_SERVER['DOCUMENT_ROOT'];
6 // $filenamedoc =$server.'/upload/basedoc/one.docx';
7 $filenamedoc =$server.'/'.$templet['url'];//模板路径
8 $filenamepdf = $server.'/upload/basedoc/one'.$templet['id'].'_new.docx';//替换变量,新的word路径
9 $fiel='/upload/basedoc/one'.$templet['id'].'_new'.time().'.pdf';//word转换pdf路径
10 $pdf = $server.$fiel;
11 $tmp=new \PhpOffice\PhpWord\TemplateProcessor($filenamedoc);//打开模板
12 $tmp->setValue('name',$sq);
13 $tmp->setValue('hcwz',$hcwz);
14
15 $tmp->setValue('ayear',$apply_date_y);
16 $tmp->setValue('amonth',$apply_date_m);
17 $tmp->setValue('aday',$apply_date_d);
18
19 $tmp->setValue('year',date("Y",time()));
20 $tmp->setValue('month',date("m",time()));
21 $tmp->setValue('day',date("d",time()));
22 $tmp->setValue('mishu',$mishu);//${year}年${month}月${day}
23 $tmp->saveAs($filenamepdf);//另存为
24 $url=word2pdf($filenamepdf,$pdf);
25 return config("PdfUrl").$fiel;
26
27 }
function word2pdf($srcfilename,$destfilename)
{
try {
if(!file_exists($srcfilename)){
unlink($srcfilename);
}
$word = new \COM("word.application") or die("Can't start Word!");
$word->Visible=0;
$word->Documents->Open($srcfilename, false, false, false, "1", "1", true);
$word->ActiveDocument->final = false;
$word->ActiveDocument->Saved = true;
$word->ActiveDocument->ExportAsFixedFormat(
$destfilename,
17, // wdExportFormatPDF
false, // open file after export
0, // wdExportOptimizeForPrint
3, // wdExportFromTo
1, // begin page
5000, // end page
7, // wdExportDocumentWithMarkup
true, // IncludeDocProps
true, // KeepIRM
1 // WdExportCreateBookmarks
);
$word->ActiveDocument->Close();
$word->Quit();
} catch (\Exception $e) {
if (method_exists($word, "Quit")){
$word->Quit();
}
return;
}
}
标签:tmp,setValue,word,phpword,tp5,date,php,com
来源: https://www.cnblogs.com/wrld/p/11704389.html
php替换word模板,tp5 使用phpword 替换word模板相关推荐
- php实现生成word表格,TP5利用phpforword生成word表格文档
TP5利用phpforword生成word表格文档 2019-12-18 573 1.首先用composer安装下载 phpoffice/phpforwordcomposer require phpo ...
- php读取word模板文件,使用PHPWord对Word文件做模板替换
文章排版有点乱,建议点击左下角的"阅读原文"查看. 因工作需要,使用了版本比较旧的 PHPWord项目 官方已不见维护更新,上次版本更新是在 Fri Jul 8, 2011 at ...
- php代码实现对word文件的查找与替换,ThinkPHP5使用phpword实现文件模板字符替换
PhpWord文档 想实现更多功能的朋友可以仔细参考文档 一.使用环境 目前是在ThinkPHP5.0.21中使用的PhpWord,其他使用环境引入方式可能会有一点不同. 使用composer安装,直 ...
- PHPWord替换word模板内容时,存在表格,且不确定表格行数的处理方式
PHPWord替换word模板内容时,存在表格,且不确定表格行数的处理方式 想得到的目标表格 表格可能存在若干行,需要循环生成,插入到word模板中 word模板 实现过程 1.Composer安装 ...
- php 操作word模板,phpword替换模板内容和解决中文乱码
本篇文章给大家分享的内容是phpword替换模板内容和解决中文乱码的问题,有需要的朋友可以看一下. 好吧 先下载吧: 下载地址:https://pan.baidu.com/s/1upup2rpLTVX ...
- 【PHPWord】使用PHPWord替换模板变量大段文字并换行设置字体字号
一.需求背景 在实际业务中,我们可能遇到需要生成Word文件中需要根据业务输出大量文字,并且这些文字带有不同的格式. 如下图所示,本文的示例文字内容仅作为示例使用. 二.拆分要点 上面字段文字,通过P ...
- PHPWord 替换 Word文件内容
PHPWord 替换 Word文件内容 // 引入扩展 composer require phpoffice/phpword //模板内 默认的搜索模式宏 ${search-pattern}$form ...
- 利用Spire实现对Word模板的指定文字替换(文字、图片、表格)
1.安装Spire.Office word文件内对要替换的地方用 [=xxx] 做标记 2.WordUtil.cs using Spire.DataExport.XLS; using Spire. ...
- Laravel引入phpoffice/phpword替换Word文件内容
Laravel引入phpoffice/phpword替换Word文件内容 说明 安装 替换Word内容 源文件 转化后的文件 说明 PHPWord是一个用纯PHP编写的库,它提供了一组类 写入和读取不 ...
- 利用docx4j完美导出word文档(标签替换、插入图片、生成表格)
最近公司让我实现一个利用原有word模板,导出word文档的功能模块,发现docx4j是个很不错的工具,但是之前从来没有用过,对此并不了解,于是上网查找相关资料,也是非常少之,于是便自己开始摸索. 1 ...
最新文章
- 在linux上装git教程,教你玩转Git-Linux 平台上安装
- WhatFontIs - 字体百科全书,没有不认识的字体
- 计算阶比分析 matlab_(案例)层次聚类分析Matlab编码计算
- Express的基本路由实现对get和post等的请求和响应
- zabbix在configure时候遇到的问题(Ubuntu\debian)
- onvif_discover虚拟摄像头
- HDU Problem - 6214 Smallest Minimum Cut(最小割边,两种方法)
- vue 安装php,vue中使用openinstall
- Gradle打包命令记录
- java api限流_Java 9:流API的增强
- IntelliJ IDEA for Mac 彻底卸载/彻底删除
- SpringCloud学习笔记017---分布式之数据分片处理
- 计算机生成兵力方法,计算机生成兵力平台体系结构技术研究
- 关于wxwidgets图形界面的关闭窗口的按钮无效的解决办法
- 趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!
- 通信电子线路——课程介绍
- python小学教材全解_小学教材全解三年级下数学
- VC6.0多行注释快捷键的设置
- JAVA IO ---------- File类(转自 skywang12345)
- php imap gmail,php,imap,gmail和dreaded无法连接到'{imap.gmail.com:993 / imap / ssl}'
热门文章
- 经典前端框架,一个时代的落幕:如何看待layui 官网将于 2021年10月13日 进行下线?
- 人工智能和自动化之间,主要有区别吗?
- 小白终是踏上了这条不归路----小文的mysql学习笔记(23)---------流程控制结构
- Semi-continuity
- 【马列GISer】第七届全国大学生GIS应用技能大赛上午A题参考答案(非考题)
- [因果推断] 增益模型(Uplift Model)介绍(三)
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day39】—— 数据库6
- 华为与华为交换机console口配置
- matlab误码率理论,QDPSK理论误码率与实际误码率matlab仿真程序
- Flex 绘制圆形或椭圆并填充图片