python合并PDF文件

原创 2015年11月04日 20:19:49

今天群里有个人提了这么一个需求:不同文件夹下的同名PDF能不能合并。

这个其实很简单我写了代码实现了。就是把同名文件先收集起来,然后形式一个同名文件的列表(全路径不一样,文件名一样),然后再把这个列表中的文件合并成一个PDF文件写到一个总的目录中,好了直接上代码吧。



#coding=utf-8
import os
import os.path
from pyPdf import PdfFileReader,PdfFileWriter

class MergePDF():
    def __init__(self):
        self.pdf_name = ""
        self.pdf_list = []

    def Merge(self):
        out = PdfFileWriter()

        for i in range(len(self.pdf_list)):
            src_pdf = self.pdf_list[i]
            pdf = PdfFileReader(file(src_pdf, 'rb'))

            for page in pdf.pages:
                out.addPage(page)

        ous = file("C:/test_merge/Merge/"+self.pdf_name,'wb')
        out.write(ous)
        ous.close()

class Opt():
    def __init__(self):
        self.srcfolderlist = []
        self.dstfolder = ""

        self.OptList = {}

    def add_srcfolder(self,srcfolder):
        self.srcfolderlist.append(srcfolder)

    def add_dstfolder(self,dstfolder):
        self.dstfolder = dstfolder

    def deal(self):
        foldernum = len(self.srcfolderlist)
        for i in range(foldernum):
            folder = self.srcfolderlist[i]
            for parent,dirnames,filenames in os.walk(folder):
                for filename in filenames:
                    self.createOpt(filename,parent + "/" + filename)

    def createOpt(self,filename,fullname):
        isexist_key = self.OptList.has_key(filename)

        if isexist_key == False :
            m = MergePDF()
            m.pdf_name = filename
            m.pdf_list.append(fullname)
            self.OptList[filename] = m
        else:
            m = self.OptList[filename]
            m.pdf_list.append(fullname)


    def doMerge(self):
        for key,obj in self.OptList.items():
            obj.Merge()

if __name__ == "__main__":
    optObj = Opt()
    optObj.add_srcfolder("C:/test_merge/1")
    optObj.add_srcfolder("C:/test_merge/2")
    optObj.add_srcfolder("C:/test_merge/3")
    optObj.add_srcfolder("C:/test_merge/4")
    optObj.add_srcfolder("C:/test_merge/5")
    optObj.add_srcfolder("C:/test_merge/6")

    optObj.deal()
    optObj.doMerge()

备注:C:\test_merge 这里里面是6个目录,每个目录下有PDF文件。


然后合并后的文件是在C:\test_merge\Merge目录中。

用到了pyPdf这个读写PDF的库。

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何将多张图片合并成一个PDF文件

有的时候我们在整理文件时需要将纸质版的扫描成电子版,但是扫描得到的文件为一张张独立的图片,不方便阅读和管理,因此比较好的办法是将这一些列图片合并整理成一个PDF文件。...
  • Firewall5788
  • Firewall5788
  • 2017年06月08日 07:59
  • 6817

C# 将多个office文件转换及合并为一个PDF文件

PDF文件介绍PDF(Portable Document Format )文件源于20世纪90年代初期,如今早已成为了一种最流行的的文件格式之一。因为PDF文件有很多优点: 支持跨平台和跨设备共享 可...
  • Eiceblue
  • Eiceblue
  • 2015年11月03日 15:16
  • 2514

itext合并两个PDF流

java使用itext合并pdf文件 转发 使用itext合并pdf文件很简单,首先需要创建要合并pdf文件的InputStream对象,然后调用MergePDF.concatPDF()静态方法。...
  • qq_32566703
  • qq_32566703
  • 2017年04月11日 19:25
  • 2250

Python 深入浅出 - PyPDF2 处理 PDF 文件

实际应用中,可能会涉及处理 pdf 文件,PyPDF2 就是这样一个库,使用它可以轻松的处理 pdf 文件,它提供了读,割,合并,文件转换等多种操作。 文档地址:http://pythonhoste...
  • xingxtao
  • xingxtao
  • 2018年01月14日 14:04
  • 31

利用Python将word 2007的文档转为pdf文件

在开发过程中,会遇到在命令行下将DOC文档(或者是其他Office文档)转换为PDF的要求。比如在项目中如果手册是DOC格式的,在项目发布时希望将其转换为PDF格式,并且保留DOC中的书签,链接等。将...
  • rumswell
  • rumswell
  • 2012年04月07日 02:30
  • 9382

Python PDF 文件解析及二次处理 实例

Python开源的组件完全可以完成PDF文件的各种需求。 以下代码完成对 PDF中化学分子式的区域标记,后期可以把这一区域中的所有对象转换成一张图片,以便转换成其它文档如WORD,HTML时这些化学公...
  • qffhq
  • qffhq
  • 2013年10月29日 11:15
  • 1429

Python生成PDF文件(1)

如何将文档转变为 PDF 文件举例ReportLab 为了方便生成文档提供了一种叫PLATYPUS(Page Layout and Typography Using Scripts)的一系列的模板类,...
  • xiong_1987427
  • xiong_1987427
  • 2017年11月03日 11:16
  • 130

java调用批处理bat文件调用python pdfkit把动态html转pdf

项目中用到生成pdf征信报告的需求,最近尝试了好多方法 1.传统的方法,使用pdfbox itext方法,生成的pdf不仅难看,而且不容易控制 2.freemarker技术,首先创建个word模板...
  • qq_26562641
  • qq_26562641
  • 2017年05月25日 17:28
  • 440

Python绘制PDF文件~超简单的小程序

这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件。偶尔编个小程序来放松下自己~走过路过,戳进来看一下~...
  • shiyanlou_chenshi
  • shiyanlou_chenshi
  • 2015年01月06日 14:20
  • 613

python中解析和生成pdf文件

python中可以对pdf文件进行解析和生成,分别需要安装pdfminer/pdfminer3k和reportlab文件库。 一、pdf文件的解析 pdfminer安装文件路径,分别使用于python...
  • DreamBitByBit
  • DreamBitByBit
  • 2017年05月31日 22:47
  • 872
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python合并PDF文件
举报原因:
原因补充:

(最多只允许输入30个字)