PHPWord和DomPDF转换Docx保存空白PDF

时间:2018-10-10 14:45:18

标签: codeigniter dompdf phpword

我在CodeIgniter项目中使用PhpWord和DomPDF将Word文档转换为PDF时遇到问题。

在我的代码中,我遍历CSV文件,以在每个学生的学校文件夹中创建一个Word文档。 我的函数可以很好地创建Word文档,但是PDF部分会保存空白的PDF。

我的代码如下:

echo "Start<br/><br/>";

//get all rows in CSV document
$students = array_map('str_getcsv', file('files/students.csv'));

//loop through rows
if (count($students) > 0) {
    foreach ($students as $student_array) {
        $student = $student_array[0];
        $school = $student_array[1];
        $fle = 'letters/'.$school.'/'.$student.'.docx';

        //create school folder if it does not exist yet
        if (!file_exists('letters/'.$school)) {
        mkdir('letters/'.$school, 0777, true);
        }

        //load template letter
        $tmpWord = new \PhpOffice\PhpWord\TemplateProcessor('files/letter.docx');

        //update all keywords
        $tmpWord -> setValue('student_name', $student);

        //save new document
        $tmpWord -> saveAs($fle);

        //This is needed to write the document
        \PhpOffice\PhpWord\Settings::setPdfRendererPath('Dompdf/src/Dompdf.php');
        \PhpOffice\PhpWord\Settings::setPdfRendererName('DomPDF');

        //load the file into the IOFactory so that we can save as PDF
        $phpWord = \PhpOffice\PhpWord\IOFactory::load($fle);
        $pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'PDF');

        //save new document
        $pdfWriter -> save('letters/'.$school.'/'.$student.'.pdf');
    }
}


echo "<br/>End";

我的页面上没有收到任何错误,它回显了“开始”和“结束”提示。

每个学校的文件夹已创建:

enter image description here

创建word文档并替换关键字: enter image description here

另一方面,PDF为空白,大小仅为1KB。

我试图查看是否可以回显DOCX文件的内容,但是我无法做到这一点。

希望有人可以提供帮助! 预先感谢。

0 个答案:

没有答案