This should be pretty easy to accomplish and I might approach it differently depending on some variables. Like, would this be used for something like POS at branch offices where it has to be dummy proof and limited to specific functions (invoice, etc)? Do you want the data entered in the form to be stored electronically or just dumped once printed? If you need to store it I would use a database (OpenOffice is actually pretty easy to use for this now). You might want to fire up OOo (2.0 is nice) and search help for "XML Forms (XForms)". I think there are several ways you could do this and I think most of them you would want a form on the front end. Another suggestion would be to ask the same question on
www.oooforum.org. I have received some very in depth help there in the past on some complex Calc sheets. If you want some more detailed help you could scan your form and upload an image of it (you could blur out key names/phone numbers etc). Also, is the printer well supported in Linux?
Heck, you could even do a web page in PHP with a MySQL backend and have a submit button that sends the job to the printer. Then you could submit the job from any machine on your network and have it print to the dot matrix printer.