Adobe Reader con parámetros


([N3] pacosatu) #1

Hola.

Si necesitas abrir PDF’s con Adobe Reader y con una determinada configuración del Interface puedes usar los parámetros admitidos cuando se lanza con línea de comandos:
<Path de Adobe Reader> /A “<parámetror>=<valor>&<parámetror>=<valor>…” “<Path del fichero PDF>”

Podéis ver los parámetros en:
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf

En Velneo tenemos 3 comandos para ejecutar documentos. Descartamos “Ejecutar documento” porque no admite parámetros. Nos quedan los comandos “Ejecutar comando del sistema” y “Lanzar aplicación”, el primero de ellos lo descartamos porque muestra la ventana negra de comandos. El comando “Lanzar aplicación” lo usaremos de la siguiente manera:


Lanzar aplicación ( No esperar, “\c” + $APP_PATH_ADOBEREADER@proyecto.dat + “\c” , “/A \czoom=100&navpanes=0\c \c” + CPATH_PDF + “\c”, NRETORNO)

  • $APP_PATH_ADOBEREADER@proyecto.dat contiene el Path completo de la Aplicación Adobe Reader.
  • zoom=100&navpanes=0 mostrará el documento al 100% de zoom y con los paneles de navegación ocultos.
  • CPATH_PDF contiene el Path completo del fichero PDF.

Nos surge un problema, no sabemos de antemano el Path completo de Adobe Reader porque puede cambiar de un equipo a otro e incluso puede estar instalado el Adobe Acrobat como visor por defecto de PDF’s.

Tenemos que habilitar en la configuración de nuestra aplicación un procedimiento que obtenga y guarde el path de Adobe Reader.

Os pongo lo que yo he implememtado para S.O. Windows utilizando una macro AutoIt3.


Rem ( PATH EJECUTABLE ADOBE READER. Obtiene el Path de Adobe Reader o Acrobat para poder ejecutarlo con parámetros )
Rem ( Leemos la clave de Registro HKEY_CURRENT_USER\Software\Velneo\MIS_APPS y el valor de Path_PDF )
// Rem ( ------------------------------------------------------ )
If ( 1 )
Configuración del sistema: Leer cadena de texto ( “Velneo”, “MIS_APPS”, “Path_PDF”, CPATH_EXE )
¿Existe fichero? ( CPATH_EXE, LOK, )
If ( LOK = 0 )
Rem ( La función AU3 guardará el Path de Adobe Reader o Acrobat en la rama del registro )
Set ( LOK, fun:FUN_AU3_EXT_APP_ABRIR@MisFunciones.app(“PDF”) )
If ( LOK = 1 )
Configuración del sistema: Leer cadena de texto ( “Velneo”, “0PS_APPS”, “Path_PDF”, CPATH_EXE )
Modificar variable global ( APP_PATH_ADOBEREADER@proyecto, CPATH_EXE, )
// Mensaje ( “Ruta de Adobe Reader/Acrobat: " + $APP_PATH_ADOBEREADER@0PS__Sistema_dat.dat, Información, , )

La función FUN_AU3_EXT_APP_ABRIR obtiene el Path de Adobe reader usando la API de Windows pero podéis utilizar el método que cada uno tenga establecido. Usamos el registro de Windows para intercambiar información entre Velneo y la macro.
Os pongo el código de la macro en una fórmula JavaScript porque personalmente odio el editor nativo de fórmulas de Velneo.

function codigo() {
return ‘#include <File.au3>\n
#include <WinAPI.au3>\n
;~ Macro AU3. Obtiene el Path de la Aplicación que ejecuta una determinada extensión\n
;~ Parámetro EXTENSION. Necesitamos un fichero en local con la misma extensión\n
Local $result = 0\n
Local $sExtension = "’ + theRegister.varToString(“EXTENSION”) + '”\n
Local $sTempFile = _TempFile(@TempDir,"~","." & $sExtension)\n
FileWrite($sTempFile, " “)\n
Local $exe = WinAPI_FindExecutable($sTempFile)\n
FileDelete ($sTempFile)\n
If StringLen($exe) > 0 Then
;~ Escribimos en el registro el Path de la Aplicación\n
Local $result = RegWrite(“HKEY_CURRENT_USER\Software\Velneo\MIS_APPS”, "Path
” & $sExtension, “REG_SZ”, $exe)\n
EndIf
Exit $result\n

}
codigo()

Una aplicación interesante es poder abrir un documento PDF en una determinada página o marca. También podemos buscar una palabra del texto y marcarla para que se muestre en pantalla. Ahora solo falta que vReport permita generar tablas de contenido y marcas desde el diseñador y que se integren en el documento PDF. Imaginad un listado PDF de 500 páginas de estadísticas de la Aplicación y que el usuario pudiera abrir el documento desde Velneo en un determinada página.

Podéis votar la Idea https://velneo.zendesk.com/entries/27758553-Nuevo-Comando-de-Instrucci%C3%B3n-Set-Texto-Preformateado para facilitarnos la vida en fórmulas con texto preformateado.

Saludos
Paco Satué