The MapFish print module has recently been packaged into a GeoServer extension, making it a popular solution for PDF-based printing of web maps.
The attached patch provides the basic components (GeoExt.data.PrintProvider and GeoExt.data.PrintPage) to access the print module. It comes with tests and an example to show how basic printing works.
More components for richer user interfaces (preview map, form elements) are already prepared in http://dev.geoext.org/sandbox/ahocevar/playground, and will be provided in separate tickets. Fully featured printing dialogs will also be provided as user extension?.