Rendi ricercabile PDF esistente (OCR) tramite riga di comando / script

19

Sto cercando uno strumento per script offline che renda ricercabile un file PDF esistente eseguendo OCR su di esso, sostituendo il file originale non ricercabile con la versione ricercabile, e possa essere eseguito in modo automatico.

E.g., www.pdfscannerapp.com - fa esattamente ciò di cui ho bisogno, ma è solo GUI - non è possibile scrivere uno script.

Sono consapevole che Evernote rende ricercabili i file PDF, ma rimangono ricercabili solo quando si trova in Evernote.

Non sto cercando un OCR perfetto, anche un OCR moderatamente accettabile va bene, ma preferirei una piccola utility piuttosto che un ingombrante pacchetto software.

(Sono a conoscenza di una domanda simile, ma diversa su AD: Ricerca di software da scansionare o convertire in PDF ricercabili e firmabili - tuttavia, non è necessario firmare o riempire PDF, e il mio requisito è che la soluzione sia programmabile )

EDIT:

1) Diverse utilità consentono l'estrazione di testo strutturato, tuttavia, per poter essere estratto, il testo deve essere presente; Mi riferisco principalmente ai PDF che sono bitmap avvolti, come nel caso dei PDF semplici generati dagli scanner.

2) Non sono necessariamente alla ricerca di una soluzione gratuita, e sarei più che felice di pagare per una buona utilità che fa esattamente ciò di cui ho bisogno, ma non sto cercando applicazioni ingombranti con un milione di funzionalità che includono un Funzionalità OCR ma il cui costo non giustifica l'acquisto solo per la funzionalità OCR.

3) Come detto sopra, non sto cercando un OCR perfetto, ma solo un OCR moderatamente accettabile. Sfortunatamente, nella mia esperienza, il tesseract è davvero al di sotto di questa soglia. Definisco "moderatamente accettabile" un OCR che può, per esempio, OCR una bolletta di servizio in modo che almeno il numero di conto (numero cliente) sia riconosciuto correttamente.

EDIT: "scriptable" o "automatable", cioè, in grado di essere attivato automaticamente ed eseguito senza l'ausilio di input umani.

    
posta magma 01.01.2013 - 18:20
fonte

12 risposte

5

Non mi è del tutto chiaro quali siano le tue esigenze per poterlo "scrivere" dalla "riga di comando".

Se parli di automazione, ciò è possibile con qualsiasi numero di utilità.

ABBYY FineReader Express + Tastiera Maestro + Hazel

Uso ABBYY FineReader Express + Keyboard Maestro + Hazel in questo modo:

  1. Hazel monitora una determinata cartella per qualsiasi nuovo PDF

  2. se viene trovato un PDF, viene aperto in "ABBYY FineReader Express"

  3. Keyboard Maestro automatizza quindi il processo di conversione del PDF in un PDF ricercabile (OCR) e salva il file in una directory diversa.

Ora, se non possiedi già Hazel e Keyboard Maestro, i tuoi costi iniziali aumenteranno abbastanza rapidamente (sebbene io dipenda tanto da entrambi che li considero un vero affare).

PDFPen + AppleScript + Azioni cartella

Si potrebbe fare qualcosa di simile con PDFPen (o PDFPenPro) e azioni cartella e AppleScript. Vedi link per un esempio.

Marco Arment ha fatto un sondaggio di app OCR per Mac e ha scoperto che PDFPen ha avuto ottimi risultati ed è stato facile automatizzare.

Una ricerca su google per "PDFpen applescript OCR" mostrerà un certo numero di alternative.

    
risposta data 10.05.2013 - 09:50
fonte
9

Quello che vuoi è Tesseract OCR. È un OCR open source che è gestito da Google e supporta una varietà di piattaforme. Ha anche un'interfaccia a riga di comando nativa. È esattamente ciò che stai cercando e disponibile dal progetto delle porte Mac e homebrew .

Home progetto: link

Come installare su OS X: link

Esempio di utilizzo: tesseract -l eng input.pdf output

    
risposta data 14.05.2014 - 17:02
fonte
8

