■VB.Netで印刷(自作クラス)
VB.Netで印刷を行う為、クラスを作成しました。
欲しいのは紙に1文字単位で指定、印刷や罫線を引く事です。
以下のような感じです。
このような印刷をするためにクラスを作成しました。
細かい説明はクラスのソースに書いてあります。
まだクラスに慣れていないので見にくい所があるかもしれません。
何かあればブログ
へお願いします。
■使い方
前回を参考に。印刷準備は変わりません。
PrintPageイベントの中で使います
サンプル
'### 印刷処理 ---
クラスを使った文字列指定版のサンプル 実装部 ---
#################################################################
'クラスを使ってプリント設定を取得して印刷
Dim clsPrt
As New cls_print_
Dim s10 As
String = ""
'プリンタの初期設定を行う
clsPrt.Printer_Setting(e, Me.PrintDocument1, New Point(140, 50))
'印刷出来る文字数分の文字列を作成
For i10 As Integer = 0 To
clsPrt.Text_Count.X -
1
s10 =
s10 & (i10 Mod 10).ToString
Next
'文字列を10行おきに印刷(1行印刷メソッドを使用)
For i10
As Integer = 0 To clsPrt.Text_Count.Y - 1 Step
10
clsPrt.Print_Moji_Line(e, s10,
i10)
Next
'最終行に設定を印刷
clsPrt.Print_Moji_Line(e, clsPrt.Text_FontN & " " &
clsPrt.Text_Font_Size.ToString &
_
"Point " &
"印刷可能文字数 X:" & clsPrt.Text_Count.X.ToString & " Y:" &
clsPrt.Text_Count.Y.ToString &
_
" 文字数指定による伝票印刷設定のサンプル", clsPrt.Text_Count.Y - 1)
'座標指定印刷
clsPrt.Print_Moji(e, New PointF(0, 22), "テスト印刷")
'座標指定印刷
長さ・左右寄せ指定
clsPrt.Print_Moji(e, New PointF(0, 23), (1250).ToString("#,###"), 12, "R")
'座標指定印刷
フォント指定
clsPrt.Print_Moji(e, New PointF(0, 24), "テスト印刷", New Font(clsPrt.Text_FontN,
30))
'罫線印刷
'縦罫線
For i10 As Integer = 0 To
clsPrt.Text_Count.X
'太さと破線の間隔を設定した場合
clsPrt.Draw_Line(e, New PointF(i10, 0), New PointF(i10, clsPrt.Text_Count.Y -
1), 1, 5.0F)
Next
'横罫線
For i10 As Integer = 0 To
clsPrt.Text_Count.Y
'太さ・破線の間隔を省略
clsPrt.Draw_Line(e, New PointF(0, i10), New PointF(clsPrt.Text_Count.X,
i10))
Next
'微調整印刷
clsPrt.Pr_TTop =
New
PointF(10, 10) '全体の微調整設定
clsPrt.Print_Moji(e, New PointF(0, 22),
"テスト印刷")
clsPrt.Print_Moji(e, New
PointF(0, 23), (1250).ToString("#,###"), 12,
"R")
clsPrt.Print_Moji(e, New
PointF(0, 24), "テスト印刷", New Font(clsPrt.Text_FontN, 30))
■簡単な解説
●初期化
'プリンタの初期設定を行う
clsPrt.Printer_Setting(e, Me.PrintDocument1, New Point(140,
50)
○初期化です。指定した紙の大きさに横140,縦50文字として初期化します。
改ページした場合毎回実行する必要があります。
●文字印刷
'座標指定印刷
clsPrt.Print_Moji(e, New
PointF(0, 22),
"テスト印刷")
○横0、縦22文字目に"テスト印刷"と印刷します。
'座標指定印刷 長さ・左右寄せ指定
clsPrt.Print_Moji(e, New PointF(0, 23), (1250).ToString("#,###"), 12,
"R")
○横0、縦23文字目から12文字の間で右寄せで印刷(最後を"L"にすると右寄せで印刷します。)
●罫線
'横罫線
For i10 As Integer = 0 To
clsPrt.Text_Count.Y
'太さ・破線の間隔を省略
clsPrt.Draw_Line(e, New PointF(0, i10), New PointF(clsPrt.Text_Count.X,
i10))
Next
○初期化後.Text_Count.Yプロパティには縦方向に印刷できる文字数が保存されます
同様に.Text_Count.Xプロパティには横方向に印刷できる文字数が入ります
印刷できる範囲に横罫線を引いています。
※上にある画像はサンプルプログラムで実際に印刷した物です。
これで印刷が少しは楽になるかな・・・
直しながら使っているクラスです。気になる部分があればブログにコメント下さい。
トップへ戻る