0
requests
ライブラリを使用していくつかのpdfsをダウンロードし、pypdfを使用してそれらを一緒にマージしようとしました。一般的に、これは正常に動作していますが、一部のpdfsではエラーが発生します。トレースのUnicodeエラーPyPdf
MWE.py
import requests
from pyPdf import PdfFileWriter, PdfFileReader
from StringIO import StringIO
input = PdfFileReader(StringIO(response.content))
input.decrypt("")
output = PdfFileWriter()
output.addPage(input.getPage(0))
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()
session.close()
エラー
Traceback (most recent call last):
File "mwe.py", line 21, in <module>
input.decrypt("")
File "/usr/local/lib/python2.7/dist-packages/pyPdf/pdf.py", line 894, in decrypt
return self._decrypt(password)
File "/usr/local/lib/python2.7/dist-packages/pyPdf/pdf.py", line 904, in _decrypt
user_password, key = self._authenticateUserPassword(password)
File "/usr/local/lib/python2.7/dist-packages/pyPdf/pdf.py", line 945, in _authenticateUserPassword
encrypt.get("/EncryptMetadata", BooleanObject(False)).getObject())
File "/usr/local/lib/python2.7/dist-packages/pyPdf/pdf.py", line 1818, in _alg35
key = _alg32(password, rev, keylen, owner_entry, p_entry, id1_entry)
File "/usr/local/lib/python2.7/dist-packages/pyPdf/pdf.py", line 1729, in _alg32
m.update(id1_entry)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
私は、ファイルからの入力を読んで私はそれが、この場合に重要とは思いません。
この問題に関するいくつかの関連する質問がありましたが、私は特定の問題を解決できません。
残りのトレースバックを共有しようとしていましたか? –
解読メソッドでエラーが発生していませんか?実際にはpdfは暗号化されていませんが、空のパスワードでこの回避策を見つけました。それ以外の場合は、addPageメソッド内で 'Exception:file has decrypted 'というエラーが発生して失敗します。 –
なぜ 'file'を使用していますか? –