在使用完全相同的代碼,我能夠得到兩個PDF
爲PDF
與第二個重疊的第一個一頁合併,我提到這個link的詳細信息。
而不是file()
根據這Python Documentation最好使用open()
,所以我這樣做。
另外,我對你的代碼做了些許修改,但仍然在我的機器上工作是一樣的和正確的。我正在使用Ubuntu 16.04
和python 2.7
。
下面是代碼:
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)
我希望這有助於。
UPDATE:
這裏是爲我工作和合並兩個PDF的頁面作爲單頁的代碼。
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"))
我已經添加了一個新的代碼,現在它也在旋轉最終的pdf。輸出PDF,你需要的是final.pdf
而這裏是Google Drive link我的驅動器爲PDF
文件。另外,爲了兼容我的系統Immutableset
,我對pdfnup.py
做了輕微更改,如果您想使用相同的文件,那麼您也可以在上面的驅動器鏈接中找到它。
我可以得到樣本pdf文件的輸入?我仍然只是第二頁,.. –
當然,這裏是我的谷歌驅動器的鏈接: https://drive.google.com/open?id=0B45dOHQNtoKLQVVDcHl0RUhDZHM –
是mergePage的默認功能?好像第二個文件放在第一個文件的頂部..我認爲它會將兩個頁面的內容合併到一個垂直文件中......就像我們在第一頁中有兩個頁面的內容爲「foo」* 100並且bar * 100在第二頁,它會合並頁面(頂部的第一頁的前半部分和底部的第二頁的前半部分)。所以「foo」出現在頂部,「bar」出現在底部。有沒有辦法做到這一點? –