|
|
|||||||||
|
|||||||||
|
|||||||||
| |
|||
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Display picture and image in the same component
Hello
I need a little help with some text and image problems. - How can I display image and text in the same component and print both. I have tried to do like this: Insert image and text into a richTextBox Sub InsertImageIntoRtb(ByVal rtb As RichTextBox, ByVal img As Image) Clipboard.SetDataObject(img) rtb.Paste() End Sub Sub InsertImageIntoRtb(ByVal rtb As RichTextBox, ByVal imgPath As String) Try Dim img As New System.Drawing.Bitmap(imgPath) InsertImageIntoRtb(rtb, img) Catch ex As Exception End Try End Sub Insert image InsertImageIntoRtb(ricUtleie, Application.StartupPath() & "\xxx.gif") It works ok, but when I try to print I only get the text on the paper and not my image. I use this code to print. PrintDocument1.Print() Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage 'PrintPage is the foundational printing event. This event gets fired for every ' page that will be printed Static intCurrentChar As Int32 ' declaring a static variable to hold the position of the last printed char Dim font As New Font("Verdana", 14) ' initializing the font to be used for printing Dim PrintAreaHeight, PrintAreaWidth, marginLeft, marginTop As Int32 With PrintDocument1.DefaultPageSettings ' initializing local variables that contain the bounds of the printing area rectangle PrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom PrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right ' initializing local variables to hold margin values that will serve ' as the X and Y coordinates for the upper left corner of the printing ' area rectangle. marginLeft = .Margins.Left marginTop = .Margins.Top ' X and Y coordinate End With If PrintDocument1.DefaultPageSettings.Landscape Then Dim intTemp As Int32 intTemp = PrintAreaHeight PrintAreaHeight = PrintAreaWidth PrintAreaWidth = intTemp ' if the user selects landscape mode, swap the printing area height and width End If Dim intLineCount As Int32 = CInt(PrintAreaHeight / font.Height) ' calculating the total number of lines in the document based on the height of ' the printing area and the height of the font Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, PrintAreaWidth, PrintAreaHeight) ' initializing the rectangle structure that defines the printing area Dim fmt As New StringFormat(StringFormatFlags.LineLimit) 'instantiating the StringFormat class, which encapsulates text layout information Dim intLinesFilled, intCharsFitted As Int32 e.Graphics.MeasureString(Mid(ricUtleie.Text, intCurrentChar + 1), font, New SizeF(PrintAreaWidth, PrintAreaHeight), fmt, intCharsFitted, intLinesFilled) ' calling MeasureString to determine the number of characters that will fit in ' the printing area rectangle e.Graphics.DrawString(Mid(ricUtleie.Text, intCurrentChar + 1), font, Brushes.Black, rectPrintingArea, fmt) ' print the text to the page intCurrentChar += intCharsFitted 'advancing the current char to the last char printed on this page If intCurrentChar < ricUtleie.Text.Length Then e.HasMorePages = True 'HasMorePages tells the printing module whether another PrintPage event should be fired Else e.HasMorePages = False intCurrentChar = 0 End If End Sub Thanks for you help in advance Silje |
![]() |
| Viewing: Dev Articles Community Forums > Programming > .NET Development > Display picture and image in the same component |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|