Python中Pypdf包中的断言错误

时间:2011-12-01 17:14:44

标签: python pypdf

我在Windows平台上使用Python 2.4和PyPdf 1.13。 我正在尝试使用以下代码将列表中的PDF文件合并为一个:

import os
from pyPdf import PdfFileWriter, PdfFileReader

attached=["C:\\test\\T_tech.pdf","C:\\test\\00647165-Backup.pdf"]
output=PdfFileWriter()
maxpage=0

os.chdir("C:\\test")
name= attached[0]
name = os.path.basename(name).split('.')[0]

for nam in attached:
   input= PdfFileReader(file(nam,"rb"))  
   maxpage=input.getNumPages()
   for i in range(0,maxpage):
     output.addPage(input.getPage(i))

outputStream =file("Output-"+name+".pdf","wb")
output.write(outputStream)
outputStream.close()

运行此代码时出现以下错误。

  Traceback (most recent call last):
    File "C:\Python24\pdfmerge.py", line 13, in ?
       input= PdfFileReader(file(nam,"rb"))
    File "C:\Python24\Lib\site-packages\pyPdf\pdf.py", line 374, in __init__
       self.read(stream)
    File "C:\Python24\Lib\site-packages\pyPdf\pdf.py", line 847, in read
       assert False
  AssertionError

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

来自消息来源:

            # bad xref character at startxref.  Let's see if we can find
            # the xref table nearby, as we've observed this error with an
            # off-by-one before.
            stream.seek(-11, 1)
            tmp = stream.read(20)
            xref_loc = tmp.find("xref")
            if xref_loc != -1:
                startxref -= (10 - xref_loc)
                continue
            else:
                # no xref table found at specified location
                assert False
                break

你正在击中后者“找不到交叉参考表......”的情况。尝试修补源代码,省略断言并查看它是否仍然有效。