用Python轻松生成符合政府机关常用排版格式的docx文件!
Project description
cn-gov-docx
一个基于 python-docx 的中文公文 Word(.docx)生成工具,用于快速生成符合政府机关常见排版规范的文档结构。
本项目目标是提供一套稳定、可复用的公文排版生成层,减少重复排版工作。
功能特点
- 自动生成 A4 公文版式(页边距已预设)
- 内置中文公文常用字体规则
- 支持标题 / 分级标题 / 正文结构
- 自动处理首行缩进与行距
- 封装常用 Word 样式设置逻辑
- 基于
python-docx,无复杂依赖
安装
pip install cn-gov-docx
快速开始
from cn_gov_docx import CnGovDocx
doc = CnGovDocx()
doc.add_title("关于推进重点工作的通知")
doc.add_h1("一、总体要求")
doc.add_text("这里是正文内容,用于测试公文排版效果。")
doc.add_h2("(一)工作目标")
doc.add_text("继续补充正文内容。")
doc.save("output.docx")
默认排版规则
页面设置(A4)
- 上边距:3.7 cm
- 下边距:3.5 cm
- 左边距:2.8 cm
- 右边距:2.6 cm
字体规范
| 类型 | 字体 |
|---|---|
| 标题 | 方正小标宋简体 |
| 一级/二级/三级标题 | 黑体 |
| 正文 | 仿宋_GB2312 |
正文格式
- 字号:16pt(接近三号)
- 行距:28pt
- 首行缩进:2字符
- 对齐方式:两端对齐
API
CnGovDocx()
创建文档实例。
doc = CnGovDocx()
add_title(text)
添加居中主标题。
doc.add_title("标题")
add_h1(text)
添加一级标题,同样的还有二、三级标题。
doc.add_h1("一级标题")
doc.add_h2("二级标题")
doc.add_h3("三级标题")
add_text(text, indent_first_line=True, remove_newlines=True)
添加正文内容。
doc.add_text("正文内容")
参数
indent_first_line:是否首行缩进(默认True)remove_newlines:是否移除换行并合并为单段(默认True)
针对remove_newlines的说明
Python 三引号换行通常用于代码可读性,不代表真实段落结构。该参数用于区分“格式化换行”与“真实排版结构”。
True(默认)
- 忽略所有换行符(含
"""..."""内换行) - 合并为单一段落
- 用于公文正文标准排版
False
- 保留原始换行结构
- 每行按原样写入文档
- 可能形成多段或显式换行
save(path)
保存文件。
doc.save("result.docx")
使用说明(重要)
1. 字体依赖
本项目依赖系统字体:
- 方正小标宋简体
- 黑体
- 仿宋_GB2312
如果系统缺失字体,Word 会自动替换字体,可能导致排版不一致。
2. 适用范围
适用于:
- 政府公文格式草稿
- 国企/事业单位文书
- 标准化报告生成
- 批量文档生成场景
不适用于:
- 精确符合某地区红头文件模板(需二次定制)
- 复杂 Word 版式设计
- 非中文排版场景
依赖
- python-docx >= 1.1.0 (别的版本没有测试)
- lxml >= 5.0
未来计划
- 支持图片插入
- 更严格的 GB/T 9704 对齐
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cn_gov_docx-0.2.0.tar.gz
(7.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cn_gov_docx-0.2.0.tar.gz.
File metadata
- Download URL: cn_gov_docx-0.2.0.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79f39f701b688f9120ee3d51524488642852776433b21bec0dcde52b866cbb88
|
|
| MD5 |
2114b4fa670f29d7c13d784ed675cc1d
|
|
| BLAKE2b-256 |
7a0f948ace6321667db53a40b7a5b0ef8e6d097d9b202ffa9a2008f4b1ee8e66
|
File details
Details for the file cn_gov_docx-0.2.0-py3-none-any.whl.
File metadata
- Download URL: cn_gov_docx-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb9460e687b9f76877d6fe5358ec90e56c82010d1b2a782babd2d5b64abb03d
|
|
| MD5 |
1236c9f404cc476411397a2dd79df55c
|
|
| BLAKE2b-256 |
cc4c4d8e4c7fb289148df6aaf572e900f5defbd3ad27d8372c4d339699c77e1e
|