naiの日記

ソフトウェアエンジニアから放射線科診断医にジョブチェンジしました。趣味のことを書きます。

iPadのPDF Viewer無料版で本を右綴じで読む方法

iPadでのPDFビューワーはもっぱらSideBooksを使っていましたが、業務用と個人用でアプリを分けたいと思いたち、Redditで評判の良かったPDF Viewer Pro by PSPDFKitを使い始めました。なかなか使い勝手が良かったのですが、無料版では本を開く方向を右綴じに変更できない点が難点でした。

有料版だとできるのですが、私がサブスクサービスを蛇蝎のごとく嫌っていることもあり、なんとか無料版で右綴じにできないか調べてみました。

解決方法

Adobeの公式PDFリファレンスにも記載のある通り、PDFファイルには ViewerPreferences/Direction というメタデータがあり、この値が R2L なら右綴じを意図していることを意味するらしいです。上記のPDF Viewerはこのメタデータをrespectして表示方向を決めるため、この値を変更してやればOKです。

肝心の変更方法ですが、Pythonなら pikepdf ライブラリを使えば瞬殺のようです。ChatGPTに聞いてみたところ、ものの数秒で以下のコードを返してくれました。

import pikepdf

def set_viewer_preferences(input_pdf_path, output_pdf_path):
    with pikepdf.open(input_pdf_path) as pdf:
        pdf.Root.ViewerPreferences = pdf.make_dict(Direction='/R2L')
        pdf.save(output_pdf_path)

input_pdf_path = 'input.pdf'
output_pdf_path = 'output.pdf'
set_viewer_preferences(input_pdf_path, output_pdf_path)

Githubには既にPythonJava (docker化済)での実装があるようなので、これらを使わせていただいても良いと思います。上記の変更を施すことで、無事PDFファイルを右綴じにすることができました。

余談ですが、Apple Booksはこのメタデータをrespectせず、PDFは常に左綴じでの表示となるようでした(上下スクロールへの変更は可能でしたが)。12年以上前にCommunityに報告があるにもかかわらず未だ対応がなされていないので、おそらく最初から非英語圏を相手にしていないのだと思われます。シリコンバレーの非英語圏軽視は今に始まったことではありませんが、さすがにちょっとやるせない気持ちがありますね……。