您的位置:首页 > 编程语言 > Java开发

java 为pdf添加水印图片

2017-03-23 10:01 429 查看
from  http://blog.csdn.net/oxiaoxio/article/details/49512763

首先需要引入两个Jar包分别是:iTextAsian.jar 、itext-2.1.7.jar  可以去  http://download.csdn.net/detail/work201003/9227159  下载;

代码:

[java] view
plain copy

 print?

import java.awt.Color;  

import java.io.BufferedOutputStream;  

import java.io.File;  

import java.io.FileOutputStream;  

import java.io.IOException;  

import java.text.SimpleDateFormat;  

import java.util.Calendar;  

import com.lowagie.text.DocumentException;  

import com.lowagie.text.Element;  

import com.lowagie.text.Image;  

import com.lowagie.text.PageSize;  

import com.lowagie.text.pdf.BaseFont;  

import com.lowagie.text.pdf.PdfContentByte;  

import com.lowagie.text.pdf.PdfGState;  

import com.lowagie.text.pdf.PdfReader;  

import com.lowagie.text.pdf.PdfStamper;  

  

public class TestWaterPrint {  

    public static void main(String[] args) throws DocumentException,  

            IOException {  

        // 要输出的pdf文件  

        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/abc.pdf")));  

        Calendar cal = Calendar.getInstance();  

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  

        // 将pdf文件先加水印然后输出  

        setWatermark(bos, "D:/itext.pdf", format.format(cal.getTime())  

                + "  下载使用人:" + "测试user", 16);  

    }  

  

    public static void setWatermark(BufferedOutputStream bos, String input,  

            String waterMarkName, int permission) throws DocumentException,  

            IOException {  

          

        PdfReader reader = new PdfReader(input);  

        PdfStamper stamper = new PdfStamper(reader, bos);  

        int total = reader.getNumberOfPages() + 1;  

        PdfContentByte content;  

        BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.EMBEDDED);  

        PdfGState gs = new PdfGState();  

        for (int i = 1; i < total; i++) {  

            content = stamper.getOverContent(i);// 在内容上方加水印  

            //content = stamper.getUnderContent(i);//在内容下方加水印  

            gs.setFillOpacity(0.2f);  

            // content.setGState(gs);  

            content.beginText();  

            content.setColorFill(Color.LIGHT_GRAY);  

            content.setFontAndSize(base, 50);  

            content.setTextMatrix(70, 200);  

            content.showTextAligned(Element.ALIGN_CENTER, "公司内部文件,请注意保密!", 300,350, 55);  

            Image image = Image.getInstance("D:/itext2.png");  

            /*img.setAlignment(Image.LEFT | Image.TEXTWRAP); 

            img.setBorder(Image.BOX); 

            img.setBorderWidth(10); 

            img.setBorderColor(BaseColor.WHITE); 

            img.scaleToFit(1000, 72);//大小 

            img.setRotationDegrees(-30);//旋转 */  

            image.setAbsolutePosition(200, 206); // set the first background image of the absolute   

            image.scaleToFit(200,200);  

            content.addImage(image);  

            content.setColorFill(Color.BLACK);  

            content.setFontAndSize(base, 8);  

            content.showTextAligned(Element.ALIGN_CENTER, "下载时间:"  

                    + waterMarkName + "", 300, 10, 0);  

            content.endText();  

  

        }  

        stamper.close();  

    }  

}  

原文档图



效果图:



更多详细代码请查看:http://www.open-open.com/lib/view/open1339726488115.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: