pdf合并(拼接)——Python工具之pdf合并(拼接)

写一下为什么选择了PyPDF:

使用PyPDF库,该库是目前正在持续更新的,以下截图时间为2023/12/9。pypdf 是一个免费的开源纯 python PDF 库,能够拆分合并裁剪转换 PDF 文件的页面。它还可以向 PDF 文件添加自定义数据查看选项密码。pypdf 也可以从 PDF 中检索文本元数据

以前用的比较多的是PyPDF2和后来出现的PyPDF4。PyPDF2是最初从PyPDF发展起来的,而现在pypdf2的最后更新版本又明确提示:PyPDF2项目要回归其本源了,PyPDF2==3.0.X将会是PyPDF2的最后一系列版本,将来的版本从PyPDF==3.1.0开始。也就是说从3.1.0版本开始,该项目重新使用PyPDF这一最初使用的名字。

PyPDF4最后版本1.27.0更新是2018年,其后一直再更新,不知道是不是版本已经很稳定不需要更新,还是也无人继续维护了。

使用方法:

基本例子

from pypdf import PdfWriter

merger = PdfWriter()

for pdf in ["file1.pdf", "file2.pdf", "file3.pdf"]:
    merger.append(pdf)

merger.write("merged-pdf.pdf")
merger.close()

更多合并(拼接)选项

from pypdf import PdfWriter

merger = PdfWriter()

input1 = open("document1.pdf", "rb")
input2 = open("document2.pdf", "rb")
input3 = open("document3.pdf", "rb")

# 将第一个文件的前三页添加到输出文件中
merger.append(fileobj=input1, pages=(0, 3))

# 将第二个文件的第一页插入到输出文件的第二页后面
merger.merge(position=2, fileobj=input2, pages=(0, 1))

# 将全部第三个文件内容放在输出文件最后
merger.append(input3)

# 写入保存输出PDF文件
output = open("document-output.pdf", "wb")
merger.write(output)

# 关闭文件描述符
merger.close()
output.close()

append的用法

writer = PdfWriter()

# 附加源文件的前10页
writer.append("source.pdf", (0, 10))

# 添加reader文件中的第1页和第10页并创建大纲
writer.append(reader, "page 1 and 10", [0, 9])

如果要在目标位置的中间插入页面,请使用 merge(提供(插入)位置)。如有必要,甚至可以使用基于列表的语法多次插入同一页面:

writer.append(reader, [0, 1, 0, 2, 0])

执行上面语句将插入第 1 页和第 2 页,在之前、中间和之后插入第 0 页。

猜你喜欢

转载自blog.csdn.net/syluxhch/article/details/134901419