java pdf加水印 性能_java 实现 PDF 加水印功能
使用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 加水印功能相关推荐
- java给水印被pdf图片盖住_Java 在PDF中添加水印——文本/图片水印
水印是一种十分常用的防伪手段,常用于各种文档.资料等.常见的水印,包括文字类型的水印.图片或logo类型的水印.以下Java示例,将分别使用insertTextWatermark(PdfPageBas ...
- java pdf添加图片水印图片_Java 在PDF中添加文本水印、图片水印(基于Spire.Cloud.SDK for Java)...
Spire.Cloud.SDK for Java提供了接口pdfWartermarkApi可用于添加文本水印addTextWartermark()和图片水印addImageWartermark()到P ...
- java实现保存合同模板_java实现pdf的生成下载打印,java生成pdf电子账单,java生成pdf合同模板...
最近公司要做个生成pdf电子账单凭证的功能,由于这个公司没有任何代码可借鉴,这个时候我就必须得自己搞明白具体的每一步应该怎么做,引什么jar包?用什么方式去实现?这篇博客中会给出从头到尾及其详细的代码 ...
- Java实现pdf加盖骑缝章_Java 在PDF中添加骑缝章示例解析
骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...
- java代码条形码链接网址_Java在PDF中添加条形码
java开发从入门到精通第2版疯狂 80.8元 包邮 (需用券) 去购买 > 条形码,是由宽度不等的多个黑条和空白所组成,用以表达一组信息的图形标识符.通过给文档添加条形码,可以直观,快捷地访问 ...
- java项目怎样提高性能_Java程序员成长之路(如何提高Java程序性能?)
1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控制资 ...
- java类验证和装载顺序_java中类的加载顺序介绍(ClassLoader)
转自:http://blog.csdn.net/eff666/article/details/52203406 1.ClassNotFoundExcetpion 我们在开发中,经常可以遇见java.l ...
- java类验证和装载顺序_Java类的加载机制和双亲委派模型
Java类的加载机制和双亲委派模型 1类的加载机制 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading).验证(Verification).准备(Prepar ...
- java 反射为何耗性能_Java反射的性能成本
在Java中,普遍认为java.reflect API的性能代价很高.旧的Java版本有巨大的性能开销,而新版本似乎使其处于可接受的范围内.但"可接受"到底是什么意思呢? 这是我在 ...
- java初始化加载类_Java 类的加载和初始化
直接从书上抄来的,自己写一遍加深印象 类的加载 加载就是通过指定的类全限定名,获取此类的二进制字节流(可以是clazz文件或者直接内存读取或者远程网络,jar包等),然后将此二进制字节流转化为方法区的 ...
最新文章
- 集成学习Bagging和Boosting算法总结
- C语言中的输入输出函数
- 基于MD5的增强型摘要算法
- java封装省市区三级json格式,2016中国省市区三级联动json格式.pdf
- 使用 keras 训练大规模数据
- cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩
- ORACLE事务提交
- 你为什么喜欢VIM?
- 迭代器 生成器 面向过程编程
- 使用SQL PLUS生成报表
- 造谣“外卖员因差评杀人” 女子被依法刑事拘留
- 如何根据参数类型重载__init__方法?
- vue set方法_Vue 数据响应式
- java并发编程(12)-- 线程池 实际⽣产使⽤哪⼀个线程池 怎么设置
- canvas 加载图片
- mimic-iii数据库_财务会计应用程序数据库III:完成基础结构
- 汇编语言10堆栈平衡
- crm登录系统是什么系统?
- php静态登录界面网页代码,css+html如何仿花瓣网实现静态登陆页面?(代码实例)...
- Windows下如何打开CSV文件