Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
Dim PrintDialog As New PrintDialog
Dim dlg As New PrintPreviewDialog
Dim graphicBS As Graphics
graphicBS = pnlLCC.CreateGraphics()
Dim size As Size
size = pnlLCC.Size
'Dim img As Bitmap
img = New Bitmap(size.Width, size.Height, graphicBS)
Dim graphicImg As Graphics
graphicImg = Graphics.FromImage(img)
Dim dc1, dc2 As IntPtr
dc1 = graphicBS.GetHdc()
dc2 = graphicImg.GetHdc()
NativeMethods.BitBlt(dc2, 0, 0, pnlLCC.ClientSize.Width, pnlLCC.ClientSize.Height, dc1, 0, 0, NativeMethods.SRCCOPY)
printImg = CType(img.Clone(), Image)
graphicBS.ReleaseHdc(dc1)
graphicImg.ReleaseHdc(dc2)
graphicBS.Dispose()
graphicImg.Dispose()
img.Dispose()
printImg.Save("C:BS.jpg")
AddHandler printDoc.PrintPage, AddressOf PrintDocument_PrintPage
PrintDialog.Document = printDoc
PrintDialog.UseEXDialog = True
Dim result As DialogResult = PrintDialog.ShowDialog()
If (result = DialogResult.OK) Then
printDoc.Print()
End If
End Sub
Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
'!!!!!!!!!!!!!!!!!!!!!!! 重点
Dim width As Integer = printDoc.DefaultPageSettings.Bounds.Width
Dim height As Integer = printDoc.DefaultPageSettings.Bounds.Height
e.Graphics.DrawImage(printImg, 0, 0, width, height)
End Sub
Public Class NativeMethods
Public Const SRCCOPY As UInteger = &HCC0020
<System.Runtime.InteropServices.DllImport("user32.dll ")> _
Public Shared Function GetDesktopWindow() As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("user32.dll ")> _
Public Shared Function GetWindowDC(ByVal hwnd As IntPtr) As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("gdi32.dll ")> _
Public Shared Function BitBlt(ByVal hDestDC As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As IntPtr, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As System.Int32) As UInt64
End Function
End Class
分享到:
相关推荐
近段时间看到很多在路上的朋友都在找这个 我也偶尔在别的地方下载来看了下别人写的东西 感觉不是这缺就是那少 都不大完美 这段 C# DataGridView 控件内容打印代码 是经本人在VS2008下测试通过 可以实现对...
条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件条码打印控件
使用PrintDocument控件和PrintDialog控件实现打印文档内容
vb打印控件
本控件系VB6.0编写,可以直接打印MSHFlexGrid控件(如果控件的数据中有图片,图片也会打印出来)、ListView控件、ADO记录、DAO记录、Datagrid控件、Flexgrid控件的内容,省时省力。对MSHFlexGrid控件的内容,控件...
墙外打印控件 打印控件
在打印预览表格时,时间会比较长,因为要... 打印普通MSHFlexGrid控件内容(只有首页打印标题 文本、表格、图片混合输出测试 打印普通MSHFlexGrid控件内容(每页都打印标题) 以工资条形式打印MSHFlexGrid控件内容
WEB打印控件WEB打印控件WEB打印控件WEB打印控件WEB打印控件WEB打印控件WEB打印控件WEB打印控件WEB打印控件WEB打印控件
免费web打印控件免费web打印控件免费web打印控件免费web打印控件免费web打印控件
打印控件 条码打印 条码打印(含原代码)
不需打印控件的打印源码。。。。。。。。。。。。。。
9、强大的容器控件打印功能(DrawPanel函数)。借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。 10、5.6版新增的Simple...
本控件允许将当前打印预览的内容保存为报表文件,以后使用本控件重新打开该报表文件即可重现原来保存报表时的打印内容。 7、打印方案保存与读取功能。可以将当前打印参数保存为打印方案文件,或都从保存的打印方案...
该控件实现jsp页面内容的打印配置、预览和打印,开发者可以根据需要修改代码实现个性化打印需求。
12、强大的容器控件打印功能(DrawPanel函数)。借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。 13、特殊文字效果打印功能...
c# winform 一个好用的打印控件,我的博客有代码
net 自带打印控件 net 自带打印控件 net 自带打印控件
bs架构软件的打印控件打印方法和打印设置,针对ie浏览器。
使用PrintDocument控件和PrintPreviewDialog控件实现打印文档内容
一个c#打印控件的学习源码