2016-11-09

PowerShellでPDFファイルを結合する

PDFファイルは様々な場面で登場します。
複数のPDFファイルを1つにまとめたいと思ったことがある方は非常に多いのではないでしょうか。

巷にはPDFファイルを操作するフリーソフトはたくさんありますが、わざわざダウンロードしなくてもPowerShell(とiTextSharp)があれば簡単な操作は可能です。

ここでは「PowerShellでPDFファイルを結合する方法」をご紹介します。

※事前に iTextSharp.dll を入手しておく必要がありますので、各自ダウンロードをお願いします。
以下、スクリプトです。
## PowerShellからiTextSharpを使用したPDFファイルの結合

# iTextSharpの読み込み
[System.Reflection.Assembly]::LoadFrom("D:\itextsharp.dll")

# pdfファイルの指定
$pdf1 = New-object iTextSharp.text.pdf.pdfreader("C:\Users\user001\Desktop\001.pdf")
$pdf2 = New-object iTextSharp.text.pdf.pdfreader("C:\Users\user001\Desktop\002.pdf")

# 新しいPDFファイル
$new_pdf = New-Object System.IO.FileStream("C:\Users\user001\Desktop\new_pdf.pdf", [System.IO.FileMode]::OpenOrCreate)

# 結合後ファイルに読み込んだpdfファイルのコピーを追加する
$copy = New-Object iTextSharp.text.pdf.PdfCopyFields($new_pdf)
$copy.AddDocument($pdf1)
$copy.AddDocument($pdf2)

# 後片付け
$copy.Close()
$new_pdf.Close()
$pdf1.Close()
$pdf2.Close()

続いて解説です。