Skip to content

amlei/IntelliStyle

Repository files navigation

智绘排版

一个能够根据用户提供的排版要求,将 Markdown 格式的文本内容自动排版并生成 Word 文档的 Python 程序。

功能特性

  • 🎨 灵活的排版规则: 支持中文描述的排版规则,包括字体、字号、对齐方式、间距等
  • 📝 Markdown 支持: 自动解析 Markdown 格式,转换为对应的 Word 样式
  • 🔤 中文字号: 支持"小一"、"小四"等中文字号表示
  • 📏 多种单位: 支持磅、厘米、字符、行等多种单位
  • 🎯 精确控制: 支持首行缩进、行距、段前段后间距等精确排版控制

安装依赖

pip install -r requirements.txt

快速开始

1. 直接运行演示

python word_ai_agent.py

这将生成演示文件并创建一个示例 Word 文档。

2. 命令行使用

python word_ai_agent.py --rules rules.txt --input content.md --output document.docx

3. 编程使用

from 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

Markdown 内容示例

# 第一章 引言

这是第一章的内容,会使用"标题一"样式。

## 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

技术架构

核心模块

  1. FormatRuleParser: 排版规则解析器

    • 解析中文描述的排版规则
    • 转换单位和数值
    • 映射样式属性
  2. MarkdownProcessor: Markdown 处理器

    • 解析 Markdown 语法
    • 识别文档结构
    • 提取内容元素
  3. WordDocumentGenerator: Word 文档生成器

    • 创建 Word 文档
    • 应用样式设置
    • 生成最终文档
  4. WordAIAgent: 主控制器

    • 协调各个模块
    • 处理整体流程

依赖库

  • python-docx: Word 文档操作
  • markdown: Markdown 解析
  • beautifulsoup4: HTML 解析
  • lxml: XML 处理

注意事项

  1. 字体支持: 确保系统中安装了指定的字体(如宋体、黑体)
  2. 编码问题: 输入的规则和内容文件请使用 UTF-8 编码
  3. 路径问题: 使用绝对路径或相对于当前工作目录的路径
  4. 单位转换: 程序会自动处理不同单位的转换

扩展功能

未来可以扩展的功能:

  • 支持读取 Word 模板文件
  • 支持更多 Markdown 语法(表格、代码块等)
  • 支持列表的自定义样式
  • 支持图片插入
  • 支持目录生成
  • 支持批量处理

许可证

MIT License

About

一个能够根据用户提供的排版要求,将 Markdown 格式的文本内容自动排版并生成 Word 文档的 Python 程序。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors