Maison >développement back-end >Tutoriel Python >Comment fusionner des fichiers PDF avec Python : un guide complet

Comment fusionner des fichiers PDF avec Python : un guide complet

DDD
DDDoriginal
2024-10-23 08:30:29757parcourir

How to Merge PDF Files with Python: A Comprehensive Guide

Fusionner des fichiers PDF avec Python

Python offre des options puissantes pour fusionner des fichiers PDF, vous permettant de combiner plusieurs documents en un seul et unifié. . Ce didacticiel vous guidera tout au long du processus, y compris des techniques avancées telles que parcourir des répertoires en boucle et exclure des pages spécifiques.

Utilisation de la classe de fusion pypdf

pypdf fournit la classe PdfMerger, qui offre un moyen simple de concaténer et de fusionner des fichiers PDF.

Concaténation de fichiers

Concaténer des fichiers en les ajoutant à l'aide de la méthode d'ajout :

<code class="python">import PdfMerger

pdfs = ['file1.pdf', 'file2.pdf', 'file3.pdf', 'file4.pdf']

merger = PdfMerger()

for pdf in pdfs:
    merger.append(pdf)

merger.write("result.pdf")</code>

Fusion de fichiers

Pour un contrôle plus précis, utilisez la méthode de fusion pour spécifier les points d'insertion :

<code class="python">merger.merge(2, pdf)  # Insert PDF at page 2</code>

Étendues de pages

Contrôlez quelles pages sont ajoutées à l'aide de l'argument de mot-clé pages :

<code class="python">merger.append(pdf, pages=(0, 3))  # Append first 3 pages
merger.append(pdf, pages=(0, 6, 2))  # Append pages 1, 3, 5</code>

Exclusion des pages vierges

Pour exclure une page spécifique de tous les PDF fusionnés, vous pouvez manipuler les pages paramètre en conséquence. Par exemple, pour exclure la page 1 de chaque PDF :

<code class="python">pages_to_exclude = [0]  # Page 1

for pdf in pdfs:
    merger.append(pdf, pages=(i for i in range(pages) if i not in pages_to_exclude))</code>

Bibliothèque PyMuPdf

Une autre option est la bibliothèque PyMuPdf. Voici comment fusionner des PDF avec :

Depuis la ligne de commande

python -m fitz join -o result.pdf file1.pdf file2.pdf file3.pdf

Depuis le code

<code class="python">import fitz

result = fitz.open()

for pdf in ['file1.pdf', 'file2.pdf', 'file3.pdf']:
    with fitz.open(pdf) as mfile:
        result.insert_pdf(mfile)
    result.save("result.pdf")</code>

Parcourir des dossiers

Pour parcourir des dossiers et fusionner des PDF, utilisez le module os :

<code class="python">import os

for folder in os.listdir("path/to/directory"):
    pdfs = [f for f in os.listdir(f"path/to/directory/{folder}") if f.endswith(".pdf")]
    merger = PdfMerger()
    for pdf in pdfs:
        merger.append(f"path/to/directory/{folder}/{pdf}")
    merger.write(f"merged_{folder}.pdf")</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn