/** * pdf转bitmap */ public static ArrayList<Bitmap> pdfToBitmap(Context context, File pdfFile) { ArrayList<Bitmap> bitmaps = new ArrayList<>(); try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_ONLY)); Bitmap bitmap; final int pageCount = renderer.getPageCount(); for (int i = 0; i < pageCount; i++) { PdfRenderer.Page page = renderer.openPage(i); int width = page.getWidth(); int height = page.getHeight(); bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444); //todo 以下三行处理图片存储到本地出现黑屏的问题,这个涉及到背景问题 Canvas canvas = new Canvas(bitmap); canvas.drawColor(Color.WHITE); canvas.drawBitmap(bitmap, 0, 0, null); Rect r = new Rect(0, 0, width, height); page.render(bitmap, r, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); bitmaps.add(bitmap); // close the page page.close(); } // close the renderer renderer.close(); } } catch (Exception ex) { ex.printStackTrace(); } return bitmaps; }