(click to go directly to the solution if you're not interested in the story)

Google Wave is not for everyone, but it's definitely a decent tool for collaborating on documents and for planning vacations or other events. One important thing missing from the standard set of features is the ability to print.

There's no way to print a Google Wave by default!

Looking for existing solutions

That's when I started looking for a solution and here are the options I found:

  • Use the PDF Wave Exporter extension for Google Wave
  • Use the Ferry bot to export the wave to a Google document and print it from there
  • Make Google Wave think you're an iPhone (using a User Agent Switcher extension for Firefox for example)
    • This one didn't work for me
  • Use the Readability bookmarklet

None of these solutions were particularly satisfying: most of them lose quite a bit of formatting and some require too many steps to be considered practical.

After waiting for about a month for a decent solution, I decided to do it myself.

Do it yourself

My original idea was to do it via a bookmarklet. If you are not familiar with bookmarklets, they are bookmarks that execute client-side code when clicked on. So I started looking for tutorials on making bookmarklets. I know JavaScript (and if you don't, don't even try building a bookmarklet) so this path looked promising. I found the excellent Bookmarklet Builder tool that lets you make a bookmarklet from the ground-up and iterate very quickly. I then needed to know what to extract from the HTML. Using Firebug I explored the document's structure and found out that all the important text was located inside divs with the class "document". So I gathered the content of each of those document containers and appended each of them to a new window created in a pop-up. I end the script by telling the pop-up to print its content.

The ultimate Google wave printing solution (until Google builds the feature itself)

The result is this bookmarklet which makes printing a Google wave as easy as opening the wave and clicking on the bookmarklet.

Drag and drop in your bookmarks

Print Wave

Leave any question/suggestion/comment below.