1
0

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のページ表示設定の謎を解く

Posted at

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ページ表示させるという意味に加えて,奇数ページを左側に配置するという意味も持ちます。このため右側にある偶数ページが左側の奇数ページよりも大きいときは左から右に読む 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 の中には

  • 表紙を表示
  • 見開きページ表示
  • 右から左へ読む

という右綴じ(いわゆる和書)の設定になっているものが多いのですが,本記事の理論によれば

  • PageLayoutTwoPageLeft もしくは TwoColumnLeft
  • ViewerPreferencesDirectionR2L

となっているはずなのです。しかし何故かPageLayoutTwoPageRight という設定になっているものがあります。これで正しく読めるのでそのままにしていますが,何故正しく読めるのかは分かっていません。

本件については継続調査中です。進展があり次第,追加報告記事を書きたいと思います。

参考文献

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?