Home » Php » Writing/Drawing over a PDF template document in PHP

Writing/Drawing over a PDF template document in PHP

Posted by: admin April 23, 2020 Leave a comment


I’d like to be able to write/overlay text over an existing pdf document using PHP. What I am hoping to do is have a pdf document that can act as a template, and fill in the gaps by opening the template doc, overlaying the relevant text, and serving the result as a new document. The template document is a single page so page merging/manipulation is not necessary.

Are there any free libraries that can do this? Anywhere I should look? Most searches I’ve done seem to deal with merging documents/adding pages, instead of overlaying content over an existing page.


Here is what I did:
1. Download FPDF
2. Download FPDI + FPDF_TPL from


Here is some sample code for any future wanderers (adapted from the samples at www.setasign.de):


// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
// set the sourcefile 
// import page 1 
$tplIdx = $pdf->importPage(1); 
// use the imported page as the template 
$pdf->useTemplate($tplIdx, 0, 0); 

// now write some text above the imported page 
$pdf->SetXY(25, 25); 
$pdf->Write(0, "This is just a simple text"); 

$pdf->Output('newpdf.pdf', 'D'); 
How to&Answers:

Have a look at the FPDI Library an add on to FPDF for template annotation.

It can also bolt-on to TCPDF, another popular PHP PDF library. An existing PDF is used as the base of a page, instead of a blank, after that the procedures are the same as regular PDF creation.


You probably want to use PDF Forms for what you want to do. To fill these babies you could use the FDF method described here: Using HTML forms to fill in PDF fields with PHP and FDF.
There is actually another nice SO post about PDF form filling here: Filling PDF Forms with PHP.


When you want to use PDF lib to write over a document, positionning is time consuming and boring. Dhek is useful for such task: https://github.com/applicius/dhek/releases .

JSON mapping over PDF page/coordinates is defined, so that you can write with PDF API you prefer.