【发布时间】:2019-01-26 05:59:37
【问题描述】:
我正在尝试将 PDF 转换为图像位图.. 为此我使用下面的代码。
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();
}
当我将 ParcelFileDescriptor 发送到 pdfRenderer 时,它会抛出异常
java.io.IOException: cannot create document. Error: 3
我从 GitHub 问题中找到了一些链接。 https://github.com/googlesamples/android-PdfRendererBasic/issues/15 但这对我没有帮助。
接受任何帮助。 谢谢。
【问题讨论】:
-
parcelFileDescriptor = getContentResolver().openFileDescriptor( uri, "r");该文件是否已经存在? -
pdfFile是什么?请告诉我们完整路径。 -
是的.. 文件已经存在并且没有损坏。在 pdf 查看器中正确打开
-
请告诉
uri.toString()的值。 -
@greenapps 请参阅已编辑的 ans。我在代码顶部添加了 pdf 文件路径
标签: android pdfrenderer parcelfiledescriptor