PHPWord и изображения с шириной
$phpWord = new PhpWord();
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, '<table style="width:100%"><tr><td><img src="https://www.gettyimages.ca/gi-resources/images/Homepage/Hero/UK/CMS_Creative_164657191_Kingfisher.jpg" style="width: 20px;"/></td><td>text</td></tr></table>');
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save($docx);
В этом случае PhpWord отображает изображение в полном размере и игнорирует ширину изображения
Как исправить?
1 ответ
Считается, что синтаксический анализатор HTML не понимает стиля CSS, надетого. Что работает, это передать ширину в качестве атрибута
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, '<table style="width:100%"><tr><td><img src="https://www.gettyimages.ca/gi-resources/images/Homepage/Hero/UK/CMS_Creative_164657191_Kingfisher.jpg" width="200"/></td><td>text</td></tr></table>');
Код выше работает для меня. По крайней мере, с 0,14, и открытие документа Word с Word 2016.