Mostrar archivo PDF dentro de mi aplicación Android

No puedo averiguar cómo mostrar un archivo PDF dentro de una aplicación de Android. Hasta ahora he descubierto que es posible iniciar una Intent y abrir el PDF utilizando la aplicación predeterminada de Android. Pero quiero ver el archivo PDF directamente dentro de mi aplicación sin salir. Tengo un encabezado y un pie de página en mi diseño – Me gustaría abrir el PDF en el medio. También he encontrado un archivo PdfReader.jar de github.com, pero abre el PDF en una nueva actividad.

Quizás puedas integrar MuPdf en tu aplicación. Aquí se describe cómo hacer esto: Integrar MuPDF Reader en una aplicación

Usted puede descargar el origen de aquí ( Mostrar archivo PDF dentro de mi aplicación Android )

Agregue esta dependencia en su archivo gradle:

 compile 'com.github.barteksc:android-pdf-viewer:2.0.3' 

Activity_main.xml

 <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" xmlns:android="http://schemas.android.com/apk/res/android" > <TextView android:layout_width="match_parent" android:layout_height="40dp" android:background="@color/colorPrimaryDark" android:text="View PDF" android:textColor="#ffffff" android:id="@+id/tv_header" android:textSize="18dp" android:gravity="center"></TextView> <com.github.barteksc.pdfviewer.PDFView android:id="@+id/pdfView" android:layout_below="@+id/tv_header" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout> 

MainActivity.java

 package pdfviewer.pdfviewer; import android.app.Activity; import android.os.Bundle; import android.util.Log; import com.github.barteksc.pdfviewer.PDFView; import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener; import com.github.barteksc.pdfviewer.listener.OnPageChangeListener; import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle; import com.shockwave.pdfium.PdfDocument; import java.util.List; public class MainActivity extends Activity implements OnPageChangeListener,OnLoadCompleteListener{ private static final String TAG = MainActivity.class.getSimpleName(); public static final String SAMPLE_FILE = "android_tutorial.pdf"; PDFView pdfView; Integer pageNumber = 0; String pdfFileName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pdfView= (PDFView)findViewById(R.id.pdfView); displayFromAsset(SAMPLE_FILE); } private void displayFromAsset(String assetFileName) { pdfFileName = assetFileName; pdfView.fromAsset(SAMPLE_FILE) .defaultPage(pageNumber) .enableSwipe(true) .swipeHorizontal(false) .onPageChange(this) .enableAnnotationRendering(true) .onLoad(this) .scrollHandle(new DefaultScrollHandle(this)) .load(); } @Override public void onPageChanged(int page, int pageCount) { pageNumber = page; setTitle(String.format("%s %s / %s", pdfFileName, page + 1, pageCount)); } @Override public void loadComplete(int nbPages) { PdfDocument.Meta meta = pdfView.getDocumentMeta(); printBookmarksTree(pdfView.getTableOfContents(), "-"); } public void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) { for (PdfDocument.Bookmark b : tree) { Log.e(TAG, String.format("%s %s, p %d", sep, b.getTitle(), b.getPageIdx())); if (b.hasChildren()) { printBookmarksTree(b.getChildren(), sep + "-"); } } } } 

No creo que puedas hacer esto fácilmente. Usted debe considerar esta respuesta aquí:

¿Cómo puedo mostrar un documento PDF en una vista Web?

Básicamente, podrás ver un pdf si está alojado en línea a través de documentos de google, pero no si lo tienes en tu dispositivo (necesitarás un lector autónomo para eso)

Usted puede usar el webview para mostrar el pdf dentro de una aplicación, para eso usted tiene que:

  1. Convertir el archivo pdf en html y almacenarlo en la carpeta de activos
  2. Cargar el archivo html a la vista web,

Muchos pdf a html convertidor en línea disponible.

Ejemplo:

  consent_web = (WebView) findViewById(R.id.consentweb); consent_web.getSettings().setLoadWithOverviewMode(true); consent_web.getSettings().setUseWideViewPort(true); consent_web.loadUrl("file:///android_asset/spacs_html.html"); 
  Uri path = Uri.fromFile(file ); Intent pdfIntent = new Intent(Intent.ACTION_VIEW); pdfIntent.setDataAndType(path , "application/pdf"); pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { startActivity(pdfIntent ); } catch (ActivityNotFoundException e) { Toast.makeText(EmptyBlindDocumentShow.this,"No Application available to viewPDF", Toast.LENGTH_SHORT).show(); } } 

Para más referencia haga clic aquí http://androiddhina.blogspot.in/2015/07/how-to-view-pdf-in-android-application.html

  • Después de validar el número de teléfono de Digits por twitter, recibo dos instancias de mi aplicación en actividad reciente
  • ¿Cómo obtener el contenido de una pestaña dentro de TabHost?
  • GetRunningAppProcesses () devuelve los procesos que fueron destruidos
  • Detectar cuando la aplicación está cerrada
  • ¿Es onResume () llamado antes onActivityResult ()?
  • ¿Cuál es la diferencia entre la actividad y el contexto?
  • Cajón de navegación, problemas de concepto
  • ¿Puedo llamar a startActivity () desde dentro onResume ()?
  • ¿Cómo agrego el cajón de navegación a mi código existente?
  • Impedir que la actividad principal se inicie si ya se está ejecutando
  • ¿Cómo debo comunicarme entre las actividades?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.