PDFリーダーで移動先ページ番号を指定すると期待したページに進まないことがあります。これはなぜでしょうか。解決方法がありますか。
更新日:
このページの目的
PDFリーダーには同一ファイル内のページ番号を指定して移動する「ページ移動ナビゲーション」機能があります。
例えば、PDFファイルに冊子形式の目次ページが含まれていて、その各目次項目にページ番号が付けられているとします。このページ番号を指定して本文にページ移動をしたとき、指定したつもりのページとは異なるページが表示されることがあります。これは、どのようなときに起きるのか、また、その解決策について解説します。
ページ上に記載されたページ番号とPDFファイルのページ番号とが一致しないのはなぜ?
目次のページ番号を指定すると違うページに進んでしまう例
最初にこのようなことが起きる実際の例を示します。次の図は、内閣官房のWebページに掲載されている『新しい資本主義のグランドデザイン及び実行計画2023改訂版』(「サンプル1」という)のPDFファイルをFirefoxで表示した画面です。
内閣官房:『新しい資本主義のグランドデザイン及び実行計画2023改訂版』(2024年3月時点)
- 左では目次を表示しています。目次では、見出し「Ⅳ GX・DX等への投資」のページ番号は「16」となっています。
- そこでページ移動ナビゲーションのテキストボックスに「16」を指定します。(中央)
- 移動したページ上に記載されているページ番号(以下、「ノンブル」という)は11ページになっています(右)。ノンブルが16のページに移動するつもりのところが、5ページずれたページに進んでいることになります。
このようなことはなぜ起きるのか
「サンプル1」のページ構成は、先頭から①表紙:1ページ、②目次:4ページ、③本文:6ページ目からとなっています。先頭から目次のページまではノンブルが振られていません。ノンブルはPDFファイルの6ページ目を起点にして、番号1からスタートしています。
このため、PDFファイルの先頭から数えたページ番号と、各ページの下に振られたノンブルには5つのずれが発生しています。
これをFirefox上のPDFリーダーで表示して、ページ移動ナビゲーションに「16」と入力するとPDFファイルの先頭から数えて16ページ目に移動します。本文のノンブルとは5ページずれているので16ページ目がノンブル11に相当するわけです。
Microsoft Wordから作成したPDFでは解決できない
「サンプル1」は、Microsoft Wordで編集したものと見られます。ご存じのとおり、Microsoft Wordでは編集中の文書にページ番号を挿入する機能があります。
この機能でページ番号を挿入すると、デフォルトでは文書の先頭ページを起点に、ノンブルが1から振られます。文書の途中からページ番号の書式を変更(例えば、アラビア数字とローマ数字の切り替え)したり、番号をリセット(例えば、前ページの続きではなく、1から始める)したりするには、セクション区切りを挿入したうえで、セクション単位でノンブルの書式や、開始番号を変更できます。
このようにすると、前書や目次ページ(総称して「前付」という)と本文のページ番号書式を変更し、本文のノンブルを1からスタートできます。このMicrosoft Word文書では、ページ上に印字されたノンブルと文書ファイル先頭からのページ番号がずれています。
この状態から、『Antenna House PDF Driver』やMicrosoft Wordの「名前を付けて保存」で作成したPDFをPDFリーダーで表示すると「サンプル1」と同じ現象がおきます。
しかし、上記のようなツールではMicrosoft Wordのページ上にある文字をPDFにしているだけなので、ノンブルとページ番号のずれを解消することはできません。
ページラベル機能でページ番号とノンブルを対応付ける
PDF仕様にはページラベルという、PDFの先頭から数えたページ番号とノンブルを対応つける機能が規定されています。Microsoft WordからPDFファイルを作成する際に、ページラベルを設定できるPDF作成ソフトがもしあれば、「サンプル1」で示した表示の問題は解決できるかもしれません。
次にページラベルを指定した例を示します。
PDFファイルにページラベルを設定した例
プロ向けのPDF作成ツールにはページラベル機能を使えるものがあります。例えば、『Antenna House Formatter』はページラベルを指定できます。
次に示すのは『暗号舞踏人の謎』という制作サンプルファイルです。本ファイルはセクションに分かれていて、各セクションのPDFファイル先頭からのページ番号とノンブルは表のようになっています。
セクション | ページ番号 | ノンブル種類 | ノンブル番号 | |
---|---|---|---|---|
表紙と表紙裏(白紙) | 1~2 | なし | ||
前付 | 本扉と本扉裏(白紙) | 3~4 | なし | |
目次 | 5 | ローマ数字(小文字) | ⅲ | |
目次裏(白紙) | 6 | なし | ||
本文 | 7~39 | アラビア数字 | 1~33 | |
奥付 | 40 | なし |
『暗号舞踏人の謎』basic-layout.pdf サンプル
※制作システムはCAS-UB(PDF作成ソフトは『Antenna House
Formatter』)を使用
『暗号舞踏人の謎』は、白紙ページにはノンブルを印字しないようにしているため、少し分かりにくいですが、簡単にいうと前付はローマ数字(小文字)、本文はアラビア数字とし、前付と本文のノンブルをそれぞれ1から開始に設定しています。
『Antenna House Formatter』は、PDF生成時に、ページラベル機能を使ってPDFファイルの先頭から数えたページ番号とノンブルの対応関係を付けています。具体的にはPDF ファイルのCatalog辞書にpagelabelエントリを作成して、対応関係を登録します。詳細は、ISO 32000-2仕様(参考資料3)をご参照ください。
PDFリーダー別のページラベル指定対応状況
『暗号舞踏人の謎』を主要なPDFリーダーで表示し、ページ移動ナビゲーションに数字を表示すると、入力した数字をノンブルと解釈して適切なページにジャンプするか、それともページ番号と解釈するかは、PDFリーダーによって異なります。
Adobe Acrobat Readerで「8」と入力すると
本文でノンブル8と振られたページを表示します。Adobe Acrobat Readerはページラベルを参照して移動先を決めています。
ところがChromeで同様に「8」を入力すると、ファイルの先頭から8番目のページ(ノンブルでは2ページを表示します。Chromeはページラベルに未対応です。
各PDFリーダーのページラベル対応をまとめると次表のようになります。
PDFリーダー | バージョン | ページラベル |
---|---|---|
Adobe Acrobat Reader | 2024.001.20604 | 対応 |
Chrome | 123.0.6312.59 | 未対応 |
Edge | 122.0.2365.92 | 未対応 |
Firefox | 124.0 | 対応 |
なお、もう少し詳しくみると、Adobe Acrobat ReaderとFirefoxは、1~2のとき、表紙または表紙裏と解釈し、3~34までのとき本文のノンブルまたは奥付のページと解釈しています。ChromeとEdgeは、1~40までをPDFの先頭からのページ番号と解釈しています。
まとめ
PDFファイルの先頭からのページ番号と、PDFのページ上に表示されるページ番号(ノンブル)がずれている場合、PDFリーダーのページ移動ナビゲーションに入力した数値と移動先ページ上のノンブルがずれます。
PDFではこのずれの情報を設定するページラベルという機能が用意されています。PDF作成ツールでページラベルを設定したとき、それを解釈して対応できるかどうかはPDFリーダーに依存しています。