参考pyPdf的主页,下面是我写了一个简单的实现代码,简单的不能再简单了,哈!
# -*- coding: gbk -*-
import sys
import os
from pyPdf import PdfFileWriter, PdfFileReader
# 这里简化了,可以使用walk,搜索出某目录下的全部pdf文件,再处理
# 下面这样处理的好处是,可以按顺序读取源pdf中的页面
pdf_filePath="D:\\pdf\\"
pdf_fileName=["11","12","13","14","15","16","17","18","19","20"]
output=PdfFileWriter()
outputPages=0
for filename in pdf_fileName:
# 读取源pdf文件
p=pdf_filePath+filename+".pdf"
input=PdfFileReader(file(p,"rb"))
# 如果pdf文件已经加密,必须首先解密才能使用pyPdf
if input.isEncrypted == True:
input.decrypt("map")
# 获得源pdf文件中页面总数
pageCount=input.getNumPages()
outputPages+=pageCount
print pageCount
# 分别将page添加到输出output中
for iPage in range(0,pageCount):
output.addPage(input.getPage(iPage))
print "All Pages Number:"+str(outputPages)
# 最后写pdf文件
outputStream=file("D:\\pdf\\out.pdf","wb")
output.write(outputStream)
outputStream.close()
print "finished"
上面代码也没什么好解释的,需要注意的是,如果pdf文件加密的话,必须首先调用decrypt进行解密。去掉pdf文件中加密信息的方法很多,网上有很多小工具,推荐一款:Adult PDF Password Recovery。哪位有兴趣可以自己写一个去掉pdf文件中加密信息的工具,哈!