2014-10-19 62 views
1

我剛開始使用mPDF。我一開始就陷入困境。我試圖包含我的動態php文件,並使用mPDF將其轉換爲pdf文件。下面是我的做法:這是我的函數將文件轉換爲PDF使用mPDF將php文件轉換爲pdf文件

<?php 

include('MPDF57/mpdf.php'); 
include('template1.php'); 
$html= "template1.php"; 
$mpdf=new mPDF(); 
$mpdf->SetDisplayMode('fullpage'); 
$mpdf->WriteHTML(file_get_contents($html)); 
$mpdf->Output('result.pdf','F'); 
exit; 

?> 

我的template.php文件只在幾個內容來自數據庫中的HTML發票表格佈局爲:用戶地址,發票表等...我希望將html佈局和內容從template.php文件轉換爲pdf

但它不會將該文件作爲pdf文件輸出。我在這裏錯過了什麼?

+0

是否要轉換.php文件的源代碼或由.php文件生成的內容? – Cheery 2014-10-19 03:29:43

+0

我的template.php文件只是一個html發票表格佈局,其中幾個內容來自數據庫,如:用戶地址,發票tble等...我想將html佈局和內容從template.php文件轉換爲pdf – oxvoxic 2014-10-19 03:33:30

+0

'這裏有幾個內容來自數據庫,所以它有一個應該執行的PHP代碼? 'file_get_contents($ html)''按原樣'讀取文件,不需要運行.php代碼。在include('template1.php');'之前使用''ob_start()',獲取緩衝區的內容後輸出,如果需要的話,並將其轉換爲pdf。 – Cheery 2014-10-19 03:36:51

回答

2

如果你的template1.php有php代碼,它將不會被file_get_contents函數執行,因爲它會以普通文本的形式讀取文件的內容。您需要在include之前打開輸出緩衝區,獲取緩衝區的內容並將其用於生成pdf。如下所示:

<?php 

include 'MPDF57/mpdf.php'; 
ob_start(); // start output buffering 
include 'template1.php'; 
$content = ob_get_clean(); // get content of the buffer and clean the buffer 
$mpdf = new mPDF(); 
$mpdf->SetDisplayMode('fullpage'); 
$mpdf->WriteHTML($content); 
$mpdf->Output('result.pdf'); // output as inline content 
+0

'ob_get_clean()似乎失敗了,但'ob_getContents()'可以工作,失敗? – BarclayVision 2015-10-22 19:47:00

+0

@BarclayVision在'ob_get_contents()'後嘗試'ob_end_clean()' – Cheery 2015-10-23 00:59:22

+0

這就是我在新問題中試過的問題 - 類似的代碼但未能返回PDF。 http://stackoverflow.com/questions/33292242/mpdf-not-generating-pdf-from-example – BarclayVision 2015-10-23 09:32:57