我试图合并两个PDF文件。但是在装载第一个时已经出现了错误。
我使用以下代码:
from PyPDF2 import PdfFileWriter, PdfFileReader
pdf_writer = PdfFileWriter()
for file in files:
pdf_reader = PdfFileReader(file)
for page in range(pdf_reader.getNumPages()):
....
没什么特别的。但是在第5行中,我已经收到以下错误:
>---------------------------------------------------------------------------
>PdfReadError Traceback (most recent call last)
<ipython-input-11-dfb68038ddd0> in <module>
4 for file in files:
5 pdf_reader = PdfFileReader(file)
----> 6 for page in range(pdf_reader.getNumPages()):
7 pdf_writer.addPage(pdf_reader.getPage(page))
8
>C:\Miniconda3\envs\wc_test\lib\site-packages\PyPDF2\pdf.py in getNumPages(self)
1153 else:
1154 if self.flattenedPages == None:
-> 1155 self._flatten()
1156 return len(self.flattenedPages)
1157
>C:\Miniconda3\envs\wc_test\lib\site-packages\PyPDF2\pdf.py in _flatten(self, pages, inherit, indirectRef)
1503 if pages == None:
1504 self.flattenedPages = []
-> 1505 catalog = self.trailer["/Root"].getObject()
1506 pages = catalog["/Pages"].getObject()
1507
>C:\Miniconda3\envs\wc_test\lib\site-packages\PyPDF2\generic.py in __getitem__(self, key)
514
515 def __getitem__(self, key):
--> 516 return dict.__getitem__(self, key).getObject()
517
518 ##
>C:\Miniconda3\envs\wc_test\lib\site-packages\PyPDF2\generic.py in getObject(self)
176
177 def getObject(self):
--> 178 return self.pdf.getObject(self).getObject()
179
180 def __repr__(self):
>C:\Miniconda3\envs\wc_test\lib\site-packages\PyPDF2\pdf.py in getObject(self, indirectReference)
1607 # some other problem
1608 raise utils.PdfReadError("Expected object ID (%d %d) does not match actual (%d %d)." \
-> 1609 % (indirectReference.idnum, indirectReference.generation, idnum, generation))
1610 assert generation == indirectReference.generation
1611 retval = readObject(self.stream, self)
>PdfReadError: Expected object ID (1 0) does not match actual (3 1).
我不知道此pdf文件出了什么问题,它可以在其他相同的PDF上使用。 搜索答案并不能使我理解这里出了什么问题,实际上我仍然一无所知。但是,使用Adobe Reader Pro合并PDF可以正常工作...没有错误,但是我需要自动合并许多文件。欢迎任何帮助。
已解决
我使用文本编辑器打开了有问题的PDF,并与工作中的PDF进行了比较。前两行是引起此错误的新行(\ n)。我只是删除了它们并保存了pdf-> working。但是,此问题归因于我在Wordpress中使用的插件的更新。
答案 0 :(得分:1)
没有看到有问题的PDF,很难对可能出问题的地方发表评论。
通常,PDF库的后台会进行更多的错误检查,而PDF库是为Adobe Acrobat提供支持的工具包,因此文档可能会遇到错误消息所建议的问题并在内部进行处理。这些文档也可能没有什么问题,仅仅是python库中的一个错误,您应该向作者提交错误报告。
我公司有一个免费的工具,可以帮助您查找名为PDF Checker的PDF文档。