Source: Adobe
AcrobatのJavaScriptプログラムで、リンクでページを移動した時に、しおりも一緒に移動(ハイライト)させたい。かつ、しおりが大量にあって画面から見えない位置の場合はスクロールさせたい。
迷宮入りしてネット上をさまよっている同類達のために答えを先に書きます。
app.execMenuItem("FindCurrentBookmark");
AcrobatのJavaScriptリファレンスガイドでは、特定のしおりをハイライトさせたり、階層で閉じられているしおりを開く機能は掲載されています。しかし、しおりが大量にあって画面から見えない位置にあってもスクロールはしてくれません。ハイライトも小さいアイコンの色が薄く変化するだけで見難いです。
しかし、冒頭の機能は標準機能で提供されています。
Acrobat Reader では「最新のブックマークを検索」
古いバージョンの Acrobat Professional では「現在のしおりを展開」
この機能はリンクを作成する時に付加することができます。しかしJavaScriptで利用する方法(呪文)はどこを探しても見つかりませんでした。
最初にとった行動は、「最新のブックマークを検索」「現在のしおりを展開」でGoogle検索です。結果は得られず。
次いでこれらのキーワードを英訳してGoogle検索。JavaScriptの呪文は英語の短縮形のはずですから、この標準機能が英語版Acrobatで何と言っているのかも調べました。
すると「Expand Current Bookmark」であることが分かりました。
日本語にすると「現在のしおりを展開」ですね。
標準機能であり、英語名が分かりましたので、JavaScriptから標準機能を実行する方法を調べます。これはJavaScriptリファレンスガイドにあります。
app.execMenuItem();
あと少し!
標準の各メニュー項目がJavaScriptでは何という呪文になっているのか。
これもJavaScriptリファレンスガイドにヒントがあります。
app.listMenuItems();
さっそく Acrobatで呪文を唱えると、全てのメニュー項目の呪文が出力されました。しかし、肝心のしおり関連がありませんでした。くそっ。「Expand Current Bookmark」がしおりパネルの中の機能だからか?
Acrobatのバージョンが古いからかもしれないので、listMenuItemsをキーワードにしてGoogle検索すると…
ありました。
Acrobat:Menu and Toolbar Button Names 一覧 | PDF
ここにbookmark関連の呪文が載っていました!
FindCurrentBookmark
というわけで一件落着。メニュー項目を掲載してくれたサイトに大感謝です。
顧客からの要望はリンク機能だけで、しおりを同期させることは言われていませんが、要望に対して120%の結果を出すことは大切ですからね。