WWW.CODEPROJECT.COM の「JAVASCRIPT を使用したクライアント側でのファイル処理」という記事について、SachinKumar K 氏に感謝します。この記事で彼は、ActiveX オブジェクトを作成して実行できるように、Web サイトを信頼済みサイト リストに追加する必要があると述べました。
dos 印刷するには、以下のシステムに従って、クライアント システムのドット マトリックス プリンターで自分の Web サイトから dos ベースの印刷を取得しました。
クライアント システムの設定: (Internet Explorer/ブラウザの設定)
Internet Explorer → ツール → インターネット オプション → セキュリティ (タブ) を開きます。
信頼済みサイトにサーバー URL を追加する
注: サイトの追加を許可するには、[このゾーン内のすべてのサイトにサーバーの検証 (https:) が必要] のチェックを外します (Web サイトが HTTPS でない場合)。
次に、同じページのカスタム レベル タブを使用して、ActiveX コントロールとプラグインを有効にします。
// バッチ ファイルを作成します。例: printme.bat. そして、バッチ ファイルに次のコマンドを入力します。
%1 と入力 > prn
//バッチ ファイルには、上記のように 1 つのコマンド ラインのみが含まれます。prn キーワードを LPT1 または \system_name\printer のような共有プリンターに変更できます。
//必要に応じて、IIS_IUSRS を付与します。フォルダーへの IUSR アクセス許可には、ブラウザーからアクセスするための printme.bat ファイルが含まれています。
Web ページ タグの定義と JavaScript の実装:
// PRE タグを使用します。生データ(ASCII)をフォーマットされていない方法で保存します
<pre id="predata" runat="server" style="display:none;"></pre>
<asp:Button Text="Print Report" runat="server" ID="btnprint" Width="101px" CssClass="buttonstyle" BackColor="DarkSlateGray" ForeColor="Aqua" OnClientClick="dosprint()" />
<%-- JAVA SCRIPT FOR PRINTING --%>
<script>
function dosprint () {
var fso, tempfile,mdata;
var fname = { key: 'value' };
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile(fname) {
var tfolder, tfile, tname, fname, TemporaryFolder = 2;
tfolder = fso.GetSpecialFolder(TemporaryFolder);
tname = fso.GetTempName();
fname.key = tfolder + '\\' + tname;
tfile = tfolder.CreateTextFile(tname);
return (tfile);
}
tempfile = CreateTempFile(fname);
mdata = document.getElementById('<%= predata.ClientID %>').innerText;
tempfile.writeline(mdata);
tempfile.close();
objShell = new ActiveXObject("WScript.Shell");
comspec = objShell.ExpandEnvironmentStrings("%comspec%");
objExec = objShell.Exec('c:\\temp\\printme.bat ' + fname.key);
// give double back slash to get a back slash in path
}
</script>
上記のコードでは、PRINTME.BAT バッチ ファイルがクライアント システムの c:\temp ディレクトリに存在します。
上記のシステムは私のために働いています。みんなありがとう、幸せなコーディング。