ScriptXでWebページ印刷設定

今回、あるWebページをA4横で印刷しないといけなくなりました。
Webページの印刷設定は、クライアントのプリンタの設定に依存します。
印刷時の用紙方向指定は、javascriptで可能なのか?と調査したところjavascriptでは無理と判明。

で、引き続き調査してみると「ScriptX」なるものを発見。
 IE用のActiveXコントロールで、印刷時の設定が可能になります。

   ScriptX本家: http://www.meadroid.com/scriptx/

上記サイトの「Dowonload」から「smsx.cab」をダウンロードし、Webサーバーの公開領域に配置します。
あとは、必要なページに以下のコードを挿入。

<!-- MeadCo ScriptX -->
<object id=factory style="display:none"
  classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
  codebase="http://【smsx.cab設置場所のパス】/smsx.cab#Version=6,5,439,30">
</object>
 呼び出し用javascriptを以下のように作成。
<script>
function printWindow() {
factory.printing.header = "ヘッダ名";
factory.printing.footer = "フッタ名";
factory.printing.portrait = false; // 用紙方向 true: 縦 false: 横
factory.printing.leftMargin = 1.0;
factory.printing.topMargin = 1.0;
factory.printing.rightMargin = 1.0;
factory.printing.bottomMargin = 1.0;
factory.printing.Print(false);
}
</script>

上記のjavascriptを呼び出し。
 <input type="button" value="ScriptXで印刷" onclick="printWindow();" />

これでA4横での出力ができるようになりました。
そのほかにも、
 ・ヘッダ・フッタに、現在日・ページ数出力
   factory.printing.header = "ヘッダ名 &b 日付: &d"; // 現在日出力
   factory.printing.footer = "フッタ名 &b &p/&P ページ";     // ページ数出力
 ・直接印刷(印刷ダイアログ表示なし)
   factory.printing.Print(true);
 ・プレビュー画面を表示
   factory.printing.Preview();
のような事も可能です。

有償ライセンス版は、用紙サイズまで変更可能なようです。
ちなみに、ActiveXコントロールなので、初回起動時にインストーラが立ち上がります。
その事を考えると、社内用Webシステム等限定した環境であれば、有用なコントロールだと思います。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL