博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用PdfRenderer解析PDF文件
阅读量:6215 次
发布时间:2019-06-21

本文共 1611 字,大约阅读时间需要 5 分钟。

首先很遗憾的是PdfRenderer这个类是LOLLIPOP以上才有的类,PdfRenderer中核心代码是用的native方法,所以没办法将PdfRenderer从SDK中抽取出来用。

首先创建一个PdfRenderer

try {           mFileDescriptor = getAssets().openFd("sample.pdf").getParcelFileDescriptor();           mPdfRenderer = new PdfRenderer(mFileDescriptor);       } catch (IOException e) {           e.printStackTrace();       }复制代码

将一页的PDF渲染到一个Bitmap上

mCurrentPage = mPdfRenderer.openPage(index);       //Bitmap必须是ARGB,不可以是RGB       Bitmap bitmap = Bitmap.createBitmap(mCurrentPage.getWidth(), mCurrentPage.getHeight(),               Bitmap.Config.ARGB_8888);        /*        * 调用PdfRender.Page的render方法渲染bitmap        *        * render的参数说明:        * destination : 要渲染的bitmap对象        * destClip :传一个矩形过去 矩形的尺寸不能大于bitmap的尺寸 最后渲染的pdf会是rect的大小 可为null        * transform : 一个Matrix bitmap根据该Matrix图像进行转换        * renderMode :渲染模式 可选2种 RENDER_MODE_FOR_DISPLAY 和 RENDER_MODE_FOR_PRINT        */       mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);       mImageView.setImageBitmap(bitmap);复制代码

注意关闭资源

private void closeRenderer() throws IOException {            if (null != mCurrentPage) {                mCurrentPage.close();            }            if (null != mPdfRenderer) {                mPdfRenderer.close();            }            if (null != mFileDescriptor) {                mFileDescriptor.close();            }        }        @Override        protected void onDestroy() {            super.onDestroy();            try {                closeRenderer();            } catch (IOException e) {                e.printStackTrace();            }        }复制代码

一个demo:

转载地址:http://mbpja.baihongyu.com/

你可能感兴趣的文章
java对象创建过程与初始化顺序
查看>>
iOS大文件下载时,对服务器返回的数据处理的笔记
查看>>
Opengl VS2008开发环境
查看>>
[转载]Word直接发布新浪博客(以Word 2013为例)
查看>>
iOS开发 关于SEL的简单总结
查看>>
Play-Scala开发技巧 - 带索引遍历Form(arrayProperty)
查看>>
android实现session保持
查看>>
“Android 已经crash,但是却没有退出”解决办法
查看>>
如何在Oracle中复制表结构和表数据
查看>>
如何开发piwik插件
查看>>
html5 canvas详解
查看>>
教你在中国做个有钱途的程序员
查看>>
$.post 返回不了json格式
查看>>
javascript 使用Html5 File Api进行文件读取
查看>>
31.virtualbox安装centos6.4开发环境搭建步骤记录
查看>>
SpringCloud 中文翻译1
查看>>
Ubuntu下无法使用add-apt-repository命令
查看>>
MKNetworkKit引入项目的配置
查看>>
如何管理Spark Streaming消费Kafka的偏移量(一)
查看>>
Elasticsearch如何检索数据
查看>>