使用tcpdf进行PDF渲染问题

时间:2012-11-29 10:07:35

标签: php cakephp pdf gd 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

请推荐我任何无风险的解决方案。

2 个答案:

答案 0 :(得分:1)

在图像结束后有一些垃圾字节因任何原因而停止工作。

你可以在你的图像字节中找到“\ xFF \ xD9”来表示EOI(图像结束)以及你发现它在哪里切掉它之后的字节。希望这会奏效。

答案 1 :(得分:1)

在诊断期间出现此问题。我注意到我们的登台服务器上没有加载 ImageMagick 模块。这就是它在登台服务器上工作的原因。我们从生产服务器禁用它,它的工作原理。这引起了与GD的一些冲突。

我注释了以下扩展

extension=imagick.so

非常感谢