本地PDF模板文件流填充

更新时间:2021-07-30 14:10:55

接口描述

以文件流的方式传入文档模板,设置填充的模板文本域Key-Value。调用方法生成PDF文档。存在字体包时可使用

接口名称

PdfDocumentService.createFileFromTemplate(SignPDFStreamBean fileBean,boolean isFlat, Map<String, Object> txtFields)

请求参数

展开全部参数参数名称

类型

必选

长度

参数说明

fileBean

SignPDFStreamBean


PDF模板文档信息


stream

byte[]


待填充文档本地二进制数据

fileName

String

255

文档名称,若为空则取文档路径中的名称

ownerPassword

String

100

文档编辑密码,当目标PDF设置权限保护时必填

isFlat

boolean


填充后是否禁用现有文档中的文本域;
注意:若该参数未禁用文本域的话,一会导致后续盖章之后,Adobe工具验签的时候提示文本被篡改;

二会导致根据关键字盖章的时候,若设置的关键字在是填充在文本域的字,会导致搜索不到关键字

txtFields

Map


待填充的文本域Key-Value值

响应参数

展开全部参数参数名称

类型

必选

参数说明

示例值

FileCreateFromTemplateResult

FileCreateFromTemplateResult




errCode

int

错误码,0标识成功,其他均标识失败


msg

String

错误码对应的简要描述


stream

byte[]

待填充文档本地二进制数据


请求示例  

		// 获取正式生成服务
		// 获取客户端的代码:ServiceClient getKHD = ServiceClientManager.get("您的pojectId");
		PdfDocumentService pdfDocumentService = getKHD.pdfDocumentService();

		// 签署文档信息

		SignPDFStreamBean fileBean = new SignPDFStreamBean();
		fileBean.setStream(getFileBytes("D:/test-template.pdf"));
		fileBean.setFileName("test-template.pdf");// 文档名称,e签宝签署日志对应的文档名,若为空则取文档路径中的名称

		Map<String, Object> txtFields = new HashMap<>();// 模板中包含待填充文本域时,文本域Key-Value组合
		txtFields.put("user1", "杭州天谷");
		txtFields.put("user2", "芜浣");
		txtFields.put("year", "2019");
		txtFields.put("month", "09");
		txtFields.put("day", "19");

		FileCreateFromTemplateResult fileCreateFromTemplateResult = pdfDocumentService.createFileFromTemplate(fileBean,
				true, txtFields);
		if (fileCreateFromTemplateResult.getErrCode() != 0)
			System.out.println("失败" + JSONObject.fromObject(fileCreateFromTemplateResult));
		else
			System.out.println("成功" + JSONObject.fromObject(fileCreateFromTemplateResult));

响应示例

{
    "dstPdfFile":"",
    "errCode":0,
    "errShow":false,
    "msg":"成功",
    "stream":[
        37,
        80,
        68,
        70,
        45,
        49,
        ... ... 
    ]
}

错误码

错误码

错误描述

解决方案


我要纠错