一行在phpword中有多种颜色的文本?

时间:2019-07-19 11:45:26

标签: php phpword

有没有办法像这样在同一行中书写不同颜色的文本,但是会改变整个行的颜色?

我希望我的台词喜欢这样:
enter image description here

这是我的代码:

$section->addText( 'Headline: ', (array('color'=>'#70AD47')),$fontStyleIndexPara);
            $section->addText(cleanstring($data[$k]['ArticleTitle']),$fontStyleIndexPara);
           `

2 个答案:

答案 0 :(得分:1)

与其使用addText()将各个文本部分直接写到该部分中,不如使用addTextRun()将其括起来。

通过使用addTextRun()可以防止换行。

您的示例代码:

$TextRun = $section->addTextRun();
$TextRun->addText( 'Headline: ', array('color'=>'70AD47'));
$TextRun->addText(cleanstring($data[$k]['ArticleTitle']));

#不用于颜色。

答案 1 :(得分:0)

是的,您可以使用类似的内容:

$sentence='Your text in this sentence the two first word will get the stylefont while the rest will get the stylefont2';
$word_arr=explode(' ', $sentence);

$phpWord->addParagraphStyle('p3Style',array('align'=>'center'));
$c = 0;
$textrun = $section->addTextRun(array('align' => 'center'));
for($i = 0; $i < count($word_arr); $i++)
{
    $c++;
    if($c < 2)
    {
        $textrun->addText($word_arr[$i].' ', $styleFont);
    }
    else
    {
        $textrun->addText($word_arr[$i].' ', $styleFont2);
    }
}