Home All Groups Group Topic Archive Search About
Author
10 Jul 2006 8:33 PM
Aristotelis Pitaridis
I was trying to print some information such a way that the user will be able
to move objects with the mouse on a form, and then I will use the contents
of the form in order to print the information. Does anyone knows how to
convert the contents of the form (including labels, textbox, etc...) to a
bitmap in order to send it to the printer?

Aristotelis

Author
10 Jul 2006 7:42 PM
JR
Someone have givven me this code.

It convert the screen completeet into a bitmap and that print the bitmap
from memory



'--------------------------------------start
code--------------------------------------------

Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _

hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _

Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _

hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _

ByVal dwRop As System.Int32) As Long

Dim memoryImage As Bitmap

Private Sub CaptureScreen()

Dim mygraphics As Graphics = Me.CreateGraphics()

Dim s As Size = Me.Size

memoryImage = New Bitmap(s.Width, s.Height, mygraphics)

Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)

Dim dc1 As IntPtr = mygraphics.GetHdc

Dim dc2 As IntPtr = memoryGraphics.GetHdc

BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _

Me.ClientRectangle.Height, dc1, 0, 0, 13369376)

mygraphics.ReleaseHdc(dc1)

memoryGraphics.ReleaseHdc(dc2)

End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e
As System.Drawing.Printing.PrintPageEventArgs) Handles
PrintDocument1.PrintPage

e.Graphics.DrawImage(memoryImage, 0, 0,
PrintDocument1.DefaultPageSettings.Bounds.Width,
PrintDocument1.DefaultPageSettings.Bounds.Height)

End Sub

Private Sub mnuPrint_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuPrint.Click

Dim dlg As New PrintPreviewDialog

Dim ps As New PrintDialog

Me.BackColor = Color.White

Me.Refresh()

Application.DoEvents()

CaptureScreen()

With ps

PrintDocument1.DefaultPageSettings.Landscape = True

..PrinterSettings = PrintDocument1.PrinterSettings

ps.ShowDialog()

PrintDocument1.PrinterSettings = .PrinterSettings

End With

With dlg

..Document = PrintDocument1

..ShowDialog()

End With

Me.BackColor = Color.FromKnownColor(KnownColor.Control)

End Sub

'--------------------------------------End
code--------------------------------------------

"Aristotelis Pitaridis" <pitari***@hotmail.com> schreef in bericht
news:1152559887.494996@athnrd02...
Show quoteHide quote
>I was trying to print some information such a way that the user will be
>able to move objects with the mouse on a form, and then I will use the
>contents of the form in order to print the information. Does anyone knows
>how to convert the contents of the form (including labels, textbox, etc...)
>to a bitmap in order to send it to the printer?
>
> Aristotelis
>
Author
11 Jul 2006 6:11 AM
Aristotelis Pitaridis
Thanks JR. It works. The only problem is that the quality of the text is not
very good. Is there any way to improve the quality?

Aristotelis

Show quoteHide quote
Ï "JR" <x.x@x.x.> Ýãñáøå óôï ìÞíõìá
news:C4ysg.529756$dL5.12945535@phobos.telenet-ops.be...
>
> Someone have givven me this code.
>
> It convert the screen completeet into a bitmap and that print the bitmap
> from memory
>
>
>
> '--------------------------------------start
> code--------------------------------------------
>
> Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _
>
> hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _
>
> Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _
>
> hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
>
> ByVal dwRop As System.Int32) As Long
>
> Dim memoryImage As Bitmap
>
> Private Sub CaptureScreen()
>
> Dim mygraphics As Graphics = Me.CreateGraphics()
>
> Dim s As Size = Me.Size
>
> memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
>
> Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
>
> Dim dc1 As IntPtr = mygraphics.GetHdc
>
> Dim dc2 As IntPtr = memoryGraphics.GetHdc
>
> BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _
>
> Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
>
> mygraphics.ReleaseHdc(dc1)
>
> memoryGraphics.ReleaseHdc(dc2)
>
> End Sub
>
> Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal
> e As System.Drawing.Printing.PrintPageEventArgs) Handles
> PrintDocument1.PrintPage
>
> e.Graphics.DrawImage(memoryImage, 0, 0,
> PrintDocument1.DefaultPageSettings.Bounds.Width,
> PrintDocument1.DefaultPageSettings.Bounds.Height)
>
> End Sub
>
> Private Sub mnuPrint_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles mnuPrint.Click
>
> Dim dlg As New PrintPreviewDialog
>
> Dim ps As New PrintDialog
>
> Me.BackColor = Color.White
>
> Me.Refresh()
>
> Application.DoEvents()
>
> CaptureScreen()
>
> With ps
>
> PrintDocument1.DefaultPageSettings.Landscape = True
>
> .PrinterSettings = PrintDocument1.PrinterSettings
>
> ps.ShowDialog()
>
> PrintDocument1.PrinterSettings = .PrinterSettings
>
> End With
>
> With dlg
>
> .Document = PrintDocument1
>
> .ShowDialog()
>
> End With
>
> Me.BackColor = Color.FromKnownColor(KnownColor.Control)
>
> End Sub
>
> '--------------------------------------End
> code--------------------------------------------
>
> "Aristotelis Pitaridis" <pitari***@hotmail.com> schreef in bericht
> news:1152559887.494996@athnrd02...
>>I was trying to print some information such a way that the user will be
>>able to move objects with the mouse on a form, and then I will use the
>>contents of the form in order to print the information. Does anyone knows
>>how to convert the contents of the form (including labels, textbox,
>>etc...) to a bitmap in order to send it to the printer?
>>
>> Aristotelis
>>
>
>
Author
11 Jul 2006 6:20 AM
Aristotelis Pitaridis
Sorry JR but I found an other problem. If an other window exists over the
form that I want to print, the area of the top level form will be print. I
think that this is an other problem problem.

