Android-PDF转图片

场景

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

PdfRenderer

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

如何使用
  1. 首先目录下创建assets,把pdf文件放进去。


    本地pdf文件
  2. 打开、读取文件

mFileDescriptor = context.applicationContext.assets.openFd("sample.pdf").parcelFileDescriptor
  1. 创建构建图片渲染句柄
mPdfRenderer = PdfRenderer(mFileDescriptor!!)
  1. 选择渲染哪一页的渲染数据
val mCurrentPage = render.openPage(currentPage)
  1. 创建空位图
//空位图的大小,Config是图片ARGB通道,8888是最清晰的了
val bitmap = Bitmap.createBitmap(
                mCurrentPage.width,
                mCurrentPage.height,
                Bitmap.Config.ARGB_8888
            )
  1. 将数据渲染到空位图上
//render支持裁切和旋转参数
mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT)
  1. 销毁
    当不需要用的时候,要将资源给销毁掉,要不然会引起内存泄漏问题
fun clear() {
        mFileDescriptor?.close()
        mPdfRenderer?.close()

        mFileDescriptor = null
        mPdfRenderer = null
    }

效果

展示效果

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。