Comment convertir des tableaux de PDF en Excel ou CSV avec Tabula

Passer et convertir un pdf en csv et exceller

En regardant les données historiques offertes par un observatoire météorologique de ma ville, je vois que ils ne les proposent que graphiquement et en téléchargement au format PDF. Je ne comprends pas pourquoi ils ne vous permettent pas de les télécharger en csv, ce qui serait beaucoup plus utile pour tout le monde.

Alors j'en cherchais un solution pour passer ces tableaux du pdf au csv ou si quelqu'un veut formater Excel ou Libre Office. J'aime csv parce qu'avec un csv vous faites tout ce que vous pouvez gérer avec python et ses bibliothèques ou vous pouvez facilement l'importer dans n'importe quelle feuille de calcul.

Comme l'idée est de réaliser un processus automatisé, ce que je veux, c'est un script pour travailler avec Python et c'est là que Tabula entre en jeu.

Convertir un pdf en csv avec Tabula

Les étapes et le fonctionnement sont très simples. Le premier sera installer la bibliothèque Tabula dans notre environnement de développement. Tabula nous permet d'extraire des données de tables au format PDF dans des dataframes Pandas, la bibliothèque Python optimisée pour travailler avec csv et les tableaux.

Permet également extraire et convertir entre PDF, JSON, CSV et TSV. Une gemme. Vous pouvez trouver beaucoup plus d'informations dans sa référentiel github

Abonnez-vous à notre liste de diffusion

Je profite de tout le travail des jours précédents et l'installe dans Anaconda. Dans le lien, vous pouvez voir comment installer Anaconda.

Nous installons Tabula

#primero activamos nuestro entorno de desarrollo en nuestro caso sería conda activate comparador
pip install tabula-py

Lors de son exécution, cela m'a donné une erreur

la solution indiquée dans leur documentation était de désinstaller l'ancienne version de Tabula et d'installer la nouvelle.

pip uninstall tabula
pip install tabula-py

Nous créons l'exécutable .py

lire des tableaux de pdf en csv

Je crée l'exécutable .py que j'appelle pdftocsv.py je le mets dans mon dossier Downloads / eltiempo et c'est un fichier avec le code suivant

import tabula
# Extaer los datos del pdf al DataFrame
df = tabula.read_pdf("inforatge.pdf")
# lo convierte en un csv llamdo out.csv codificado con utf-8
df.to_csv('out.csv', sep='\t', encoding='utf-8')

Le pdf à lire s'appelle inforatge.pdf et je lui dis que la sortie s'appelle out.csv et qu'elle restera dans le dossier dans lequel nous travaillons.

Nous allons dans le répertoire où nous avons à la fois l'exécutable et le pdf que nous voulons convertir. C'est important car si vous nous dites que vous ne trouvez pas le fichier.

cd Descargas/eltiempo

Dans ce répertoire, nous avons le PDF, le fichier .py que nous avons créé et là, il renverra le csv que nous voulons.

Nous exécutons le code

python pdftocsv.py

Notez que j'ai utilisé python, c'est-à-dire que je lui dis de l'exécuter avec python 2 et non avec python3 qui échoue. Et c'est tout si cela ne renvoie aucune erreur, nous l'avons déjà.

exécuter Tabula dans notre environnement de développement Anaconda

Nous avons ajouté 3 lignes supplémentaires au fichier pour le contrôle d'exécution. à la fin, nous avons laissé notre fichier pdftocsv.py comme

import tabula
import time

start_time = time.time()

df = tabula.read_pdf("inforatge.pdf")
df.to_csv('out.csv', sep='\t', encoding='utf-8')

print("--- %s seconds ---" % (time.time() - start_time))

Plus d'options de Tabula

Plus d'exemples de choses que nous pouvons faire. Il existe de nombreuses options, il est préférable de passer par le dépôt officiel Github que j'ai laissé

# Leer PDF remotos y convertirlos en DataFrame
df2 = tabula.read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

# Convertir un PDF en CSV
tabula.convert_into("test.pdf", "output.csv", output_format="csv")

Et sans aucun doute l'une des choses les plus utiles pour convertir tous les fichiers PDF, JSON, etc. dans un répertoire.

tabula.convert_into_by_batch("input_directory", output_format='csv')

Avec cela, nous pouvons automatiser des tâches qui seraient autrement longues et fastidieuses. En fin de compte, c'est l'une des raisons d'utiliser cette bibliothèque.

Convertir PDF en Excel en ligne

Si nous voulons simplement convertir un fichier, extraire les données du tableau de PDF vers Excel, Librecalc ou similaire, il n'est pas nécessaire de le compliquer autant. Il existe des outils disponibles pour ce faire, certains à installer et d'autres pour faire le travail en ligne.

J'ai essayé ces deux outils en ligne et ils fonctionnent très bien.

Gardez à l'esprit qu'il ne s'agit pas d'un travail automatisé, et donc l'étude de ces outils n'a pas été exhaustive. Je ne les commente que pour ceux qui pourraient être intéressés.

La méthode classique

Et nous avons toujours la méthode classique, la plus bâclée et la plus chère mais au final c'est une option s'il y a peu de travail.

Copiez les cellules du tableau du pdf et collez-les dans notre feuille de calcul.

Laisser un commentaire