mcpField

docx-format-replicator

github.com/iamzhihuixドキュメント655 回インストール
リポジトリ

docx-format-replicator について

docx-format-replicatorは、Wordの.docxファイルから書式を抽出し、JSONの内容を使って新しい文書に適用します。構成やスタイルを統一した文書を繰り返し作成する用途向けです。

主な機能

  1. 01スタイルとレイアウト設定の抽出
  2. 02番号、表、ヘッダー、フッターの取得
  3. 03JSON入力から.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 要素
  • 高度な表の機能(セル結合、罫線)
  • 埋め込みオブジェクト
  • カスタムプロパティ
コンテンツタイプの拡張

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 で確認できます。

表の書式設定に関する問題:コンテンツデータとフォーマット設定で、表の行数と列数が一致していることを確認してください。表の構造については、format_config_schema.md をご覧ください。

フォントが正しく表示されない:一部のフォントは、すべてのシステムで利用できるとは限りません。参照されているフォントがインストールされていることを確認してください。

依存関係が不足している:必要な Python パッケージをインストールしてください:

pip install python-docx

ヒント

  1. まず例を使ってテストする:独自のフォーマットを抽出する前に、付属の hy_template_format.json と example_content.json を使ってワークフローを確認してください。

  2. シンプルに始める:基本的な見出しと段落から始め、その後、表や複雑な書式設定を追加してください。

  3. JSON を検証する:ドキュメントを生成する前に、JSON バリデーターを使ってコンテンツデータファイルをチェックしてください。

  4. フォーマット設定を保存する:複数のプロジェクトで再利用できるよう、抽出したフォーマット設定を保存してください。

  5. バージョン管理:再現可能なドキュメント生成のため、フォーマット設定とコンテンツデータの両方をバージョン管理で追跡してください。

コメント