Convert HTML form data into a PDF file using PHP

2019-03-11 11:44发布

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"

4条回答
萌系小妹纸
2楼-- · 2019-03-11 12:35

One way you can consider is using an online API that converts any HTML to PDF. You can send them a generated HTML (easier to produce) that will contains your user's submitted data, and receive back a high fidelity PDF.

There are quite a few services available on the market. I like to mention PDFShift because it offers a package in PHP that simplifies the work for you.

Once you've installed it (using Composer, or downloaded it directly, depending on your choices) you can quickly convert an HTML document like this:

require_once('vendor/autoload.php');
use \PDFShift\PDFShift;

PDFShift::setApiKey('{your api key}');
PDFShift::convertTo('https://link/to/your/html', null, 'invoice.pdf');

And that's it. There are quite a few features you can implement (accessing secured documents, adding a watermark, and more).

Hope that helps!

查看更多
Evening l夕情丶
3楼-- · 2019-03-11 12:40

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

查看更多
霸刀☆藐视天下
4楼-- · 2019-03-11 12:41

http://www.fpdf.org/

That would be the library to do it. I used it here to add images to a form and submit it to create a PDF with those images: http://productionlocations.com/locations

The actual code to do it is pretty complex.

查看更多
beautiful°
5楼-- · 2019-03-11 12:44

I have found PrinceXML very easy to use. It takes your HTML/XML, applies CSS, and converts it into a PDF. The PHP extensions work very well. Unfortunately, it's not free.

查看更多
登录 后发表回答