A PDF does not contain a table
It contains text at coordinates. The table you see is an arrangement of positions, the rows are text at similar heights, the columns are text at similar horizontal offsets. There is no cell, no row object and no structure recording which is which.
So extracting a table means reconstructing it from geometry, and the quality of a converter is entirely a question of how well it does that.
The empty-cell bug
Here is the failure that produces most bad output. Consider two rows:
Date Description Debit Credit Balance 01/04/2024 SALARY 3,500.00 13,500.00 05/04/2024 RENT PAYMENT 1,200.00 12,300.00
The first row has four pieces of text on it; the second has five. A converter reading each row independently, left to right, produces this:
01/04/2024 | SALARY | 3,500.00 | 13,500.00 | 05/04/2024 | RENT PAYMENT | 1,200.00 | 12,300.00 |
The salary is now filed as a debit. Every figure is a real number in a real column, and the whole row is wrong. Nothing about the output looks broken, which is precisely the problem.
The fix is to find the column positions once, across the whole page, and assign each piece of text to the column it physically sits in, leaving the debit cell empty on the first row rather than pulling the next value into it.
Right-aligned columns need clustering
A further wrinkle: amount columns are right-aligned, so "1,234.56" and "45.00" start at different x positions despite being in the same column. Treating every distinct start as its own column produces a spreadsheet with forty columns and one value in each.
Starts within about fourteen points are therefore treated as one column. That is wide enough to absorb alignment variation and narrow enough not to merge genuinely adjacent columns.
What this cannot recover
Being straightforward about the limits, since they follow from the format rather than from effort.
Multi-line cells. A description wrapping onto a second line becomes a second row. Nothing in the PDF says the two lines belong together.
Merged cells. A header spanning three columns lands in the one it starts in.
Cell borders. Drawn lines are graphics, not structure, and carry no information about the cells.
Scanned tables. No text layer, nothing to extract.
This is why the preview is shown before the download rather than after. Look at it against the original, it takes seconds and is the only check that covers the cases geometry cannot.
For bank statements, use the other tool
If your table is a bank statement, the statement converter does considerably more: it identifies which column is which, normalises the dates to a single format, and then verifies the arithmetic by checking every row's running balance against the row above it. That turns "probably right" into something you can actually rely on, and no amount of careful table extraction gives you the same assurance.