[RESUELTO] Macro abrir documento pdf

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Avatar de Usuario
Cristy
Mensajes: 43
Registrado: Lun Mar 22, 2010 3:24 pm
Ubicación: Lérida (España)

[RESUELTO] Macro abrir documento pdf

Mensaje por Cristy »

Hola a tod@s,

tengo un problema con la siguiente macro (extraida del libro de Mauricio):

Sub AbrirInventarioJunio ()
Dim sRuta As String
Dim mArg ()
Dim oDocumento As Object

sRuta = ConvertToUrl( "file://pe2900/Documentos Compartidos/Departamento de Producción/GestionProduccion/Mantenimiento/Programa/2010/INFORMES 2010/INVENTARIO JUNIO 2010.pdf" )
oDocumento = StarDesktop.loadComponentFromURL( sRuta, " blank", 0, mArg() )

End Sub

El problema es que no hace nada. No me da error pero tampoco me ejecuta el archivo.

Mi intención es que cuando presione un botón de un formulario de mi base, se me abra un archivo ubicado en la red de mi trabajo.

Agradeceré cualquier ayuda




P.D.: La macro la tengo asociada al evento "Botón del ratón soltado"
Última edición por Cristy el Jue Oct 07, 2010 2:11 pm, editado 1 vez en total.
AOO 3.4.1 en Windows XP
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Macro abrir documento pdf

Mensaje por mauricio »

Hola...

¿Quieres solo abrir el PDF o quieres abrirlo en OOo?, para lo primero loadComponentFromURL no es el método correcto, para lo segundo debes de tener instalada y trabajando correctamente la extensión para importar los PDFs a Draw y aun así, no podría asegurarte que los abra pues no lo he probado, pero pruebalo y nos cuentas...

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
Cristy
Mensajes: 43
Registrado: Lun Mar 22, 2010 3:24 pm
Ubicación: Lérida (España)

Re: Macro abrir documento pdf

Mensaje por Cristy »

Hola Mauricio,

Mi intención es solo abrir el pdf (modo lectura) para poder imprimirlo. Es un archivo exportado de un informe de mi base de datos. Aunque estoy planteandome el guardar el informe en writer y así no tendria ningun problema en utilizar la macro de antes, verdad¿?
Que me aconsejais¿?
AOO 3.4.1 en Windows XP
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Macro abrir documento pdf

Mensaje por RMG »

Hola Cristy y Mauricio

Por si esto ayuda, yo cuando quiero imprimir cualquier informe ó archivo en PDF, uso una utilidad (hay varias y es gratuita) que se llama doPDF 7. Esta utilidad lo que hace es que te crea una impresora virtual en PDF y cuando imprimies algo te la muestra como una impresora más, si la seleccionas, te da la opción de imprimir ó guardarlo como archivo PDF.No se si esto sera la solución, pero te puede ayudar.

Saludos
Ramón
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Macro abrir documento pdf

Mensaje por mauricio »

Hola Cristy:

Generar un PDF o un Writer, dependerá de tus necesidades y gustos, si ya tienes el código que te genera el PDF y el reporte es de solo lectura, me parece una buena decisión, para abrir el PDF desde una macro para solo lectura, yo uso el siguiente código:

Código: Seleccionar todo

	Shell ( "evince", 3, sRuta, False )
Tienes que reemplazar evince por el lector de PDF que uses, esto lo uso en Linux, tienes que probar si funciona igual en Windows...
P.D. Ahora que recuerdo en las máquinas virtuales de prueba que tengo, tengo instalado evince para Windows, tal vez te funciona si lo instalas.

Ramón, OOo tiene soporte para generar PDF no es necesario usar una impresora de PDF, pero cuando hay necesidad, en las máquinas de mis clientes uso CreatorPDF que es software libre, de todos modos siempre es bueno tener otra opción...

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
Cristy
Mensajes: 43
Registrado: Lun Mar 22, 2010 3:24 pm
Ubicación: Lérida (España)

Re: Macro abrir documento pdf

Mensaje por Cristy »

Hola chicos,

Bueno...lo he probado de todas las maneras que se me han ocurrido para abrir un archivo pdf y no he dado con la solución...así que creo que me voy a cojer unas vacaciones :cry:

Gracias igualmente chicos, iré probando y cuando tenga la macro funcionando ya la subiré.

Saludos
AOO 3.4.1 en Windows XP
Avatar de Usuario
Cristy
Mensajes: 43
Registrado: Lun Mar 22, 2010 3:24 pm
Ubicación: Lérida (España)

Re: Macro abrir documento pdf

Mensaje por Cristy »

Ya tengo la solución!!! Y la verdad que era más facil de lo que me pensaba...

Abro el archivo a través de las propiedades del botón. Escribo la URL y vualá, el informe se abre perfectamente.

Que ganas tenía de complicarme la vida....

Gracias igualmente por el tiempo prestado!!!
AOO 3.4.1 en Windows XP
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] Macro abrir documento pdf

Mensaje por mauricio »

Hola Cristy...

Con este otro método puedes abrir el PDF (realmente cualquier archivo), se abrirá con el programa que lo tenga asociado en tu sistema operativo...

Código: Seleccionar todo

    sys = CreateUnoService("com.sun.star.system.SystemShellExecute")
    sRuta = "/home/mau/archivo.pdf"
    sys.execute( sRuta, "", 0)
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
dukkhum
Mensajes: 4
Registrado: Lun Ene 23, 2017 12:12 pm

Re: [RESUELTO] Macro abrir documento pdf

Mensaje por dukkhum »

Gracias Mauricio!!!
Llevaba varios dias calentandome la cabeza con esto...
La he adaptado a mis necesidades y me funciona perfectamente.
Solamente he hecho una modificación y es fusionar la definición y la ejecución para que me funcionara:

sys = CreateUnoService("com.sun.star.system.SystemShellExecute")
y
sys.execute( sRuta, "", 0)
sustituidas por
CreateUnoService("com.sun.star.system.SystemShellExecute").execute( sRuta, "", 0)

Muchíiiiiisimas gracias!!!
Me siento eufórico!
Libre Office Versión: 4.2.4.2
Responder