PyPDF2.PdfFileWriter addAttachment不工作

问题描述 投票:0回答:1

基于https://programtalk.com/python-examples/PyPDF2.PdfFileWriter/,例2,我尝试将附件添加到PDF文件中。

这是我试图运行的代码:

import os
import PyPDF2
from django.conf import settings

...

doc = os.path.join(settings.BASE_DIR, "../media/SC/myPDF.pdf")

unmeta = PyPDF2.PdfFileReader(doc, "rb")

meta = PyPDF2.PdfFileWriter()
meta.appendPagesFromReader(unmeta)

meta.addAttachment("The filename to display", "The data in the file")

with open(doc, 'wb') as fp:
    meta.write(fp)

当我运行此代码时,我得到:“TypeError:需要类似字节的对象,而不是'str'”。

如果我更换

with open(doc, 'wb') as fp:
    meta.write(fp)

通过:

with open(doc, 'wb') as fp:
    meta.write(b'fp')

我得到这个错误:“'bytes'对象没有属性'write'”。

如果我尝试:

with open(doc, 'w') as fp:
    meta.write(fp)

我得到这个错误:“write()参数必须是str,而不是字节”

谁能帮我?

python pypdf2
1个回答
0
投票

addAttachment中的第二个参数必须是类似字节的对象。你可以通过编码字符串来做到这一点:

meta.addAttachment("The filename to display", "The data in the file".encode())
© www.soinside.com 2019 - 2024. All rights reserved.