How to render a PDF file in Android

后端 未结 9 1051
猫巷女王i
猫巷女王i 2020-11-22 02:09

Android does not have PDF support in its libraries. Is there any way to render PDF files in the Android applications?

9条回答
  •  [愿得一人]
    2020-11-22 02:31

    Since API Level 21 (Lollipop) Android provides a PdfRenderer class:

    // create a new renderer
     PdfRenderer renderer = new PdfRenderer(getSeekableFileDescriptor());
    
     // let us just render all pages
     final int pageCount = renderer.getPageCount();
     for (int i = 0; i < pageCount; i++) {
         Page page = renderer.openPage(i);
    
         // say we render for showing on the screen
         page.render(mBitmap, null, null, Page.RENDER_MODE_FOR_DISPLAY);
    
         // do stuff with the bitmap
    
         // close the page
         page.close();
     }
    
     // close the renderer
     renderer.close();
    

    For more information see the sample app.

    For older APIs I recommend Android PdfViewer library, it is very fast and easy to use, licensed under Apache License 2.0:

    pdfView.fromAsset(String)
      .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default
      .enableSwipe(true)
      .swipeHorizontal(false)
      .enableDoubletap(true)
      .defaultPage(0)
      .onDraw(onDrawListener)
      .onLoad(onLoadCompleteListener)
      .onPageChange(onPageChangeListener)
      .onPageScroll(onPageScrollListener)
      .onError(onErrorListener)
      .enableAnnotationRendering(false)
      .password(null)
      .scrollHandle(null)
      .load();
    

提交回复
热议问题