truecopy vs PDFExcavator
PDFExcavator is a far richer extractor. It handles characters, graphics, OCR, CJK text and nested tables. It answers "what is on this page". truecopy answers "should I believe what came back". Reach for both.
Short answer. These are not rivals. Almost every feature named on this page is one that one of them has and the other never will.
PDFExcavator is the closest neighbour truecopy has. Both use the same language and the same runtime family, both are built on pdfjs-dist, and both are MIT licensed. It is also a much bigger extractor, and if your problem is getting more out of the page, it is the one to reach for.
What PDFExcavator does better, and it is a long list
- Characters, not just cells. It reads at character, word, line and paragraph level, with positions, fonts and colours. truecopy sees positioned text and stops there.
- Graphics. It reads lines, rectangles, curves, images and annotations. truecopy reads none of them.
- OCR. It integrates Tesseract.js for scanned documents. truecopy refuses a scan by name (
no-text) and will never ship an OCR engine. - Nested and borderless tables. It reads them and gives them a confidence score of its own.
- CJK, font substitution, multi-column reading order, PDF repair, visual debugging. None of these exist here.
It describes itself as the JavaScript alternative to Python’s pdfplumber, and on this list that is a fair claim.
What truecopy does that it does not
It does one thing, and everything here follows from it. truecopy decides whether to believe the reading.
A confidence score is a number about a table. It is not the same as:
- a reading that is set against what the document declares about itself (a total, a closing balance) and cannot come back as sound when the two disagree (
contract); - a row rejected because it breaks the shape every other row shares, with no list of forbidden words, so it works on an issuer nobody has seen (
signature); - a document refused for being the wrong kind of document (
classify); - six rules that run as assertions in your test suite, over your corpus, so the day your reader quietly stops checking itself, your gate goes red (
kit).
There is also a runtime difference worth knowing before you choose. PDFExcavator presents itself as a Node.js library. truecopy runs in the browser too, which is what lets the demo read your file without a server on the other end of it.
The honest recommendation: use both
This is not a diplomatic ending. It is the design. truecopy never opens a format on its own. open takes your extractor, and the conformance kit requires one for a reason. A kit that supplies the extractor stops measuring your reader and starts measuring itself.
So PDFExcavator can be the thing that reads the page, and truecopy the thing that decides whether the result is trustworthy enough to act on. If you need characters, graphics or OCR, that is not a compromise. It is the only combination that gets you both.
Reach for PDFExcavator alone when a person looks at every result. Add this when something downstream acts on the rows without one.