OSXのプレビューからPDFを中綴じ印刷したくてスクリプト書いた
OSXのプレビューは、そのままだとPDFを中綴じ印刷出来ない(プリンター側が機能を提供していれば出来るらしい)。
中綴じ印刷のためだけに、別途ソフトを入れるのもアレなので、PDFをなんとかすることにした。
OSXのプレビューは、[印刷ダイアログ] > [レイアウト]から、
- ページ数/枚(Pages per sheet): 2
- レイアウト方向(Layout Direction): 左上 –> 右下
- 両面(Two-Sided): 短辺とじ(Short-edged binding)
とすると、1枚あたり両面で4ページ印刷出来る。 ので、この設定で中綴じ印刷が出来るように、スクリプトでPDFのページを入れ替える。
pypdf2を使っているので、インストールしてない場合は入れておく必要がある。
% pip install pypdf2
% curl https://raw.githubusercontent.com/mitsu-ksgr/pdf_saddle_stitcher_py/master/saddle_stitcher.py -O % chmod 744 saddle_stitcher.py % ./saddle_stitcher.py sample.pdf
とすると、中綴じ向けにページが入れ替えられたsample_saddlestich.pdf
というファイルが生成される。
あとはこれをプレビューで開き、先の設定で印刷すればいい。
参考にさせて頂いたサイト:
- PyPDF2 Documentation — PyPDF2 1.26.0 documentation
- のーんびりとWebプログラム: PythonのPDFライブラリPyPDF2で、PDFのページを抽出して保存する方法
PDF触るの初めてだったんだけど、PyPDF2
がよく出来てて簡単にできた。
シンプルなAPIで使いやすくて、最初に書捨てたスクリプトは10分もかからず書けた。 (ページ数によっておかしくなる問題があったので、githubに上げるついでに修正・リファクタした)
python久しぶり過ぎてコロン付け忘れまくるなどあったけど、end書かなくて済むので良い