When you see the content of the application exceeding what can be displayed on screen you should consider rearranging the UI. I think the limitations of the simple PrintForm component is reasonable.
PrintDocument component allow you to output any content anyhow you like to a printer, without limitations, using simple and familiar Graphics methods. There should be no lack of web resources explaining usage for both the PrintDocument and the Graphics classes. If the source data is something simple as a DataTable it is highly likely that many has done the "work" before you and posted reusable classes on the web, if not you need to put some more work into it than just calling the Print method of PrintForm component.