一个能够根据用户提供的排版要求,将 Markdown 格式的文本内容自动排版并生成 Word 文档的 Python 程序。
- 🎨 灵活的排版规则: 支持中文描述的排版规则,包括字体、字号、对齐方式、间距等
- 📝 Markdown 支持: 自动解析 Markdown 格式,转换为对应的 Word 样式
- 🔤 中文字号: 支持"小一"、"小四"等中文字号表示
- 📏 多种单位: 支持磅、厘米、字符、行等多种单位
- 🎯 精确控制: 支持首行缩进、行距、段前段后间距等精确排版控制
pip install -r requirements.txtpython word_ai_agent.py这将生成演示文件并创建一个示例 Word 文档。
python word_ai_agent.py --rules rules.txt --input content.md --output document.docxfrom word_ai_agent import WordAIAgent
# 排版规则
rules = """标题一:字体 宋体,字号 小一,对齐方式 居中
正文:字体 宋体,字号 小四,首行缩进 2字符,行距 1.25倍"""
# Markdown 内容
content = """# 我的文档
这是正文内容。"""
# 生成文档
agent = WordAIAgent()
agent.process(rules, content, "my_document.docx")样式名:属性1 值1,属性2 值2,属性3 值3
标题一、标题二、标题三等 (对应 Markdown 的 #、##、### 等)正文(对应普通段落)页边距(设置整个文档的页边距)
| 属性 | 说明 | 示例值 |
|---|---|---|
| 字体 | 字体名称 | 宋体、黑体、Times New Roman |
| 字号 | 字体大小 | 小一、小四、12、14磅 |
| 对齐方式 | 段落对齐 | 左对齐、居中、右对齐、两端对齐 |
| 加粗 | 是否加粗 | 是、否 |
| 倾斜 | 是否倾斜 | 是、否 |
| 首行缩进 | 首行缩进距离 | 2字符、24磅、1cm |
| 行距 | 行间距 | 1.25倍、18磅 |
| 段前间距 | 段落前间距 | 1行、12磅、0.5cm |
| 段后间距 | 段落后间距 | 0.5行、6磅、0.25cm |
页边距:上 2.5cm,下 2.5cm,左 3cm,右 3cm
标题一:字体 宋体,字号 小一,对齐方式 居中,段前间距 1行,段后间距 0.5行
标题二:字体 黑体,字号 三号,加粗 是,段前间距 12磅,段后间距 6磅
标题三:字体 黑体,字号 小三,加粗 是,段前间距 8磅,段后间距 4磅
正文:字体 宋体,字号 小四,首行缩进 2字符,行距 1.25倍,段前间距 0磅,段后间距 0磅
页边距:上 2.5cm,下 2.5cm,左 3cm,右 3cm
# 第一章 引言
这是第一章的内容,会使用"标题一"样式。
## 1.1 背景介绍
这是二级标题,会使用"标题二"样式。
### 1.1.1 具体问题
这是三级标题,会使用"标题三"样式。
这是正文段落,会使用"正文"样式,包含首行缩进等格式。
这是另一个正文段落。| 中文字号 | 磅值 | 中文字号 | 磅值 |
|---|---|---|---|
| 初号 | 42 | 小初 | 36 |
| 一号 | 26 | 小一 | 24 |
| 二号 | 22 | 小二 | 18 |
| 三号 | 16 | 小三 | 15 |
| 四号 | 14 | 小四 | 12 |
| 五号 | 10.5 | 小五 | 9 |
| 六号 | 7.5 | 小六 | 6.5 |
| 七号 | 5.5 | 八号 | 5 |
-
FormatRuleParser: 排版规则解析器
- 解析中文描述的排版规则
- 转换单位和数值
- 映射样式属性
-
MarkdownProcessor: Markdown 处理器
- 解析 Markdown 语法
- 识别文档结构
- 提取内容元素
-
WordDocumentGenerator: Word 文档生成器
- 创建 Word 文档
- 应用样式设置
- 生成最终文档
-
WordAIAgent: 主控制器
- 协调各个模块
- 处理整体流程
python-docx: Word 文档操作markdown: Markdown 解析beautifulsoup4: HTML 解析lxml: XML 处理
- 字体支持: 确保系统中安装了指定的字体(如宋体、黑体)
- 编码问题: 输入的规则和内容文件请使用 UTF-8 编码
- 路径问题: 使用绝对路径或相对于当前工作目录的路径
- 单位转换: 程序会自动处理不同单位的转换
未来可以扩展的功能:
- 支持读取 Word 模板文件
- 支持更多 Markdown 语法(表格、代码块等)
- 支持列表的自定义样式
- 支持图片插入
- 支持目录生成
- 支持批量处理
MIT License