Amigos del Foro
Como puedo solucionar con la Clase TWORD: Me cambia las diminenciones de los cuadros de texto y el interlineado del archivo generado según la clase de Office que tenga instalado en la máquina.
DBarrio
Argentina
![]()
Amigos del Foro
Como puedo solucionar con la Clase TWORD: Me cambia las diminenciones de los cuadros de texto y el interlineado del archivo generado según la clase de Office que tenga instalado en la máquina.
DBarrio
Argentina
![]()
Hola amigo,
Yo tembien he trabajado con TWord y he visto variaciones según la version de word.
Me da la impresión de que TWord es algo limitado en lo que a robustez se refiere. A mi me funciona bien con la versión Word 2003.
Pero si le pongo una anterior o incluso Word 2003 for Students, comienza a hacer cosas extrañas.
Un saludo y suerte.
Estimados
Sigo con el problema y NO se para donde ir con este problema...
Tendré que hacer un PRG de armado según las versiones del Word
Gracias
dbarrio
Argentina
oWord := TOleAuto():New( "Word.Application" )
oWord:Documents:Open( cFile )Gracias por la respuesta
Donde puedo bajar la clase OLE ?
dbarrio
Argentina
> Donde puedo bajar la clase OLE ?
Está incluida tanto en Harbour como en xHarbour
Disculpas... siempre usé la clase TWORD, para completar la ayuda... un ejemplo de como usar esta clase donde la puedo ver...
gracias amigos !!!
dbarrio
Argentina
CON FW+CLIPPER necesitas "linkear" la OLE2.LIB
CON FWH+xHarbour debe funcionar natural.
oWord:=TOleAuto():New( "Word.Application" )
oWord:Documents:Open("C:\DOCTO.DOC")
oTexto := oWord:Selection()
oclip := oWord:Selection()
*PARA REEMPLAZAR UN TEXTO
oTexto:HomeKey(6) //NOS VAMOS AL INICIO DEL DOCUMENTO
oTexto:find:text := "CADENA" //LO QUE VOY A BUSCAR
oTexto:find:Forward = .t. //BUSCAR HACIA ABAJO
if oTexto:find:execute() //EJECUTAR LA BUSQUEDA Y SI FUE TRUE
oTexto:Text := "HOLA MUNDO" //REEMPLAZO EL TEXTO
endif
*PARA COPIAR UN TEXTO
oTexto:HomeKey(6) //NOS VAMOS AL INICIO DEL DOCUMENTO
oTexto:find:text := 'CADENA' //LO QUE VOY A BUSCAR
oTexto:find:Forward = .t. //BUSCAR HACIA ABAJO
if oTexto:find:Execute() //EJECUTAR LA BUSQUEDA Y SI FUE TRUE
oclip:SelectRow() //SELECCIONO EL RENGLON
oclip:Copy() //COPIO LA SELECCION
endif
*PARA PEGAR ALGO QUE COPIE
oclip:paste()
*PARA CORTAR LA SELECCION
oclip:CUT()
oWord:Set("WindowState", 1 ) // Maximizado
oWord:Set("PrintPreview",1)
oZoom:=oWord:get("ActiveWindow"):get("ActivePane"):get("View"):get ("zoom")
oZoom:pagefit := 2
oWord:Visible := .T.
oTexto:End()
oword:end() //Esto NO va en xharbourHa, se me olvidad.
oWord:End(), no funciona.
Substituyelo por
oWord:Quit()
![]()
Javier,
Muchas gracias por tu ayuda con Word.
Date cuenta que ya lo controlas tan bien que estas ayudando a los demas. Muy bien! ![]()
Gracias.....
Como creo un documento nuevo,
Como coloco cuadros de texto (con textos y recuadro) y
Como grabo con colocandoles nombre al documento
dbarrio
Argentina
Que tal amigos.
La Clase Tword usa el componente OLE.
En cuanto a las versiones de Word, efectivamente hay funciones propias que cambian de una versión a otra, lo mismo sucede con Excel.
Las clases TWord y TExcel, están optimizadas para funcionar correctamente con Office 2003.
Mi sugerencia es que identifique que método de la clase no está funcionando correctamte y entonces, solo modifiquen esa parte, dependiendo de la versión.
Office proveé una función para identificar la versión que se está usando.
Saludos.
lo único que no funciona iguar (lo que estoy intentado hacer) con lo cuadro de textos los cuales los hubica distinto de una version a otra.
1) Se puedo identificar desde FWH la versión de Oficce, y
dbarrio
argentina
#define wdFormatDOSText 4
LOCAL oWord := CREATEOBJECT( "Word.Application" )
LOCAL oDoc := oWord:Documents:Open( "test.doc" )
oDoc:SaveAs( "test.txt", wdFormatDOSText )Yo tengo ahora el mismo problema...
Utilizando la clase TWORD el interlineado y los BOX se descontrolan con el OFFICE Versión 2007.
¿ Como lo habeis solucionado vostros ? No manejo OLE y tampoco tengo ejemplos que me sirvan para aprender. Por favor, serÃa de agradecer algún ejemplo.
Mil gracias.
LORENZO.