签名数据相关
## 准备
在使用插入数据接口时,需要重写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

:::
### 进阶方法
进阶方法针对部分用户需要高度自定义化的界面效果,可以使用好签提供的接口,实现默认方法同样的功能
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

:::
### 文本固化字体
当使用原生端固化文本相关数据时,会发生显示时的文本和固化后的文本不一致的情况
(文字偏移,文字大小变化)。
这是由于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

:::
调整笔迹粗细及颜色等相关代码可以参照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笔)