- PR -

ドット単位で印刷-プリンタの解像度に合わせて

投稿者投稿内容
PAO
ベテラン
会議室デビュー日: 2004/10/21
投稿数: 66
投稿日時: 2006-12-09 17:12
ちなみにプリンタの解像度に合わせて処理を行う時は、
以下のようにしてください。

#88, 90 と、生の数字を使っていますが、
#LOGPIXELSX , LOGPIXELSY と、したほうがよいでしょう。


[DllImport("gdi32.dll")] private static extern int GetDeviceCaps(IntPtr hDC,int nIndex);

private void drawLine(Graphics g)
{
IntPtr hDC = g.GetHdc();

int l = GetDeviceCaps(hDC, 88);
int l2 = GetDeviceCaps(hDC, 90);
MessageBox.Show(this, l.ToString() + " : " + l2.ToString());


 l と、l2 は、まず、同じ値になると思います。

 プリンタのプロパティの最高解像度(dpi)より、
 低い値になる事があると思いますが、
 このプログラムで取得した解像度(dpi)が、実際に描画する解像度(dpi)なので、
 気にしないでください。

 プリンタのプロパティの最高解像度(dpi)は、論理的なものですので。


[ メッセージ編集済み 編集者: PAO 編集日時 2006-12-09 17:17 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-12-09 23:53
引用:

PAOさんの書き込み (2006-12-09 16:17) より:

要は、GDI+ と、gdi32 の共存ができるか、知りたかったんですね。^^


ごめん、どの辺に、そんなことが書いてあるの?
引用:

PAOさんの書き込み (2006-12-08 17:00) より:
プリンタの解像度に合わせて、ドット単位で、
線をGraphicsに描画して、印刷したいと思っております。

今のプリンタの解像度は、大体300dpi の倍数になっておりますので、
GraphicsUnit.Document
を使用すれば、大きさとしては、正しく印字されます。
しかし、印字結果は・・・
どう考えても、ドット単位に印字されているとは思えない、
荒さになってしまいます。

C#で、無理であれば、VC++ 等で、DLL を作る事も考えております。
方法があれば、ご教授ください。

よろしくお願いいたします。


引用:

PAOさんの書き込み (2006-12-08 17:11) より:
要は、プリンタのデバイスコンテキストを捕まえて、
そこに直接描画。すれば、いいって事なんですかね?^^

よくわからん・・・

引用:

PAOさんの書き込み (2006-12-08 18:23) より:
なお、このメソッドを使用する、実際に印刷をする呼び出し元には、
GDI+ の Graphics オブジェクトを返そうと思っていたのですが、
それは、無理な相談なのですかね?

hdc をインタフェイスとするしか方法は無いでしょうか?

[ メッセージ編集済み 編集者: PAO 編集日時 2006-12-08 18:24 ]


_________________
PAO
ベテラン
会議室デビュー日: 2004/10/21
投稿数: 66
投稿日時: 2006-12-10 00:21
頭悪いんですか?

結局のところ。
ということですよ。^^
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-12-10 00:33
引用:

PAOさんの書き込み (2006-12-10 00:21) より:
頭悪いんですか?

結局のところ。
ということですよ。^^

頭悪いんですか?

キチンとした日本語を書け
ということですよ。^^
_________________
PAO
ベテラン
会議室デビュー日: 2004/10/21
投稿数: 66
投稿日時: 2006-12-10 00:39
じゃ、百歩譲って・・・
お互い様ですね。^^
どせい
大ベテラン
会議室デビュー日: 2006/10/25
投稿数: 145
投稿日時: 2006-12-10 03:57
引用:

PAOさんの書き込み (2006-12-08 17:00) より:
荒さになってしまいます。


誤字「荒さ」 解像度の話が出ているのだから正しくは「粗さ」

引用:

PAOさんの書き込み (2006-12-08 17:00) より:
C#で、無理であれば、VC++ 等で、DLL を作る事も考えております。


句読点が必要以上に多過ぎ

引用:

PAOさんの書き込み (2006-12-08 17:00) より:
方法があれば、ご教授ください。


誤字「教授」 正しくは「教示」

引用:

PAOさんの書き込み (2006-12-08 17:11) より:
要は、プリンタのデバイスコンテキストを捕まえて、


マイ用語「捕まえて」

引用:

PAOさんの書き込み (2006-12-08 17:11) より:
そこに直接描画。すれば、いいって事なんですかね?^^


句読点が必要以上に多過ぎ

引用:

PAOさんの書き込み (2006-12-09 05:25) より:
ピクセルです。


「何の」ピクセルか書いていない

引用:

PAOさんの書き込み (2006-12-09 16:17) より:
(ソース略)
な感じで、できました。
要は、GDI+ と、gdi32 の共存ができるか、知りたかったんですね。^^


これが「Jitta氏の知りたかったことは、要はGDI+(略」だとすると、文脈が繋がらない。
なぜならJitta氏はGDI+の話もgdi32の話も一言も書いていない。

逆に「私は、要はGDI+(略」だと自己完結してしまっている。対話になっていない。

引用:

PAOさんの書き込み (2006-12-10 00:21) より:
頭悪いんですか?

結局のところ。
ということですよ。^^


このままでは日本語として読みにくい。倒置法と解釈して語順を直してみると
「結局のところ頭悪いんですか?ということですよ」
となる。これでも「結局のところ」という語句が意味不明。何をまとめて「結局のところ」なんだ?

引用:

PAOさんの書き込み (2006-12-10 00:39) より:
じゃ、百歩譲って・・・
お互い様ですね。^^


奇跡的に言葉の意味は合っているようだ。
だが、まともな日本語書けてないのはお前さんの方だけ。だから用法が間違い。

以上からどっちが頭悪いか判断…するまでもないなw

#いくつかの特徴は、「ネイティブな日本語を習得できていない人」によく見られる。
#↑外国人を差別する意図はない。日本人だって日本語に不自由な人は一杯いるしな。
PAO
ベテラン
会議室デビュー日: 2004/10/21
投稿数: 66
投稿日時: 2006-12-10 05:55
揚げ足取りのドアホが、また出た!^^
PAO
ベテラン
会議室デビュー日: 2004/10/21
投稿数: 66
投稿日時: 2006-12-10 06:27
ここは、そういう場じゃないから、
俺も書きたいことは山ほどあるけど自制心でとめているので、
お前らも、そんなに長文書くまでして、、、やめとけよ。^^

このログを参考にする人は必ずいるんだから。
過去ログを見たけど、なかったしな。

スキルアップ/キャリアアップ(JOB@IT)