En este artículo veremos como convertir documentos PDF a OCR y más concretamente a OCR – PDF/A editables.
- Introducción (Volver al índice General)
En ocasiones, tenemos que manipular documentos PDF en los que no podemos seleccionar texto, por que no fueron creados con alguna herramienta de OCR. Con la herramienta que vamos a utilizar, no solo documentos PDF a OCR de forma que el texto sea seleccionable, además, tendremos la posibilidad de convertirlo a formato PDF/A. Este formato asegura que estos documentos puedan ser reproducidos con exactitud en el futuro.
Para hacer todo esto utilizaremos una única herramienta, OCRmyPDF. La probaremos en Debian, pero la sintaxis de uso será igual para todas las distribuciones. - Instalación (Volver al índice General)
A continuación, veremos la forma de instalarlo en algunos sistemas operativos y en las distribuciones más utilizadas.- En distribuciones basadas en Debian (Volver al índice General)
Si estamos utilizando una distribución basada en Debian como pueden ser Ubuntu, Linux Mint, Kali Linux, etc, para instalar OCRmyPDF utilizaremos el siguiente comando:$ sudo apt install ocrmypdf
- En distribuciones basadas en Red Hat (Volver al índice General)
Si estamos utilizando una distribución basada en Red Hat™ como pueden ser ALDOS, CentOS, Fedora™ y Red Hat™ Enterprise Linux, para instalar OCRmyPDF utilizaremos el siguiente comando:$ sudo dnf install ocrmypdf
O en distribuciones algo más antiguas:
$ sudo yum install ocrmypdf
- En FreeBSD (Volver al índice General)
Si utilizamos FreeBSD, para instalar OCRmyPDF utilizaremos el siguiente comando:$ sudo pkg install textproc/py-ocrmypdf
- En macOS (Volver al índice General)
Si utilizamos MacOS, para instalar OCRmyPDF, previamente tendremos que tener instalado el paquete Homebrew y utilizaremos el siguiente comando:$ brew install ocrmypdf
- Con Snap (snapcraft packaging) (Volver al índice General)
Si en nuestra distribución utilizamos el gestor de paquetes Snap, para instalar OCRmyPDF, utilizaremos el siguiente comando:$ sudo snap install ocrmypdf
- En distribuciones basadas en Debian (Volver al índice General)
- Instalación de paquetes de idioma adicionales (Volver al índice General)
OCRmyPDF usa Tesseract para OCR y se basa en sus paquetes de idioma. En la mayoría de las plataformas, el inglés se instala con Tesseract de forma predeterminada, pero no siempre.Tesseract es compatible con la mayoría de los idiomas. Los idiomas se identifican mediante códigos estandarizados de tres letras llamados ISO 639-2 Alpha-3. Algunos están anglicanizados, por ejemplo, español es
spa
en lugar deesp
, mientras que otros no lo están, como por ejemplo, alemán esdeu
y el francés esfra
.Para instalar los archivos de idiomas que vayamos a utilizar, instalaremos los paquetes
tesseract-ocr
ytesseract-ocr-***
donde***
indica el idioma que queremos o vamos a usar en nuestros documentos, por ejemplo:- En distribuciones basadas en Debian (Volver al índice General)
Si no conocemos los paquetes de idiomas de Tesseract soportados por nuestra distribución, podemos listarlos con el siguiente comando:$ apt-cache search tesseract-ocr
Una vez localizado el nombre de nuestro paquete, lo instalamos:
- Español (spa):
$ sudo apt install tesseract-ocr tesseract-ocr-spa
- Inglés (eng):
$ sudo apt install tesseract-ocr tesseract-ocr-eng
- Español (spa):
- En distribuciones basadas en Red Hat (Volver al índice General)
Si no conocemos los paquetes de idiomas de Tesseract soportados por nuestra distribución, podemos listarlos con el siguiente comando:$ dnf search tesseract
Una vez localizado el nombre de nuestro paquete, lo instalamos:
- Español (spa):
$ sudo dnf install tesseract-ocr tesseract-ocr-spa
- Inglés (eng):
$ sudo dnf install tesseract-ocr tesseract-ocr-eng
- Español (spa):
Después de instalar el/los paquete/s de idioma/s, para usarlo añadiremos al comando la opción-l <language>
:En el caso de estar convirtiendo un documento en español, indicamos el idioma con el siguiente comando:
$ ocrmypdf -l spa documento.pdf documento-ocr.pdf
En el caso de estar convirtiendo un documento multilingüe, podemos hacer uso de varios idiomas a la vez, por ejemplo español y francés:
$ ocrmypdf -l spa+fra documento.pdf documento-ocr.pdf
o lo que es lo mismo:
$ ocrmypdf -l spa -l fra documento.pdf documento-ocr.pdf
El inglés se asume de forma predeterminada a menos que se especifiquen otros idiomas.
- En distribuciones basadas en Debian (Volver al índice General)
- Uso básico de la herramienta (Volver al índice General)
La forma más básica de convertir documentos PDF a OCR – PDF/A, es la siguiente:$ ocrmypdf documento.pdf documento-ocr.pdf
y si queremos sobrescribir el documento a convertir, simplemente le damos el mismo nombre de salida que de entrada. Solo lo sobrescribirá si la conversión tuvo éxito.
$ ocrmypdf documento.pdf documento.pdf
- Deshabilitar PDF/A
Si queremos deshabilitar PDF/A y obtener en la conversión documentos PDF a OCRregulares, lo podemos hacer añadiendo al comando la opción--output-type pdf
. Por ejemplo:$ ocrmypdf --output-type pdf documento.pdf documento-ocr.pdf
- Rotación de página correcta
La opción--rotate-pages
intentará corregir automáticamente la rotación de cada página. Esto puede ayudar a corregir un trabajo de escaneo que contiene una combinación de páginas horizontales y verticales.$ ocrmypdf --rotate-pages documento.pdf documento-ocr.pdf
- Enderezar página
Si la página está solo un poco desviada de la horizontal, como una imagen torcida, entonces utilizaremos la opción--deskew
.$ ocrmypdf --deskew documento.pdf documento-ocr.pdf
- Convertir una imagen a PDF
OCRmyPDF también puede convertir imágenes individuales a PDF por sí solo. Si la resolución de una imagen (puntos por pulgada, ppp o DPI) no está configurada o es incorrecta, se puede anular con la opción--image-dpi
. (Como 1 pulgada son 2,54 cm, 1 dpi = 0,39 dpcm, o lo que es lo mismo 1 ppp = 0,39 ppcm).$ ocrmypdf --image-dpi 300 image.png documento-ocr.pdf
- Eliminar fondo ruidoso de imágenes
La opción--remove-background
intenta detectar y eliminar un fondo ruidoso de imágenes en escala de grises o en color. Las imágenes monocromáticas se ignoran. Esto no debe usarse en documentos que contengan fotos en color, ya que puede eliminarlas.$ ocrmypdf --remove-background documento.pdf documento-ocr.pdf
- Limpiar las páginas antes de pasar el OCR
La opción--clean
utiliza unpaper para limpiar las páginas antes del OCR, pero no altera el resultado final. Esto hace que sea menos probable que OCR intente encontrar texto en el ruido de fondo.$ ocrmypdf --clear documento.pdf documento-ocr.pdf
- Crear un PDF/A con todas las imágenes en color y en escala de grises convertidas a JPEG
$ ocrmypdf --output-type pdfa --pdfa-image-compression jpeg documento.pdf documento-ocr.pdf
- Optimizar imágenes
OCRmyPDF incluye un optimizador de PDF orientado a imágenes. De forma predeterminada, el optimizador se ejecuta con configuraciones seguras con el objetivo de mejorar la compresión sin pérdida de calidad. En niveles de optimización más altos, se pueden aplicar y ajustar optimizaciones con pérdida. La optimización ocurre después de OCR, y solo si OCR se realizó correctamente. La optimización varía desde--optimize 0
a--optimize 3
, donde0
desactiva la optimización y3
implementa todas las opciones.--optimize 1
es el valor predeterminado y solo realiza optimizaciones seguras y sin pérdidas.Veamos algunos ejemplos:
- Deshabilitar la optimización:
$ ocrmypdf --optimize 0 documento.pdf documento-ocr.pdf
o también en su forma abreviada:
$ ocrmypdf --O0 documento.pdf documento-ocr.pdf
- Optimización sin pérdidas:
$ ocrmypdf --optimize 1 documento.pdf documento-ocr.pdf
o también en su forma abreviada:
$ ocrmypdf --O1 documento.pdf documento-ocr.pdf
- Optimización con pérdidas:
En los niveles de optimización-O2
y-O3
, OCRmyPDF intentará optimizar la imagen con pérdida. Si pngquant está instalado, OCRmyPDF lo usará para reducir el tamaño de las imágenes. OCRmyPDF proporciona el modo con pérdida JBIG2 como una característica avanzada que requiere adicionalmente el argumento--jbig2-lossy
. Por ejemplo:$ ocrmypdf --optimize 2 --jbig2-lossy documento.pdf documento-ocr.pdf
o también en su forma abreviada:
$ ocrmypdf -O2 --jbig2-lossy documento.pdf documento-ocr.pdf
Para la mayoría de distribuciones Linux, para poder hacer uso de la codificación JBIG2, tendremos que compilar un codificador JBIG2 dese la fuente. En este enlace, se indica como hacerlo.
- Deshabilitar la optimización:
Para conocer funciones avanzadas de OCRmyPDF o instalaciones en plataformas especiales como Docker, visitar el siguiente enlace. - Deshabilitar PDF/A
Deja una respuesta