剛認識 Zend_Pdf
跟大多數的人需求一樣,就是輸出一個簡單的報表資訊。但是亂抓亂玩其實都是可以 WORK 的,唯獨一些中文問題會讓人比較頭大。以下是採用 Zend Framework 所提供的 Zend_Pdf 物件做處理。
目的
使用者點選某個特定按鈕之後,觸發 JavaScript 並且替使用者發出 AJAX 請求,這部分可能就是 Select 一些 Table 或是 Trigger 一些 SQL 等資訊整併回傳,但是都藉由某個 Action 來做回傳處理,最終是希望輸出一份特定報表。
資源
Bootstrap.php 很簡單的就打入以下初始化設定
利用 PDF 報表工具
簡易說明利用那些 Zend 內建的物件
使用 PDF 工具
目前遭遇問題
1. 檔案不是每個 PDF 閱讀器都可以正確看到中文字,有的呈現空白有的是O符號。
2. 字型的部分想採用新細明體,但是會找不到系統字型
3. 之後程式要丟到單位的 Linux 伺服器,感覺中文字似乎會是個 Bug。
目的
使用者點選某個特定按鈕之後,觸發 JavaScript 並且替使用者發出 AJAX 請求,這部分可能就是 Select 一些 Table 或是 Trigger 一些 SQL 等資訊整併回傳,但是都藉由某個 Action 來做回傳處理,最終是希望輸出一份特定報表。
資源
Bootstrap.php 很簡單的就打入以下初始化設定
/** * 報表工具 */ protected function _initPDF(){ $pdf = new Bill_PDF(); return $pdf; }
利用 PDF 報表工具
簡易說明利用那些 Zend 內建的物件
class Bill_PDF { protected $_pdf; public function init(){ // 路徑會以 Public 為頭 $this->_pdf = Zend_Pdf::load('Template.pdf'); // PDF 文件屬性 $this->_pdf->properties['Title'] = '你可以輸入任何資訊'; // 載入中文字型(仿宋或是標楷體皆可) $font = Zend_Pdf_Font::fontWithPath('c:/windows/fonts/SIMFANG.TTF', Zend_Pdf_Font::EMBED_DONT_EMBED); $this->_pdf->pages[0]->setFont($font, 12); $this->_pdf->pages[0]->drawText('內容擺設', 170, 750, 'UTF-8'); // 存成新的 PDF 檔案 $this->_pdf->save($this->_output.'.pdf'); } }
使用 PDF 工具
$pdf = $this->getInvokeArg('bootstrap')->getResource('PDF')->init();
目前遭遇問題
1. 檔案不是每個 PDF 閱讀器都可以正確看到中文字,有的呈現空白有的是O符號。
2. 字型的部分想採用新細明體,但是會找不到系統字型
3. 之後程式要丟到單位的 Linux 伺服器,感覺中文字似乎會是個 Bug。
Comments
Post a Comment