目次
はじめに
自炊※したpdfでは、かなりの数の縦書きの本がある(※自炊: 紙の本を裁断してスキャンしてpdf化すること)。
pdfには左綴じ・右綴じの概念があるのが興味深いのだが、pdfはそのままでは左綴じで生成される。
これを一般的なpdfビューアーで読む際は、見開き表示すると縦書きなのにページの並びが左→右のようになる。 実際、これはとても読みづらい。
この対処としては二つの方法が考えられる:
- pdfビューアーで対応する
- pdfファイルの綴じ方向を適切に設定する
綴じ方向を選べるpdfビューアー
綴じ方向を選べるpdfビューアーは、例えばNeeViewがある。
これは軽量なビューアーでとても良く出来ている。pdf以外にもepubも読むことができる。 NeeViewはepubリーダーとしてはとても良いので超オススメだ。Windows上のまともなepubリーダーアプリはこれくらいではないか。
一点困るのが、pdfの文字を検索できないこと。NeeViewは元来が画像ビューアーをベースにしているため、仕方ないところはあるだろう。
pdfファイルの綴じ方向を適切に設定する
pdf ファイルの綴じる方向を変更するプログラムは、いくつか例がある。参考になったのは
- 特定フォルダ配下のPDFファイルを一括、右綴じ変換 実装編1 – Technically Impossible 特定フォルダ配下のPDFファイルを一括、右綴じ変換 実装編2 – Technically Impossible
- 大量のPDFファイルを右綴じに変えたい – 技術日記@kiwanami
基本的に特定フォルダ配下の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を使った。