2016-11-24 4 views
0

Я могу чередовать полужирный и обычный текст в нижнем колонтитуле (спасибо ejuhjav), но только если я не пытаюсь стилизовать текст.Как объединить изменение текста с полужирным шрифтом в нижнем колонтитуле?

В следующем примере буква «T» выделяется жирным шрифтом, поскольку она имеет размер по умолчанию (12).

Если я уменьшу текст, смещение отбрасывается. Я также пробовал использовать именованные стили шрифтов и создавал объекты стиля шрифта. Не повезло.

Есть ли что-то простое, что мне не хватает?

// create footer 
$footer = $section->addFooter(); 
$textrun = $footer->addTextRun(); 

// define bold style 
$boldFontStyleName = 'BoldText'; 
$phpWord->addFontStyle($boldFontStyleName, array('bold' => true)); 

// add content 
$textrun->addText('T', $boldFontStyleName); 
$textrun->addText(' ++353 1 555 0001 ', 
    array('name' => 'Helvetica', 'size' => 8)); 
$textrun->addText('E', 
    array('name' => 'Helvetica', 'size' => 8), $boldFontStyleName); 
$textrun->addText(' [email protected] ', 
    array('name' => 'Helvetica', 'size' => 8)); 
$textrun->addText('W', 
    array('name' => 'Helvetica', 'size' => 8), $boldFontStyleName); 
$textrun->addText(' abcd.ie/wxz', 
    array('name' => 'Helvetica', 'size' => 8)); 

ответ

1

и здесь идет в третий раз, то :)

определение функции AddText является:

addText(string $text, mixed $fStyle = null, mixed $pStyle = null) 

т.е. стилей шрифта приведены со вторым параметром и, таким образом, строки, где есть $boldFontStyleName переменная как третий атрибут, шрифт не выделен жирным шрифтом.

Самый простой способ исправить это было бы просто определить несколько дополнительных стилей шрифта:

// create footer 
$footer = $section->addFooter(); 
$textrun = $footer->addTextRun(); 

// define font styles 
$boldFontStyleName = 'BoldText'; 
$phpWord->addFontStyle($boldFontStyleName, array('bold' => true)); 

$smallFontStyleName = 'smallText'; 
$phpWord->addFontStyle($smallFontStyleName, array(
    'name' => 'Helvetica', 
    'size' => 8, 
)); 

$boldSmallFontStyleName = 'BoldSmallText'; 
$phpWord->addFontStyle($boldSmallFontStyleName, array(
    'bold' => true, 
    'name' => 'Helvetica', 
    'size' => 8, 
)); 

// add content 
$textrun->addText('T', $boldFontStyleName); 
$textrun->addText(' ++353 1 555 0001 ', $smallFontStyleName); 
$textrun->addText('E', $boldSmallFontStyleName); 
$textrun->addText(' [email protected] ', $smallFontStyleName); 
$textrun->addText('W', $boldSmallFontStyleName); 
$textrun->addText(' abcd.ie/wxz', $smallFontStyleName); 
+0

Большое спасибо еще раз! Думаю, я начинаю понимать порядок приоритетности и немного лучше. Жаль, что есть такая нехватка документации и даже учебник, который я мог бы использовать для phpWord. Документы на github и т. Д. (Https://media.readthedocs.org/pdf/phpword/develop/phpword.pdf) перечисляют параметры и значения, но инструкции по правильному использованию мало. – Benjamin

+0

Я нашел, что самая лучшая и самая современная «документация», как работает phpword, и что она может сделать, находится в каталоге образцов проекта [phpword @ github] (https://github.com/PHPOffice/PHPWord/ дерево/разработки/образцы). – ejuhjav

Смежные вопросы