2011-03-03 145 views
11

是否可以转换为直接使用Zend_Pdf将HTML转换为pdf文件?如果是的话,我该怎么做?是否可以使用Zend_Pdf将HTML转换为pdf?

+0

不,我不认为这是它的目的。 http://framework.zend.com/manual/en/zend.pdf.introduction.html – 2011-03-03 16:09:10

+0

虽然这可能是Frankenstein-ish(而不是真的是你的问题的答案),我用PHP来生成内容,发送输出缓冲区到文件,并使用_wkhtmltopdf_生成PDF。 – Guttsy 2011-03-03 16:47:44

回答

11

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'); 
+0

有没有机会进入somecontroller.php的例子的更多细节,以及'在这里设置内容的视图'?谢谢! – joren 2012-10-18 13:26:55

+0

@joren在ZF中创建普通控制器的方式完全相同:'SomeController extends Zend_Controller_Action'。与视图相同:'$ this-> view-> foo ='bar''。整个技巧是将页面呈现为正常的ZF页面,但是将其输出到屏幕中,将其捕获到变量'$ htmlcontent'中并传递给TCPDF'writeHTML()'方法。 – singles 2012-10-18 17:48:21

+0

谢谢!我最终以不同的方式解决了这个问题,请帮忙。 – joren 2012-10-18 21:01:38

2

TCPDF是一点点有限的,当涉及到HTML,wkhtmltopdf使用WebKit的

+0

问题是关于zend_pdf,其中tcppdf,dompdf和mpdf更为sutiable。 – Surinderpal 2017-06-14 01:53:07

1

我用DOMPDF https://github.com/dompdf/dompdf它很容易和简单。它甚至读/格式的CSS。

+0

我试图使用dompdf从html生成pdf,但它有一个非常恼人的(已知的)问题:它在两个表格行之间放置了一些空白页面(至少在0.6.0 beta 3中) – Zsolti 2012-08-06 08:13:15

1

结账MPDF。最终的一个。用inline css创建你的html,将它存储在一个php变量中并回显为pdf文件。你完成了!