# Docx Pptx Extraction

> Extract text from DOCX and PPTX files for content analysis

- **Type:** Skill
- **Install:** `agentstack add skill-cxcscmu-skilllearnbench-docx-pptx-extraction`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [cxcscmu](https://agentstack.voostack.com/s/cxcscmu)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [cxcscmu](https://github.com/cxcscmu)
- **Source:** https://github.com/cxcscmu/SkillLearnBench/tree/main/skills/b1-one-shot-claude-haiku-4-5/organize-messy-files/docx-pptx-extraction
- **Website:** https://cxcscmu.github.io/SkillLearnBench

## Install

```sh
agentstack add skill-cxcscmu-skilllearnbench-docx-pptx-extraction
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# DOCX and PPTX Text Extraction

## Overview
Extract text content from Microsoft Office files (.docx, .pptx) for subject classification.

## Installation
```bash
pip install python-docx python-pptx
```

## DOCX Extraction

```python
from docx import Document

def extract_docx_text(docx_path, max_chars=5000):
    """Extract text from DOCX files"""
    try:
        doc = Document(docx_path)
        text = ""
        for para in doc.paragraphs:
            text += para.text + "\n"
            if len(text) > max_chars:
                break
        return text[:max_chars]
    except Exception as e:
        return f"Error reading DOCX: {str(e)}"
```

## PPTX Extraction

```python
from pptx import Presentation

def extract_pptx_text(pptx_path, max_chars=5000):
    """Extract text from PPTX files"""
    try:
        prs = Presentation(pptx_path)
        text = ""
        for slide_num, slide in enumerate(prs.slides):
            if slide_num >= 5:  # First 5 slides
                break
            for shape in slide.shapes:
                if hasattr(shape, "text"):
                    text += shape.text + "\n"
                    if len(text) > max_chars:
                        return text[:max_chars]
        return text[:max_chars]
    except Exception as e:
        return f"Error reading PPTX: {str(e)}"
```

## Combined Handler

```python
def extract_text_by_type(file_path):
    """Route to appropriate extraction method based on file extension"""
    ext = file_path.lower().split('.')[-1]

    if ext == 'pdf':
        return extract_pdf_text(file_path)
    elif ext == 'docx':
        return extract_docx_text(file_path)
    elif ext == 'pptx':
        return extract_pptx_text(file_path)
    else:
        return ""
```

## Best Practices
- Extract from first 3-5 pages/slides only
- Handle missing text shapes gracefully
- Use consistent character limits across all file types

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [cxcscmu](https://github.com/cxcscmu)
- **Source:** [cxcscmu/SkillLearnBench](https://github.com/cxcscmu/SkillLearnBench)
- **License:** MIT
- **Homepage:** https://cxcscmu.github.io/SkillLearnBench

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-cxcscmu-skilllearnbench-docx-pptx-extraction
- Seller: https://agentstack.voostack.com/s/cxcscmu
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
