A slimmed-down version of the printer sketch for arduino available at https://github.com/freerange/printer
This runs on an Arduino ethernet board, connected to a thermal printer.
For best results, power the Arduino using a 9V 2A wall-wart. Power the printer from the Vin line of the Arduino. Connect TX and RX of the printer to digital pins 2 and 3 on the Arduino (or wherever you'd prefer, but remember to update the sketch accordingly).
The Arduino will boot up and poll the print server (specified in the sketch) for new print jobs. See the print server project for more info.