PDF Table Review

Extract text-based PDF tables to CSV or JSON. Compare cells with the original before downloading.

Choose PDF → compare tables → download

One PDF · 20 MiB · Up to 20 pages

Choose a PDF, or try the example first.

Review locally parsed JSON (optional)

Already have locally parsed table JSON? Choose its original PDF, then import the result. This replaces the current tables and resets every confirmation.

Reads the original for file identity and text comparison only.

Up to 2 MiB. Must belong to the same PDF.

Choose the original PDF first. Matching digests identify the file; they do not prove the table is correct.

This does not install or call Python, run a model or upload files. After a refresh, choose the files again.

How to use this tool

What is PDF table review?

This tool finds tables in PDFs with selectable text and lets you compare and correct the cells before exporting. It records the original file’s SHA-256 and your declared review. These records identify the source; they do not prove that extraction was correct.

Example and expected result

The owned example contains two pages with a ruled and an unruled table. Each has three data rows and four columns. Gamma must retain both 70.50 values. Select a complete region and export each table separately after checking it.

How to extract and review a table

  1. Choose one text-based PDF, or try the two-page example. Keep the original open for comparison.
  2. Select a table from the list. Draw a region containing its header and every data row; precision coordinates also work with a keyboard. Exclude page titles and footnotes that are outside the table.
  3. Compare headers, row relationships, wrapped names and amounts. Edit incorrect cells. If two separate tables were joined, use the split control and review each resulting region separately. Check the original header structure first. This tool does not automatically detect multiple header rows.
  4. Check the review box after comparing the complete table. Download CSV for a spreadsheet, or JSON for original strings and the review record. Any edit or region change removes that confirmation.

Which output should I choose?

OutputChoose it forLimit
CSVOpening the current table in a spreadsheetChoose UTF-8 and a comma separator. Set identifier columns to text in the import preview before loading. Quotation marks alone do not prevent number/date conversion. Potential formulas receive an apostrophe prefix.
JSONPreserving strings and passing a review record to a script or AI assistantIncludes source-file identity, positional edits and declared review. It does not certify that row and column meanings are correct.

Formats and limits

PDF input: 20 MiB, 20 pages and 40 tables. A table allows 1,000 data rows, 100 columns and 2,000 cells including the header. Blank or merged headers, image cells and scanned pages are unsupported. Rotation, text order and unmarked multiple header rows need particular care. If one table is unsupported, extraction may reject the document. Text is capped at 200,000 characters, each cell at 10,000 characters and page text at 5,000 items. Extraction has a 60-second deadline; this is not a total startup-time guarantee.

If the result does not match the page

Missing or extra text usually means the region contains a title, omits a row, or the extracted cells differ. Adjust the complete region, then compare every cell. A matching token count cannot verify relationships or numeric meaning.

For scans, unreadable characters or merged headers, use another extraction route and review its output. This tool does not add OCR or flatten merged cells into a supposedly correct table. Multiple header rows or merged headers are unsupported. Use text extraction and arrange the headers manually; a second header row must not be treated as data.

If loading fails, select a smaller, unencrypted text-based PDF. Cancel or clear the file to discard the task, then select it again. Refreshing removes the selected files and in-memory results.

The optional JSON route accepts only the bounded ToolRobin handoff format, not arbitrary JSON. Select its original PDF first. A failed replacement preserves existing candidates but revokes export confirmation.

If a spreadsheet drops zeros or changes an identifier, import a fresh CSV with those columns set to text before loading. Changing the format after conversion cannot restore lost digits. Compare the imported values with the source or JSON strings; do not overwrite your only original. JSON also preserves the review record.

FAQ

What does PDF Table Review extract?

Flat tables from a readable PDF text layer. You review one table at a time and download its current cells as CSV or JSON. Scanned pages, image cells and merged headers are unsupported.

Does a text match mean the table is correct?

No. The comparison checks text inside your selected region. The same text can still be placed in the wrong row or column. Check the complete table against the page before confirming.

Why is the download button disabled?

The selected region must match the current cell text and you must declare that you reviewed the original. Editing a cell, changing the region or importing a replacement removes confirmation. Follow the mismatch message and check again.

How large a PDF can I use?

One PDF up to 20 MiB and 20 pages. A document can contain up to 40 tables. Each table is limited to 100 columns, 1,000 data rows and 2,000 cells including the header; the cell limit can be reached before the row limit. Preview size is capped at 2,400 pixels per side and 6 million pixels.

Is my PDF or imported JSON uploaded?

No. This workspace reads both files in your browser and keeps its results in memory. It downloads processing code from the same site. The optional handoff does not connect to Python, run a model or send files to an extraction service.

Can an AI assistant use the result?

An assistant or script can read the JSON review record, original strings, SHA-256 identity and edits. The existing local inspection contract shares the same coverage and export rules. Native MCP client integration for this tool has not been accepted yet; a hash or a caller review declaration is not independent verification.