Vamos a realizar como dice el titulo la creación de un Lector de PDFs con Xamarin para después consumirlo en el móvil.

descarga (1)

Pero primero, ¿Qué es Xamarin?

Xamarin es una plataforma que nos permite crear Apps nativas para iOS, Mac, Android, Windows Phone, Windows 8 y más. Además nos permite utilizar solo un lenguaje de programación “C#” y  reducir tanto los perfiles como la cantidad de equipos involucrados en el desarrollo.

Una vez aclarado más o menos lo que es Xamarin y para qué sirve, pasemos a la creación del Lector.

Primero, crearemos un nuevo proyecto Cross-Platform para que así nuestro proyecto sea compatible con Android, IOS y UW(Universal Windows). Le ponemos el nombre que queramos en mi caso lo he llamado PdfViewerPill.

Creamos a continuación una interfaz para llevar el proceso a la aplicación. En mi caso lo he llamado IPdfViewer.

1

Ahora modificamos el archivo MainPage que nos ha creado y en la parte del xaml le ponemos un botón para abrir el pdf.

2

Y en la parte del C# del xaml de MainPage estamos llamando a un servicio de dependencia que utilizara la interfaz creada anteriormente y un open para abrir el archivo que queramos, en mi caso es abrir un archivo a través de un enlace web pero también se podría aplicar para archivos que estén en el propio móvil.

3

Después de esto vamos a la implementación de la interfaz en mi caso en Android. He creado una clase llamada PdfViewer que implementa la interfaz Open y el servicio de dependencia.

4

Una vez creado la clase e implementada, nos vamos a crear la descarga de ese pdf que extraemos de un enlace en un Array de bytes, lo abrimos con File de Android(Java) y utilizaremos los servicios de Stream de Android para escribirlo dentro de ese Stream.

5

Ahora para abrirlo tenemos PdfRenderer que se implemento a partir de la versión 5.0 de Android. Tenemos que inicializar un ParcelFileDescriptor que es al que le vamos a pasar el constructor del pdf. Y por último creamos una pequeña actividad para pasar el pdf y así de forma rápida y sencilla hacerlo.

Ahora vamos a crear la clase PdfActivity. Implementamos el file y el PdfRenderer de la clase anterior se forma estatica(static). Inicializamos el OnCreate de la actividad y creamos un pequeño Layout con RealtiveLayout y el ImageView para poder cargar ese bitmaps en Android. Añadimos la vista y creamos un método extensión donde ira el Pdf.

6

Una vez creado lo anterior, creamos la clase PdfExtensions. Con el OpenPage abrimos una página del pdf. Creamos un bitmap con el tamaño que nos dará la pagina el ancho y alto.

Muy importante CERRAR la página porque sino nos dará problemas a la hora de navegar por el pdf. Con el método Render nos permitirá renderizar en este bitmap en esa pagina del pdf. Y devolvemos este método extensión.

7

Y con esto ya lo tendríamos realizado.

8
9

Muchas gracias por seguir mi tutorial. Espero que os haya servido de ayuda. Os dejo el proyecto en Github y mi LinkedIn.

Autor: Sergio Peña Lancha

Curso: Microsoft MCSA Web Applications + MCSD App Builder

Centro: Tajamar

Año académico: 2018-2019

Github: https://github.com/Sergto/lectorpdfxamarin

Linkedin: https://www.linkedin.com/in/sergio-peña-lancha/

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.