授業スライドの配布版PDF作成:qpdf

授業で提示するスライドにはオーバーレイやら著作権にかかる利用条件の関係で渡せないページがあったりします.そのようなスライド資料を配布用に編集するのにこれまではAcrobat Proの永続版を使っていましたが,いよいよ今年の5月でEoL (End of Life) を迎えます.Macなんだからプレビューでできるでしょとか,サブスクリプションに切り替えれば良いぢゃないかというご叱責はもっともですが,Acrobatのサブスクリプションは永続版に比べて凄く割高ですし,(宿所や自宅がLinuxなので)Linux上でも同じ作業ができるようにしたいとというのがこの記事の趣旨です.

Linux上でPDFのページを削除したり順序を入れ替えたりするツールにPDF Arrangerやpdftkなどがありますが,この2つは編集後にbookmark(しおり)がなくなってしまいます.pdftkの場合は,あらかじめ書き出しておいたメタ情報を編集しておき,ページ編集後に書き戻す方法があるようですが,メタ情報の編集が面倒です.PDF Arrangerの場合は,hyperrefで埋め込んだリンクもなくなります.

そこでこれまで触ったことのないqpdfを試してみたところ,bookmarkが保存されていることがわかりました(ページ順序を入れ替えた場合は試していませんが).これは使えそうですのでMacにHomebrewを導入してqpdfをインストール,マニュアルを見ながらどうすればよいかちょっと試行錯誤してみました.

qpdf infile.pdf --pages . 1-z,x〇〇 -- --encrypt --user-pasword=〇〇 --owner-password=〇〇 --bits=256 --modify=none --extract=n --print=full/none/low -- --linearize outfile.pdf

上記は,印刷のみ{高解像度,不可,低解像度}の設定ができるようにし,その他の項目はアクセシビリティを除いて全て不可としています.「x〇〇」が削除するページ範囲です(詳細はqpdfのドキュメントを参照下さい).PDFを開く際のパスワードが不要なら,「--user-pasword=〇〇」を削除します.

これをqpdf.texという名前でTeXworksのテンプレートフォルダに保存しました.TeXworksからすぐに開けるからです(普通のテキストエディタでいちいち保存場所までフォルダをたどる必要がない:うちのMacにはDefaultFolderがあるのでたどる必要はないのですが,この方が楽).所望の修正をかけたら,コピーしてターミナルに貼り付けて実行します.タイプセットはもちろんしません.

【2025-02-25追記】
Debian bookwormのqpdfバージョンは11.3で,ページ範囲指定の"x"(除外)が使えない!
8月頃にリリースされる見込みのtrixieでは使えるようになるので,Linux機ではそれまでのつなぎとしてAppImage版を導入してみることにしよう.
# でもラズパイには入れられないorz