WPFアプリケーションでページを印刷しようとしています。PrintVisual()メソッドの使いやすさのおかげで、キャンバスとして作成することにしました。
問題は、プリンター名を動的に設定できないことです。[印刷ダイアログ]ボックスを使用することもできません。スタッフは印刷ボタンをクリックできる必要があり、割り当てられたプリンターに自動的に印刷されます(構成ファイルから読み取ることで割り当てられます)。 、Windowsのデフォルトプリンタに基づくものではありません)。これは、印刷ページのイベントハンドラー(PrintDocumentの一部です。たとえばpd.PrintPage += new PrintPageEventHandler(pageLayoutForPrint)))
、プリンター名を(文字列として)設定することもできるため)を使用して可能ですが、怠惰になり、組み込みのメソッドを利用しようとしています。
私は印刷にとても慣れていませんが、ここに私の2つの質問があります
PrintVisualメソッドを使用する場合、printerNameを設定できますか?
printerNameを設定できない場合、キャンバスを印刷する最良の方法は何ですか?効果的に座標をマッピングして印刷し、それをプリンターに渡す理論です。たとえば、テキストボックスだけでドキュメントを印刷するには、次の擬似コードを使用できます。
int left = textbox.Left;
int top = textbox.Top;
e.Graphics.DrawString(Textbox.Text, printFont, Brushes.Black, left, top, new StringFormat());