Spanish Problemas al trabajar con campos Blob con contenido RTF

Gabino A. de la Gala

Active Member
Licensed User
Pues eso. Que estoy haciendo pruebas para obtener valores almacenados en una base de datos remota.

Al contenido de la base de datos accedo mediante RDC.

Lanzo la petición y obtengo los resultados correctamente. Tanto de campos numéricos, como textos, blobs con imágenes y blobs con rtf.

El problema se me presenta al querer mostrar dichos campos con contenido rtf. Ya que al meterlos a un edittext, webview, etc me presenta los datos en "bruto". Osea con caracteres de control y demás.

La cosa sería, ver como poder mostrarlos correctamente, o al menos mostralos en texto "plano" pero sin caracteres de control.

He visto por el foro que si intentar un intent de una aplicación externa, que si con StringBuilder, etc. Pero eso a mi me escapa.

A ver si alguien me puede echar una mano.

Un saludo.
 

bgsoft

Well-Known Member
Licensed User
Hola Gabino

He visto por el foro que si intentar un intent de una aplicación externa, que si con StringBuilder, etc. Pero eso a mi me escapa.

Aqui te pongo un codigo para hacerlo, no hace falta que sepas el nombre de la aplicación externa que lea RTF, el propio sistema te dará a elegir.

B4X:
        Dim FileName As String
        Dim i As Intent 'Libreria Phone
        FileName = carpeta y nombre del fichero RTF
        i.Initialize(i.ACTION_VIEW, "file://" & FileName)
        i.SetType("application/rtf")
        i.WrapAsIntentChooser("Seleccione el visor de RTF") ' Comenta esta linea si no quieres que te de a elegir visor
        StartActivity(i)

Saludos:
 

Gabino A. de la Gala

Active Member
Licensed User
Hola Gabino



Aqui te pongo un codigo para hacerlo, no hace falta que sepas el nombre de la aplicación externa que lea RTF, el propio sistema te dará a elegir.

B4X:
        Dim FileName As String
        Dim i As Intent 'Libreria Phone
        FileName = carpeta y nombre del fichero RTF
        i.Initialize(i.ACTION_VIEW, "file://" & FileName)
        i.SetType("application/rtf")
        i.WrapAsIntentChooser("Seleccione el visor de RTF") ' Comenta esta linea si no quieres que te de a elegir visor
        StartActivity(i)

Saludos:

Ante todo muchas gracias por tu respuesta.

Pero me surgen dos "pegas" por así llamarlas respecto a lo que yo estaba intentando hacer:
  1. El contenido rtf me viene dentro de un campo blob de la base de datos. (Supongo que tendría que grabar cada registro en un fichero o algo así para luego cargarlo con tu ejemplo)
  2. Mi idea era mostrar en la misma venta todos los campos "normales" de la ficha y a mayores en una "especie" de recuadro el contenido rtf. Como si de una imagen, webview o edittex se tratara.

¿Lo ves posible?.

Muchas gracias de nuevo.
 

bgsoft

Well-Known Member
Licensed User
Hola Gabino

El problema de hacer lo que quieres es que como ya sabes no hay una libreria que lea RTF, por lo tanto la unica forma es usar una aplicación externa con el codigo que te pasé.

Está claro que para emplear el codigo que te pasé tendras que grabarlo a un fichero, pero eso es bastante facil.

Si pudieras en vez de tener ese texto en RTF tenerlo en HTML, entonces si que podrias presentarlo en tu APP

Saludos
 

Gabino A. de la Gala

Active Member
Licensed User
Hola Gabino

El problema de hacer lo que quieres es que como ya sabes no hay una libreria que lea RTF, por lo tanto la unica forma es usar una aplicación externa con el codigo que te pasé.

Está claro que para emplear el codigo que te pasé tendras que grabarlo a un fichero, pero eso es bastante facil.

Si pudieras en vez de tener ese texto en RTF tenerlo en HTML, entonces si que podrias presentarlo en tu APP

Saludos
Los datos a los que accedo están en la base de datos de un ERP y tengo que "respetar" los campos tal cual para que el programa siga funcionando como hasta ahora.

Muchas gracias por tu ayuda.
 

bgsoft

Well-Known Member
Licensed User
Hola Gabino

De nada, estamos aqui para ayudarnos.

Se me ocurrió una cosa (posiblemte la habras pensado), podrias grabar ese fichero .RTF y hacer una conversion a html en linea (hay web que lo hacen).

Saludos
 
Top