Obtener texto de un campo texto enriquecido


([N4] rodolformg) #1

Hola a todos,

He buscado en los manuales y en el foro alguna manera de obtener el texto de un campo de texto enriquecido, ¿Hay aluna forma de obtener el texto simple de un control de texto enriquecido? He visto que los mensajes al respecto en el foro tienen algún tiempo, quizás haya algo nuevo que no he sabido encontrar.

Lo más cercano a lo que quiero lo he visto en un mensaje de Fran (EfeUno), siguiendo las indicaciones de un mensaje suyo he intentado utilizar las funciones HTML_2_TXT y XML_2_TXT incluidas en la OpenApp vMailWin, sin embargo siempre me regresan una cadena vacía. El caso es que intento utilizar el texto sin formado (Extraído de un campo de texto enriquecido) en un evento anterior a la alta y anterior a la modificación, pero regresa una cadena vacía.

Saludos,

Rodolfo


([N4] info) #2

Hola Rofolfo:
A la función que te envio le pasas como parametro cadena=campo_texto_enriquecido
Esta te quita las cabeceras y te quedas solo con el texto, aunque con algunas caracteristicas del texto, negrita etc... pero si quieres dejar solo texto los tiros van por ahí.
un saludo
Miguel

[attachment=21515,1689]


([N1] Roberto Blasco) #3

Hola rodolformg.gmail

Te he compilado una clase java para que extraigas el texto de un fichero con formato rtf.

La forma de utilizarlo es la siguiente:

java -jar JRTF2TXT.jar fichero.rtf fichero.txt

P.D.
Espero que no sea demasiado complicado de utllizar ...


([N1] Roberto Blasco) #4

Otra opción es utilizar Tika (mucho más versátil y potente ... ) pero claro ni es Velneo - es Java - ni es tan fácil.

Si a alguien con miras abiertas al exterior le interesa, con mucho gusto le compilo la clase para extraer el texto de diferentes formatos.

Un saludo. Roberto Blasco.


([N1] Roberto Blasco) #5

Hola de nuevo :-)

Acabo de ver que Tika acepta parámetros por línea de comando, con lo que no hace falta nada. Estoy seguro que puede ser de mucha utilidad.

usage: java -jar tika-app-0.7.jar [option] [file]

Options:
-? or --help Print this usage message
-v or --verbose Print debug level messages
-g or --gui Start the Apache Tika GUI
-x or --xml Output XHTML content (default)
-h or --html Output HTML content
-t or --text Output plain text content
-m or --metadata Output only metadata

Description:
Apache Tika will parse the file(s) specified on the
command line and output the extracted text content
or metadata to standard output.

Instead of a file name you can also specify the URL
of a document to be parsed.

If no file name or URL is specified (or the special
name "-" is used), then the standard input stream
is parsed.

Use the "--gui" (or "-g") option to start
the Apache Tika GUI. You can drag and drop files
from a normal file explorer to the GUI window to
extract text content and metadata from the files.

Estos son los formatos de entrada soportados

Supported Document Formats
HyperText Markup Language
XML and derived formats
Microsoft Office document formats
OpenDocument Format
Portable Document Format
Electronic Publication Format
Rich Text Format
Compression and packaging formats
Text formats
Audio formats
Image formats
Video formats
Java class files and archives
The mbox format

Un saludo. Roberto Blasco.


([N1] Pepeto) #6

Muchas gracias Roberto, siempre sorprendiendo con tus aportaciones.

un saludo.
José Luis
http://www.ascsl.com


([N4] rodolformg) #7

Miguel:
Muchas gracias por la rutina que me ofreces, la estudiaré y veré adaptarla a mis necesidades.

Roberto:
Tu respuesta me ha descolocado un poco, primeramente por lo amplio de tu respuesta (Desde ya, gracias por el esfuerzo), después, por lo que tu respuesta me deja ver: Lo importante que es aprender java como complemento a Velneo. Hasta ahora todo lo he resuelto con los procedimientos incluidos en Velneo (Tampoco he abordado temas muy complicados), pero entre tu respuesta y lo que voy leyendo en el blog del arquitecto de la plataforma, ufff, me da la impresión que "debo" aprender de ese mundo alterno.Voy a poner todo de mi parte para hacer funcionar tus recomendaciones que, aunque me suenan por ahora a un mundo ajeno, me parece que abren nuevos horizontes.

