I have previously installed and been working with the "StackPrinter" Greasemonkey script -- which displays a button on each Stack Exchange question to print that question with StackPrinter.
// ==UserScript==
// @name StackPrinter
// @description Add Printer-Friendly button to question
// @include http://stackoverflow.com/questions/*
// @include https://stackoverflow.com/questions/*
// @include http://serverfault.com/questions/*
// @include https://serverfault.com/questions/*
// @include http://superuser.com/questions/*
// @include https://superuser.com/questions/*
// @include https://stackapps.com/questions/*
// @include https://stackapps.com/questions/*
// @include http://meta.stackoverflow.com/questions/*
// @include https://meta.stackoverflow.com/questions/*
// @include http://*.stackexchange.com/questions/*
// @include https://*.stackexchange.com/questions/*
// @include http://askubuntu.com/questions/*
// @include https://askubuntu.com/questions/*
// @include http://answers.onstartups.com/questions/*
// @include https://answers.onstartups.com/questions/*
// @include http://meta.mathoverflow.net/questions/*
// @include https://meta.mathoverflow.net/questions/*
// @include http://mathoverflow.net/questions/*
// @include https://mathoverflow.net/questions/*
// ==/UserScript==
function with_jquery(f) {
var script = document.createElement("script");
script.type = "text/javascript";
script.textContent = "(" + f.toString() + ")(jQuery)";
document.body.appendChild(script);
};
with_jquery(function($) {
var re = new RegExp("^http://(.*?)\.(com|net|org)");
var group = re.exec(window.location.href);
var service = group[1];
$('#question .vote:first').append(''
+'<div id="PrinterFriendly" style="margin-top:8px">'
+'<a alt="Printer-Friendly" title="Printer-Friendly"'
+' href="javascript:'
+' (function(){'
+' f=\''
+'http://www.stackprinter.com/export?format=HTML&service='
+service
+'&question='
+$('.vote').find('input[type=hidden]:first').val()
+'\';'
+' a=function(){if(!window.open(f))location.href=f};'
+' if(/Firefox/.test(navigator.userAgent))'
+' {setTimeout(a,0)}else{a()}'
+' })()'
+' "'
+'> <img width="33px" height="33px" '
+' src="http://www.stackprinter.com/images/printer.gif">'
+' </img>'
+'</a></div>'
);
});