I am populating a datagrid with 3 columns with varying rows depending on the data.
how can i print the column data straight to a com port printer

I haven't really checked this out, nor have I tried to print to a COM port printer, but see if it might help you. The initial post is for DataGrid, but if you scroll down, you will see a file "DataGridViewPrinter.zip" that you can download.

DataGridViewPrinter