> ## 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.

# Text Extract

> Pull the readable text out of a PDF inside a Zap with the Nitro PDF Services app.

Returns the readable text of a PDF as Zap fields you can map into any later step. The action appears in the picker as **Text Extract**.

## Inputs

| Field | Required | Description |
| - | - | - |
| **PDF File** | Yes | The PDF to read |
| **Page Indices** | No | Comma-separated zero-based pages, for example `0,2`. Leave empty for the whole document. |
| **Reading Order** | No | Reorder text to follow the visual reading flow (left-to-right, top-to-bottom). |

<Note>
  **Reading Order** 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 **Output Type** field — extractions always return structured fields.

## Outputs

| Field | Description |
| - | - |
| **Extracted Text** (`text`) | The full text of the request as one string |
| **Text Split by Pages** (`pages_text`) | The extracted text split on blank lines |

<Warning>
  `pages_text` is produced by splitting the extracted text on blank lines, not by page boundaries.
  Treat it as a convenience for chunking, not as a reliable per-page breakdown. To get the text of
  one specific page, set **Page Indices** to that page and use **Extracted Text**.
</Warning>

## Example Zap

Log the text of every emailed invoice to a spreadsheet.

<Steps>
  <Step title="Gmail — New Attachment">
    Filter to the label or search that catches invoices.
  </Step>

  <Step title="Filter by Zapier">
    Only continue if the attachment name **ends with** `.pdf`.
  </Step>

  <Step title="Nitro PDF Services — Text Extract">
    * **PDF File** → the trigger's attachment.
    * Leave **Page Indices** empty to read the whole document.
  </Step>

  <Step title="Google Sheets — Create Spreadsheet Row">
    Map **Extracted Text** into a column, alongside the sender and received date from the trigger.
  </Step>
</Steps>

<Tip>
  To pull one specific value rather than the whole document, use **Form Extract**, **Parse Invoice** or
  **Text Bounding Box Extract From PDF** instead — both return structured fields that are much
  easier to branch on than free text.
</Tip>

## Related

* [Actions](/docs/integrations/zapier/actions)
* [Extract Text API reference](/docs/api-reference/platform/extractions/text)
