Publi

martes, 2 de abril de 2013

Caso Práctico: Visualizar un fichero pdf

Vamos a ver un ejemplo de cómo podemos realizar una aplicación que abra ficheros pdf que tengamos en nuestro dispositivo android. También se explicará cómo visualizar un pdf que se encuentre en una dirección web.

El código está tomado de http://puravidaapps.com/snippets.php#pdf
Haremos unas pequeñas modificaciones para que resulte más entendible para los hispanos-parlantes


Empecemos

Lo primero, creamos un nuevo proyecto, que lo vamos a llamar pdfReader


Vamos a insertar los elementos que nos hará falta para la realización de la aplicación. Quedaría así:

 Podemos observar los elementos que hemos añadido:
  • Un HorizontalArrangement, llamado menu, que contendrá los botones del menú que me permitirán mostrar los pdf pertinentes.
  • Un Button llamado btnVerDesdeDispositivo, que abrirá un fichero pdf que se encuentre en la tarjeta sd.
  • Un Button llamado btnVerDesdeWeb, que abrirá un fichero pdf que se encuentre en una dirección Web.
  • Un componente WebViewer, llamado  WebViewer1, que es un visor web, en el que mostraremos el pdf a través del visor web que nos proporciona google.
  • Un ActivityStarter, llamado ActivityStarter1, que es un componente muy interesante y potente que nos permite abrir aplicaciones externas a nuestro programa (instaladas en nuestro dispositivo móvil), para que realice una operación que nuestro programa no puede realizar. Veremos en posteriores Post más utilidades de este potente componente.En este caso, será el encargado de abrir la aplicación de Lector de PDF que tengamos instalado en el dispositivo (como puede ser Aldiko, Adobe Reader, ...)
  • Un Notifier, llamado Notifier1, que nos permitirá mostrar información a modo de Pop-Up o Cuadro de Diálogo en nuestra aplicación
  • También se ha añadido un componente Web, llamado Web1, que nos permite recoger datos HTTP GET o HTTP POST. Está puesto para posibles mejoras futuras, pero no será utilizado en este programa por ahora.
Pues visto los componentes, vamos a ver su comportamiento en el Block Editor:


Tenemos los códigos de los 2 botones:
  • btnVerDesdeDispositivo.Click: Le decimos la Acción (que será VER), el tipo de Dato (PDF) y su DataUri (dónde se encuentra en nuestra tarjeta SD).
  • btnVerDesdeWeb.Click: Le indicamos la dirección web que se va a visualizar, y en este caso, se utiliza la dirección de Google Docs, que nos permite abrir, entre otros, ficheros PDF (al igual que nos valdría para abrir ficheros .odt de Writer, o .doc de Word, hojas de cálculo, presentaciones Impress o Power Point, y un largo etcétera de tipos de fichero. Podeis ver más información en la página de Google Docs)
Pues nada, sólo nos queda probarlo.

Asegúrate que escribes bien el nombre del fichero pdf y que lo guardas correctamente en la tarjeta SD.

Está probado y funciona muy bien!

Se puede mejora mucho, como utilizando un explorador de ficheros y que pueda abrir el que deseemos, o que tengamos una lista (cargada de una base de datos) con ficheros pdf (o direcciones con pdf) y que carguemos uno u otro según nos interese. O aprovechando las características de Google Docs, que nos permita abrir distintos tipos de fichero (no únicamente pdf).

En fin, que tiene muchas posibilidades de mejora.

Si teneis dudas, no dudeis en consultármelas.

Hasta pronto!

7 comentarios:

  1. Hola Fran,
    Estoy intentando crear una pequeña app que se conecte a un servidor web donde tengo una base de datos. (000webhost)
    El problema es que cuando estoy con el editor de bloques no entiendo muy bien como debo colocar-lo todo y ademas de lògica debe ir una direccion de RESPONSEFILENAME que supongo que debe ir la direccion del archivo php que crea la conexión con la base de datos.
    Podrias darme algun consejo?
    (Y si, sé que los archivos php que se conecten en la base de datos deben ir guardados en el propio servidor (en el caso de 000webhost)).
    Grácias de antemano

    ResponderEliminar
  2. me envia el error 601: no corresponding activity was founf, y no hay mucho apoyo para saber o conocer el problema

    ResponderEliminar
  3. Buenas.
    El error 601 se debe a que la aplicación busca el Activity (programa) que tengas en el dispositivo que abra archivos pdf.
    En otras palabras, es necesario que tengas instalado un programa que pueda leer pdf (tipo Aldiko, Adobe reader).

    ResponderEliminar
    Respuestas
    1. Hola como hacer cuando el fechero pdf se encuentra en nuestro pc, y hay que realizar una applicacion para android.Gracias muchas.

      Eliminar
  4. error 601, no puedo abrir el buton ver desde dispositivo.

    ResponderEliminar
  5. tengo una duda y espero puedas resolvérmela, gracias de antemano:

    he subido un fichero pdf a la aplicación, ejecuto y configuro el activitystarter apra que abra el adobe reader pero quieroq ue abra el fichero pdf, no indicarle una URL o tener la necesidad de tenerlo ya descargado en el dispositivo, me explico?
    gracias de nuevo

    ResponderEliminar
  6. saludos! amigo trato de hacer una app que permita bajar documentos pdf y guardarlos en el cel o sd

    ResponderEliminar