Te traemos el hallazgo a esta escollo, al menos eso creemos. Si tienes dudas coméntalo, que con placer te responderemos
Solución:
La pregunta se hizo hace 3 años pero tengo el mismo problema y encontré una solución. Tal vez esto pueda ayudar a los nuevos usuarios de PHPWord.
Para agregar un crlf en un documento de Word, la etiqueta puede ayudar:
$section->addText('Some text another text in the line ');
Encontré la solución aquí: http://jeroen.is/phpword-line-breaks/
Me temo que esto no será posible con la versión actual. No tengo un conocimiento profundo de esta biblioteca, pero al mirar el código, descubrí que el textRun
la clase consiste solo en addText
y addLink
métodos.
Pero también necesito esta característica junto con varias otras, así que voy a escribirla yo mismo y crearé una solicitud de extracción para incluirla en la próxima versión (si la hay).
Básicamente se puede hacer modificando el textRun
clase, agregando un addLineBreak
método (de manera similar a como está en la clase de sección) y luego modifique la clase Base.php
para crear elementos adecuados en el documento final.
En Docx xml, esos frenos de línea son similares al html br
etiqueta, pero el texto anterior debe cerrarse y reabrirse después de usar un descanso como este:
This is
a simple sentence.
en lugar de simplemente hacer
This is a simple sentence
así que en base.php
deberá editar el comportamiento para crear este bloque de código.
¡Espero que esto haya sido útil!
EDITAR
He descubierto que implementar esto es muy simple. En textRun.php
solo agrega este método:
/**
* Add a TextBreak Element
*
* @param int $count
*/
public function addTextBreak($count = 1)
for($i=1; $i<=$count; $i++)
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
y en Base.php
en el _writeTextRun
método al final de este método agregue esta condición:
elseif($element instanceof PHPWord_Section_TextBreak)
$objWriter->writeElement('w:br');
Agregar una nueva línea en phpword me ha molestado, y finalmente encontré la solución, por accidente, así que aquí está: Y esto justifica el texto.
$PHPWord->addParagraphStyle('pJustify', array('align' => 'both', 'spaceBefore' => 0, 'spaceAfter' => 0, 'spacing' => 0));
//add this style then append it to text below
$section->addText('something', 'textstyle', 'pJustify');
//the text behind this will be justified and will be in a new line, not in a new paragraph
$section->addText('behind', 'textstyle', 'pJustify');
Esto generará:
algo
detrás
Si te gusta la programación, puedes dejar un escrito acerca de qué te ha impresionado de este ensayo.