2011-03-03 58 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文件。你完成了!