tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル白黒印刷
記事No3290
投稿日: 2006/03/16(Thu) 01:40
投稿者ip
[OSのVer]:WindowsXP SP2 [VBのVer]:Visual Basic 2005
PrintDocumentを使って印刷をしていますが、印刷するデータはそのままで
PageSetupDialogを使わずにプリンタの設定で白黒印刷をしたいのですが可能でしょうか?

コスト削減の為なのでプリンタの設定がカラーのままでは何の意味もありません。
PC操作に不慣れな人が多いのでコンボボタンでカラーと白黒を選択できればと思ってます。

どなたかいい方法をお願いします。

[ツリー表示へ]
タイトルRe: 白黒印刷
記事No3292
投稿日: 2006/03/16(Thu) 08:04
投稿者花ちゃん
> PrintDocumentを使って印刷をしていますが、印刷するデータはそのままで
> PageSetupDialogを使わずにプリンタの設定で白黒印刷をしたいのですが可能でしょうか?

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
   PrintDocument1.DefaultPageSettings.Color = False
   PrintDocument1.Print()
End Sub
で、できなかったのでしょうか?
(MSDN  PageSettings.Color プロパティ の使用例、参照)

[ツリー表示へ]
タイトルRe^2: 白黒印刷
記事No3296
投稿日: 2006/03/16(Thu) 21:34
投稿者ip
> Private Sub Button1_Click(ByVal sender As System.Object, _
>                           ByVal e As System.EventArgs) Handles Button1.Click
>    PrintDocument1.DefaultPageSettings.Color = False
>    PrintDocument1.Print()
> End Sub
> で、できなかったのでしょうか?
カラーで印刷されてしまいます。

> (MSDN  PageSettings.Color プロパティ の使用例、参照)
e.PageSettings.Color = True
上記をPrintDocumentの最初に追記しても出力はカラーでした。

[ツリー表示へ]
タイトルRe^3: 白黒印刷
記事No3297
投稿日: 2006/03/16(Thu) 21:47
投稿者花ちゃん
> 上記をPrintDocumentの最初に追記しても出力はカラーでした。

私が投稿したのは、下記設定ですよ。 True はカラー印刷になります。
PrintDocument1.DefaultPageSettings.Color = False


下記コードを試して見て下さい。
'---------------------------------------------------------------------

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
   PrintDocument1.DefaultPageSettings.Color = False
   PrintDocument1.Print()
End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System. _
            Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

   Dim picWidth As Integer = PictureBox1.Width
   Dim picHeight As Integer = PictureBox1.Height
   e.Graphics.DrawImage(PictureBox1.Image, 10, 10, picWidth, picHeight)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load
   PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
   PictureBox1.Image = System.Drawing.Image.FromFile("c:\test.bmp")
End Sub

[ツリー表示へ]
タイトルRe^4: 白黒印刷
記事No3298
投稿日: 2006/03/16(Thu) 22:19
投稿者ip
申し訳ありません。
先程の「True」は記載ミスでプログラムには間違いなく「False」と書きました。
最初はご指示の通りに書き変えたのですがカラーで印刷されてしまう為
ヘルプを参考に
e.PageSettings.Color = False
と書き変えたのですがダメでした。
ただいま投稿していただいたソースを実行したのですが何故かカラーで出力されてしまいます。
何か原因が思い当たりますか?

[ツリー表示へ]
タイトルRe^5: 白黒印刷
記事No3299
投稿日: 2006/03/16(Thu) 22:31
投稿者花ちゃん
> 何か原因が思い当たりますか?
コードに間違いがないならプリンターがサポートしていないのでは。
(投稿したコードをそのままで試したのでしょうか?)

[ツリー表示へ]
タイトルRe^6: 白黒印刷
記事No3301
投稿日: 2006/03/16(Thu) 22:46
投稿者ip
> コードに間違いがないならプリンターがサポートしていないのでは。
> (投稿したコードをそのままで試したのでしょうか?)
投稿していただいたコードをそのままコピーし画像ファイル名のみ変更しました。

