in reply to Dynamic Forms

I did some checking awhile back on this very concept and discovered the following: Most of the text in an Acrobat-created PDF file is compressed. You can't read it in ASCII. However, form entries are readable. If you have a blank PDF form already, manually enter unique patterns into the blanks, e.g. "PDF_Form_LastName", and save the file. In your CGI program, slurp the file in as one big string, replace the patterns with the desired form contents using regexp substitutions, and save the new file or ship it off to the client. One thing not to do, though, is give your patterns variable names and expect interpolation to do anything but make a mess. There are probably plenty of other "variable names" hiding in there you don't want changed to nulls!

One caveat: Beyond examining the PDF form layout, I haven't actually tried any of this. There may be some hidden gotchas I've overlooked. (Hidden checksums, perhaps?) But it's sure worth a try.