Need a solution to convert a PDF file where every page is image and a page can either contains text, table or combination of both to a searchable pdf.
I have used ABBY FineReader Online which is doing the job perfectly well but I am looking for a solution which can be achieved via Windows Python
I have done detailed analysis and below are the links which came close to what I want but not exactly:
Scanned Image/PDF to Searchable Image/PDF
It is telling to use Ghost script to convert it 1st to image and then it does directly convert to text. I don't believe tesseract converts non-searchable to searchable PDF's.
Converting searchable PDF to a non-searchable PDF
The above solution helps in reverse i.e. converting searchable to non-searchable. Also I think these are valid in Ubuntu/Linux/MacOS.
Can someone please help in telling what should be the Python code for achieving non-searchable to searchable in Windows Python?
UPDATE 1
I have got the desired result with Asprise Web Ocr. Below is the link and code:
https://asprise.com/royalty-free-library/python-ocr-api-overview.html
I am looking for a solution which can be done through Windows Python libraries only as
UPDATE 2
I know the solution of converting non-searchable pdf directly to text. But I am looking is their any way to convert non-searchable to searchable PDF. I have the code for converting the PDF to text using PyPDF2.
Well you don't actually need to transform everything inside the pdf to text. Text will remain text, table will remain table and if possible image should become text. You would need a script that actually reads the pdf as is, and begins the conversion on blocks. The script would write blocks of text until the document has been read completely and then transform it into a pdf. Something like
if line_is_text():
write_the_line_as_is()
elif line_is_img():
transform_img_in_text()# comments below code
...
..
.
Now transform_img_in_text()
I think it could be done with many external libraries, one you can use could be:
Tesseract OCR Python
You can download this lib via pip
, instructions provided in the link above.
I've used pypdfocr in the past to do this. It hasn't been updated recently though.
From the README:
pypdfocr filename.pdf
--> filename_ocr.pdf will be generated
Read carefully the Install instructions for Windows.
A more recent Python library is OCRmyPDF: https://github.com/jbarlow83/OCRmyPDF There is a Docker image for Windows
I recently wrote a blog post where I accomplished this using:
You may need to tweak things to meet your needs, but I believe the building blocks in this post could be applied to your needs:
http://martyice.github.io/docker-in-azure/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With