pdftkをDockerで使う方法

PDFを分割するオープンソースのプログラムのpdftkですが、現在はbrewのformulaに入っておらずMacで使うのは結構大変そうでした。そこでDockerを使ってやってみたところ簡単に使用できたのでそのメモです。

なるべくイメージサイズが小さいものを使いたいのでalpineベースで使います。

alpineのパッケージを探してみると3.8であればパッケージがあるのでこちらをベースに作ります。

バージョンを表示

とりあえず動くか、まずはpdftkのバージョンを表示させてみます(後ほど使うため/pdfディレクトリも作成しています)

Dockerfile

FROM alpine:3.8

RUN apk update && \
    apk add pdftk && \
    mkdir /pdf

WORKDIR /

CMD ["pdftk", "--version"]

ビルド

docker build . -t pdftk

実行

バージョンが表示されます

$ docker run pdftk

pdftk 2.02 a Handy Tool for Manipulating PDF Documents
Copyright (c) 2003-13 Steward and Lee, LLC - Please Visit: www.pdftk.com
This is free software; see the source code for copying conditions. There is
NO warranty, not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

PDFを分割

次はPDFを分割してみます。

$ mkdir pdf

pdfというディレクトリを作成し、その中に変換したいPDF(a.pdf)を置いて

$ docker run -v $PWD/pdf:/pdf pdftk pdftk /pdf/a.pdf cat 1 output /pdf/cover.pdf

とすると、1ページ目のみ取り出されたcover.pdfというファイルができていると思います。

PDFを結合

結合もやってみます。

$ docker run -v $PWD/pdf:/pdf pdftk pdftk /pdf/a.pdf /pdf/b.pdf cat output /pdf/merged.pdf

これを実行すると結合されたmerged.pdfというファイルができています。

参照