First of all, after being pointed at the smartness of arduino's Serial.print(int) method, I'm now using write() to actually write out the escape sequences to configure the printer. It works now, so I can set the correct heating parameters and character code table.
Here's a picture of the breadboard (including some unused components and inefficient wiring):
The red LED next to the buttons indicates that there is something on the list, but not printed yet. Pressing the print button (in this case the center button of those five) makes the device print the list and clear it. The LED is off again:
The printing quality seems to good. The first line is a bit fainter than the following ones, but well readable.
I had to replace my power supply (USB wall wart) with a "real" 5V/1.6A wall wart to get this printing quality. The USB one I used earlier, although rated for 2A, didn't supply enough current. I was advised in chat to place a short or low value resistor between D+ and D-, but simply replacing it was easier. I'll now clean up the code and put it on github.
The web interface is dead simple. When the list is empty, it shows a text edit and an add button:
Items can be added by entering a name and clicking "Add". They appear on the list and the red LED is on (see above):
Checking the boxes and hitting delete does the obvious thing. Printign the list clears it, and the LED is off again.