Me.WindowState = FormWindowState.Maximized End Sub
Private Sub Pagecount_ValueChanged(sender As Object, e As EventArgs) Handles Pagecount.ValueChanged Me.ppc.StartPage = Pagecount.Value - 1 End Sub ' ' : ' : ' End Sub
■No32967に返信(TIさんの記事)
イメージ描画用のBMPを1枚のみ用意して仮に描画してみる方法
Private Pages As Integer
Private BmpW As Integer
Private BmpH As Integer
BeginPrintイベント:
'プリンタの領域設定は1/100inch単位なのでそれを画面解像度を元に必要ピクセル数を求める。
'プリンタに合わせたDPIで計算したい場合は96を変更
BmpW = pd.DefaultPageSettings.Bounds.Width * 96 \ 100
BmpH = pd.DefaultPageSettings.Bounds.Height * 96 \ 100
初期化
Pages = GetPageCnt()
初期化
PrintPageイベント:
仮に Sub pd_PrintPage(s,e) とする
通常の実装
Function GetPageCnt() as Integer
Dim Ret = 0
Dim bmp as New Bitmap(BmpW, BmpH, その他適当なパラメータ)
Dim Rect as Rectangle = 印刷範囲のRectangleを求める
Using grp = Graphics.FromImage(bmp)
Dim e as New PrintPageEventArgs(grp, Rect, pd.DefaultPageSettings.Bounds, pd.DefaultPageSettings)
e.HasMorePages = True
Do While e.HasMorePages
pd_PrintPage(pd, e)
ret += 1
Loop
End Using
bmp.Dispose()
Return Ret
End Function