Вам нужно создать таблицу «на лету», или вы можете использовать форму PDF и заполнить ее через код, объединив ее в статический PDF, когда закончите?
Если форма вещь будет работать для вас ....
1) Создание формы PDF. Я использую OpenOffice для этого ... 2) Получите файл шаблона FDF формы. На машине Linux (я использую Mint, но Mint, Ubuntu или Debian все должны работать таким образом) установить пакет Pdftk и использовать команду Pdftk для создания шаблона файла FDF
pdftk demo3.pdf generate_fdf
Вы должны увидеть поле данных формы имена в результирующем выходном файле.
3) Заполните его PHP, возможно, «отметьте» изображение или другой файл PDF на нем (т. Е. Сделайте сертификат с «подписью») и отправьте его клиенту.
<?php
include('./fpdf/fpdf.php');
// set up a bunch of temp file names
$FDFfile = tempnam(sys_get_temp_dir(), gethostname());
$tempPDF=tempnam(sys_get_temp_dir(), gethostname());
$PDFfile=tempnam(sys_get_temp_dir(), gethostname());
$ImageFileName=tempnam(sys_get_temp_dir(), gethostname());
$ImagePDFfilename=tempnam(sys_get_temp_dir(), gethostname());
// build our FDF data file string
//
// bring in top part of FDF file
$dataFile=file_get_contents("header.fdf");
// insert our participants name in the right spot
$dataFile.="<< /T (part_name) /V (".$_POST['lis_person_name_full'].") >> \n";
// finish the FDF file
$dataFile.=file_get_contents("footer.fdf");
// put the FDF data into the tempfile
file_put_contents($FDFfile, $dataFile);
// use pdftk to merge data/pdf form and then
// flatten to prevent editing
exec("pdftk demo3.pdf fill_form ".$FDFfile." output ".$tempPDF." flatten");
// create a new PDF file wtih our image code on it
$pdf = new FPDF();
$pdf->AddPage();
// put image in bottom right corner of US letter paper
$pdf->Image($ImageFileName, 183, 250, 25, 25, 'PNG');
$pdf->Output("F",$ImagePDFfilename);
// use pdftk to "stamp" the contents of one pdf onto the other
exec("pdftk ".$tempPDF." stamp ".$ImagePDFfilename." output ".$PDFfile);
// send final pdf file to browser
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename=certificate.pdf');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($PDFfile));
readfile($PDFfile);
// get rid of temp files
unlink($FDFfile);
unlink($tempPDF);
unlink($PDFfile);
unlink($ImageFileName);
unlink($ImagePDFfilename);
exit;
?>