码迷,mamicode.com
首页 > 其他好文 > 详细

办公自动化4_合并不同PDF文档以便一次批量打印或存档

时间:2020-07-12 01:09:01      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:listdir   合并   odi   批量   out   read   ges   其它   自动   

-- coding: utf-8 --

"""
Created on Sat Jul 11 21:13:48 2020

@author: Administrator
"""
############ 实例4:合并不同PDF文档以便一次批量打印或存档 ########################
‘‘‘
按如下步骤来进行读取和写入:

  1. 打开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("data\combined_inv.pdf",‘wb‘) #以二进制写入,将保留源PDF中的所有信息
pdf_writer.write(pdf_output_file)
pdf_output_file.close()
print("succed")

办公自动化4_合并不同PDF文档以便一次批量打印或存档

标签:listdir   合并   odi   批量   out   read   ges   其它   自动   

原文地址:https://www.cnblogs.com/quezesheng/p/13286015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!