「this.」をJavascriptから外す

マニュアルに書いている通りに実行しているのに動作環境で結果に差がある現象に遭遇しました。

  1. AcrobatのJavascriptデバッガー :正常
  2. OLE起動のAcrobat JavaAScript :一部で動作不良

ページ中に存在する複数の単語が1つに連結されて返される不具合です。Quads座標も連結されて返されます。連結された座標はどれがテキストに相当するかが判断できません。

以下がその不具合が出たJavascriptです。

// 先頭頁の単語を座標と共に全て出力
var numWords = this.getPageNumWords(0);
for (var j = 0; j < numWords; j++){
nWord = this.getPagenWord( 0,j );
aQuads= this.getPagenWordQuads( 0,j );
console.println(j + ” [“ + nWord + “](“ + nWord.length + “) = “ + aQuads);
}

頭の「this.」を外したところ、共に問題なく動作するようになりました。

// 先頭頁の単語を座標と共に全て出力
var numWords = getPageNumWords(0);
for (var j = 0; j < numWords; j++){
nWord = getPagenWord( 0,j );
aQuads= getPagenWordQuads( 0,j );
console.println(j + ” [“ + nWord + “](“ + nWord.length + “) = “ + aQuads);
}

JavaScript で Doc オブジェクトにアクセスする時に「this オブジェクトは、通常、基盤となる文書の Doc オブジェクトを表します。」という記述がマニュアルには有ります。サンプルを見ると

// この文書のページ数を取得
var nPages = this.numPages;
// トリミング領域を取得
var aCrop = this.getPageBox();

動作環境での違い。

  • Acrobat XI:Acrobat OLEで一部動作不良
  • Acrobat DC:共に正常

Acrobat DCでは共に問題なく動作します。上記以外のバージョンは未確認です。

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行する

Acrobat の JavaScript デバッガーで JavaScript が実行できます。

JavaScript デバッガーのコンソールボックスで JavaScript を実行し、その結果を取得する方法を手順で示します。

 

実行する JavaScript は以下で、結果はコンソールに出力されます。

//(p.126) メニュー項目をコンソールに表示
function FancyMenuList(m, nLevel)
{
var s = “”;
for (var i = 0; i < nLevel; i++) s += ” “;
console.println(s + “+-“ + m.cName);
if ( m.oChildren != null )
for ( var i = 0; i < m.oChildren.length; i++ )
FancyMenuList(m.oChildren[i], nLevel + 1);
}
var m = app.listMenuItems();
for ( var i=0; i < m.length; i++ ) FancyMenuList(m[i], 0);

下にAcrobat 5 , 6 , 7 , 8 , 9 , X (10) も簡単に紹介します。

 

Acrobat XI (11.0) で JavaScript を実行する手順と方法

 

① Acrobat XI のメニューから [表示(V)] -> [ツールセット(O)] -> [デフォルトのツール] をマウスで選択します。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

② 更にメニューから [表示(V)] -> [ツール(T)] -> [JavaScript(V)] をマウスで選択します。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

③ 画面右下の [JavaScript デバッガー] をマウスでクリックします。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

④ 以下のJavaScript デバッガー画面が表示されます。

※事前に実行したいJavaScript コードをクリップボードにコピーして置きます。

下のコンソールボックスにマウスカーソルを持って行って、マウスでクリックします。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑤ 以下のダイアログボックスが表示されます。

はい(Y)」をマウスでクリックします。

※表示されない場合もあります。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

Adobe Acrobat
インタラクティブコンソールは現在使用できません。使用可能にしますか?
はい(Y) いいえ(N)

 

<注意>

以下の様に画面下のボックスに何かが表示されていたら消す必要があります。

画面右下のゴミ箱ボタンをマウスでクリックします。

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑥ 再度JavaScript デバッガー画面の下のコンソールボックスをマウスで右クリックします。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑦ 以下のポップアップメニューが表示されるので、[ペースト(A)] を選択します。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑧ 事前にクリップボードにコピーしておいたJavaScript コードが下のコンソールボックスに張り付きます。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑨ 貼り付けたJavaScript コード全体を選択状態にします。

注意:すべてのJavaScript コードを完全に選択してください。
キーボードの[Ctrl] + [A] でも出来ます。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑩ 上記のように選択状態になったら、

キーボード上の [Ctrl] キーを押したままで [Enter] を押します。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑪ JavaAcript コードが実行され、その結果もコンソールボックス上に表示されます。

結果が表示されない、実行されない場合は、

  1. JavaScriptコードに間違いが有る
  2. 選択状態に漏れが有る
  3. 上記⑩の操作が間違っている、うまくできてない -> もう一度行う

です。 再度確認してください。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑫ 次はJavaScript の実行結果を取り出します。

結果は同じコンソールボックスにJavaScript コードの後に入っています。

キーボードの [Ctrl] + [A] キーを押して、全てを選択状態にします。

そして、マウスの右クリックをして、表示されるポップアップメニューから、[コピー(C)] を選択します。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑬ クリップボードに結果がコピーされます。

コンソールボックスの内容を消します。

画面右下のゴミ箱ボタンをマウスでクリックします。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑭ JavaScript デバッガー画面も不要なので消します。

 

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

⑮ クリップボードの内容をテキストエディタに貼り付けます。

前にJavaScript コード、その後に実行結果が入っています。

Acrobat JavaScript デバッガー・コンソールでJavaScriptを実行

 

 

Acrobat 5 の場合

メニューから [ツール(T)] -> [JavaScript(J)] -> [コンソール(C)…] をマウスで選択します。

 

Acrobat 5 のJavaScript デバッガー・コンソールでJavaScriptを実行

 

Acrobat 6 の場合

メニューから [アドバンスト(A)] -> [JavaScript(J)] -> [デバッガ(B)…] をマウスで選択します。

 

Acrobat 6 のJavaScript デバッガー・コンソールでJavaScriptを実行

 

Acrobat 7 の場合

メニューから [アドバンスト(A)] -> [JavaScript(J)] -> [デバッガ(B)…] をマウスで選択します。

 

Acrobat 7 のJavaScript デバッガー・コンソールでJavaScriptを実行

 

Acrobat 8 の場合

メニューから [アドバンスト(A)] -> [文書処理(D)] -> [バッチ処理(B)…] をマウスで選択します。

 

Acrobat 8 のJavaScript デバッガー・コンソールでJavaScriptを実行

 

Acrobat 9 の場合

メニューから [アドバンスト(A)] -> [文書処理(D)] -> [バッチ処理(B)…] をマウスで選択します。

 

Acrobat 9 のJavaScript デバッガー・コンソールでJavaScriptを実行

 

Acrobat X (10) の場合

 

メニューから [表示(V)] -> [ツール(T)] -> [JavaScript(V)] をマウスで選択します。

後はAcrobat XI の③からの操作となります。

 

Acrobat X (10) のJavaScript デバッガー・コンソールでJavaScriptを実行