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ラッパーを作成して誰でも使えるようなアプリケーションにすることを目指す。