使用 Yii 创建 PDF 或 Word 文档?

2022-01-04 00:00:00 ms-word pdf-generation php yii doc

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

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.

我也看过但还没有测试过一些 PDF 扩展,比如 DOMPDF、tcpdf 和 Zend_PDF.但是,如果我生成 PDF 报告,那么我的客户将如何编辑此文件?

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?

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

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

推荐答案

更新 1:目前我得到了 PDF 的工作.我是这样做的:首先我从它的 site 下载了 TCPdf 并在 Yii 中打开它作为第三方库.然后:

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

无论如何,我希望能够生成一个 word 文档,因为要求说报告将在生成后由用户编辑.

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.

更新 2:对于 Word 文档的报告生成这就是我正在做的.

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

相关文章