Question

Filling PDF Forms with PHP

Are there PHP libraries which can be used to fill PDF forms and then save (flatten) them to PDF files?

 47  73395  47
1 Jan 1970

Solution

 49

The libraries and frameworks mentioned here are good, but if all you want to do is fill in a form and flatten it, I recommend the command line tool called pdftk (PDF Toolkit).

See https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

You can call the command line from php, and the command is

pdftk formfile.pdf fill_form fieldinfo.fdf output outputfile.pdf flatten

You will need to find the format of an FDF file in order to generate the info to fill in the fields. Here's a good link for that:

http://www.tgreer.com/fdfServe.html

[Edit: The above link seems to be out of commission. Here is some more info...]

The pdftk command can generate an FDF file from a PDF form file. You can then use the generated FDF file as a sample. The form fields are the portion of the FDF file that looks like

...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...

You might also check out php-pdftk, which is a library specific to PHP. I have not used it, but commenter Álvaro (below) recommends it.

2008-09-16

Solution

 5

A big +1 to the accepted answer, and a little tip if you run into encoding issues with the fdf file. If you generate the fields.fdf and upon running

file -bi fields.fdf

you get

application/octet-stream; charset=binary

then you've most likely run into a UTF-16 character set issue. Try converting the ftf by means of

cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf

I was then able to edit and import the better.fdf file into my PDF form.

Hopefully this saves someone some Google-ing

2012-10-07