If you are using C# to print directly, then you should be using a
PrintDocument[
^] object to do the print.
If you look at the PrintPage event, it includes the printable area as the PrintPageEventArgs.MarginBounds, and you have the size of your image, so centring it is just a case of setting the top left hand corner of the print position to the Width of the print area minus the Width of the image, divided by two for the X, and the Height of the print area minus the Height of the image, divided by two for the Y.
Feed that into the Graphics.DrawImage method, and it will be centred.