Programación General > Java

 Mostrar Pdf

(1/1)

alemag:
Quiero hacer que mi aplicacion funcione logicamente tanto en windows como en linux.
Tengo una opcion en el menu que muestra un fichero pdf.
El problema es que si es en windows, tengo la opcion siguiente:
Process proc=Runtime.getRuntime().exec("cmd /c start .\\inria-RR-3449.pdf");
y me lo reconoce, pero en Linux no reconoceria esta secuencia.

Como puedo hacer que lo muestre sea cual sea el sistema operativo, no tener que distinguirlo previamente ??

Espero que me haya explicado.
Por favor ayudadme. Gracias.

jpaler:
alemaq... claro q te has explicado...

fijate en este ejemplo de como se crea una URL:

--- Citar --- url = "file:" + System.getProperty( "user.dir" ) + System.getProperty( "file.separator" ) + /mi_imagen.png";
--- Fin de la cita ---

como estoy en windows, yo pude haber puesto:

--- Citar ---url = "file:C:/mi_aplicacion/mi_imagen.png";
--- Fin de la cita ---

...,pero en ves de esto, le pregunto a las propiedades del sistema
para q me den el directorio actual donde estoy y ADEMAS ME DEN
EL SEPARADOR DE ARCHIVOS DEL SISTEMA OPERATIVO DONDE
ME ENCUENTRO.

System.getProperty("file.separator") te devuelve / si estas en windows, o
te devuelve otro valor segun sea el separador de archivos del so
en que estes ejecutando tu aplicacion...

pero ojo, en linux no vas a encontrar eso del... cmd.exe
entonces, de todos modos, previamente has debido haberle preguntado
java ¿en q sistema operativo estoy: windows o linux?
esta pregunta tambien te la puede responder el metodo getPropertiy()
de System... mandandole como parametro "os.name" o algo asi, la
verdad es q no recuerdo bien...

...,De todos modos busca en google acerca de este metodo y de todos
sus posibles parametros.... busca alguno q diga "os" o algo asi...


listo !!!

alemag:
Bueno ya consigo que me detecte el sistema operativo, como puedo hacer ahora para que si es sistema operativo es Linux me abra ese fichero pdf ?
Cual seria la instruccion ???

Gracias.

jpaler:

--- Citar ---Process proc=Runtime.getRuntime().exec("cmd /c start .\\inria-RR-3449.pdf");
--- Fin de la cita ---
segun tu... este codigo habre un .pdf
entonces... si es en windows q te ejecute este codigo y si es en linux... q te
ejecute el codigo q habre el .pdf en linux... ¿cual es ? uhmmm

su -:

--- Cita de: "alemag" --- Quiero hacer que mi aplicacion funcione logicamente tanto en windows como en linux.
Tengo una opcion en el menu que muestra un fichero pdf.
El problema es que si es en windows, tengo la opcion siguiente:
Process proc=Runtime.getRuntime().exec("cmd /c start .\\inria-RR-3449.pdf");
y me lo reconoce, pero en Linux no reconoceria esta secuencia.

Como puedo hacer que lo muestre sea cual sea el sistema operativo, no tener que distinguirlo previamente ??

Espero que me haya explicado.
Por favor ayudadme. Gracias.
--- Fin de la cita ---
Para GNU/Linux, (si tratas de abrirlo con un programa determinado) supongo que seria asi:


--- Código: Text ---Process proc=Runtime.getRuntime().exec("xpdf inria-RR-3449.pdf");  
El problema es que tienes que saber si se quiere abrir con xpdf, adobe-reader, ghostview, gpdf, abiword etc.

Al ser un S.O. tan diferente, lo tenes que hacer por cada uno o podes programar el "render" o "viewer" del pdf pero siempre tendras que tener en mente la forma de paths (Windows => \ y GNU/Linux => /)

Navegación

[0] Índice de Mensajes

Ir a la versión completa