zoukankan      html  css  js  c++  java
  • 办公自动化4_合并不同PDF文档以便一次批量打印或存档

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

    因为不懂,所以要学; 因为平凡,所以努力。 因为有为,所以有位。 因为执着,所以精彩。
  • 相关阅读:
    基于Dubbo的压测调优实例
    Rsync同步工具安装文档
    Codeforces 114A-Cifera(暴力)
    UVa 872
    Highcharts可拖动式图表
    Android中配置JDK和SDK的环境变量
    用CSS border相关属性画三角形
    屌丝程序猿赚钱之道 之APP
    软件开发工具(一)——概论
    建造者模式(屌丝专用)
  • 原文地址:https://www.cnblogs.com/quezesheng/p/13286015.html
Copyright © 2011-2022 走看看