Convert HTML form data into a PDF file using PHP

Djacksway picture Djacksway · Aug 17, 2012 · Viewed 59.7k times · Source

I have been looking and testing this for a couple days now and was wondering if anyone could point me in a different direction. I have a very long job application HTML form (jobapp.html) and a matching PDF (jobpdf.pdf) that have the same field names for all entries in both the HTML form and the PDF. I need to take the user data that is entered in the form and convert it to a PDF. This is what I have gathered so far but don't know if I am on track:

Is pdftk the only viable 3rd party app to accomplish this?

Using pdftk would i take the $_POST data collected for the user and generate a .fdf(user.fdf) then flatten the .fdf on the .pdf(job.pdf). So irreguarless of where the fields are located on each document the information on the fdf would populate the pdf by field names?

I have been trying http://koivi.com/fill-pdf-form-fields/tutorial.php

I have also looked at "Submit HTML form to PDF"

Answer

Igor Parra picture Igor Parra · Aug 17, 2012

I have used fpdf several times to create php-based pdf documents. An example following:

require('fpdf.php');

$pdf = new FPDF();

$pdf->AddFont('georgia', '', 'georgia.php');
$pdf->AddFont('georgia', 'B', 'georgiab.php');
$pdf->AddFont('georgia', 'I', 'georgiai.php');

# Add UTF-8 support (only add a Unicode font)
$pdf->AddFont('freesans', '', 'freesans.php', true);
$pdf->SetFont('freesans', '', 12);

$pdf->SetTitle('My title');
$pdf->SetAuthor('My author');
$pdf->SetDisplayMode('fullpage', 'single');

$pdf->SetLeftMargin(20);
$pdf->SetRightMargin(20);

$pdf->AddPage();
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();

You can learn very fast with these tutorials from the website itself.


EDIT: Example to save form data: (yes, is very easy...)

require('fpdf.php');
$pdf = new FPDF();

$pdf->AddPage();
foreach ($_POST as $key =>$data)
{
    $pdf->Write(5, "$key: $data"); //write
    $pdf->Ln(10); // new line
}
$pdf->Output($path_to_file . 'file.txt','F'); // save to file

Look at these pages created with fpdf, really!

enter image description here

enter image description here