modificacion de cuadros de texto en documento

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
antelo
Mensajes: 2
Registrado: Jue Nov 05, 2015 10:14 pm

modificacion de cuadros de texto en documento

Mensaje por antelo »

Mi aplicacion necesita sustituir en un documento plantilla (.DOC) determinadas etiquetas por valores reales. Por ejemplo <Nombre> por Juan. Cuando la etiqueta esta dentro de un cuadro de texto (text frame), entonces se sustituye por una imagen. Todo lo tengo programado usando Server Automation de Microsoft. Pero me gustaria que trabajara tambien con OpenOffice. Ya he resuelto sustituir las etiquetas que aparecen en el texto. No asi, las etiquetas dentro de los cuadros de texto.
Puede alguien ayudarme a encontrar la solucion? Gracias por anticipado.
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: modificacion de cuadros de texto en documento

Mensaje por SLV-es »

Hola

¿ Has buscado en el foro por macro insertar imagen ?

Creo que el tema ya fué tratado hace tiempo

Saludos


Para los nuevos usuarios del foro:
Te damos la bienvenida a este foro. Esperamos poder ayudarte y que tus aportaciones ayuden también a otros.
Dado que recien has desembarcado en esta costa, te recomiendo que leas la Guía de supervivencia del foro :super: .
Si con las respuestas obtenidas consideras que se ha dado solución a tu consulta :), por favor, marca el tema como [RESUELTO],
(aunque la solución obtenida sea que no la hay :(, o hayas resuelto tú mism@ el problema :bravo: ).
Si no sabes cómo, por favor, lee Como marcar como [RESUELTO] un tema.

Gracias por participar en el foro y ayudar a que todo esté ordenado.
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
antelo
Mensajes: 2
Registrado: Jue Nov 05, 2015 10:14 pm

Re: modificacion de cuadros de texto en documento

Mensaje por antelo »

Gracias por la sugerencia. Yo había visto esta solución, pero resuelve la segunda parte del problema. ?Como buscar las etiquetas dentro de los cuadros de texto?
OpenOffice 4.1.1, Windows 7
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: modificacion de cuadros de texto en documento

Mensaje por SLV-es »

Creo que una caja de texto es un objeto TextShape.

Supongo que una forma será recorrer todos los objetos TextShape del documento, abrir un cursor de texto y buscar/sustituir con el cursor

Quizás esto pueda serte útil:

Código: Seleccionar todo

Sub Main

	Dim oDoc as Object
	Dim oSlideList as Object
	Dim oSlide as Object
	Dim oTextBox as object
	Dim oCursor as Object
	Dim oCntrlChar as Object
	Dim oSize as Object
	Dim oPoint as Object

	' Get Access to this Impress Document
	oDoc = ThisComponent
	
	' Get a List of all Slides (DrawPages)
	oSlideList = oDoc.getDrawPages()
	
	' Get the First Slide (DrawPage)
	oSlide = oSlideList.getByIndex(0)
	
	' Create the Text Box
	oTextBox = oDoc.createInstance("com.sun.star.drawing.TextShape")
	
	' set the Size of the Text box
	oSize = createUnoStruct( "com.sun.star.awt.Size" ) 	
	oSize.Height = 5000
	oSize.Width = 10000
	oTextBox.SetSize(oSize)
	
	' Set the X,Y Coordinate of the Upper Left Corner
	oPoint = createUnoStruct( "com.sun.star.awt.Point" ) 
	oPoint.X = 2000
	oPoint.Y = 2000
	oTextBox.setPosition(oPoint)
	
	' Add the Text box to the Slide
	oSlide.add(oTextBox) 
	
	' Create a Cursor to Write the Text
	oCursor = oTextBox.createTextCursor 
	
	' Set the size of the Cursor
	oCursor.CharHeight = 12
	
	' Write a Line of Data
	oTextBox.insertString(oCursor, "This is my first line of text", true)

	' Insert a Carriage Return
	oCntrlChar = com.sun.star.text.ControlCharacter
	oTextBox.insertControlCharacter(oCursor, oCntrlChar.LINE_BREAK, False)

	' Write a second Line of Data
	oTextBox.insertString(oCursor, "This is my Second line of text", true)

End Sub
Es para Impress, pero ilustra como trabajar con un TextShape y un cursor.

Fuente: http://www.experts-exchange.com/Softwar ... 03730.html
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Responder