0

進行中の要件の一部として、Visual Studio 2008 を使用して、Visual Basic 6 を使用して構築された従来の Windows フォーム アプリを .net Framework 3/3.5 に移行しています。要件があります: プリンターのリストを取得します。プリンターは、ネットワーク上の離れた場所に存在します。ユーザーがプリンターを選択した場合、システムはその特定のプリンターに Crystal レポートを印刷できる必要があります。Crystal Report Viewer を使用してレポートをプレビューしていますが、Crystal Report Viewer でレポートを呼び出すとすぐに、ネットワーク上のプリンターのドロップダウン リストで選択したプリンターにもレポートが送信されます。ネットワーク上のリモート プリンタに印刷するにはどうすればよいですか? 要件の一部としてこれを達成するために、c# と vs 2008 を使用しています。

4

1 に答える 1

0

私がやったことは次のとおりです。

  • データベース検索、XML ファイルなどを使用して、ネットワーク プリンター名 (\server\printer1、\server\printer2 など) のリストを手動で管理します。
  • クライアント ページで、プリンターのドロップダウンをレンダリングし、[印刷] ボタンを追加します。
  • これらのコントロールのすぐ下で、標準の印刷/エクスポート オプションを使用せずに Crystal Viewer をレンダリングします。
  • クライアントがフォーム/ページを送信すると、ドロップダウン プリンター ID に基づいてサーバー側の印刷を行います。

IIS で実行される無料の Crystal ランタイムを使用したサーバー側の印刷には、2 つのオプションがあります。

  1. 古い非推奨の方法: reportDocument.PrintToPrinter({printer settings}, {page settings}, {reformat}). {printer settings} でプリンター名を渡します。

  2. 好ましい方法:printOutputController.PrintReport({print options})

注: 方法 2 では、プリンター名は大文字と小文字が区別されSystem.Drawing.PrinterSettings.InstalledPrinters()、.NET プロセスを実行しているユーザーに表示されるようにインストールする必要があります。

于 2013-03-06T13:26:44.653 に答える