我是Android开发新手,一直在寻找渲染我创建的pdf的方法。基本上我正在尝试渲染多个页面,然后将它们全部放在webView中,我可以向下滚动并查看每个页面。截至目前,我在下面的代码基本上显示了第一页,它在imageView中。每次我尝试做多个页面时,页面基本上都会在一个视图上结束,一个视图在另一个视图之上。
如果您有办法在webView中执行此操作,请告诉我。 示例代码非常有用。
提前致谢!
try {
File file = new File(getExternalFilesDir(null).getAbsolutePath(), "document.pdf");
mPdfDocument.writeTo(new FileOutputStream(file));
ParcelFileDescriptor fd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
// PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));
PdfRenderer renderer = new PdfRenderer(fd);
Bitmap bitmap = Bitmap.createBitmap(800, 1000, Bitmap.Config.ARGB_4444);
int pageCount = renderer.getPageCount();
if (pageCount== 7) {
Log.v("its right", "its right");
} else {
Log.v("its not right", "its right");
}
PdfRenderer.Page pages = renderer.openPage(0);
pages.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
pages.close();
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
Log.e("cannot generate pdf", "e");
}
答案 0 :(得分:1)
// create a new renderer
PdfRenderer renderer = new PdfRenderer(getSeekableFileDescriptor());
// let us just render all pages
final int pageCount = renderer.getPageCount();
for (int i = 0; i < pageCount; i++) {
Page page = renderer.openPage(i);
// say we render for showing on the screen
page.render(mBitmap, null, null, Page.RENDER_MODE_FOR_DISPLAY);
// do stuff with the bitmap
// close the page
page.close();
}
// close the renderer
renderer.close();
秘密在render.getPageCount();
答案 1 :(得分:0)
我们无法通过PdfRenderer渲染多个pdf页面,PdfRendere创建当前页面的位图。如果您有此要求,则应通过分配前一个和下一个按钮来实现。当当前页面将被渲染并且您将转到下一页时,第一页渲染将被关闭。