mcpField

docx-format-replicator

github.com/iamzhihuix文档处理655 次安装
代码仓库

关于 docx-format-replicator

docx-format-replicator 从 Word .docx 文件提取格式,并将格式应用于由 JSON 内容生成的新文档,适合需要保持结构和样式一致的重复文档制作。

主要功能

  1. 01提取样式与版面设置
  2. 02提取编号、表格、页眉和页脚
  3. 03根据 JSON 输入生成 .docx
  4. 04支持标题、段落、表格和分页
  5. 05重复使用提取的格式配置

适用场景

  1. 01使用公司模板创建报告
  2. 02制作格式一致的技术文档
  3. 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.json
hy_template_format.json
references/
content_data_schema.md
format_config_schema.md
scripts/
extract_format.py
generate_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 份格式相同但内容不同的文档。”

  1. 提取格式:
python scripts/extract_format.py research_task_template.docx template_format.json
  1. 为每份新文档创建内容文件(content1.json、content2.json 等)

  2. 生成文档:

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

提示

  1. 先使用示例进行测试:先使用随附的 hy_template_format.json 和 example_content.json 了解工作流,再提取自己的格式。

  2. 从简单开始:先使用基本标题和段落,再添加表格和复杂格式。

  3. 验证 JSON:生成文档前,使用 JSON 验证器检查内容数据文件。

  4. 保留格式配置:保存提取的格式配置,以便在多个项目中重复使用。

  5. 版本控制:将格式配置和内容数据都纳入版本控制,以便可复现地生成文档。

评论

支持 Markdown