PDF添加水印

//PDF添加水印
public boolean addPdfWater(String sourcepath,String targetpath,String waterText){  
    try {
        //待加水印的文件  
        PdfReader reader = new PdfReader(sourcepath);
        //加完水印的文件  
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(targetpath));  
        //总页码
        int total = reader.getNumberOfPages() + 1;  
        PdfContentByte content;  
        //设置字体  
        BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",  
                BaseFont.EMBEDDED);  
        //循环对每页插入水印  
        for (int i = 1; i < total; i++) {  
            // 水印的起始  
            //在内容下方
            //content = stamper.getUnderContent(i);  
            //在内容上方
            content = stamper.getOverContent(i);
            PdfGState gs = new PdfGState();
            //设置透明度为0.2
            gs.setFillOpacity(0.2f);
            content.setGState(gs);
            //下边这一行代码写上会报错
            //content.restoreState();
            // 开始  
            content.beginText();  
            // 设置颜色  
            content.setColorFill(BaseColor.RED);
            // 设置字体及字号  
            content.setFontAndSize(base, 20);  
            // 设置起始位置  
            content.setTextMatrix(0, 0);
            int x = 300;
            int y = 500;
            //开始写入水印
            content.showTextAligned(Element.ALIGN_CENTER, waterText, x, y, 45);
            //开始写入水印  
            content.endText();  
        }
        stamper.close();
        System.out.println("PDF水印写入完成");
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

猜你喜欢

转载自blog.csdn.net/yangymy/article/details/80541127
今日推荐