Android App开发进阶与项目实战
上QQ阅读APP看书,第一时间看更新

4.2.1 PDF文件渲染器

Android集成了PDF的渲染操作,从很大程度上方便了开发者,这个PDF文件渲染器便是PdfRenderer。渲染器允许从存储卡读取PDF文件,示例代码如下:

打开PDF文件只是第一步,接下来使用PdfRenderer工具加载PDF文件,并进行相关的处理操作。下面是PdfRenderer类的常用方法:

  • 构造方法:从ParcelFileDescriptor对象构造一个PdfRenderer实例。
  • getPageCount:获取PDF文件的页数。
  • openPage:打开PDF文件的指定页面,返回一个PdfRenderer.Page对象。
  • close:关闭PDF文件。

从上面列出的方法可以看到,PDF渲染器只提供了对整个PDF文件的管理操作,具体的页面处理(比如渲染操作)得由PdfRenderer.Page对象来完成。下面是Page类的常用方法:

  • getIndex:获取该页的页码。
  • getWidth:获取该页的宽度。
  • getHeight:获取该页的高度。
  • render:渲染该页面的内容,并将渲染结果写入一个位图对象。开发者可把位图对象保存到存储卡的图片文件。
  • close:关闭该页面。

总而言之,PDF渲染器支持把一个PDF文件转成若干图片。开发者可以将这些图片展示在屏幕上。下面的代码片段演示如何将PDF文件解析为一组图片文件的路径列表:

(完整代码见ebook\src\main\java\com\example\ebook\util\AssetsUtil.java)

按照解析完成的图片路径调用图像视图的setImageURI方法,即可在界面上显示PDF图片。渲染完成的PDF页面效果如图4-9~图4-12所示。图4-9为解析得到的第一页PDF图片,图4-10为解析得到的第二页PDF图片,图4-11为解析得到的第三页PDF图片,图4-12为解析得到的最后一页PDF图片。

图4-9 解析得到的第一页PDF图片

图4-10 解析得到的第二页PDF图片

图4-11 解析得到的第三页PDF图片

图4-12 解析得到的最后一页PDF图片