So what is your issue? A5 is exactly 1/2 the size of A4. So considering that you specified size A5 but printed it on A4, what would you expect?
Modification:
Setting the PrintForm's PageSettings involves using an event handler. I tried this code and it looked good to me. Please try it if it fits your needs:
Public Class Form1
Public Sub test()
Dim instance As New QueryPageSettingsEventHandler(AddressOf SettingsHandler)
Me.PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
Me.PrintForm1.Print()
End Sub
Public Sub SettingsHandler(ByVal sender As Object, ByVal e As QueryPageSettingsEventArgs) Handles PrintForm1.QueryPageSettings
Dim a As New System.Drawing.Printing.PaperSize("A5 (148 x 210 mm)", 584, 827)
Dim ps As New PageSettings
ps.PaperSize = a
ps.Landscape = True
ps.Margins.Top = 0
ps.Margins.Bottom = 0
ps.Margins.Left = 5
ps.Margins.Right = 5
e.PageSettings = ps
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
test()
End Sub
End Class
I also corrected the values for the paper dimension. You specified the format in landscape. I specified it how A5 is defined and the width and height must be given in 1/100 of an inch. You can switch width with height of course but then you'd have to set
ps.Landscape = False
Cheers!