名古屋出身ソフトウェアエンジニアのブログ

QPDF で個人的によく使うコマンドまとめ

公開:
更新:

回転

qpdf IN.pdf --rotate=+90 OUT.pdf

今の状態から回転させるのではなく、回転値をセット(上書き)したい場合は、以下のように符号なしの角度を渡します。この操作には冪等性があります。

qpdf IN.pdf --rotate=90 OUT.pdf

ページ範囲を指定して回転させることもできます。

qpdf IN.pdf --rotate=90:2-5 OUT.pdf

結合

空入力ファイルオプション --empty に対して、ページ選択操作 --pages を適用することで PDF の結合ができます。区切りを明示するために --pages 引数群の終端に -- が常に必要です。

qpdf --empty --pages SPAM.pdf HAM.pdf EGGS.pdf -- OUT.pdf

以下のように --empty を使わずに主入力ファイルを与えると、そのメタデータ(ここでは SPAM.pdf のもの)が引き継がれます。

qpdf SPAM.pdf --pages SPAM.pdf HAM.pdf EGGS.pdf -- OUT.pdf

--pages 内で主入力ファイルを . で略記できます。

qpdf SPAM.pdf --pages . HAM.pdf EGGS.pdf -- OUT.pdf

各入力の第二位置引数を利用して、部分的にページを持ってくることもできます。

qpdf SPAM.pdf --pages . 1-5 HAM.pdf 2-4 EGGS.pdf 3-4 -- OUT.pdf

ページの取り出し

qpdf SPAM.pdf --pages . 1-5,8,10-12 -- OUT.pdf

偶奇性を指定するオプションもあります。

qpdf SPAM.pdf --pages . 1-z:even -- OUT.pdf
qpdf SPAM.pdf --pages . 10-20,22,24:odd -- OUT.pdf

ページ範囲記法

記法意味
NN ページ目
rN終わりから数えて N ページ目
z最後のページ(r1 と同じ)
A,B,Cページ A, B, C の並び
A-Bページ A から B まで(A > B の場合、逆順に並べられます)
A-B,xCページ A から B までのうち、ページ C を除外
A-B,xC-Dページ A から B までのうち、ページ C から D を除外

偶数ページまたは奇数ページをフィルタするために、:even または :odd を付加できます。これらの偶奇性は元のページ番号に基づくのではなく、選択されたページの並びにおける奇数および偶数ページです。

織り込み結合

--collate オプションで、交互にページを結合できます。

qpdf OLD.pdf --collate --pages . NEW.pdf -- DIFF.pdf

--collate オプションに数値を指定すると複数ページずつの織り込みができます。

qpdf OLD.pdf --collate=2 --pages . NEW.pdf -- DIFF.pdf

入力ファイルごとに取るページ数を変えることもできます。

qpdf --empty --collate=2,5,7 --pages TAKE2.pdf TAKE5.pdf TAKE7.pdf -- OUT.pdf

メタデータ削除

--pages の挙動を利用します。

qpdf --empty --pages IN.pdf -- OUT.pdf

パスワード解除

qpdf 機密.pdf --decrypt --password=サンバのリズムでカニバリズム OUT.pdf

線形化 (Linearization)

qpdf IN.pdf --linearize OUT.pdf

QDF ファイルに変換

qpdf IN.pdf --qdf MID.qdf

QDF から PDF を構築

fix-qdf < MID.qdf > OUT.pdf