Lancement / Blog / Python / PyPDF2 - Tutoriel Python pour la manipulation de PDF

PyPDF2 - Tutoriel Python pour la manipulation de PDF

Résumer avec ChatGPT

Vous ne voulez plus traiter les fichiers PDF manuellement ? Vous voulez apprendre à créer des PDF avec Python de la même manière ? Alors PyPDF2 est exactement ce qu'il vous faut. Grâce à cette bibliothèque Python, vous serez en mesure de créer des fichiers PDF

  • de l'autre,
  • de se répartir les tâches,
  • de cryptage,
  • à décrypter

et bien d'autres choses encore.

Thèmes de ce tutoriel

  1. Installation de PyPDF2 et de ses dépendances

  2. Lire, écrire et copier des fichiers PDF

  3. Fusionner plusieurs fichiers PDF en un seul

  4. Division d'un fichier PDF en plusieurs fichiers

  5. Cryptage et décryptage de fichiers PDF

  6. Extraction de texte et d'images à partir de PDF

  7. Ajouter des filigranes et des numéros de page aux PDF

Nous comparons également PyPDF2 à d'autres logiciels d'édition de PDF et discutons de ses avantages et limites. Avec PyPDF2, vous pouvez automatiser vos flux de travail PDF et gagner du temps sur les éditions manuelles. Nous vous expliquons ici comment démarrer :

Installation de PyPDF2

Pour utiliser PyPDF2, il suffit de l'installer via pip :

  • Assurez-vous que vous avez installé Python 2.7 ou Python 3.x sur votre système.
  • Installez PyPDF2 avec pip : pip install PyPDF2

Lire, écrire et copier des fichiers PDF

PyPDF2 vous permet de lire, d'écrire et de copier facilement des fichiers PDF. Voici un exemple :

import PyPDF2
# Open the PDF file
pdf_file = open('example.pdf', 'rb')
# Read the PDF file
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# Print the number of pages
print(pdf_reader.numPages)
# Get the first page
page = pdf_reader.getPage(0)
# Extract the text from the first page
text = page.extractText()
# Print the text
print(text)
# Close the PDF file
pdf_file.close()

Fusionner plusieurs fichiers PDF en un seul

Si vous avez plusieurs fichiers PDF que vous souhaitez combiner en un seul, c'est très facile avec PyPDF2. Voici un exemple :

import PyPDF2
# Open the first PDF file
pdf_file1 = open('example1.pdf', 'rb')
# Open the second PDF file
pdf_file2 = open('example2.pdf', 'rb')
# Create a PDF merger
pdf_merger = PyPDF2.PdfFileMerger()
# Add the first PDF file
pdf_merger.append(pdf_file1)
# Add the second PDF file
pdf_merger.append(pdf_file2)
# Merge the PDF files
pdf_merger.write('merged.pdf')
# Close the PDF files
pdf_file1.close()
pdf_file2.close()

Division d'un fichier PDF en plusieurs fichiers

Si vous avez un gros fichier PDF que vous souhaitez diviser en fichiers plus petits, PyPDF2 peut vous aider. Voici un exemple :

import PyPDF2
# Open the PDF file
pdf_file = open('example.pdf', 'rb')
# Create a PDF reader
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# Get the number of pages
num_pages = pdf_reader.numPages
# Split the PDF file into multiple files
for page_num in range(num_pages):
    # Create a PDF writer
    pdf_writer = PyPDF2.PdfFileWriter()
    # Get the page
    page = pdf_reader.getPage(page_num)
    # Add the page to the PDF writer
    pdf_writer.addPage(page)
    # Create the new PDF file
    new_file_name = 'page' + str(page_num) + '.pdf'
    new_file = open(new_file_name, 'wb')
PyPDF2 prend également en charge la création et l'édition de fichiers PDF. Avec PyPDF2, vous pouvez créer un nouveau fichier PDF à partir de zéro ou modifier un fichier existant. Vous pouvez ajouter du texte, des images et d'autres éléments à un fichier PDF et modifier sa structure, ses propriétés et ses métadonnées.

