PDFリーダーで移動先ページ番号を指定すると期待したページに進まないことがあります。これはなぜでしょうか。解決方法がありますか。

更新日:

PDFリーダーで移動先ページ番号を指定すると期待したページに進まないことがあります。これはなぜでしょうか。解決方法がありますか。

このページの目的

PDFリーダーには同一ファイル内のページ番号を指定して移動する「ページ移動ナビゲーション」機能があります。

例えば、PDFファイルに冊子形式の目次ページが含まれていて、その各目次項目にページ番号が付けられているとします。このページ番号を指定して本文にページ移動をしたとき、指定したつもりのページとは異なるページが表示されることがあります。これは、どのようなときに起きるのか、また、その解決策について解説します。

ページ上に記載されたページ番号とPDFファイルのページ番号とが一致しないのはなぜ?

目次のページ番号を指定すると違うページに進んでしまう例

最初にこのようなことが起きる実際の例を示します。次の図は、内閣官房のWebページに掲載されている『新しい資本主義のグランドデザイン及び実行計画2023改訂版』(「サンプル1」という)のPDFファイルをFirefoxで表示した画面です。

『新しい資本主義のグランドデザイン及び実行計画2023改訂版』(「サンプル1」という)のPDFファイルをFirefoxで表示した画面

内閣官房:『新しい資本主義のグランドデザイン及び実行計画2023改訂版』(2024年3月時点)

  1. 左では目次を表示しています。目次では、見出し「Ⅳ GX・DX等への投資」のページ番号は「16」となっています。
  2. そこでページ移動ナビゲーションのテキストボックスに「16」を指定します。(中央)
  3. 移動したページ上に記載されているページ番号(以下、「ノンブル」という)は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では編集中の文書にページ番号を挿入する機能があります。

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 2.0って何? いままでのPDFとはどこが違うの?

PDFリーダー別のページラベル指定対応状況

『暗号舞踏人の謎』を主要なPDFリーダーで表示し、ページ移動ナビゲーションに数字を表示すると、入力した数字をノンブルと解釈して適切なページにジャンプするか、それともページ番号と解釈するかは、PDFリーダーによって異なります。

Adobe Acrobat Readerで「8」と入力すると

Adobe Acrobat Readerでページ移動ナビゲーションに「8」と入力

本文でノンブル8と振られたページを表示します。Adobe Acrobat Readerはページラベルを参照して移動先を決めています。

移動後のページ

ところがChromeで同様に「8」を入力すると、ファイルの先頭から8番目のページ(ノンブルでは2ページを表示します。Chromeはページラベルに未対応です。

Chromeで同様に「8」を入力した際の移動画面

各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リーダーに依存しています。

参考資料

関連情報