Conversione file PDF

7 risposte [Ultimo messaggio]
Ritratto di laramusa
laramusa
(Junior)
Offline
Junior
Iscritto: 05/12/2008
Messaggi: 20

Ciao a tutti!
Forse il problema è già stato toccato, ma non sono riuscita a trovare quello che mi serve... Convertire un PDF in un documento di testo, nel caso in cui il PDF sia stato originato da un computer (con OpenOffice, con Adobe, con PDFEdit...) è relativamente semplice, con l'estensione di importazione di OpenOffice (e, suppongo, di LibreOffice, che ho sul portatile ma che non ho ancora usato con i PDF). Per la verità si può perfino usare Okular, selezionando una porzione di testo e copiandola su un foglio di testo.
La domanda che invece mi assilla è: è possibile convertire in un documento di testo anche un PDF che viene visto come un'immagine (magari all'origine acquisita da uno scanner?). Mi capita che mi vengano mandati file di questo tipo da tradurre... E spesso e volentieri me li ricopio manualmente in un .odt per poterci poi lavorare comodamente... Se il file è breve non è un problema, ma se è lungo sì!
Ci sono soluzioni, che voi sappiate?
Grazie mille!
Cristiana

Ritratto di granger75
granger75
(Geek)
Offline
Geek
Iscritto: 23/01/2008
Messaggi: 136

Potresti aprirli con gimp, salvare le varie pagine come file
immagine e usare un ocr (gocr, ocrad o tesseract) per convertire le immagini in testo.

Asus P5LD2, E6300, 4GbRam, G210, 2010.2-64, 3.1.6-nrj.69mib, KDE445 - Abit Ni8-SLI-GR, P4 2.80, 4GbRam, Gf7300, 2009.1-32, 2,6,31,5-1, XFCE4 - Extensa 5220, MGA2b3, 3.3.6-desktop-1mga2, KDE482 - AspireOne A110, 2010.2-32, 3.1.5-desktop.69mib, XFCE4 -
Presario 725EA(!), 2008.1-32, 2.6.24.7-586, KDE359 - Windows Free

Ritratto di alangea
alangea
(Monster)
Offline
Monster
Iscritto: 16/02/2008
Messaggi: 460

Usare gli OCR open source è un bel busillis... finora non ne ho trovato nessuno appena soddisfacente...è una delle poche applicazioni in cui i prodotti Windows/Mac (tipo Omnipage) sono decisamente incomparabili. Speriamo che le cose cambino in futuro (la vedo difficile: si tratta di sowftare molto professionali).

Configurazione: RAM: 8GB DDR3 1333 - Mother board: ASUS H67 B3 Revision
4 processori INTEL CORE I3-2120 (64bit) -Scheda video ASUS NVIDIA PhysX GeForce GT440 -SEAGATE HD 500 GB SATA 7200
OpenMandriva Lx 3.0- kernel-release-desktop-4.13.8-2omv- Plasma 5.10.5

Ritratto di granger75
granger75
(Geek)
Offline
Geek
Iscritto: 23/01/2008
Messaggi: 136

io mi sono fatto uno scriptino di aiuto
che ho chiamato ocr.sh

#############################################
#!/bin/bash
case $1 in 
gocr)
  for i in *.$2 ; do convert $i ${i%%.*}.pnm ; done
  for f in *.pnm ; do gocr -f UTF8 -i $f -o ${f%%.*}-gocr.txt ; done
;;
ocrad)
  for i in *.$2 ; do convert $i ${i%%.*}.pnm ; done
  for f in *.pnm ; do ocrad -c iso-8859-15 -F utf8 $f > ${f%%.*}-ocrad.txt ; done
;;
tesseract)
  for i in *.$2 ; do convert $i ${i%%.*}.tif ; done
  for f in *.tif ; do tesseract $f ${f%%.*}-tact -l ita ; done
;;
*)
  echo "Usage $0 < gocr | ocrad | tesseract > < ext >"
;;
esac
###################################################

Vedi se ti può aiutare.

Asus P5LD2, E6300, 4GbRam, G210, 2010.2-64, 3.1.6-nrj.69mib, KDE445 - Abit Ni8-SLI-GR, P4 2.80, 4GbRam, Gf7300, 2009.1-32, 2,6,31,5-1, XFCE4 - Extensa 5220, MGA2b3, 3.3.6-desktop-1mga2, KDE482 - AspireOne A110, 2010.2-32, 3.1.5-desktop.69mib, XFCE4 -
Presario 725EA(!), 2008.1-32, 2.6.24.7-586, KDE359 - Windows Free

Ritratto di laramusa
laramusa
(Junior)
Offline
Junior
Iscritto: 05/12/2008
Messaggi: 20

