Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I am trying to convert PDF To image Bitmap.. and for that I am Using this Code Below.
pdfFile = Environment.getExternalStorageDirectory().toString() + "/" + "imagepdf.pdf"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
Uri uri = MainActivity.getUriFromFile(PdfExtrectorActivity.this,new File(pdfFile));
final ParcelFileDescriptor parcelFileDescriptor = getContentResolver().openFileDescriptor(
uri, "r");
final FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
pdfRenderer = new PdfRenderer(parcelFileDescriptor);
} catch (IOException e) {
e.printStackTrace();
Bitmap bitmap;
final int pageCount = pdfRenderer.getPageCount();
for (int i = 0; i < pageCount; i++) {
PdfRenderer.Page page = pdfRenderer.openPage(i);
bitmap = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
// close the page
page.close();
// close the renderer
pdfRenderer.close();
when I send ParcelFileDescriptor to pdfRenderer it will throws exception
java.io.IOException: cannot create document. Error: 3
I found Some Link from GitHub issues.
https://github.com/googlesamples/android-PdfRendererBasic/issues/15
but it wont help me.
Any Help Accepted.
thank you.
–
my Problem solved with this solutions to convert Image Bitmap from PDF which are in SD card.,
And this will worked fine for me
File file = new File(getCacheDir(), PDF_FILE_NAME);
//if (!file.exists()) {
// Since PdfRenderer cannot handle the compressed asset file directly, we copy it into
// the cache directory.
//InputStream asset = context.getAssets().open("imagepdf.pdf");
FileInputStream fileInputStream = null;
FileOutputStream output = null;
try {
fileInputStream = new FileInputStream( Environment.getExternalStorageDirectory().toString() + "/imagepdf.pdf");
output = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
final byte[] buffer = new byte[1024];
int size;
while ((size = fileInputStream.read(buffer)) != -1) {
output.write(buffer, 0, size);
fileInputStream.close();
output.close();
ParcelFileDescriptor mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
// This is the PdfRenderer we use to render the PDF.
PdfRenderer renderer = null;
if (mFileDescriptor != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
renderer = new PdfRenderer(mFileDescriptor);
Bitmap bitmap;
final int pageCount = renderer.getPageCount();
for (int i = 0; i < pageCount; i++) {
PdfRenderer.Page page = renderer.openPage(i);
// say we render for showing on the screen
bitmap = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
myImageBitmap.add(bitmap);
// do stuff with the bitmap
// close the page
page.close();
// close the renderer
renderer.close();
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.