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!