To do this, you may use the printOptions columnsToPrint property. Attached are a couple files that demonstrate how to do this. A slightly modified version of the CustomPagerControl, that passes in the current grid to the MyPrintOptions.as file, which iterates through the currently visible columns and adds them to the columnsToPrint property.
for each(var col:Object in grid.visibleColumns)
Please note, if you want to completely prevent a column from being printed, you can use the excludeFromPrint property.
MyPrintOptions.as (2.19 kb)
CustomPagerControl.mxml (8.75 kb)