Chinaunix首页 | 论坛 | 博客
  • 博客访问: 949814
  • 博文数量: 264
  • 博客积分: 10107
  • 博客等级: 上将
  • 技术积分: 2455
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 16:34
文章分类

全部博文(264)

文章存档

2012年(1)

2011年(11)

2010年(128)

2009年(82)

2008年(42)

我的朋友

分类: Java

2010-10-11 14:02:29

 

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;

/**
 * 文字水印添加
 * 
 */
public class Simple8 {
	@SuppressWarnings("deprecation")
	public static void main(String[] args) throws DocumentException,
			IOException {
		//待加水印的文件
		PdfReader reader = new PdfReader("E:/HelloWorld.pdf");
		//加完水印的文件
		PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
				"E:/HelloWorld_water.pdf"));
		
		int total = reader.getNumberOfPages()+1; 
  
		PdfContentByte content; 
		//设置字体
		BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", 
                BaseFont.EMBEDDED);
		//水印文字
		String waterText="";
		int j = waterText.length(); //文字长度
		char c = 0; 
		int high = 0;//高度
		//循环对每页插入水印
		for (int i = 1; i < total; i++) { 
		    //水印的起始
			high = 500;
		    content = stamper.getUnderContent(i); 
		    //开始
		    content.beginText();
		    //设置颜色
		    content.setColorFill(Color.GRAY);
		    //设置字体及字号
		    content.setFontAndSize(base, 18); 
		    //设置起始位置
		    content.setTextMatrix(100, 120); 
			//开始写入水印
			for (int k = 0; k < j; k++) { 
			    content.setTextRise(rise); 
			    c = waterText.charAt(k);
			    //将char转成字符串
			    content.showText(c + ""); 
			    high -= 5; 
			}
			    content.endText(); 
			    
		     }
	       stamper.close(); 
	}
}


这里也可在加水印的时候添加密码
stamper.setEncryption("user".getBytes(),
		"admin".getBytes(), 16, false);

这里的水印是倾斜,就是打印一行文字的时候将单个文字的高度下移rise。
阅读(961) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~