[RESUELTO]Programar Writer con visual basic .Net
[RESUELTO]Programar Writer con visual basic .Net
Hola a todos. Felicitartes por la labor que hacen ayudandonos a los que no sabemos.
Estoy haciendo un programa en Visual basic .Net para generar documentos desde plantillas creadas en OpenOffice 3.2 Writer llevo varios dias buscando y no encuentro información ninguna en la red. Por favor me pueden ayudar.?, es urgente.
En las platillas utilizo campos y marcas de texto, los valores se los tengo que enviar desde la aplicación de Visual basic .Net hasta dichos documentos.
Me valen ejemplos o direcciones donde encontrar información sobre esto.
Muchas gracias por tomarse las molestias y espero una respuesta.
No he solucionado el problema pero Muchas Gracias por tu ayuda. Seguiré buscando un manual o documentación. Cambiar de sistema en estos momentos me es imposible. Tengo el proyecto en fase de entrega con el cliente y no tengo fechas para cambios. Gracias nuevamente. Saludos
Estoy haciendo un programa en Visual basic .Net para generar documentos desde plantillas creadas en OpenOffice 3.2 Writer llevo varios dias buscando y no encuentro información ninguna en la red. Por favor me pueden ayudar.?, es urgente.
En las platillas utilizo campos y marcas de texto, los valores se los tengo que enviar desde la aplicación de Visual basic .Net hasta dichos documentos.
Me valen ejemplos o direcciones donde encontrar información sobre esto.
Muchas gracias por tomarse las molestias y espero una respuesta.
No he solucionado el problema pero Muchas Gracias por tu ayuda. Seguiré buscando un manual o documentación. Cambiar de sistema en estos momentos me es imposible. Tengo el proyecto en fase de entrega con el cliente y no tengo fechas para cambios. Gracias nuevamente. Saludos
Última edición por jrobayna2 el Lun Feb 15, 2010 8:38 pm, editado 1 vez en total.
OpenOffice 3.2.0 en Windows xp
Re: Programar Writer con visual basic .Net
Hola...
A lo más que llegue fue a VB6 y no volví a tocar ni Windows ni VB, pero tal vez estos apuntes (que anexo) de VB te puedan ilustrar. Considera que al no tener una enlace directo con el API de OOo, tienes que conocer muy bien la estructura que quieres usar antes de aplicarla. en los siguientes temas se trata de una u otra forma el asunto:
http://user.services.openoffice.org/es/ ... ilit=basic
http://user.services.openoffice.org/es/ ... asic#p6846
http://user.services.openoffice.org/es/ ... ilit=basic
Por favor, si esto resuelve tu pregunta, edita el título de tu primer mensaje para agregarle al inicio [RESUELTO] de este modo tenemos foros más ordenados. Gracias.
Saludos
A lo más que llegue fue a VB6 y no volví a tocar ni Windows ni VB, pero tal vez estos apuntes (que anexo) de VB te puedan ilustrar. Considera que al no tener una enlace directo con el API de OOo, tienes que conocer muy bien la estructura que quieres usar antes de aplicarla. en los siguientes temas se trata de una u otra forma el asunto:
http://user.services.openoffice.org/es/ ... ilit=basic
http://user.services.openoffice.org/es/ ... asic#p6846
http://user.services.openoffice.org/es/ ... ilit=basic
Por favor, si esto resuelve tu pregunta, edita el título de tu primer mensaje para agregarle al inicio [RESUELTO] de este modo tenemos foros más ordenados. Gracias.
Saludos
- Adjuntos
-
- Hacer reporte desde VB v003.zip
- (110.37 KiB) Descargado 370 veces
______________________________________________
"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]Programar Writer con visual basic .Net
Hola...
No para nada hable de cambio de sistema ni siquiera te lo sugerí, ni nunca lo sugerire, esa debe ser, creo, una consecuencia y decisión personal, lo que mencione es que YO ya no programo en VB y desconozco como aplicar lo que aun se de VB en VB.NET que se, cambio bastante...
Si logras crear el objeto para el manejador de servicios del API de OOo desde VB.NET
Estas dentro de OOo, lo demás es muy sencillo, el ejemplo que te anexe, creo, es bastante ilustrativo...
Saludos
No para nada hable de cambio de sistema ni siquiera te lo sugerí, ni nunca lo sugerire, esa debe ser, creo, una consecuencia y decisión personal, lo que mencione es que YO ya no programo en VB y desconozco como aplicar lo que aun se de VB en VB.NET que se, cambio bastante...
Si logras crear el objeto para el manejador de servicios del API de OOo desde VB.NET
Código: Seleccionar todo
Set oSM = CreateObject("com.sun.star.ServiceManager")Saludos
______________________________________________
"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]Programar Writer con visual basic .Net
Hola de nuevo Mauricio. Efectivamente, no mencionaste ni hiciste sugerencia alguna al "cambio de sistema". Por lo que te he leido por aquí aparentas ser una persona íntegra y seria en tus planteamientos. Lo del "cambio de sistema" es un pensamiento mio en voz alta. Llevo algun tiempo pensando en cambiarme a Linux y abandonar windows definitavemente y todo lo que eso conlleva. Por lo que te pido disculpas por no habereme expresado con claridad en la respuesta anterior.
En cuanto al problema que me atañe te agradezco nuevamente tu interés. Tengo hecho algo así pero incompleto, evidentemente
Verás, soy nuevo en OpenOffice y desconozco casi todo. Por ejemplo, para manipular marcadores (bookmark).
Ademas no sé donde lo leí, pero hay una advertencia que el el código de versiones anteriores de OpenOffice no son válidas para las actuales y con lo que encuentro en la página oficial de OpenOffice no he sido capaz de manipular los marcadores en Writer. No se como manipuar sintacticamente las propiedades ni los eventos.
Saludos
En cuanto al problema que me atañe te agradezco nuevamente tu interés. Tengo hecho algo así pero incompleto, evidentemente
Código: Seleccionar todo
'Crear un service manager remoto de OO
Dim xContext As XComponentContext
xContext = Bootstrap.bootstrap()
Dim xFactory As XMultiServiceFactory
xFactory = DirectCast(xContext.getServiceManager(), XMultiServiceFactory)
'Crear el Desktop
Dim xDesktop As unoidl.com.sun.star.frame.XDesktop
xDesktop = DirectCast(xFactory.createInstance("com.sun.star.frame.Desktop"), unoidl.com.sun.star.frame.XDesktop)
'abriri el documento existente
Dim sUrl As String = String.Empty
Dim sArchivo As String = String.Empty
sArchivo = "D:\proyectos\cliente_OOo\prueba2.odt"
sUrl = PathConverter(sArchivo) ' esto llama a una función que lo convierte a formato: file:///....
Dim xComponentLoader As unoidl.com.sun.star.frame.XComponentLoader
xComponentLoader = DirectCast(xDesktop, unoidl.com.sun.star.frame.XComponentLoader)
Dim arProps() As unoidl.com.sun.star.beans.PropertyValue = New unoidl.com.sun.star.beans.PropertyValue() {}
Dim xComponent As unoidl.com.sun.star.lang.XComponent
xComponent = xComponentLoader.loadComponentFromURL(sUrl, "_blank", 0, arProps)
Dim xTextDocument As unoidl.com.sun.star.text.XTextDocument
xTextDocument = DirectCast(xComponent, unoidl.com.sun.star.text.XTextDocument)
'Crear un objecto text
Dim xText As unoidl.com.sun.star.text.XText
xText = xTextDocument.getText()
Dim xSimpleText As unoidl.com.sun.star.text.XSimpleText
xSimpleText = DirectCast(xText, unoidl.com.sun.star.text.XSimpleText)
'Crear un Xcursor
Dim xCursor As unoidl.com.sun.star.text.XTextCursor
xCursor = xSimpleText.createTextCursor()
'Insertar Texto
'xText.insertString(xCursor, "NUEVA línea del DOCUMENTO." & vbLf, False)
'generar un break en el párrafo
''xSimpleText.insertControlCharacter(xCursor, unoidl.com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
'Insertar otra línea
xText.insertString(xCursor, vbLf + "Manipulando desde Visual Basic .Net !!", False)
Ademas no sé donde lo leí, pero hay una advertencia que el el código de versiones anteriores de OpenOffice no son válidas para las actuales y con lo que encuentro en la página oficial de OpenOffice no he sido capaz de manipular los marcadores en Writer. No se como manipuar sintacticamente las propiedades ni los eventos.
Saludos
OpenOffice 3.2.0 en Windows xp
Re: [RESUELTO]Programar Writer con visual basic .Net
Hola...
Como diría Hamlet -yo no aparento- YO SOY-...
Con las siguiente líneas, ¿te da acceso correcto al API?
Si la respuesta es si, lo demás es sencillo, puedes empezar a empaparte con el API de OOo en mi libro: http://user.services.openoffice.org/es/ ... =50&t=1545
Las respuestas más puntuales publicalas aquí y las vamos resolviendo, ojo, en nuevos hilos, -una pregunta nueva, un nuevo hilo-...
Si NO necesitas realmente el acceso remoto a OOo (puedes acceder a archivos remotos solamente), es mejor que accedas de forma local, como en el ejemplo VB que te mande, tengo una pregunta, ¿como haces uso en VB.NET del createObject usado en VB?, si me ayudas con esto, tal vez pueda prepararte un ejemplo sencillo desde VB:NET, creo, corrígeme, que hay una versión gratuita, no?, para hacer pruebas... mira que me harás pecar de arrancar un Windows (aunque sea virtual, (es broma))...
Con el cambio de versiones generalmente lo que hacen es agregar características, y "generalmente" mantienen compatibilidad hacia atrás, dada la relativa facilidad para actualizar, generalmente recomiendo usar la ultima versión estable...
Saludos
Como diría Hamlet -yo no aparento- YO SOY-...
Con las siguiente líneas, ¿te da acceso correcto al API?
Código: Seleccionar todo
Dim xContext As XComponentContext
xContext = Bootstrap.bootstrap()
Dim xFactory As XMultiServiceFactory
xFactory = DirectCast(xContext.getServiceManager(), XMultiServiceFactory)
'Crear el Desktop
Dim xDesktop As unoidl.com.sun.star.frame.XDesktop
xDesktop = DirectCast(xFactory.createInstance("com.sun.star.frame.Desktop"), unoidl.com.sun.star.frame.XDesktop)Las respuestas más puntuales publicalas aquí y las vamos resolviendo, ojo, en nuevos hilos, -una pregunta nueva, un nuevo hilo-...
Si NO necesitas realmente el acceso remoto a OOo (puedes acceder a archivos remotos solamente), es mejor que accedas de forma local, como en el ejemplo VB que te mande, tengo una pregunta, ¿como haces uso en VB.NET del createObject usado en VB?, si me ayudas con esto, tal vez pueda prepararte un ejemplo sencillo desde VB:NET, creo, corrígeme, que hay una versión gratuita, no?, para hacer pruebas... mira que me harás pecar de arrancar un Windows (aunque sea virtual, (es broma))...
Con el cambio de versiones generalmente lo que hacen es agregar características, y "generalmente" mantienen compatibilidad hacia atrás, dada la relativa facilidad para actualizar, generalmente recomiendo usar la ultima versión estable...
Saludos
______________________________________________
"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]Programar Writer con visual basic .Net
Hola de nuevo...
Explícitamente me refería a esta línea:
¿Como se hace en VB.NET?
Un saludo...
Explícitamente me refería a esta línea:
Código: Seleccionar todo
Set oSM = CreateObject("com.sun.star.ServiceManager")Pues mi amigo, no los pienses más, te platico que la mayoría de mis clientes siguen usando Windows y les doy soporte sin problemas, pero yo como usuario, ya tengo 10 años con Linux y herramientas libres y no tengo problemas al respecto. Incluso ya tengo mis primeros clientes que los he migrado a Linux y herramientas libres con total éxito, pero eso sí, tienes que ir paso a paso, primero tu como usuario...Llevo algún tiempo pensando en cambiarme a Linux y abandonar windows definitavemente y todo lo que eso conlleva
Un saludo...
______________________________________________
"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