1

pyPdf を壊す pdf ファイルがあります: http://tovotu.de/tests/test.pdf

サンプル スクリプトは次のとおりです。

from pyPdf import PdfFileWriter, PdfFileReader

outputPdf = PdfFileWriter()

inpdf = open("test.pdf","rb")
inputPdf = PdfFileReader(inpdf)
[outputPdf.addPage(x) for x in inputPdf.pages]

with open("output.pdf","wb") as outpdf:
    outputPdf.write(outpdf)

エラー出力はこちら: http://pastebin.com/0m38zhjQ

GitHub の PyPDF2 を使用した場合も同様のエラーが発生します。pdftk は、この pdf を他の pdf と同じように処理できます。書き込みは失敗しますが、読み取りは問題なく動作するようです。

少なくとも、そのエラーの原因となっている pdf の正確な部分を教えていただけますか? 回避策はさらに良いでしょう:)

4

1 に答える 1

1

PyPDF2 のバグのようです。このセクションでは:

if string.startswith(codecs.BOM_UTF16_BE):
    retval = TextStringObject(string.decode("utf-16"))
    retval.autodetect_utf16 = True

(0xFE, 0xFF) で始まる文字列はすべて UTF-16 としてデコードできると想定しています。あなたのファイルには、そのように始まるバイト文字列が含まれていますが、無効な UTF-16 が含まれています。

最も簡単な修正は、それをコメントアウトしてif無条件に# This is probably a big performance hit hereブランチを使用することです。

于 2013-03-28T14:04:22.747 に答える