Lire un fichier PDF

Lire un fichier PDF - Python - Programmation

Marsh Posté le 07-04-2024 à 01:49:48    

Bonsoir,
 
J'ai l'impression de buter sur un problème très bête...
Je souhaite à faire un soft pour lire automatiquement des fichiers PDF (et ensuite les renommer et les ranger dans des dossiers créés automatiquement).
 
Pour mon problème de lecture de PDF, quelle serait la bibliothèque la mieux adaptée ?
J'ai bien galéré à installer un environnement qui me permettait d'installer et tester des bibliothèques, mais j'ai finalement réussi à faire marcher la base avec powershell (pour pip install [librairie]) et visual studio code.  
Malheureusement la librairie qui m'a été conseillée par une page internet visiblement obsolète, pypdf2, n'a pas sorti de résultat satisfaisant. Résultat ci dessous.
 
Merci  :jap:
 
♦♣♠♠    ♠
♣♫☼► ♦♣♠
♀♫♠
◄↕‼‼↕¶♂§♂▬↨☼
♀♀


Message édité par Laska- le 07-04-2024 à 03:15:54
Reply

Marsh Posté le 07-04-2024 à 01:49:48   

Reply

Marsh Posté le 08-04-2024 à 00:57:12    

Je ne pourrais pas te répondre ne faisant pas de Python, mais ton charabia la me fait penser que tu essayes de lire un pdf comme un fichier texte. Ca ne risque pas de fonctionner. :o Soit la lib' est HS, soit tu l'utilises mal, donc montre un bout de code.

Reply

Marsh Posté le 08-04-2024 à 10:51:47    

Je te conseille d'aller voir la librairie PyMuPDF plutôt que PyPDF2.
 

import fitz # imports the pymupdf library
doc = fitz.open("example.pdf" ) # open a document
for page in doc: # iterate the document pages
  text = page.get_text() # get plain text encoded as UTF-8


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 08-04-2024 à 17:24:01    

J'essaierai celle-ci, merci !
 
De manière générale j'ai perdu beaucoup de temps avec les problèmes d'IDE. Je connais spyder mais c'est très difficile d'importer des modules dedans s'ils ne sont pas prévus à la base (et j'ai même lu un post d'un gars de l'équipe spyder qui dit que c'est volontaire de leur part)
 
Quel est le meilleur environnement pour développer en python, pour ceux qui ne se contentent pas des librairies de base contenues dans spyder ?
 
Le fichier PDF que j'ai devrait être lisible avec une bibliothèque PDF valable.
J'ai même trouvé des gens qui utilisent VBA pour envoyer un ctrl A puis ctrl C dans adobe, avant de venir dans excel faire le coller, ça "fonctionne" mais le résultat est le même que ci dessous, des symboles illisibles. Pourtant c'est bien un copier/coller et il fonctionne quand on le fait manuellement.

Message cité 1 fois
Message édité par Laska- le 08-04-2024 à 17:28:52
Reply

Marsh Posté le 09-04-2024 à 08:24:30    

Laska- a écrit :

Quel est le meilleur environnement pour développer en python, pour ceux qui ne se contentent pas des librairies de base contenues dans spyder ?


 
J'utilise Python dans un environnement professionnel et dans notre pôle, nous utilisons Visual Studio Code de Microsoft. On lui ajoute quelques plugins spécial Python et aucune librairie additionnelle n'est ajoutée à Python.
 
Dès qu'on attaque un nouveau programme, on déploie un environnement virtuel et c'est dans cet environnement que l'on installe les librairies nécessaires ne faisant pas partie de la distribution standard de Python.
 

Laska- a écrit :

Le fichier PDF que j'ai devrait être lisible avec une bibliothèque PDF valable.


 
Et bien, essaie PyMuPDF alors  :) Comme montré dans mon exemple, 4 lignes de codes suffisent.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 28-04-2024 à 10:48:29    

Je réponds un peu tard, mais pour lire des PDF, c'est pas aussi simple qu'utiliser une bibliothèque.  
 
Certains PDF sont composés de textes (exemple type : un PDF généré avec Word)
D'autres sont composés de textes et d'images.
Et enfin d'autres sont parfois même une seule image contenant des textes pixélisés (donc aucune information de texte dans le PDF).
 
L'approche que nous utilisons, c'est une préanalyse du PDF pour voir si celui-ci contient plus d'un certain nombre de mots, auquel cas, une librairie d'extraction de texte du PDF suffit. Dans le cas contraire, la meilleure approche reste l'OCR. On peut par exemple utiliser Tesseract qui est opensource ou l'un de ses dérivés.
 
Une approche un peu extrême quand on a plein de PDF dont il est difficile de savoir s'ils sont composés de textes et/ou d'image, c'est d'aplatir le PDF pour le transformer en une seule image, et passer l"OCR ensuite dessus.


---------------
Expert en expertises
Reply

Marsh Posté le 28-04-2024 à 18:34:29    

Dans mon cas je suis certain que tous les PDF seront de même type, voire carrément identiques (mis à part les données de certains champs, c'est le même formulaire quoi).
J'ai mis la chose en standby pendant quelques temps mais je m'y réattaquerai bientôt :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed