PHP使用模板替换方法

好吧 先下载吧:
下载地址:https://pan.baidu.com/s/1upup2rpLTVXIdJpGi9kK6A
密码:qxsd
手册 http://phpword.readthedocs.io/en/latest/search.html?q=setValue&check_keywords=yes&area=default

loadTemplate('./template.docx');
$document->setValue('title', iconv('utf-8', 'GB2312//IGNORE', '交通劝导'));
$document->setValue('name',iconv('utf-8', 'GB2312//IGNORE', '张三'));

$document->save('test.docx');
//输出下载Word文档
//header("Location:文件路径 ");





模板文件里面的变量写法 

 ${content}  记住一定不要在这个变量上面加任何样式否则会被影响


这样你会发现中文乱码了 你需要修改几个文件:

 Word/Base.php     _WriteTextStyle()方法下面 
$objWriter->writeAttribute('w:eastAsia', $font); //修改新增

if($font != 'Arial') {
         $objWriter->startElement('w:rFonts');
       $objWriter->writeAttribute('w:eastAsia', $font); // 添加这行 修改新增
      $objWriter->writeAttribute('w:ascii', $font);
      $objWriter->writeAttribute('w:hAnsi', $font);
      $objWriter->writeAttribute('w:cs', $font);
   $objWriter->endElement();
}

PHPWord/Template.php  setValue()方法下:

if(!is_array($replace)) {
// $replace = utf8_encode($replace);  注释
 $replace = iconv( 'gbk','utf-8', $replace); //新增
}

好了 现在没有问题了


你可能感兴趣的:(PHP使用模板替换方法)