pdfの右綴じ・左綴じを設定するアプリを作った

はじめに

自炊※したpdfでは、かなりの数の縦書きの本がある(※自炊: 紙の本を裁断してスキャンしてpdf化すること)。

pdfには左綴じ・右綴じの概念があるのが興味深いのだが、pdfはそのままでは左綴じで生成される。

これを一般的なpdfビューアーで読む際は、見開き表示すると縦書きなのにページの並びが左→右のようになる。 実際、これはとても読みづらい。

この対処としては二つの方法が考えられる:

  1. pdfビューアーで対応する
  2. pdfファイルの綴じ方向を適切に設定する

綴じ方向を選べるpdfビューアー

綴じ方向を選べるpdfビューアーは、例えばNeeViewがある。

これは軽量なビューアーでとても良く出来ている。pdf以外にもepubも読むことができる。 NeeViewはepubリーダーとしてはとても良いので超オススメだ。Windows上のまともなepubリーダーアプリはこれくらいではないか。

一点困るのが、pdfの文字を検索できないこと。NeeViewは元来が画像ビューアーをベースにしているため、仕方ないところはあるだろう。

pdfファイルの綴じ方向を適切に設定する

pdf ファイルの綴じる方向を変更するプログラムは、いくつか例がある。参考になったのは

基本的に特定フォルダ配下のPDFファイルを一括、右綴じ変換 実装編2 – Technically ImpossibleのソースをC#に変更したものを作った。GitHubで公開してみた: GordiusTears/PdfBindDirChanger

インストーラも作ってみた。Releaseから取得できる。アイコンは5分くらいで作ったのでそれなり。

作ったばかりなのであまりテストできていないのと、そもそもエラー処理はガバガバなので、注意が必要かも知れない。

追加しているのは、右綴じ・左綴じを切り替える機能。

一番ハマるのが、iText が Unknown PdfException を吐くこと。これの原因が分からず難儀した。

参考になるのがc# – How do I resolve Unknown PdfException when using itext7 in. net maui – Stack Overflow

The reason it’s occurring because from version 8.0, iText7 did several major breaking changes in the way they handle bouncy-castle dependencies. I assumed, your itext7 version is less than 8.

ということで、iText 8以降を使うとエラーが出てしまう。今回の場合は7.2.5を使った。