
PrintDocumentでうまく印字ができません
VB2008を使っています。
PrintDocumentを使って画面を伝票に出力しようとしています。(以下のコード)
'品名,数量,単価,金額, 最大6行
For i = 0 To 5
If tbGyoIdArray(i).Text <> Nothing Then
e.Graphics.DrawString(tbShohinNameArray(i).Text, f1, Brushes.Black, 10, 150 + 20 * i)
e.Graphics.DrawString(tbSuryoArray(i).Text, f1, Brushes.Black, 100, 150 + 20 * i)
e.Graphics.DrawString(tbTankaArray(i).Text, f1, Brushes.Black, 250, 150 + 20 * i)
e.Graphics.DrawString(tbKingakuArray(i).Text, f1, Brushes.Black, 300, 150 + 20 * i)
End If
Next
ところが「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))
自己解決できました。
ご回答ありがとうございました。
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)
いろいろありがとうございました。
No.1
- 回答日時:
表示領域の終わりを示さないと、右揃えはできないはず。
まずドキュメントを読み、次にドキュメントを読み、さらにドキュメントを読んで、コードを書いて画像を出力してみた。
http://msdn.microsoft.com/en-us/library/21kdfbzs …
以下のURIにコードと、画像の結果を置く。
http://cid-b89cb784f5346675.office.live.com/brow …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
Microsoft365で作ったword文書...
-
プログラムについての質問です...
-
詳しくないので、どなたかお教...
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
-
Windows Formアプリからコンソ...
-
MMDでavi出力が出来ない
-
真空管 300 B の前段について
-
【UWSC】WEBページ中の特定文字...
-
VBAのExecメソッドで画面を非表...
-
データカウンター
-
vba 環境依存文字によるDocuwor...
-
C# 標準出力のencodingをutf8に...
-
VBAでテキスト出力時のスペース...
-
KEYENCEのシーケンスプログラム...
-
タッチパネルの特性
-
C言語でタイピングゲーム作成
-
printfとputcharの違いは
-
標準出力の上書き
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
Accessのテーブルからcsv出力す...
-
FLEXSOLARパネルからAmazonで買...
-
真空管 300 B の前段について
-
cout と cerrの違い
-
printfとputcharの違いは
-
スマホ充電器購入にあたり
-
PD充電器について
-
TV出力ポートをOFFにすれば良い...
-
COBOLのMOVEで桁数が異なる場合
-
Windows Formアプリからコンソ...
-
CrystalReportの文字列の折返し...
-
C#でアクセス権限の取得方法が...
-
coutで出力した文字を消去する...
-
【UWSC】WEBページ中の特定文字...
-
KEYENCEのシーケンスプログラム...
-
CRC16計算について
-
標準出力の上書き
おすすめ情報