I don’t think Optical Character Recognition (OCR) works that well, frankly. But it can be done and it can be better than retyping piles of text.
It does seem to work nicely when the text is nice and clean on nice clean white paper with a good contract between ink and background and no garbage on the page. But in my experience, when I have those conditions, it is because i have an electronic version already! When I have a PDF file that consists of scans of photocopies, OCR tends to see flecks of yeck as accents (or entire letters) and things get messy.
Nonetheless, it can be a useful technology and it works well in Linux. One of the things you do in Linux that is different than, say, Windows, is to use brute force and hands on processing with OCR. This is better than most other solutions because it allows you to make more adjustments and have more control over the process. It takes more mucking around but you get better results, can define a work flow for your particular needs, and have more fun.
I mean, seriously, how much more fun can you have than running OCR from the command line???
I bring all this up because I came across a reasonable overview of how to do it and wanted to share it with you. It is here.