Sorry, should have said what printer. It is a Star SP300 dot matrix parallel interface. I made a silly mistake - the 500 has linux drivers, but the 300 does not. Partly I don't want to be out £40, but also at this point there is an intellectual challenge involved!
I think it might be possible to print directly to it in 'raw' mode - there are hints about this on the net. ls > dev/lp0
and there is something about setting up the printer as make = raw, with model as raw queue, after which you are supposed to be able to print to it with lpr -P queuefile
If I can figure out how to get some characters, any characters, sent over to it to print, then I can certainly find a way to format the string so they come out right.
Again rusty with Dot Matrix but most can be put in a mode where they will emulate either ESC/P2 (Epson) or IBM control characters and then you can just set up CUPS to output that. Usually there is a way of doing this from the control panel and printing out menus or on older models via DIP switches hidden somewhere.
raw mode in cups just means "spool the input as is and apply no formatting or control signals" which should work fine for plain text but unless you can insert the correct control characters in the print job, presents a problem if you need access to different typefaces, control of bold characters etc.