PDF Table to CSV
Select a PDF table, correct column lines, and export CSV or TSV with optional number normalization.
Choose a PDF
One PDF, up to 50 MB. Select a table and export CSV or TSV.
Runs locally in your browser. Nothing is uploaded or sent to a server.
Choose a PDF, select its table area, adjust the column lines, and click Download CSV to export the extracted rows. The tool reads text-based PDFs locally in your browser, with TSV download and copying also available. Reuse the same layout across selected pages, merge wrapped lines, remove matching repeated headers, and optionally normalize number formats. Review the first 200 rows before exporting every extracted row; scanned tables need OCR first.
Updated
Related Tools
CSV to JSON
Map columns, preserve identifiers and choose types before downloading JSON or NDJSON.
developer-toolsJSON to CSV
Select nested JSON records, preview columns, and export CSV with your chosen headers and separator.
image-toolsImage to Text (OCR)
Extract text from up to 10 images locally, select regions, and review editable results before TXT export.
pdf-toolsSplit PDF
Split by pages, bookmarks or file size; extract selected ranges into one PDF or separate parts.
How Can You Extract a PDF Table to CSV?
Choose a PDF, select the table area, and place column lines between its fields. Click Download CSV to get rows of text and values rather than a screenshot. For an invoice with Description and Amount columns, keep First row is header checked, select Normalize numbers, and choose comma decimals with dot thousands. The example below shows the resulting cell values.
| Description | PDF amount | Exported amount |
|---|---|---|
| Equipment | 2.450,75 | 2450.75 |
| Credit | (125,50) | -125.5 |
| Delivery | 49,00 | 49 |
With CSV delimiter set to Comma (,), these two-column rows export as Equipment,2450.75, Credit,-125.5, and Delivery,49, following the header Description,Amount. Parentheses become a negative sign, and trailing decimal zeros disappear because normalized values become numbers. The three amounts sum to 2374.25; that is a manual reconciliation check, not a total calculated by this extractor. Leave formula protection enabled: the normalized negative amount remains numeric and receives no apostrophe prefix.
Keep as written instead retains the amount strings, including parentheses and decimal zeros. Comma-delimited CSV encloses an amount containing a comma in double quotes, so 2.450,75 becomes "2.450,75" in the file. Choose the mode that fits the next task: preserving source notation for review or preparing numeric values for spreadsheet calculations.
Bank statements are a common example: dates, descriptions, debits, credits, and balances must stay in separate columns before you can reconcile transactions. Invoices may contain item descriptions that wrap onto another line, while reports may repeat a heading on each page. The header, wrapped-line, and page-selection options help with those layouts. Always compare a few exported rows and totals with the original document before relying on the result for accounting or reporting.
Why Do Automatic Converters Shift Columns?
A PDF describes where text appears on a page. It does not necessarily describe a table with named columns and explicit cell boundaries. A description can be stored as several text fragments, and a right-aligned amount can start farther left when it has more digits. An automatic converter must infer a structure from those positions. A large gap inside a description can look like a new column, while a long value can obscure the gap between two real columns.
Adjustable column lines let you correct those guesses. Auto-detect columns suggests boundaries from the text, but you can add, drag, or remove a line while checking the result beside the page. Keyboard users can focus a column line and press an arrow key to move it by half a percentage point of the page width. Delete removes the focused line. Draw or resize the table area to exclude page titles, footnotes, and unrelated text before exporting.
How Should You Handle Number Formats?
The values 1.234,56 and 1,234.56 use opposite decimal and thousands conventions. Keep as written preserves the extracted text. Normalize numbers interprets numeric cells with the selected separators and exports recognized values as JavaScript numbers, so a recognized negative amount remains numeric even with formula protection enabled. Non-numeric text stays text. Cells whose displayed values change are highlighted in the preview so you can inspect those conversions.
Format detection provides a starting point when enough cells agree on a convention. A value such as 1,234 alone may be ambiguous: it might mean one thousand two hundred thirty-four or a decimal value. The tool requires an explicit separator choice when it cannot decide. Decimal and thousands separators must differ. Normalization uses JavaScript number precision, so keep long identifiers, account numbers, and values requiring exact decimal precision as written. Number formatting in your spreadsheet may still differ from the source PDF.
What Does Spreadsheet Formula Protection Do?
Text copied from a document can start with characters that spreadsheet applications recognize as instructions. For example, an equals sign can cause a cell to be treated as a formula instead of a label. The default formula guard prefixes potentially active text with an apostrophe. This applies to both downloads and copied TSV. It also prefixes negative numbers that remain strings; choose Normalize numbers when you want recognized negative amounts to remain numeric without that prefix.
Select the delimiter expected by your import settings. Semicolons can be useful when commas appear inside amounts, and TSV is convenient for pasting into a spreadsheet. Copy TSV copies tab-separated rows without a BOM. The optional UTF-8 BOM applies to downloads and can help applications identify accented characters correctly. CSV quotes protect delimiters and quotation marks inside cells, but CSV does not preserve spreadsheet formatting, formulas, or merged-cell styling.
Which PDF Tables Need Manual Cleanup?
Scanned pages and tables drawn as images need OCR first. This extractor reads an existing text layer and does not recognize characters in images. A warning links to Image to Text when a page contains no text. A page can also contain ordinary text around an image-only table; in that case selecting the image will produce no table rows. Merged cells, unusual reading order, overlapping text, and inconsistent layouts can require manual corrections after export.
For several similar pages, apply the current geometry to all pages or a selected range. Matching repeated headers can be dropped when the first row is marked as a header. Preview displays the first 200 rows, while downloads and copying include every extracted row. Processing stays in your browser, including password handling and text extraction. Your PDF and table data are not uploaded to a conversion service or saved as a browser draft. The 50 MB input limit helps bound memory use, although complex documents can still take time on smaller devices.
When Should You Merge Wrapped Lines?
Merge wrapped lines starts enabled. It joins a nearby continuation row to the preceding row only when all its text begins to the right of the inferred first-column boundary. The vertical distance must also be no more than 1.2 times the continuation row's median font height. This is a position-based rule, not recognition of invoice items or transaction meanings. A blank first column is therefore worth checking carefully.
For example, a product code in the first column and a description continuing underneath it can form one exported record. Text fragments assigned to the same cell are joined with spaces, so the original line break is not preserved. Turn the option off if separate records are being joined. Moving a vertical line changes cell assignment, but does not redefine the wrapped-line heuristic's inferred first column.
How Do You Combine Pages Without Losing Headers?
Apply to pages offers This page, All pages, and Page range. Every selected page uses the same area and column positions expressed relative to its page dimensions. This suits a repeated report layout; it does not locate a new table independently on each page. If the second page starts its table lower down or introduces another column, process that layout separately rather than assuming the first selection remains correct.
First row is header and Drop repeated header both start enabled. The first row of the first nonempty extracted table becomes the comparison header. Only the first row on a later page is removed, and only when its column count and every cell match after trimming surrounding whitespace. Matching is case-sensitive. A changed heading, an extra title inside the selected area, or a header repeated halfway down a page remains in the output.
What Should You Check After Downloading?
Table preview shows a row count and column count, but displays only the first 200 rows, including the header when enabled. Download and Copy TSV use every extracted row. Inspect records beyond that preview in your spreadsheet, particularly page boundaries, subtotal lines, and the final record. Reconcile against source amounts yourself: the tool does not validate totals or distinguish a subtotal from a transaction.
Use your spreadsheet's import settings to select the delimiter and the intended text or number type for each column. Keep as written preserves extracted text in the export pipeline; it does not control automatic type inference in another application. A spreadsheet may still interpret an account number as a number unless you import that column as text. After checking the CSV, use CSV to JSON if your next system needs structured records, or return to the PDF tools collection for other document tasks.
How to Use PDF Table to CSV
-
Choose a PDF
Choose one nonempty PDF up to 50 MB. If prompted, enter PDF password and select Open PDF. Use Previous and Next to choose the page containing your table.
-
Auto-detect columns
Draw or resize the table area, then select Auto-detect columns. Use Add column line for a missing boundary. Drag lines or focus one and use arrow keys to move it; Delete removes it.
-
Table options
Check First row is header, Merge wrapped lines, and Drop repeated header as needed. Set Apply to pages to This page, All pages, or Page range.
-
Number handling
Choose Keep as written or Normalize numbers. For normalization, confirm Decimal separator and Thousands separator. Check the highlighted changes in Table preview, which shows the first 200 rows.
-
Download CSV
Choose File format, CSV delimiter, UTF-8 BOM (download), and Protect against spreadsheet formulas. Edit the filename, then select Download CSV, Download TSV, or Copy TSV to export every extracted row.