Dichiarazione di non responsabilità: NON UNA SOLUZIONE OCR (ma questa risposta è comunque utile per estrarre il testo da pdf)

Esiste un progetto Apache Software Foundation chiamato Apache Tika :

A toolkit detects and extracts metadata and structured text content from various documents using existing parser libraries

Supportano l'estrazione del testo PDF utilizzando PDFBox :

allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents. Apache PDFBox also includes several command line utilities

E recentemente hanno anche aggiunto il supporto per OCR (via Tesserac)

Per una soluzione testuale, PDFBox semplifica l'estrazione del testo da un PDF:

  • Scarica il pacchetto pdfbox-app da link
  • esegui il comando ExtractText su di esso:

    java-jar pdfbox-app-x.y.z.jar ExtractText myNiceBook.pdf myNiceBook.txt

Ha anche altre buone opzioni che puoi vedere in documenti ExtractText .

    
risposta data 10.03.2013 - 17:36
fonte
5

Raccomando DEVONThink Pro Office . È un'applicazione eccellente e ha un ottimo supporto per AppleScript. Purtroppo solo la versione 'Pro Office' ha la capacità OCR - quindi dovrai sborsare £ 100 ($ 150).

Sarebbe eccessivo se lo si utilizza solo per l'OCR con script, ma è un'ottima app.

[modifica] - ah leggi di nuovo il tuo post - sarebbe sicuramente eccessivo!

Se vuoi solo l'OCR dalla shell, puoi provare a parlare con ABBY con le licenze DEVON del motore:

link

    
risposta data 05.03.2013 - 14:05
fonte
4

Puoi rendere ricercabile il tuo PDF esistente convertendolo in un file di testo. Hai bisogno di questo almeno Imagemagick , Ghostscript (per la conversione in PDF) e Tesseract strumento OCR.

Alcuni esempi da riga di comando:

$ wget http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf
$ convert -density 300 -depth 8 test.pdf test.png
$ tesseract test*.png test.txt
$ grep -i --color=auto the test*.txt
**The** details as told by surviving crew members, to **the** German publication Spiegel and published on ABC's

Questo può essere esteso ulteriormente alle tue esigenze.

Per installare gli strumenti richiesti, su OSX puoi installarlo tramite Homebrew :

brew install imagemagick jpeg libpng ghostscript tesseract

Su Linux usa apt-get o yum invece di brew .

Per ulteriori strumenti OCR, controlla: OCR su sistemi Linux

Related:

risposta data 01.10.2014 - 18:31
fonte
1

StackOverflow ha domande correlate in analisi PDF che riguardano cose come PDFBox e TIKA di Apache che utilizza PDFBox. Il codice rubino qui sotto estrae la scrittura da PDF. È necessario disporre di una risoluzione sufficientemente buona affinché questo tipo di codici funzioni in modo efficace. Quindi prendi uno scanner abbastanza buono con una risoluzione elevata e poi controlla se alcuni dei software funzionano.

Esempi

  1. link

SO threads

  1. link

  2. link

  3. link

  4. link

[Modifica]

Non sono sicuro di aver capito il tuo problema ora. Vuoi aggiungere il livello OCR a diversi tipi di materiale come foto casuali, schermate, PDF senza livello OCR e così via? Non conosco la soluzione, ma sono sicuro che qualcuno lo sappia ha fatto una domanda specifica su come farlo con Automator e alcuni software OCR:

Automator-script con un software OCR per aggiungere automaticamente OCR al materiale?

    
risposta data 10.03.2013 - 19:57
fonte
1

Per questo tipo di applicazione auto-diretta, sono un grande fan di Hazel.

Rende estremamente semplice lo script delle azioni senza dover imparare un altro strumento orientato alla riga di comando come perl o python e abbinato al motore OCR di tua scelta (il mio è attualmente PDF Pen Pro) non dovresti avere problemi a recuperare i tuoi file elaborato con il minimo sforzo.

