I have a datagrid of information and when the print button is clicked I want to show a print preview screen of what it will look like and then let the user print the documen
You need to add the PrintPage event:
myDocument.DocumentName = "Test2015";
myDocument.PrintPage += myDocument_PrintPage;
and you need to code it! In its very simplest form this will dump out the data:
void myDocument_PrintPage(object sender, PrintPageEventArgs e)
{
   foreach(DataGridViewRow row in dataGridView1.Rows)
      foreach(DataGridViewCell cell in row.Cells)
      {
          if (Cell.Value != null)
              e.Graphics.DrawString(cell.Value.ToString(), Font,  Brushes.Black, 
                          new Point(cell.ColumnIndex * 123, cell.RowIndex  * 12 ) );
      }
}
But of course you will want to add a lot more to get nice formatting etc..
For example you can use the Graphics.MeasureString() method to find out the size of a chunk of text to optimize the coodinates, which are hard coded just for testing here. 
You may use the cell.FormattedValue instead of the  raw Value.
You may want to prepare a few Fonts you will use, prefix the dgv with a header, maybe a logo..
Also worth considering is to set the Unit to something device independent like mm: 
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
And, if need be, you should keep track of the vertical positions so you can add page numbers and recognize when a Page is full!
Update: Since your DGV may contain empty cells I have added a check for null.