PyPDF2.PdfFileWriter addAttachment не работает

На основе 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)

by:

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

Я получаю эту ошибку: «Объект« байты »не имеет атрибута« запись »».

И если я попытаюсь:

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

Я получаю эту ошибку: «аргумент write () должен быть str, а не байтами»

Может кто-нибудь помочь мне?


person danielb    schedule 16.10.2017    source источник


Ответы (1)


Второй аргумент в addAttachment должен быть байтовым объектом. Вы можете сделать это, закодировав строку:

meta.addAttachment("The filename to display", "The data in the file".encode())
person Soapnrope    schedule 29.12.2017