使用java代码实现给PDF加水印的功能

首先导入所需要的依赖

com.itextpdf

itextpdf

5.5.11

com.itextpdf

itext-asian

5.2.0

java 代码实现

/**

* @param inputFile 你的PDF文件地址

* @param outputFile 添加水印后生成PDF存放的地址

* @param waterMarkName 你的水印

* @return

*/

public static boolean waterMark(String inputFile,

String outputFile, String waterMarkName) {

try {

PdfReader reader = new PdfReader(inputFile);

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(

outputFile));

//这里的字体设置比较关键,这个设置是支持中文的写法

BaseFont base = BaseFont.createFont("STSong-Light",

"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 使用系统字体

int total = reader.getNumberOfPages() + 1;

PdfContentByte under;

Rectangle pageRect = null;

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

pageRect = stamper.getReader().

getPageSizeWithRotation(i);

// 计算水印X,Y坐标

float x = pageRect.getWidth()/10;

float y = pageRect.getHeight()/10-10;

// 获得PDF最顶层

under = stamper.getOverContent(i);

under.saveState();

// set Transparency

PdfGState gs = new PdfGState();

// 设置透明度为0.2

gs.setFillOpacity(1.f);

under.setGState(gs);

under.restoreState();

under.beginText();

under.setFontAndSize(base, 60);

under.setColorFill(BaseColor.ORANGE);

// 水印文字成45度角倾斜

under.showTextAligned(Element.ALIGN_CENTER

, waterMarkName, x,

y, 55);

// 添加水印文字

under.endText();

under.setLineWidth(1f);

under.stroke();

}

stamper.close();

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

java pdf加水印 性能_java 实现 PDF 加水印功能相关推荐

  1. java给水印被pdf图片盖住_Java 在PDF中添加水印——文本/图片水印

    水印是一种十分常用的防伪手段,常用于各种文档.资料等.常见的水印,包括文字类型的水印.图片或logo类型的水印.以下Java示例,将分别使用insertTextWatermark(PdfPageBas ...

  2. java pdf添加图片水印图片_Java 在PDF中添加文本水印、图片水印(基于Spire.Cloud.SDK for Java)...

    Spire.Cloud.SDK for Java提供了接口pdfWartermarkApi可用于添加文本水印addTextWartermark()和图片水印addImageWartermark()到P ...

  3. java实现保存合同模板_java实现pdf的生成下载打印,java生成pdf电子账单,java生成pdf合同模板...

    最近公司要做个生成pdf电子账单凭证的功能,由于这个公司没有任何代码可借鉴,这个时候我就必须得自己搞明白具体的每一步应该怎么做,引什么jar包?用什么方式去实现?这篇博客中会给出从头到尾及其详细的代码 ...

  4. Java实现pdf加盖骑缝章_Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

  5. java代码条形码链接网址_Java在PDF中添加条形码

    java开发从入门到精通第2版疯狂 80.8元 包邮 (需用券) 去购买 > 条形码,是由宽度不等的多个黑条和空白所组成,用以表达一组信息的图形标识符.通过给文档添加条形码,可以直观,快捷地访问 ...

  6. java项目怎样提高性能_Java程序员成长之路(如何提高Java程序性能?)

    1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控制资 ...

  7. java类验证和装载顺序_java中类的加载顺序介绍(ClassLoader)

    转自:http://blog.csdn.net/eff666/article/details/52203406 1.ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.l ...

  8. java类验证和装载顺序_Java类的加载机制和双亲委派模型

    Java类的加载机制和双亲委派模型 1类的加载机制 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading).验证(Verification).准备(Prepar ...

  9. java 反射为何耗性能_Java反射的性能成本

    在Java中,普遍认为java.reflect API的性能代价很高.旧的Java版本有巨大的性能开销,而新版本似乎使其处于可接受的范围内.但"可接受"到底是什么意思呢? 这是我在 ...

  10. java初始化加载类_Java 类的加载和初始化

    直接从书上抄来的,自己写一遍加深印象 类的加载 加载就是通过指定的类全限定名,获取此类的二进制字节流(可以是clazz文件或者直接内存读取或者远程网络,jar包等),然后将此二进制字节流转化为方法区的 ...

最新文章

  1. 集成学习Bagging和Boosting算法总结
  2. C语言中的输入输出函数
  3. 基于MD5的增强型摘要算法
  4. java封装省市区三级json格式,2016中国省市区三级联动json格式.pdf
  5. 使用 keras 训练大规模数据
  6. cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩
  7. ORACLE事务提交
  8. 你为什么喜欢VIM?
  9. 迭代器 生成器 面向过程编程
  10. 使用SQL PLUS生成报表
  11. 造谣“外卖员因差评杀人” 女子被依法刑事拘留
  12. 如何根据参数类型重载__init__方法?
  13. vue set方法_Vue 数据响应式
  14. java并发编程(12)-- 线程池 实际⽣产使⽤哪⼀个线程池 怎么设置
  15. canvas 加载图片
  16. mimic-iii数据库_财务会计应用程序数据库III:完成基础结构
  17. 汇编语言10堆栈平衡
  18. crm登录系统是什么系统?
  19. php静态登录界面网页代码,css+html如何仿花瓣网实现静态登陆页面?(代码实例)...
  20. Windows下如何打开CSV文件

热门文章

  1. Win10下windows mobile设备中心连接不上的方法无法启动
  2. android 高清播放器,高清播放器我要下载-高清播放器 安卓版v9.6.2-PC6安卓网
  3. MineCraft建模工具
  4. linux audio device driver音频设备驱动
  5. 高等数学总结(无穷级数)
  6. PHY之MDIO解析
  7. 双非考研上岸中国传媒大学通信(电子信息)的一路历程(考研经验帖)
  8. 使用pdfFactory Pro虚拟打印机便笺功能为文件添加批注
  9. VMWare ESXi thin磁盘空间回收,精简置备空间回收
  10. 物联网PaaS平台大盘点