我在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";
我的页面上没有收到任何错误,它回显了“开始”和“结束”提示。
每个学校的文件夹已创建:
另一方面,PDF为空白,大小仅为1KB。
我试图查看是否可以回显DOCX文件的内容,但是我无法做到这一点。
希望有人可以提供帮助! 预先感谢。