# General Document Parsing

Parse files into document records and plain text for chunking, information extraction, AI inference, and other downstream steps.

Use this node for text, tables, and images in documents such as PDF, Word, and PowerPoint files. Select files and a parsing tier. Choose Enhanced when tables, images, or heading structure need additional processing.

Use [Parse Audio](audio-parse.md) and [Parse Video](video-parse.md) for audio and video. General Document Parsing does not accept these files.

## Input files

Select files from Catalog or bind upstream file references.

| Input method | Configuration |
| --- | --- |
| Select Catalog files | Select the files in the file input; one file uses `file_id`, multiple files use `file_ids` |
| Use upstream reading results | Bind `sources` from [Read MOI Volume](../data-io/read-volume.md) to the source input |
| Use upstream file IDs | Bind upstream `file_ids` to the file input |

Choose one method. When using sources, they determine the file set; file IDs supplied alongside them are not appended.

```{note}
Inputs are file references that the node reads. Pass already parsed `documents` directly to chunking, extraction, or indexing instead of parsing them again.
```

## Parsing tier

The parsing tier selects the type of processing. The default is **Standard**.

| Tier | When to use it |
| --- | --- |
| Native | Extract native content and structure, such as text and structure already present in Office files |
| Standard | Default for ordinary documents, balancing parsing results and processing cost |
| Enhanced | Additional processing for scans, complex layouts, tables, formulas, or heading levels; enables the options below |

Selecting Enhanced reveals options for tables, images, content, and reading order. The following enhanced options and defaults apply only to that tier.

## Page filter

Enable the page filter to process part of a document. With filtering disabled or the range empty, all pages are processed.

- `1-3`: pages 1 through 3.
- `1,3,5`: pages 1, 3, and 5.
- `1-3,5,8-10`: a combination of ranges and individual pages.

Pages are numbered from 1. For presentations, page numbers refer to slides. Use ranges that correspond to the actual source pages.

## Enhanced options

### Tables

| Setting | Default | Effect |
| --- | --- | --- |
| Complex table understanding | On | Handles merged cells, multiple table regions, and images inside cells |
| Merge tables across pages | On | Merges parts of the same table across consecutive pages |
| Save table images | Off | Saves cropped images of detected tables in addition to parsed results |
| Table output format | HTML table | Represents tables as HTML or images |
| Flatten merged cells | Off | Expands merged HTML cells and copies the top-left cell's content across the merged area |

Flattening is available only with Enhanced parsing and HTML table output. Switching to table images or another tier turns it off. Selecting table images in the run configuration panel also turns off complex table understanding and cross-page table merging.

### Images

| Setting | Default | Effect |
| --- | --- | --- |
| Image captions | On | Generates natural-language descriptions |
| Caption language | Chinese | Choose Chinese or English when captions are enabled |
| Image OCR | On | Extracts text from images |

### Content

| Setting | Default | Effect |
| --- | --- | --- |
| Heading enhancement | VLM heading recognition | Recognizes and normalizes heading levels; disabling it retains the original structure |
| Formula repair | On | Repairs formula representations and inline formulas |

Enhancement depends on the content actually present in a file. Compare the relevant results with the source after enabling an option.

### Reading order

The default is **Original order**. Choose **Layout reorder** to organize content by page position.

- **Original order**: retain the parsed block order.
- **Layout reorder**: reorganize reading order using layout positions.

## Parsing results

The node outputs a document array and plain text. Choose the output required by the next step.

| Output | Content | Use |
| --- | --- | --- |
| `documents` | Parsed records with content and, where available, type and source metadata | Segment, extraction, text embedding, or knowledge indexing |
| `plain_text` | Plain text extracted from the parsed documents | Text-processing steps such as AI Inference |
| `source_file_ids` | Original file IDs, deduplicated in input order | Source associations; these are not parsed artifact IDs |
| `metadata` | Additional parsing information, such as option hints, when present | Inspect additional details about this parse |

Pass the full `documents` array to retain source files, page numbers, and other metadata.

Connect [Write Document Files](../other/write-document-files.md) to save the array as files. `source_file_ids` identifies originals; the writing node creates the result files.

## Example: parse and chunk a report

```text
Read MOI Volume → General Document Parsing → Segment
```

1. Select a PDF report in Read MOI Volume.
2. Bind its `sources` output to General Document Parsing's source input.
3. Keep the Standard tier. To inspect only the first few pages, enable the page filter and enter `1-3`.
4. Bind `documents` to [Segment](chunk.md).
5. Inspect the parsed text and source information in the run results, then inspect the chunks.

For complex tables, switch to Enhanced and choose the table options you need. Check table completeness, cross-page continuity, and whether chunking preserves the required content.

## Related pages

- [Variables and data flow](../../variables-and-data.md): input bindings and references across nodes.
- [Information Extraction](information-extraction.md): extract structured fields.
- [Embed and Add to Knowledge Base](knowledge-index.md): prepare documents for retrieval.
- [Run and debug](../../run-debug.md): inspect inputs, outputs, and execution logs.
