Pdf添加文字水印

 

 

package com.zving.demo;

import java.awt.Color;  
import java.io.BufferedOutputStream;  
import java.io.File;  
import java.io.FileOutputStream;  
import com.lowagie.text.Element;   
import com.lowagie.text.pdf.BaseFont;  
import com.lowagie.text.pdf.PdfContentByte;  
import com.lowagie.text.pdf.PdfGState; 
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfStamper; public class PdfWaterPrint { public static void main(String[] args) { try { // 目标pdf文件 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/BBB.pdf"))); // 源pdf文件 setWatermark(bos, "E:/AAA.pdf",16); } catch (Exception e) { e.printStackTrace(); } } public static void setWatermark(BufferedOutputStream bos, String input, int permission){ try { 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(); 
            Rectangle pageRect = null;
for (int i = 1; i < total; i++) { // 设置透明度
              gs.setFillOpacity(0.6f);
              gs.setStrokeOpacity(0.6f);
           pageRect = stamper.getReader().getPageSizeWithRotation(i);
              // 计算水印X,Y坐标
              float x = pageRect.getWidth() / 2;
              float y = pageRect.getHeight() / 2;
              //获得PDF最顶层
              content = stamper.getOverContent(i);
              content.saveState();
              content.setGState(gs);
              content.beginText();
              content.setColorFill(new java.awt.Color(130, 130, 130)); 
              content.setFontAndSize(base, pageRect.getWidth() / 10);
              // 水印文字成45度角倾斜
              content.showTextAligned(Element.ALIGN_CENTER , "新闻记者证核发办公室", x, y, 45);
              content.endText(); 
} stamper.close(); } catch (Exception e) { e.printStackTrace(); } } }

 

所需要得jar包

转载于:https://www.cnblogs.com/liuyi-clover/p/10174027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值