2016-10-23 2 views
1

FPDF를 처음 사용하는 순간입니다. 나는 진짜 문제에 직면하고있다. 나는이 같은 배열에 저장된 여러 데이터베이스 값이 있습니다.foreach 배열 값 PHP를 사용하여 FPDF를 사용하여 PDF를 만드는 방법은 무엇입니까?

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 템플릿 파일을 얻는다. 리눅스 머신 (나는 민트를 사용하지만, 민트, 우분투 나 데비안 모두가이 방식으로 작동한다)에 당신은 당신의 폼 데이터 필드를 참조해야 pdftk 패키지를 설치하고 FDF 템플릿 파일을

pdftk demo3.pdf generate_fdf 

를 생성하는 pdftk 명령을 사용하여 결과 출력 파일의 이름.

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; 

?> 
관련 문제