The whole idea of a PrintDocument is that the PrintPage method is used to print the data regardless of the destination.
The difference is that for a PrintPreview you do this:
PrintPreviewDialog ppd = new PrintPreviewDialog();
ppd.Document = myPrintDocument;
ppdialog.Show();
And for a "real" print you do this:
myPrintDocument.Print();