2016-06-30 2 views
-1

pdf 생성에 fpdf를 사용하고 있습니다. 하지만 작동하지 않습니다.PHP에서 PDF 생성이 작동하지 않습니다.

$pdf = new FPDF(); 
$pdf->AddPage(); 
$pdf->SetFont('Arial','B',16); 
$pdf->Cell(40,10,'Hello World!'); 
$pdff = $pdf->output('tmp\tmp_file.pdf',"D"); 
header('Content-Type: application/pdf'); 
header('Content-Length: '.filesize($pdff)); 
header('Content-disposition: inline; filename="some_pdf_to_download.pdf"'); 
header('Cache-Control: public, must-revalidate, max-age=0'); 
header('Pragma: public'); 
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); 
readfile('tmp\tmp_file.pdf'); 
echo $pdff; 

이것은 내가 사용하고있는 코드입니다. 출력 "% PDF 3 ......."이 나타납니다.

+0

안녕하세요, 안녕하세요. [둘러보기] (http://stackoverflow.com/tour)를 방문한 다음 [How to Ask] (http://stackoverflow.com/help/how- to-ask)하고 마침내 [MCVE] –

답변

0

브라우저에 FPDF 출력의 "D"옵션을 사용하면 파일을 다운로드 할 때이 필요한 모든 헤더를 포함하여 이 필요합니다.

readfile은 서버의 지정된 위치에서 파일의 내용을 출력합니다.

echo $pdff;에 PDF 콘텐츠를 출력하는 것으로 보입니다.

실제로 머리글을 두 번 출력하고 PDF 본문을 세 번 출력하려고합니다.

머리글도 혼란 스럽습니다. 인라인 처리를 지정하지만 다운로드 할 파일 이름을 포함합니다.

가장 간단한 솔루션으로 이후 $pdff에서 모든 것을 대체하는 것입니다 :

$pdf->Output('some_pdf_to_download.pdf', 'D'); 

는 사용자가 PDF 인라인을 렌더링하는 파일이나

$pdf->Output('', 'I'); 

을 다운로드하라는 메시지가 표시하려는 경우

.

관련 문제