嗨,我试图水印一个pdf文件使用pypdf2,虽然我得到这个错误,我不知道哪里出了问题。
我得到以下错误:
Traceback (most recent call last): File "test.py", line 13, in <module>
page.mergePage(watermark.getPage(0)) File "C:\Python27\site-packages\PyPDF2\pdf.py", line 1594, in mergePage
self._mergePage(page2) File "C:\Python27\site-packages\PyPDF2\pdf.py", line 1651, in _mergePage
page2Content, rename, self.pdf) File "C:Python27\site-packages\PyPDF2\pdf.py", line 1547, in
_contentStreamRename
op = operands[i] KeyError: 0在windows 32位上使用python2.7.6和pypdf2 1.19。希望有人能告诉我我做错了什么。
我的python文件:
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
input = PdfFileReader(open("test.pdf", "rb"))
watermark = PdfFileReader(open("watermark.pdf", "rb"))
# print how many pages input1 has:
print("test.pdf has %d pages." % input.getNumPages())
print("watermark.pdf has %d pages." % watermark.getNumPages())
# add page 0 from input, but first add a watermark from another PDF:
page = input.getPage(0)
page.mergePage(watermark.getPage(0))
output.addPage(page)
# finally, write "output" to document-output.pdf
outputStream = file("outputs.pdf", "wb")
output.write(outputStream)
outputStream.close()发布于 2013-11-28 09:18:49
尝试写入StringIO对象而不是磁盘文件。因此,将其替换为:
outputStream = file("outputs.pdf", "wb")
output.write(outputStream)
outputStream.close()在这方面:
outputStream = StringIO.StringIO()
output.write(outputStream) #write merged output to the StringIO object
outputStream.close()如果上面的代码有效,那么您可能会遇到文件写入权限问题。为了参考,请查看PyPDF 我的文章中的工作示例。
https://stackoverflow.com/questions/20221991
复制相似问题