Vous pouvez utiliser PyPdf2 de PdfMergerclasse.
Concaténation de fichiers
Vous pouvez simplement concaténer des fichiers en utilisant la appendméthode.
from PyPDF2 import PdfFileMerger
pdfs = ['file1.pdf', 'file2.pdf', 'file3.pdf', 'file4.pdf']
merger = PdfFileMerger()
for pdf in pdfs:
merger.append(pdf)
merger.write("result.pdf")
merger.close()
Vous pouvez transmettre des descripteurs de fichiers à la place des chemins de fichiers si vous le souhaitez.
Fusion de fichiers
Si vous souhaitez un contrôle plus fin de la fusion, il existe une mergeméthode du PdfMerger, qui vous permet de spécifier un point d'insertion dans le fichier de sortie, ce qui signifie que vous pouvez insérer les pages n'importe où dans le fichier. La appendméthode peut être considérée comme un mergeendroit où le point d'insertion est la fin du fichier.
par exemple
merger.merge(2, pdf)
Ici, nous insérons le pdf entier dans la sortie mais à la page 2.
Plages de pages
Si vous souhaitez contrôler quelles pages sont ajoutées à partir d'un fichier particulier, vous pouvez utiliser l' pagesargument mot - clé de appendet merge, en passant un tuple sous la forme (start, stop[, step])(comme la rangefonction régulière ).
par exemple
merger.append(pdf, pages=(0, 3)) # first 3 pages
merger.append(pdf, pages=(0, 6, 2)) # pages 1,3, 5
Si vous spécifiez une plage non valide, vous obtiendrez un fichier IndexError.
Remarque: également que pour éviter de laisser les fichiers ouverts, la PdfFileMergerméthode close doit être appelée lorsque le fichier fusionné a été écrit. Cela garantit que tous les fichiers sont fermés (entrée et sortie) en temps opportun. C'est dommage que ce PdfFileMergerne soit pas implémenté en tant que gestionnaire de contexte, nous pouvons donc utiliser le withmot - clé, éviter l'appel de fermeture explicite et obtenir une sécurité d'exception facile.
Vous pouvez également consulter le pdfcatscript fourni dans le cadre de pypdf2. Vous pouvez potentiellement éviter d'avoir à écrire du code complètement.
Le github PyPdf2 comprend également des exemples de code démontrant la fusion.