A print stylesheet could be used to style the data grid for printing by for example hiding the search and control bar, and wrapping text in the data grid cells on multiple lines. For the print button a widget could be created which makes sure only the data grid to be printed is visible (for example by adding a css class defined in the print style sheet) and offers the user to print the document. Another approach for the widget would be to copy the data grid to be printed to a new document, where a separate (print) style sheet can be applied.
Of course the print button should know which data grid to print, which can be accomplished by adding a special class to the data grid which is also configured on the print button.
Two approaches:
Maybe one of these is workable for you.