/**
* 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;
}