Aristotelis

Ï "Aristotelis Pitaridis" <pitari***@hotmail.com> Ýãñáøå óôï ìÞíõìá
news:1152594518.879454@athnrd02...
Show quoteHide quote
>
> Thanks JR. It works. The only problem is that the quality of the text is
> not very good. Is there any way to improve the quality?
>
> Aristotelis
>
> Ï "JR" <x.x@x.x.> Ýãñáøå óôï ìÞíõìá
> news:C4ysg.529756$dL5.12945535@phobos.telenet-ops.be...
>>
>> Someone have givven me this code.
>>
>> It convert the screen completeet into a bitmap and that print the bitmap
>> from memory
>>
>>
>>
>> '--------------------------------------start
>> code--------------------------------------------
>>
>> Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _
>>
>> hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _
>>
>> Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _
>>
>> hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
>>
>> ByVal dwRop As System.Int32) As Long
>>
>> Dim memoryImage As Bitmap
>>
>> Private Sub CaptureScreen()
>>
>> Dim mygraphics As Graphics = Me.CreateGraphics()
>>
>> Dim s As Size = Me.Size
>>
>> memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
>>
>> Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
>>
>> Dim dc1 As IntPtr = mygraphics.GetHdc
>>
>> Dim dc2 As IntPtr = memoryGraphics.GetHdc
>>
>> BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _
>>
>> Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
>>
>> mygraphics.ReleaseHdc(dc1)
>>
>> memoryGraphics.ReleaseHdc(dc2)
>>
>> End Sub
>>
>> Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal
>> e As System.Drawing.Printing.PrintPageEventArgs) Handles
>> PrintDocument1.PrintPage
>>
>> e.Graphics.DrawImage(memoryImage, 0, 0,
>> PrintDocument1.DefaultPageSettings.Bounds.Width,
>> PrintDocument1.DefaultPageSettings.Bounds.Height)
>>
>> End Sub
>>
>> Private Sub mnuPrint_Click(ByVal sender As System.Object, ByVal e As
>> System.EventArgs) Handles mnuPrint.Click
>>
>> Dim dlg As New PrintPreviewDialog
>>
>> Dim ps As New PrintDialog
>>
>> Me.BackColor = Color.White
>>
>> Me.Refresh()
>>
>> Application.DoEvents()
>>
>> CaptureScreen()
>>
>> With ps
>>
>> PrintDocument1.DefaultPageSettings.Landscape = True
>>
>> .PrinterSettings = PrintDocument1.PrinterSettings
>>
>> ps.ShowDialog()
>>
>> PrintDocument1.PrinterSettings = .PrinterSettings
>>
>> End With
>>
>> With dlg
>>
>> .Document = PrintDocument1
>>
>> .ShowDialog()
>>
>> End With
>>
>> Me.BackColor = Color.FromKnownColor(KnownColor.Control)
>>
>> End Sub
>>
>> '--------------------------------------End
>> code--------------------------------------------
>>
>> "Aristotelis Pitaridis" <pitari***@hotmail.com> schreef in bericht
>> news:1152559887.494996@athnrd02...
>>>I was trying to print some information such a way that the user will be
>>>able to move objects with the mouse on a form, and then I will use the
>>>contents of the form in order to print the information. Does anyone knows
>>>how to convert the contents of the form (including labels, textbox,
>>>etc...) to a bitmap in order to send it to the printer?
>>>
>>> Aristotelis
>>>
>>
>>
>
>
Author
10 Jul 2006 11:48 PM
Dennis
Can you get the form's graphic object and save it to a bitmap?
--
Dennis in Houston


Show quoteHide quote
"Aristotelis Pitaridis" wrote:

> I was trying to print some information such a way that the user will be able
> to move objects with the mouse on a form, and then I will use the contents
> of the form in order to print the information. Does anyone knows how to
> convert the contents of the form (including labels, textbox, etc...) to a
> bitmap in order to send it to the printer?
>
> Aristotelis
>
>
>