2011-11-23 1 views
3

Bonjour, Je construis une application avec Yii qui va maintenant générer des rapports. Mon client souhaite modifier les rapports une fois ceux-ci générés. Je pense que la meilleure option consiste à créer un document Word pour que mon client puisse le modifier, mais je ne trouve pas d'informations ou d'extensions pour créer des documents Word avec Yii Framework.Documents de création PDF ou Word avec Yii?

J'ai également vu mais pas encore testé quelques extensions PDF telles que DOMPDF, tcpdf et Zend_PDF. Mais si je génère un rapport PDF, alors, comment mon client va-t-il éditer ce fichier?

Guys J'ai besoin de recommandations sur la façon de répondre à cette exigence. Générer des documents Word ou PDF? Quelle sera la solution la plus rapide à développer?

Répondre

3

MISE à JOUR 1: En ce moment j'ai fait fonctionner les PDF. Voici comment je l'ai fait: D'abord j'ai téléchargé TCPdf à partir de son site et l'ouvrir dans Yii comme 3rd-party library. Puis:

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

Quoi qu'il en soit, je veux être en mesure de générer un document Word que l'exigence indique le rapport va être modifié par l'utilisateur après génération.

MISE À JOUR 2: Pour la génération de rapports du document Word this is what I am doing.

1

Des extensions sont disponibles dans Yii pour générer des documents PDF. tcpdf (http://www.yiiframework.com/extension/tcpdf/) par exemple ..

Vérifiez cet article sur un tour d'horizon général des options disponibles pour PDF et Excel http://www.yiiframework.com/wiki/74/

Cependant, si vous avez besoin pour créer des documents Word, vous pouvez essayer le

suivant

Ecrire une extension à Yû pour générer document word (voir ce lien s'il vous plaît, qui montre comment le faire en PHP/Linux - Create Word Document using PHP in Linux)

+0

Désolé pour la réponse tardive. J'essaye avec TCPDF mais je n'arrive pas à le faire fonctionner. J'ai mis le code pour le PDF dans une fonction de contrôleur. Il l'atteint mais il ne fait rien. J'ai cette erreur: Constante K_PATH_CACHE déjà définie (/var/www/wattquotes/protected/extensions/tcpdf/ETcPdf.php:85). Je pense que n'est pas correctement mis en place et je ne trouve pas assez d'informations sur cette bibliothèque. – ivantxo

+0

Comment configurer cette extension? La documentation est erronée. C'est confus! – ivantxo

+0

L'article que vous avez mentionné [link] (http://www.yiiframework.com/wiki/74/) indique que tcpdf ne fonctionne pas correctement. Quelle est la meilleure option pour générer des fichiers PDF avec Yii, alors. L'avez-vous fait? S'il vous plaît envoyez-moi un échantillon! – ivantxo

1

Pour créer un document de texte que vous pouvez utiliser phpword library et à utiliser, extraire la bibliothèque dans le dossier protégé \ extensions \ PHPWord Dans ce dossier après l'extrait, vous aurez des dossiers: Exemples, PHPWord et un fichier: PHPWord.php. Dans votre contrôleur/code, vous devez appeler comme dans cet exemple:

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