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

Questions:

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.

Thanks.

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

http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/

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

<?php 
include('fpdf.php'); 
include('fpdi.php'); 

// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
$pdf->AddPage(); 
// set the sourcefile 
$pdf->setSourceFile('templatedoc.pdf'); 
// 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->SetFont('Arial'); 
$pdf->SetTextColor(255,0,0); 
$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.

Answer:

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.

Answer:

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.