Create a Dynamic PDF File Based on User’s Input

When I need to create a pdf using PHP, I prefer to use the TCPDF library, because I find it easy to use and flexible. I the tutorial Create a PDF Using PHP and TCPDF, you will learn how to create a basic pdf file and add the desired content to it. But if you want to create a form, such as an online calculator and you want to generate a pdf containing the information based on the user’s input, you can achieve it easily by using the solution below:

Step 1: Create a form.

<form name="create-pdf" method="post" action="action.php">

<div><label for="name"><input type="text" name="_name" id="name" /></div>

<!-- other fields here -->

</form>

Step 2: Create a php file that will receive the form and create the pdf. The name and the path must be the same with the value of action in Step 1.

$filename = dirname(__FILE__) . 'my-tcpdf-' . time() . '.pdf';

$name = $_POST['_name'];

$pdf = new TCPDF();
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->AddPage();
$pdf->Write(0, 'Hello ' . $name . '!');
$pdf->Output($filename, 'F');

Step 3:

form-flow1(a) If you want to user to click a link after submitting the form in order to download the pdf, add the following codes to your php file.

echo 'Click <a href="' . $filename . '">here</a> to download the file.';

(b) If you want to directly show the download pop up window, just add the ff. code:


header('Content-disposition: attachment; filename=MY.pdf');
header('Content-type: application/pdf');
readfile($filename);

In 3.b, you must not echo anything or show html codes or else you will get an error message such as ”Header has been sent”.

 

 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone

Leave a Reply

Your email address will not be published. Required fields are marked *