2013-04-03 70 views
1

控制器:TCPDF - 笨 - 無法加載PDF文檔

public function test(){ 
    $data = array(); 
    $this->load->library('tcpdf'); 
    $this->display_page($data); 
} 

test.php的:(不張貼這一切,因爲它有點長)

global $l; 
$l = Array(); 
$l['a_meta_charset'] = 'UTF-8'; 
$l['a_meta_dir'] = 'ltr'; 
$l['a_meta_language'] = 'en'; 
$l['w_page'] = 'page'; 

// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8',    false); 


-- pdf stuff -- 

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

在Chrome中,它只是說「無法加載PDF文檔」。沒有錯誤,沒有任何控制檯。 在firefox中,它說:「文件不以'%PDF-'開頭。Local \ EWH`_'s3-0y」。

Local \末尾的字符串對每個負載都是隨機的。

我已經嘗試使用輸出緩衝和刷新,無濟於事。我很茫然。

回答

0

在生成發票之前,您可能正在向瀏覽器輸出某些內容。轉到頁面的源代碼,看看是否有任何東西,包括空格(新行或空格)並將其刪除。

+0

是的,我已經看到了這個建議很多,它似乎並沒有被這個問題在這裏,感謝您的幫助。 – 2013-04-03 19:56:44

+0

您是否嘗試過只包含tcpdf文件?這不應該是問題,但你永遠不知道。 – Duniyadnd 2013-04-03 20:43:39

+0

我有:(這是如此討厭,我不知道爲什麼我是唯一的人在這個問題的interwebs ... – 2013-04-04 00:01:21

0

Duniyadnd是正確的。當我查看Chrome中的調試工具中的網絡響應時,我發現'%PDF-'魔法在第二行,而不是第一行。我在pdf文件之前輸出到瀏覽器的分隔符之前和之後在我的必需包含文件中發現了一些空格。在php分隔符解決問題之前和之後消除這個空白。

0

如果您正在使用Yii框架,確保您的RenderPartial而不是渲染視圖控制器

+1

這個答案不回答OP的問題,因爲沒有關於YII的信息在OP問題。要求澄清或更多信息,請使用評論。 – 2015-03-20 11:57:13

3

儘量把exit;輸出PDF格式後。我希望它能解決它,就像它爲我做的那樣。

- PDF的東西 -

$pdf->Output('example_007.pdf', 'I'); 
exit; 
+0

對我很好 – anhnt 2017-07-25 15:08:44

1

試試這個

ob_clean(); 
ob_flush(); 
$pdf->Output('example_007.pdf', 'I'); 
ob_end_flush(); 
ob_end_clean();