gpt4 book ai didi

android - 在 Android 中从 URI 渲染 PDF?

转载 作者:行者123 更新时间:2023-12-05 06:36:10 24 4
gpt4 key购买 nike

我在我的应用程序中使用 Android Render,但我在从 URI 获取 PDF 文件时遇到了问题。

这是我获取文件 URI 的方法:

 public void performFileSearch() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);

intent.addCategory(Intent.CATEGORY_OPENABLE);

intent.setType("application/pdf");

startActivityForResult(intent, READ_REQUEST_CODE);
}

@Override
public void onActivityResult(int requestCode, int resultCode,
Intent resultData) {
if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
uri = null;
if (resultData != null) {
uri = resultData.getData();
pageNumber = 0;
render(uri);

}
}
}

然后在 render(Uri uri) 中:

private void render(Uri uri) {

try {
img = (ImageView) findViewById(R.id.image);
int width = img.getWidth();
int height = img.getHeight();
previous.setText(uri.toString());
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
File file = new File(uri.getPath());
PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));

if(currentpage<0){
currentpage =0;

}else if(currentpage>renderer.getPageCount()){


currentpage = renderer.getPageCount() -1;

Matrix matrix = img.getImageMatrix();

Rect rect= new Rect(0,0, width , height);

renderer.openPage(currentpage).render(bitmap,rect,matrix , PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY );

img.setImageMatrix(matrix);
img.setImageBitmap(bitmap);
img.invalidate();

}


} catch (Exception e) {

e.printStackTrace();
Toast.makeText(getApplicationContext(), "Nope", Toast.LENGTH_LONG);

}

}

Activity 只显示白屏。我猜问题出在从 URI 创建文件。你知道如何从我得到的 URI 制作文件吗?提前致谢。

最佳答案

代替:

File file = new File(uri.getPath());
PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));

使用这个:

ParcelFileDescriptor fileDescriptor =context.getContentResolver().openFileDescriptor(uri, "r");
PdfRenderer renderer = new PdfRenderer(fileDescriptor, ParcelFileDescriptor.MODE_READ_ONLY);

关于android - 在 Android 中从 URI 渲染 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49246851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com