PDFリーダーの「URLからリンクを作成」機能は混乱を招き易い為、送り手がリンク注釈設定するのがお薦め
更新日:
このページの目的
ブログの過去記事で、次の記事の表示回数が増えていました。
「出力結果の PDF
に勝手にリンクが作成されてしまう現象」
当該記事の内容は、「『Antenna House Formatter』で作成したPDFに、自分で指定したつもりのないリンクが設定される」ことについてです。この記事の投稿日は、2013年7月22日なのでもう11年近く前で、しかも『Formatter』はニッチな製品なのに表示回数が増えるのは不思議です。そこで、似た話題のWebページを検索すると、次のようなQ&Aが見つかります。
- 自分でリンクを設定したつもりがないのに、リンクが作成されている
- PDFリーダーのリンク作成で正しいリンク先と異なるURL文字列がリンク先として扱われるため、正しいページに移動できない
- リンクが勝手に作られないようにする回避策はないか
似たような疑問を感じる人が多いのかもしれません。本記事では、この疑問について解説するとともに、最近のPDF リーダーの状況を整理してみました。
PDFのリンク機能
PDFには「リンク注釈」という機能があり、PDFファイルのページに、同一PDFファイルの別ページへのリンクや、インターネット上のURLにハイパーリンクなどを設定できます。「リンク注釈」はPDFの送り手が設定するものです。
本記事での疑問は、PDFファイルに、上述の「リンク注釈」が設定されていないのに、リンクが作成されることで、「リンク注釈」機能とは別です。
この現象が起きるのは、Adobe Acrobat ReaderなどのPDFリーダーがPDFファイルを表示するときに、本文テキスト中のURL文字列から自動的にリンクを作成するためです。
URLとはなにか
最初にURLについて簡単に説明します。URL (Uniform Resource Locator) とはインターネット上にあるWebページ(HTMLファイル)、画像ファイルやメールアドレスなどの資源を示す識別子のことです。
資源にアクセスする方法(スキーム)と、そのスキーム上での位置記述を組み合わせて、次のように記述します。
(スキーム):(位置記述文字列)
よく使われるスキームは、http/https(ハイパーテキスト・トランスフォーム・プロトコル)でしょう。そのURL文字列の例は次のようなものです。
https://www.antenna.co.jp/pdf/reference/index.html
この例ではhttpsがスキーム、//は位置記述文字の開始、wwwから先がひとつのWebページ(ファイル)の場所とファイル名を示します。
スキームは国際団体(IANA)に登録することになっており、非常に多種類のスキームが登録されています。http/https以外でよく使われるのは、電子メールの宛先用スキーム(mailto)、Windowsなどのファイルを示すスキーム(file)などです。位置記述文字列として使える文字の種類や記述規則はスキーム毎に決まっています。
このように、URL文字列は一定の規則で記述され、その記述のパターンは非常に多種類になります。
Adobe Acrobat Readerの「URLからリンクを作成」機能とは
いくつかのURL文字列を入力したサンプルPDFファイルを作成して、Adobe Acrobat Readerの動作を調べてみましょう。
URL文字列を配置したサンプルPDFの作成と表示
PDFファイルの作成には、『Antenna House PDF Driver』を使います。『Antenna House PDF Driver』にもURL文字列からPDFリンクを作成する機能があるため、この機能をオフにしてPDFを作成します。このためにはプロフィールで「文中のURLにリンクを付ける」をオフにします(次図)。
以上の準備をしたうえで、Microsoft WordとさくらエディタでURL文字列を含むサンプル文書を作成します。Wordのサンプル文書から出力したPDFファイルを(A)、さくらエディタのサンプル文書から出力したPDFファイルを(B)とします。
Adobe Acrobat Reader でPDFを表示して、URL文字列の上にマウスカーソルを移動するとマウスのポインタ形状が「手」の形に変化します。そして、URL文字列の下に作成されたリンクが表示されます。
(A)と(B)でURL文字列から作成されたリンクをみると、若干の相違があります(次図)。
違っている点はURL文字列の後ろに和文の文字が続くときの扱いです。Wordから作成したPDFファイル(A)ではURL文字列の和文文字はURLに含まれていません。しかし、さくらエディタから作成したPDFファイル(B)では、URL文字列の後ろに「を参照してください」という文字列が付加されてしまっています。
このため、(A)のリンクをクリックすると、正しいWebページがブラウザで表示され、(B)のリンクをクリックするとブラウザでは「お探しのページが見つかりませんでした」となってしまいます。(B)ではURLを正しいリンクに変更できなかったことになります。
このように同じURL文字列であっても、元の文書ファイルを作成したアプリケーションによって、リンクが正しくできたり、正しくできなかったりします。
Adobe Acrobat Readerの設定変更方法
Adobe Acrobat Readerでは、「URLからリンクを作成」機能をオフに設定できます。この操作は次のようにします。
- メニューで「環境設定」を選択する
- 「環境設定」ダイアログが開くので、分類の「一般」を選択する
- 基本ツールの「URLからリンクを作成」のチェックを外す(図3)
URL文字列のパターンによる認識状況-PDFリーダーの比較
URL文字列にはさまざまなパターンがあります。どのような文字列がリンク作成対象になるのでしょうか。これをみるために、いくつか簡単な文字列を記述したPDFを用意し、リンクが作成されるか、作成されるリンクが正しいかを調べてみます。
また、Adobe Acrobat Readerだけでなく、FireFox、Google Chrome、Microsoft Edge各ブラウザ内蔵のPDFリーダーでもリンク作成結果を比較してみます。
結果は次の表のとおりです。
スキーム | URL文字列の例 | Adobe Acrobat Reader | FireFox | Google Chrome | Microsoft Edge | |
---|---|---|---|---|---|---|
スキームを指定した例 | http/https | http://www.antenna.co.jp/pdf/reference/index.html | 〇 | × | 〇 | 〇 |
https://www.antenna.co.jp/pdf/reference/ | 〇 | × | 〇 | 〇 | ||
https://url.spec.whatwg.org/ | 〇 | × | 〇 | 〇 | ||
次のページ(http://www.antenna.co.jp/pdf/reference/index.html)は、PDF資料室 | 〇 | × | × | × | ||
次のページ:http://www.antenna.co.jp/pdf/reference/index.htmlは、PDF資料室 | 〇 | × | 〇 | 〇 | ||
次のページhttp://www.antenna.co.jp/pdf/reference/index.htmlは、PDF資料室 | 〇 | × | 〇 | 〇 | ||
☞http://www.antenna.co.jp/pdf/reference/index.htmlを参照してください | 〇 | × | 〇 | 〇 | ||
https://abc | △ | × | △ | △ | ||
https://www | △ | × | △ | △ | ||
mailto | mailto:info@antenna.co.jp | 〇 | × | 〇 | 〇 | |
文中mailto:info@antenna.co.jpはどうか? | 〇 | × | 〇 | 〇 | ||
file | file:///c:\temp\eyecatch-pdf-editor-free.png | 〇 | × | × | × | |
文中file:///c:\temp\eyecatch-pdf-editor-free.pngはどうか | 〇 | × | × | × | ||
スキームを指定しない例 | http/https | www.antenna.co.jp/pdf/reference/index.html | 〇 | × | 〇 | 〇 |
文中www.antenna.co.jp/pdf/reference/index.htmlではどうか | 〇 | × | 〇 | 〇 | ||
www.antenna.co.jp/sbc/ | 〇 | × | 〇 | 〇 | ||
文中www.antenna.co.jp/sbc/ではどうか | △ | × | × | × | ||
url.spec.whatwg.org | × | × | × | × | ||
文中url.spec.whatwg.orgではどうか | × | × | × | × | ||
mailto | cas-info@antenna.co.jp | 〇 | × | 〇 | 〇 | |
文中cas-info@antenna.co.jpではどうか | 〇 | × | 〇 | 〇 |
凡例:http/httpsは、〇:正しいページを表示、△:正しいページに到達しない、×:リンクができない。それ以外は、〇:リンクが動作する、×:リンクができない
- 動作確認したソフトウェアの情報
-
- Adobe Acrobat Reader: 2024.002.20759
- FireFox: 126.0.1
- Google Chrome: 125.0.6422.113
- Microsoft Edge: 125.0.2535.67
表でわかることを整理すると次のようになります。
- ブラウザのPDFリーダーのうち、FireFoxはリンクを作成しません。また、Google Chrome、Microsoft Edgeはリンク作成機能があるが、ファイルスキームには未対応です。
- 位置記述文字列が一定のパターンになっていれば、スキームがなくてもhttp/https、mailtoスキームが補われてリンクが作成されることがあります。
- リンク生成では位置記述文字列の妥当性はチェックされていません。例えば、「https://www」のような中途半端な文字列からもリンクが作成されます。この場合はリンクが不正になります。
まとめ
PDFには「リンク注釈」機能があり、ページ上に同一PDFファイルの別ページやURLへのリンクを設定できます。この「リンク注釈」はPDFの送り手(配布元)が設定するものです。
これに対して、Adobe Acrobat Reader、Google ChromeとMicrosoft EdgeのPDFリーダーでは、リンクが設定されていないURL文字列を認識してリンクを作成します。この「リンク作成」機能はPDFの受け手の利便性を高めるための機能といえます。
「リンク作成」機能はPDFの送り手側ではコントロールできません。機能がないPDFリーダーや、機能があっても使わない設定になっている場合は、リンク作成ができません。
このように、PDFリーダーのリンク作成機能は簡易的なもので、信頼性に欠けるといえます。PDFファイルを閲覧する上で重要なリンクは、送り手側が「リンク注釈」として設定しておくことをお薦めします。
参考資料
PDFにおけるリンクの仕組み、設定方法、サンプルとブラウザのPDFリンクサポート状況」