To je přesně to co jsem potřeboval. Díky moc ! Ano, máte pravdu, grafika je bitmapová. Tisk na tiskárnu mi už funguje, jen mám ještě potíž s tím jak sejmout grafiku kterou kreslím v PictureBox1_Paint. Pro lepší názornost přiložím kousek kódu:
Dim ElipsaVisible As Boolean = False
Dim ccc As Image
'--- vznikl požadavek vykreslit elipsu ---
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ElipsaVisible = True
Me.Refresh()
End Sub
'--- vlastní vykreslení elipsy na PictureBox ---
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
If ElipsaVisible = True Then e.Graphics.DrawEllipse(Pens.Red, 50, 50, 100, 50)
End Sub
'--- vznikl požadavek vytisknout obsah Pictureboxu ---
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'--- tohle sice projde ale při tisku vyskočí chybové hlášení že ccc = NULL ---
'ccc = Me.PictureBox1.Image
'--- když použiji tuto konstrukci, tak se vytisknou pruhy což je ok ale chybí ta elipsa ---
Dim flag As New Bitmap(200, 100)
Dim flagGraphics As Graphics = Graphics.FromImage(flag)
Dim red As Integer = 0
Dim white As Integer = 11
While white <= 100
flagGraphics.FillRectangle(Brushes.Red, 0, red, 200, 10)
flagGraphics.FillRectangle(Brushes.White, 0, white, 200, 10)
red += 20
white += 20
End While
PictureBox1.Image = flag
ccc = flag
'--- spustit tisk ---
Me.PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawImage(ccc, 100, 100)
End Sub
Nemůžu přijít na to proč se mi ta elipsa ztratí při tisku. Asi je to hloupost ale pořád mi v tom ještě něco uniká.
|