最近自炊で利用している PDF 加工ソフトウェアをスキャナ付属の Acrobat XI から qpdf に変更しました.ページごとの回転・抽出・並べ替えなど自炊に必要なことは qpdf で簡単にコマンド(シェルスクリプト)で実行できるようになりとても便利になりました.
ただし,用意したシェルスクリプトでは対処できないイレギュラーな処理については,qpdf コマンドを直接実行する必要があります.その時のために,qpdf で利用できる処理を事例をあげて説明したいと思います.また,qpdf –help の日本語訳も行っていきたいと思います.
この記事で扱う qpdf
この記事で対象にする qpdf のバージョンは,以下のようになっています(2022 年 7 月現在).
% qpdf --version
qpdf version 10.6.3
Run qpdf --copyright to see copyright and license information.
ちなみに,利用している OS は fedora 36 で以下のコマンドでインストールしています.
# dnf -y install qpdf
よく使う qpdf の機能
わたしが自炊などでよく使う機能について説明します.
実際に利用しているもの
総ページ数の表示
input.pdf の総ページ数を求めます.おもに中間のページ数を求めるために利用します.
% qpdf --show-npages input.pdf
196
ページの抽出
ページを抽出するには「–pages –」を利用します.最後の — は pages の終わりを示す記号です.なお,–pages の直前に PDF ファイルを指定する必要があります.これはこのファイルのプロパティを出力ファイルに複写するためです.プロパティの複写が必要ない場合はこの位置に「–empty」を指定してください.
input.pdf の 1 ページから 10 ページを output.pdf というファイル名で抽出します.
% qpdf input.pdf --pages input.pdf 1-10 -- output.pdf
% qpdf --empty --pages input.pdf 1-10 -- output.pdf
input.pdf の 1 ページから 10 ページおよび 21 ページから 25 ページを output.pdf というファイル名で抽出します.
% qpdf input.pdf --pages input.pdf 1-10 input.pdf 21-25 -- output.pdf
% qpdf --empty --pages input.pdf 1-10 input.pdf 21-25 -- output.pdf
color.pdf の 1 ページ~ 4 ページ,input.pdf の 5 ページ~最終ページを output.pdf に出力します.
% qpdf input.pdf --pages color.pdf 1-4 input.pdf 5-z -- output.pdf
% qpdf --empty --pages color.pdf 1-4 input.pdf 5-z -- output.pdf
input.pdf の前半を output1.pdf に,input.pdf の後半を最後のページからページの少なくなるように output2.pdf に出力します.
% qpdf input.pdf --pages input.pdf 1-96 -- output1.pdf
% qpdf --empty --pages input.pdf z-97 -- output2.pdf
ページの回転
角度の指定は -270,-180,-90,0,90,180,270 が指定でき,+ の値は時計回りに回転します.
input.pdf の 1~5 ページを時計回りに 90° 回転しページ全体を output.pdf に出力します.
% qpdf --rotate=+90:1-5 input.pdf output.pdf
input.pdf の奇数ページを反時計回りに 90° 回転しページ全体を output.pdf に出力します.
% qpdf --rotate=-90:1-z:odd input.pdf output.pdf
input.pdf の偶数ページを時計回りに 90° 回転しページ全体を output.pdf に出力します.
% qpdf --rotate=+90:1-z:odd input.pdf output.pdf
ファイルのマージ
ファイルのマージは「–pages –」を利用します.
ファイルの単純な結合
input1.pdf と input2.pdf と input3.pdf をこの順番にマージし output.pdf に出力します.
% qpdf input1.pdf --pages input1.pdf 1-z input2.pdf 1-z input3.pdf 1-z -- output.pdf
% qpdf --empty --pages input1.pdf 1-z input2.pdf 1-z input3.pdf 1-z -- output.pdf
2つのファイルのページを交互に出力する
input1.pdf と input2.pdf の 2 つのファイルがある場合で,input1.pdf の 1 ページ,input2.pdf の 1 ページ,input1.pdf の 2 ページ,input2.pdf の 2 ページ,…,というように output.pdf に出力します.
% qpdf --collate --empty --pages input1.pdf input2.pdf -- output.pdf
qpdf のマニュアルページ
man qpdf
コマンド本体のマニュアル機能が充実しているためマニュアルページは簡単になっています.コマンド概要やコマンドによるヘルプの表示方法と qpdf の Web ページの URL が表示されます.
以下は man コマンドの出力例です.(見やすくするために改行をいれています)
% man qpdf
QPDF(1) User Commands
NAME
qpdf - PDF transformation software
SYNOPSIS
qpdf [ options ] infilename [ outfilename ]
DESCRIPTION
The qpdf program is used to convert one PDF file to another equivalent PDF file.
It is capable of performing a variety of transformations such as linearization
(also known as web optimization or fast web viewing), encryption, and decryption
of PDF files. It also has many options for inspecting or checking PDF files,
some of which are useful primarily to PDF developers.
For a summary of qpdf's options, please run qpdf --help. A complete manual can be found at
https://qpdf.readthe‐docs.io.
qpdf version 10.6.3
qpdf –help
qpdf –help コマンドを実行すると以下のように表示されます.
% qpdf --help
Run "qpdf --help=topic" for help on a topic.
Run "qpdf --help=--option" for help on an option.
Run "qpdf --help=all" to see all available help.
Topics:
add-attachment: attach (embed) files
advanced-control: tweak qpdf's behavior
attachments: work with embedded files
completion: shell completion
copy-attachments: copy attachments from another file
encryption: create encrypted files
exit-status: meanings of qpdf's exit codes
general: general options
help: information about qpdf
inspection: inspect PDF files
json: JSON output for PDF information
modification: change parts of the PDF
overlay-underlay: overlay/underlay pages from other files
page-ranges: page range syntax
page-selection: select pages from one or more files
pdf-dates: PDF date format
testing: options for testing or debugging
transformation: make structural PDF changes
usage: basic invocation
For detailed help, visit the qpdf manual: https://qpdf.readthedocs.io
コメント