Hallo Leute,
ich möchte gerne mehrere Zeichnungen auf eine Seite abbilden und speichern /ausdrucken.
Habe folgendes Testprogramm gemacht: Man gibt eine Zahl ein (1,2 oder 3) und je nachdem was für eine Zahl man eingibt erscheint nach dem klicken auf einen Button eine Zeichnung (Polygon.Ellipse...) in einer PicBox. Des weiteren gibt es zwei zusätzliche Knöpfe. Ein Knopt um alle angezeigten Bilder untereinander auf eine Seite angebracht zu speichern. Ein weiterer Knopf um alle gezeichneten Sachen auf einer Seite untereinander angebracht zu drucken.
Das Problem ist wenn ich meine Zeichnung mit "DrawImage drucke" sehen die Linien verpixelt aus. Deshalb wollte ich wissen ob ich direkt (nicht als DrawImage) die Zeichnung ausdrucken kann.
Wenn ich z.B einfach ein Rechteck in der Druck/PrintPage Prozedur zeichnen lasse dan wird das Rechteck schön gedruckt (nicht so verpixelt).
Habe versucht einfach unter "Private Sub Druck..." g=g2 zu definieren und dann mit g.Flush() das auszugeben aber ich glaube das funzt so nicht da ich hier beim Drucken nichts abgedruckt wird.
ich möchte gerne mehrere Zeichnungen auf eine Seite abbilden und speichern /ausdrucken.
Habe folgendes Testprogramm gemacht: Man gibt eine Zahl ein (1,2 oder 3) und je nachdem was für eine Zahl man eingibt erscheint nach dem klicken auf einen Button eine Zeichnung (Polygon.Ellipse...) in einer PicBox. Des weiteren gibt es zwei zusätzliche Knöpfe. Ein Knopt um alle angezeigten Bilder untereinander auf eine Seite angebracht zu speichern. Ein weiterer Knopf um alle gezeichneten Sachen auf einer Seite untereinander angebracht zu drucken.
Das Problem ist wenn ich meine Zeichnung mit "DrawImage drucke" sehen die Linien verpixelt aus. Deshalb wollte ich wissen ob ich direkt (nicht als DrawImage) die Zeichnung ausdrucken kann.
Wenn ich z.B einfach ein Rechteck in der Druck/PrintPage Prozedur zeichnen lasse dan wird das Rechteck schön gedruckt (nicht so verpixelt).
Habe versucht einfach unter "Private Sub Druck..." g=g2 zu definieren und dann mit g.Flush() das auszugeben aber ich glaube das funzt so nicht da ich hier beim Drucken nichts abgedruckt wird.
VB.NET-Quellcode
- Dim bild1 As Bitmap
- Dim seite As Bitmap = New Bitmap(500, 500)
- Dim grf As Graphics
- Dim g2 As Graphics
- Dim ft As New Font("Arial", 10)
- Dim pinsel As New SolidBrush(Color.Red)
- Dim zf As String
- Dim abstand As Integer
- ...
- Private Sub cmdAnzeigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeigen.Click
- bild1 = New Bitmap(picAnzeige.Width, picAnzeige.Height)
- grf = Graphics.FromImage(bild1)
- g2 = Graphics.FromImage(seite)
- zf = txtEingabe.Text
- If zf = "1" Then
- loeschen(bild1)
- zeichne1(zf)
- ElseIf zf = "2" Then
- loeschen(bild1)
- zeichne2(zf)
- ElseIf zf = "3" Then
- loeschen(bild1)
- zeichne3(zf)
- End If
- picAnzeige.Image = bild1
- End Sub
- Public Sub zeichne1(ByVal sfolge As String)
- abstand += 100
- pinsel.Color = Color.Red
- grf.FillRectangle(pinsel, 10, 0, 100, 50)
- g2.FillRectangle(pinsel, 10, abstand, 100, 50)
- g2.DrawString(zf, ft, Brushes.Black, ((picAnzeige.Width / 2) - ((Len(zf) / 2) * 7)), _
- abstand + (picAnzeige.Height / 2) + 2)
- End Sub
- ...
- Public Sub zeichne2...
- Public Sub zeichne3...
- Private Sub cmdSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpeichern.Click
- Dim img2 As Image = seite
- g2 = Graphics.FromImage(seite)
- img2.Save(Application.StartupPath & "/test1.emf", System.Drawing.Imaging.ImageFormat.Emf)
- End Sub
- ...
- Private Sub Druck(ByVal sender As Object, ByVal e As PrintPageEventArgs) _
- Handles doc.PrintPage
- Dim g As Graphics = e.Graphics
- g.DrawImage(seite, 0, 0) 'als bild druckbar
- End Sub