Entrambi sono software a pagamento, ma l'utilità di entrambi si estende oltre questo caso. Nella mia situazione, con il lavoro necessario per digitalizzare i miei precedenti documenti scansionati (e il documento in corso), il prezzo di questi supera di gran lunga il tempo che avrei speso a programmarlo altrove e ora che possiedo entrambi gli strumenti, posso svolgere molti altri compiti con loro.

    
risposta data 14.05.2014 - 17:14
fonte
1

Una soluzione facilmente implementabile e che fornisce un PDF di output con la stessa qualità del file di input più una dimensione ragionevole è OCRmyPDF:

link

    
risposta data 08.11.2017 - 17:50
fonte
0

PDFScannerApp ha un supporto per gli script non ufficiale. Contatta l'autore per l'azione di Automator.

    
risposta data 10.05.2013 - 08:04
fonte
0

Uso Adobe Acrobat in OCR in batch. Il mio scanner fronte-retro può eseguire l'OCR dopo la scansione, ma secondo me la tecnologia OCR in acrobat è più accurata. Indico solo la cartella in cui non è presente l'OCR, quindi Acrobat re salva il PDF come PDF ricercabile ora includendo un livello di testo. Se volessi OCR tramite riga di comando, non so in che modo, ma posso automatizzare la fine della GUI usando Autohotkey. Non è affidabile né veloce come la riga di comando, ma svolge il lavoro dopo aver impostato un'azione del flusso di lavoro per ridurre al minimo l'interazione della GUI.

Per Mac, lo script Apple fa ciò che Autohotkey fa sul PC anche se non ho ancora provato sul mio Mac.

L'hot key automatico viene fornito con un registratore, quindi la maggior parte della scrittura dello script è la cena per te con un po 'più di editing per il perfezionamento e forse il loop se lo desideri.

Ho sperimentato le immagini OCR ma non ho ancora automatizzato completamente il processo tramite acrobat. La riga di comando è l'ideale, ma non ho trovato un motore OCR di qualità che superi acrobat, quindi per ora rimango con acrobat.

    
risposta data 02.07.2016 - 00:42
fonte
0

Mi sono imbattuto recentemente in questo: link

Devi pagare dopo 14 giorni però

    
risposta data 26.12.2016 - 18:28
fonte
0

Ho ottenuto Drag & alta qualità Rilascia la conversione lavorando con Docker.

Se tu:

  1. installa Docker per il tuo Mac e
  2. quindi crea una nuova app di Automator
  3. con questi contenuti all'interno di un'azione "Esegui uno script di shell". Scegli Passa input: "as arguments"

% script testo%:

cd "'dirname "$1"'"
/usr/local/bin/docker run --rm -v "$(pwd):/home/docker" jbarlow83/OCRmyPDF --force-ocr "'basename "$1"'" "'basename -s .pdf "$1"'-ocr.pdf"

Dovresti quindi essere bravo a trascinare e rilasciare i PDF su di esso e otterrai un PDF con lo stesso nome con "-ocr" aggiunto al nome del file.

Immagino possa essere facilmente modificato per restituire un file ad Automator da copiare anche da qualche parte. Ulteriori dettagli sul pacchetto fine dock OCRmyPDF. e strumento principale (citato anche in una risposta diversa).

Puoi testarlo in Automator stesso con l'azione "Ottieni elementi del Finder specificati" come input per questo.

La prima volta che viene eseguito, richiede più tempo poiché è necessario scaricare le immagini di Docker per OCRmyPDF (in modo invisibile). In Terminale, puoi alternativamente eseguire /bin/bash per accelerare la prima esecuzione. Una corsa tipica richiede circa 10 secondi per pagina DPI alta, ma ha automaticamente risultati testuali anche se ci sono tabelle o diagrammi. Prima dell'OCR, ritagliamo usando Sejda in modo che vengano rimosse parole marginali senza senso da altre pagine.

L'argomento docker pull jbarlow83/ocrmypdf dice allo strumento di ignorare e sovrascrivere qualsiasi tentativo OCR precedente, che nei miei casi di solito è solo parziale e inutile.

    
risposta data 13.01.2018 - 02:31
fonte

Leggi altre domande sui tag