L'une des fonctions les plus puissantes de PyPDF2 est sa capacité à fusionner et à diviser des fichiers PDF. Vous pouvez fusionner plusieurs PDF en un seul fichier ou diviser un grand PDF en plusieurs petits. Cela peut être utile pour l'organisation et l'archivage de documents, ainsi que pour la création de rapports et de présentations.

En plus de ces fonctions de base, PyPDF2 offre également une série d'outils et d'utilitaires pour travailler avec des fichiers PDF. Ceux-ci comprennent

Cryptage et décryptage de PDF

PyPDF2 vous permet de crypter et de décrypter des fichiers PDF, en prenant en charge les mots de passe utilisateur et propriétaire. Vous apprendrez ici comment crypter un fichier PDF avec PyPDF2 :

import PyPDF2
pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
pdf_writer = PyPDF2.PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(0))
pdf_writer.encrypt('user_password', 'owner_password')
result_pdf = open('encrypted.pdf', 'wb')
pdf_writer.write(result_pdf)
result_pdf.close()
pdf_file.close()

Dans ce code, nous ouvrons d'abord le fichier d'entrée PDF et créons un objet PDF-Reader. Ensuite, nous créons un objet PDF Writer et lui ajoutons la première page du fichier PDF d'entrée. Enfin, nous chiffrons le fichier PDF avec un mot de passe utilisateur et un mot de passe propriétaire et enregistrons le résultat en tant que nouveau fichier.

Décrypter des fichiers PDF avec Python

Pour décrypter un fichier PDF, vous pouvez utiliser le code suivant :

