Consulta Sobre Plantilla Word o Rtf "URGENTE"

Re: Consulta Sobre Plantilla Word o Rtf "URGENTE"

Postby remtec » Thu Jun 23, 2022 3:39 pm

Hola Cesar.

Como estas?

He buscado en internet y en el foro, algo parecido a insertar una imagen en RTF o DOC y nada que me ayude, lo mas problable que sea falta de conocimiento, pero que nadie antes haya tenido un requerimiento de este tipo, hummm...

Anoche pude dar con poder generar el QR en formato BMP, pero hasta ahi no mas!!

Que atento a alguna idea.

Saludos
Antonio.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta Sobre Plantilla Word o Rtf "URGENTE"

Postby cmsoft » Thu Jun 23, 2022 4:43 pm

Antonio, yo acá te había puesto la solucion para insertar un grafico en el rtf
cmsoft wrote:Antonio, creo que aca esta tu solucion.
En el rtf base tienes que poner donde quieres que ponga la imagen con //IMAGEN// para que pueda reemplazarla.
Como te comente, previamente debes generar el QR en formato bmp y grabarlo en disco
Code: Select all  Expand view  RUN

#include "FiveWin.ch"

function Main()
LOCAL oDlg

   DEFINE DIALOG oDlg TITLE "This is a dialog" SIZE 400, 200
   @ 4,  8 BUTTON "Ok" ACTION Merge("C:\FWH\samples\base.rtf","C:\FWH\samples\QR.bmp")
   ACTIVATE DIALOG oDlg CENTERED

return nil


*************************************************
** Armar documento rtf
*************************************************
PROCEDURE Merge(cBase,cImg)
LOCAL oWord , oDoc, cText , cDoc , cImgBase64

cDoc := cBase
cImgBase64 :=  StrToHex(hb_memoread( cImg ) )
cText := MEMOREAD(cDoc)
cText := STRTRAN(ctext,"//IMAGEN//",'{\pict\pngblip\picw1000\pich1000\picwgoal1000\pichgoal1000\bin '+cImgBase64+' }')

   if !GrabaArchivo( 'c:\fwh\samples\antonio_nuevo.rtf', cText )
      MsgAlert("Fallo crear documento, verifique que no este en uso" , "Alerta"  )          
      RETURN
   ENDIF
   if   (oWord := WinWordObj() ) == nil
        MsgAlert( "MS Word no instalado" ,  "Alerta" )        
        else
        oDoc = oWord:Documents:Open('c:\fwh21\samples\antonio_nuevo.rtf')
        if oDoc == nil
           MsgAlert("Fallo crear documento, verifique que no este en uso" , "Alerta"  )          
         endif
   endif  
   oDoc:Application:Visible := .t.
RETURN

*****************
** Grabar archivo
FUNCTION GrabaArchivo(cArchivo,cDato)
LOCAL Han, nBytes, nErr
Han := FCreate(cArchivo)
nBytes := FWRITE(Han,cDato,Len(cDato))
nErr := Ferror()
IF nErr <> 0
   MsgStop("Error " + STR(nErr)+CHR(10)+cArchivo,"Error")
ENDIF
LCLOSE(Han)
RETURN nBytes = Len(cDato)
 

Espero te sirva
User avatar
cmsoft
 
Posts: 1291
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta Sobre Plantilla Word o Rtf "URGENTE"

Postby remtec » Mon Jun 27, 2022 3:51 am

cmsoft wrote:Antonio, yo acá te había puesto la solucion para insertar un grafico en el rtf
cmsoft wrote:Antonio, creo que aca esta tu solucion.
En el rtf base tienes que poner donde quieres que ponga la imagen con //IMAGEN// para que pueda reemplazarla.
Como te comente, previamente debes generar el QR en formato bmp y grabarlo en disco
Code: Select all  Expand view  RUN

#include "FiveWin.ch"

function Main()
LOCAL oDlg

   DEFINE DIALOG oDlg TITLE "This is a dialog" SIZE 400, 200
   @ 4,  8 BUTTON "Ok" ACTION Merge("C:\FWH\samples\base.rtf","C:\FWH\samples\QR.bmp")
   ACTIVATE DIALOG oDlg CENTERED

