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