2012-11-29 91 views
1

我在我的應用程序中開發了一個功能,它根據用戶需要一些圖像並呈現爲一個pdf。這個功能在我的舞臺服務器上工作正常,但是這顯示了我在製作時的「服務器錯誤」。使用tcpdf的PDF渲染問題

我驗證Apache的錯誤日誌,我發現下面的錯誤

libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area 

Corrupt JPEG data: 234 extraneous bytes before marker 0xd9 

的應用程序在CakePHP的創建,渲染PDF庫是tcpdg和分期和生產服務器上的Ubuntu。我已經諮詢了一些資深人士,他們都說這是GD問題。

生產服務器上舞臺服務器

PHP 5.3.3-0.dotdeb.1 with Suhosin-Patch (cli) (built: Oct 1 2010 08:49:29) 
Copyright (c) 1997-2009 The PHP Group 

環境對環境

PHP 5.3.2-1ubuntu4.18 with Suhosin-Patch (cli) (built: Sep 12 2012 19:12:47) 
Copyright (c) 1997-2009 The PHP Group 

請推薦我任何無風險的解決方案。

+0

你相比每參與了測試和生產服務器軟件的版本,下面的擴展

extension=imagick.so 

感謝? – Naryl

+0

你的圖像有哪些類型?因爲你有PNG和JPG兩種錯誤.. – Nelson

+0

@Naryl你在談論哪些軟件? –

回答

1

診斷期間此問題。我注意到ImageMagick模塊未加載到我們的登臺服務器上。這就是它在分段服務器上工作的原因。我們禁止它從生產服務器,它的工作。這與GD造成了一些衝突。

我註釋掉反正

1

由於任何原因使圖片停止工作後,圖片尾部會出現一些垃圾字節。

你可以在你的圖像字節中找到代表EOI(圖像的結尾)的「\ xFF \ xD9」,並且在那裏你可以找到它後面的字節。希望這會起作用。

+0

這是工作完美的舞臺服務器。 –

+0

你的機器生成這些垃圾字節可能是內核發送這些字節或其他原因,你可以嘗試現場提到的解決方案。 –

+0

提及「其他一些原因」。我可以在生產服務器上進行這種更改。 –