2012-09-24 3 views
24

У меня есть страница, в которой используется mPDF, который при запуске отображает PDF-файл в браузере, он также может быть сохранен здесь как PDF без проблем. То, что я хотел бы сделать, - это когда страница запущена и генерирует PDF-файл, который страница сохраняется в виде PDF-файла на сервере.PHP mPDF сохранить файл в формате PDF

Вот текущий код:

<?php 
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/WSAclient.php'; 
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/WSAParser.php'; 

$reportID= $_GET['reportid']; 

$WSAclient = new WSAclient(WSA_USER_ID,WSA_API_KEY); 

$result=$WSAclient->viewReport($reportID,WSA_SUBSCRIPTION_ID,'xml','EN'); 

unset($WSAclient); 

ob_start(); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>PDF Report</title> 
<!--Add your CSS here--> 
</head> 
<body>  
<?php 
echo WSAParser::viewReportResponse($result); 
?> 
</body> 
</html> 
<?php 
$HTMLoutput = ob_get_contents(); 
ob_end_clean(); 


//Convert HTML 2 PDF by using MPDF PHP library 
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/MPDF/mpdf.php'; 
$mpdf=new mPDF(); 

$mpdf->WriteHTML($HTMLoutput); 
$mpdf->Output(); 
?> 

Как я сказал, что это выводит PDF штраф, но может кто-нибудь сказать мне, как сохранить как PDF?

ответ

64

mPDF docs указывает, что первым аргументом Output() является путь к файлу, второй - режим сохранения - вам необходимо установить его на 'F'.

$mpdf->Output('filename.pdf','F');  // only save to File 

Обновлено:
Возможно, вам это тоже:

$mpdf->Output('filename.pdf','D');  // make it to DOWNLOAD 
+7

Вы, мой друг, спасатель жизни, потратили часы, пытаясь найти это. Спасибо! – Paul

+1

Это не сработало для меня, но сменило его на D вместо F! Что они имеют в виду? – Mikeys4u

+2

D - отправить в браузер и принудительно загрузить, F - сохранить в файл. Ссылка Docs, которую я предоставил, объясняет это. –

12

Это работает для меня:

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

но некоторые люди утверждали, вопрос здесь - http://mpdf.bpm1.com/forum/comments.php?DiscussionID=123

+1

Это сработало! спасибо buddy :) –

+0

Спасло меня некоторое время с этим. Благодаря! –

9

Это можно сделать так. Это сработало для меня. А также установите разрешения для каталога на 777 или 775, если они не установлены.

ob_clean(); 
$mpdf->Output('directory_name/pdf_file_name.pdf', 'F'); 
Смежные вопросы