【问题标题】:DOM PDF is not working when loading Codeigniter's view file加载 Codeigniter 视图文件时 DOMPDF 不起作用
【发布时间】:2012-01-31 01:20:51
【问题描述】:

我正在尝试使用 DOM pdf 和 Codeigniter 创建 PDF 文件。我的 Controller 中有以下脚本,并且我将 DOM 文件夹保存在我的控制器中。但是当我运行脚本时,我收到了致命的错误消息。

但是,当我将模型中的值发送到控制器中的 DOMPDF 的 $html 时,我可以生成 pdf。

您能帮我解决这个错误吗?

    include_once('dompdf/dompdf_config.inc.php'); 
    $html= $this->load->view('view_pdf');
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->set_paper("a4", "landscape" ); 

    $dompdf->render();
    $dompdf->stream("my_pdf.pdf", array("Attachment" => 0));   

这是我的查看文件;

<html>
 <head>
<style>
    #header { position: absolute; left: 0; top: -50px; right: 0; height: 140px; text-align:  center;  }
    #footer {position: fixed ; left: 0px; bottom: -20px; right: 0px; height: 30px; font-size:10; }
    #footer .page:after { content: counter(page, upper-roman); }


        #table-6 {
        width: 100%
        border: 1px solid #B0B0B0;
        }
        #table-6 tbody {
        /* Kind of irrelevant unless your .css is alreadt doing something else */
        margin: 0;
        padding: 0;
        border: 0;
        outline: 0;
        font-size: 100%;
        vertical-align: baseline;
        background: transparent;
        }


        #table-6 td {
        padding: 3px 10px;
        font-size: 12px;
        font-weight: normal;
        text-align:center;
        }
        #table-6 tr:nth-child(even) {
        background: #F2F2F2;
        font-size: 12px;
        font-weight: normal;
        }




 </style>

  </head>

    <body>


     This is a test 
    </body>

    </html>

【问题讨论】:

    标签: pdf-generation codeigniter-2 dompdf


    【解决方案1】:

    根据CodeIgniter documentation on views,您必须修改对 load->view() 的调用,以便将数据作为字符串返回给控制器,而不是推送到 Web 浏览器。尝试如下修改控制器代码:

    include_once('dompdf/dompdf_config.inc.php');
    $html= $this->load->view('view_pdf','',true);
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->set_paper("a4", "landscape" );
    
    $dompdf->render();
    $dompdf->stream("my_pdf.pdf", array("Attachment" => 0));
    

    我所做的唯一更改是将必要的参数添加到$this-&gt;load-&gt;view()

    (我不使用 CodeIgniter。有 CI 用户有什么要补充的吗?)

    【讨论】:

    • 感谢 BrianS 的回复。我试过你的代码,但结果是一样的。我得到了同样的错误信息。但是我找到了解决问题的方法,那就是......而不是使用“视图”,我使用模型来生成我的 pdf。我将整个脚本保存在一个变量中,然后将该变量返回给我的控制器。然后它会生成 PDF... :) 谢谢.. 只是为了回答您的问题.. CI 用户没有其他要添加的内容... 除非他们在视图中创建了另一个文件夹.. :) 再次感谢。布赖恩S
    • @Srijon 再次尝试代码。我不得不修改我的答案,因为$this-&gt;load-&gt;view() 的最后一个参数不正确,它应该是 true 而不是 false。
    【解决方案2】:
    include_once('dompdf/dompdf_config.inc.php'); 
    $this->load->view('view_pdf');
    $html = $this->output->get_output();
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->set_paper("a4", "landscape" ); 
    $dompdf->render();
    $dompdf->stream("my_pdf.pdf", array("Attachment" => 0));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-15
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多