- 締切済み
Acrobatのリンクツールで他のPDFを開く
Adobe Acrobatのリンクツールを使用し、「A.pdf」の特定の場所をクリックすると、「B.pdfの3ページ目」を開くように設定しようと思います。 下記のJavaScript(相対パス)で、「B.pdf」は開けるようになったのですが、ページを指定する方法がわかりません。 app.openDoc("B.pdf"); ちなみに、「#page=3」では、「B.pdf」すら開きませんでした。 app.openDoc("B.pdf#page=3"); 恐れ入りますが、JavaScriptの記述についてご存じの方がおられましたら、ご教示願います。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- fujillin
- ベストアンサー率61% (1594/2576)
ANo2です。 もう少し新しいドキュメントがみつかりました。 http://kb2.adobe.com/jp/cps/511/511727/attachments/511727_js_api_reference.pdf これによれば、disclosed属性の設定はファイルオープン時に行う必要があるみたいですね。 (ファイル属性値として保持しているものだと勘違いしていました。) それなので、対象となるPDF側のスクリプトに this.disclosed = true; を登録しておいて、open時に実行されるようにしておけばOKです。 あとは以前の回答通り、開く側のPDFから var d = app.openDoc("hogehoge.pdf"); d.pageNum = 2; のような要領で呼び出せば、指定ページを開くことができます。 (pageNumは0スタートです) 開くだけであれば変数を介さずに、 app.openDoc("testSample.pdf").pageNum = 5; のような記述でも、指定ページが表示されます。 また、上記ドキュメントによれば、対象PDF側にnamed destinationが設定してあれば、disclosedの設定がされていなくても app.openDoc({ cPath: "hoge.pdf", cDest: "myDest" }); といった構文で、直接表示することも可能なようです。 (こちらは試していません)
- fujillin
- ベストアンサー率61% (1594/2576)
PDFのスクリプトはさわったことがないのですが… ネットで検索してみたところ、スクリプトに関するドキュメントが以下にありました。 バージョンがメチャ古いものですが、主なオブジェクト、プロパティ、メソッドについての参考にはなりそうに思います。 http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf (もっと新しいものがありそうですが、見つかりませんでした。) これによれば、openDocメソッドがドキュメントを返すので、そのpageNum(R/W)プロパティに表示のページを設定すればよさそうです。 ただし、ドキュメントを返す条件として対象ドキュメントのdisclosed属性がtrue(デフォルトはfalse)に設定されていることとなっています。 同様の記述がAdobeのサイトににもありました。(こちらも古そうですが…) http://kb2.adobe.com/jp/cps/221/221194.html …で、ドキュメントのdisclosedをtrueに設定する方法ですが・・・ スクリプトを作成して試してみましたが、対象ドキュメント側で this.disclosed = true; を実行しようとしても止まってしまうようです。 ちなみに属性値の取得はできて、falseが返ってきます。 残念ながら、ネットでちょいと調べた程度ではわかりませんでした。 もう少しなんですが、回答になってませんね。 まぁ、何かの参考にでもなれば・・・
- adobe_san
- ベストアンサー率21% (2103/9759)
>ちなみに、「#page=3」では、「B.pdf」すら開きませんでした。 当たり前でんがな! スクリプトはやのぉ~、一つのことしか行えまへん。 「このBを開いて3ページを表示」を構文にせんとあきまへん。 で、 >app.openDoc("B.pdf"); これで「Bを開く」はでてるんでっしゃろ。 じゃ次は「3ページに移動」ですわ。 this.pageNum = 2; 移動は「pageNum」で行いますんや。 1ページは「0」やさかい、3ページは「2」でっせ! app.openDoc("B.pdf"); this.pageNum = 2; これで行かへんやろか・・・ もしダメやったら http://ac-javascript.nnn2.com/?p=7 この「ページプロパティ」の設定することでんな! Bファイル1ページ目「ページプロパティ」に this.pageNum = 2; を埋め込む 試してみなはれ!
お礼
お礼がえろう遅うなってしもて、すんまへん。 回答おおきに。 できひん~どないしょ~と難儀してたんで、むちゃ勉強になってました。 ありがとさんどした。 また何やありましたら、よろしゅうおたのもうします。
お礼
お礼を申し上げるのが遅くなり、大変失礼致しました。 この度は、丁寧かつ詳細なご回答を頂き、ありがとうございます。 ドキュメントまでご紹介くださり、重ねてお礼申しあげます。 (活用しております。) 早速、教えていただいた方法を試みたところ、無事思っていた通りに動作させることができ、本当に嬉しかったです。 また何かあれば、ご相談させて頂く事もあると思いますが、その際はよろしくお願い致します。