向PHPWord中的所有链接标记添加样式

向PHPWord中的所有链接标记添加样式,php,phpword,phpoffice,Php,Phpword,Phpoffice,我使用PHPWord解析HTML内容并从中生成.docx文件。 我想为所有标签添加样式,使它们看起来像网页中的HTML链接,例如:带下划线的蓝色。 现在他们正在检查生成的.docx文件是黑色的,没有下划线文本 这是当前的代码: $phpWord = new \PhpOffice\PhpWord\PhpWord(); $section = $phpWord->addSection(); $content = 'one two <a href="https://google.

我使用PHPWord解析HTML内容并从中生成.docx文件。 我想为所有标签添加样式,使它们看起来像网页中的HTML链接,例如:带下划线的蓝色。 现在他们正在检查生成的.docx文件是黑色的,没有下划线文本

这是当前的代码:

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();

$content = 'one two <a href="https://google.com/">three</a> four five';

\PhpOffice\PhpWord\Shared\Html::addHtml($section, $content, false, false);

$phpWord->save('myfile.docx', 'Word2007', true);
$phpWord=new\phpooffice\phpWord\phpWord();
$section=$phpWord->addSection();
$content='123445';
\PhpOffice\PhpWord\Shared\Html::addHtml($section$content,false,false);
$phpWord->save('myfile.docx','Word2007',true);
我知道我可以像这样使用内联CSS(它可以工作):

$content = 'one two <a href="https://google.com/" style="color: blue; text-decoration: underline;">three</a> four five';
$content='一二四五';
但我真的不想对每个标签都这样做。 我想能够设置样式,就像它可能在一个段落或标题像“addTitleStyle”为任何传入的标签


此外,我不能使用“addLink”,我当前必须在
addHtml
之后使用“addHtml”

您可以这样做:

/** @var \PhpOffice\PhpWord\Element\Section $section */
foreach($phpWord->getSections() as $section)
{
  foreach($section->getElements() as $element)
  {
    if($element instanceof \PhpOffice\PhpWord\Element\Link)
    {
      $fontStyle = $element->getFontStyle();
      $fontStyle->setColor('#0000ff')
      ->setUnderline('single');
    }
  }
}