处理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()