水印两个 pdf - 第一个的每一页和第二个的每一页

Watermark two pdfs - Each page of the first with each page of the second

我有两个相同长度的 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)

任何帮助将不胜感激:) :)

您使用了太多循环,页数相同,因此您在页数上循环一次,获取水印,获取页面,合并两者并将它们添加到输出中:

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)

完成。