Hace ya un tiempo estaba actualizando un proyecto y le agregue el control Editor del AjaxControlToolKit 4 y pues la pantalla de captura de texto se miraba bien chida y todo funcionando bien (según las pruebas de funcionamiento) así que se le entrego al usuario, unas semanas después todo iba bien hasta que un cierto día nos llamo el usuario comentando que cuando generaba un reporte el contenido no se mostraba bien por que aparecía demasiado texto que no había incluido y algunos signos raros, por lo que incrédulos a tales explicaciones decidimos mirarlo nosotros mismos, así que pedimos al usuario que nos mostrara lo que había hecho y efectivamente en el reporte salia demasiado texto y unas etiquetas un poco raras <!--[if gte mso 9]><xml> <w:WordDocument> ... por lo que deducimos que al copiar texto formateado de un documento de Word al control Editor agregaba ciertas etiquetas de formateo, por lo que no puede evitar exclamar ¡WTF! y así que de inmediato me puse a analizar como obtener el texto que se ingreso pero que tenia que mantener el formateo, puse manos a la obra e intente hacerlo desde la Base de Datos con una función pero no trabajo como lo esperaba así que intente haciéndolo por programación y antes de guardar la información pasarla por una función de filtrado de etiquetas MSWord y este fue el resultado:
'Un snippet para quitar el contenido de las Tags MSWord Protected Function QuitarTagsMSWord(ByVal CadenaOriginal As String) As String Dim CadenaSinEtiquetas As String = String.Empty Dim i As Integer = 0 Dim Inicio As Integer = 0 Dim Fin As Integer = 0 Inicio = CadenaOriginal.IndexOf("") If Inicio >= 0 And Fin > 0 Then CadenaSinEtiquetas = CadenaOriginal.Remove(Inicio, Fin - Inicio + 3) For i = 0 To 9 Inicio = CadenaSinEtiquetas.IndexOf("") If Inicio <> -1 And Fin <> -1 Then CadenaSinEtiquetas = CadenaSinEtiquetas.Remove(Inicio, Fin - Inicio + 3) End If Next Else CadenaSinEtiquetas = CadenaOriginal End If Return CadenaSinEtiquetas End Function
Hay otras funciones que eliminan las etiquetas de word pero que también eliminan el formateo, la función que le dejo tal vez no sea la mejor pero cumple con el objetivo, ademas ya no quise matar mis neuronas para buscar una mejor opción, si les sirve de algo qui les dejo la descarga QuitarTagsMSWord.
Ejemplo de Implementación de la Funcion QuitarTags |
No hay comentarios:
Publicar un comentario
Deja tu Comentario