Portable Document Formatの略。
印刷時の再現性が高い状態で文書を交換できるファイル形式。
PDFを編集したり人間可読化したりできるコマンドラインツール。
QPDF - TeX Wikiを参照。
公式サイトの指示に従う。
頻繁にアップデートされて新機能が追加されるため、(Linuxディストリビューションのリポジトリのものを使うのではなく)ソースからビルドして最新版を使うとよいかもしれない。
ふつうの*nixな環境では、ビルドは
$ tar xzf qpdf-9.1.0.tar.gz
$ cd qpdf-9.1.0
$ ./configure
$ make
$ make check #任意
$ sudo make install
という標準的な方法でできる。
qpdf: error while loading shared libraries: libqpdf.so.26: cannot open shared object file: No such file or directory
のようなエラーが出る場合は、/usr/local/lib
内が共有ライブラリのリンク先になっていないのが原因。
$ LD_LIBRARY_PATH=/usr/local/lib qpdf
のように呼び出すこと。aliasにしてもよい。/usr/local/lib
を共有ライブラリの検索先に追加したい場合は、ldconfig
を使って設定する。オンラインで最新版のマニュアルを読みたいならQPDF Manual を参照(PDF版もある)。
現在インストールされているバージョンのマニュアルをオフラインで読みたいなら、
/usr/share/doc/qpdf/qpdf-manual.html
/usr/share/doc/qpdf/qpdf-manual.pdf
を参照(この場所は man qpdf
に書かれている)。
$ qpdf in.pdf --decrypt --password=hoge out.pdf
複数のPDFファイルを並べたものを1つのPDFファイルとして保存するには、次のようにする。
$ qpdf in1.pdf --pages in1.pdf in2.pdf in3.pdf -- out.pdf
最初に指定したin1.pdf
は、「メタ情報をin1.pdf
から引き継ぐ」という意味をもつ。これを引き継ぎたくない場合は、代わりに
$ qpdf --empty --pages in1.pdf in2.pdf in3.pdf -- out.pdf
とすればよい。
Brotherの家庭用プリンターにはADF(自動原稿送り装置)がついているものがあるが、機種によっては両面を同時に読み込むことができない(例えば私の持っているDCP-J957N)。
この片面のADFで両面原稿を(2回に分けて)読み込むと
の2つができる。これを正しい順番で結合したい。
これをQPDFで行うには、前者をodd.pdf
、後者をeven.pdf
としたとき、もしそれぞれ2ページなら
$ qpdf --empty --pages odd.pdf 1 even.pdf 2 odd.pdf 2 even.pdf 1 -- out.pdf
とすればよい。これで結合結果がout.pdf
として吐かれる。
これをページ数に関係なく行うPerlスクリプトは以下の通り。
#!/usr/bin/env perl
use strict;
use warnings;
use 5.014;
use utf8;
use open ':encoding(UTF-8)';
use Encode::Locale;
binmode(STDIN, ":encoding(console_in)");
binmode(STDOUT, ":encoding(console_out)");
binmode(STDERR, ":encoding(console_out)");
Encode::Locale::decode_argv;
my $odd = "odd.pdf";
my $even = "even.pdf";
# ページ数を取得
my $npages = `qpdf --show-npages $odd`;
chomp $npages;
# 結合
my $args = '';
for my $i (1..$npages){
my $ri = $npages - $i + 1;
$args .= "$odd $i ";
$args .= "$even $ri ";
}
system("qpdf --empty --pages $args -- out.pdf")
これはよくあるシチュエーションなのか、バージョン8.3で--collate
オプションが追加された。これを使うと上記スクリプトと同様の処理が次のように1行で書ける。
$ qpdf --collate --empty --pages odd.pdf 1-z even.pdf z-1 -- out.pdf
--collate
を指定すると、与えられた複数のファイルから1ページずつ順にとって結合するようになる。z
は最終ページを表す。--underlay
オプションを使うとPDFに背景を追加できる。
「複数ページのPDF文書(main.pdf)のすべてのページに、ロゴなどの入った背景PDF(background.pdf)の1ページ目を背景として追加する」という最も単純な例は次のようになる。
$ qpdf main.pdf --underlay background.pdf --repeat=1 -- out.pdf
全ページを右に90度回転させるには次のようにする。
$ qpdf in.pdf --rotate=+90 -- out.pdf
:
をつけ、そのあとにページの範囲を書く。例えば2, 4, 6ページのみ回転させたい場合には、 --rotate=+90:2,4,6
とする。最終更新: 2019-11-29 20:14:34 +0900
This page is generated by sinanoki.