当前位置: 首页 > 面试题库 >

如何在Android中呈现PDF文件

宋建本
2023-03-14
问题内容

Android库中没有PDF支持。有什么方法可以在Android应用程序中呈现PDF文件吗?


问题答案:

自API Level 21(Lollipop)起,Android提供了PdfRenderer类:

// 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();

对于较旧的API,我建议使用Android PdfViewer库,该库非常快速且易于使用,并根据Apache License 2.0授权:

pdfView.fromAsset(String)
  .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default
  .enableSwipe(true)
  .swipeHorizontal(false)
  .enableDoubletap(true)
  .defaultPage(0)
  .onDraw(onDrawListener)
  .onLoad(onLoadCompleteListener)
  .onPageChange(onPageChangeListener)
  .onPageScroll(onPageScrollListener)
  .onError(onErrorListener)
  .enableAnnotationRendering(false)
  .password(null)
  .scrollHandle(null)
  .load();


 类似资料:
  • 问题内容: 在我的应用程序中,我将收到一个字节流,并将其转换为手机内存中的pdf文件。如何将其渲染为pdf?并在活动中显示? 问题答案: 某些手机​​(例如Nexus One)预先安装了Quickoffice版本,因此将文件保存到SD卡后,发送适当的Intent可能很容易。

  • 问题内容: 我已经尝试在项目中添加pdf.js查看器文件,并且该文件可以在Chrome,Mozilla,Safari等浏览器中使用,但无法在node-webkit和PyQt webkit中加载某些页面。 我正在尝试使用iframe加载文件,如下所示: 问题答案: 我在Qt论坛上找到了这个话题,thebeast44发布了一段Qt代码来回答您的问题。我对python的翻译如下。 您还需要从作者的原始代

  • 我在另一个帖子上问了一个类似的问题,我得到的答案适用于firefox,但不适用于chrome,因为chrome会阻止弹出窗口。 我试着用一个按钮打开文件,但文件没有重新编辑。

  • 我知道这个问题已经被问了很多次,但我阅读了所有相关的答案,我的问题还没有解决。我可以通过下面的代码在新的空白pdf文件中添加文本和图像。 但是当我取消注释行

  • 我正试图从SQL Server导出一些数据作为HTML文件,但Internet explore将这些文件呈现得非常好,尽管chrome显示特殊字符。

  • 在jasper报表中使用不同字体时,需要使用font-extensions。 但是,如果字体呈现不正确,是否有一种方法可以测试pdf是否支持该字体,以便了解问题是与我的字体扩展有关,还是与我的字体有关? 从jasper reports导出到pdf时字体的不正确呈现是一个常见的问题。例如,jasper reports pdf不能导出西里尔值,如清单第1点所示,使用字体扩展并不总是足够的,字体还需要得