itext pdf加水印

来源:互联网 发布:好喝的洋酒推荐 知乎 编辑:程序博客网 时间:2024/04/26 01:21
 /**
     * @param inputFile  源文件路径
     * @param outputFile 目标文件路径
     * @param waterMarkName  水印文字内容
     */
    public static void addWaterMarkIncludeWords(String inputFile, String outputFile, String waterMarkName ) {  
        try {  
            PdfReader reader = new PdfReader(inputFile);  
            PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( outputFile));  
            // BaseFont base = BaseFont.createFont(BaseFont.COURIER_BOLD , BaseFont.CP1250 , BaseFont.NOT_EMBEDDED);  
            BaseFont base = BaseFont.createFont("STSongStd-Light",
    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); // 中文处理
            int total = reader.getNumberOfPages() + 1;  
            PdfContentByte under;   
            for (int i = 1; i < total; i++) {  
                //under = stamper.getUnderContent(i);  
                under=stamper.getOverContent(i);
                under.saveState();
                PdfGState gs = new PdfGState();
                // 设置透明度为0.2
                gs.setFillOpacity(0.4f);
                under.setGState(gs);
                // 注意添加文字后必须调用一次restoreState 否则设置无效          
                // 开始
                under.beginText();
            // 设置颜色 默认为蓝色
                under.setColorFill(BaseColor.GRAY);
            // 设置字体及字号
                under.setFontAndSize(base, 50);
            // 设置起始位置
                under.setTextMatrix(100, 800);
               // under.showTextAligned(Element.ALIGN_LEFT, waterMarkName, 110,240, 45);
                //under.showTextAligned(Element.ALIGN_LEFT, waterMarkName, 130,240, 45);
                under.showTextAligned(Element.ALIGN_LEFT, waterMarkName, 90,240, 45);




                //透明度设置
                // 注意这里必须调用一次restoreState 否则设置无效          
                under.restoreState();  
                under.endText();  
            }  
            stamper.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
原创粉丝点击