最近自炊で利用している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
コメント