I built PDFLince because I was against uploading personal documents (like bank statements) to random servers just to merge pdfs, reorder, divide, convert from/to images etc.
Everything runs 100% client side. All logic runs in your browser using pdf-lib and Web Workers.
It has zero server uploads so no file data ever leaves your device. Works without internet once loaded.
The Tech: - Built with Next.js 15 & TypeScript. - Uses Web Workers to keep the UI responsive. - Styled with Tailwind CSS.
Live Demo: https://pdflince.com/en
It's fully open source. I'd love to hear your feedback and features you'd like to see next
They seem to use a compromise scanner setting that renders halftones ok but produces text (the vast majority of the pdf) as black letters on a dirty dishwater background.
Every day I hear about incredible advances in coding, yet this conceptually simple task of recognizing text areas and thresholding them (only) seems undone. (for the majority of us who don't spend a paycheck on software)
I feel that it's especially urgent before the bonfire of the vanities (or climate) destroys all old books and music scores and manuscripts.
Why? Emmanuel Goldstein in "1984".
"The Theory and Practice of Oligarchical Collectivism"
> The past is whatever the records and the memories agree upon. And since the Party is in full control of all records and in equally full control of the minds of its members, it follows that the past is whatever the Party chooses to make it.
Not.
I've worked with image recognition in the past, and building a generic solution for this kind of use cases was very difficult. It often fails on edge cases.
However, with the rapid advancements in AI image recognition, I think we are getting closer to solving this with confidence every day. It's definitely an interesting direction for future features and something I could explore implementing locally, though it is quite resource intensive for now. It needs a few spins.
And I agree about the urgency of preserving old documents. Loss of clarity is effectively a loss of history. Making these tools accessible and cheap (or free) is definitely part of the solution.
Thanks for the insights!