PHP 生成 Word 工具 MDword 1.1.9 正式发布,已知 bug 修复
发布时间:2026-01-22 00:00
发布者:聖光之護
浏览次数:部分新增特性 & 已修复问题
- 图片宽度现支持以百分比形式设定
- 针对部分小语种文字,已实现自动匹配兼容字体功能
项目概述
核心用途:动态生成 Word 文档
核心优势:开发者仅需聚焦于动态数据与业务逻辑,无需手动调整文档样式(样式可通过 Microsoft Word 编辑母版统一配置)
MDword 与 PHPWord 的对比分析
相同之处
- 均为基于 PHP 开发的开源库(Composer 包)
- 均可用于生成标准 Office Word 文档(.docx 格式)
差异点
- PHPWord 采用逐元素写入方式;而 MDword 则基于母版文档进行内容替换与结构扩展,功能更全面,开发效率更高
- 对于文字格式调整、封面插入、页眉页脚修改等操作,MDword 只需在 Word 中编辑一次母版即可复用;PHPWord 则需对每个元素单独编码设置,流程繁琐
- MDword 支持自动生成文档目录(TOC),开箱即用
使用指南
安装方式
// 方式一:通过 composer 安装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');
// 克隆指定区块(如“people”)3 次
$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);输出效果预览
动态操作演示(GIF)
性能测试数据(基准脚本统计)
| 测试场景 | 耗时 (秒) |
|---|---|
| 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 | 首次运行需加载全部类文件 |
| 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 的区块内容写入方案
- 目录(TOC)嵌入表格单元格
- 表格合并单元格操作
源码仓库地址:点击下载
# require
# 均可
# 更高
# 均为
# 只需
# 之处
# 首次
# 加载
# 单元格
# 文档
# 母版
# Word 文档
# bug
# php
# for
# 内存占用
# 性能测试
# microsoft
# office
# 工具
# 编码
# 处理器
# composer
# go
# word
相关文章:
上半年发布!小米17 Max放弃背屏设计
兼顾大宅舒适与节能,美的领航者4代大功率新品重磅上市
辉达投资英国AI新创Nscale 传已聘高盛、摩根大通备战IPO
接单助手APP如何实现iOS/Android/小程序三端适配?
美团旅行:“住宿+”拓宽重庆万豪等酒店新客群,春节00后预订单量增55%
曝OPPO Find X10系列评估双2亿像素镜头 配1/1.3大底
从产品到体验:慕思6.0新店态开启价值新主场
类魂新游《噬血代码2》上线 华硕显卡高帧畅玩
曝全新MacBook Pro将于3月发布 macOS也将同时亮相
莫里登技能深度解析实战爆发与续航攻略
单挑战神夏侯惇 高生存强输出出装实战
Pinterest 裁员约 15%,探索采用开源 AI 模型降低开发成本
“片场”成打卡新去处 解锁“电影+文旅”融合新体验
曝iPhone Air 2将新增超广角镜头 内置超薄Face ID
任天堂邀请多位记者赴纽约 大型直面会或将揭晓
OPPO A6i+开启预售 搭载天玑6300 主打六年长寿电池
卡牌版文明 王国建造游戏《自动王国》正式推出
京东、中兴签署战略合作:三年全渠道销售要破百亿!
辉达豪掷330亿美元超车苹果 成台积电最大客户
《头文字D》藤原拓海豆腐神车AE86成无线滑鼠 搭载可动车灯惊豔登场
《WWE 2K26》公布 Steam国区298元、依旧无中文
苹果iPhone 17e和iPad 12同时曝光 还是刘海屏设计?
200Hz高刷只要609元!小米推出REDMI显示器G25
毕安卡全技能解析:破绽核心的 T0 射手风暴
REDMI A7 Pro已通过多国认证 搭载紫光展锐T7250
华硕售后再出事!被曝拒修还甩锅 用户直言"恶心"
POCO X8 Pro 及 Pro Max 电池规格首度曝光!续航力有望挑战品牌新高
JetBrains 调研:Java 在中国呈现断层式领先
武侠手游元宝规划全攻略
九部门联合发文 打造春节消费盛宴
相关栏目:
【
科技资讯38001 】
【
网络动态13059 】
【
技术学堂11871 】
【
网络推广75774 】
【
品牌营销52040 】
【
AI推广53525 】
【
推荐站点126806 】






