Forum


Replies: 3   Views: 2199
Cómo aplicar un estilo a una tabla en replacevariablebyhtml
Topic closed:
Please note this is an old forum thread. Information in this post may be out-to-date and/or erroneous.
Every phpdocx version includes new features and improvements. Previously unsupported features may have been added to newer releases, or past issues may have been corrected.
We encourage you to download the current phpdocx version and check the Documentation available.

Posted by rmartinez  · 18-12-2018 - 10:09

Buenas.

He estado probando varias alternativas y no consigo asignar ningún estilo a una tabla desde la función replaceVariablebyHTML. Asignando un estilo a un párrafo, no he tenido problemas.

He probado con algo parecido a esto:

$docx->replaceVariableByHTML($template_variable, 'block', $html, array('strictWordStyles' => true, 'wordStyles' => array('p' => 'Normal', 'table' => 'Tabla01')));

El párrafo se formatea correctamente pero no así la tabla. Al abrir el documento, aparece el estilo Tabla01 para poder asignar, al obterner los estilos desde parseStyles también aparece. He probado tanto con estilos incorporados en el propio word como con estilos creados con createTableStyle sin éxito.

En definitiva, tengo almacenado un código HTML, que es una tabla, y quiero utilizar la función replaceVariablebyHTML para incluirla en mi documento con un estilo concreto. ¿Es posible?

Gracias.

Saludos.

Posted by admin  · 18-12-2018 - 11:12

Hola,

Efectivamente, el uso de estilos de tablas está soportado en la importación de HTML. En la página de documentación disponible en https://www.phpdocx.com/documentation/introduction/html-to-word-PHP (sección Using native Word formatting with HTML), puedes ver un ejemplo utilizando tablas con estilos de MS Word.

Es posible que no estés utilizando el ID correcto, este valor puede ser diferente al del style name. O no se esté importando correctamente el estilo.

Te recomendamos ejecutar el código de la documentacion antes comentado, y comprobar si el ID se corresponde con el style elegido; en el archivo styles.xml del DOCX se puede comprobar directamente).

Regards.

Posted by rmartinez  · 19-12-2018 - 16:43

Buenas.

Acabo de revisar la documentación que me indicabas y he visto que en el ejemplo se declaraban los estilos así:

$wordStyles = array('<table>' => 'LightListAccent3PHPDOCX', '<h1>' => 'Heading1PHPDOCX' , '.heading2' => 'Heading2PHPDOCX');

No sé por qué pero algunos estilos se asignan igual que en CSS (.heading2, p, etc) y otros no (<table>, <h1>, etc)

Cambiando table por <table>, el formateo de la tabla se realiza correctamente.

Gracias.

Saludos.

 

Posted by admin  · 19-12-2018 - 17:44

Hola,

Efectivamente, como tal como indican los ejemplos, las etiquetas se asocian añadiendo <>, mientras que los id y clases no los añaden.

Regards.