2011-11-23 126 views
3

你好,我正在與Yii構建一個應用程序,現在將生成報告。我的客戶希望在生成這些報告後編輯這些報告。我認爲最好的選擇是創建一個Word文檔,這樣我的客戶端就可以對其進行編輯,但是我找不到使用Yii Framework創建Word文檔的信息或擴展。帶Yii的PDF或Word創建文檔?

我也看到過,但還沒有測試一些PDF擴展,如DOMPDF,tcpdf和Zend_PDF。但是,如果我生成PDF報告,那麼我的客戶端將如何編輯此文件?

傢伙,我需要就如何解決這一要求的建議。生成Word或PDF文檔?哪種解決方案最快?

回答

3

更新1: 目前我得到了PDFs的工作。這就是我的做法:首先,我從site下載TCPdf,並將其作爲3rd-party library在Yii中打開。然後:

Controller: protected/controllers/mycontroller.php 
public function actionGeneratePdf() { 
    Yii::import('application.vendors.*'); 
    require_once('tcpdf/tcpdf.php'); 
    require_once('tcpdf/config/lang/eng.php'); 
    $pdf = new TCPDF(); 
    $pdf->SetCreator(PDF_CREATOR); 
    $pdf->SetAuthor('Nicola Asuni'); 
    $pdf->SetTitle('TCPDF Example 001'); 
    $pdf->SetSubject('TCPDF Tutorial'); 
    $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 
    $pdf->SetHeaderData('', 0, PDF_HEADER_TITLE, ''); 
    $pdf->setHeaderFont(Array('helvetica', '', 8)); 
    $pdf->setFooterFont(Array('helvetica', '', 6)); 
    $pdf->SetMargins(15, 18, 15); 
    $pdf->SetHeaderMargin(5); 
    $pdf->SetFooterMargin(10); 
    $pdf->SetAutoPageBreak(TRUE, 0); 
    $pdf->SetFont('dejavusans', '', 7); 
    $pdf->AddPage(); 
    $pdf->writeHTML("<span>Hello World!</span>", true, false, true, false, ''); 
    $pdf->LastPage(); 
    $pdf->Output("example_002.pdf", "I"); 
} 

View: Wherever you want to place a trigger to your controller: 
echo CHtml::link('Generate PDF', array('mycontroller/generatePdf')); 

無論如何,我希望能夠生成Word文檔的要求說,這份報告將是由後一代用戶編輯。

UPDATE 2: 對於Word文檔的報告生成this is what I am doing

1

擴展是Yii中可生成PDF文檔。 TCPDF(http://www.yiiframework.com/extension/tcpdf/)例如..

檢查本文就爲PDF和Excel可用選項的一般綜述 http://www.yiiframework.com/wiki/74/

但是,如果你需要創建Word文檔,那麼你可以嘗試以下

寫Yii的一個擴展生成word文檔(請參閱此鏈接,顯示如何做到這一點在PHP/Linux的 - Create Word Document using PHP in Linux

+0

很抱歉這麼晚纔回復。我正在嘗試與TCPDF,但我無法得到它的工作。我將PDF的代碼放在控制器函數中。它到達它但它什麼都不做。我得到這個錯誤:常量K_PATH_CACHE已經定義(/var/www/wattquotes/protected/extensions/tcpdf/ETcPdf.php:85)。我認爲沒有正確設置,我沒有找到足夠的信息在這個圖書館。 – ivantxo

+0

如何設置此擴展?文檔是錯誤的。這很混亂! – ivantxo

+0

您提到的文章[鏈接](http://www.yiiframework.com/wiki/74/)表示tcpdf無法正常工作。然後,用Yii生成pdf的最佳選擇是什麼?你做完了嗎?請給我一個樣品! – ivantxo

1

要創建Word文檔,你可以使用phpword library 並使用,提取庫文件夾保護\分機\ PHPWord 在此文件夾中提取後,你將有文件夾:例子,PHPWord和一個文件:PHPWord.php。 在控制器/代碼,你需要在這個例子中喜歡稱:

spl_autoload_unregister(array('YiiBase','autoload')); 
    Yii::import('ext.phpword.phpword', true); 
    $PHPWord = new PHPWord(); 
    spl_autoload_register(array('YiiBase','autoload')); 
    $document = $PHPWord->loadTemplate($path); 
    $document->setValue('Value1', 'Sun'); 
    .... 
    $document->save('path\file.docx');