Printing problem


J

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--------------------------------------------
 
Ad

Advertisements

A

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
 
A

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
 
Ad

Advertisements

A

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top