2

私のデスクトップ アプリケーションでは、バッチ ファイルを使用してテキストベースのレポート作成と印刷を開発しました。これは、印刷がバルク サイズであり、定期預金領収書などのように 1 部の印刷を制限する必要がある場合があるためです。lqdsi 5235 ドット マトリックス プリンターを使用しています。作業ファイル。デスクトップ アプリケーション プロセスを次のように示します。

バッチファイルは次のようになります。

バッチファイルの名前: Dosprint.bat

Type %1 > prn

ネットワーク印刷の場合: バッチファイルの名前: Netprint.bat

Type %1 > \\SharedComputer\SharedPrinterName

アプリケーションでは、次のように印刷をリダイレクトします

Public Function printFile(ByVal mFileNamePath As String) As Boolean
Shell(Application.StartupPath & "\Printer\dosprint.bat " & mFileNamePath, AppWinStyle.Hide)
      Return True
End Function

印刷価値は非常に高く、数千枚の紙が印刷されることもあります。非常に安全で、部数や定期預金の領収書などすべてを管理でき
ます。Web アプリケーションで同じプロセスを実装する方法があれば教えてください。

4

2 に答える 2

1

Web アプリケーションからバッチ ファイルを実行する方法を意味する場合は、次のようにすることができます。

  System.Diagnostics.Process.Start(file.FullName) //where file is a FileInfo class

ファイルが Web アプリケーションからアクセス可能である限り (たとえば、bin フォルダー内にある場合)、

アプリが実行されているアカウントには、ファイルを実行するための十分なアクセス許可があります。

更新

印刷シナリオを処理する適切な方法は、コンテンツを単純かつ簡単に印刷できるようにレンダリングするページを作成することです。たとえば、表形式のデータに単純なテーブルを使用し、プレゼンテーションの大部分に白色を使用して、不必要にプリント カートリッジを消費したり、A4 やレターなどの特定のサイズでニーズに合った写真を使用したりしないようにします。その後、本文でこの関数を呼び出すことができます。鬼ごっこ:

 <body onload="window.print();">
    <!--content specially designed for proper printing -->
 </body>
于 2012-11-12T12:05:33.753 に答える
0

WWW.CODEPROJECT.COM の「JAVASCRIPT を使用したクライアント側でのファイル処理」という記事について、SachinKumar K 氏に感謝します。この記事で彼は、ActiveX オブジェクトを作成して実行できるように、Web サイトを信頼済みサイト リストに追加する必要があると述べました。

dos 印刷するには、以下のシステムに従って、クライアント システムのドット マトリックス プリンターで自分の Web サイトから dos ベースの印刷を取得しました。

  1. クライアント システムの設定: (Internet Explorer/ブラウザの設定)

    Internet Explorer →  ツール →  インターネット オプション →  セキュリティ (タブ) を開きます。

    信頼済みサイトにサーバー URL を追加する

    注: サイトの追加を許可するには、[このゾーン内のすべてのサイトにサーバーの検証 (https:) が必要] のチェックを外します (Web サイトが HTTPS でない場合)。

    次に、同じページのカスタム レベル タブを使用して、ActiveX コントロールとプラグインを有効にします。

    // バッチ ファイルを作成します。例: printme.bat. そして、バッチ ファイルに次のコマンドを入力します。

    %1 と入力 > prn

    //バッチ ファイルには、上記のように 1 つのコマンド ラインのみが含まれます。prn キーワードを LPT1 または \system_name\printer のような共有プリンターに変更できます。

    //必要に応じて、IIS_IUSRS を付与します。フォルダーへの IUSR アクセス許可には、ブラウザーからアクセスするための printme.bat ファイルが含まれています。

  2. 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 ディレクトリに存在します。

上記のシステムは私のために働いています。みんなありがとう、幸せなコーディング。

于 2015-12-19T06:54:47.013 に答える