2012-09-24 27 views
24

Tôi có một trang sử dụng mPDF khi bạn chạy hiển thị PDF trong trình duyệt, nó cũng có thể được lưu từ đây dưới dạng PDF không thành vấn đề. Những gì tôi muốn xảy ra là khi trang được chạy và tạo ra một PDF mà trang được lưu dưới dạng PDF trên máy chủ.PHP mPDF lưu tệp dưới dạng PDF

Đây là mã hiện tại:

<?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(); 
?> 

Giống như tôi đã nói điều này kết quả đầu ra mức phạt PDF nhưng ai đó có thể cho tôi biết làm thế nào để tiết kiệm như một PDF?

Trả lời

64

Trạng thái mPDF docs là đối số đầu tiên của Output() là đường dẫn tệp, thứ hai là chế độ lưu - bạn cần đặt thành 'F'.

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

Cập nhật:
Bạn có thể cần này quá:

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

Bạn của tôi là người tiết kiệm cuộc sống, đã bỏ ra hàng giờ để tìm ra điều đó. Cảm ơn bạn! – Paul

+1

Điều này không hiệu quả đối với tôi, nhưng thay đổi nó thành D thay vì F! Có ý nghĩa gì? – Mikeys4u

+2

D - gửi đến trình duyệt và tải xuống, F - lưu vào tập tin. Liên kết tài liệu tôi đã cung cấp giải thích nó. –

12

này đã làm việc cho tôi:

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

nhưng một số người khẳng định một vấn đề ở đây - http://mpdf.bpm1.com/forum/comments.php?DiscussionID=123

+1

Điều này đã hiệu quả! thanks buddy :) –

+0

Đã dành cho tôi một chút thời gian với cái này. Cảm ơn! –

9

Điều này có thể được thực hiện như thế này. Nó làm việc tốt cho tôi. Và cũng có thể đặt quyền truy cập thư mục thành 777 hoặc 775 nếu không được đặt.

ob_clean(); 
$mpdf->Output('directory_name/pdf_file_name.pdf', 'F');