使用Zend中的DOMPDF,渲染表不适合pdf内部?

时间:2011-10-22 18:54:23

标签: php zend-framework dompdf

我从控制器中获取了以下代码,

        ...
        $this->view->vCount = count($result);
        $this->view->Reportlist = $result;
          // create view object
        $html = new Zend_View();
        $html->setScriptPath(APPLICATION_PATH . '/layouts/scripts/');
        $html->assign('Reportlist', $this->view->Reportlist);
        $html->assign('vCount', $this->view->vCount);

        // render view
        $bodyText = $html->render('getreport.phtml');     
        //echo $bodyText; exit;
        //error_reporting(E_ALL);

        $dompdf = new DOMPDF();
        $dompdf->set_paper("a4","portrait");
        $dompdf->load_html($bodyText);

        $dompdf->set_base_path($_SERVER['DOCUMENT_ROOT']);
        $dompdf->render();
        $dompdf->stream($report_date.".pdf");
        .....

以上代码使用我的html内容生成pdf。但表格不在pdf内。 HTML内容只呈现pdf的一半。我们如何使用DOMPDF来适应PDF?

4 个答案:

答案 0 :(得分:3)

DOMPDF在css和表方面存在一些问题。最佳做法是避免使用单元格或rowpans而不使用外部css文件。此外,仅支持一组有限的CSS规则。查看完整的兼容性列表: http://code.google.com/p/dompdf/wiki/CSSCompatibility

为了解决您的问题,您尝试设置表的宽度:

<table width="90%">.. Your data here </table>

修改:尝试将表格放入<div></div>。这解决了一些慷慨的错误

答案 1 :(得分:1)

不幸的是,使用DOMPDF将表格放入PDF中是不可能的。 DOMPDF团队仍在努力,我可以说它是问题之间的最佳列表。您可以点击此链接了解有关此错误的更多信息......

DOMPDF issue

我建议您使用MPDF来解决您的问题。我刚刚检查了MPDF,它工作得很好。

答案 2 :(得分:0)

td元素中的所有内容都应与td元素的开始和结束标记在一行中,添加新行会破坏表格的呈现。

更改自:

"python abc.c --argumenthere" or "python avc.pyd --argumenthere"

要:

<tr>
<td>
    Some of your content<br/>
    some other content
</td>

这应该可以解决问题。

答案 3 :(得分:0)

可以在页面中放入表格,您可以为此使用 CSS(内联或在 head 标签中)。

确保您没有定义像 width="78" 之类的参数的样式表。