PHP 生成 Word 工具 MDword 1.1.9 正式发布,已知 bug 修复
部分新功能&已知 bug 修复 图片宽度支持按百分比设置 部分小语种文字支持自动设置兼容字体 项目介绍 主要用途:动态生成 word 优势:生成 word 只需关注动态数据及逻辑,无需关注式样的调整(式样可以借助 office word 调整母版即可) 与 PHPWord 的爱恨情仇 共同点 PHP 编写的库(资源包) 用于生成 office word 不同点 PHPWord 专注于一个元素一个元素的写入,而 MDword 则是专注于在母版的基础上修改,功能更强大,编码效率更高 修改文字式样,增加封面,修改页眉页脚 MDword 只需用 word 编辑软件调整母版,而 PHPWord 需要繁琐的去调整每个元素 可以自动生成目录 教程 安装 //方法一 composer require mkdreams/mdword //方法二,手动引入自动加载类 require_once('Autoloader.php'); 给母版 “temple.docx” 添加批注 调用方法(更多更丰富的调用方式,参考案例:tests\samples\simple for readme,例如:目录、序号等) //新建类 加载 母版 $TemplateProcessor = new WordProcessor(); $template = 'temple.docx'; $TemplateProcessor->load($template); //赋值 $TemplateProcessor->setValue('value', 'r-value'); //克隆并复制 $TemplateProcessor->clones('people', 3); $TemplateProcessor->setValue('name#0', 'colin0'); $TemplateProcessor->setValue('name#1', [ ['text'=>'colin1','style'=>'style','type'=>MDWORD_TEXT], ['text'=>1,'type'=>MDWORD_BREAK], ['text'=>'86','style'=>'style','type'=>MDWORD_TEXT] ]); $TemplateProcessor->setValue('name#2', 'colin2'); $TemplateProcessor->setValue('sex#1', 'woman'); $TemplateProcessor->setValue('age#0', '280'); $TemplateProcessor->setValue('age#1', '281'); $TemplateProcessor->setValue('age#2', '282'); //图片复制 $TemplateProcessor->setImageValue('image', dirname(__FILE__).'/logo.jpg'); //删除某行 $TemplateProcessor->deleteP('style'); //保存 $rtemplate = __DIR__.'/r-temple.docx'; $TemplateProcessor->saveAs($rtemplate); 结果 动图 性能情况(统计脚本) 测试项 用时 (S) 1 页母版赋值 100 次 0.04 1 页母版赋值 500 次 0.16 1 页母版赋值 1000 次 0.33 1 页母版赋值 10000 次 7.80 1750 页母版赋值 100 次 4.61 1750 页母版赋值 500 次 4.94 1750 页母版赋值 1000 次 5.43 1750 页母版赋值 10000 次 17.39 内存使用情况(统计脚本) 连续运行第几次 累积内存使用情况 备注 1 0.050590515136719 M 首次需要加载 PHP 类 2 0.050949096679688 M 3 0.050949096679688 M 4 0.050949096679688 M 5 0.050949096679688 M 6 0.050949096679688 M 7 0.050949096679688 M 8 0.050949096679688 M 更多案例 简单的综合案例 带式样的文字 添加图片 克隆 多种方式设置区块,解决无法添加批注问题 PHPWORD 写入到区块 目录嵌入到表格 合并表格单元格