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.
- ¿Cómo comprobar si una actividad es la última en la pila de actividades de una aplicación?
- Aclaración sobre la documentación de Android
- Cómo agregar un texto largo con muchos párrafos en string.xml en android
- Comunicación Android de servicio a actividad a alta frecuencia: ¿la mejor opción?
- ¿Cuál es la "mejor práctica" para cambiar de "Actividades" a "Fragmentos" para aplicaciones de Android?
- Android: Fecha de paso en putExra
- Iniciar una segunda actividad dentro de un TestCase (que no es la actividad bajo prueba)
- Después de ASyncTask.execute () do x () de Activity
- Personalizar diálogo de acción rápida para android
- Cómo implementar el diseño de múltiples ventanas (como el navegador predeterminado) (Editor con varios archivos abiertos)
- ¿Qué sucede cuando hace clic en el icono de inicio de una aplicación?
- Android envía evento táctil a la actividad principal cuando se muestra el cuadro de diálogo
- El modo de inmersión de Android se restablece al cambiar la 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:
- Convertir el archivo pdf en html y almacenarlo en la carpeta de activos
- 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
- ¿Cómo envío sms a varios números de teléfono en android
- Cambiar categoría de PreferenciaCategoría: título