Hola amigos, soy nuevo en Ooo Basic.
A ver si me podeis hechar un mano
Necesito hacer lo siguiente:
Tengo que hacer una macro que desde un documento abierto, me haga un salto de pagina y pegue en esta nueva página el contenido de otro documento ya existente. Vamos, una importacion de documento.
He encontrado rutinas para hacer salto de pagina, pero me falla en la numeracion de la pagina, con respecto a importar el documento, no tengo ni idea.
A ver si alguien me puede ayudar con esta macro.
Gracias por vuestra atención,
[RESUELTO] Ayuda Urgente (Importar documentos)
[RESUELTO] Ayuda Urgente (Importar documentos)
Última edición por Donilo el Vie May 14, 2010 6:21 pm, editado 2 veces en total.
OpenOffice 3.1 Windows XP
Re: Ayuda Urgente (Importar documentos)
Espero que te sirva
Código: Seleccionar todo
sub InsDocumento (sruta as string)
' Inserta en la hoja actual el archivo sruta con ruta absoluta en formato URL
'
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Name"
args2(0).Value = sruta
args2(1).Name = "Filter"
args2(1).Value = "writer8"
dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, args2())
end subOpenOffice 3.2.1 en OpenSuse 11.2 con gnome
http://migasfree.org/
http://migasfree.org/
Re: Ayuda Urgente (Importar documentos)
Muchas gracias rhuerta, con esto que me has mandado, ya casi lo tengo.
Con tu rutina, el texto del segundo documento se inserta en el lugar donde esta el cursor. Ahora solo falta poder hacer un salto de página y que el texto del segundo documento se agregue en la nueva pagina.
Gracias por tu colaboración y a ver si alguien me puede ayudar con lo que me falta.
Con tu rutina, el texto del segundo documento se inserta en el lugar donde esta el cursor. Ahora solo falta poder hacer un salto de página y que el texto del segundo documento se agregue en la nueva pagina.
Gracias por tu colaboración y a ver si alguien me puede ayudar con lo que me falta.
OpenOffice 3.1 Windows XP
Re: Ayuda Urgente (Importar documentos)
Sigo sin conseguir hacer el salto de pagina.
Tengo otra posibilidad. He visto que desde OpenOfiice Write, si pulsas las teclas CTRL+ENTER, se produce un salto de pagina y el cursor aparece en la primera linea de la pagina nueva.
Mi pregunta es la siguiente, ¿sabe alguien hacer una macro que ejecute en mi documento las teclas CTRL+ENTER?
Gracias a todos por vuestra paciencia
Tengo otra posibilidad. He visto que desde OpenOfiice Write, si pulsas las teclas CTRL+ENTER, se produce un salto de pagina y el cursor aparece en la primera linea de la pagina nueva.
Mi pregunta es la siguiente, ¿sabe alguien hacer una macro que ejecute en mi documento las teclas CTRL+ENTER?
Gracias a todos por vuestra paciencia
OpenOffice 3.1 Windows XP
Re: Ayuda Urgente (Importar documentos)
Hola...
La siguiente macro te inserta dos saltos de página al final del documento desde donde la llames, son dos métodos que hacen lo mismo, usa el que más te guste, con esto y lo que te paso el compañero, complementa tu macro...
Saludos
P.D. No es necesario que pongas ayuda urgente, en el título de tu mensaje, con un título y una exposición clara de tu problema es suficiente, gracias.
La siguiente macro te inserta dos saltos de página al final del documento desde donde la llames, son dos métodos que hacen lo mismo, usa el que más te guste, con esto y lo que te paso el compañero, complementa tu macro...
Código: Seleccionar todo
Sub Main
Dim oDoc As Object
Dim oTexto As Object
Dim oCursor As Object
Dim oVCursor As Object
oDoc = ThisComponent
oTexto = oDoc.getText
oCursor = oTexto.createTextCursor
'Movemos el cursor al final del texto
oCursor.gotoEnd( False )
'Insertamos un salto de parrafo
oTexto.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False )
'Al establecer la propiedad PageDescName, le indicamos que queremos un salto de página, usamos el
'mismo nombre del estilo de página actual
oCursor.PageDescName = oCursor.PageStyleName
'Insertas lo que quieras en la nueva página
oCursor.setString( "Prueba 1" )
'Ahora usamos el cursor visual
oVCursor = oDoc.CurrentController.getViewCursor()
'Movemos al final
oVCursor.gotoEnd( False )
'Insertamos un salto de parrafo
oTexto.insertControlCharacter( oVCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False )
'Establecemos el salto de página
oVCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
'Insertamos una prueba
oVCursor.setString( "Prueba 2" )
End SubP.D. No es necesario que pongas ayuda urgente, en el título de tu mensaje, con un título y una exposición clara de tu problema es suficiente, gracias.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: [RESUELTO] Ayuda Urgente (Importar documentos)
Hola Mauricio,
he probado tus dos rutinas, la segunda funciona perfectamente, gracias por tu ayuda.
Gracias otra vez a rhuerta por su colaboración.
Un saludo a todo el foro.
he probado tus dos rutinas, la segunda funciona perfectamente, gracias por tu ayuda.
Gracias otra vez a rhuerta por su colaboración.
Un saludo a todo el foro.
OpenOffice 3.1 Windows XP