C#でイメージの両面印刷を実行したいです。
PrintDocument クラスのプロパティに両面での印刷を指定しているのですが、実行すると片面のみしか印刷ができておりません。
プリンタ自体は両面に対応しているものなので、両面印刷は不可ではないと思うのですが...
やりよう知っている方いましたら教えていただきたいです。
C#
1 /// <summary> 2 /// 印刷ボタン押下イベント 3 /// </summary> 4 private void PrintButton_Click(object sender, EventArgs e) 5 { 6 //プリンタ名設定 7 var printerName = "プリンタ名"; 8 9 //PrintDocumentオブジェクトの作成 10 System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument(); 11 12 pd.PrinterSettings.PrinterName = printerName; 13 //PrintPageイベントハンドラの追加 14 pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage); 15 //両面印刷機能の有無 16 //両面に設定 17 if (pd.PrinterSettings.CanDuplex) 18 { 19 pd.PrinterSettings.Duplex = Duplex.Horizontal; 20 } 21 22 //印刷開始 23 pd.Print(); 24 } 25 26 //PrintPageイベントハンドラ 27 private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 28 { 29 { 30 //画像を読み込む 31 Image img = Image.FromFile("test.bmp"); 32 //画像を描画する 33 e.Graphics.DrawImage(img, e.MarginBounds); 34 //後始末をする 35 img.Dispose(); 36 } 37 }
複数ページ印字しているのでしょうか?
現在提示されているソースではそれが読み取れません。
最低でもe.HasMorePagesをどうしているのか記載してください。
掲載したコードが間違っていました。
HasMorePagesについては現在判定しておりません。
それによってページが1枚と認識されているせいで、両面印刷ができていないのでしょうか?
HasMorePagesは、コールバックで、使う側(今回ならばmiisyaさん)が設定するべきプロパティです。
使い方などは以下をご確認ください。
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.printing.printpageeventargs.hasmorepages?view=dotnet-plat-ext-6.0
https://docs.microsoft.com/ja-jp/dotnet/desktop/winforms/advanced/how-to-print-a-multi-page-text-file-in-windows-forms?view=netframeworkdesktop-4.8

回答1件
あなたの回答
tips
プレビュー