У меня возникла проблема с преобразованием текстового документа в PDF с использованием PhpWord и DomPDF в моем проекте CodeIgniter.
В моем коде я перебираю CSV-файл для создания текстового документа в школьной папке для каждого из них.ученик.Моя функция прекрасно создает текстовые документы, но часть 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";
Я не получаю никаких ошибок на своей странице, и это повторяетсяприглашения «Начало» и «Конец».
Созданы папки для каждой школы:
Создан документ Wordи ключевые слова заменяются:
С другой стороны, PDF-файлы пустые и имеют размер всего 1 КБ.
Я попытался проверить, могу ли я повторитьсодержимое файла DOCX, но я не могу этого сделать.
Надеюсь, кто-нибудь может помочь!Заранее спасибо.