If you want to keep the scaling, you will have to choose to scale to the page width or the page height
For example, in my test, if I scale on the width only by keeping the original scaling of the image, I can do :
Private Sub printdoc1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
Dim pageBounds As Rectangle = e.PageBounds
Dim nFactor As Single = CSng(pageBounds.Width / img.Width)
Dim nNewHeight = img.Height * nFactor
pageBounds.Height = CInt(nNewHeight)
e.Graphics.DrawImage(img, New Rectangle(New Point(), pageBounds.Size), New Rectangle(New Point(), img.Size), GraphicsUnit.Pixel)
End Sub
And I will get the image covering all the page width only, with the right image scale :