使用场景
软件学报论文录用的收尾工作中,需要提交所有参考文献首页的电子版压缩包(以文献序号作为文件名)
,也就是说,我一篇综述论文90+篇文献,需要逐一找到这些文献的pdf原版(现存电脑中的已经被我批注过了),然后逐一提取出pdf的第一页,这两件事情中,第一件事情较为复杂(因为所需论文的发表期刊/会议需要与引用一致),而第二件更简单且更耗时,所以付诸于程序
python批量提取pdf的第一页
from PyPDF2 import PdfFileReader, PdfFileWriter
import os
def pdf_split_3(pdf_dir, output_dir, begin_idx, end_idx):
for i in range(begin_idx, end_idx+1): # 所有要遍历的pdf文件
pdf_input = os.path.join(pdf_dir, '{}.pdf'.format(i))
pdf_output = os.path.join(output_dir, '{}.pdf'.format(i))
with open(pdf_input, 'rb') as open_pdf:
pdf_reader = PdfFileReader(open_pdf)
pdf_writer = PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(0))
with open(pdf_output, 'ab') as out:
pdf_writer.write(out)
if __name__ == '__main__':
pdf_dir = '/data4/wangyan/pdf' # 所有pdf文件所在目录,默认其中的文件按照begin_idx到end_idx命名的,如1.pdf
output_dir = '/data4/wangyan/pdf_firstpage' # 所有pdf第一页的计划输出目录
begin_idx = 1 # 第一篇文献序号
end_idx = 92 # 最后一篇文献序号
pdf_split_3(pdf_dir, output_dir, begin_idx, end_idx)