mcpField
D
docx

docx

github.com/moizibnyousafドキュメント1.2k164 回インストール5 週間前に更新
リポジトリ

docx について

DOCX文書の読み取り、作成、編集、変換を支援するスキルです。テキスト処理、OOXMLの変更、変更履歴の記録、画像変換の手順をまとめています。

主な機能

  1. 01Pandocによるテキスト抽出
  2. 02文書の生XMLの確認
  3. 03docx-jsによる文書作成
  4. 04OOXML編集と変更履歴の記録
  5. 05DOCXページの画像変換

活用シーン

  1. 01テキストと変更履歴の抽出
  2. 02新しいDOCX文書の作成
  3. 03ビジネス文書や法務文書の編集
  4. 04文書ページ画像の準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill docx

インストール後、Claude Code で/docxを入力して読み込まれたか確認します。

詳細

DOCX の処理

ワークフローの判断ツリー

  • 読み取り/分析:テキスト抽出または生の XML へのアクセスを使用します
  • 新規ドキュメントの作成:docx-js(JavaScript)を使用します
  • 既存ドキュメントの編集:OOXML の編集または変更履歴を記録するワークフローを使用します

コンテンツの読み取り

Pandoc によるテキスト抽出
# Convert to markdown with tracked changes
pandoc --track-changes=all file.docx -o output.md
生の XML へのアクセス
# Unpack document
unzip document.docx -d unpacked/
# Key files:
# word/document.xml - Main content
# word/comments.xml - Comments
# word/media/ - Images

新規ドキュメントの作成(docx-js)

import { Document, Paragraph, TextRun, Packer } from 'docx';
import fs from 'fs';

const doc = new Document({
  sections: [{
    children: [
      new Paragraph({
        children: [
          new TextRun({ text: "Hello ", bold: true }),
          new TextRun({ text: "World", italics: true })
        ]
      })
    ]
  }]
});

const buffer = await Packer.toBuffer(doc);
fs.writeFileSync('document.docx', buffer);

既存ドキュメントの編集

簡単な編集
  1. 展開します:unzip doc.docx -d unpacked/
  2. word/document.xml を編集します
  3. 再パッケージ化します:cd unpacked && zip -r ../edited.docx .
変更履歴(赤字修正)

専門的なドキュメントでは、変更履歴を使用します:


<w:del w:author="Author" w:date="2025-01-01T00:00:00Z">
  <w:r><w:delText>old text</w:delText></w:r>
</w:del>


<w:ins w:author="Author" w:date="2025-01-01T00:00:00Z">
  <w:r><w:t>new text</w:t></w:r>
</w:ins>

画像への変換

# DOCX to PDF
soffice --headless --convert-to pdf document.docx

# PDF to images
pdftoppm -jpeg -r 150 document.pdf page

ベストプラクティス

  • テキスト抽出には Pandoc を使用します
  • 新規ドキュメントの作成には docx-js を使用します
  • 法務/ビジネス文書では、必ず変更履歴を使用します
  • 編集時は元の RSID を保持します

コメント