Well, the certificates wouldn't be that hard, I don't think. What you could do is make an image with photoshop as a template, have all the borders and whatever images you want and all that on it, but leave the name, date, etc. blank. Then, have a form where they enter their name and everything, and then submit it to a page that would overlay those data over the image, using CSS positioning, and PHP to insert the data. If there are only a few things you are submitting in the form, I'd use method="get", so that they can bookmark their award and come back to it later and have everything there. Then, they could just print that page. For example:
form.php is the form.
award.php is the award.
template.png is the template image.
form.php:
CODE
<html>
<head>
<title>Form</title>
</head>
<body>
<form method="get" action="award.php">
Name: <input type="text" id="name" name="name" /><br />
Level: <input type="text" id="level" name="level" /><br />
<input type="submit" value="Make my Award" id="submit" name="submit" />
</form>
</body>
</html>
award.php:
CODE
<head>
<title>Award</title>
</head>
<body>
<img src="template.png" width="(whatever)" height="(whatever)" alt="Award" />
<div style="position: absolute; left: 110px; right: 130px; width: 300px; height: 200px; top: 400px; border: none;">
<?php echo $_GET["name"] ?>
</div>
<div style="position: absolute; left: 110px; right: 130px; width: 300px; height: 200px; top: 460px; border: none;">
<?php echo $_GET["level"] ?>
</div>
</body>
</html>
Of course, that is just an example; you'd have to customize it to how you want it, but this should give you an idea. You may want to provide a button to print, in which case you'll want a seperate stylesheet for printing which would hide that element.
Good luck, I hope this helps!!
And no, I don't know about your second question.