2017-10-16 3 views
0

https://programtalk.com/python-examples/PyPDF2.PdfFileWriter/(例2)に基づいて、添付ファイルをPDFファイルに追加しようとしています。ここでPyPDF2.PdfFileWriter addAttachment not working

は、私が実行しようとしています私のコードです:

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') 

私はこのエラーを取得する: " 'バイト' オブジェクトには、属性 '書き込み' を持っていません"。

そして、私がしようとした場合:

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

は、私はこのエラーを取得する:誰も私を助けることができる

"を書き込み()の引数はstrをしなければならない、バイトではありませんか"?

答えて

0

addAttachmentの第2引数は、バイトのようなオブジェクトでなければなりません。文字列をエンコードすることで可能です:

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