[Gvsig_desarrolladores] ABRIR pdf desde gvSIG
MAU
ingmau00 en gmail.com
Lun Dic 17 12:22:27 CET 2007
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
public class ApplicationLauncher {
public static void main(String args[]){
if(args.length!=1) {
System.out.println("Numero de parametros erroneo forma de uso:
java -cp . ApplicationLauncher fichero|URL");
return;
}
if(args[0].indexOf("http")!=-1) launchURL(args[0]);
else launchDefaultViewer(args[0]);
}
private static String linuxDesktop = null;
private static String getEnv(String envvar){
try{
Process p = Runtime.getRuntime().exec("/bin/sh echo $"+envvar);
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String value = br.readLine();
if(value==null) return "";
else return value.trim();
}
catch(Exception error){
return "";
}
}
private static String getLinuxDesktop(){
//solo se averigua el entorno de escritorio una vez, despues se
almacena en la variable estatica
if(linuxDesktop!=null) return linuxDesktop;
if(!getEnv("KDE_FULL_SESSION").equals("") ||
!getEnv("KDE_MULTIHEAD").equals("")){
linuxDesktop="kde";
}
else if(!getEnv("GNOME_DESKTOP_SESSION_ID").equals("") ||
!getEnv("GNOME_KEYRING_SOCKET").equals("")){
linuxDesktop="gnome";
}
else linuxDesktop="";
return linuxDesktop;
}
public static Process launchURL(String url){
try{
if (System.getProperty("os.name").toUpperCase().indexOf("95") !=
-1)
return Runtime.getRuntime().exec( new String[]{"command.com",
"/C", "start", url} );
if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS")
!= -1)
return Runtime.getRuntime().exec( new String[]{"cmd.exe", "/C",
"start", url} );
if (System.getProperty("os.name").toUpperCase().indexOf("MAC") !=
-1)
return Runtime.getRuntime().exec( new String[]{"open", url} );
if (System.getProperty("os.name").toUpperCase().indexOf("LINUX")
!= -1 ) {
if(getLinuxDesktop().equals("kde"))
return Runtime.getRuntime().exec( new String[]{"kfmclient",
"exec", url} );
else
return Runtime.getRuntime().exec( new String[]{"gnome-open",
url} );
}
}
catch(IOException ioex){System.out.println(ioex);}
return null;
}
public static Process launchDefaultViewer(String filepath){
return launchURL( new File(filepath).getAbsolutePath());
}
}
Con este código puedes lanzar ficheros pasandole una URL y te lo abre con la
aplicacion asociada, funciona con Windows, Linux y Mac.
(funciona por supuesto con pdf, de hecho lo uso para eso).
Espero que te sea útil.
El día 17/12/07, Jordi Grimalt <grimalt_jor en gva.es> escribió:
>
> Hola Cesar:
>
> Una herramienta que te puede servir para enlazar archivos imagen o
> de texto, es el correspondinete al de hiperenlace. Esta herramienta,
> funciona a partir de una ruta configurada por campo seleccionado en su
> .dbf. En esa ruta especificas donde se situa tu archivo de texto o
> imagen, previamente debes configurar desde
> propiedades/hiperenlace/archivos de texto o imagen... Primero abres
> edición en el shp, luego abres la tabla, y en el registro donde quieres
> que aparezca texto u imagen le pones la ruta desde c:/...
>
> Una vez tengas la ruta puesta, cierras la tabla, y verás el icono
> del hiperenlace activo. Clickeas y te vas al polígono seleccionado y
> verás como te aparece la imagen u texto, presente en la ruta asignada.
> Para ver textos, sólo puedes vincular ficheros de texto sin formato,
> txt, rtf.. y para imagenes: gif, jpg, y png.
>
> Espero que te sirva de algo, saludos,
>
>
>
>
> Cesar Escribano escribió:
> > Hola:
> > Me llama un compañero con la siguiente consulta y os la lanzo
> > La envío tanto al foro de desarrolladores como al de usuarios, porque
> > no se cuál es el más idóneo para darle respuesta:
> >
> > Él tiene una shape de puntos, con su dbf asociada.
> > En la dbf tiene un campo que guarda rutas a ficheros .pdf.
> > Él quiere que al pinchar sobre el campo de rutas en uno de los
> > registros, se le abra diréctamente el acrobar reader y le muestre el
> > fichero pdf. Es como tener asociados ficheros .pdf a cada punto
> > gráfico del shape.
> >
> > ¿Este problema tiene solución a nivel de usuario o a nivel de
> > desarrollador?
> > ¿Si la solución es desarrollando...Me podeis indicar en qué dirección
> > trabajar, qué paquetes, clases y métodos son los más idóneos para
> > resolver este porblema ?
> >
> > Muchas gracias.
> >
> > Un saludo.
> > César Escribano.
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores en runas.cap.gva.es
> > http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >
>
>
> --
> Jordi Grimalt Ivars.
> Proyecto gvSIG
> Conselleria de Infraestructuras y Transportes (GVA).
> Valencia (Spain)
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
--
//\/\ A U
/************************************************************************
Miguel Álvarez Úbeda
ingmau00 en gmail.com
************************************************************************/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20071217/2d5bd686/attachment.htm
Más información sobre la lista de distribución gvSIG_desarrolladores