Which VIs are you using to generate the report? If you attach a sample VI or let me know which VIs you're using, I can help. It may be that you need to modify the VIs that generate the documentation to accomplish the specific functionality you're looking for.
Oh, I see...you're just using the File > Print utility. Well, there's not much you can customize there other than the values of the options you see. 🙂 I recommend you submit a request at the Product Suggestion Center if you want to have an option in the Print dialog to exclude hidden controls from the printed documentation.
Yes, you could write your own VI that calls the Report Generation VIs and generate your own report to send to a printer. Search the LabVIEW Help for "Report Generation" and you should find the help you need. You can also check out the examples in [LabVIEW]\examples\reports.
Your current approach will only grab the top-level controls on the front panel...the Controls property does not return references to controls nested inside tab controls, clusters, radio buttons, and arrays. If you are interested in getting those control descriptions, you'll need to recurse into those "parent"-type controls to get the sub controls as well.
Another option would be for you to just use a modified version of "Append VI List of Controls to Report.vi", which is in the Report Generation > VI Documentation subpalette in LabVIEW 7.0 or later. This VI does all the recursing for you. If you dig down into the VI, you'll get to the subVI called "Append Control Info to Report.vi". In this subVI, you could change it to check the Visible property of the control, and not append its info unless it's a visible control. You would also need to change the VI to avoid appending a control image, and also to append the control description. I also recommend you save any edits to these VIs as your own copies, since it's generally not a good idea to modify the actual shipping VIs in vi.lib.
I hope this helps...good luck.