[ツリー表示へ]
タイトルRe^7: 白黒印刷
記事No3302
投稿日: 2006/03/16(Thu) 23:01
投稿者花ちゃん
> 投稿していただいたコードをそのままコピーし画像ファイル名のみ変更しました。
新たに作成したものですよね?
プリンターは、そのPCに直接つながっているプリンターですか? ネットワークプリンター
ですか?

[ツリー表示へ]
タイトルRe^8: 白黒印刷
記事No3303
投稿日: 2006/03/16(Thu) 23:06
投稿者ip
> 新たに作成したものですよね?
はい、新しく作成しました。

> プリンターは、そのPCに直接つながっているプリンターですか? ネットワークプリンター
> ですか?
PCから直接USBで接続しているCANONiP3100です。
USBのハブも使用していません

[ツリー表示へ]
タイトルRe: 白黒印刷
記事No3304
投稿日: 2006/03/16(Thu) 23:38
投稿者花ちゃん
同じプログラムで下記を追加して実行した場合どのようになりますか?
又、他のプリンターで試せるようなら確認して見てください。


Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
   If PrintDocument1.PrinterSettings.SupportsColor Then
      PrintDocument1.DefaultPageSettings.Color = False
      MessageBox.Show(PrintDocument1.DefaultPageSettings.Color)
   End If
End Sub

[ツリー表示へ]
タイトルRe^2: 白黒印刷
記事No3305
投稿日: 2006/03/17(Fri) 00:31
投稿者ip
メッセージボックスにFalseと表示されます。
印刷はやはりカラーです。
明日別のプリンタ(ネットワークプリンタですけど)で試してみます。

[ツリー表示へ]
タイトルRe^3: 白黒印刷
記事No3308
投稿日: 2006/03/17(Fri) 07:25
投稿者YAS
ipさん,花ちゃんさん,こんにちは。
途中から失礼します。
私の環境(WinXPsp2,EpsonPM-3500C,VB2005)では,

e.PageSettings.Color = False -> カラーで印刷されてしまう

PrintDocument.DefaultPageSettings.Color = False -> 白黒で印刷される

でした。
ただ,PrintPreviewControlではどちらもカラーで表示されました。

[ツリー表示へ]
タイトルRe^4: 白黒印刷
記事No3309
投稿日: 2006/03/17(Fri) 08:52
投稿者花ちゃん
> e.PageSettings.Color = False -> カラーで印刷されてしまう
プリンターの設定を変更するのだから当然上記では反映されませんよね。
下記を印刷する前に実行しないと。

> PrintDocument.DefaultPageSettings.Color = False -> 白黒で印刷される

> ただ,PrintPreviewControlではどちらもカラーで表示されました。
上記同様描画を白黒にしているのではないので、VBのPrintPreviewControlには反映されない
のではないでしょうか? 印刷部数の設定と同様に。


但し、プリンターのプレビュー機能及びプロパティは白黒に変更[反映]されてます。

[ツリー表示へ]
タイトルRe^5: 白黒印刷
記事No3321
投稿日: 2006/03/18(Sat) 18:44
投稿者ip
YASさんレスありがとうございます。
また花ちゃんさんわかりやすい解説ためになってます。
で他のプリンターでの結果ですが
WindowsXP、CanonPIXUS860iでUSB直接接続でも結果は同じでFalseの表示は出ますが
白黒で印刷することは出来ませんでした。
テスト内容が両方ともプリンタがCanon製なのがちょっと気になります。

[ツリー表示へ]
タイトルRe^2: 白黒印刷
記事No3403
投稿日: 2006/03/22(Wed) 21:46
投稿者ip
ネットワークプリンタでテストしましたので報告します。

メッセージボックスにFalseと表示されます。
白黒での印刷は出来ませんでした。

[ツリー表示へ]