Acrobat Pro をお使いの方は本記事を読む必要はありません。
はじめに
PDF ファイルのページ表示設定を恒久的に変更したいのです。具体的には単一ページ表示を見開きページ表示に変更したり左綴じを右綴じを変更して,それを固定化したいのです。
前者については下記に示すように Acrobat Reader の表示メニューから一時的に表示状態を変更することができますが,ファイル自体を書き換えている訳ではありません。
後者も同様です。
ということで,PDF ファイルを書き換えて,毎回 Acrobat Reader の設定を変更しなくて済むようにしたいのです。
本記事は,どこをどのように変更すれば良いのかについて調査したものであり,具体的な変更手段(ソフトウエア・ツール)については述べていません。詳しく知りたい方は下記の記事を参照下さい。
電子書籍PDFを見開きページ表示にして右綴じに書き換えた話 - Qiita
ページ表示モードについて整理する
筆者の調査によると,PDF のページ表示モードは以下に示すように合計 10 種類あります。
ページ表示 | 表示単位 | 読む方向 | 表紙ページ |
---|---|---|---|
区切り有り (ページ表示) |
一度に1ページ表示 | ||
一度に2ページ表示 | 左から右 | 有り | |
無し | |||
右から左 | 有り | ||
無し | |||
区切り無し (カラム表示) |
1列で表示 | ||
2列で表示 | 左から右 | 有り | |
無し | |||
右から左 | 有り | ||
無し |
これらの表示モードを PDF ではカタログ辞書で設定しています。以下にカタログ辞書のサンプルを示します。このうち PageLayout
と ViewerPreferences
の Direction
という二つのパラメータで表示モードを決定しています。
1 0 obj
<< /Type /Catalog
/Pages 2 0 R
/PageLayout /TwoPageRight
/ViewerPreferences << /Direction /R2L >>
>>
endobj
このうち PageLayout
は文書を開いたときに使われるページレイアウトを指定します。本パラメータを省略した場合はデフォルト値が採用されます。
値 | 内容 |
---|---|
SinglePage |
一度に1ページを表示 ※デフォルト |
OneColumn |
ページを1列で表示 |
TwoColumnLeft |
奇数ページを左側にして2列で表示 |
TwoColumnRight |
奇数ページを右側にして2列で表示 |
TwoPageLeft |
一度に2ページを表示で,奇数ページを左側に表示 |
TwoPageRight |
一度に2ページを表示で,奇数ページを右側に表示 |
一方,ViewerPreferences
の Direction
はテキストを読み進める際にページをめくる決まった順序を指定します。本パラメータも省略可能です。左綴じなら L2R
,右綴じなら R2L
と一対一に対応しているため分かり易いでしょう。
値 | 内容 |
---|---|
L2R |
左から右へ ※デフォルト |
R2L |
右から左へ(中国語,韓国語,日本語など縦書きの場合) |
表紙を表示(表紙ページを単独表示)の実現方法
これまで表紙を表示(表紙ページを単独表示)はどうやって実現しているのか疑問だったのです。表紙の表示をオン/オフさせる第3のパラメータが存在するのだろうかと最新版の PDF 仕様を眺めてもそれらしい項目は見つかりませんでした。
そこで,よくよく PDF の仕様書を見直すと
TwoPageLeft
奇数ページを左側にして2列で表示
ということに気づきました。TwoPage
ではなく TwoPageLeft
なのです。TwoPageLeft
は一度に2ページ表示させるという意味に加えて,奇数ページを左側に配置するという意味も持ちます。このため右側にある偶数ページが左側の奇数ページよりも大きいときは左から右に読む L2R
,すなわち左綴じとなります。このとき(単独で表示される)表紙ページはありません。一方,右側にある偶数ページが左側の奇数ページよりも小さいときは右から左に読む R2L
,すなわち右綴じとなります。左側の奇数ページが 1 のとき右側の偶数ページが 0 になることはないので,ページ 1 を表紙ページとして単独表示させます。
以上より,表紙ページがない場合は,
- 右綴じ
R2L
の場合TwoPageRight
もしくはTwoColumnRight
- 左綴じ
L2R
の場合TwoPageLeft
もしくはTwoColumnLeft
とし,表紙ページを単独表示させたい場合は,
- 右綴じ
R2L
の場合TwoPageLeft
もしくはTwoColumnLeft
- 左綴じ
L2R
の場合TwoPageRight
もしくはTwoColumnRight
と PageLayout
の設定を左右反転させる必要があるのです。
$\Huge\color{red}{\textsf{仕 様 が 分 か り に く い わ!}}$
まとめ
今回得られた結論を図3および図4にまとめました。
ページ表示モードのとき
カラム表示モードのとき
備考
市販の PDF の中には
- 表紙を表示
- 見開きページ表示
- 右から左へ読む
という右綴じ(いわゆる和書)の設定になっているものが多いのですが,本記事の理論によれば
-
PageLayout
はTwoPageLeft
もしくはTwoColumnLeft
-
ViewerPreferences
のDirection
はR2L
となっているはずなのです。しかし何故かPageLayout
が TwoPageRight
という設定になっているものがあります。これで正しく読めるのでそのままにしていますが,何故正しく読めるのかは分かっていません。
本件については継続調査中です。進展があり次第,追加報告記事を書きたいと思います。
参考文献
-
アドビシステムズ,PDFリファレンス第2版 (Version 1.3),2001年9月