Android手写签批功能的实现在于三个点,mupdf,偏移量的计算,droidText0.5.jar
实际步骤:
- 使用muPdf将PDF加载出来
- 弹出透明的popwindow,popWindow使用画板(一般签批我们都会用有笔锋的钢笔或者毛笔)
- 将签批好的图片生成Bitmap
- 将该Bitmap通过droidText生成一份新的PDF(这一步放到异步中进行,因为耗时)
mupdf
我们使用MUPdf来加载PDF,这里不一定要用MUPDF,也可以按照自己的想法来使用其他的,mupdf在Android6.0以上的机型上会出现一个问题libmupdf.so: has text relocations,当我们将targetSdkVersion改成23以下即可,但是这不是我们真正的解决办法,真正的解决办法是重新编译mupdf,这里我们可以参考如何在Android6.0及以上嵌入MuPdf
根据这篇文章编译出自己想要的so文件,然后直接用就可以了,这里一定要注意:
- 在创建new MuPDFCore(path);对象的时候一定要去动态获取权限,不然就会一直报打不开文件,或者找不到文件,这里不会提示权限问题(我是没看见日志提示我是权限的问题)
- 因为按照文章来编译的包名是com.artifex.mupdfdemo,所以我们要使用MuPDFCore的时候需要一样的包名结构,这里我们在编译so文件的时候可以去更改他的包名(不想改包名就直接按照他所说的将包名目录全部拷过去)
偏移量的计算
在PDF签批的时候我们经常遇到一个问题,就是签出的文字不在我们之前签的位置(一般是出在放大或者缩小的时候再签批时),这就是要计算一个偏移量了
//宽度偏移量
float widthScale=

本文介绍了在Android上实现手写签批功能的步骤,包括使用MUPDF加载PDF,计算签名偏移量,以及借助droidText或iText将签名图片嵌入PDF。在MUPDF使用中需要注意6.0及以上版本的兼容性问题,同时讲解了动态获取权限和计算签名位置偏移量的方法。
最低0.47元/天 解锁文章
439





