• 締切済み

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の記述についてご存じの方がおられましたら、ご教示願います。  

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

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" }); といった構文で、直接表示することも可能なようです。 (こちらは試していません)

taroanija
質問者

お礼

お礼を申し上げるのが遅くなり、大変失礼致しました。   この度は、丁寧かつ詳細なご回答を頂き、ありがとうございます。 ドキュメントまでご紹介くださり、重ねてお礼申しあげます。 (活用しております。)   早速、教えていただいた方法を試みたところ、無事思っていた通りに動作させることができ、本当に嬉しかったです。   また何かあれば、ご相談させて頂く事もあると思いますが、その際はよろしくお願い致します。  

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

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)
回答No.1

>ちなみに、「#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; を埋め込む 試してみなはれ!

taroanija
質問者

お礼

お礼がえろう遅うなってしもて、すんまへん。 回答おおきに。   できひん~どないしょ~と難儀してたんで、むちゃ勉強になってました。 ありがとさんどした。   また何やありましたら、よろしゅうおたのもうします。  

関連するQ&A