PDF или документы Word создания с Yii? - PullRequest
3 голосов
/ 23 ноября 2011

Здравствуйте, я создаю приложение с Yii, которое теперь будет генерировать отчеты. Мой клиент хочет редактировать отчеты после их создания. Я думаю, что лучшим вариантом является создание документа Word, поэтому мой клиент сможет его редактировать, но я не могу найти информацию или расширения для создания документов Word с Yii Framework.

Я также видел, но еще не тестировал пару расширений PDF, таких как DOMPDF, tcpdf и Zend_PDF. Но если я сгенерирую отчет в формате PDF, как мой клиент будет редактировать этот файл?

Ребята, мне нужны рекомендации, как справиться с этим требованием. Создавать документы Word или PDF? Какое решение будет самым быстрым для разработки?

Ответы [ 3 ]

3 голосов
/ 05 декабря 2011

ОБНОВЛЕНИЕ 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'));

В любом случае, я хочу иметь возможность генерировать текстовый документ, поскольку требование говорит, что отчет будет редактироваться пользователем после генерации.

ОБНОВЛЕНИЕ 2: Для генерации отчетов в документе Word это то, что я делаю .

1 голос
/ 30 мая 2014

Для создания текстового документа вы можете использовать phpword library И чтобы использовать, извлеките библиотеку в папку protected \ extensions \ 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');
1 голос
/ 23 ноября 2011

Расширения доступны в Yii для создания PDF-документов.tcpdf (http://www.yiiframework.com/extension/tcpdf/), например ..

Проверьте эту статью на общий обзор вариантов, доступных для PDF и Excel http://www.yiiframework.com/wiki/74/

Однако, если вам нужно создавать документы Word, затем вы можете попробовать следующее

Написать расширение в Yii для создания текстового документа (см. эту ссылку, которая показывает, как это сделать в PHP / Linux - Создание документа Word с использованием PHP в Linux )

...