Cómo Programar Un Completo Lector PDF en Android

05/04/2019Artículo original

¿Conoces el SDK PlugPDF? Esta API te permite trabajar con documentos PDF de forma nativa, tanto en Android como en iOS.

En este tutorial te vamos a enseñar cómo poner en tus apps Android un completo lector y visor de documentos PDF, totalmente funcional, que incluye una barra de navegación con todo lo siguiente:

  • Bloquear la rotación del documento
  • Elegir el modo de visionado: 1, 2 o 4 páginas por pantalla
  • Brillo
  • Búsqueda de texto
  • Insertar anotaciones: subrayar o tachar texto, dibujar a mano alzada, etc.

Cómo Programar Un Completo Lector PDF en AndroidCómo Programar Un Completo Lector PDF en AndroidCómo Programar Un Completo Lector PDF en AndroidCómo Programar Un Completo Lector PDF en AndroidCómo Programar Un Completo Lector PDF en AndroidCómo Programar Un Completo Lector PDF en AndroidCómo Programar Un Completo Lector PDF en Android

¡Ya verás que con PlugPDF es muy sencillo! Haremos lo anterior con un par de líneas de código. Asumimos, eso sí, que cuentas con conocimientos básicos en programación Android.

Para ampliar esta información, no dudes en visitar la serie de posts titulada Building Android PDF Apps, allí encontrarás ejemplos más sencillos que te ayudarán a seguir este how-to con más facilidad.

Consigue tu licencia PlugPDF gratis

El primer paso para poner en marcha tus aplicaciones PlugPDF es conseguir una licencia de uso.

En este enlace puedes conseguir una licencia de prueba durante 30 días. Por otro lado, si eres un desarrollador independiente (indie), en este otro enlace tienes a tu disposición una licencia indie para uso personal, sin límite de tiempo, que incluye todas las características del SDK.

  Variables y tipos de datos en Java: tipos simples, clases y tipos envoltorio o wrapper

Cuando solicitas tu licencia de uso, entonces ya te puedes descargar el SDK, y luego, solo tienes que inicializarlo en tu aplicación; por ejemplo, en el método onCreate de tu actividad principal.

@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// init PlugPDFtry{PlugPDF.init(getApplicationContext(),"YOUR_PLUGPDF_LICENSE_HERE");}catch(PlugPDFException.InvalidLicenseex){Log.e("PlugPDF","Invalid license exception",ex);}// your code here...}

En aplicaciones Android más complejas que cuentan con varias clases, es recomendable ejecutar el método PlugPDF.init dentro de una clase que extienda de Application para que dicha inicialización tenga un alcance global, y no tengas que ejecutarla en todas y cada una de las actividades de tu app.

Crear un proyecto Android nuevo e importar PlugPDF

Ahora vamos a crear un proyecto Android nuevo que llamaremos SimpleDocumentReader, y justo a continuación, importaremos PlugPDF como un módulo nuevo. La estructura de la aplicación tiene que quedar como sigue.

Cómo Programar Un Completo Lector PDF en Android

No olvides añadir la dependencia compile project(‘:plugpdf’) en tu archivo build.gradle (Module: app)

dependencies{compilefileTree(dir:'libs',include:['*.jar'])compile'com.android.support:appcompat-v7:22.0.0'compileproject(':plugpdf')}

¿Qué viene con la librería PDF?

El SDK incorpora esta jerarquía de clases Java con la funcionalidad PDF que puedes esperar en un API de estas características: añadir anotaciones, crear documentos PDF, añadir propiedades a tus documentos PDF, poner páginas e imágenes, etc.

  Los grandes bulos sobre tecnología

Pero además de lo anterior, PlugPDF viene con una serie de clases Java que tienen como objetivo facilitar la vida al desarrollador. Estas clases están disponibles en com.epapyrus.plugpdf y son las siguientes:

  • AnnotSettingMenu
  • OutlineAdapter
  • PasswordDialog
  • SimpleDocumentReader
  • SimpleDocumentReaderListener
  • SimpleReaderControlPanel
  • SimpleReaderControlView
  • SimpleReaderFactory

Concretamente, la clase estrella de la lista anterior, por decirlo de alguna manera, es SimpleDocumentReader. Esta clase es la que implementa toda la funcionalidad que muestran las figuras 1-7 anteriores.

Para más detalles, puedes echar un vistazo al código fuente del archivo SimpleDocumentReader y también consultar la documentación de PlugPDF, así entenderás rápidamente cómo se utiliza tal o cual clase del SDK.

Mi primer editor PDF nativo

Entonces, dicho todo lo anterior, tan solo hay que instanciar un objeto de tipo SimpleDocumentReader, tal y como muestra el código que viene a continuación.

packagecom.mycompany.simpledocumentreader;importandroid.app.Activity;importandroid.content.Intent;importandroid.net.Uri;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;importcom.epapyrus.plugpdf.SimpleDocumentReader;importcom.epapyrus.plugpdf.SimpleDocumentReaderListener;importcom.epapyrus.plugpdf.SimpleReaderFactory;importcom.epapyrus.plugpdf.core.PlugPDF;importcom.epapyrus.plugpdf.core.PlugPDFException;importcom.epapyrus.plugpdf.core.viewer.DocumentState;publicclassMainActivityextendsActivity{privateSimpleDocumentReadermReader;privateButtonselectFileButton;finalintACTIVITY_CHOOSE_FILE=1;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// init PlugPDFtry{PlugPDF.init(getApplicationContext(),"YOUR_PLUGPDF_LICENSE_HERE");}catch(PlugPDFException.InvalidLicenseex){Log.e("PlugPDF","Invalid license exception",ex);}selectFileButton=(Button)findViewById(R.id.selectFileButton);selectFileButton.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewarg0){IntentchooseFile=newIntent(Intent.ACTION_GET_CONTENT);chooseFile.setType("application/pdf");startActivityForResult(Intent.createChooser(chooseFile,"Choose a file"),ACTIVITY_CHOOSE_FILE);}});}@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){// Check which request we're responding toif(requestCode==ACTIVITY_CHOOSE_FILE){// Make sure the request was successfulif(resultCode==RESULT_OK){// get the file uriUrifileUri=data.getData();// launch the PDF viewermReader=SimpleReaderFactory.createSimpleViewer(this,listener);mReader.openFile(fileUri.getPath(),"");}}}/** * listener receiving event notifications on completion of PDF document loading on a {@link SimpleDocumentReader} */privateSimpleDocumentReaderListenerlistener=newSimpleDocumentReaderListener(){@OverridepublicvoidonLoadFinish(DocumentState.OPENstate){Log.i("PlugPDF","[INFO] Open "+state);}};@OverrideprotectedvoidonDestroy(){if(mReader.getDocument()!=null){mReader.save();mReader.clear();}super.onDestroy();}}

Como ves, la magia está en estas dos líneas:

// launch the PDF viewermReader=SimpleReaderFactory.createSimpleViewer(this,listener);mReader.openFile(fileUri.getPath(),"");

¡Ya lo tenemos! Esperamos que hayas podido correr este lector PDF nativo en tu Android, en pocos minutos. Si te gustó este post estás invitado/a a compartirlo con tus amigos/as. Muchas gracias.

  Configurar Eclipse/Java para programadores de Visual Studio/C#
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad