再來認識 FPDF
跟 剛認識 Zend_Pdf 要做的事情完全相同,連續放了幾天假之後的愧疚驅動了我搜尋 Zend_Pdf 的問題,大致上就是 include 新的字型之外還有以下一些方法:
但是呢~沒有一個解決問題的,也詢問了單位同仁,回應竟然是【建議放棄 Zend_Pdf】這傢伙,改用【FPDF】。這篇文章原則上也是將 FPDF 那入 Zend Framework 專案之中,過程中也不斷遇到問題,所幸是能夠解決的 case,因此紀錄一下這個過程。
需求
除了 Zend Framework 專案環境之外,請額外準備 fpdf.php, chinese.php, chinese-unicode.php 放在與欲撰寫的檔案相同目錄即可。
利用 PDF 報表工具
資源以及使用 PDF 工具
Zend_View 要關閉,不然 Output 的步驟會出錯。
Reference
[1.] FPDF API http://www.fpdf.org/en/doc/index.php
- drawText 第一個參數先 utf8_decode
- 所用過的字型如下:
fontWithPath('../path/msjh.ttf', Zend_Pdf_Font::EMBED_DONT_EMBED); fontWithPath('c:/windows/fonts/SIMFANG.TTF', Zend_Pdf_Font::EMBED_DONT_EMBED); fontWithPath('c:/windows/fonts/kaiu.ttf', Zend_Pdf_Font::EMBED_DONT_EMBED);
但是呢~沒有一個解決問題的,也詢問了單位同仁,回應竟然是【建議放棄 Zend_Pdf】這傢伙,改用【FPDF】。這篇文章原則上也是將 FPDF 那入 Zend Framework 專案之中,過程中也不斷遇到問題,所幸是能夠解決的 case,因此紀錄一下這個過程。
需求
除了 Zend Framework 專案環境之外,請額外準備 fpdf.php, chinese.php, chinese-unicode.php 放在與欲撰寫的檔案相同目錄即可。
利用 PDF 報表工具
class BillPDF { protected $_pdf; protected $_name; public function init(){ $this->_pdf = new PDF_Unicode(); $this->_pdf->Open(); $this->_name = 'filename'; // 報表資訊 $this->_pdf->SetTitle('your_docs_title'); $this->_pdf->SetSubject('your_docs_subject'); $this->_pdf->SetAuthor('your_big_name'); // 報表配置 $this->_pdf->AddPage(); $this->_pdf->SetFillColor(109, 207, 246); $this->_pdf->SetMargins(19.1, 25.4, 19.1); // MS Word 版面配置為中等 $this->_pdf->AddUniCNShwFont('uni'); // 製作 $this->_pdf->Ln(); $this->_pdf->SetFont('uni', 'B', 16); $this->_pdf->Cell(0, 6, '中文字處理 Hello World!', 0, 1, 'C', 0); $this->_pdf->Output($this->_name.'.pdf', 'F'); }
資源以及使用 PDF 工具
- 參考 剛認識 Zend_Pdf
Zend_View 要關閉,不然 Output 的步驟會出錯。
$this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true);
Reference
[1.] FPDF API http://www.fpdf.org/en/doc/index.php
Comments
Post a Comment