(ITEXT)PDF上空白区域加入数据

来源:互联网 发布:java在线 编辑:程序博客网 时间:2024/04/30 05:50
之前项目做pdf数字签名的时候,需要把签名笔记的轨迹添加到pdf中,然而又不能影响pdf的正常使用,又要能看得到(就是要非常隐蔽)。所以呢,就需要把签名轨迹加到pdf空白域中去。PDF的其实是有格式的,类似html,都是有标签的,而且标签都是有不同含义的。具体的请参考其他文章。

先上个效果图:

这里写图片描述

用UE或者NotePad打开之后的pdf可以看到

这里写图片描述

看一下实现代码,用ITEXT创建pdf时,
            Document document = new Document();            PdfWriter writer = PdfWriter.getInstance(document,                    new FileOutputStream(file));            document.open();            document.add(new Header("signTrack", hender));

打开现有的pdf时,实现如下:

    public static void addHead(String pdfpath,String outpath) throws Exception{        PdfReader reader = new PdfReader(pdfpath);        PdfStamper stap = new PdfStamper(reader, new FileOutputStream(outpath),"99999999999999");        Map<String, String> signInfo = new HashMap<String, String>();        signInfo.put("signTrack", "88888888888888");        stap.setMoreInfo(signInfo);        stap.close();    }

前者是当document 执行close时,一个一个的tag添加进去的,后者实现的时候,先把pdf原本的tag添加到一个map中去,再然后添加新的tag,这个stap.close()的时候执行的。想知道更多可以参照IText源码,源码地址:https://github.com/itext/itextpdf

0 0
原创粉丝点击