PDFにおけるリンクの仕組み、設定方法とサンプル
更新日: 2021/3/3
PDFにおけるリンクの仕組みと設定方法について、サンプルと一緒に紹介します。

リンクとは
リンクは、文書内のある場所(リンク元)に、別の場所(リンク先)に移動するための情報(リンク情報)を埋め込んでおき、リンク元でトリガーとなる操作をするとリンク情報を使ってリンク先に移動する仕組みです。
リンクの例では、Webページのハイパーリンクが最もポピュラーです。PDFでもリンクを使えます。PDFで使えるリンクはリンク元とリンク先のタイプによって次表のように分けられます。
リンクの種類 | リンク元 | リンク先 |
---|---|---|
タイプ 1: PDFの内部リンク |
PDFのページ上に矩形を配置して、そこにリンク情報を設定 | 同一PDFファイル内の別のページとページ内座標位置がリンク先 |
タイプ2a: PDF内部から外部PDFへのリンク |
PDFのページ上に矩形を配置して、そこにリンク情報を設定 | 外部PDFファイル中のページとページ内座標位置をリンク先に指定 |
タイプ2b: PDF内部から外部ファイルやWebページへのリンク |
PDFのページ上に矩形を配置して、そこにリンク情報を設定 | 別のアプリケーションファイルやWeb上のURL/URIをリンク先に指定する |
タイプ3: WebページからPDF内部へのリンク |
HTMLのアンカータグにリンク情報を設定 | アンカータグのhref属性値にリンク先のPDFファイル名などを設定 |
タイプ1は移動先として同一PDFファイル内のページ、タイプ2aは別のPDFファイル内のページに設定するものです。タイプ2bは移動先としてPDFではないアプリケーションのファイルまたはWeb上のURIを指定するケースです。
タイプ1とタイプ2のリンク設定と表示
タイプ1とタイプ2のリンクは「リンク注釈」[1] 機能を使います。PDFのリンク注釈は、Webページのハイパーリンクよりも幅広い機能があります。リンク注釈でリンク情報を設定するパラメータやPDFリーダーの表示動作については、ISO 32000[2] で規定されていますので、PDFを作成・加工・表示するツールの開発者はISO 32000のリンク注釈の仕様について学ぶ必要があります。
PDFファイルを作成・加工して配布するといった業務のためにPDFファイルを使用するエンド・ユーザーは、リンク注釈を作成・編集するエンド・ユーザー向けのツールを使えば、PDFへのリンクを簡単に設定できます。
PDFのリンク注釈の概要
リンク注釈では、リンク元の位置をPDFファイル内部のページ上の矩形領域として指定します。
PDFを閲覧・表示しているとき、リンクによる移動動作はAdobe Readerを始めとするPDFリーダーが担います。リンク注釈をサポートするPDF リーダーは、マウスカーソルがリンク元の矩形領域にあるときにマウスボタンをクリックすると、リンク注釈に指定された動作をします。
指定された動作としては、①指定された移動先へのジャンプか、②指定されたアクションの実行の2種類があります。移動先へのジャンプについては以下の項目を設定できます。
- 表示する文書ページ
- ページ上の表示ウィンドウの位置(ページ上の座標位置)
- 倍率
- 移動先の識別子(固有文字列)
- 移動先PDFの開き方など
アクションとしては同一PDF内の指定された位置への移動(Go-Toアクション)、外部PDFの指定位置への移動(Go-To Rアクション)、URIアクションなどを指定できます。URIとしてはWeb上の識別子の他、メールアドレスなども指定できます。
PDFのリンク注釈の設定例
PDFファイルを2つ用意し、『瞬簡PDF 編集』で 4種類のリンク注釈を設定してみました。





