2014-02-05 72 views
1

我已经用MPDF生成了一个漂亮的HTML发票,但是当我将它放在服务器上时,它没有显示任何东西。MPDF不会在外部服务器上生成任何东西

日志显示本地以下(这里的一代作品):

http://pastebin.com/n3xJujBH

该日志显示下列服务器(在这里产生,当它显示了新一代空的HTML网页,而不是PDF ):

http://pastebin.com/HDeSPHse

下面的代码被用于产生在所述笨PDF:

private function _gen_pdf($html,$paper='A4') 
{ 
    $this->load->library('mpdf53/mpdf'); 

    $mpdf=new mPDF('utf-8',$paper); 
    $mpdf->debug = true; 
    $mpdf->WriteHTML($html); 
    $mpdf->Output(); 
} 

创建的HTML是以下几点:http://pastebin.com/b3hFNbT8

一些需要注意的是,如果我把$html只有“测试”,也不会产生任何。

任何想法?

+0

日志中的'未定义的索引:BODY'等使它看起来像它正在寻找一个编码到数组中的HTML文档,而不是找到任何东西检查以确保(我希望的'$ html')不为空,并且是一个有效的文档(通过W3C验证程序在线运行它)。 – halfer

+0

另外,这两种环境之间是否有任何PHP版本/扩展差异? – halfer

+0

@halfer我刚运行了w3c验证程序,删除了13个错误,现在它是一个html保存和正确的文档。可悲的是没有结果,本地仍然正常工作,只有没有发生。在我的本地机器上,这一代工作在php 5.3.20和5.4.10上。 External是php 5.3.15所以我认为这不会是一个问题。 最后我想说明的是,我可以插入writeHTML(“Hello world”),它不会写入任何...有没有任何服务器端的依赖关系? – spons

回答

0

我的答案是切换到DomPDF。我从来没有在外部平行服务器上运行,并可能永远不会知道为什么..

+0

这种情况通常发生在远程/ live php版本未使用mbstring支持进行编译时。除此之外,mPDF的更新版本在其隐藏错误报告的代码中使用@mb_regex_encoding()。我花了一段时间来修复它。希望这能帮助别人! – Rahi