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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值