Advertisement

spring boot集成pageoffice实现对PDF文件的在线签字、盖章

阅读量:

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.stereotype.Component;

import org.springframework.web.bind.annotation.RestController;

/**

@Package: com.zks.pageoffice

@ClassName: DemoController

@Author: ZhouKaiShun

@CreateTime: 2021/9/10 10:18

@Description:

*/

@Component

public class RegistrationBean {

@Value(“${posyspath}”)

private String poSysPath;

@Value(“${popassword}”)

private String poPassWord;

/**

添加PageOffice的服务器端授权程序Servlet(必须)

@return

*/

@Bean

public ServletRegistrationBean servletRegistrationBean() {

com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();

//设置PageOffice注册成功后,license.lic文件存放的目录

poserver.setSysPath(poSysPath);

ServletRegistrationBean srb = new ServletRegistrationBean(poserver);

srb.addUrlMappings(“/poserver.zz”);

srb.addUrlMappings(“/posetup.exe”);

srb.addUrlMappings(“/pageoffice.js”);

srb.addUrlMappings(“/jquery.min.js”);

srb.addUrlMappings(“/pobstyle.css”);

srb.addUrlMappings(“/sealsetup.exe”);

return srb;

}

/**

添加印章管理程序Servlet(可选)

@return

*/

@Bean

public ServletRegistrationBean servletRegistrationBean2() {

com.zhuozhengsoft.pageoffice.poserver.AdminSeal adminSeal = new com.zhuozhengsoft.pageoffice.poserver.AdminSeal();

//设置印章管理员admin的登录密码

adminSeal.setAdminPassword(poPassWord);

//设置印章数据库文件poseal.db存放的目录

adminSeal.setSysPath(poSysPath);

ServletRegistrationBean srb = new ServletRegistrationBean(adminSeal);

srb.addUrlMappings(“/adminseal.zz”);

srb.addUrlMappings(“/sealimage.zz”);

srb.addUrlMappings(“/loginseal.zz”);

return srb;

}

}

[](()3、controller调用

package com.zks.pageoffice.controller;

import com.zhuozhengsoft.pageoffice.FileSaver;

import com.zhuozhengsoft.pageoffice.OpenModeType;

import com.zhuozhengsoft.pageoffice.PDFCtrl;

import com.zhuozhengsoft.pageoffice.PageOfficeCtrl;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.util.Map;

/**

@Package: com.zks.pageoffice

@ClassName: PDFInsertSealController

@Author: ZhouKaiShun

@CreateTime: 2021/9/10 10:19

@Description:

*/

@RestController

@Slf4j

public class PDFInsertSealController {

@Value(“${spring.profiles.active}”)

public String active;

@Value(“${signpath}”)

public String signPath;

@Value(“${sealpath}”)

private String sealPath;

@RequestMapping(value = “/”, method = RequestMethod.GET)

public ModelAndView showIndex() {

ModelAndView mv = new ModelAndView(“Index”);

return mv;

}

/**

@description:盖章功能

@return:

@author: ZhouKaiShun

@time: 2021/9/10 13:40

*/

@GetMapping(“/AddSeal”)

public ModelAndView showWord(HttpServletRequest request, Map<String, Object> map) {

log.info(“准备盖章”);

PDFCtrl pdfCtrl1 = new PDFCtrl(request);

//此行必须

pdfCtrl1.setServerPage(request.getContextPath() + “/poserver.zz”);

//设置保存页面

pdfCtrl1.setSaveFilePage(“AddSeal/save”);

// Create custom toolbar

pdfCtrl1.addCustomToolButton(“保存”, “Save()”, 1);

pdfCtrl1.addCustomToolButton(“加盖印章”, “InsertSeal()”, 2);

//此处路径为服务器端文档路径 如果是Linux服务器上的路径,前面需要加“file://” (这个点找了好久…)

pdfCtrl1.webOpen(active.equals(“prod”) ? “file://” + sealPath : sealPath);

map.put(“pageoffice”, pdfCtrl1.getHtmlCode(“PDFCtrl1”));

ModelAndView mv = new ModelAndView(“AddSeal/PDF1”);

return mv;

}

/**

@description:签字功能

@return:

@author: ZhouKaiShun

@time: 2021/9/10 13:40

*/

@GetMapping(“AddSign”)

public ModelAndView showWord11(HttpServletRequest request, Map<String, Object> map) {

log.info(“准备签字”);

//PageOfficeCtrl pdfCtrl1 = new PageOfficeCtrl(request);

PDFCtrl pdfCtrl1 = new PDFCtrl(request);

//此行必须

pdfCtrl1.setServerPage(request.getContextPath() + “/poserver.zz”);

//设置保存页面

pdfCtrl1.setSaveFilePage(“AddSign/save”);

// Create custom toolbar

pdfCtrl1.addCustomToolButton(“保存”, “Save()”, 1);

pdfCtrl1.addCustomToolButton(“签字”, “AddHandSign()”, 3);

//此处路径为服务器端文档路径 如果是Linux服务器上的路径,前面需要加“file://” (这个点找了好久…)

pdfCtrl1.webOpen(active.equals(“prod”) ? “file://” + signPath : signPath);

map.put(“pageoffice”, pdfCtrl1.getHtmlCode(“PDFCtrl1”));

ModelAndView mv = new ModelAndView(“AddSign/PDF1”);

return mv;

}

@RequestMapping(“/AddSeal/save”)

public void save(HttpServletRequest request, HttpServletResponse response) {

FileSaver fs = new FileSaver(request, response);

//此处路径为服务器端文档路径

fs.saveToFile(sealPath);

fs.close();

}

@RequestMapping(“/AddSign/save”)

public void save2(HttpServletRequest request, HttpServletResponse response) {

FileSaver fs = new FileSaver(request, response);

//此处路径为服务器端文档路径

fs.saveToFile(signPath);

fs.close();

}

}

两个主要接口,一个用于签名,一个用于盖章

[](()controller中的一些配置项

application-dev.yml

server:

port: 8080

用于存放注册的信息以及.db文件,这个db文件包含了签章的一些信息,pageoffice帮我们集成好了 我们不用管,只需要自己创建签章即可

posyspath: d:/lic/

默认密码,管理签章的默认账号 admin 111111

全部评论 (0)

还没有任何评论哟~