关于 docx-format-replicator
docx-format-replicator 从 Word .docx 文件提取格式,并将格式应用于由 JSON 内容生成的新文档,适合需要保持结构和样式一致的重复文档制作。
主要功能
- 01提取样式与版面设置
- 02提取编号、表格、页眉和页脚
- 03根据 JSON 输入生成 .docx
- 04支持标题、段落、表格和分页
- 05重复使用提取的格式配置
适用场景
- 01使用公司模板创建报告
- 02制作格式一致的技术文档
- 03生成内容不同的多份文档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ iamzhihuix/ happy-claude-skills --skill docx-format-replicator安装后在 Claude Code 中输入/docx-format-replicator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/example_content.jsonhy_template_format.jsonreferences/content_data_schema.mdformat_config_schema.mdscripts/extract_format.pygenerate_document.py详细介绍
DOCX 格式复制器
概述
从现有 Word 文档(.docx)中提取格式信息,并用它生成格式相同但内容不同的新文档。此技能可用于创建文档模板、在多个文档间保持格式一致,以及复刻复杂的 Word 文档结构。
何时使用此技能
在用户有以下需求时使用此技能:
- 想从现有 Word 文档中提取格式
- 需要创建多份格式相同的文档
- 有一份模板文档,想用新内容生成类似文档
- 要求“复刻”“复制格式”“使用相同样式”或“创建一份类似的文档”
- 提及文档模板、企业标准或格式一致性
工作流
步骤 1:从模板提取格式
从现有 Word 文档中提取格式信息,以创建可复用的格式配置。
python scripts/extract_format.py <template.docx> <output.json>
示例:
python scripts/extract_format.py "HY研制任务书.docx" format_template.json
提取内容:
- 样式定义(字体、字号、颜色、对齐方式)
- 段落样式和字符样式
- 编号方案(1、1.1、1.1.1 等)
- 表格结构和样式
- 页眉和页脚配置
输出:包含所有格式信息的 JSON 文件(详情请参阅 references/format_config_schema.md)
步骤 2:准备内容数据
创建一个包含新文档实际内容的 JSON 文件。内容必须遵循 references/content_data_schema.md 中定义的结构。
内容结构:
{
"metadata": {
"title": "Document Title",
"author": "Author Name",
"version": "1.0",
"date": "2025-01-15"
},
"sections": [
{
"type": "heading",
"content": "Section Title",
"level": 1,
"number": "1"
},
{
"type": "paragraph",
"content": "Paragraph text content."
},
{
"type": "table",
"rows": 3,
"cells": [
["Header 1", "Header 2"],
["Data 1", "Data 2"]
]
}
]
}
支持的章节类型:
heading- 带可选编号的标题paragraph- 文本段落table- 可配置行列的表格page_break- 分页符
完整示例请参阅 assets/example_content.json。
步骤 3:生成新文档
使用提取的格式和准备好的内容生成新的 Word 文档。
python scripts/generate_document.py <format.json> <content.json> <output.docx>
示例:
python scripts/generate_document.py format_template.json new_content.json output_document.docx
结果:一个将模板格式应用于新内容的 .docx 文件。
完整工作流示例
用户提出需求:“我有一份研究任务文档。需要再创建 5 份格式相同但内容不同的文档。”
- 提取格式:
python scripts/extract_format.py research_task_template.docx template_format.json
-
为每份新文档创建内容文件(content1.json、content2.json 等)
-
生成文档:
python scripts/generate_document.py template_format.json content1.json document1.docx
python scripts/generate_document.py template_format.json content2.json document2.docx
# ... repeat for all documents
常见用例
企业文档模板
从公司模板中提取格式,并生成品牌风格一致的报告、提案或规范文档。
# One-time: Extract company template
python scripts/extract_format.py "Company Template.docx" company_format.json
# For each new document:
python scripts/generate_document.py company_format.json new_report.json "Monthly Report.docx"
技术文档系列
创建多份格式完全相同的技术文档(规范、测试计划、手册)。
# Extract from specification template
python scripts/extract_format.py spec_template.docx spec_format.json
# Generate multiple specs
python scripts/generate_document.py spec_format.json product_a_spec.json "Product A Spec.docx"
python scripts/generate_document.py spec_format.json product_b_spec.json "Product B Spec.docx"
研究任务文档
随附的示例模板(assets/hy_template_format.json)展示了完整的研究任务文档格式,其中包含:
- 页眉中的审批/审阅表格
- 多级编号(1、1.1、1.1.1)
- 技术规范表格
- 结构化章节
可将其用作类似技术文档的起点。
高级用法
自定义提取
修改 scripts/extract_format.py,以提取默认功能未涵盖的其他属性:
- 自定义 XML 元素
- 高级表格功能(合并单元格、边框)
- 嵌入对象
- 自定义属性
扩展指南请参阅 references/content_data_schema.md。
扩展内容类型
在 scripts/generate_document.py 中添加新的章节类型:
- 带标题的图片
- 项目符号列表或编号列表
- 脚注和尾注
- 自定义内容块
扩展指南请参阅 references/content_data_schema.md。
批量处理
创建一个包装脚本来生成多个文档:
import json
import subprocess
format_file = "template_format.json"
content_files = ["content1.json", "content2.json", "content3.json"]
for i, content_file in enumerate(content_files, 1):
output = f"document_{i}.docx"
subprocess.run([
"python", "scripts/generate_document.py",
format_file, content_file, output
])
依赖项
脚本需要:
- Python 3.7+
python-docx库:pip install python-docx
核心功能无需其他依赖项。
资源
scripts/
- extract_format.py - 从 Word 文档中提取格式
- generate_document.py - 根据格式和内容生成新文档
两个脚本均内置帮助信息:
python scripts/extract_format.py --help
python scripts/generate_document.py --help
references/
- format_config_schema.md - 格式配置文件的完整架构
- content_data_schema.md - 内容数据文件的完整架构
阅读这些文件,详细了解文件结构和可用选项。
assets/
- hy_template_format.json - 从技术研究任务文档中提取的格式示例
- example_content.json - 展示所有章节类型的内容数据示例
创建自己的格式文件和内容文件时,可参考这些示例。
故障排除
输出中缺少样式:确保内容数据中的样式 ID 与格式配置中的样式 ID 相匹配。查看 format.json 以了解可用的样式 ID。
表格格式问题:确认内容数据和格式配置中的表格行数和列数相匹配。有关表格结构,请参阅 format_config_schema.md。
字体显示不正确:某些字体可能并非在所有系统上都可用。请检查所引用的字体是否已安装。
缺少依赖项:安装所需的 Python 软件包:
pip install python-docx
提示
-
先使用示例进行测试:先使用随附的
hy_template_format.json和example_content.json了解工作流,再提取自己的格式。 -
从简单开始:先使用基本标题和段落,再添加表格和复杂格式。
-
验证 JSON:生成文档前,使用 JSON 验证器检查内容数据文件。
-
保留格式配置:保存提取的格式配置,以便在多个项目中重复使用。
-
版本控制:将格式配置和内容数据都纳入版本控制,以便可复现地生成文档。