我在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
非常感谢任何帮助。
答案 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
你正在击中后者“找不到交叉参考表......”的情况。尝试修补源代码,省略断言并查看它是否仍然有效。