2012-01-27 66 views
0

我使用FPDF從PHP生成一些PDF。它適用於小例子,但現在我遇到了一個問題:它返回一些我在控制檯中看到的數據,但沒有文件!FPDF返回我文本而不是PDF文件

輸出外觀喜歡 - 這是PDF否?

%PDF-1.4 
0 obj 
<</Type /Page 
/Parent 1 0 R 
/Resources 2 0 R 
/Group <</Type /Group /S /Transparency /CS /DeviceRGB>> 
...... 
<< 
/Size 15 
/Root 14 0 R 
/Info 13 0 R 
>> 
startxref 
22291 
%%EOF 

我的PHP是相當長的,這裏是它的一個引擎收錄http://pastebin.com/ri5uAeie

我的PHP看起來是正確的,很奇怪不是嗎?

UPDATE

我通過我的PARAM扔URL,並用$ _GET和它運作良好:)感謝您的幫助傢伙!

回答

3

您可能在某處添加了空行,可能位於inc/DataLib.php

更新#1:

根據您的回答,有兩個可疑點:

  1. Content-Type應該是application/pdf。理論上,PDF::Output()方法爲您添加它(除非php_sapi_name()返回cli,這在Web環境中應該是不可能的)。

  2. 在桌面PDF閱讀器(而不是錯誤)中獲取空白頁面表明文檔已損壞,讀者甚至無法檢測到它或文檔實際上是空白的。

不知道關於#1(防火牆?代理?殺毒?),但你至少可以檢查在搜索PHP錯誤信息或不屬於那裏的東西的PDF源。

更新#2:

我想,我終於明白你的問題是什麼。您不能使用JavaScript通過AJAX檢索PDF文件。所有JavaScript可以做的是:

  1. 操縱頁面的DOM(而PDF不是HTML)。
  2. 用其他東西替換完整的DOM頁面(並且無法告訴瀏覽器它是什麼內容類型)。

我懷疑你的PDF生成器就好,如果你直接從地址欄中調用它。

+0

nah,空白行返回錯誤。我在這裏沒有錯誤:) THx幫助btw! – Xavier 2012-01-27 10:46:47

+0

好吧....基本問題是:1)什麼是生成的「Content-Type」頭()? 2)你的瀏覽器中是否有一個可用的PDF插件?3)如果將文件保存到磁盤並使用PDF閱讀器手動打開文件,該文件是否呈現? – 2012-01-27 11:12:04

+0

1)contentType:'application/x-www-form-urlencoded' - 在jquery POST 2)是的,我使用Chromium。我做了FPDF工作日前... 3)我可以打開它,但它是空白 我也嘗試打開我的PHP在另一個選項卡,但那是沒有更好.. – Xavier 2012-01-27 11:33:23

0

這就是如何調用FPDF::Output()沒有參數的工作。它只是設置適當的標題並將PDF作爲文本發送給瀏覽器。如果你想要下載文件,你需要提供文件名爲Output(),並設置第二個參數爲'D'

+0

以及我已經嘗試與 $ pdf->輸出('test.pdf','D'); 但它是相同的輸出... – Xavier 2012-01-27 10:45:38

相關問題