【问题标题】:PDF or Word creation documents with Yii?使用 Yii 创建 PDF 或 Word 文档?
【发布时间】:2012-01-04 09:26:00
【问题描述】:

您好,我正在使用 Yii 构建一个应用程序,该应用程序现在将生成报告。我的客户想要在生成报告后编辑这些报告。我认为最好的选择是创建一个 Word 文档,这样我的客户就可以编辑它,但是我找不到使用 Yii 框架创建 Word 文档的信息或扩展。

我还看到了一些 PDF 扩展,但还没有测试过,例如 DOMPDF、tcpdf 和 Zend_PDF。但是如果我生成一个 PDF 报告,那么我的客户将如何编辑这个文件呢?

伙计们,我需要有关如何解决此要求的建议。生成 Word 或 PDF 文档?哪个将是最快的开发解决方案?

【问题讨论】:

    标签: php yii ms-word pdf-generation doc


    【解决方案1】:

    更新 1: 目前,我的 PDF 正在工作。我是这样做的:首先我从它的site 下载了 TCPdf,然后在 Yii 中以3rd-party library 的形式打开它。那么:

    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 文档的报告生成this is what I am doing

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

      • 抱歉回复晚了。我正在尝试使用 TCPDF,但我无法让它工作。我将 PDF 的代码放在控制器函数中。它到达了它,但它什么也没做。我收到此错误:已定义常量 K_PATH_CACHE (/var/www/wattquotes/protected/extensions/tcpdf/ETcPdf.php:85)。我认为没有正确设置,我在这个库上找不到足够的信息。
      • 如何设置这个扩展?文档是错误的。令人困惑!
      • 你提到的link的文章说tcpdf不能正常工作。那么,用 Yii 生成 pdf 的最佳选择是什么。你做完了吗?请给我一个样品!
      【解决方案3】:

      要创建word文档,您可以使用phpword library 要使用,请将库解压缩到文件夹 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');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多