你好,我正在用Yii构建一个应用程序,现在将生成报告。我的客户希望在生成报告后对其进行编辑。我认为最好的选择是创建一个Word文档,这样我的客户端就可以编辑它,但是我找不到用Yii框架创建Word文档的信息或扩展。
我也见过,但还没有测试几个PDF扩展,如DOMPDF, tcpdf和Zend_PDF。但是如果我生成一个PDF报告,那么我的客户端将如何编辑这个文件呢?
伙计们,我需要关于如何解决这个要求的建议。生成Word或PDF文档?哪个是最快开发的解决方案?
UPDATE 1:现在我的pdf文件可以用了。我是这样做的:首先,我从其站点下载TCPdf,并将其作为第三方库在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文档,因为需求说报告将在生成后由用户编辑。
更新2:对于Word文档的报表生成,我就是这样做的。
在Yii中可以使用扩展来生成PDF文档。例如TCPDF (http://www.yiiframework.com/extension/tcpdf/) ..
查看这篇文章中PDF和Excel可用选项的综合综述http://www.yiiframework.com/wiki/74/
但是,如果您需要创建word文档,那么您可以尝试下面的
在Yii中编写扩展以生成word文档(请参阅此链接,该链接显示如何在PHP/Linux中使用PHP创建word文档)
创建word文档可以使用phpword库要使用,将库解压到文件夹protected'extensions'PHPWord在解压后的文件夹中,您将有以下文件夹:Examples, 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');