给两个 pdf 加水印 - 第一页的每一页和第二页的每一页
我有两个相同长度的 pdf 文件,比如说 pdf1.pdf 和 pdf2.pdf.我正在尝试使用 pdf2.pdf 为 pdf1.pdf 的每一页添加水印(即,pdf1.pdf 的第 1 页与 pdf2.pdf 的第 1 页,pdf1.pdf 的第 2 页与 pdf2.pdf 的第 2 页......).
I have two pdf files of the same length, let's say pdf1.pdf and pdf2.pdf. I'm trying to watermark each page of pdf1.pdf with pdf2.pdf (i.e., page 1 of pdf1.pdf with page 1 of pdf2.pdf, page 2 of pdf1.pdf with page 2 of pdf2.pdf ...).
但是,我真的很纠结如何循环它们(我是编程新手).
However, I'm really struggling with how to loop them around (I'm new to programming).
例如,我试过这个:
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)
任何帮助将不胜感激:) :)
Any help would be appreciated :) :)
您使用了太多循环,页数相同,因此您在页数上循环一次,获取水印,获取页面,将两者结合并将它们添加到输出:
You use too many loops, page counts are identical so you loop once over the pagecount, get the watermark, get the page, combine both and add them to the output:
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)
完成.