# DOCX to Text Node for n8n

![Node Version](https://img.shields.io/badge/Node%20version-14.x%20%7C%2016.x%20%7C%2018.x-blue) 
![n8n Version](https://img.shields.io/badge/n8n-%3E%3D%200.198.0-blue)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

An n8n node that converts DOCX files to plain text using the [mammoth](https://www.npmjs.com/package/mammoth) library.

## Features

- Convert DOCX files to formatted text
- Preserve basic formatting (bold, italics, etc.)
- Option to include the original filename in the output
- Simple and easy to use

## Installation

### In n8n

1. Go to **Settings** > **Community Nodes**
2. Click on **Install**
3. Enter the npm package name: `n8n-nodes-docxtotext`
4. Click **Install**
5. Restart n8n

### Manual Installation

1. In your n8n root directory, run:
   ```bash
   npm install n8n-nodes-docxtotext
   ```
2. Restart n8n

## Usage

1. Add the **DOCX to Text** node to your workflow
2. Connect it to a node that provides a DOCX file (e.g., **Read Binary File** or **HTTP Request**)
3. Configure the node:
   - **Binary Property**: The name of the binary property containing the DOCX file (default: `data`)
   - **Options** > **Include Filename**: Whether to include the original filename in the output
4. The node will output an object containing:
   - `text`: The extracted text content
   - `messages`: Any messages from the conversion process
   - `filename`: The filename without the extension (if enabled in options)
   - `fileExtension`: The file extension in lowercase (if available and enabled in options)

## Example

### Input
A DOCX file with the following content:
```
Hello World!
This is a test document.
```

### Output
```json
{
  "text": "Hello World!\nThis is a test document.",
  "messages": [],
  "filename": "example",
  "fileExtension": "docx"
}
```

## Development

### Prerequisites

- Node.js (v14.x, v16.x, or v18.x)
- npm (v6.x or later)
- n8n (v0.198.0 or later)

### Setup

1. Clone the repository
2. Install dependencies:
   ```bash
   npm install
   ```
3. Build the project:
   ```bash
   npm run build
   ```
4. Link the package for local development:
   ```bash
   npm link
   ```
5. In your n8n directory, link the package:
   ```bash
   npm link n8n-nodes-docxtotext
   ```
6. Restart n8n

### Testing

1. Run the linter:
   ```bash
   npm run lint
   ```
2. Build the project:
   ```bash
   npm run build
   ```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- [mammoth.js](https://github.com/mwilliamson/mammoth.js) - Used for DOCX to text conversion
- [n8n](https://n8n.io/) - Workflow automation tool
