android中pdf转换成图片格式,Android-PDF转图片

场景

将PDF里面的内容渲染到原生的View上面,一直没接触过这部分的技术,所以在网上寻找了下,终于发现了Android原生自带的类,也是今天我们着重讲的内容。

PdfRenderer

从名字上可以看出,这个是和渲染有关系的类型。这里我通过加载本地pdf文件到手机上为例子展开说一下如何使用。大致的步骤:读取pdf文件数据 -> 构建图片渲染句柄 -> 创建空位图 -> 渲染句柄将数据渲染在空位图 -> 输出有数据位图

如何使用

首先目录下创建assets,把pdf文件放进去。

本地pdf文件

打开、读取文件

mFileDescriptor = context.applicationContext.assets.openFd("sample.pdf").parcelFileDescriptor

创建构建图片渲染句柄

mPdfRenderer = PdfRenderer(mFileDescriptor!!)

选择渲染哪一页的渲染数据

val mCurrentPage = render.openPage(currentPage)

创建空位图

//空位图的大小,Config是图片ARGB通道,8888是最清晰的了

val bitmap = Bitmap.createBitmap(

mCurrentPage.width,

mCurrentPage.height,

Bitmap.Config.ARGB_8888

)

将数据渲染到空位图上

//render支持裁切和旋转参数

mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT)

销毁

当不需要用的时候,要将资源给销毁掉,要不然会引起内存泄漏问题

fun clear() {

mFileDescriptor?.close()

mPdfRenderer?.close()

mFileDescriptor = null

mPdfRenderer = null

}

效果

展示效果

具体demo地址:https://github.com/Linsixu/CSG的feature/1.0.0-pdf-to-image分支。

你可能感兴趣的:(android中pdf转换成图片格式,Android-PDF转图片)