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.

Другие вопросы по тегам