> ## Documentation Index
> Fetch the complete documentation index at: https://developers.gonitro.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Extract all Text from PDF

> Pull the readable text out of a PDF inside a Power Automate flow with the Nitro PDF Services connector.

Returns the readable text of a PDF as JSON.

## Inputs

| Field | Required | Description |
| - | - | - |
| **PDF File** | Yes | The PDF's bytes |
| **Extraction Parameters** | No | A JSON object with `pageIndices` and `readingOrder` |

`Extraction Parameters` accepts:

| Field | Type | Description |
| - | - | - |
| `pageIndices` | Integer array | Zero-based pages to extract. Omit for the whole document. Out-of-range indices are ignored. |
| `readingOrder` | Boolean | Reorder text to follow the visual reading flow (left-to-right, top-to-bottom). |

```json theme={null}
{ "pageIndices": [0, 2], "readingOrder": true }
```

<Note>
  `readingOrder` helps on multi-column layouts, but on dense designs it can interleave sentences
  from adjacent columns. Unordered extraction returns the same output every time for the same file,
  so leave it off when you need reproducible results.
</Note>

There is no **Accept** input — extractions always return JSON.

## Outputs

A single `result` property holding the document's text:

```json theme={null}
{
  "result": "Invoice INV-1042\nAcme Corporation\n\nTerms and conditions\n…"
}
```

In the designer this surfaces as a **result** token you can drop into later steps.

<Note>
  There is no per-page breakdown in the response — `result` is one string for the whole request. To
  process pages separately, call the action once per page with `pageIndices` set to that page.
</Note>

## Example flow

Extract the text of an emailed invoice and post it to Teams for review.

<Steps>
  <Step title="When a new email arrives (V3)">
    Outlook, filtered to a shared mailbox and **Only with attachments** set to Yes.
  </Step>

  <Step title="Apply to each — Attachments">
    Iterate the trigger's **Attachments**.
  </Step>

  <Step title="Extract all Text from PDF">
    Nitro. **PDF File** → the attachment's **Content**. Leave **Extraction Parameters** empty to
    read the whole document.
  </Step>

  <Step title="Post message in a chat or channel">
    Teams. Use the Nitro step's **result** output in the message body.
  </Step>
</Steps>

<Tip>
  To pull a specific value rather than the whole document, use **Extract searched Text from PDF**,
  **Extract PDF Form Data** or **Extract Invoice Data from PDF** instead — all return structured
  results that are easier to branch on than free text.
</Tip>

## Related

* [Actions](/docs/integrations/power-automate/actions)
* [Using JSON outputs](/docs/integrations/power-automate/working-with-files#using-json-outputs)
* [Extract Text API reference](/docs/api-reference/platform/extractions/text)
