打印画面

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
原文地址:https://www.cnblogs.com/jiningning/p/4739036.html