Python处理PDF文档 合并两个PDF文档 和 截取指定页面

处理PDF的类库

命令行中使用 pip install PyPDF2 来安装相关的类库PyPDF2,这个类库可以用来合并,分割以及叠加不同的PDF文件,操作非常简便,而且可以处理很大的文件。

PyPDF2用法

# 使用PdfFileReader方法获取一个输入的PDF文档对象
f=open("File.pdf","rb")
pdf=PyPDF2.PdfFileReader(f)

# 输入的PDF文档对象的numPages属性指出PDF文档有多少页
pgNmb=pdf.numPages

# 输出文档对象的建立用PyPDF2.PdfFileWriter()方法,其中不用传递参数
pdfNew=PyPDF2.PdfFileWriter()

# 单页的对象获取(后可用来添加到其他文档中),使用输入文档对象的getPage(pgNbr)方法,参数是页码数(从0开始)
pdf.getPage(i)

# 把单页文档添加到输出文档对象中
for i in range(pgNmb):
    pdfNew.addPage(pdf.getPage(i))

# 将输出文档对象进行输出到指定文件,使用输出文档对象的write方法,参数是一个用open打开的可写入的文件
fWrt=open(nmMerged,"wb")
pdfNew.write(fWrt)

代码

合并两个PDF文档

使用方法 py PDFCombiner.py File.pdf File2.pdf [Output.pdf]

import PyPDF2
import sys

if len(sys.argv)<3:
    print("File.pdf File2.pdf [OutputPDF.pdf]")
    sys.exit()
else:
    nmFl= sys.argv[1]
    nmFl2=sys.argv[2]
    # print("nmFl:",nmFl)
    # print("nmFl2:",nmFl2)
    if len(sys.argv)==4:
        nmMerged=sys.argv[3]
    else:
        nmMerged="Merged_"+nmFl


f=open(nmFl,"rb")
f2=open(nmFl2,"rb")


pdf=PyPDF2.PdfFileReader(f)
pdf2=PyPDF2.PdfFileReader(f2)

pg=pdf.numPages
pg2=pdf2.numPages

pdfNew=PyPDF2.PdfFileWriter()

for i in range(pg):
    pdfNew.addPage(pdf.getPage(i))

for i in range(pg2):
    pdfNew.addPage(pdf2.getPage(i))

fWrt=open(nmMerged,"wb")

pdfNew.write(fWrt)

fWrt.close()
f.close()
f2.close()

在这里插入图片描述
出现异常的提示,忽略即可。

截取PDF文档的指定页面

使用方法 py PDFSplitter.py Fild.pdf StartPage EndPage [Output.pdf]

import PyPDF2
import sys

if len(sys.argv)<4:
    print("File.pdf StartPage EndPage [OutputPDF.pdf]")
    sys.exit()
else:
    nmFl= sys.argv[1]
    pgStrt=int(sys.argv[2])
    pgEnd = int(sys.argv[3])
    if (sys.argv==4):
        nmSplited="Splited_"+nmFl
    else:
        nmSplited=sys.argv[4]


f=open(nmFl,"rb")

pdf=PyPDF2.PdfFileReader(f)

pg=pdf.numPages

pdfNew=PyPDF2.PdfFileWriter()

for i in range(pgStrt-1,pgEnd):
    pdfNew.addPage(pdf.getPage(i))


fWrt=open(nmSplited,"wb")

pdfNew.write(fWrt)

fWrt.close()
f.close()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用 PyPDF2 这个 Python 库来合并两个 PDF 文件。这个库可以让你读取、写入和操作 PDF 文件的各个部分,例如页面、书签、链接、元数据等等。 以下是一个简单的例子来演示如何使用 PyPDF2 来合并两个 PDF 文件: ```python import PyPDF2 pdf1_file = open('file1.pdf', 'rb') pdf2_file = open('file2.pdf', 'rb') pdf1_reader = PyPDF2.PdfFileReader(pdf1_file) pdf2_reader = PyPDF2.PdfFileReader(pdf2_file) pdf_writer = PyPDF2.PdfFileWriter() # 将第一个 PDF 文件的每一页添加到写入器中 for page_num in range(pdf1_reader.getNumPages()): pdf_writer.addPage(pdf1_reader.getPage(page_num)) # 将第二个 PDF 文件的每一页添加到写入器中 for page_num in range(pdf2_reader.getNumPages()): pdf_writer.addPage(pdf2_reader.getPage(page_num)) # 将合并后的 PDF 文件写入磁盘 output_file = open('merged_file.pdf', 'wb') pdf_writer.write(output_file) # 关闭文件 pdf1_file.close() pdf2_file.close() output_file.close() ``` 在这个例子中,我们打开了两个 PDF 文件 `file1.pdf` 和 `file2.pdf`,然后遍历每一页,将它们依次添加到一个新的 PDF 写入器中。最后,我们将合并后的 PDF 文件写入到磁盘上的一个新文件 `merged_file.pdf` 中。 需要注意的是,PyPDF2 并不支持所有类型的 PDF 文件。一些较旧的 PDF 文件可能会出现问题,而一些较新的 PDF 文件可能会使用一些特殊的功能,PyPDF2 也无法处理。如果你遇到了这些问题,你可能需要寻找其他的 PDF 处理库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoseZang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值