• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ASP.NET(VB) + JavaScriptで印刷プレビュー)

ASP.NET(VB) + JavaScriptでWebページの印刷プレビューを表示する方法

このQ&Aのポイント
  • ASP.NET(VB) + JavaScriptを使用してWebページの印刷プレビューを表示する方法について説明します。
  • JavaScriptのコードを組み込んで実行する際にエラーが発生した場合、参照設定が必要になることがあります。
  • 初めての開発で基礎的な知識がない場合は、他の方法を検討することもできます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

参照設定とは全く無縁です。 ActiveXを利用したJavaScriptですので、権限の問題です。 aspxであろうと、htmであろうと、そのページを閲覧するブラウザのセキュリティ設定に依存します。 おそらくIE6だと標準で動きます。 IE7は不明です。 IE8はセキュリティを下げないと動かないかもしれません。 http://okwave.jp/qa/q6104792.html でも答えたのですが、同様の事例です。 質問者さんはサーバサイドの意味を理解する必要があります。 参照設定の問題は、WEBプロジェクトの場合、コンパイルが通らないときに考えられる要素です。 Javascriptに参照設定は関係ありません。 一応下はaspxでの作成例です。 ビハインドコードを利用していません。 <%@ Page Language="VB" Inherits="System.Web.UI.Page" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>無題のページ</title> <script type="text/javascript"> function PrintPreview() { if(window.ActiveXObject == null || document.body.insertAdjacentHTML == null) return; var sWebBrowserCode = '<object width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>'; document.body.insertAdjacentHTML('beforeEnd', sWebBrowserCode); var objWebBrowser = document.body.lastChild; if(objWebBrowser == null) return; objWebBrowser.ExecWB(7, 1); document.body.removeChild(objWebBrowser); } </script> </head> <body> <form id="form1" runat="server"> <input type="button" value="PrintPreview" onclick="PrintPreview();" /> </form> </body> </html>

tera333
質問者

お礼

ご指摘の通り、ブラウザのセキュリティ設定にて解決しました。 冷静になって考えればすぐにわかりそうなものなのに、何日も悩んでしまいました。 本当にお恥ずかしい限りです。 丁寧に教えてくださり、ありがとうございました。

その他の回答 (1)

回答No.1

ExecWB引数 http://docs.codegear.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/_!!CONSTANTS_SHDocVw_14_Constants.html いっぱいあります。 探しづらいですよね^^; そこで http://fusigidane.seesaa.net/article/136751944.html のページ中を OLECMDID_PRINTPREVIEW で検索 ExecWB に関する引数の説明をしてくれています。 質問者さんは、おそらく http://okwave.jp/qa/q1906268.html を見て作成されているのでしょうが、私の環境では動きます。 objWebBrowser.ExecWB(7, 1); という引数の値を疑ったのかもしれませんが、それでよいです。 OLECMDID_PRINTPREVIEW = 7 OLECMDEXECOPT_PROMPTUSER = 1 考えられるのは、、、 ・プリンタが一つも設定されていないPCから起動している ・IE以外で動作確認を行っている。(IE以外で動作が保障はされません) というところでしょうか。。。

tera333
質問者

補足

回答ありがとうございます。 説明が足りなくて申し訳ありません。 ブラウザはIE8を使っています。 サンプルソースをテキストに貼り付けて実行した場合は問題なく動くのですが、 aspxに記述した場合、「オブジェクトでサポートされていないプロパティまたはメソッドです。」 というエラーがでてしまうため、参照設定等が足りないのかと思った次第です。

関連するQ&A