PDF or Word creation documents with Yii?

ivantxo picture ivantxo · Nov 23, 2011 · Viewed 9.6k times · Source

Hello I'm building an application with Yii that will now generate reports. My client wants to edit the reports after these are generated. I think the best option is creating a Word document so my client will be able to edit it, but I can't find information or extensions to create Word documents with Yii Framework.

I've also seen but not test yet a couple of PDF extensions such as DOMPDF, tcpdf and Zend_PDF. But if I generate a PDF report, then, how is my client going to edit this file?

Guys I need recommendations on how to tackle this requirement. Generate Word or PDF documents? Which will be the fastest to develop solution?

Answer

ivantxo picture ivantxo · Dec 5, 2011

UPDATE 1: At the moment I got PDFs working. This is how I did it: First I downloaded TCPdf from its site and open it in Yii as a 3rd-party library. Then:

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'));

Anyway I want to be able to generate a word document as the requirement says the report is going to be edited by the user after generation.

UPDATE 2: For the Word document's report generation this is what I am doing.