我有两个相同长度的pdf文件,比方说pdf1.pdf和pdf2.pdf。我正在尝试使用pdf2.pdf为pdf1.pdf的每一页添加水印(即pdf1.pdf的第1页和pdf2.pdf的第1页,pdf1.pdf的第2页和pdf2.pdf的第2页......) 。
然而,我真的在努力解决它们的问题(我是编程新手)。
例如,我试过这个:
import PyPDF2
from PyPDF2 import PdfFileMerger
from PyPDF2 import PdfFileReader, PdfFileWriter
output = PdfFileWriter()
ipdf = PdfFileReader(open('pdf1.pdf', 'rb'))
wpdf = PdfFileReader(open('pdf2.pdf', 'rb'))
for i in xrange(wpdf.getNumPages()):
watermark = wpdf.getPage(i)
for i in xrange(ipdf.getNumPages()):
page = ipdf.getPage(i)
for i in watermark:
page.mergePage(watermark)
output.addPage(page)
with open('newfile.pdf', 'wb') as f:
output.write(f)
任何帮助将不胜感激:):)
答案 0 :(得分:1)
你使用了太多的循环,页面数量是相同的,所以你在页面上循环一次,获取水印,获取页面,合并两者并将它们添加到输出中:
import PyPDF2
from PyPDF2 import PdfFileMerger
from PyPDF2 import PdfFileReader, PdfFileWriter
output = PdfFileWriter()
ipdf = PdfFileReader(open('pdf1.pdf', 'rb'))
wpdf = PdfFileReader(open('pdf2.pdf', 'rb'))
# same page counts - just loop once
for i in xrange(wpdf.getNumPages()):
watermark = wpdf.getPage(i) # get i-th watermark
page = ipdf.getPage(i) # get i-th page
page.mergePage(watermark) # marry them and add to output
output.addPage(page)
with open('newfile.pdf', 'wb') as f:
output.write(f)
完成。