miércoles, abril 28, 2010

Adendum a la generación en Word con PHP


Tuve un problema al sustituir campos que contienen saltos de línea, ya que dichos saltos no aparecían en el texto reemplazado sino que todo quedaba junto haciéndolo ilegible.

Tuve que comenzar con la Wikipedia, http://en.wikipedia.org/wiki/Rich_Text_Format, para ir entendiendo un poco del formato RTF, pensé que sería necesario ir a leer bastante de la especificación para entender mejor que hacer pero no fue necesario.

Resulta que los saltos de línea (representados en php como "\r" y "\n) no se utilizan con los caracteres especiales de cualquier codificación, sino que en su lugar se utiliza el código especial \par

Así que, suponiendo que, la variable que tiene saltos de línea en su código se llama parrafo ($parrafo), basta con sustituir los caracteres de salto de línea por ese código especial:

$parrafo = str_replace("\n", ' \par ',$parrafo);

Y luego la agregamos a nuestra plantilla

$archivo = str_replace('tag_parrafo',csv_encode_conv($parrafo), $archivo);

Y listo!!!

No hay comentarios.: