栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java给pdf打水印

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java给pdf打水印

package test3;

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.itextpdf.text.baseColor;
import com.itextpdf.text.documentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.baseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;

public class test2 {
	public static void main(String[] args) throws documentException, IOException {
		// 将E:/itext.pdf文件加水印输出E:/abc.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, "E:/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(baseColor.LIGHT_GRAY);
			content.setFontAndSize(base, 50);
			content.setTextMatrix(70, 200);
			content.showTextAligned(Element.ALIGN_CENTER, "BYD公司内部文件,请注意保密!", 300, 350, 55);
			Image image = Image.getInstance("E:/受_控.jpg");
			
			image.setAbsolutePosition(200, 206); // set the first background image of the absolute
			image.scaleToFit(200, 200);
			content.addImage(image);
			content.setColorFill(baseColor.BLACK);
			content.setFontAndSize(base, 8);
			content.showTextAligned(Element.ALIGN_CENTER, "下载时间:" + waterMarkName + "", 300, 10, 0);
			content.endText();

		}
		stamper.close();
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323336.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号