Public Sub HardCopy()
Dim vlIndex As Integer '/ インデックス
Dim vlClipboard As IDataObject = Clipboard.GetDataObject() '/ クリップボード
Dim vlPrintDocument As New System.Drawing.Printing.PrintDocument '/ プリントドキュメント
Dim vlPrintPreviewDialog As New System.Windows.Forms.PrintPreviewDialog '/ プリントプレビューダイアログ
Try
vlClipboard.SetData(DataFormats.Bitmap, Nothing) '/ クリップボードクリア
For vlIndex = 1 To 10 '/ ハードコピークリップ
SendKeys.Send("%{PRTSC}")
Application.DoEvents()
Next
vmHardCopyImage = CType(vlClipboard.GetData(DataFormats.Bitmap), _
System.Drawing.Image) '/ ハードコピーイメージ取得
With vlPrintDocument '/ プリンタドキュメント設定
AddHandler .PrintPage, AddressOf Me.PrintHardCopy
.DefaultPageSettings.Landscape = True '/ 获取或设置一个值,该值指示是横向还是纵向打印该页。
.DocumentName = "ハードコピー"
End With
If vmPrintPreview Then '/ 出力
With vlPrintPreviewDialog '/ -- プレビュー
.Document = vlPrintDocument
.ShowDialog()
End With
Else
With vlPrintDocument '/ -- プリンタ
.PrintController = New Printing.StandardPrintController()
.Print()
End With
End If
Catch ex As Exception
basLog.ErrorLogging("frmXxx0010", "HardCopy", Err.Number)
End Try
End Sub
'/----------------------------------------------------------------------------------------------------
'/ 処理名 :ハードコピープリントイベント
'/ 機能 :ハードコピーを出力する
'/ 引数 :sender :オブジェクト
'/ :e :イベント引数
'/ 戻値 :なし
'/----------------------------------------------------------------------------------------------------
Private Sub PrintHardCopy(ByVal sender As System.Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
With e.Graphics '/ グラフィック描画
.ScaleTransform(1, 1) '/ -- スケール
.DrawImage(vmHardCopyImage, 0, 0) '/ -- イメージ描画 在指定的位置使用原始物理大小绘制指定的 Image
End With
End Sub