PDF
PDF Table Extract
Reads tabular data out of PDF files using either the built-in pdf.js engine or Tabula, and turns the detected tables into rows.
When to use it
Use it when the numbers you need are printed in a PDF report, statement or invoice and there is no CSV or database behind it.
In a pipeline
PDF File InputPDF Table ExtractExport CSV
Settings
| Setting | Type | Required | Default or hint |
|---|---|---|---|
| Extraction Engine | select | Yes | pdfjs |
| Page Mode | select | Yes | all |
| Start Page | number | — | 1 |
| End Page | number | — | 1 |
| Specific Pages | text | — | e.g. 1,3,5-7 |
| Table Detection | select | Yes | all |
| Table Index (0-based) | number | — | 0 |
| Header Detection | select | Yes | auto |
| Table Output Mode | select | Yes | all |
| Selected Table Index (0-based) | number | — | 0 |
| Output Format | select | Yes | single |
| On Error | select | Yes | continue |
Example
Pulling transactions out of a bank statement
- Extraction Engine=pdfjs (built-in)
- Page Mode=Page Range
- Table Detection=Merge Tables
| Page | Tables found |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 1 |
| __page | Date | Description | Amount |
|---|---|---|---|
| 2 | 2026-08-03 | Office supplies | 142.50 |
| 2 | 2026-08-11 | Courier | 38.00 |
| 3 | 2026-08-19 | Software licence | 420.00 |
Merge Tables joins tables that have the same number of columns, keeping the first table's column names.
Worth knowing
- Tabula needs a Java runtime on the server; without one the node tells you to switch to the pdf.js engine, which is the default.
- Every extracted row carries internal columns — __page, __table_index, __table_columns — which exports skip but you can read.
- Stream and Lattice only mean anything to Tabula; the pdf.js engine ignores them.
- Header Detection on Auto treats the first row as a header only when it looks like one; otherwise columns come out as Column_1, Column_2.