Página 1 de 1

GPF en RichEdit HTMLToRTF

Publicado: Sab Feb 17, 2018 10:45 am
por XeviCOMAS
Estoy tratando de tener un editor para procesar mails y el texto sea en format HTML.

Bien, los mails los envio perfectamente en ese formato con la clase TCDOMail... el problema lo tengo en que no puedo "escribir" modificar ese texto con un control TRichEdit. El Sample de Xailer no funciona para ese tipo de texto/archivos (aunque adentrado en el código lo pareciera, parece no estar terminado el ejemplo)... y siguiendo los pasos de la ayuda de la clase:

TRichEdit:HTMLToRTF
Convierte el archivo HTML a RTF y lo inserta en el control.
Sólo después de Create()

Parámetros
<cFile>:
Nombre del fichero
<lInsert>:
Insertar el archivo
Valor Retorno
<lOk>:
Verdadero si éxito


Lo intento así,

Código: Seleccionar todo

METHOD FormInitialize( oSender ) CLASS TFrmFraMail
   Local cHtml, n
   
   cHtml := "<HTML>"
   cHtml += "<HEAD>"
   cHtml += "<BODY>"
   cHtml += "<b> This is the test HTML message body.</b></br>"
   cHtml += "</BODY>"
   cHtml += "</HTML>"

   n := FCreate( "D:\Prueba.htm" )
   FWrite( n, cHtml )
   FClose( n )

RETURN Nil

//------------------------------------------------------------------------------

METHOD Button1Click( oSender ) CLASS TFrmFraMail
   Local oRich1

   WITH OBJECT oRich1 := TRichEdit():New( Self )
      :SetBounds( 0, 100, 619, 238 )
      :lParentFont := .F.
      :oFont := TFont():Create( "Arial", 10, 0, 400 )
      :Create()
   END

LogDebug( oRich1:lHTML )   //Devuelve .T.
   oRich1:HTMLToRTF( "D:\Prueba.htm", .T. )

RETURN Nil

pero lanza un enorme GPF !!!
Captura.PNG
Captura.PNG (82.1 KiB) Visto 3243 veces
Hago algo mal???

Gracias.

Re: GPF en RichEdit HTMLToRTF

Publicado: Mar Feb 20, 2018 2:10 pm
por ignacio
Buenos días Xevi

Para que ese mecanismo de conversión funcione has de tener instalado Microsoft Word en la misma máquina, ya que son necesarias ciertas DLLs. Échale un vistazo a la propiedad TRichedit:lHTML.

Saludos

Re: GPF en RichEdit HTMLToRTF

Publicado: Mar Feb 20, 2018 2:58 pm
por XeviCOMAS
Ignacio... tengo todo el paquete Office 2016 instalado y funcionando perfectamente.

Además, me descargué el fichero html.cnv y lo tengo en el mismo directorio de la aplicación.

He hecho TODO lo que pone en la ayuda sobre el tema de la propiedad TRichedit:lHTML

**************************
TRichedit:lHTML
Si verdadero indica que el equipo tiene instalada la librería que distribuye Microsoft Office para convertir un archivo en formato HTML a RTF. Esta librería es HTML32.cnv. Además, convierte un archivo en formato RTF a HTML. Véase los métodos RTFToHTML y HTMLToRTF.
**************************

Lo siento, pero el GPF es inevitable!!!

Re: GPF en RichEdit HTMLToRTF

Publicado: Mar Feb 20, 2018 5:06 pm
por jfgimenez
Xevi,

por un lado... asegúrate de que estás usando Office 32 bits, no el de 64 bits. Y por otro lado, es posible que Office 2016 no esté soportado. Por lo que veo en el fuente de TRichEdit, hay referencias hasta la versión 2013, pero no la versión 2016. De todos modos, no sabría decirtelo con certeza.

Re: GPF en RichEdit HTMLToRTF

Publicado: Mar Feb 20, 2018 5:41 pm
por XeviCOMAS
Pues, eso será... estoy utilizando Office2016 64bits.

Habrá alguna actualización de Xailer que lo soporte???

De momento, edito el texto con Office y lo pego al cuerpo del mensaje a enviar por mail con MemoRead()

Gracias.

Re: GPF en RichEdit HTMLToRTF

Publicado: Mar Feb 20, 2018 5:59 pm
por jfgimenez
Xevi,

no puedo asegurarlo, pero me creo que no. Las DLLs de 64 bits sólo se pueden usar desde 64 bits. A no ser que haya algún "middleware" que "traduzca" las llamadas. En windows es de lo más común; casi todas las DLLs del sistema cuenta con su "thunk" que actúa de puente entre 32 y 64 bits (https://msdn.microsoft.com/es-es/librar ... s.85).aspx). Pero en Office dudo mucho que MS ofrezca esa posibilidad.