2016-10-23 4 views
1

Я новичок в использовании FPDF. Я столкнулся с реальной проблемой. У меня есть несколько значений базы данных, которые хранятся в таких массивах.Как создать PDF-файл с использованием FPDF с использованием значений массива foreach PHP?

foreach($values as $value){ 
$arr1[]=$value['user_name']; 
$arr2[]=$value['last_name']; 
} 

$value['user_name'] is database table1, $value['last_name'] is database table2 

Я хочу создать таблицу PDF, используя эти значения. Может ли кто-нибудь вести меня о том, как решить эту настоящую проблему?

ответ

0

Вам нужно создать таблицу «на лету», или вы можете использовать форму 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; 

?>