vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
VB.NET Bild Drucken 
Autor: mastersnow
Datum: 02.02.11 09:28

Hallo,

ich habe folgendes Problem. Ich erstelle beim Programmstart ein Screenshot und speichere es.

Dieses Screenshot muss jetzt auch direkt gedruckt werden. Leider druckt er nur einen Teil des Screenshots.

Wie kann ich den Ausdruck automatisch anpassen das er komplett auf eine DIN a4 seite kommt.

Vielen Dank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: ModeratorDaveS (Moderator)
Datum: 02.02.11 10:36

"Er druckt"? Wer? Wie?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: mastersnow
Datum: 02.02.11 11:09

Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        'Screenshot erstellen
        'On Error GoTo Fehler
 
        Dim b As New Bitmap(SystemInformation.VirtualScreen.Width, _
          SystemInformation.VirtualScreen.Height)
        Using g As Graphics = Graphics.FromImage(b)
            g.CopyFromScreen(0, 0, 0, 0, b.Size)
        End Using
        b.Save("H:\screenshot_drucken.jpg", Imaging.ImageFormat.Jpeg)
 
        Dim oImage As Image = Image.FromFile("H:\screenshot_drucken.jpg")
 
        PictureBox1.Image = oImage
 
        With PrintDocument1
            ' Drucker für den Ausdruck festlegen
            '.PrinterSettings.PrinterName = "PDFCreator"
 
            ' Dokument-Title
            .DocumentName = "Print Picture"
 
            ' Ausdruck starten
            .Print()
        End With
 
 
        Me.Close()
 
 
    End Sub
    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, _
  ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
  Handles PrintDocument1.PrintPage
 
 
 
 
 
        Dim gr As Graphics = e.Graphics
 
        ' Verweis auf das Bild festlegen
        Dim oImage As Image = PictureBox1.Image
 
        ' Rechteck für den Ausdruck festlegen
        ' Position + Originalgröße
        Dim p As New Point(e.MarginBounds.Left, e.MarginBounds.Top)
        Dim r As New Rectangle(p.X, p.Y, oImage.Width, oImage.Height)
 
        ' Bild drucken
        gr.DrawImage(oImage, e.MarginBounds)
 
        gr.Dispose()
 
 
    End Sub
End Class
Ich bin jetzt in der zwischenzeit soweit das wir mir das Bild komplett auf die Seite druckt. Jetzt muss ich es nur noch hinbekommen das er es im Querformat druckt das es nicht so verzerrt ist.

Weiß einer wie?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: Manfred X
Datum: 02.02.11 11:24

Hallo!

Hier der Code für die verzerrungsfreie Größenanpassung und
Positionierung/Zentrierung eines Bildes in einer vorgegebenen
Fläche.

  Dim PrintWidth, PrintHeight As Integer                 'Größe Druckfläche
  Dim outWidth, outHeight, outLeft, outTop As Integer    'Druckgröße Bild 
  PrintWidth = 1024 : PrintHeight = 756                  'Anpassen für DIN A4 
 
  Dim bmp_in As New Drawing.Bitmap("Bilddatei original Screenshot")
  Dim bmp_out As New Drawing.Bitmap(PrintWidth, PrintHeight)
  Dim g As Drawing.Graphics = Drawing.Graphics.FromImage(bmp_out)
  g.Clear(Drawing.Color.White)
  'Positionieren und Zoomen
  outWidth = CInt(bmp_in.Width / bmp_in.Height * PrintHeight)
  outHeight = PrintHeight
  outLeft = CInt((PrintWidth - outWidth) / 2) : outTop = 0
  If outWidth > PrintWidth Then
     outHeight = CInt(bmp_in.Height / bmp_in.Width * PrintWidth)
     outWidth = PrintWidth
     outTop = CInt((PrintHeight - outHeight) / 2) : outLeft = 0
  End If
 
  'Bild in Fläche eintragen 
  g.DrawImage(bmp_in, outLeft, outTop, outWidth, outHeight)
  'Bild speichern
  bmp_out.Save("Ausgabebild", Drawing.Imaging.ImageFormat.Jpeg)
MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: ModeratorDaveS (Moderator)
Datum: 02.02.11 11:26

Image hat die .RotateFlip() Methode. Darüber hinaus kannst du .RotateTransform() und .TranslateTransform() Methoden der Graphics-Klasse verwenden. Eventuell leidet die Qualität darunter.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: mastersnow
Datum: 02.02.11 11:30

Ich habe das Bild drehen jetzt einfach über die Querformat ausgabe des Druckers geregelt. Jetzt muss ich nur den Druckrand kleiner bekommen dann bin ich zufrieden.

     Me.PrintDocument1.DefaultPageSettings.Landscape = True
Das war der Befehl zum drehen des Druckers.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: ModeratorDaveS (Moderator)
Datum: 02.02.11 11:44

Klar, wenn du nur das Bild druckst ist es einfacher.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: mastersnow
Datum: 02.02.11 11:53

Jao war das einfachste und schnellste, hast du vlt. noch eine Idee wie ich den Rand. ca. 2,5 cm weg bekomme beim drucken?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB.NET Bild Drucken 
Autor: ModeratorDaveS (Moderator)
Datum: 02.02.11 12:32

Du kannst einfach dein Ziel-Rechteck vergrößern, mit etwa
gr.DrawImage(oImage, e.MarginBounds.Inflate(50, 50))

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel