本地PDF模板文件填充(可选字体)

更新时间:2021-06-01 17:42:23

接口描述

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

说明:自2.1.45版本起,e签宝不再允许新开发者集成调用此接口。

接口名称

PdfDocumentService.createFileFromTemplate()

请求参数

展开全部参数参数名称

类型

必选

长度

参数说明

file

SignPDFFileBean


PDF文档信息








srcPdfFile

String

255

待填充PDF文档本地路径,含文档名(与bytes至少有一个不为空)

bytes

byte[]


待填充PDF文档本地二进制数据(与srcPdfFile至少有一个不为空)

dstPdfFile

String

255

填充后PDF文档本地路径,含文档名(srcPdfFile传入时,dstPdfFile必传

fileName

String

255

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

ownerPassword

String

100

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

ShowImage

Boolean


是否增加e签宝logo图标

isFlat

Boolean


填充后是否禁用现有文档中的文本域;

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

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

fontName

FontNames


字体包字体

  • SIMHEI,黑体
  • MSYH,微软雅黑
  • SIMKAI,楷体
  • SIMSUN,宋体
  • SIMFANG,仿宋
  • NSIMSUN,新宋体

txtFields

Map


待填充的文本域Key-Value

响应参数

展开全部参数参数名称

类型

必选

参数说明

示例值

FileCreateFromTemplateResult

FileCreateFromTemplateResult




errCode

int

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


msg

String

错误码对应的简要描述


dstPdfFile

String

填充后PDF文档的存储路径

请求示例  

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

		// 签署文档信息
		SignPDFFileBean fileBean = new SignPDFFileBean();
		fileBean.setSrcPdfFile("D:/test-template.pdf");// 待签署PDF文档本地路径,含文档名(与bytes至少有一个不为空)
		fileBean.setDstPdfFile("D:/abc/h.pdf");// 签署后PDF文档本地路径,含文档名(为空时返回签署后的文件流)
		fileBean.setFileName("h");// 文档名称,e签宝签署日志对应的文档名,若为空则取文档路径中的名称
		fileBean.setShowImage(true);// 是否增加e签宝logo图标

		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, FontNames.NSIMSUN);
		if (fileCreateFromTemplateResult.getErrCode() != 0)
			System.out.println("失败" + JSONObject.fromObject(fileCreateFromTemplateResult));
		else
			System.out.println("成功" + JSONObject.fromObject(fileCreateFromTemplateResult));

响应示例

{
    "dstPdfFile":"D:\abc\h.pdf",
    "errCode":0,
    "errShow":false,
    "msg":"成功",
    "stream":[

    ]
}

错误码

错误码

错误描述

解决方案


FileCreateFromTemplateResult pdfContactResult=pdfDocumentService.createFileFromTemplate(signPDFStreamTemplateBean,true,args);//模板填充合同内容的pdf ,异常信息org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.AbstractMethodError: com.timevale.esign.ext.sdk.seal.ExtFontLoader.getResource(Ljava&#47;lang&#47;String;)Ljava&#47;lang&#47;String;

    org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1280)

    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:958)

    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)

    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)

    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)

    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)

一般是字体包(ext-sdk-fonts-1.0.3.jar)的问题,请联系交付顾问重新发您一个字体包,您替换下


AbstractMethodError: com.timevale.esign.ext.sdk.seal.ExtFontLoader.getFontBytes(Ljava/lang/String;)[B

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:978)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)

一般是字体包(ext-sdk-fonts-1.0.3.jar)的问题,请联系交付顾问重新发您一个字体包,您替换下


我要纠错