Nuevamente, gracias a ambos.

Saludos,

Rodolfo.


([N1] JaimeNA) #8

Hola, Rodolfo

Estos día me ha pasado lo mismo para exportar a un documento .txt y lo he solucionado con ese hilo que mencionas utilizando esas dos funciones aunque he tenido que modificar algunas cosas porque me daba resultados inesperados:

-He tenido que añadir a la función HTML_2_TXT un raplaceString más porque se me quedaba colgado la cadena "p, li { white-space: pre-wrap; }"

-Una vez eliminado todo el código HTML permanecían líneas en blanco, para quitarlas, en primer lugar asignaba el resultado de aplicar la función a la cadena a una variable y luego eliminaba los espacios en blanco con la función estándar trimmedString

De todas formas lo que me descoloca de tu pregunta, si te he entendido bien, es que quieres convertir a texto plano un texto enriquecido antes del alta, ¿es realmente necesario tener dos campos de texto, uno normal y otro enriquecido, en la misma tabla y antes del alta?


([N4] rodolformg) #9

Hola, Jaime.

El tema es que ya utilizo una búsqueda por trozos de palabra cuyo índice incluye todos los campos por los que se puede localizar un artículo (Número de parte, descripción, etc.), enter esos campos incluyo el campo "Observaciones", todos estos campos los concateno y los escribo en un campo texto sobre el que he creado el índice correspondiente, este es el campo que utilizo para la búsqueda, esto me permite que el usuario pueda localizar un artículo escribiendo cualquier dato (A parte del dato) significativo.

El problema es que cuando concateno un campo de texto enriquecido no he logrado que la búsqueda por trozos de palabra funcione, es decir, no localiza ningún artículo escribiendo algo que pertenezca al campo de texto enriquecido, sin embargo si en lugar de utilizar un campo de texto enriquecido utilizo un campo de texto "normal" funciona todo como quiero, es por eso que quiero que al dar de alta un artículo (O se modifique), poder extraer el texto del campo de texto enriquecido para incluirlo en la concatenación y hacer que la búsqueda funcione. Evidentemente esto funciona bien si cambio el tipo de campo, pero quiero que el usuario pueda tener las funciones que ofrece este tipo de campo.

Saludos,

Rodolfo


([N4] mperez) #10

Hola Rodolfo, lo que estas comentando es bastante lógico, ya que estas concatenando en un campo texto e incluyendo dentro de el texto enriquecido, con lo cual ya no es texto lo que tienes dentro de el y como has comentado debes pasarlo de Texto enriquecido a Texto al concatenar.

Lo que no sé y podías probar e igual te funciona, aunque desde luego ese campo no lo podrás mostrar y que se visualice bien es justo al revés.

Si el campo que utilizas para la busqueda es texto enriquecido y en el concatenas el campo Observaciones que tambien es enriquecido y el resto que son campos alfabeticos normales, igual te funciona, no lo he probado, pero ...


([N4] mittosoftware) #11

Hola a todos.

He leído varios hilos, pero no me queda claro que comandos exactamente usar.

Veo que hay que usar ‘importar texto’ y ‘exportar texto’, y aparentemente usar un archivo texto intermedio (confirmar por favor, porque me parece demasiado aparatoso, cuando debería funcionar ‘modificar campo’, ¿no creen?), pero ¿y los comandos ‘replaceString’?, ¿funcionan sobre un objeto texto o RTF?

¿Existe alguna open app con un ejemplo completo? Esto el algo demasiado común, y un ejemplo ahorraría mucho tiempo a todos.

Por lo pronto, ¿podrían poner aquí una captura de un proceso que resuelva esto, pero que en la captura se vea el manejo de los campos objeto texto y objeto texto enriquecido, mas los ‘replacestring’ que haya que hacer?