Mmm... avevo provato con ocrad, ma non avevo cavato un ragno dal buco. Tanto più se già le scansioni sono scansioni di fotocopie e quindi tutt'altro che belle.
E io non sono un'esperta nell'uso degli OCR. Tra l'altro... in che formato immagine è meglio trasformare i pdf per provare a convertirli in testo?
Interessante lo script: merita un'occhiata in più di quella rapida che gli ho dato!
Grazie per i suggerimenti, provo a vedere che cosa riesco a fare, alla peggio continuerò a copiare pezzo per pezzo, se non ottengo nulla di utile...

Ritratto di mandian
mandian
(Geek)
Offline
Geek
Iscritto: 12/07/2009
Messaggi: 181

Per estrarre il testo da un file PDF, nel caso il file lo contenga, puoi usare da terminale il programma pdftotext (parte del pacchetto poppler). Questo genera un file di testo semplice con tutto il testo estratto.

A differenza di OpenOffice il nuovo LibreOffice dovrebbe avere di default l'astensione di importazione dei file PDF.

Oltre agli OCR che sono già stati segnalati ne aggiungo un altro, sempre da riga da comando, cuneiform. Si tratta di un porting per sistemi unix di un recente OCR libero sviluppato, però, solo per finestre che, girando in internet, sembra più apprezzato di tesseract.

Il problema di tutti questi OCR è che hanno bisogno di un'immagine di partenza di qualità elevata e non ruotata per restituire dei testi abbastanza corretti in quanto non riescono a distinguere le arre di immagine (comprese le ombre e la imperfezioni tipiche dei fax o delle immagini scansionate) da quelle di testo. L'ideale sarebbe poter selezionare l'area di testo che vuoi convertire e ruotarla prima di processarla con l'OCR. Per questo puoi provare ad usare, sempre da riga di comando, unpaper.

Il formato ideale dell'immagine è il .tif (tesseract e cuneirorm accettano solo tale formato). Per le conversioni, oltre a GIMP, puoi provare ad usare convert (parte del pacchetto ImageMagick), prestando attenzione alle opzioni da fornire in input per non degradare la qualità dell'immagine.

Puoi trovare qui una semplice interfaccia grafica per tesseract, scritta in python, che permette di applicare il riconoscimento dei caratteri solo nell'area selezionata.

Infine ti segnalo OCRFeeder, una comoda e facile interfaccia grafica scritta in python col quale puoi fare le operazioni descritte in precedenza direttamente col mouse (ad eccetto della rotazione). Inoltre permette direttamente l'importazione di file PDF ed il salvataggio del risultato, oltre che in formato di testo semplice, in HTML ed ODT. Riconosce automaticamente gocr, ocrad e tesseract (non so se sia possibile farlo funzionare con cuneifrorm) ed utilizza unpaper per le altre operazioni. In Internet è facile trovare delle guide che ne spiegano il funzionamento. Purtroppo non è presente nei repository di mandriva, almeno in quelli ufficiali. Tuttavia qui ho trovato dei pacchetti per la 2010 ed anche il file .spec utilizzato per costruirli.

ciao,
mandian

Ritratto di laramusa
laramusa
(Junior)
Offline
Junior
Iscritto: 05/12/2008
Messaggi: 20

Grazie Mandian per la tua ricca risposta e per le indicazioni. Purtroppo quasi tutti i pdf che ricevo sono per l'appunto scansionati e magari già da fax o da fotocopie, quindi temo che il riconoscimento ottico continuerà a crearmi molti problemi. Potrei provare a elaborare l'immagine con GIMP e a ripulirla dalle impurità maggiori, ma devo verificare se questo per caso non mi prende più tempo che non ricopiare manualmente il testo Sad
Intanto ho installato, oltre a gocr e ocrad che già avevo, anche tesseract, e ora darò un'occhiata anche a cuneiform e anche al promettente OCRFeeder. Grazie ancora!

Ritratto di laramusa
laramusa
(Junior)
Offline
Junior
Iscritto: 05/12/2008
Messaggi: 20

Ho installato OCRFeeder e tutti i pacchetti che mi mancavano e ho curiosato un po'... sembra essere quello che più fa per me, visto che così ho la possibilità di utilizzare sia Ocrad che Gocr e Tesseract e scegliere quello che mi serve di più volta per volta. Oltre tutto si possono caricare più file contemporaneamente, importare direttamente i PDF senza per forza convertirli e esportare direttamente in ODT. Purtroppo da un paio di esperimenti che ho fatto, come temevo il risultato della conversione è piuttosto imperfetta, dato che quasi tutti i pdf che mi mandano sono scansioni di fax o di fotocopie, quindi aree nere e impurità varie si sprecano... Ma con un contratto che evidentemente era stato scansionato dall'originale e di qualità nettamente superiore, il risultato è stato più che accettabile (qualche errore rimane, ma il testo è comprensibile e facilmente correggibile). Insomma, un passo avanti l'ho fatto Smile