4

I am working with pdf files, I want to implement page viewer to my pdf file. My idea is to convert pdf file into bmp images, and then to use viewPager. but I am stuck in converting pdf to bitmap. Any suggestions?

Anil Kolluri
  • 64
  • 1
  • 3
  • [this](http://stackoverflow.com/a/10071012/1289716) and [this](http://stackoverflow.com/q/10299839/1289716) may help you – MAC Jul 30 '12 at 12:18
  • I suggest see this link http://stackoverflow.com/questions/8814758/need-help-to-convert-a-pdf-page-into-bitmap-in-android-java . Hope that helps! – Debora Martins Apr 15 '13 at 18:09

2 Answers2

0

Include dependencies in your gradle

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

Use following function to convert PDF page to bitmap image

private  Bitmap generateImageFromPdf(String assetFileName, int pageNumber, int width, int height) {

    PdfiumCore pdfiumCore = new PdfiumCore(mActivity);
    try {
        File f = FileUtils.fileFromAsset(mActivity, assetFileName);
        ParcelFileDescriptor fd = ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
        PdfDocument pdfDocument = pdfiumCore.newDocument(fd);
        pdfiumCore.openPage(pdfDocument, pageNumber);
        //int width = pdfiumCore.getPageWidthPoint(pdfDocument, pageNumber);
        //int height = pdfiumCore.getPageHeightPoint(pdfDocument, pageNumber);
        Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        pdfiumCore.renderPageBitmap(pdfDocument, bmp, pageNumber, 0, 0, width, height);
        //saveImage(bmp, filena);
        pdfiumCore.closeDocument(pdfDocument);

        return bmp;
    } catch(Exception e) {
        //todo with exception
    }
    return null;
}
Atif Mahmood
  • 8,882
  • 2
  • 41
  • 44
0

this is a way to render pdf to image its take 20 to 25 seconds to render pdf file to image its working in android 10 , android 9 and all lower versions

private  void generateImageFromPdf() {

        try {
            PDDocument doc=PDDocument.load(new File(fileurl));
            PDFRenderer pdfRenderer = new PDFRenderer(doc);
            Bitmap bffim = pdfRenderer.renderImageWithDPI(0, 100, Bitmap.Config.RGB_565);
            String fileName = "image-" + 0 + ".png";

            img.setImageBitmap(bffim);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
Adnan Bashir
  • 645
  • 4
  • 8