¿Cómo OCR un archivo PDF y obtener el texto almacenado en PDF?

23

primero, disculpas si esto se ha preguntado antes: busqué por un tiempo en las publicaciones existentes, pero no pude encontrar soporte.

Estoy interesado en una solución para Fedora para OCR de un PDF de varias páginas que no se puede buscar y convertir este pdf en un nuevo archivo pdf que contenga la capa de texto en la parte superior de la imagen. ¿En Mac OSX o Windows podríamos usar Adobe Acrobat, pero en Linux, específicamente en Fedora?

https://snippets.webaware.com.au/howto/pdf-ocr-linux/ parece describir una solución, pero desafortunadamente ya estoy perdido al recuperar la imagen exacta.

ingli
fuente
Hay un problema con el buen script pdfocr que recomienda la página a la que está vinculando: se basa en pdftk, que está esencialmente en desuso (por dos razones, su dependencia de libgcj y iText5 +). Por lo tanto, se necesita una solución diferente de todos modos ...
Maxim

Respuestas:

24

La mejor y más fácil forma de usarlo pypdfocres que no cambia el pdf. pypdfocr es un enlace del módulo de Python aquí.

pypdfocr your_document.pdf

Al final tendrás otro your_document_ocr.pdf la forma que lo desee con texto de búsqueda. La aplicación no cambia la calidad de la imagen. Aumenta un poco el tamaño del archivo al agregar el texto superpuesto.

Creo que el comando es bastante fácil ya que no necesita ninguna GUI. Quizás instalar pypdfocr sea un poco más detallado:

sudo dnf -y install tesseract 
pip install pypdfocr 

Actualización 3 de noviembre de 2018:

pypdfocrya no es compatible desde 2016 y noté algunos problemas debido a que no se mentained. ocrmypdf( módulo ) hace un trabajo similar y se puede usar así:

ocrmypdf in.pdf out.pdf

Instalar:

pip install ocrmypdf

o

sudo apt install ocrmypdf  #ubuntu
sudo dnf -y install ocrmypdf #fedora
Eduard Florinescu
fuente
¿por qué instala (usando apt) ocrmypdf en ubuntu, pero instala tessaract en fedora? Creo que
cometiste
@iuridiniz lo arregló. Fue un error que se deslizó
Eduard Florinescu
8

Después de saber que tesseract ahora también puede producir archivos PDF con capacidad de búsqueda, encontré el sándwich de script: http://www.tobias-elze.de/pdfsandwich/

después de instalar dependencias (esta podría no ser la lista completa)

sudo dnf install svn ocaml unpaper tesseract

Seguí la guía del script para compilar desde la fuente

Compilar de fuentes

pdfsandwich es un software de código abierto (licencia: GPL). Puede descargar las fuentes como paquete .tar.bz2 desde el área de descarga en el sitio web del proyecto o consultarlas por subversión:

svn checkout svn://svn.code.sf.net/p/pdfsandwich/code/trunk/src pdfsandwich

Si OCaml está instalado en su sistema, puede compilar e instalar de la siguiente manera:

cd pdfsandwich
./configure
make
sudo make install

y esto ahora me permite correr

sandwich multipaged-non-searchable.pdf

resultando en un pdf con capacidad de búsqueda.

ingli
fuente
Para una pregunta relacionada, pero separada, basada
ingli
1
FWIW: pdfsandwich también está disponible en el repositorio de paquetes apt de Ubuntu. Otras distribuciones también podrían tenerlo.
Laurence Gonsalves
unix.stackexchange.com/questions/471985/… cualquier sugerencia
Deepak Umredkar
Acabo de encontrar fedoramagazine.org/4-cool-new-projects-try-copr-october-2018 mostrando un paquete COPR para fedora que empaqueta pdfsandwich
ingli
3

Una herramienta fácil disponible en Ubuntu es 'ocrfeeder' que permite la generación de archivos PDF con texto OCR superpuesto en los documentos originales. Hace uso de Tesseract más otros motores de OCR (no estoy seguro de cuál) y también proporciona rotación de imagen / 'unpaper', etc.

jdpipe
fuente
1

Tuve este mismo problema, así que escribí esto durante el fin de semana. Dale un tiro; funciona muy bien! Es un simple envoltorio alrededor tesseract. Se usa pdftoppmpara convertir un PDF en un montón de archivos TIFF, luego se usa tesseractpara realizar OCR (reconocimiento óptico de caracteres) en ellos y producir un PDF con capacidad de búsqueda como salida. Todos los archivos temporales intermedios se eliminan automáticamente cuando se completa el script.

Código fuente: https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF

Instrucciones para instalar y usar pdf2searchablepdf:

Probado en Ubuntu 18.04 el 11 de noviembre de 2019.

Instalar:

git clone https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF.git
./PDF2SearchablePDF/install.sh

sudo apt update
sudo apt install tesseract-ocr

Utilizar:

pdf2searchablepdf mypdf.pdf

Ahora tendrá un pdf llamado mypdf_searchable.pdf , que contiene texto de búsqueda!

Hecho. No tiene dependencias de python, ya que actualmente está escrito completamente en bash.

Referencias o recursos relacionados:

  1. PDF2SearchablePDF : https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF
  2. /ubuntu/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/1187881#1187881
  3. /ubuntu/16268/whats-the-best-simplest-ocr-solution
  4. /ubuntu/150100/extracting-embedded-images-from-a-pdf/1187844#1187844
  5. pdfsandwich : Contenedor de software alternativo que acabo de descubrir, ¡vale la pena echarle un vistazo también! http://www.tobias-elze.de/pdfsandwich/
Gabriel Staples
fuente