用itextpdf生成水印来代替pdf的替换问题

之前的方向一直是怎么遍历pdf的内容,然后把做标记的地方换成我想要的字符(支持中文)。虽然用pdfbox的包也解决了这个问题,但是很麻烦。

前一段时间找到了itext生成pdf水印的方法,想想其实我可以不用遍历pdf,只要把我之前做标记的地方清空,然后用加水印的方法加上我想要的内容。

先看代码,注释的比较细了        算是比较好的解决了我的问题,替换字符,中文乱码等

包itextpdf  5.5.8

public static void editPDF(String oldString, String newsString, String chars) {
<span style="white-space:pre">	</span>try {
		// 获取pdf文档
		PdfReader reader = new PdfReader(oldString);
		// 一个输入流吧应该,把上面获取的文档写到新的pdf中
		PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(newsString));
		// 创建字体(生成水印用到的字体)参数一:字体名称(可以写入中文字体),参数二:字体编码,参数三:是否嵌入
		BaseFont bFont = BaseFont.createFont("c:\\windows\\fonts\\simfang.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
		// 循环pdf页数
		for (int i = 1; i < reader.getNumberOfPages() + 1; i++) {
			// 水印工具
			PdfContentByte over = stamper.getOverContent(i);
			//开始
			over.beginText();
			//设置字体大小,可以在开始前设置
			over.setFontAndSize(bFont, 8.1f);
			//水印位置 参数一:对齐(左中右都行) 参数二:水印内容 参数三四:水印开始坐标 参数五:水印旋转角度
			over.showTextAligned(PdfContentByte.ALIGN_LEFT, chars, 555, 3, 0);
			//结束
			over.endText();
		}
		stamper.close();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (DocumentException e) {
		e.printStackTrace();
<span style="white-space:pre">	</span>}
}


可以生成正文,也可以是花花水印,里面应该还有设置颜色的参数。需要的朋友可以看看
http://www.cnblogs.com/jston/archive/2013/02/20/2919197.html
包itextpdf  5.5.8
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值