title: Printing and storing receipt in VB.net
body: <p>I am designing a POS similar program to add inventory and print and store the receipt. May I know how do I proceed? Is there a way I can store the receipt in mysql database?
  Here's my screenshot of the POS and the source code</p>
  
  <p>Screenshot of the sale screen: <a href="http://oi64.tinypic.com/35cpy5j.jpg" rel="nofollow noreferrer">http://oi64.tinypic.com/35cpy5j.jpg</a></p>
  
  <p>Upon clicking on the print receipt button I want to generate a pdf and send it to print as well store them so we can access them anytime. What is the best strategy to achieve the same.</p>
  
  <pre><code>Imports MySql.Data.MySqlClient
  Imports System.Text.RegularExpressions
  
  
  Public Class sale
      Dim MysqlConn As MySqlConnection
      Dim COMMAND As MySqlCommand
      Dim iReturn As Boolean
  
      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `itemcode`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown1.DataSource = table
          BunifuDropdown1.ValueMember = "itemname"
          BunifuDropdown1.DisplayMember = "itemname"
      End Sub
      Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles BunifuTextBox4.KeyPress, BunifuTextBox5.KeyPress, BunifuTextBox6.KeyPress, BunifuTextBox7.KeyPress, BunifuTextBox8.KeyPress, BunifuTextBox14.KeyPress, BunifuTextBox15.KeyPress, BunifuTextBox20.KeyPress
          If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) Then
              e.Handled = True
          End If
      End Sub
  
      Private Sub TextBox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BunifuTextBox4.TextChanged, BunifuTextBox5.TextChanged, BunifuTextBox6.TextChanged, BunifuTextBox7.TextChanged, BunifuTextBox8.TextChanged, BunifuTextBox14.TextChanged, BunifuTextBox15.TextChanged, BunifuTextBox20.TextChanged
          Dim digitsOnly As Regex = New Regex("[^\d]")
          BunifuTextBox4.Text = digitsOnly.Replace(BunifuTextBox4.Text, "")
          BunifuTextBox5.Text = digitsOnly.Replace(BunifuTextBox5.Text, "")
          BunifuTextBox6.Text = digitsOnly.Replace(BunifuTextBox6.Text, "")
          BunifuTextBox7.Text = digitsOnly.Replace(BunifuTextBox7.Text, "")
          BunifuTextBox8.Text = digitsOnly.Replace(BunifuTextBox8.Text, "")
          BunifuTextBox14.Text = digitsOnly.Replace(BunifuTextBox14.Text, "")
          BunifuTextBox15.Text = digitsOnly.Replace(BunifuTextBox15.Text, "")
          BunifuTextBox20.Text = digitsOnly.Replace(BunifuTextBox20.Text, "")
      End Sub
  
      Private Sub TextBoxT_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles BunifuTextBox9.KeyPress, BunifuTextBox10.KeyPress, BunifuTextBox11.KeyPress, BunifuTextBox12.KeyPress, BunifuTextBox13.KeyPress, BunifuTextBox16.KeyPress, BunifuTextBox17.KeyPress, BunifuTextBox19.KeyPress, BunifuTextBox22.KeyPress
          If Not Char.IsNumber(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) AndAlso Not e.KeyChar = "." Then
              e.Handled = True
          End If
      End Sub
  
      Private Sub TextBoxT_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BunifuTextBox9.TextChanged, BunifuTextBox10.TextChanged, BunifuTextBox11.TextChanged, BunifuTextBox12.TextChanged, BunifuTextBox13.TextChanged, BunifuTextBox16.TextChanged, BunifuTextBox17.TextChanged, BunifuTextBox19.TextChanged, BunifuTextBox22.TextChanged
          Dim digitsOnly As Regex = New Regex("[^\d]")
          BunifuTextBox9.Text = digitsOnly.Replace(BunifuTextBox9.Text, "")
          BunifuTextBox10.Text = digitsOnly.Replace(BunifuTextBox10.Text, "")
          BunifuTextBox11.Text = digitsOnly.Replace(BunifuTextBox11.Text, "")
          BunifuTextBox12.Text = digitsOnly.Replace(BunifuTextBox12.Text, "")
          BunifuTextBox13.Text = digitsOnly.Replace(BunifuTextBox13.Text, "")
          BunifuTextBox16.Text = digitsOnly.Replace(BunifuTextBox16.Text, "")
          BunifuTextBox17.Text = digitsOnly.Replace(BunifuTextBox17.Text, "")
          BunifuTextBox19.Text = digitsOnly.Replace(BunifuTextBox19.Text, "")
          BunifuTextBox22.Text = digitsOnly.Replace(BunifuTextBox22.Text, "")
      End Sub
      Private Sub BunifuImageButton1_Click(sender As Object, e As EventArgs) Handles BunifuImageButton1.Click
          ownerhome.Show()
          Me.Hide()
      End Sub
  
      Private Sub BunifuImageButton2_Click(sender As Object, e As EventArgs) Handles BunifuImageButton2.Click
          Me.WindowState = FormWindowState.Minimized
      End Sub
  
      Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown2.DataSource = table
          BunifuDropdown2.ValueMember = "itemname"
          BunifuDropdown2.DisplayMember = "itemname"
      End Sub
  
      Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown3.DataSource = table
          BunifuDropdown3.ValueMember = "itemname"
          BunifuDropdown3.DisplayMember = "itemname"
      End Sub
  
      Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown4.DataSource = table
          BunifuDropdown4.ValueMember = "itemname"
          BunifuDropdown4.DisplayMember = "itemname"
      End Sub
  
      Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown5.DataSource = table
          BunifuDropdown5.ValueMember = "itemname"
          BunifuDropdown5.DisplayMember = "itemname"
      End Sub
  
      Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown6.DataSource = table
          BunifuDropdown6.ValueMember = "itemname"
          BunifuDropdown6.DisplayMember = "itemname"
      End Sub
  
      Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
          Dim connection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
          Dim adapter As New MySqlDataAdapter("SELECT `itemname`, `saleprice`, `quantity` FROM inventory WHERE quantity &gt; 0", connection)
          Dim table As New DataTable()
          adapter.Fill(table)
          BunifuDropdown7.DataSource = table
          BunifuDropdown7.ValueMember = "itemname"
          BunifuDropdown7.DisplayMember = "itemname"
      End Sub
  
      Private Sub BunifuDropdown1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown1.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown1.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox9.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
      Private Sub BunifuDropdown2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown2.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown2.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox10.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
      Private Sub BunifuDropdown3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown3.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown3.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox11.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
      Private Sub BunifuDropdown4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown4.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown4.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox12.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
  
  
      Private Sub BunifuDropdown6_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown6.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown6.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox16.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
      Private Sub BunifuDropdown7_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown7.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown7.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox17.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
      Private Sub BunifuDropdown5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles BunifuDropdown5.SelectedIndexChanged
          Dim _isFound As Boolean = False
          Using SQLConnection As New MySqlConnection("server=localhost;userid=root;password=;database=chanamotors")
              Using sqlCommand As New MySqlCommand()
                  With sqlCommand
                      .CommandText = "SELECT `saleprice` FROM `inventory` WHERE `itemname` = @itemname"
                      .Connection = SQLConnection
                      .CommandType = CommandType.Text
                      .Parameters.AddWithValue("@itemname", BunifuDropdown5.Text)
                  End With
                  Try
                      SQLConnection.Open()
                      Dim myReader As MySqlDataReader = sqlCommand.ExecuteReader()
                      iReturn = True
  
                      While myReader.Read()
                          _isFound = True
                          BunifuTextBox13.Text = myReader("saleprice").ToString
                      End While
                  Catch ex As Exception
                      MsgBox(ex.Message.ToString)
                      iReturn = False
                  End Try
  
              End Using
          End Using
      End Sub
  
      Private Sub BunifuButton3_Click(sender As Object, e As EventArgs) Handles BunifuButton3.Click
          Dim a, b, c, d, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z As Decimal
          Dim subtotal, tax, total As Decimal
  
          If BunifuTextBox9.Text = "" Then
              a = 0
          Else
              a = BunifuTextBox9.Text
          End If
          If BunifuTextBox10.Text = "" Then
              b = 0
          Else
              b = BunifuTextBox10.Text
          End If
          If BunifuTextBox11.Text = "" Then
              c = 0
          Else
              c = BunifuTextBox11.Text
          End If
          If BunifuTextBox12.Text = "" Then
              d = 0
          Else
              d = BunifuTextBox12.Text
          End If
          If BunifuTextBox13.Text = "" Then
              f = 0
          Else
              f = BunifuTextBox13.Text
          End If
          If BunifuTextBox16.Text = "" Then
              g = 0
          Else
              g = BunifuTextBox16.Text
          End If
          If BunifuTextBox17.Text = "" Then
              h = 0
          Else
              h = BunifuTextBox17.Text
          End If
          If BunifuTextBox19.Text = "" Then
              i = 0
          Else
              i = BunifuTextBox19.Text
          End If
  
          If BunifuTextBox4.Text = "" Then
              j = 0
          Else
              j = BunifuTextBox4.Text
          End If
          If BunifuTextBox5.Text = "" Then
              k = 0
          Else
              k = BunifuTextBox5.Text
          End If
          If BunifuTextBox6.Text = "" Then
              l = 0
          Else
              l = BunifuTextBox6.Text
          End If
          If BunifuTextBox7.Text = "" Then
              m = 0
          Else
              m = BunifuTextBox7.Text
          End If
          If BunifuTextBox8.Text = "" Then
              n = 0
          Else
              n = BunifuTextBox8.Text
          End If
          If BunifuTextBox14.Text = "" Then
              o = 0
          Else
              o = BunifuTextBox14.Text
          End If
          If BunifuTextBox15.Text = "" Then
              p = 0
          Else
              p = BunifuTextBox15.Text
          End If
          If BunifuTextBox20.Text = "" Then
              q = 0
          Else
              q = BunifuTextBox20.Text
          End If
  
          If BunifuTextBox22.Text = "" Then
              z = 0
          Else
              z = BunifuTextBox22.Text
          End If
  
          r = a * j
          s = b * k
          t = c * l
          u = d * m
          v = f * n
          w = g * o
          x = h * p
          y = i * q
  
          subtotal = r + s + t + u + v + w + x + y
          tax = (subtotal / 100) * z
          total = subtotal + tax
  
          Label10.Text = r
          Label17.Text = s
          Label16.Text = t
          Label15.Text = u
          Label14.Text = v
          Label13.Text = w
          Label12.Text = x
          Label11.Text = y
          Label21.Text = tax
          Label23.Text = "Total Tax: "
          Label19.Text = "SUB TOTAL: "
          Label18.Text = total &amp; " INR"
  
      End Sub
  
      Private Sub Button8_Click(sender As Object, e As EventArgs)
          MsgBox(DateTimePicker1.Text)
      End Sub
  
      Private Sub BunifuButton2_Click(sender As Object, e As EventArgs) Handles BunifuButton2.Click
  
      End Sub
  End Class
  </code></pre>