- ベストアンサー
PrintDocumentでうまく印字ができません
- VB2008を使ってPrintDocumentを使って画面を伝票に出力しようとしています。
- 「DrawString」は引数で指定する開始位置から左詰めで印字するのですが、数量,単価,金額は右詰めで印刷しないとならないわけです。
- 右詰めで印字する方法を教えてください。もしできないとしたら、どんな方法があるでしょうか。
- みんなの回答 (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))
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
表示領域の終わりを示さないと、右揃えはできないはず。 まずドキュメントを読み、次にドキュメントを読み、さらにドキュメントを読んで、コードを書いて画像を出力してみた。 http://msdn.microsoft.com/en-us/library/21kdfbzs.aspx 以下のURIにコードと、画像の結果を置く。 http://cid-b89cb784f5346675.office.live.com/browse.aspx/TestCase/Q5986259?uc=3
お礼
自己解決できました。 ご回答ありがとうございました。 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) いろいろありがとうございました。