First guess, using the powerful compositing capabilities of ImageMagick?
Create/scan your blank cert.
User inputs name, etc.
Using imageMagick you create an image out of the selected type (ImageMagick supports truetype, fonts, etc.)
Calculate the size of the name and date type "images."
Position them accordingly in a copy of the cert using composite methods in ImageMagick.
Save the file, or just output to the browser as content-type:image/jpg to save disk space.
Similar approaches can be done automating PDF for higher resolution, but I've never done that.
Requires ImageMagick be installed and the perl interface perlMagick, or even Imagick for PHP.
[edited by: rocknbil at 6:06 pm (utc) on July 7, 2009]