Почему я получаю пустую страницу на PHPword при использовании HTMLtoOpenXML?

Я пытаюсь сделать сайт, на котором люди отправляют форму. Одна часть этой формы использует ckeditor для получения ввода от пользователя. Поскольку данные, поступающие из ckeditor, являются html, вам нужно превратить html в openxml, чтобы использовать тамплинг-процессор phpword, но всякий раз, когда я запускаю свой скрипт, я получаю пустой раздел в выходном файле.

PHP-код:

$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML($data[1]);
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('template.docx');

$templateProcessor->setValue('section1', $data[0]);
$templateProcessor->setValue('section2', $toOpenXML);
$templateProcessor->setValue('section3', $specialdata);
$templateProcessor->setValue('section4', $data[2]);
$templateProcessor->setValue('section5', $data[3]);

$file_name1 = $file_name.'.docx';
$file_name2 = $file_name.rand().'.docx';

if(file_exists($file_name1)== false){
$templateProcessor->saveAs($file_name1);
}elseif(file_exists($file_name2)== false){
$templateProcessor->saveAs($file_name2);
}else{
$info['er'] = "3";
}

Вывод HTMLtoOpenXML:

<w:p>
<w:pPr>
<w:pStyle w:val='OurStyle2'/>
</w:pPr>
<w:r>
<w:t xml:space='preserve'>foo</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val='OurStyle2'/>
</w:pPr>
<w:r>
<w:t xml:space='preserve'>bar</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val='OurStyle2'/>
</w:pPr>
<w:r>
<w:t xml:space='preserve'></w:t>
</w:r>
</w:p>

я не проблема проблема о HTMLtoOpenXML я проблема проблема о

Все секции работают, кроме секции 2 в выходном файле. Место, где должны быть данные раздела 2, просто пусто.

-1

Решение

TemplateProcessor может заменить только однострочные строки. Для этого он заменяет содержание абзаца Word.

Вы хотите заменить это другим пунктом (<w:p>) из вашего результата HTMLtoOpenXML. Избегайте этого результата или удалите тег абзаца, и он должен работать.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]