[RESUELTO] Ayuda Urgente (Importar documentos)

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Donilo
Mensajes: 14
Registrado: Jue May 13, 2010 11:54 am

[RESUELTO] Ayuda Urgente (Importar documentos)

Mensaje por Donilo »

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,
Última edición por Donilo el Vie May 14, 2010 6:21 pm, editado 2 veces en total.
OpenOffice 3.1 Windows XP
Avatar de Usuario
rhuerta
Mensajes: 51
Registrado: Vie Nov 21, 2008 8:06 am

Re: Ayuda Urgente (Importar documentos)

Mensaje por rhuerta »

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 sub
OpenOffice 3.2.1 en OpenSuse 11.2 con gnome
http://migasfree.org/
Donilo
Mensajes: 14
Registrado: Jue May 13, 2010 11:54 am

Re: Ayuda Urgente (Importar documentos)

Mensaje por Donilo »

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.
OpenOffice 3.1 Windows XP
Donilo
Mensajes: 14
Registrado: Jue May 13, 2010 11:54 am

Re: Ayuda Urgente (Importar documentos)

Mensaje por Donilo »

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
OpenOffice 3.1 Windows XP
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Ayuda Urgente (Importar documentos)

Mensaje por mauricio »

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...

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 Sub
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.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Donilo
Mensajes: 14
Registrado: Jue May 13, 2010 11:54 am

Re: [RESUELTO] Ayuda Urgente (Importar documentos)

Mensaje por Donilo »

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.
OpenOffice 3.1 Windows XP
Responder