问题 可以使用Zend_Pdf将HTML转换为pdf吗?


有可能转换  使用Zend_Pdf?将HTML转换为pdf文件,如果是这样,我该怎么做?


11573
2018-03-03 16:02


起源

不,我认为这不是它的基础。 framework.zend.com/manual/en/zend.pdf.introduction.html - Pekka 웃
虽然这可能是Frankenstein-ish(而不是你的问题的答案)我已经使用PHP生成内容,将输出缓冲区发送到文件,然后使用 wkhtmltopdf 生成PDF。 - Guttsy


答案:


Zend_PDF 无法基于HTML生成PDF。但您可以渲染视图并使用其他库将其转换为PDF。我做过这样的事情 TCPDF。下面的小代码片段:

    //SomeController.php
    $this->_helper->layout->disableLayout();

    //set content for view here

    // create new PDF document        
    require_once('tcpdf/tcpdf.php');
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

    //whole TCPDF's settings goes here

    $htmlcontent = $this->view->render('recipe/topdf.phtml');
    // output the HTML content
    $pdf->writeHTML($htmlcontent, true, 0, true, 0);
    $pdf->lastPage();
    $pdf->Output("pdf-name.pdf", 'D');

11
2018-03-03 18:30



您是否有机会详细了解somecontroller.php的示例,以及“为此处设置内容”的内容?谢谢! - joren
@joren这与在ZF中创建普通控制器的方式完全相同: SomeController extends Zend_Controller_Action。与观点相同: $this->view->foo = 'bar'。整个技巧是将页面呈现为普通的ZF页面,而是将其输出到屏幕中,将其捕获到变量中 $htmlcontent 并传递给TCPDF writeHTML() 方法。 - singles
谢谢!我最后以不同的方式解决了这个问题。 - joren
喜欢这个方法,但对我来说不起作用,因为我需要通过<code> $ this-> view-> entities = $ entities </ code>在视图中传递变量所有我得到它的第一列...任何暗示? - Marcel Djaman
抱歉,这是关于未封闭的标签 - Marcel Djaman


tcpdf在html方面有点受限, wkhtmltopdf 使用webkit


2
2018-03-03 18:54



问题是关于zend_pdf,其中tcppdf,dompdf和mpdf更适合。 - SP Singh


我用过dompdf https://github.com/dompdf/dompdf 它非常简单直接。它甚至可以读/格式化CSS。


1
2018-03-05 09:07



我尝试使用dompdf从html生成pdf,但它有一个非常烦人的(已知)问题:它在两个表行之间放置一些空页(至少在0.6.0 beta 3中) - Zsolti


查看 MPDF 。最终的一个。使用内联css创建html,将其存储在一个php变量中并回显到pdf文件。你完成了!!!


1
2018-05-15 07:17