项目场景:
信息检索可要求检索导师发表的所有文章,并将每篇文章的首页合并为一个PDF文件,还需要一个简单的目录。解决方式:
由于之前已将检索到的文章都下载在了文件夹中,因此对文件夹中的所有PDF文件进行读取: 首先需要导入pdfrw库中的PdfReader, PdfWriter,以及os模块。pip install pdfrw
from pdfrw import PdfReader, PdfWriter
import os
# PDF所在文件路径
path = r'E:/学习资料/其他/信息检索/英文/'
# 获取指定文件夹中所有PDF格式的文件名并合成文件路径
def findAllFile(path):
count = 0
# 在获取文件名时顺便将简单的目录做好
exfile = open(path+'目录.doc', 'w')
for root, ds, fs in os.walk(path):
for f in fs:
count = count + 1
if f.endswith('.pdf'):
fullname = os.path.join(root, f)
yield fullname
exfile.write(str(count) + '.' + f +'\n')
然后将每个PDF文件的首页依此加入到PdfWriter中,最后输出保存,以达到将首页拼接的效果
# 将每个PDF文件的首页依此加入到PdfWriter中,最后输出保存
def main():
output = path+'英文论文首页.pdf'
writer = PdfWriter()
for i in findAllFile(path):
pdf_obj = PdfReader(i)
writer.addpage(pdf_obj.pages[0])
writer.write(output)
if __name__ == '__main__':
# main函数是用来形成首页合集和目录的
main()
其他内容:
由于要将目录与首页合集整合在一个文件里,不知道在软件里咋整,就又用程序来处理了。
# 后面这些是将目录的pdf版本和生成的首页合集拼接起来的,可用可不用
output = path + '英文论文首页.pdf'
writer = PdfWriter()
pdf_obj = PdfReader(path + '目录.pdf')
total_pages = len(pdf_obj.pages)
for i in range(total_pages):
writer.addpage(pdf_obj.pages[i])
pdf_obj = PdfReader(output)
total_pages = len(pdf_obj.pages)
for i in range(total_pages):
writer.addpage(pdf_obj.pages[i])
writer.write(path + '英文论文合集.pdf')
后记:
只是个很小的技巧,应用面也很窄,可以当做Python进行PDF处理的一个入门小案例吧。仅作参考~分享出来做个小记录,希望能有点用。欢迎批评指正~