
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
- 事務・総務 郵便払込取扱票への記入揺れ 1 2022/03/26 22:54
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
プログラムについての質問です...
-
4Kの外部モニターに出力すると...
-
CrystalReportの文字列の折返し...
-
Accessのテーブルからcsv出力す...
-
KEYENCEのシーケンスプログラム...
-
充電器の表記についての質問で...
-
ACCESSからExcelへエクスポート...
-
printfとputcharの違いは
-
cout と cerrの違い
-
マクロを教えてください。
-
【UWSC】WEBページ中の特定文字...
-
Windows Formアプリからコンソ...
-
ListViewの複数選択について
-
COBOLのMOVEで桁数が異なる場合
-
C# 標準出力のencodingをutf8に...
-
coutで出力した文字を消去する...
-
PD充電器について
-
VBAでIEを操作、ポップアップさ...
-
FLEXSOLARパネルからAmazonで買...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
PD充電器について
-
cout と cerrの違い
-
スマホ充電器購入にあたり
-
Accessのテーブルからcsv出力す...
-
MMDでavi出力が出来ない
-
printfとputcharの違いは
-
VBAのExecメソッドで画面を非表...
-
TV出力ポートをOFFにすれば良い...
-
COBOLのMOVEで桁数が異なる場合
-
VBAでテキスト出力時のスペース...
-
ACCESS クエリ→フォーム...
-
coutで出力した文字を消去する...
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
-
Windows Formアプリからコンソ...
-
コンセントの電力は入力と出力...
-
C#でアクセス権限の取得方法が...
-
【VBA】PDFを2in1で出力したいです
おすすめ情報