サンプルに使用したPDFを、下記URLからダウンロードできます。
リンク注釈設定サンプルPDF(pdf-link-annotation.zip)
ブラウザでも確認してみます。
リンク注釈設定サンプルPDF(pdf-link-annotation.zip)内には、以下のPDFファイルが格納されています。
- リンク注釈設定ファイル:「PDFにおけるリンクの仕組み、設定方法とサンプル _ アンテナハウス PDF資料室.pdf」(ブラウザ確認用:pdf-link-annotation-sample.pdf)
- リンク対象PDFファイル:「PDFの注釈入門 _ アンテナハウス PDF資料室.pdf」(ブラウザ確認用:pdf-link-fly.pdf)
付与されているリンク注釈の箇所は、以下のとおりです。
- (1)PDF内リンク(page1⇒page2):1ページ目「リンクとは」、「タイプ1とタイプ2のリンク設定と表⽰」
- (2)PDFから、別のPDFへリンク:7ページ最下部「Annotation.pdf」に、「PDFの注釈入門 _ アンテナハウス PDF資料室.pdf(ブラウザ確認用PDF:pdf-link-fly.pdf)」へのリンクを付与。
- (3)PDFから外部URIへのリンク:1ページ目「アンテナハウス オンラインショップの画像バナー」に、アンテナハウスオンラインショップトップページのアドレスを設定。
- (4)PDFからメール送信スキームリンク:9ページ目「info@antenna.co.jp」に、アンテナハウスお問合わせメールアドレスを登録。
※リンクへの挙動は、ご覧になるブラウザ内蔵のPDFビューアや、オプション設定などで多少変わってくることがあります。ブラウザでの確認が上手くいかないときは、zipファイルをダウンロードしてPCのPDFビューアでご確認ください。
PDFにリンクが設定できる、アンテナハウスのツール
アンテナハウスの製品では、『瞬簡PDF 編集』はリンク注釈の作成・編集を簡単にできるようになっています。
また、『アウトライナー 3』(2020年5月15日発売)では、さらに強力なリンク注釈の設定・編集機能があり、PDF文書でページの順番を入れ替えたり、文書の途中のページを削除したりといったページ編集をしたとき、それにともなうリンク注釈の調整ができます。
例えば、リンク注釈の移動先ページが削除されるとリンク注釈はエラーになりますが、『アウトライナー 3』は、次のようなリンク注釈の自動変更機能があります。
- ページ編集でリンク注釈の移動先のページの位置が変わったとき、リンク注釈のアクションの移動先も変わります。
- ページ編集でリンク注釈の移動先のページが削除されたときはリンク注釈を削除します。
『アウトライナー 3』は、PDFに設定されているリンク注釈のデータを、まとめて外部ファイル(CSV形式、XML形式、JSON形式)に保存(エクスポート)したり、外部ファイルに保存されているデータをPDFに取り込むこと(インポート)ができます。
PDFを活用するワークフロー・システムを開発する際には、ソフトウェア開発キット(SDK)を使ってプログラムからリンク注釈を設定・編集ができたりします。アンテナハウスの製品では、『PDF Tool API』にリンク注釈関連の機能が充実しています。
タイプ1とタイプ2のリンクの相互変換
PDFファイルを分割する際に、リンク元とリンク先が別のPDFファイルに分かれてしまうときは、PDF内部のリンクを外部PDFへのリンクに変更する必要があります。その逆に、PDFファイルを結合する際には、外部PDFファイルへのリンクを内部リンクに変更する必要があります。
『アウトライナー 3』では、PDFの分割・結合に伴うリンク注釈の変更機能を充実しました。分割時には次のことができます。
- PDFを分割した結果、リンク注釈の移動先がPDFの内部だったものが外部PDFになるとき、リンクの移動先を外部PDFに変更できます。
- 分割時にリンク注釈のアクションが、外部PDFファイルを開くに変更されるとき、外部PDFファイルのパス設定を相対パスと絶対パスのどちらにするか指定できます。
- 同様に、外部PDFファイルを同一のウィンドウで開くか・別のウィンドウで開くかを指定できます。
結合時には、次のことができます。
- ページモードで対話的にPDFを結合するとき、結合したいPDFに設定されているリンク注釈も一緒に結合できます。
- PDFを一括結合するときに、リンク注釈を結合する機能があります。
タイプ3のリンク設定と表示
タイプ3のリンクはHTMLファイルからPDFを表示するときの設定です。HTMLファイルをブラウザで表示したとき、リンクをクリックしたときの動作はブラウザに組み込まれたPDFリーダーが担います。その設定方法は、アドビから公開されている『Parameters for Opening PDF Files』という資料[3]に記載されています。これは、Adobe Readerをブラウザのプラグインとして使用するために用意されたものです。次に主な設定パラメータを紹介します。
ブラウザでPDFを表示する動作指定方法
- (1)移動先ページ指定
-
<a href="file-name.pdf#page=N">アンカーテキスト</a>
移動先にはPDFの物理ページ番号を指定します。 - (2)移動先の名前を指定
-
<a href="file-name.pdf#nameddest=移動先名">アンカーテキスト</a>
移動先名は、PDF内に埋め込んだ固有の文字列(id)を指定します。 - (3)移動先のズーム表示
-
<a href="file-name.pdf#zoom=スケール値">アンカーテキスト</a>
移動先のページの拡大率をスケール値で指定します。スケール値100は、100%を意味します。 - (4)移動先のズーム表示と位置指定
-
<a href="file-name.pdf#zoom=スケール値,left,top">アンカーテキスト</a>
スケール値に加えて、左上を原点として、左からの距離と上からの距離を指定します。単位はポイントです。 - (5)移動先の対象ページの表示方法
-
<a href="file-name.pdf#view=キーワード">アンカーテキスト</a>
表示対象ページの表示方法をキーワードで指定します。 -
viewのキーワードは次のとおりです。
キーワード 意味 Fit ページを水平方向、垂直方向ともにページのコンテント全体がフィットする倍率で表示する。必要となる倍率が水平方向、垂直方向で異なる場合、小さいほうの倍率を使用し、他方はウィンドウ中央になるように配置する。 FitH ページの幅全体がウィンドウにフィットする倍率で表示する。 FitH,top ページの垂直座標[top]で指定される位置をウィンドウの上端となるように配置し、ページの幅全体がウィンドウにフィットする倍率で表示する。 FitV ページの縦方向全体がウィンドウにフィットする倍率で表示する。 FitV,left ページの水平座標[left]で指定される位置をウィンドウの左端となるように配置し、ページの縦方向全体がウィンドウにフィットする倍率で表示する。 FitB 境界ボックスがウィンドウの水平方向、垂直方向ともにフィットする倍率で、page によって指定されるページを表示する。必要となる倍率が水平方向、垂直方向で異なる場合、小さいほうの倍率を使用し、他方はウィンドウ中央となるように配置する。 FitBH ページの境界ボックスの幅全体がウィンドウにフィットする倍率で表示する。 FitBH,top ページの垂直座標[top]で指定される位置を、ウィンドウの上端となるように配置し、ページの境界ボックスの幅全体がウィンドウにフィットする倍率で表示する。 FitBV ページの境界ボックスの縦方向全体がウィンドウにフィットする倍率で表示する。 FitBV,left ページの垂直座標[left]で指定される位置を、ウィンドウの左端となるように配置し、ページの境界ボックスの縦方向全体がウィンドウにフィットする倍率で表示する。 キーワードの詳細は、ISO 32000-1のTable 151 - Destination syntaxを参照してください。
その他のパラメータは、参考資料[3] を参照してください。
主要ブラウザの内蔵PDFリーダーのサポート状況
現在(2020年4月)時点では、主なブラウザがそれぞれPDFリーダーを標準として組み込んでいます。Adobe Readerのブラウザ・プラグインを使うことは少なくなっています。そして、ブラウザ内蔵のPDFリーダーでのパラメータサポート状況は次の表のようになっています(2020年4月14日)。サポート状況はあまり良くありません。
ブラウザ | Chrome | FireFox | Microsoft Edge for Windows |
---|---|---|---|
バージョン | 81.0.4044.92 | 75.0 | 44.18362.449.0 |
移動先ページ指定 | OK | OK | OK |
移動先名指定 | idがあるページに進む。但し、位置は無視される。 | OK | 未対応 |
ズーム | OK | OK | 未対応 |
ズームと位置 | zoomはOK。位置は無視される。 | zoomはOK。位置は座標の原点を左下としている。 | Zoom、位置とも未対応 |
表示キーワード | Fit, FitH, FitVのみOK | 未対応 | 未対応 |
試験に使用したサンプルHTMLファイルへのリンク:pdflink.html
製品と参考資料へのリンク
