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
この投稿へのコメント