DEV Community

Cover image for Convert HTML Form Data into PDF in PHP
Vishwas R
Vishwas R

Posted on

Convert HTML Form Data into PDF in PHP

PHP is a server-side programming language that is widely used for web development. One of the most common use cases of PHP is to process and store form data submitted by users. In many cases, it is necessary to convert the form data into a more usable format, such as a PDF document. In this article, lets explore how to use PHP to convert form data to PDF.

Step 1: Install a PDF library

The first step is to install a PHP library that can be used to generate PDF documents. There are several popular libraries available, such as TCPDF, FPDF, and mPDF. For this article, we will be using mPDF, which is a free and open-source library that is widely used for generating PDF documents in PHP.
To install mPDF, you can download the latest version from the Github (https://github.com/mpdf/mpdf) or using composer and copy the folder to your web server.

Step 2: Create a form

The next step is to create a form that will allow users to input the data that will be converted to a PDF. In this example, we will create a simple form that collects the user's name, email address, and message.

<form method="post" action="process_form.php">
    <label>Name:</label>
    <input type="text" name="name"><br>
    <label>Email:</label>
    <input type="email" name="email"><br>
    <label>Message:</label>
    <textarea name="message"></textarea><br>
    <input type="submit" value="Submit">
</form>
Enter fullscreen mode Exit fullscreen mode

Step 3: Process the form data

Once the form has been submitted, the form data must be processed and converted into a PDF document. To do this, we will create a PHP script called process_form.php.

<?php

$path = (getenv("MPDF_ROOT")) ? getenv("MPDF_ROOT") : __DIR__;
require_once $path . "/vendor/autoload.php";

$pdfcontent = '<table class="form-data"><thead><tr> </tr></thead><tbody>';

foreach($_POST as $key =>$value){
    $pdfcontent .= "<tr><td>" . ucwords(str_replace("_", " ",$key)) . "</td>:<td>" . $value . "</td></tr>";
}
$pdfcontent .= "</tbody></table>";

$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML(utf8_encode($pdfcontent));
$mpdf->Output('formdata.pdf', 'D');

?>
Enter fullscreen mode Exit fullscreen mode

The process_form.php script first includes the mPDF library using the require_once statement. It then retrieves the form data using the $_POST superglobal array. With the posted data, it creates a HTML table. The script then creates a new mPDF object, write the HTML content, and outputs the form data to the PDF document. Finally, it lets you download the generated PDF by passing 'D' as a parameter in the Output method.

Top comments (0)