[RESUELTO] Crear un documento en Writer con Visual Studio

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Raul Montes
Mensajes: 12
Registrado: Lun Dic 18, 2017 4:41 pm

[RESUELTO] Crear un documento en Writer con Visual Studio

Mensaje por Raul Montes »

Quiero crear un documento desde visual studio, su nombre está en un campo de textBox, me da un error en la última linea pero ignoro la causa. Aqui les dejo el código haber si alguien puede decirme el error que tengo.

Private Sub Crear(sender As Object, e As EventArgs)
Dim mNoArgs(1)
Dim oDesktop, oDocument As Object
Dim sUrl As String
Dim oSM As Object
oSM = CreateObject("com.sun.star.ServiceManager")
oDesktop = oSM.createInstance("com.sun.star.frame.Desktop")
sUrl = "file:///c:/comunidades/" & txtComunidad.Text & ".odt"
oDocument = oDesktop.loadComponentFromURL(sUrl, "_blank", 0, mNoArgs(1))
End Sub
Última edición por fornelasa el Mié Abr 18, 2018 12:18 am, editado 2 veces en total.
Razón: Marcar el tema como resuelto correctamente
OpenOffice 4.4 y Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Crear un documento

Mensaje por mauricio »

Hola

Tu pregunta se ha hecho varias veces, ¿ya hiciste una búsqueda?

Para crear nuevos documentos usar en
sUrl = "private:factory/scalc"

Todo esta documentado:
https://wiki.openoffice.org/wiki/ES/Man ... documentos

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Raul Montes
Mensajes: 12
Registrado: Lun Dic 18, 2017 4:41 pm

Resuelto

Mensaje por Raul Montes »

Perdone pero he probado tambien esto

Dim sRuta As String
Dim mArg()
Dim StarDesktop, oNuevoDocumento As Object
sRuta = "private:factory/scalc"
oNuevoDocumento = StarDesktop.loadComponentFromURL(sRuta, "_default", 0, mArg()) y me da error en el mArg()
Si le pongo algún valor en el paréntesis, entonces falla al ejecutarlo.

Yo pretendo crear un documento y pasar el nombre del documento en una variable tal y como venía haciendo mientras tuve el Word, pero como Microsoft me lo ha bloqueado por tres veces ya no tengo intención de instalarlo.
He dedicado mucho tiempo a leer un manual de OpenOffice y probar los ejemplos de una página del mismo pero no he conseguido que ninguno de dichos ejemplos me funcione. Así que si alguien me puede decir claramente que puedo probar quedaría muy agradecido.

Muchas gracias y un saludo
Última edición por Raul Montes el Mar Abr 17, 2018 7:34 pm, editado 1 vez en total.
OpenOffice 4.4 y Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Crear un documento

Mensaje por mauricio »

No respondiste la pregunta... ¿ya hiciste una búsqueda?....

La macro que muestras funcionará bien "dentro" de LibreOffice, NO desde VS, el proceso es un poco diferente, pero... eso ya se ha respondido en estos foros.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Crear un documento

Mensaje por fornelasa »

Yo entendí, por ejemplo:
"Crear un nuevo documento writer con el nombre TuArchivo.odt usando VisualStudio"
Intenta adecuar esta macro:

Código: Seleccionar todo

Sub CrearDoctoWriter()
    Set oServicio = CreateObject("com.sun.star.ServiceManager")
    Set Escritorio = oServicio.createInstance("com.sun.star.frame.Desktop")
    Dim args(1) As Object
    Set args(0) = oServicio.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
    args(0).Name = "Hidden"
    args(0).Value = True
    Set Document = Escritorio.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)
    Call Document.getCurrentController.getFrame.getContainerWindow.setVisible(True)
    Call Document.getCurrentController.getFrame.getComponentWindow.setVisible(True)
    sUrl = "file:///c:/Federico/TuArchivo.odt"
    Call Document.storeAsURL(sUrl, args())
    Set Document = Nothing
    Set Escritorio = Nothing
    Set oServicio = Nothing
End Sub
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Raul Montes
Mensajes: 12
Registrado: Lun Dic 18, 2017 4:41 pm

Re: Crear un documento

Mensaje por Raul Montes »

Ya me pueden perdonar mi forma de actuar pues ando bastante perdido en el funcionamiento del foro. Me introduje en este mundillo hace dos años cuando me jubile y la verdad que me cuesta algo todavía entender algunas cosas con la presteza requerida así que lamento las molestias y si consideran que les causo algún trastorno me lo hacen saber y dejo el foro.

Gracias y un saludo
OpenOffice 4.4 y Windows 10
Raul Montes
Mensajes: 12
Registrado: Lun Dic 18, 2017 4:41 pm

Re: Crear un documento

Mensaje por Raul Montes »

Gracias por la ayuda prestada ahora con está información que me han dado ya lo tengo funcionando.
Me encantaría saber donde se hacen las valoraciones por la información que me han aportado pues no consigo verlo.

Muchas gracias y un saludo
OpenOffice 4.4 y Windows 10
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Crear un documento

Mensaje por fornelasa »

Hola Raul, si consideras que el tema ha sido resuelto por favor marcalo así, resuelto, aquí nos dicen como hacerlo.
https://forum.openoffice.org/es/forum/v ... f=3&t=2668
Y aquí estamos Raul, en lo que te podamos ayudar cuenta con nosotros.

Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Responder