2011-11-23 129 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');