一、首先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模板相关推荐

  1. php实现生成word表格,TP5利用phpforword生成word表格文档

    TP5利用phpforword生成word表格文档 2019-12-18 573 1.首先用composer安装下载 phpoffice/phpforwordcomposer require phpo ...

  2. php读取word模板文件,使用PHPWord对Word文件做模板替换

    文章排版有点乱,建议点击左下角的"阅读原文"查看. 因工作需要,使用了版本比较旧的 PHPWord项目 官方已不见维护更新,上次版本更新是在 Fri Jul 8, 2011 at ...

  3. php代码实现对word文件的查找与替换,ThinkPHP5使用phpword实现文件模板字符替换

    PhpWord文档 想实现更多功能的朋友可以仔细参考文档 一.使用环境 目前是在ThinkPHP5.0.21中使用的PhpWord,其他使用环境引入方式可能会有一点不同. 使用composer安装,直 ...

  4. PHPWord替换word模板内容时,存在表格,且不确定表格行数的处理方式

    PHPWord替换word模板内容时,存在表格,且不确定表格行数的处理方式 想得到的目标表格 表格可能存在若干行,需要循环生成,插入到word模板中 word模板 实现过程 1.Composer安装 ...

  5. php 操作word模板,phpword替换模板内容和解决中文乱码

    本篇文章给大家分享的内容是phpword替换模板内容和解决中文乱码的问题,有需要的朋友可以看一下. 好吧 先下载吧: 下载地址:https://pan.baidu.com/s/1upup2rpLTVX ...

  6. 【PHPWord】使用PHPWord替换模板变量大段文字并换行设置字体字号

    一.需求背景 在实际业务中,我们可能遇到需要生成Word文件中需要根据业务输出大量文字,并且这些文字带有不同的格式. 如下图所示,本文的示例文字内容仅作为示例使用. 二.拆分要点 上面字段文字,通过P ...

  7. PHPWord 替换 Word文件内容

    PHPWord 替换 Word文件内容 // 引入扩展 composer require phpoffice/phpword //模板内 默认的搜索模式宏 ${search-pattern}$form ...

  8. 利用Spire实现对Word模板的指定文字替换(文字、图片、表格)

    1.安装Spire.Office word文件内对要替换的地方用   [=xxx] 做标记 2.WordUtil.cs using Spire.DataExport.XLS; using Spire. ...

  9. Laravel引入phpoffice/phpword替换Word文件内容

    Laravel引入phpoffice/phpword替换Word文件内容 说明 安装 替换Word内容 源文件 转化后的文件 说明 PHPWord是一个用纯PHP编写的库,它提供了一组类 写入和读取不 ...

  10. 利用docx4j完美导出word文档(标签替换、插入图片、生成表格)

    最近公司让我实现一个利用原有word模板,导出word文档的功能模块,发现docx4j是个很不错的工具,但是之前从来没有用过,对此并不了解,于是上网查找相关资料,也是非常少之,于是便自己开始摸索. 1 ...

最新文章

  1. 在linux上装git教程,教你玩转Git-Linux 平台上安装
  2. WhatFontIs - 字体百科全书,没有不认识的字体
  3. 计算阶比分析 matlab_(案例)层次聚类分析Matlab编码计算
  4. Express的基本路由实现对get和post等的请求和响应
  5. zabbix在configure时候遇到的问题(Ubuntu\debian)
  6. onvif_discover虚拟摄像头
  7. HDU Problem - 6214 Smallest Minimum Cut(最小割边,两种方法)
  8. vue 安装php,vue中使用openinstall
  9. Gradle打包命令记录
  10. java api限流_Java 9:流API的增强
  11. IntelliJ IDEA for Mac 彻底卸载/彻底删除
  12. SpringCloud学习笔记017---分布式之数据分片处理
  13. 计算机生成兵力方法,计算机生成兵力平台体系结构技术研究
  14. 关于wxwidgets图形界面的关闭窗口的按钮无效的解决办法
  15. 趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!
  16. 通信电子线路——课程介绍
  17. python小学教材全解_小学教材全解三年级下数学
  18. VC6.0多行注释快捷键的设置
  19. JAVA IO ---------- File类(转自 skywang12345)
  20. php imap gmail,php,imap,gmail和dreaded无法连接到'{imap.gmail.com:993 / imap / ssl}'

热门文章

  1. 经典前端框架,一个时代的落幕:如何看待layui 官网将于 2021年10月13日 进行下线?
  2. 人工智能和自动化之间,主要有区别吗?
  3. 小白终是踏上了这条不归路----小文的mysql学习笔记(23)---------流程控制结构
  4. Semi-continuity
  5. 【马列GISer】第七届全国大学生GIS应用技能大赛上午A题参考答案(非考题)
  6. [因果推断] 增益模型(Uplift Model)介绍(三)
  7. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day39】—— 数据库6
  8. 华为与华为交换机console口配置
  9. matlab误码率理论,QDPSK理论误码率与实际误码率matlab仿真程序
  10. Flex 绘制圆形或椭圆并填充图片