Convertire da PDF a Excel con Linux e Terminale

9 agosto 2017 di Daniele Frulla


Share on Google+1Share on Facebook1Pin on Pinterest0Tweet about this on Twitter

Il file PDF è ormai uno standard per la distribuzione dei nostri file. Tuttavia, in alcuni casi si ha il bisogno di estrarre dal PDF che abbiamo tra le mani una Tabella per poterla gestire con un elaboratore Excel o LibreOffice Calc.

Online si trovano diversi tools che permettono di convertire PDF in XLS, ma quello che vogliamo fare è tenere il file in locale e usare il terminale Bash di Linux per poter estrarre il nostro contenuto.

Pdf  in Excel

Se il PDF è un testo formattato non abbiamo grosse difficoltà, basta semplicemente selezionare il nostro testo e copiarlo sul foglio di calcolo.

Supponiamo quindi che il nostro PDF sia tante pagine di immagini, come se avessimo fatto una scansione di un testo.

Se scansioniamo una tabella da un libro occorre almeno farlo con una risoluzione di 300 dpi.

Ora procedicamo come segue:

  1. Scansiono la tabella da un testo con una risoluzione di almento 300 dpi e creo il file PDF.
  2. Creo tante immagini per quante sono le pagine
  3. Da ogni pagina decifro il testo tramite un motore OCR
  4. Creo il testo della tabella in formato CSV
  5. Posso dal CSV salvare il mio file XLS

Questi sono i punti da seguire. Tralascio il primo punto proseguo con gli altri.

2. Creo immagini delle pagine

Per creare le immagini delle pagine abbiamo bisogno del tools convert di cui avevo parlato nell’articolo creare immagini alta qualità da un pdf.

3. Decifro il testo tramite OCR

Per decifrare il testo da un motore OCR possiamo utilizzare il comodo tools tesseract opensource e disponibile dal repository di Ubuntu.

sudo apt install tesseract-ocr

Ora possiamo decifrare ogni pagina con il comando:

tesseract <file immagine> <file output testo> -psm 4

4. Creo un file CSV

Ora che abbiamo tanti file di testo possiamo concatenarli insieme.

Ogni riga del file di testo rappresenta una riga della tabella. Se alcuni campi hanno spazi siamo sfortunati perché trasformeremo gli spazi in ogni riga in virgola ‘,’, ma con un po’ di pazienza possiamo editare il nostro file di testo e creare il nostro sognato CSV.

Trasformiamo con il seguente comando il file di testo in tanti campi separati dalla virgola ‘,’:

cat <file di testo> | tr -s ‘[:blank:]’ ‘,’ > <file CSV>

Ora questo è il punto più lungo da eseguire. Dobbiamo decidere: o editiamo il file di testo CSV rendendolo ben adatto per la creazione del XLS oppure editiamo l’XLS che ci creerà il CSV.

Per esperienza consiglio di editare il file di testo CSV per avere una bella tabella pronta già in formato testo.

 


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Copyright di Caterina Mezzapelle Part. I.V.A. 02413940814 - R.E.A. 191812