利用itextpdf实现简单的电子签章/水印等

利用itextpdf实现简单的电子签章只需要itextpdf相关jar包,构建一个简单的javademo就可以模拟。在web项目上大同小异,只需要得到对应的文件即可以作为工具进行调用

准备:itextpdf-5.5.13.jar,itextpdf-5.5.8.jar都可以。


准备待签名文件(路径)、签章,矢量即可(直接上代码)

代码如下:

    //电子签章(传入源文件,输出文件、签章图片)
    public static void addMark(String inSource,String outSource,String sealPNG){
        try {
            //读取需要签章的文档信息
            Map<String, Object> pdfMsg = getPdfMsg(inSource);
            //获取文件宽度,默认pdf
            float startAddress = Float.valueOf(SealUtils.getString(pdfMsg.get("width")));
            PdfReader reader = new PdfReader(new FileInputStream(inSource));
            PdfStamper stamper =new PdfStamper(reader, new FileOutputStream(outSource));
            
            //利用关键字查找文件中的内容,确定签章的位置
            List<String> keyWordsList = new ArrayList<String>();
            keyWordsList.add("敏感字");
            //查找关键字位置
            List<List<float[]>> arrLists = SealUtils.findKeywords(keyWordsList,reader);
            int pageNum = SealUtils.getInt(pdfMsg.get("pageSize"));
            //插入水印
            Image img = Image.getInstance(sealPNG);
            //设置尺寸
            img.scaleAbsolute(90,60);// 直接设定显示尺寸
            img.setBackgroundColor(new BaseColor(0));
            //如果没有找到关键字,走默认位置
            if(arrLists.isEmpty()){
                //默认盖章位置
                 img.setAbsolutePosition(startAddress - 188,70);
                 PdfContentByte overContent = stamper.getOverContent(pageNum);
                 overContent.addImage(img);
                 stamper.close();
                 reader.close();
                 return;
            }
            for (int i=pageNum;i>0;i--) {
                if(!arrLists.get(0).isEmpty())

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值