I use gImageReader + Tesseract, but that probably doesn’t meet your criteria. Unfortunately OCR is very rarely perfect unless the input is perfectly clear and with a “OCR friendly” font/formatting. There are “AI powered” OCR out there, but I can’t speak to how well they work and I don’t know of any free ones.