Forum


Replies: 3   Views: 165
Replacevariablebyhtml css not applying

Posted by jennygj  · 26-02-2024 - 14:09

Hi

Could you advise why the styles in $testValue may not be applied during docuemnt creation?

$placeholder = '$EXAMPLE$';

$testValue = '<style>p {color:red; font-weight:bold;}></style><p>Test HTML</p>';

$docx->replaceVariableByHTML($placeholder, 'inline', $testValue, ['addDefaultStyles' => false]);

Posted by admin  · 26-02-2024 - 15:19

Hello,

Please note that the addDefaultStyles option prevents adding some styles. Also please note that the placeholder names to be replaced don't include the template symbols.

Please use the following code:

$placeholder = 'EXAMPLE';

$testValue = '<style>p {color:red; font-weight:bold;}></style><p>Test HTML</p>';

$docx->replaceVariableByHTML($placeholder, 'inline', $testValue);

All styles must be applied correctly now.
If you send to contact[at]phpdocx.com the template you are using, we can generate a custom code using it.

Regards.

Posted by jennygj  · 26-02-2024 - 20:01

"Please note that the addDefaultStyles option prevents adding some styles."

When you say 'some styles', which specific styles does it prevent being added? 

Posted by admin  · 26-02-2024 - 20:49

Hello,

If you enable addDefaultStyles the following styles aren't added: paragraph spacings, paragraph indentation, list text alignment, font-family, color, vertical-align and font-size. This option was included years ago to prevent adding some styles, so its use is very specific. Instead of using this option, we recommend you to apply the needed CSS styles and also use HTML Extended and CSS Extended if needed (https://www.phpdocx.com/documentation/introduction/html-extended-to-word-PHP).

For example, CSS Extended includes data-font-size: "initial" to avoid applying a font size and use the default value (https://www.phpdocx.com/htmlapi-documentation/html-standard/insert-paragraph-text-Word-document-with-HTML).

Regards.