PDFドキュメント(ファイル)を開いた時のイベントは無い

残念だが、文書(PDF)を開いた時のイベントは無い。印刷や閉じる時のイベントは登録できる。メニューから、[アドバンスト] -> [文書処理] -> [文書のアクションを設定] を選択クリックする。
メニュー選択

すると以下の「アクションの設定」画面が表示される。ここでAcrobat JavaScriptが入力できる。
文書レベルのイベント

PDFドキュメント(ファイル)を開いた時のイベントが無いのは、セキュリティ上の問題と予測される。俗に言うクラックされるのを防いでいるのでは無いかと勝手に予測している。

注意)上記は誤りです。コメントを見てください。PDFドキュメント時にJavaScriptの実行は可能です。動作も確認済みです。 ※環境Adobe Acrobat Pro v8.1.3 + Windows XP Pro

テスト失敗?

Excel VBAからOLE経由でPDFファイルを開いて、イベントを発生させ、同時にAcrobat JavaScriptを実行させようとしたが、うまくいかない。イベントが発生しない。それ以前に、以前画面表示出来たExcel VBAでPDFの画面表示が出来ない。

  • Excel起動
  • Excel VBA起動
  • Excel VBAから、OLE経由でAcrobatをコントロールし、PDFファイルを開く。
  • 同時にPDF内部にあるイベントにJavaAScriptを入れて置き、イベントと同時に実行させる。

が、出来ない。 どこが以前と違うんだ。

当サイトの目的

当サイトは現時点で、 Acrobat JavaScript の使用方法の全貌を見極めるのが、最終目的では無い。詳細を書くとややこしいので省略させてもらうが、PDFドキュメント内の注釈をテキストファイルで出力するのが目的だ。更に汎用性を持たせる為に、外部プログラムからプログラミングコントロールして、指定したPDFドキュメント(ファイル)からそれを実行させる。これが当初の目的としている。実はこの部分が一番難しいと思っている。 途中で部分的に手段(手順)が変わるかもしれないが、それを目標とする。

よって、一部解説が順飛ばしになるかもしれない。その点はご勘弁して頂きたい。現時点(2008/12/05)では、質問に答えるべき知識は無いので、コメントは控えて頂きたい。

但し、情報提供に関するコメントは歓迎する。間違いの指摘も歓迎させて頂く。その時はよろしくお願いしたい。

Acrobat JavaScript の使い方を勉強するには

英語の解説書はAdobe社から沢山出ている。しかし、日本語となるとなかなか無いのが現状だ。特にここ数年?は日本語のプログラマー向けの詳細な解説書をAdobe社は出していない。
しかし、Acrobat JavaScriptは本来のJavaScriptにAcrobat特有のオブジェクト(プロパティ+メソッド)を追加しているにすぎない。また、それ程ここ数年?、Acrobat JavaScriptに大きな機能追加があった様にも思えない。よって多少古いが以下に日本語の解説書がある。ダウンロードしてゆっくりと見てほしい。JavaScriptを知らない人でも多少は基本部分の解説も入っているのでそっちの方も参考になる。

 テクニカルノート# 5186
Acrobat JavaScript Object Specification

http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf
バージョン は 5.0.5 だが十分な内容と思っている。一読をお勧めする。
※無くなる前に、保存を!

 なお、英語版だが現時点でのAcrobat v9.0のSDKドキュメント上にあるJavaScriptの解説はWEB上から見れるようになっている。
http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?&accessible=true

初期表示まで結構時間が掛かるが、最新の内容が見れる。
以下が、ブラウザで見た画面左側部分だ。
PDFドキュメントのしおりと同じ操作になっている。

[JavaScript] -> [JavaScript for API Reference] -> [JavaScript API]

JavaScript for API

標準化 : 変数名

Acrobat JavaScriptで扱う変数名の標準化。
変数名の接頭辞を以下とする。あくまでも例です。

  • 数値 : 先頭に「n」を付ける。 例:nCount、nMax
  • ブーリアン : 先頭に「b」を付ける。 例:bSkip、bRet
  • 文字列 : 先頭に「s」を付ける。 例:sString、sName
  • グローバルスコープ : 先頭に「g」を付ける。 例:gbFlag、gsType