使用PyPDF2拆分大PDF速度慢且输出文件过大的问题求助
PyPDF2拆分PDF时的速度与体积问题
我尝试用PyPDF2将一份数百页的PDF按每50页拆分为多个文件,代码如下:
import os from PyPDF2 import PdfMerger, PdfReader, PdfWriter def split_pdf(filename, pages_per_file): # split pdf file every P pages reader = PdfReader(open(filename, "rb")) onlyname = os.path.splitext(filename)[0] n = 1 p0 = 0 while p0 < (len(reader.pages)): writer = PdfWriter() # writer case # writer = PdfMerger() # merger case p1 = min(p0 + pages_per_file, len(reader.pages)) for page in reader.pages[p0:p1]: writer.add_page(page) # writer case # writer.append(reader, pages=(p0, p1)) # merger case with open("%s_%d.pdf" % (onlyname, n), "wb") as outfile: writer.write(outfile) print('write to %s_%d.pdf' % (onlyname, n)) n += 1 p0 = p1 split_pdf('path/to/file.pdf', 50)
测试了PdfMerger和PdfWriter两种实现方式后,统计各代码块耗时:
writer.add_page()耗时约0.01秒,速度较快writer.append()耗时约30秒,writer.write()耗时20~30秒
现有两个疑问:
- 为什么
writer.append()和writer.write()这两个方法的耗时会这么久? - 生成的拆分文件体积几乎与原文件大小一致,但已确认每个文件确实只有50页,这是什么原因?
内容的提问来源于stack exchange,提问作者DSP novice
相关产品推荐
相关产品推荐

