2013-07-13 20 views
5

Mi chiedevo se esistesse un modo per mettere in evidenza determinate parole su una riga. Per esempio se volessi ogni terza parola su una linea in grassetto, come potrei farlo. Attualmente sto usando addText ma questo richiede che l'intera riga sia in grassetto o non in grassetto. Qualsiasi risposta sarebbe molto apprezzata.PHPWord grassetto determinate parole su una riga

risposta

4

Sarà necessario utilizzare il metodo createTextRun(). Ho provato con Text.php file dalla cartella di Examples, e qui è relativo codice per il vostro problema:

$textrun = $section->createTextRun(); 
$sentence='I am sentence, and every third word will be bold. This is bold.'; 
$word_arr=explode(' ', $sentence); 

$styleFont = array('bold'=>true, 'size'=>16, 'name'=>'Calibri'); 
$styleFont2 = array('bold'=>false, 'size'=>16, 'name'=>'Calibri'); 

$c = 0; 
for($i = 0; $i < count($word_arr); $i++) 
{ 
    $c++; 
    if($c % 3 == 0) 
    { 
     $textrun->addText($word_arr[$i].' ', $styleFont); 
    } 
    else 
    { 
     $textrun->addText($word_arr[$i].' ', $styleFont2); 
    } 
} 

Si potrebbe modificarlo per ottenere ciò che si vuole, ma, in fondo, utilizzando del metodo di cui, è possibile ottenere stili diversi nella stessa riga.

+0

Grazie a questo ha aiutato un sacco! – user2579723

+1

Ho fatto una rapida funzione per fare quello che ti serve lo puoi trovare qui -> http://pastebin.com/qDMcsivW – Jake

+0

Qualcuno sa se la formattazione inline può essere applicata anche quando si usa addListItem() per il testo puntato? –