- - PR -
VBScriptでPDFを開きたい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-23 16:04
こんにちは。
ASP.netのRegisterStartupScriptを使って、クライアントにAcrobatでPDFを開くScriptを送って、PDFを開かせたいと思っています。 Scriptは以下のようになっています。 Dim objAcroApp Dim objAVDoc Dim objDoc Set objAcroApp = CreateObject("AcroExch.App") Set objDoc = CreateObject("AcroExch.PDDoc") Set objAVDoc = CreateObject("AcroExch.AVDoc") objDoc.open("ファイル名") objAVDoc = objDoc.OpenAVDoc("") objAcroApp.GetActiveDoc objAcroApp.Show objAVDoc = objDoc.OpenAVDoc("") のところで、 「オブジェクトでサポートされていないプロパティまたはメソッドです。」 というエラーになってしまいます。 VBでAcrobatを参照したときはこれでも開けたのですが、 VBScriptでは開けません。 VBScriptでAcrobat(7.0)を立ち上げ、PDFを開くには、どのようにすればよいのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2005-02-23 16:09
window.open("PDFのURL")
じゃ駄目ですか? | ||||
|
投稿日時: 2005-02-23 16:18
ローカルにあるPDFファイルを開くんですか?
セキュリティー的に可能なんでしょうか。。。 | ||||
|
投稿日時: 2005-02-23 16:30
セキュリティ等は問題ではないのです。
| ||||
|
投稿日時: 2005-02-24 09:22
「可能かどうか」に関わるので、大問題だと思われますが・・・ 詳しくはないし、試してもいませんが、「できない」に1票です。 スクリプトによって勝手にローカルのファイルを開かれたら、一般的には困るはずです。 また、サーバーがどのようにクライアント上のPDFファイルの場所を知るのかも不明です。 上記問題はとりあえず置いておき、提示されたスクリプトについてですが、 私の環境(VB6.0 or VB.NET + Acrobat Reader 6.0)では動作しませんでした。 おそらく、「Acrobat(Readerでないやつ)がインストール済みのPC専用」という前提と 思いますが、この認識で正しいのでしょうか? 単純にPDFを開くだけだったら、別にAcrobatのオブジェクトを使用しなくても可能ですが、 どうしてもAcrobatのオブジェクトを使用する必要があるのでしょうか? | ||||
|
投稿日時: 2005-02-24 10:07
クライアントにAdobe Readerが入っていて、拡張子「pdf」がAdobe Readerに
関連付けられているのでしたら、URLに http://○○○○.com/sample.pdf と指定すれば、Adobe Readerがブラウザ内で起動すると思うのですが、 (↑Adobe Reader単体で起動するオプションがあるかも。) 今回のPDFファイルは閲覧用で、サーバにあるということでよいでしょうか? そうではなく、kanaiさんの仰るように、Readerではなく、Acrobatそのもので 編集できるようにするのが目的であれば、クライアントにAcrobatが入っている 必要がありますが。 [ メッセージ編集済み 編集者: Vacant-Eyes 編集日時 2005-02-24 10:20 ] | ||||
|
投稿日時: 2005-02-24 16:20
やりたいことは、Vacant-Eyesさんが書かれた ・今回のPDFファイルは閲覧用で、サーバにある ということでまずは間違いないでしょうか? あと、PDFの表示は、 @PDFをそのままブラウザ内で表示?(http://〜.pdfで開く形) APDFを画面の指定された箇所で表示? のどちらなのでしょうか? Aであれば、私の場合は以前にPDF.OCXを使用し(このときのバージョンはAcrobat(6.0)でしたが)作成しました。 <EMBED language="javascript" src="〜.pdf" id=〜"></EMBED> をRegisterStartupScriptにて掃き出す感じです。 ※Acrobat7.0からはAcroPDF.dllというActiveXを使用しているので、ここが注意点かもしれません。 |
1