使用iText为PDF加图片水印
2016-05-05 12:45
501 查看
Maven依赖:
<dependency>
<groupId>com.sankuai.mms</groupId>
<artifactId>mms-boot</artifactId>
<version>1.0.3</version>
</dependency>
Java代码:
替换watermark_backgroud.png为本地图片即可。
public static void imageWatermark(String inputPath, String outputPath) throws IOException, DocumentException {
PdfReader reader = new PdfReader(inputPath);
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outputPath));
PdfGState gs1 = new PdfGState();
gs1.setFillOpacity(0.1f);
Image image = Image.getInstance(IOUtils.toByteArray(new FileInputStream(System.getProperty("user.dir") + "/src/main/webapp/WEB-INF/resources/image/watermark_backgroud.png")));
int n = reader.getNumberOfPages();
for(int i = 1; i <= n; i++) {
PdfContentByte pdfContentByte = stamp.getOverContent(i);
pdfContentByte.setGState(gs1);
image.setAbsolutePosition(100, 300);
pdfContentByte.addImage(image);
}
stamp.close();
reader.close();
}
效果
<dependency>
<groupId>com.sankuai.mms</groupId>
<artifactId>mms-boot</artifactId>
<version>1.0.3</version>
</dependency>
Java代码:
替换watermark_backgroud.png为本地图片即可。
public static void imageWatermark(String inputPath, String outputPath) throws IOException, DocumentException {
PdfReader reader = new PdfReader(inputPath);
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outputPath));
PdfGState gs1 = new PdfGState();
gs1.setFillOpacity(0.1f);
Image image = Image.getInstance(IOUtils.toByteArray(new FileInputStream(System.getProperty("user.dir") + "/src/main/webapp/WEB-INF/resources/image/watermark_backgroud.png")));
int n = reader.getNumberOfPages();
for(int i = 1; i <= n; i++) {
PdfContentByte pdfContentByte = stamp.getOverContent(i);
pdfContentByte.setGState(gs1);
image.setAbsolutePosition(100, 300);
pdfContentByte.addImage(image);
}
stamp.close();
reader.close();
}
效果
相关文章推荐
- 奇怪的Python本地线程Python's Thread Locals Are Weird
- JSON数据解析(JSONArray和JSONObject)
- 做好数据中心能耗大管家
- 死锁程序
- B - Qualifying Contest
- sublime Text 3实用功能和常用快捷键收集
- Winock2网络编程服务器端
- javascript执行环境及作用域
- UI界面基础如何用鼠标控制物体移动
- 关于免安装版mysql不能开启 错误1607
- 十进制转化为二进制
- CSS 背景颜色与其16进制图示
- Python 的闭包和装饰器
- codeforces 414B B. Mashmokh and ACM(dp)
- 学习Android Studio开发工具之Activity3(框架1)
- CentOS下oracle11gR2静默安装
- Android生成新的keystore(通过Eclipse的ADT方式)为什么需要输入两个密码,并且第二个密码显示Key certificate validity is required?
- C++ Primer 第五版 练习 3.20
- Android热补丁动态修复技术(完结篇):自动生成打包带签名的补丁,重构项目
- Granular Computing(粒计算)学术名词的发展