こんにちは!Takuya.B(@TB_IQ)です。
先日、業務で大容量のPDFファイルをページごとに分割して欲しいという依頼がありました。
数ページに分割する程度であれば、印刷のプレビューでページ範囲を指定してPDF出力で済みますが、例えば、数十ページのファイルを1ページずつ分割する場合などは骨が折れます。
そこで便利なのが pdfseparate
コマンド。PDFファイルを1ページずつ分割してくれます。
また、逆に複数のPDFを1枚に連結する pdfunite
コマンドというものもあります。
本日はPDFを分割・連結するためのpdfseparate、pdfuniteコマンドの使い方をご紹介します!
スポンサーリンク
Contents
popplerをインストールする
pdfseparate
, pdfunite
コマンドを使用するためには、 poppler
をインストールする必要があります。インストールにはHomebrewを使用します。
$ brew install poppler
たったのこれだけです!
Homebrewのインストールがまだの方は以下の記事を参考にインストールしてください。
pdfseparate コマンドの使い方
書式
$ pdfseparate <オプション> <元ファイル名> <出力ファイル名>
基本の使い方
# 例①
$ pdfseparate hoge.pdf page-%d.pdf
# 出力ファイル名: page-1.pdf, page-2.pdf, ...
# 例②
$ pdfseparate hoge.pdf out%d.pdf
# 出力ファイル名: out1.pdf, out2.pdf, ...
出力ファイル名には必ず %d
を含める必要があります(含めないとエラーになります)。この %d
には元ファイルのページ番号が出力されます。
範囲を選択して分割する方法
分割したい範囲を選択することもできます。範囲を選択するには -f
オプションと -l
オプションを使用します。
以下、範囲を指定して分割したい場合の例です。
# 2ページ目から4ページ目まで1ページずつPDFを分割する
$ pdfseparate -f 2 -l 4 hoge.pdf page-%d.pdf
# 出力ファイル名: page-2.pdf, page-3.pdf, page-4.pdf
出力する数字を0埋めする場合
出力ファイル名に含まれるページ番号の数字は0埋めすることが可能です。
ページ番号を出力する %d
を次のように変更することで任意の数で0埋めすることができます。
# 例1
$ pdfseparate hoge.pdf page-%02d.pdf
# 出力ファイル名: page-01.pdf, page-02.pdf, ...
# 例2
$ pdfseparate hoge.pdf page-%03d.pdf
# 出力ファイル名: page-001.pdf, page-002.pdf, ...
スポンサーリンク
pdfunite コマンドの使い方
書式
$ pdfunite <元ファイル名1> <元ファイル名前2> ... <元ファイル名n> <保存ファイル名>
PDFを連結する方法
PDFを連結するには pdfunite
コマンドを使います。
pdfunite
のあとに連結したい順番でファイル名を入力し、最後に出力ファイル名を入力するだけです。
$ pdfunite hoge.pdf fuga.pdf piyo.pdf output.pdf
連番をまとめて結合したい場合
連結したいファイルの数が膨大になってくると、前項の方法だと面倒です。
そこで、連結したいファイル名が連番の場合などは、それらをまとめて連結することもできます。
# pdfunite page-1.pdf page-2.pdf page-3.pdf output.pdf
# 連番の場合は次のようにすると楽
$ pdfunite page-[1-3].pdf out.pdf
スポンサーリンク
あとがき
今日はコマンドでPDFを分割・連結する方法としてpdfseparate
, pdfunite
コマンドについてご紹介しました。
pdfseparate
は1ページずつしかファイルを分割できないっぽいので、例えば2ページずつファイルを分割などはできません。
そこでパイプを使ったり、シェルスクリプトで出来ないかと試してみましたが上手いことできず。。
pdfseparate
, pdfunite
コマンドを用いて、見かけ上複数ページずつ分割する方法が分かったら、また皆様にご紹介できればと思います!
というわけで、次回もよしなに!