shanraisshan shanraisshan - 1 year ago 108
Android Question

Generate Thumbnail of Pdf in Android

I want to generate the image(thumbnail) from pdf file just like done by WhatsApp as shown below

I have tried

  1. PDFBox (

  2. Tika (compile 'org.apache.tika:tika-parsers:1.11')

  3. AndroidPdfViewer (

and still unable to find a way to generate image from pdf.


There is a github issue that deals with this problem ( but this is still unresolved.

Note: I am successfully able to extract image from PDF using PDFBOX


Github issue (

Answer Source

Use PdfiumAndroid as mentioned by barteksc here...

Sample Code for generating pdf thumb

//PdfiumAndroid (
void generateImageFromPdf(Uri pdfUri) {
    int pageNumber = 0;
    PdfiumCore pdfiumCore = new PdfiumCore(this);
    try {
        ParcelFileDescriptor fd = getContentResolver().openFileDescriptor(pdfUri, "r");
        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);
        pdfiumCore.closeDocument(pdfDocument); // important!
    } catch(Exception e) {
        //todo with exception

public final static String FOLDER = Environment.getExternalStorageDirectory() + "/PDF";
private void saveImage(Bitmap bmp) {
    FileOutputStream out = null;
    try {
        File folder = new File(FOLDER);
        File file = new File(folder, "PDF.png");
        out = new FileOutputStream(file);
        bmp.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance
    } catch (Exception e) {
        //todo with exception
    } finally {
        try {
            if (out != null)
        } catch (Exception e) {
            //todo with exception


Include library in build.gradle

compile 'com.github.barteksc:pdfium-android:1.4.0'

For generating Image of any PDF Page:

Call the method generateImageFromPdf(uri) by passing any PDF uri that is stored in your storage.

The method will generate the PDF.png in PDF folder of your storage.