La mayoría de las aplicaciones requieren incluir soporte para mostrar archivos PDF en su aplicación. Entonces, si tenemos que usar varios archivos PDF en nuestra aplicación, prácticamente no es posible agregar cada archivo PDF dentro de nuestra aplicación porque este enfoque puede conducir a un aumento en el tamaño de la aplicación y a ningún usuario le gustaría descargar la aplicación con tal un tamaño enorme Entonces, para abordar este problema relacionado con el tamaño, cargaremos archivos PDF desde el servidor directamente dentro de nuestra aplicación sin guardar esos archivos dentro de nuestra aplicación. La carga de archivos PDF desde el servidor nos ayudará a gestionar el aumento de tamaño de nuestra aplicación. Entonces, en este artículo, veremos cómo cargar archivos PDF desde URL dentro de nuestra aplicación de Android.
Implementación de PDFView
Para agregar esta vista de PDF, estamos usando una biblioteca que nos ayudará a cargar PDF desde la URL.
Implementación paso a paso
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: Agregar dependencia a build.gradle (Módulo: aplicación)
Navegue a Gradle Scripts > build.gradle(Module:app) y agregue la siguiente dependencia en la sección de dependencias.
implementación ‘com.github.barteksc:android-pdf-viewer:2.8.2’
Ahora la opción de sincronización aparecerá en la esquina superior derecha, haga clic en la opción sincronizar ahora.
Paso 3: agregue permiso a Internet en su archivo AndroidManifest.xml
Agregue debajo de dos líneas dentro de su archivo AndroidManifest.xml .
<!–Permiso para internet–>
<usos-permiso android:name=”android.permission.INTERNET” />
<usos-permiso android:name=”android.permission.ACCESS_NETWORK_STATE” />
Paso 4: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--PDF Viewer to display our PDF--> <com.github.barteksc.pdfviewer.PDFView android:id="@+id/idPDFView" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
Paso 5: trabajar con el archivo MainActivity.java
Vaya a la aplicación > java > el nombre del paquete de su aplicación > archivo MainActivity.java. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.os.AsyncTask; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.github.barteksc.pdfviewer.PDFView; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class MainActivity extends AppCompatActivity { // creating a variable // for PDF view. PDFView pdfView; // url of our PDF file. String pdfurl = "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initializing our pdf view. pdfView = findViewById(R.id.idPDFView); new RetrivePDFfromUrl().execute(pdfurl); } // create an async task class for loading pdf file from URL. class RetrivePDFfromUrl extends AsyncTask<String, Void, InputStream> { @Override protected InputStream doInBackground(String... strings) { // we are using inputstream // for getting out PDF. InputStream inputStream = null; try { URL url = new URL(strings[0]); // below is the step where we are // creating our connection. HttpURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); if (urlConnection.getResponseCode() == 200) { // response is success. // we are getting input stream from url // and storing it in our variable. inputStream = new BufferedInputStream(urlConnection.getInputStream()); } } catch (IOException e) { // this is the method // to handle errors. e.printStackTrace(); return null; } return inputStream; } @Override protected void onPostExecute(InputStream inputStream) { // after the execution of our async // task we are loading our pdf in our pdf view. pdfView.fromStream(inputStream).load(); } } }
Nota: si ha actualizado a Android Studio a 4.0 o posterior, es posible que se encuentre con el siguiente error
Execution failed for task ':app:stripDebugDebugSymbols'. NDK at ~/Library/Android/sdk/ndk-bundle did not have a source.properties fileConsulte esto para corregir el error.
Producción:
Consulte el proyecto: https://github.com/ChaitanyaMunje/GFGImageSlider/tree/PDFViewer
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA