PDF文件合併器

2021-07-09 04:36:16 字數 3672 閱讀 2891

有一陣子沒有寫部落格了……

因為要考英語,所以前一段時間幾乎把所有手頭上的工作都放了下來,大概有兩個月沒有碰電腦了吧。說實話,我以前真的不敢相信兩個月不碰電腦是什麼感覺。

在俺閉關的時候親愛的網路安全老師布置了乙個非常「有趣」的實驗,並且必須要去交乙份所謂的報告。既然非得寫,我倒是也沒敷衍,熬了乙個通宵用markdown搞定了報告的正文部分。但給老師交報告總要有個像樣的封面吧,於是就有用其他軟體生成了乙個封面的pdf。

然後怎麼把這兩個pdf合併在一起就成為了主要的問題(分開列印再釘起來的方法我還真想過~~)幸運的是前人栽樹,後人乘涼。python有乙個pypdf的模組專門用來操作pdf檔案。於是就用這個模組寫了乙個小工具。

import sys

from pypdf import pdffilewriter, pdffilereader

defmergepdffiles

(outputfile, inputfiles):

output = pdffilewriter()

for inputfile in inputfiles:

print

'adding file' + inputfile

input = pdffilereader(file(inputfile, "rb"))

for page in input.pages:

output.addpage(page)

print

'all files added'

#from writer to file

outputstream = file(outputfile, "wb")

output.write(outputstream)

outputstream.close()

if __name__ == '__main__':

print

'merging pdf files...'

mergepdffiles("union.pdf", ["1.pdf","2.pdf"])

print

'merge completed'

使用的時候只需把需要合併的檔案放到與.py檔案同一目錄下,改名為1.pdf、2.pdf……即可生成合併後的union.py檔案。

那啥,一天後我手賤又寫了個介面,累死本寶寶了

#coding=utf-8

import sys

import os

import codecs

from pypdf import pdffilewriter, pdffilereader

from pyqt4 import qtgui ,qt ,qtcore

global filename1

global filename2

filename1 = " "

filename2 = " "

defcur_file_dir

():#獲取指令碼路徑

path = sys.path[0]

if os.path.isdir(path):

return path

elif os.path.isfile(path):

return os.path.dirname(path)

class

window

( qtgui.qwidget ):

def__init__

( self ):

super( window, self ).__init__()

self.setwindowtitle( "pdf tool" )

self.setfixedsize(180, 80)

gridlayout = qtgui.qgridlayout()

button1 = qtgui.qpushbutton( "part1" )

self.connect( button1, qtcore.signal( 'clicked()' ), self.onbutton1 )

gridlayout.addwidget( button1, 0, 0)

button2 = qtgui.qpushbutton( "part2" )

self.connect( button2, qtcore.signal( 'clicked()' ), self.onbutton2 )

gridlayout.addwidget( button2, 0, 1)

button3 = qtgui.qpushbutton( "merge" )

self.connect( button3, qtcore.signal( 'clicked()' ), self.mergepdffiles )

gridlayout.addwidget( button3, 1, 0, 1, 2 )

self.setlayout( gridlayout )

defonbutton1

(self):

global filename1

filename1 = self.on_openfile_clicked()

qtgui.qmessagebox.about( self, 'part1', "get: %s" % filename1 )

print (filename1)

defonbutton2

(self):

global filename2

filename2 = self.on_openfile_clicked()

qtgui.qmessagebox.about( self, 'part2', "get: %s" %filename2 )

print (filename2)

defmergepdffiles

(self):

global filename1

global filename2

output = pdffilewriter()

input = pdffilereader(file(filename1, "rb"))

for page in input.pages:

output.addpage(page)

input = pdffilereader(file(filename2, "rb"))

for page in input.pages:

output.addpage(page)

outputstream = file("union.pdf", "wb")

output.write(outputstream)

outputstream.close()

qtgui.qmessagebox.about( self, 'merge', "file merged!path:%s\union.pdf" % cur_file_dir())

print ("ok %s" % cur_file_dir())

defon_openfile_clicked

(self):

dlg = qtgui.qfiledialog(self)

self.filename = dlg.getopenfilename()

from os.path import isfile

if isfile(self.filename):

return self.filename

win = window()

win.show()

Latex 合併pdf文件

比較常用的乙個功能,mark一下 documentclass a4 usepackage begin includepdfmerge includepdfmerge includepdfmerge includepdfmerge end引入pdfpages包來做pdf合成,includepdfmer...

PDF格式文件怎樣合併分割

工作的時候天天都要處理各種文件,時間一長就累積了不少的文件需要處理,有時候需要對文件進行合併,有時候又需要對文件進行分割,普通的office文件大家都知道該怎麼操作,而像pdf這類的文件在操作上就和office文件不同了。步驟 合併pdf檔案是將多個pdf格式的檔案按順序合成乙個pdf檔案,首先開啟...

讀取PDF文件

coding utf 8 匯入開發包 frompdfminer.pdfparserimportpdfparser,pdfdocument frompdfminer.pdfinterpimportpdfresourcemanager,pdfpageinterpreter frompdfminer.pd...