- - PR -
System.Drawing.Penで細線(1以下)が描画できない
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-01 09:36
こんにちは、System.Drawing.Penで幅は1以下に設定できないでしょうか? ---------------------------------------- Dim blackPen As New Pen(Color.Black, 1) g.DrawLine(blackPen, 0, 100, 500, 100) ---------------------------------------- 0.01に設定しても線の太さは同じでした。 ----------------------------------------- Dim blackPen As New Pen(Color.Black, 0.01) g.DrawLine(blackPen, 0, 100, 500, 100) ----------------------------------------- どうすればもっと細い線が描画できますか? アドバイスよろしくお願いいたします。 | ||||||||
|
投稿日時: 2006-08-01 09:58
1 未満 に設定することはできません。 たとえば、0 が指定されても 1# 扱いになります。
えーと、線幅 1 Pixel 未満 を、どのように表現するおつもりでしょうか? たとえば、System.Drawing.Color.Black ではなく、 Gray などのメンバを仕様すれば、細く見えるようになります。 (これは、ヒトの視覚の仕組みを利用したものです) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-08-01 12:02
じゃんぬねっとさん、アドバイスありがとうございます。 Grayで印刷して見ましたけど...お客さんは満足できない表情でした やっぱり最小「1Pixel」しかできないでしょうか? VB6.0からVB2005にアップグレードの作業なのでVB6.0と同じ帳票が出ないと ダメなんです。なんとか解決できないと... よろしくお願いいたします。 | ||||||||
|
投稿日時: 2006-08-01 12:18
このあたり、プリンタ ドライバ依存ですけどね。
元投稿に書かれていないので、初めて知ったわけですが、帳票だったのですね。(;^─^) ということは、PrintDocument を使用しているということでしょうか。 "アップグレード" という 「文言」 が出てきていますが、VB6 の時は何を使って印字していたのですか? それと、VB6 の時のプリンタ / プリンタ ドライバを使用された上でのご発言ですよね? (もちろん、運用環境の) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-08-01 12:25
VB6とVB2005でそれぞれ画像として保存してみてはいかがでしょうか。
それを比べて同じであれば印刷まわりの設定が俄然怪しくなってきますよね。 その時点で違うので有れば、コード等の問題でしょうけども | ||||||||
|
投稿日時: 2006-08-01 12:26
はい、そうですね...PrintDocumentです。
VB6 の時は普通のPrintオブジェクトでした。 --------------------------------------------------------- Public gobjLPrint As Object '' 出力対象オブジェクト '' 線描画 gobjLPrint.Line (sngSX, sngSY) - (sngEX, sngEY) ---------------------------------------------------------- VB6 の時のプリンタ / プリンタ ドライバは変わりましたけど VB6のソースでは細線が描画できました。 | ||||||||
|
投稿日時: 2006-08-01 12:44
グラフィックスオブジェクトのPageUnitプロパティを
GraphicsUnit.Documentを指定してみてはどうでしょうか? 私のところでテストプログラムを作ってみましたが、 何も指定しない場合よりは細い線になりました。 | ||||||||
|
投稿日時: 2006-08-01 12:54
じゃんぬねっとさん、よねKENさん、KGさん アドバイスありがとうございます。m(_ _)m すみません、やっぱりプリント設定の問題でした。 EPSON LP-7900でしたけど、windowsのプリンター設定で トナーセーブをチェックを入れたら細線になりました。 同僚がその設定を言い忘れたみたいです。 申し訳ありませんでした。 GraphicsUnit.Documentは勉強になりましたので やってみます。 皆さん、ありがとうございました。 |