Eu tive sucesso com o portal Linux do sistema Cuneiform OCR licenciado pelo BSD.
Nenhum pacote binário parece estar disponível, então você precisa compilá-lo a partir do código-fonte. Certifique-se de ter as bibliotecas C ++ do ImageMagick instaladas para ter suporte para praticamente qualquer formato de imagem de entrada (caso contrário, ele só aceitará o BMP).
Embora pareça ser essencialmente não documentado, além de um breve arquivo README, achei os resultados do OCR muito bons. O bom disso é que ele pode gerar informações de posição para o texto OCR no formato hOCR , para que torna-se possível colocar o texto de volta na posição correta em uma camada oculta de um arquivo PDF. Dessa forma, você pode criar PDFs "pesquisáveis" dos quais você pode copiar texto.
Eu usei hocr2pdf para recriar os PDFs dos PDFs originais da imagem e os resultados do OCR . Infelizmente, o programa não parece oferecer suporte à criação de PDFs de várias páginas, portanto, talvez seja necessário criar um script para lidar com eles:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
cuneiform -f hocr -o "$base.html" "$page"
hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done
# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf
rm -rf -- "$tmpdir"
Por favor, note que o script acima é muito rudimentar. Por exemplo, não retém metadados em PDF.