NXT based printers seem to be popular, and here is another great example from Yorm to add to the mix.
The LabyPrinter works on a x-y gantry system, with a touch sensor mounted on the z-axis to know when the pen is touching the paper. It is programmed in RobotC, and capable capable of printing an image 150 pixels x 150 pixels.
The nice part of Yorms setup, is the software he wrote to create the sequence of RobotC commands needed to create the points of the image. It takes a black and white image, turns it into a 150 x 150 pixel representation, with 1's and 0's. It then converts those into x,y,z commands for the printer to work.
As an additional bonus, the printer can be used in manual mode, with a game controller moving the pen around :)