private ArrayList<Bitmap> pdfToBitmaps(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;
pageCount = renderer.getPageCount();
Log.d(TAG, "图片de 张数: " +pageCount);
for (int i = 0; i < pageCount; i++) {
PdfRenderer.Page page = renderer.openPage(i);
// int width = getResources().getDisplayMetrics().densityDpi / 72 * page.getWidth();
// int height = getResources().getDisplayMetrics().densityDpi / 72 * page.getHeight();
int width = mRegionView.getRegionWidth();
int height = mRegionView.getRegionHeight();
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
//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;
}
Android中将pdf转成bitmap
最新推荐文章于 2023-04-28 09:15:01 发布