使用dompdf在pdf图像中出错

时间:2011-02-07 14:08:22

标签: image pdf dompdf

我必须在生成的PDF的每个页面中显示徽标。虽然它在本地系统中运行良好,但它会在服务器中引发异常:

Fatal error: Uncaught exception 'PDFlibException' with message 'Handle parameter or option of type 'image' has bad value 0' in /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/pdflib_adapter.cls.php:664 Stack trace: #0 /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/pdflib_adapter.cls.php(664): PDFlib->fit_image(0, 30, 746, 'boxsize={86 43}...') #1 /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/php_evaluator.cls.php(66) : eval()'d code(16): PDFLib_Adapter->image('http://rfqms.de...', 'jpg', 30, 3, 86.4, 43.2) #2 /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/php_evaluator.cls.php(66): eval() #3 /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/php_evaluator.cls.php(70): PHP_Evaluator->evaluate('??//$base_img_u...') #4 /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/renderer.cls.php(180): PHP_Evaluator->render(O in /var/www/dev/subdomains/rfqms/httpdocs/sprintnineteen/system/plugins/dompdf/include/pdflib_adapter.cls.php on line 664

经过一些分析后,我发现在本地它使用cpdf_adapter.cls.php作为图像,而在服务器中它使用pdflib_adapter.cls.php作为图像。

我甚至根据以下方式尝试了所有类型的图像:

pdfLib tutorial Version 8.0.2 ---page # 166--- Inline images are only supported for imagetype=ccitt, jpeg, and raw. For other image types the inline option will silently be ignored.

那么,导致此异常的问题是什么?

其他一些信息:

  • 本地PHP版本5.3.0
  • 服务器PHP版本5.2.16
  • dompdf版本0.5.2
  • DOMPDF_TEMP_DIR具有r / w / e权限
  • 本地机器是windows vista
  • 服务器机器是linux

1 个答案:

答案 0 :(得分:4)

dompdf中存在一个与通过PDFLib添加图像相关的错误。我不确定即将发布的0.6.0版本是否已解决该问题。支持小组There is a relevant thread。如果您想继续使用PDFLib,请查看我上一篇文章,了解有关解决方法的信息。

另一种选择是告诉dompdf使用CPDF。在dompdf_config.inc.php中将DOMPDF_PDF_BACKEND设置为“CPDF”而不是“auto”或“PDFLib”。