word功能代码

/**
 * 从SYS_ORG_ESEAL表获取电子签名
 *
 * @param
 * @return
 */
public static byte[] getSealImage(String userId) {
    //连接数据库
    JdbcTemplate jdbcTemplate = StructuredDataUpdater.getJdbcTemplate();
    //sys_user中获取电子签章
    //获取上传签名照
    String Sql = "select ESEAL.FJMC REAL_NM, ESEAL.FJ ELECTRONIC_PHOTO from sys_user_org o\n" +
            "\t\tleft join sys_org org on org.org_id = o.org_id\n" +
            "\t\tleft join SYS_ORG_ESEAL ESEAL on ESEAL.ORG_ID = org.sup_org_id\n" +
            "\t\twhere o.user_id = ? ";
    List<Map<String, Object>> list = SpringJdbcHelper.queryForList(jdbcTemplate, Sql, userId);
    String result = "";
    String signBase64 = null;
    byte[] inArr = null;
    if (list.size() > 0) {
        String realNm = ObjectUtils.toString(list.get(0).get("REAL_NM"));
        Object ep = list.get(0).get("ELECTRONIC_PHOTO");
        if (ep != null) {
            try {
                inArr = (byte[]) ep;
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            result = realNm;
        }
    }
    return inArr;
}

public void setSeal(Document doc, String processInstanceId) throws Exception {
    // 设计人信息
    String sjrDataSql = "SELECT T.ASSIGNEE,SU.REAL_NM,SU.MOBILE,T.CREATE_TIME FROM FOXBPM_RUN_TASK T LEFT JOIN SYS_USER SU ON SU.USER_ID = T.ASSIGNEE WHERE T.PROCESSINSTANCE_ID = ? AND (T.NAME LIKE '%编写%' OR T.NAME LIKE '%修改%') ORDER BY T.CREATE_TIME ";
    List<Map<String, Object>> sjrData = jdbcTemplate.queryForList(
            sjrDataSql, processInstanceId);
    String userId = null;
    if (sjrData.size() > 0) {
        for (int i = 0; i < sjrData.size(); i++) {
            userId = ObjectUtils.toString(sjrData.get(i).get(
                    "ASSIGNEE"));
        }
    }

    DocumentBuilder builder = new DocumentBuilder(doc);
    List<Shape> shapeList = Arrays.stream(builder.getDocument().getChildNodes(NodeType.SHAPE, true).toArray())
            .filter(Shape.class::isInstance)
            .map(Shape.class::cast)
            .collect(Collectors.toList());
    for (Shape shape : shapeList) {
        if (shape.getShapeType() == ShapeType.IMAGE) {
            builder.moveTo(shape);
            // 获取图片的名称
            String sourceFullName = shape.getImageData().getTitle();
            // 获取图片的后缀名, 存储时可能会用到
            String imageSuffix = FileFormatUtil.imageTypeToExtension(shape.getImageData().getImageType());
            // 移走图片
            if ("章1.png".equals(sourceFullName)) {
                shape.remove();
            }
        }
    }
    Paragraph paragraph = (Paragraph) doc.getChild(NodeType.PARAGRAPH, 28, true);
    if (getSealImage(userId) != null) {
        Shape shape = builder.insertImage(getSealImage(userId), 120, 120);//需要加盖的印章图片
        paragraph.appendChild(shape);
        shape.setWrapType(WrapType.NONE);
        shape.setBehindText(false);//设置图片悬浮于文字之上
        shape.setRelativeHorizontalPosition(RelativeHorizontalPosition.MARGIN);
        shape.setHorizontalAlignment(HorizontalAlignment.CENTER);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值