GNU/Linux >> Linux Esercitazione >  >> Linux

Come estrarre il testo con OCR da un PDF su Linux?

Ho avuto successo con la porta Linux con licenza BSD del sistema OCR cuneiforme.

Nessun pacchetto binario sembra essere disponibile, quindi è necessario compilarlo dal sorgente. Assicurati di avere le librerie ImageMagick C++ installate per avere il supporto essenzialmente per qualsiasi formato di immagine di input (altrimenti accetterà solo BMP).

Sebbene sembri essenzialmente non documentato a parte un breve file README, ho trovato i risultati dell'OCR piuttosto buoni. La cosa bella è che può produrre informazioni sulla posizione per il testo OCR in formato hOCR, in modo che sia possibile reinserire il testo nella posizione corretta in uno strato nascosto di un file PDF. In questo modo puoi creare PDF "ricercabili" da cui puoi copiare il testo.

Ho usato hocr2pdf per ricreare PDF dai PDF originali di sole immagini e dai risultati OCR. Purtroppo, il programma non sembra supportare la creazione di PDF multipagina, quindi potrebbe essere necessario creare uno script per gestirli:

#!/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"

Si prega di notare che lo script sopra è molto rudimentale. Ad esempio, non conserva alcun metadato PDF.


Vedi se pdftotext funzionerà per te. Se non è sulla tua macchina, dovrai installare il pacchetto poppler-utils

sudo apt-get install poppler-utils 

Potresti anche trovare il toolkit pdf di utilizzo.

Un elenco completo di software pdf qui su wikipedia.

Modifica: Dal momento che ne hai bisogno Capacità OCR, penso che dovrai provare una virata diversa. (cioè non sono riuscito a trovare un convertitore linux pdf2text che esegua l'OCR).

  • Converti il ​​pdf in un'immagine
  • Scansiona l'immagine in testo utilizzando gli strumenti OCR

Converti pdf in immagine

  • gs:il comando seguente dovrebbe convertire pdf multipagina in singoli file tiff.

    gs -SDEVICE=tiffg4 -r600x600 -sPAPERSIZE=lettera -sOutputFile=nomefile_%04d.tif -dNOPAUSE -dBATCH -- nomefile

  • Utilità ImageMagik:ci sono altre domande sul sito SuperUser sull'utilizzo di ImageMagik che potresti utilizzare per aiutarti a eseguire la conversione.

    convert foo.pdf foo.png

Converti immagine in testo con OCR

  • GOCR:pagina Wikipedia
  • Ocrad:pagina Wikipedia
  • ocropus:pagina Wikipedia
  • tesseract-ocr:pagina di Wikipedia

Tratto dall'elenco di software OCR di Wikipedia


Google Documenti ora utilizzerà l'OCR per convertire in testo i documenti immagine/pdf caricati. Ho avuto un buon successo con esso.

Stanno utilizzando il sistema OCR utilizzato per il gigantesco progetto Google Libri.

Tuttavia, va notato che solo i PDF di dimensioni pari a 2 MB saranno accettati per l'elaborazione.

Aggiorna
1. Per provarlo, carica un pdf <2 MB su Google Documenti da un browser web.
2. Fai clic con il pulsante destro del mouse sul documento caricato e fai clic su "Apri con Google Documenti".
...Google Documenti convertirà in testo e produrrà un nuovo file con lo stesso nome ma il tipo di Google Documenti si troverà nella stessa cartella.


Linux
  1. Come inviare un'e-mail con allegato e corpo da Linux

  2. Come convertire un PDF in JPG con la riga di comando in Linux?

  3. Come seleziono tutto il testo da un file con nano?

  4. Come posso condividere Internet con Windows dalla mia macchina Linux?

  5. Come visualizzare determinate righe da un file di testo in Linux?

Come visualizzare i dati da un file di testo in Linux

Come proteggere i server Linux con SE Linux

Come lavorare con Nano Editor su Linux

Come estrarre indirizzi e-mail da file di testo in Linux

Come convertire una pagina Web in PDF in Linux

Come aprire un PDF in un terminale Linux