-- coding: utf-8 --
"""
Created on Sat Jul 11 21:13:48 2020
@author: Administrator
"""
############ 实例4:合并不同PDF文档以便一次批量打印或存档 ########################
'''
按如下步骤来进行读取和写入:
- 打开PDF文件,得到一个“读取”对象。读取对象相当于是盛装这个PDF文件内容的容器。
2.创建一个 “写入” 对象,相当于另一个容器,用于向其中转移上一个步骤读取出来的内容。
3.将页面从 “读取” 容器倒入 “写入” 容器之中。
4.待“写入”容器装完所有需要的内容后,写入并输出新的 PDF。
'''
import PyPDF2 #可从PDF文档提取信息 #若未安装PyPDF2
,可运行"cmd.exe",输入"pip install PyPDF2",请注意PyPDF2有大小写要求,不然无法安装。
import os #用于获取需要合并的PDF文件所在路径
path="data/" # 文件夹路径
1.获取需要用于合并的文件名及路径
files=[]
for file in os.listdir(path): #如果文件夹内有非pdf文件,也会被获取。
if file.endswith(".pdf"): #排除文件夹内的其它干扰文件,只获取PDF文件
files.append(path+file)
2.获取每个PDF文件里面需要的信息并添加到写入文件
pdf_writer=PyPDF2.PdfFileWriter() #就是用于装待写入文件的容器
for file in files:
pdf_obj=open(file,'rb')# 以二进制读取,将保留PDF中的所有信息
pdf_reader=PyPDF2.PdfFileReader(pdf_obj)
for page_num in range(1,pdf_reader.numPages): #因为range是从0索引开始,因此1代表第二页
page_obj=pdf_reader.getPage(page_num) #pdf_reader.getPage(page_num)可获得其中每页的信息,我们将它存入page_obj容器。
pdf_writer.addPage(page_obj) #使用addPage方法pdf_writer.addPage(page_obj)将page_obj中的信息放入最开始的pdf_writer容器中。
3.写入并保存汇总PDF文件
pdf_output_file=open("datacombined_inv.pdf",'wb') #以二进制写入,将保留源PDF中的所有信息
pdf_writer.write(pdf_output_file)
pdf_output_file.close()
print("succed")