• vbe2010 printing with columns and then on next page

    Home » Forums » Developers, developers, developers » DevOps Lounge » vbe2010 printing with columns and then on next page

    Author
    Topic
    #490683

    I will start by admitting that the print routines used were cut and pasted without really understanding what they do beyond a general haziness.
    I was able to adapt the basic structure to get what I need. (as long as it fits on 1 page) :rolleyes:

    Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim prn As New Printing.PrintDocument
            ‘ Handle the page events
            AddHandler prn.PrintPage, AddressOf Me.PrintPageHandler
            ‘ Do the print (Printing handled by the print page handler)
            prn.Print()
            ‘ Remove the page handler
            RemoveHandler prn.PrintPage, AddressOf Me.PrintPageHandler
    
        End Sub
    
         Private Sub PrintPageHandler(ByVal sender As Object, ByVal args As Printing.PrintPageEventArgs)
    
    ****set up values here****
    
    
            If RadioButton1.Checked Then
                args.Graphics.DrawString(“Shaft Radius – All measurements from touch – Button Dia: ” & buttonmm, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 10, 40)
                args.Graphics.DrawString(“Side Step   Rad Val   Dia Val”, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 10, 80)
                args.Graphics.DrawString(buttonmm / 2, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 50, 120)
                args.Graphics.DrawString(vdist, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 140, 120)
                args.Graphics.DrawString(vdist * 2, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 230, 120)
            End If
            If RadioButton2.Checked Then
                args.Graphics.DrawString(“Throat Radius – All measurements from touch – Button Dia: ” & buttonmm, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 10, 40)
                args.Graphics.DrawString(“Side Step   Rad Val   Dia Val”, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 10, 80)
                args.Graphics.DrawString(“0”, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 50, 120)
                args.Graphics.DrawString(vdist, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 140, 120)
                args.Graphics.DrawString(vdist * 2, New Font(“Arial”, 16, FontStyle.Regular), Brushes.Black, 230, 120)
            End If
    
            x = 0
            y = 3
    
            Do
                x = x + sidemm
                y = y + 1
                ang = System.Math.Asin(x / pathrad)
                z = System.Math.Cos(ang) * pathrad
                z = Math.Round(z * 100) / 100
                If z < vtdist – buttonmm / 2 Then Exit Do
                If RadioButton1.Checked Then
                    tstring = Math.Round((x + buttonmm / 2) * 100) / 100
                    args.Graphics.DrawString(tstring, New Font("Arial", 16, FontStyle.Regular), Brushes.Black, 50, y * 40)
                    tstring = Math.Round((z + buttonmm / 2 – vtdist) * 100) / 100
                    args.Graphics.DrawString(tstring, New Font("Arial", 16, FontStyle.Regular), Brushes.Black, 140, y * 40)
                    tstring = Math.Round(((z + buttonmm / 2 – vtdist) * 2) * 100) / 100
                    args.Graphics.DrawString(tstring, New Font("Arial", 16, FontStyle.Regular), Brushes.Black, 230, y * 40)
                End If
                If RadioButton2.Checked Then
                    args.Graphics.DrawString(x, New Font("Arial", 16, FontStyle.Regular), Brushes.Black, 50, y * 40)
                    tstring = Math.Round((z + buttonmm / 2 – vtdist) * 100) / 100
                    args.Graphics.DrawString(tstring, New Font("Arial", 16, FontStyle.Regular), Brushes.Black, 140, y * 40)
                    tstring = Math.Round(((z + buttonmm / 2 – vtdist) * 2) * 100) / 100
                    args.Graphics.DrawString(tstring, New Font("Arial", 16, FontStyle.Regular), Brushes.Black, 230, y * 40)
                End If
    
            Loop
    
        End Sub

    which works ok unless the loop prints more lines than I have space for on the page.

    What I need is code to cause a new page and if not too much of a problem, maybe coding to print the loop output in 2 columns on the page before requiring a new page.

    Thanks heaps in advance to anyone willing to help here.

    Reply To: vbe2010 printing with columns and then on next page

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: