2010-07-17 29 views
1

我在解释here时生成带有图像的PDF文件时遇到了FPDF问题。最后我找到了这个问题的原因,但我不知道如何解决这个问题,任何人都可以提出一些很好的解决方案来处理这个问题。由于PHP'allow_url_fopen'设置而生成带有图像的pdf的FPDF问题

此问题是由于我的服务器设置为allow_url_fopen,如果启用该设置,则FPDF库将生成带有图像的PDF文件,且没有任何错误。

我为我的一个客户端网站使用这个FPDF库,他(客户端)出于安全原因禁用了'allow_url_fopen'设置,并且他没有为了启用该设置而被干扰。我怎样才能解决这个问题,无法启用我的服务器的设置。

回答

1

您可以使用CURL打开远程资源。

$curlHandler=curl_init(); 

curl_setopt($curlHandler, CURLOPT_URL, "http://youurl.com"); 

curl_setopt($curlHandler, CURLOPT_HEADER,0); 

curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, 1); 

$output =curl_exec($curlHandler); 

.... 

curl_close($curlHandler); 
+0

是的,感谢路易斯梅尔格拉蒂,CURL可能会诀窍来处理这个问题。我打算使用CURL获取图像并将其存储在临时文件中,然后使用FPDF将该图像添加到PDF文件中。 – Siva 2010-07-17 16:29:28

+0

是Luis Melgratti,我用CURL来解决这个问题。为了解决我的问题,我使用CURL在本地系统中创建了一个临时文件,并将该文件路径发送给FPDF函数。即使你的代码片段对于解决这个问题没有什么用处,我有一个想法在看到你的答案后解决我的问题。再次感谢您的回复...... – Siva 2010-08-26 18:12:31

0

老实说,最好的办法是要找到另一种方式来生成PDF文件。 FPDF已有only one update since 2004,似乎不再积极维护。

其他一些纯PHP选项包括TCPDFZend_PDF,这两个选项似乎都被主动维护和支持。

您还应该考虑其他PDF生成技术。例如,有不少HTML-to-PDF转换器,一些商业,一些开源。例如,wkhtmltopdf使用WebKit渲染引擎(Safari和Chrome使用的引擎)来创建PDF。

+0

感谢Charles,我也想用其他PDF生成器代替FPDF库,但我的客户更喜欢使用FPDF。无论如何,我会尽力召集他(客户)去寻找其他的库房,你能否给我建议一个好的PDF生成器,以便我可以替换FPDF。 – Siva 2010-07-17 16:45:55

+0

我建议不要少于三个以上。 :) – Charles 2010-07-17 16:51:13

+0

此外,如果你的客户既告诉你要使用什么库,也告诉你服务器必须具有什么样的配置,尽管他告诉你使用*库需要*不同的配置,我希望你可能希望教育或停止与客户合作。他或她可能比他或她的价值更麻烦。 – Charles 2010-07-17 17:11:10