Yes all of that is possible but you need to ask yourself if storing the PDF/DOC file is really necessary. If you can generate it when needed, then why waste the disk space storing a formatted version of what's already in the database? Moreover, what if the client's information changes? You would need to regenerate the PDF/DOC, delete the old PDF/DOC, and re-save the new formatted version. Why bother? What is gained by storing it? The answer is nothing.
There are many open source PDF generators. We use one called PDFlib that is not free.
As to your last question, where should you begin? First, make sure that the form / database is working to your satisfaction. (It probably is already but I'm just making sure). Then choose a PDF generator and learn to use it - they tend to be pretty easy. Last, write a script called "generate-pdf.php" that (A) opens the database, (😎 reads the client's data, (C) builds and displays the PDF.
Then, you never need to remember where a client's PDF is stored. It's stored right here:
http://www.yourdomain.com/path/to/generate-pdf.php?id=123456
As for how to print it, you can either print it when you open it or you can investigate "cups" and find out how to initiate a system command from PHP that will print a file to a specific printer.