为了账号安全,请及时绑定邮箱和手机立即绑定

拆分 PDF 的特定页面并使用 Python 保存

拆分 PDF 的特定页面并使用 Python 保存

江户川乱折腾 2022-01-05 20:01:30
我正在尝试将 20 页的 pdf 文件(单个)拆分为五个各自的 pdf 文件,第 1 个 pdf 包含 1-3 页,第 2 个 pdf 文件仅包含第 4 页,第 3 个 pdf 包含 5 到 10 页,第 4 个 pdf 包含 11-17页,第 5 个 pdf 包含 18-20 页。我需要python中的工作代码。下面提到的代码将整个 pdf 文件拆分为单个页面,但我想要分组页面..    from PyPDF2 import PdfFileWriter, PdfFileReader    inputpdf = PdfFileReader(open("input.pdf", "rb"))    for i in range(inputpdf.numPages):    j = i+1        output = PdfFileWriter()    output.addPage(inputpdf.getPage(i))    with open("page%s.pdf" % j, "wb") as outputStream:    output.write(outputStream)
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

对我来说,它看起来像是pdfrw使用GitHub 上的这个例子的任务,我编写了以下示例代码:


from pdfrw import PdfReader, PdfWriter

pages = PdfReader('inputfile.pdf').pages

parts = [(3,6),(7,10)]

for part in parts:

    outdata = PdfWriter(f'pages_{part[0]}_{part[1]}.pdf')

    for pagenum in range(*part):

        outdata.addpage(pages[pagenum-1])

    outdata.write()

这一次创建两个文件:pages_3_6.pdf和pages_7_10.pdf每3页,即3,4,5和7,8,9。注意pagenum-1在代码中,-1用于因事实PDF页面记数开始于1而不是0。我还使用所谓的 f-strings 来获取输出文件的名称。在我看来,这是一种巧妙的方法,但它在 Python2 中不可用,而且我不确定它是否在所有 Python3 版本中都可用(我在 中测试了我的代码3.6.7),因此如果您愿意,可以改用旧的格式化方法。请记住根据您的需要更改文件名和范围。


查看完整回答
反对 回复 2022-01-05
  • 1 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号