• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PrintDocumentでうまく印字ができません)

PrintDocumentでうまく印字ができません

このQ&Aのポイント
  • VB2008を使ってPrintDocumentを使って画面を伝票に出力しようとしています。
  • 「DrawString」は引数で指定する開始位置から左詰めで印字するのですが、数量,単価,金額は右詰めで印刷しないとならないわけです。
  • 右詰めで印字する方法を教えてください。もしできないとしたら、どんな方法があるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

MeasureString()メソッドで印刷時のサイズを取得して、そのサイズでDrawString()の位置を補正します。 MeasureString()の使用例です。 ' Set up string. Dim measureString As String = "Measure String" Dim stringFont As New Font("Arial", 16) ' Measure string. Dim stringSize As New SizeF stringSize = e.Graphics.MeasureString(measureString, stringFont) ' Draw rectangle representing size of string. e.Graphics.DrawRectangle(New Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height) ' Draw string to screen. e.Graphics.DrawString(measureString, stringFont, Brushes.Black, New PointF(0, 0))

panasobi
質問者

お礼

自己解決できました。 ご回答ありがとうございました。 StringFormatのAlignmentプロパティで「右詰め」フォーマットを設定する ことで、解決できました。 Dim drawFormat As New StringFormat drawFormat.Alignment = StringAlignment.Far e.Graphics.DrawString(tbKingakuArray(i).Text, f1, Brushes.Black, 300, 150 + 20 * i,drawFormat) いろいろありがとうございました。

その他の回答 (1)

回答No.1

表示領域の終わりを示さないと、右揃えはできないはず。 まずドキュメントを読み、次にドキュメントを読み、さらにドキュメントを読んで、コードを書いて画像を出力してみた。 http://msdn.microsoft.com/en-us/library/21kdfbzs.aspx 以下のURIにコードと、画像の結果を置く。 http://cid-b89cb784f5346675.office.live.com/browse.aspx/TestCase/Q5986259?uc=3