- PR -

C#でAPIを使用して印刷する場合のフォント

1
投稿者投稿内容
銀玉
会議室デビュー日: 2005/06/07
投稿数: 2
お住まい・勤務地: 江戸川区
投稿日時: 2005-07-20 18:41
C#でAPIを使用して印刷するアプリを開発しています。

その際にフォントを
Font myFont = new Font("MS Pゴシック", 10);

IntPtr hFont = myFont.ToHfont();

SelectObject(PrinterDC, hFont);
//PrinterDC・・・デバイスコンテキスト
//SelectObject・・・gdi32.dllから使用


設定をして印刷しているのですが


下記のようにprintDocumentクラスで印刷した場合

private void Form1_Load(object sender, System.EventArgs e)
{
this.printDocument1.Print();
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawString("SampleText",
new Font("MS Pゴシック", 10), Brushes.Black, 150, 125);
}

と大きさが異なってしまうのですが
なぜでしょうか?

ご回答よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-20 20:38
 デバイスコンテキストに指定してあるグラフィックスオブジェクトの、解像度の設定が違っているとか?
_________________
銀玉
会議室デビュー日: 2005/06/07
投稿数: 2
お住まい・勤務地: 江戸川区
投稿日時: 2005-07-20 22:30
Jittaさん
ご回答ありがとうございます。

>デバイスコンテキストに指定してあるグラフィックスオブジェクトの、解像度の設定が違っているとか?

さっそく、グラフィックスオブジェクトの、解像度の設定(取得)の方法を調べましたが
よくわかりませんでした。

グラフィックスオブジェクトの取得に関しては
GetCurrentObject関数とGetObject関数を使用すれば
いいような気がするのですが。。。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-21 05:28
 PrinterDC というのがなんなのかわかりませんが、e.Graphics の方は [http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDrawingGraphicsMembersTopic.asp]System.Drawing.Graphics[/url] ここ。DpiX, dpiY でとれます。
_________________
1

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