phpword解决中文乱码

来源:互联网 发布:临床数据统计分析报告 编辑:程序博客网 时间:2024/06/05 02:34

项目中要用的php生成word文档,所以在网上找了一些资料找到了phpword但是中文总是乱码,下面是解决掉的办法

1、增加东亚字体支持 

打开并编辑路径/Writer/Word2007/Base.php文件内容,大概在第349行(行数随着版本可能会有变化)大概函数_writeTextStyle内添加:

$objWriter->writeAttribute('w:eastAsia', $font)

2. 解决中文乱码问题

编辑PHPWord/Template.php,找到代码$replace = utf8_encode($replace);,删除或者注释掉这行代码,添加$replace = iconv( 'gbk','utf-8', $replace);

3解决Section添加文本的问题,找到代码$givenText = utf8_encode($text);,删除或者注释掉这行代码,添加$givenText = iconv('gbk', 'utf-8', $text);

4  $section->addText(iconv('utf-8','GB2312//IGNORE',$st));//$st为内容


下面是我自己改好的类库,大家可以直接使用。

https://github.com/cengjingyouguoai/phpwordChinese