with open(pdf,'rb') as fin:
reader = PyPDF2.PdfFileReader(fin)
new_pdf = PyPDF2.PdfFileWriter()
for i in range(reader.numPages):
new_pdf.addPage(reader.getPage(i))
out_file = pdf if not create_copy else self._new_copy(pdf)
with open(out_file,'wb') as fout:
new_pdf.write(fout)
这在编写副本时按预期工作。
现在让我们将最后三行移出with
:
with open(pdf,'rb') as fin:
reader = PyPDF2.PdfFileReader(fin)
new_pdf = PyPDF2.PdfFileWriter()
for i in range(reader.numPages):
new_pdf.addPage(reader.getPage(i))
out_file = pdf if not create_copy else self._new_copy(pdf)
with open(out_file,'wb') as fout:
new_pdf.write(fout)
这将创建一个具有正确页数的 pdf,但所有页面都是空白的,即使在写入新文件时也是如此。(请注意,移出new_pdf = ...
也不会改变任何事情)
为什么?我能做些什么呢?因为我希望最终必须将这三行移出第一行with
,以便提供覆盖支持。(除非我只是创建一个副本然后重命名,我有点想避免这种情况。)