签名数据相关

## 准备 在使用插入数据接口时,需要重写activity中的onActivityResult方法 **代码示例:** ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 如果有多个pdfview 则每个pdfview都需要调用 mPdfView.dispatchActivityResult(requestCode, resultCode, data); } ``` ## 插入签名 ### 默认方法 调用SDK提供的默认插入签名方法,会自动跳转到签名管理界面,在签名管理界面,SDK会自动同步用户的签名,用户可在该界面新增签名或删除签名。 在选择合适的签名后,会将该签名插入手机屏幕中心位置,用户可按照需要自行拖动调整签名位置及旋转角度 **代码示例:** ``` mPdfView.insertSign(); ``` **签名管理界面效果展示:** ::: hljs-center ![截屏20220228 20.26.13.png](https://cos.easydoc.net/99875377/files/l06odsnr.png) ::: ### 进阶方法 进阶方法针对部分用户需要高度自定义化的界面效果,可以使用好签提供的接口,实现默认方法同样的功能 1. 获取签名模板的数据信息 **代码示例:** ``` WellSign.getSignTemplateList(new WSCallBack() { @Override public void result(boolean success, WSResult result) { if(success){ List<UserSignTemplate> userSignTemplateList= (List<UserSignTemplate>) result.getData(); //do something } } }); ``` **接口参数说明:** - WSCallBack 类型:WSCallBack 说明:获取当前用户的签名模板信息 result.getData() 数据类型:List<UserSignTemplate> 关于UserSignTemplate的[说明](doc:fG6R7F4f) 2. 插入指定的签名模板(默认放置再屏幕中心位置) **代码示例:** ``` mPdfView.insertSign(imagePath,bezierPath); ``` **接口参数说明:** - imagePath 类型:String 说明:签名模板图片路径 - bezierPath 类型:String 说明:签名模板贝塞尔数据路径 3. 增加签名模板 **代码示例:** ``` Intent intent = new Intent(mContext, WSAddSignActivity.class); startActivity(intent); ``` 直接调用SDK内部新增签名模板Activity,在书写签名保存完毕后即新增成功 4. 删除签名模板 **代码示例:** ``` WellSign.deleteSignTemplate(templateIdList, new WSCallBack() { @Override public void result(boolean success, WSResult result) { //do something } }); ``` **接口参数说明:** - templateIdList 类型:List<String> 说明:要删除的签名模板id - WSCallBack 类型:WSCallBack 说明:删除结果回调 ## 插入文本 **代码示例:** ``` mPdfView.insertText(); ``` **效果展示:** ::: hljs-center ![截屏20220301 19.57.57.png](https://cos.easydoc.net/99875377/files/l082t6o2.png) ::: ### 文本固化字体 当使用原生端固化文本相关数据时,会发生显示时的文本和固化后的文本不一致的情况 (文字偏移,文字大小变化)。 这是由于sdk内置字体与系统默认显示字体不同导致。 由于安卓的默认显示字体由设备/system/etc/fonts.xml 文件配置指定, 各设备厂商默认字体库都不相同。 例如: vivo设备字体库:/system/fonts/VivoFont.ttf 华为鸿蒙:/system/fonts/HarmonyOSHans.ttf 华为:/system/fonts/DroidSansChinese.ttf 为了解决固化差异问题,可以设置SDK固化时使用系统的自带字体库(打开文件前设置)。 **代码示例:** ``` WellSign.setSolidTextFontPath(fontPath); ``` **接口参数说明:** - fontPath 类型:String 说明:指定字体库路径并确保路径字体库文件存在 ## 插入图片 1. 从相册选择图片 **代码示例:** ``` mPdfView.insertPictureFromAlbum(); ``` 2. 从相机拍照生成图片 **代码示例:** ``` mPdfView.insertPictureFromTakePhoto(); ``` 3. 插入位图 **代码示例:** ``` mPdfView.insertBitmap(bitmap); ``` **接口参数说明:** - bitmap 类型:Bitmap 说明:调用者生成位图插入 ## 全文圈批 再进入全文圈批模式后,即可在屏幕上书写内容。 **圈批模式下的操作方式: 无电磁笔:单指书写,双指操作(放大缩小,翻页) 有电磁笔:电磁笔书写,手指操作(放大缩小,翻页)** **代码示例:** ``` //进入圈批模式 mPdfView.setPenType(WellSign.HQ_PENTYPE_WRITE); //清除本页圈批内容 mPdfView.clearCurrentPageWriteData(); ``` **效果展示:** ::: hljs-center ![截屏20220303 17.48.02.png](https://cos.easydoc.net/99875377/files/l0at1ojy.png) ::: 调整笔迹粗细及颜色等相关代码可以参照demo中的详细代码实现 **接口参数说明:** - type 类型:int 说明:调整当前view的模式 WellSign.HQ_PENTYPE_WRITE: 全文圈批书写模式 WellSign.HQ_PENTYPE_ERASE: 橡皮擦模式 WellSign.HQ_PENTYPE_NORMAL:普通阅读模式 **注意:当设备支持电磁笔时,圈批模式,橡皮擦模式下好签SDK都支持手笔分离** ### 笔迹撤销 依次撤销刚书写的圈批笔迹(非已保存和固化的笔迹) **代码示例:** ``` mPdfView.strokeUndo(); ``` ### 笔迹重写 依次重写擦除的圈批笔迹(非已保存和固化的笔迹) **代码示例:** ``` mPdfView.strokeRedo(); ``` ### 自定义笔迹粗细 自定义好签笔迹粗细的设定值(该方法需在打开文件前调用) **代码示例:** ``` float[] array = {4.0f, 6.0f, 10.5f, 18.0f, 25.5f, 33.0f, 40.5f, 48.0f, 50.2f, 53.5f}; WellSign.setPenThickArray(array); ``` **接口参数说明:** - array 类型:float[] 说明:数组长度必须为10位 ### 触发保存笔迹数 当页面笔迹改动的差值达到某一数值,当前页面圈批数据自动保存 **代码示例:** ``` WellSign.triggerAutoStoreStrokeNum(strokeNum); ``` **接口参数说明:** - strokeNum 类型:int 说明:触发保存笔迹数,最小为5笔(默认为10笔)