import PyPDF2
pdf_file = open('encrypted.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
if pdf_reader.isEncrypted:
    pdf_reader.decrypt('password')
page = pdf_reader.getPage(0)
text = page.extractText()
print(text)
pdf_file.close()

Ici, nous ouvrons d'abord le fichier PDF crypté et créons un objet de lecture PDF. Ensuite, nous vérifions si le fichier PDF est crypté et, si c'est le cas, nous le décryptons à l'aide du mot de passe. Nous extrayons le texte de la première page du fichier PDF et l'affichons sur la console.

Extraction de texte et d'images à partir de PDF

PyPDF2 vous permet d'extraire du texte et des images de fichiers PDF, avec des options de filtrage et de traitement de la sortie, si le texte et les images sont intégrés dans le PDF numérique natif. Si ce n'est pas le cas, consultez notre Tutoriel pytesseract à l'écran. Voici comment extraire du texte d'un fichier PDF avec PyPDF2 :

import PyPDF2
pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
text = ''
for page in range(pdf_reader.getNumPages()):
    text += pdf_reader.getPage(page).extractText()
print(text)
pdf_file.close()

Dans ce code, nous ouvrons d'abord le fichier PDF d'entrée et créons un objet PDF Reader. Ensuite, nous parcourons chaque page du fichier PDF dans une boucle et en extrayons le texte. Nous concaténons le texte de chaque page et l'affichons sur la console.

Pour extraire des images d'un fichier PDF, vous pouvez utiliser le code suivant :

import PyPDF2
pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
for page in range(pdf_reader.getNumPages()):
    xObject = pdf_reader.getPage(page).getObject()['/Resources']['/XObject'].getObject()
    for obj in xObject:
        if xObject[obj]['/Subtype'] == '/Image':
            size = (xObject[obj]['/Width'], xObject[obj]['/Height'])
            data = xObject[obj]._data
            print(size, len(data))
pdf_file.close()

Conversion de PDF vers d'autres formats avec PyPDF2

PyPDF2 est une puissante bibliothèque Python qui vous permet de convertir des PDF en d'autres formats tels que HTML, XML et texte simple. Cela peut être utile si vous devez extraire certaines données d'un fichier PDF ou si vous souhaitez afficher le contenu d'un fichier PDF sur un site web. Voici un exemple de conversion d'un PDF en texte simple avec PyPDF2 :

import PyPDF2
# Open the PDF file
pdf_file = open('example.pdf', 'rb')
# Create a PDF reader object
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# Get the first page of the PDF
page = pdf_reader.getPage(0)
# Extract the text from the page
text = page.extractText()
# Print the text
print(text)
# Close the PDF file
pdf_file.close()

Dans cet exemple, nous ouvrons le fichier PDF en mode binaire et créons un objet PDF-Reader. Ensuite, nous récupérons la première page du fichier PDF et en extrayons le texte à l'aide de la méthode extractText(). Enfin, le texte extrait est imprimé.

Extraire et modifier les signets, les annotations et les champs de formulaire avec PyPDF2

PyPDF2 vous permet d'extraire et de modifier différents éléments dans un fichier PDF, notamment les signets, les annotations et les champs de formulaire. Cela peut être utile si vous souhaitez automatiser certaines tâches ou extraire certaines données d'un fichier PDF. Voici un exemple de la manière d'extraire des signets d'un fichier PDF avec PyPDF2 :

import PyPDF2
# Open the PDF file
pdf_file = open('example.pdf', 'rb')
# Create a PDF reader object
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# Get the bookmarks from the PDF
bookmarks = pdf_reader.getOutlines()
# Print the bookmarks
for bookmark in bookmarks:
    print(bookmark.title)
# Close the PDF file
pdf_file.close()

Dans cet exemple, nous ouvrons le fichier PDF en mode binaire et créons un objet PDF-Reader. Ensuite, nous utilisons la méthode getOutlines()pour extraire les signets du fichier PDF. Enfin, nous imprimons les titres des signets.

Travailler avec des calques PDF avec PyPDF2

Les calques PDF, ou couches PDF, également connus sous le nom de groupes de contenu optionnels, vous permettent de contrôler la visibilité et l'apparence de différents éléments dans un fichier PDF. PyPDF2 offre la possibilité de travailler avec des calques PDF, ce qui vous permet de modifier ou d'extraire des calques spécifiques d'un PDF. Voici un exemple de la manière d'utiliser PyPDF2 pour extraire un calque spécifique d'un fichier PDF :

import PyPDF2
# Open the PDF file
pdf_file = open('example.pdf', 'rb')
# Create a PDF reader object
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# Get the first page of the PDF
page = pdf_reader.getPage(0)
# Get the layers from the page
layers = page['/OCProperties']['/OCGs']
# Print the layers
for layer in layers:
    print(layer)
# Close the PDF file
pdf_file.close()

Dans cet exemple, nous ouvrons le fichier PDF en mode binaire et créons un objet PDF-Reader. Ensuite, nous récupérons la première page du fichier PDF et en extrayons les calques avec la syntaxe suivante ['/OCProperties']['/OCGs']. Dans cet exemple, nous ouvrons le fichier PDF en mode binaire et créons un objet PDF Reader. Ensuite, nous récupérons la première page du fichier PDF et en extrayons les calques avec la syntaxe suivante ['/OCProperties']['/OCGs']. Enfin, nous indiquons le nom des calques.

Conclusion

PyPDF2 est une bibliothèque puissante et flexible pour travailler avec des fichiers PDF en Python. Que vous ayez besoin de créer ou de modifier un PDF, ou d'en extraire des informations, PyPDF2 offre une large gamme d'outils et d'utilitaires pour vous aider à faire le travail. Que vous soyez développeur, chercheur ou simplement quelqu'un qui doit régulièrement travailler avec des PDF, PyPDF2 vaut vraiment le coup d'œil.

Découvrez nos Catégorie Python avec des articles utiles autour de ce thème.

Avez-vous trouvé cette page utile ?

Merci beaucoup pour vos commentaires !

Voulez-vous me donner un feedback ? (anonyme)

Nous développons des logiciels d'intelligence artificielle pour les entreprises et renonçons délibérément aux bannières publicitaires gênantes. Par le biais de nos articles, nous documentons des thèmes qui nous préoccupent, nous intéressent et financent également notre pain quotidien.

Comme nos contenus sont gratuits, vos commentaires sont nos félicitations.

Chaque auteur lit personnellement vos commentaires anonymes, même si les IA pourraient les automatiser, et intègre directement les suggestions constructives dans la prochaine révision ou les utilise comme source d'inspiration pour le prochain article.



    • Florian Zyprian
      (auteur)

      En tant que CTO chez Helm & Nagel GmbH, l'entreprise derrière la marque Konfuzio.

    fr_FRFR