从另一个PDF替换至少100个PDF格式的页面

2024-04-27 04:03:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个代码示例,

import PyPDF2
import numpy as np
# creating a pdf file object
pdfFileObj = open('original.pdf' , 'rb')

pdfFileObj_1 = open('tutorial.pdf', 'rb')
# creating a pdf reader object
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pdfReader_1 = PyPDF2.PdfFileReader(pdfFileObj_1)
# creating a pdf writer object for new pdf
pdfWriter = PyPDF2.PdfFileWriter()
for i in range(100):
    page= pdfReader.getPage(i)
    page_1= pdfReader_1.getPage(i)
    pdfWriter.addPage(page)
    pdfWriter.addPage(page_1)

#print(pdfWriter.getNumPages())
# new pdf file object
newFile = open('replaced_pdf_1.pdf', 'wb')


pdfWriter.write(newFile)

# closing the original pdf file object
pdfFileObj.close()
pdfFileObj_1.close()
# closing the new pdf file object
newFile.close()

我得到的错误是,

PdfReadWarning: Object 321 0 not defined. [pdf.py:1629] Traceback (most recent call last): File "test.py", line 22, in pdfWriter.write(newFile) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 482, in write self._sweepIndirectReferences(externalReferenceMap, self._root) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 571, in _sweepIndirectReferences self._sweepIndirectReferences(externMap, realdata) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 547, in _sweepIndirectReferences value = self._sweepIndirectReferences(externMap, value) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 571, in _sweepIndirectReferences self._sweepIndirectReferences(externMap, realdata) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 547, in _sweepIndirectReferences value = self._sweepIndirectReferences(externMap, value) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 556, in _sweepIndirectReferences value = self._sweepIndirectReferences(externMap, data[i]) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 571, in _sweepIndirectReferences self._sweepIndirectReferences(externMap, realdata) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 547, in _sweepIndirectReferences value = self._sweepIndirectReferences(externMap, value) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 577, in _sweepIndirectReferences newobj = data.pdf.getObject(data) File "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", line 1631, in getObject raise utils.PdfReadError("Could not find object.") PyPDF2.utils.PdfReadError: Could not find object.

我从更改添加到PdfFileWriter对象pdfWriter的页数中了解到的。如果页面数超过5个,则显示上述错误。否则它工作正常。我需要回复超过100页…请大家帮忙。在


Tags: inpyselfhomepdfubuntulibpackages
1条回答
网友
1楼 · 发布于 2024-04-27 04:03:33

我在Windows10和RedHatEnterpriseLinux6上使用了这个示例代码。 在这两个平台上,我都使用了python2.7(我的工作站上没有python3.5)。 因为你没有提供原件.pdf以及教程.pdf,我用了2本pdf格式的电子书:分别是686页和1014页。在

我无法证实你的观察

对于范围(100)内的i:

替换为

对于范围(600)内的i:

我收到了1200页的输出pdf。在

相关问题 更多 >