return nil


*************************************************
** Armar documento rtf
*************************************************
PROCEDURE Merge(cBase,cImg)
LOCAL oWord , oDoc, cText , cDoc , cImgBase64

cDoc := cBase
cImgBase64 :=  StrToHex(hb_memoread( cImg ) )
cText := MEMOREAD(cDoc)
cText := STRTRAN(ctext,"//IMAGEN//",'{\pict\pngblip\picw1000\pich1000\picwgoal1000\pichgoal1000\bin '+cImgBase64+' }')

   if !GrabaArchivo( 'c:\fwh\samples\antonio_nuevo.rtf', cText )
      MsgAlert("Fallo crear documento, verifique que no este en uso" , "Alerta"  )          
      RETURN
   ENDIF
   if   (oWord := WinWordObj() ) == nil
        MsgAlert( "MS Word no instalado" ,  "Alerta" )        
        else
        oDoc = oWord:Documents:Open('c:\fwh21\samples\antonio_nuevo.rtf')
        if oDoc == nil
           MsgAlert("Fallo crear documento, verifique que no este en uso" , "Alerta"  )          
         endif
   endif  
   oDoc:Application:Visible := .t.
RETURN

*****************
** Grabar archivo
FUNCTION GrabaArchivo(cArchivo,cDato)
LOCAL Han, nBytes, nErr
Han := FCreate(cArchivo)
nBytes := FWRITE(Han,cDato,Len(cDato))
nErr := Ferror()
IF nErr <> 0
   MsgStop("Error " + STR(nErr)+CHR(10)+cArchivo,"Error")
ENDIF
LCLOSE(Han)
RETURN nBytes = Len(cDato)
 

Espero te sirva


Hola Amigo Cesar.

Disculpa no haber respondido antes.

Ya había considerado esta opción, luche todo 2 días con insertar el código QR, como resultado, al insertar el QR, se desformaba el RTF generado, ya que era el Qr, mas la imagen de la firma, cuando pensé que ya estaba avanzado, se presento el problema que Windows se bloqueaba, indicándome que la plantilla de RTF se encontraba abierta, lo que me obligaba a resetear el equipo, así con estos problemas, mas la presión por la insistencia del cliente, me vi en la obligación de abortar esta solución e intentar otra opción. Por este motivo no quise seguir solicitando ayuda, el tiempo lo tenia en mi contra, ahora tendré que ver como justifico ante el cliente que la solución que le daré, es diferente a la que me planteo, ya que fue el cliente quien me plateo el uso de RTF.

Saludos.

Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta Sobre Plantilla Word o Rtf "URGENTE"

Postby cmsoft » Mon Jun 27, 2022 1:51 pm

Antonio:
Intuyo que habría que formatear el documento de tal manera que después no se desconfigure.
Si queres contunuar con esa opción comparteme el documento y puedo mirarlo.
User avatar
cmsoft
 
Posts: 1291
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta Sobre Plantilla Word o Rtf "URGENTE"

Postby remtec » Tue Jun 28, 2022 11:05 pm

Hola Cesar.

Como estas?

Muchas gracias por toda tu ayuda.

Hoy he hablado con mi cliente, le argumente que usar una plantilla RTF o Word, como parte del sistema guardada en una carpeta, queda expuesta a que alguien la pueda modificar o eliminar, afectando el funcionamiento del sistema. Lo extraño fuera de que cada cierta apertura, se bloqueaba quedando abierta y no dejando ser usada por el sistema, esto me ocurrió en Windows 10, no encontré un patrón de secuencia donde y porque se quedaba abierta la plantilla, por lo demás, hasta ese momento, solo había un usuario usándola, no me imagino, si simultáneamente era usada por mas de un usuario.

Como puedes ver, invertí demasiado tiempo frente al cliente y termine usando otra forma diferente a la solicitada para responder, con esto, vi una larga distancia y complejidad, frente a otras herramientas y eso nos deja expuesto a perder opciones de desarrollo, el cliente quiere soluciones y no complicaciones, la gran verdad, el cliente siempre tendrá la razón.

Saludos

Antonio.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 42 guests