PDFのページを開いた時に実行されるAcrobat Java Script のサンプル(その2)

前の「PDFのページを開いた時に実行されるAcrobat Java Script のサンプル」はどのようにしてイベントとして登録されていたのか不思議だった。が、その詳細がやっと判った。

  1. まずは「ページサムネイル」表示にAcrobatの表示を変更する。
  2. 「ページサムネイル」の該当ページをマウスで選択して、右クリックする。
  3. そのマウス上にポップアップメニューが表示される。
  4. そこから「ページのプロパティ」を選択クリックする。

「ページのプロパティ」表示操作

そうすると以下の「ページのプロパティ」画面が表示される。「アクション」タグを選択(クリック)すると、以下の様に既に「ページを開く」に「JavaScriptを実行」が設定されている事が分かる。「JavaScriptを実行」部分をマウスでクリックして選択状態にする。そして最下部の「編集」ボタンをクリックする。

「ページのプロパティ」の「アクション」タグ

以下のAcrobat JavaScriptを入力する画面が表示される。※既に入力されているが。
Acrobat Java Script 入力画面

上記のAcrobat JavaScriptが表示されている。ここで入力された内容はPDF内部では以下の様になる。

//————————————————————-
//—————–XMLタグは編集できません——————–
//————————————————————-

//<Page-Actions>
//<ACRO_source>Page1:ページを開く:Action1</ACRO_source>
//<ACRO_script>

/ 頁を開いた時にJava Scriptを実行する例 /

app.alert(“PDFの頁が開かれました。★”);
//</ACRO_script>
//</Page-Actions>
 

上記のようなXMLタグが付加されてPDFドキュメントにイベント(JavaScript)という形で内部に保存される。<Page-Action>でネット検索しても、この意味を見つけられない理由がこれで分かった。このXMLタグはAcrobat、又はAcrobat Readerが管理しているものであり、ユーザーが触るものでは無いからだ。コメントにある様に「XMLタグは編集できません」とあるが、これは「XMLタグは編集しては絶対だめです」と言っている事を意味する。つまり資料として公開するべきモノではなく、同時に変更してはいけないものだと言う事だ。

PDFのページを開いた時に実行されるAcrobat Java Script のサンプル

JavaScript例(2)

//————————————————————-
//—————–XMLタグは編集できません——————–
//————————————————————-
//<Page-Actions>
//<ACRO_source>Page1:ページを開く:Action1</ACRO_source>
//<ACRO_script>

/ 頁を開いた時にJava Scriptを実行する例 /
app.alert(“PDFの頁が開かれました。”);
//</ACRO_script>
//</Page-Actions>

【実行結果】
実行結果

【補足】

  • <Page-Actions>」タグがページを開いた時のイベント指定になっている。
  • /* 頁を開いた時にJava Scriptを実行する例 */ でなく
    / 頁を開いた時にJava Scriptを実行する例 / でもエラーにならない。

ボタンを押した時に実行されるAcrobat Java Script のサンプル

//————————————————————-
//—————–XMLタグは編集できません——————–
//————————————————————-
//<AcroForm>
//<ACRO_source>Button1:Annot1:MouseUp:Action1</ACRO_source>
//<ACRO_script>

/ ボタンを押した時に実行されるJavaScript /
var wd = this.getPageNumWords(0);
console.show();
console.println(“文字数=”+wd);
}
//</ACRO_script>
//</AcroForm>

【実行結果】
JavaScript実行結果(1)

【補足】
上記の例で重要なのは、青色の部分。Java Scriptでは「//」が文字の先頭にあるとその行は「//」以降はコメント扱いになると説明がある。しかし、Acrobat Java Script では「//」行にイベントの記述が出来る、みたいだ。
上記の例はPDFドキュメント上にあるボタンをクリックした時にイベントが関連つけられている。それが上記の内容となっている。その頁上にある文字数をコンソールに表示する。