3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PDFのページ表示設定の謎を解く

3
Last updated at Posted at 2025-02-23

Acrobat Pro をお使いの方は本記事を読む必要はありません。

はじめに

PDF ファイルのページ表示設定を恒久的に変更したいのです。具体的には単一ページ表示を見開きページ表示に変更したり左綴じを右綴じを変更して,それを固定化したいのです。

前者については下記に示すように Acrobat Reader の表示メニューから一時的に表示状態を変更することができますが,ファイル自体を書き換えている訳ではありません。

後者も同様です。

ということで,PDF ファイルを書き換えて,毎回 Acrobat Reader の設定を変更しなくて済むようにしたいのです。

本記事は,どこをどのように変更すれば良いのかについて調査したものであり,具体的な変更手段(ソフトウエア・ツール)については述べていません。詳しく知りたい方は下記の記事を参照下さい。

電子書籍PDFを見開きページ表示にして右綴じに書き換えた話 - Qiita

ページ表示モードについて整理する

筆者の調査によると,PDF のページ表示モードは以下に示すように合計 10 種類あります。

表1 PDF のページ表示モード一覧
ページ表示 表示単位 読む方向 表紙ページ
区切り有り
(ページ表示)
一度に1ページ表示
一度に2ページ表示 左から右 有り
無し
右から左 有り
無し
区切り無し
(カラム表示)
1列で表示
2列で表示 左から右 有り
無し
右から左 有り
無し

これらの表示モードを PDF ではカタログ辞書で設定しています。以下にカタログ辞書のサンプルを示します。このうち PageLayoutViewerPreferencesDirection という二つのパラメータで表示モードを決定しています。

PDF のカタログ辞書の例
1 0 obj
<< /Type /Catalog
   /Pages 2 0 R
   /PageLayout /TwoPageRight
   /ViewerPreferences << /Direction /R2L >>
>>
endobj

このうち PageLayout は文書を開いたときに使われるページレイアウトを指定します。本パラメータを省略した場合はデフォルト値が採用されます。

表2 PageLayout の値
内容
SinglePage 一度に1ページを表示 ※デフォルト
OneColumn ページを1列で表示
TwoColumnLeft 奇数ページを左側にして2列で表示
TwoColumnRight 奇数ページを右側にして2列で表示
TwoPageLeft 一度に2ページを表示で,奇数ページを左側に表示
TwoPageRight 一度に2ページを表示で,奇数ページを右側に表示

一方,ViewerPreferencesDirection はテキストを読み進める際にページをめくる決まった順序を指定します。本パラメータも省略可能です。左綴じなら L2R,右綴じなら R2L と一対一に対応しているため分かり易いでしょう。

表3 ViewerPreferencesDirection の値
内容
L2R 左から右へ ※デフォルト
R2L 右から左へ(中国語,韓国語,日本語など縦書きの場合)

表紙を表示(表紙ページを単独表示)の実現方法

これまで表紙を表示(表紙ページを単独表示)はどうやって実現しているのか疑問だったのです。表紙の表示をオン/オフさせる第3のパラメータが存在するのだろうかと最新版の PDF 仕様を眺めてもそれらしい項目は見つかりませんでした。

そこで,よくよく PDF の仕様書を見直すと

TwoPageLeft 奇数ページを左側にして2列で表示

ということに気づきました。TwoPage ではなく TwoPageLeft なのです。TwoPageLeft は一度に2ページ表示させるという意味に加えて,奇数ページを左側に配置するという意味も持ちます。このとき表紙ページはありません。一方,奇数ページを右側にして2列で表示させる TwoPageRight を指定するとページ 1 を表紙ページとして単独表示させます。

問題は右綴じ R2L を指定した場合です。右綴じ R2L を指定するとどうやら

  • TwoPageLeft 偶数ページを左側にして2列で表示させる
  • TwoPageRight 偶数ページを右側にして2列で表示させる

という意味に切り替わるようなのです。このため TwoPageLeft を指定すると表紙ページはありませんが,TwoPageRight を指定するとページ 1 を表紙ページとして単独表示させます。

以上より,左綴じ L2R,右綴じ R2L に関係なく

  • 表紙ページがない場合,TwoPageLeft もしくは TwoColumnLeft
  • 表紙ページを単独表示させたい場合,TwoPageRight もしくは TwoColumnRight

とすれば良いことが分かりました。

$\Huge\color{red}{\textsf{仕 様 が 分 か り に く い わ!}}$

まとめ

今回得られた結論を図3および図4にまとめました。

ページ表示モードのとき

カラム表示モードのとき

2026年7月17日,本記事の初稿時の内容が間違っていたので修正しました。
@L_B_ さん,ご指摘感謝します。

参考文献

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?