在Python中使用pikepdf将pdf拆分为多个页面

问题描述 投票:0回答:1

我需要将 pdf 文件拆分为用户指定的页面组。例如,我有一个 20 页的 pdf,我想将其分成 5 页一组。输出将是 4 个 pdf,每个 5 页。

我阅读了 pikepdf 文档,它只能将其拆分为一页,所以我将有 20 个单页 pdf。

 pdf = Pdf.open('../tests/resources/fourpages.pdf')

 for n, page in enumerate(pdf.pages):
 dst = Pdf.new()
 dst.pages.append(page)
 dst.save(f'{n:02d}.pdf')

这是pikepdf文档的代码。我让它工作了,但正如之前所说,输出只是单页 pdf。我尝试用嵌套 while 对其进行一些更改,但没有成功。 我认为它不允许拆分超过一页,这很奇怪。也许有一些明显的事情我没有看到。 我考虑过将其拆分为单页,然后根据所需的页面数量再次合并它,但这似乎不是很理想。

目前我不允许使用除 pikepdf 之外的其他库。有没有办法实现这个目标?

提前致谢。

python pdf split pikepdf
1个回答
0
投票

您可以通过每次迭代实例化对象来添加多个页面。
示例:如果您想将 3 页 pdf 拆分为:
pdf1 第 1 页和第 2 页
pdf2 第 3 页

dst = Pdf.new()

for n, page in enumerate(pdf.pages):
  if n < 2:
    dst.pages.append(page)
  elif n == 2:
    dst.save('pdf1.pdf')
    # reinstanciate object to get only the 3d page
    dst = Pdf.new()
    dst.pages.append(page)
    dst.save('pdf2.pdf')
© www.soinside.com 2019 - 2024. All rights reserved.