word-document-handler

tjade273's avatarfrom tjade273

Comprehensive Microsoft Word (.docx) document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction

0stars🔀0forks📁View on GitHub🕐Updated Sep 9, 2025

When & Why to Use This Skill

This Claude skill enables comprehensive management of Microsoft Word (.docx) files, offering professional-grade capabilities for document creation, precise XML-based editing, and deep structural analysis. It excels at preserving complex formatting, managing tracked changes, and extracting content, making it an essential tool for automating sophisticated document workflows and professional reporting.

Use Cases

  • Automated Professional Reporting: Generate high-quality business reports, legal contracts, or academic papers from scratch with precise control over styles, headers, and professional formatting.
  • Intelligent Document Review and Collaboration: Analyze existing documents to extract text, manage reviewer comments, and apply edits while maintaining full visibility through 'tracked changes' for human oversight.
  • Format-Preserving Content Updates: Perform surgical edits on complex documents by manipulating raw OOXML, ensuring that styles, embedded media, and document structures remain perfectly intact.
  • Multi-format Document Conversion and Analysis: Seamlessly convert .docx files to Markdown for web use or into high-resolution images for visual inspection and page-by-page analysis.
nameWord Document Handler
descriptionComprehensive Microsoft Word (.docx) document creation, editing, and
when_to_use"When users need to work with Word documents for: (1) Creating new documents
version0.0.1

DOCX creation, editing, and analysis

Overview

A user may ask you to create, edit, or analyze the contents of a .docx file. A .docx file is essentially a ZIP archive containing XML files and other resources that you can read or edit. You have different tools and workflows available for different tasks.

Reading and analyzing content

Text extraction

If you just need to read the text contents of a document, you should convert the document to markdown using pandoc. Pandoc provides excellent support for preserving document structure and can show tracked changes:

# Convert document to markdown with tracked changes
pandoc --track-changes=all path-to-file.docx -o output.md
# Options: --track-changes=accept/reject/all

Raw XML access

You need raw XML access for: comments, complex formatting, document structure, embedded media, and metadata. For any of these features, you'll need to unpack a document and read its raw XML contents.

Unpacking a file

python ooxml/scripts/unpack.py <office_file> <output_directory>

Key file structures

  • word/document.xml - Main document contents
  • word/comments.xml - Comments referenced in document.xml
  • word/media/ - Embedded images and media files
  • Tracked changes use <w:ins> (insertions) and <w:del> (deletions) tags

Creating a new Word document

When creating a new Word document from scratch, use docx-js, which allows you to create Word documents using JavaScript/TypeScript.

Workflow

  1. MANDATORY - READ ENTIRE FILE: Read docx-js.md (~500 lines) completely from start to finish. NEVER set any range limits when reading this file. Read the full file content for detailed syntax, critical formatting rules, and best practices before proceeding with document creation.
  2. Create a JavaScript/TypeScript file using Document, Paragraph, TextRun components (You can assume all dependencies are installed, but if not, refer to the dependencies section below)
  3. Export as .docx using Packer.toBuffer()

Editing an existing Word document

When editing an existing Word document, you need to work with the raw Office Open XML (OOXML) format. This involves unpacking the .docx file, editing the XML content, and repacking it. If the document already contains tracked changes (redlines), use tracked changes for your edits to maintain consistency. Always use w:author="Claude" for all tracked changes.

Workflow

  1. MANDATORY - READ ENTIRE FILE: Read ooxml.md (~500 lines) completely from start to finish. NEVER set any range limits when reading this file. Read the full file content for detailed syntax, critical validation rules, and patterns before proceeding.
  2. Unpack the document: python ooxml/scripts/unpack.py <office_file> <output_directory>
  3. Edit the XML files (primarily word/document.xml and word/comments.xml)
  4. CRITICAL: Validate immediately after each edit and fix any validation errors before proceeding: python ooxml/scripts/validate.py <dir> --original <file>
  5. Pack the final document: python ooxml/scripts/pack.py <input_directory> <office_file>

Converting Documents to Images

To visually analyze Word documents, convert them to images using a two-step process:

  1. Convert DOCX to PDF:

    soffice --headless --convert-to pdf document.docx
    
  2. Convert PDF pages to JPEG images:

    pdftoppm -jpeg -r 150 document.pdf page
    

    This creates files like page-1.jpg, page-2.jpg, etc.

Options:

  • -r 150: Sets resolution to 150 DPI (adjust for quality/size balance)
  • -jpeg: Output JPEG format (use -png for PNG if preferred)
  • -f N: First page to convert (e.g., -f 2 starts from page 2)
  • -l N: Last page to convert (e.g., -l 5 stops at page 5)
  • page: Prefix for output files

Example for specific range:

pdftoppm -jpeg -r 150 -f 2 -l 5 document.pdf page  # Converts only pages 2-5

Code Style Guidelines

IMPORTANT: When generating code for DOCX operations:

  • Write concise code
  • Avoid verbose variable names and redundant operations
  • Avoid unnecessary print statements

Dependencies

Required dependencies (install if not available):

  • pandoc: sudo apt-get install pandoc (for text extraction)
  • docx: npm install -g docx (for creating new documents)
  • LibreOffice: sudo apt-get install libreoffice (for PDF conversion)
  • Poppler: sudo apt-get install poppler-utils (for pdftoppm to convert PDF to images)
word-document-handler – AI Agent Skills | Claude Skills