Tisk pictureboxu   otázka

VB.NET

Dobrý den,

mohl by mi prosím někdo poradit, jak jednoduše vytisknout na defaultní tiskárně obsah pictureboxu? Většinou programuji ve VB6 a tam je to jednoduché, v .net se strácím a nějak tomu nerozumím.

Moc děkuji za radu.

Grr

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

nikdo neporadí?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Možná je to tím, že jsou všichni ve škole!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Prosím, poraďte někdo jak jednoduše vytisknout picturebox...

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Jednoduše neumím, ale už dávno jsem spráskal něco podle nějakého kódu asi z Internetu. Funguje mi to, ale neptejte se proč a jak. Je tam jeden PictureBox a button, co spustí tisk:

Imports System.Drawing.Printing

Public Class Form1

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim ChybaTisku = True
    Dim PocetPokusu = 0
    Do While ChybaTisku
      Try
        Dim TiskObr As New PrintDocument
        AddHandler TiskObr.PrintPage, AddressOf Me.TiskObrazku
        Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
        TiskObr.DefaultPageSettings.Landscape = False
        TiskObr.Print()
        ChybaTisku = False
      Catch ex As Exception
        PocetPokusu += 1
        If PocetPokusu Mod 3 = 0 Then
          If vbYes = MsgBox("Potíže s tiskem trvají! Chcete pokračovat v programu BEZ dalšího pokusu o tisk obrázku?   " & vbCrLf & vbCrLf & _
               "Odpověď ""Ano"" ukončí pokus o tisk, odpověď ""Ne"" proceduru tisku zopakuje", MsgBoxStyle.Question _
             Or MsgBoxStyle.YesNo, "Tisk u PictureBox") Then ChybaTisku = False
        Else
          MsgBox("Při tisku OBRÁZKU došlo k potížím, ověřte stav tiskárny!   " & vbCrLf & vbCrLf & _
                   "Nejprve odstraňte závadu, pak teprve klepněte na OK!!! Pokus o tisk se zopakuje.", MsgBoxStyle.Exclamation, "Tisk u PictureBox")
        End If
      End Try
    Loop
  End Sub

  Private Sub TiskObrazku(ByVal sender As Object, _
  ByVal pp As PrintPageEventArgs)
    pp.PageSettings.Landscape = True
    pp.Graphics.DrawImage(PictureBox1.Image, 0, 0)
    pp.HasMorePages = False
  End Sub
End Class

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jde to udělat takto jednoduše.Nezapomeňte na formulář přidat komponentu PrintDocument (na otevírání souborů openfiledialog)

Imports System.Drawing.Printing 

Public Class Form1
    Dim flname As String
    Private Sub Vytisknuti(ByVal sender As Object, ByVal ea As PrintPageEventArgs)
        ea.Graphics.DrawImage(Image.FromFile(TextBox1.Text), ea.Graphics.VisibleClipBounds)
        ea.HasMorePages = False
    End Sub
    Private Sub bt1_Open_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt1_Open.Click
        ' OpenFileDialog1.Filter = "obrazky (*.jpeg)|*.jpeg")
        OpenFileDialog1.ShowDialog()
        flname = OpenFileDialog1.FileName
        TextBox1.Text = flname
    End Sub
    Private Sub bt_tisk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_tisk.Click
        Try
            AddHandler PrintDocument1.PrintPage, AddressOf Me.Vytisknuti
            PrintDocument1.Print()

        Catch ex As Exception
            MsgBox("Při tisku došlo k chybě", vbCritical + vbOKOnly, "Error")

        End Try
    End Sub
End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback