pdfファイルをマージするアプリケーション(1)
これまで、複数のpdfファイルをまとめて一つのファイルとするためには、Adobe Acrobatを使うしかないと思っていた。数年前には、そのためだけにわざわざAcrobatを買ったこともある。
しかし、pythonのライブラリpyPdf(http://pybrary.net/pyPdf/)を使えばできそうだ、ということに気づいた(というよりもpyPdfは、pdfファイルの一部を取り出したりマージしたりということに特化された、まさにこの目的のためのライブラリか)。そこで、とりあえずWindows版をインストールしてテストしてみる。
二つのpdfファイルをマージして一つのファイルにするには、以下のようにすればいいようだ。
from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() input1 = PdfFileReader(file("file1.pdf", "rb")) num1 = input1.getNumPages() # ページ数を記録 input2 = PdfFileReader(file("file2.pdf", "rb")) num2 = input2.getNumPages() # ページ数を記録 for i in xrange(num1): # 1ページずつ出力する output.addPage(input1.getPage(i)) for i in xrange(num2): output.addPage(input2.getPage(i)) outputStream = file("mergedfile.pdf", "wb") # 出力ファイル名 output.write(outputStream) outputStream.close()
addPage(ページ番号)で、指定したページ番号のページをoutputに渡しているようだ。複数のページを一気に渡すことはできなさそうなので、ここではfor文で1ページずつ渡すことにする。
これで複数のファイルの単純な結合はうまくいくようだ。
次は、これのGUIラッパーを作成して誰でも使えるようなアプリケーションにすることを目指す。