En utilisant exactement le même code, je parviens à obtenir deux PDF
comme fusionné PDF
en une seule page, la seconde recouvrant la première, j'ai fait référence à cette lien pour obtenir des informations détaillées.
Et, au lieu de file()
il est préférable d'utiliser open()
conformément à ce qui suit Documentation Python C'est ce que j'ai fait.
J'ai également apporté de légères modifications à votre code, mais le fonctionnement est toujours le même et correct sur ma machine. J'utilise Ubuntu 16.04
con python 2.7
.
Voici le code :
from PyPDF2 import PdfFileReader,PdfFileWriter
import sys
f = sys.argv[1]
k = sys.argv[2]
print f, k
file1 = PdfFileReader(open(f, "rb"))
file2 = PdfFileReader(open(k, "rb"))
output = PdfFileWriter()
page = file1.getPage(0)
page.mergePage(file2.getPage(0))
output.addPage(page)
with open("join.pdf", "wb") as outputStream:
output.write(outputStream)
J'espère que cela vous aidera.
UPDATE :
Voici le code qui fonctionne pour moi et qui permet de fusionner les deux pdf en une seule page.
from pyPdf import PdfFileWriter, PdfFileReader
from pdfnup import generateNup
initial_output = PdfFileWriter()
input1 = PdfFileReader(open("landscape1.pdf", "rb"))
input2 = PdfFileReader(open("landscape2.pdf", "rb"))
initial_output.addPage(input1.getPage(0))
initial_output.addPage(input2.getPage(0))
# creates a new pdf file with required pages as separate pages.
initial_output.write(file("final.pdf", "wb"))
# merges newly created pdf file pages as one.
generateNup("final.pdf", 2, "intermediate.pdf")
# overwrite and rotates the final.pdf
final_output = PdfFileWriter()
final_output.addPage(PdfFileReader(open("intermediate.pdf", "rb")).getPage(0).rotateClockwise(90))
final_output.write(open("final.pdf", "wb"))
J'ai ajouté un nouveau code et maintenant le pdf final pivote également. Le PDF de sortie dont vous avez besoin est final.pdf
Et voici le Lien Google Drive à ma volonté de PDF
des dossiers. J'ai également apporté de légères modifications à pdfnup.py
pour la compatibilité avec mon système de Immutableset
si vous voulez utiliser le même fichier, vous pouvez le trouver dans le lien ci-dessus.