DOBON.NET DOBON.NETプログラミング掲示板過去ログ

A4縦の用紙横幅取得

環境/言語:[VB2005, 2008, 2010]
分類:[.NET]

こちらの.Net Tipsの「文字列を印刷する」を参考に文章の印刷に挑戦中で、Tipsに書いてある印刷はうまくいきました。
http://dobon.net/vb/dotnet/graphics/printtext.html

この例では印刷幅をe.MarginBounds.Widthで設定していますが、例えば用紙指定をA4横やA3などにした時、あまり1行を長くしたくないので、例えば、A4縦の用紙横幅を上限としたいのですが、この場合は具体的にはどのような数字にすればいいのでしょうか?
■No30148に返信(スネルジンさんの記事)

単位を変更して描画する
http://dobon.net/vb/dotnet/graphics/pageunit.html

を参考にしてください。
■No30156に返信(管理人さんの記事)
> ■No30148に返信(スネルジンさんの記事)
>
> 単位を変更して描画する
> http://dobon.net/vb/dotnet/graphics/pageunit.html
>
> を参考にしてください。

管理人様、ご回答ありがとうございました。
ただ、サイトを参考にしながら、PrintPageイベントにて、A4縦の場合のe.PageBounds.Widthの値とインチ計算したものとを比較したところ、下のように6倍も違う値になっています。

e.PageBounds.Width = 827
8.27 * e.Graphics.DpiX = 4962(8.27はA4縦の横サイズのインチで、解像度は600dpiでした)

何か計算がおかしいでしょうか?
  • 題名: Re[3]: A4縦の用紙横幅取得
  • 著者: スネルジン
  • 日時: 2012/03/28 10:26:45
  • ID: 30160
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
分かりました。e.Graphics.PageUnitがGraphicsUnit.Displayになっていました。
ということは、印刷単位は1/100インチであるので、8.27インチ×100=827がA4縦の横幅サイズとしておけばよさそうです。
これで解決とします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板