modificacion de cuadros de texto en documento

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

modificacion de cuadros de texto en documento

Notapor antelo » Vie Nov 06, 2015 4:32 pm

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.
antelo
 
Mensajes: 2
Registrado: Jue Nov 05, 2015 10:14 pm

Re: modificacion de cuadros de texto en documento

Notapor SLV-es » Dom Nov 08, 2015 7:14 pm

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
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: modificacion de cuadros de texto en documento

Notapor antelo » Lun Nov 09, 2015 5:00 pm

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
antelo
 
Mensajes: 2
Registrado: Jue Nov 05, 2015 10:14 pm

Re: modificacion de cuadros de texto en documento

Notapor SLV-es » Mar Nov 10, 2015 12:58 am

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   Expandir vistaContraer vista
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
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados